So I have a diagram like in screenshot, which is visually what I need.
My problem is now in code complexity. I need to treat some Links like 1 Link. For example the Link from Business Approval (BA) to Technical Approval (TA) basically in our Model it is just 1 link called Transition, which is composed of 2 child links: one from BA to the Group and another from Group to TA node. So whenever I add or delete a transition basically I need to delete 2 links and the intermediate group between them.
I’m thinking how to do this better and easier considering undo/redo operations as well and other complexities related to our data/payload. I have a few solutions in mind:
Continue with current example (as in screenshot). But override CommandHandler and for example when one sub-link is selected and about to be delete, find all parts to this overall transitions: 2 child links, and the group node between them and remove them all in 1 transaction which basically will be called “delete transition”
Adjust the diagram somehow like in Multi-Node Path Links. So the transition BA → Group → TA link is treated as a 1 link. The problem I’m facing is that the MultiNodePath Link works well for Bezier only but not Orthogonal. I replaced Bezier with Orthogonal in that example and the routing is very poor and I can’t reshape the links - basically if there could be a combination of first solution and this one, probably would work.
Transform in solution 1. the group panel (which can have a few Rectangles inside not just one ) to behave like the Link’s label. Seems to be easy in theory and is next I’m going to try.
Any ideas/thoughts are much appreciated.