Context
Phase 0 of #2320 (Replace GoDiagram with DevExpress DiagramControl). This is a go/no-go gate — if the POC fails, we evaluate alternatives before proceeding.
Goal
Add a throwaway MoBi.DiagramPoc WinForms project to the MoBi solution. Prove three things with standalone, hardcoded examples (no integration with real domain model):
1. Custom shapes with port-specific drag-to-connect
- Create a reaction node (triangle/Y-shape) with 3 colored connection points: blue (educt), green (product), red (modifier)
- Create a molecule node (circle) with 1 connection point
- Drag from molecule → reaction port creates a connector colored to match the target port
- Validate that connections are port-specific (e.g., can distinguish which port was connected to)
2. Nested containers with expand/collapse
- Create containers 3+ levels deep (e.g., Organism → Organ → Compartment → SubCompartment)
- Expand/collapse works at each level
- Child nodes stay inside parent containers visually
3. Sugiyama auto-layout
- Build a small reaction network: ~5 molecule nodes, ~3 reaction nodes, wired together
- Apply
ApplySugiyamaLayout() and verify the result is readable
Done when
- All 3 capabilities demonstrated in the POC project
- Or: documented which capability fails and why, so the team can evaluate alternatives
Notes
- Throwaway code — no tests, no architecture, no domain model integration
- Delete
MoBi.DiagramPoc project after validation
- Build against DevExpress 21.2 (current version)
Context
Phase 0 of #2320 (Replace GoDiagram with DevExpress DiagramControl). This is a go/no-go gate — if the POC fails, we evaluate alternatives before proceeding.
Goal
Add a throwaway
MoBi.DiagramPocWinForms project to the MoBi solution. Prove three things with standalone, hardcoded examples (no integration with real domain model):1. Custom shapes with port-specific drag-to-connect
2. Nested containers with expand/collapse
3. Sugiyama auto-layout
ApplySugiyamaLayout()and verify the result is readableDone when
Notes
MoBi.DiagramPocproject after validation