The goal for this task is to be able to perform line splicing.
Line splicing is a feature that allows dropping a shape on top of a connector (eg: line) in order to automatically split it into two connetors and perform the right connection assignments.
For example, consider the following BPMN flow:
- * T1 and T2 are tasks
- C1 is a sequence flow
At that point, once line splicing is working, creating a new task T3 and moving it on top of C1 will result as:
NOTE: The line splicing is already available on lienzo side, it's missing the Stunner integration for it - commands, rules, etc
If two nodes are connected with sequence flow and the third one is dragged and dropped over this sequence flow, a new one sequence flow is created:
- If the connection is allowed the connector is highlighted in blue when the node is being dragged over the connector.
- Target of the initial sequence flow changes to a new ("dropped") node
- The new sequence flow has the Source set to the new node and the Target of this flow is set to the Target of the initial sequence flow.
- The new node is placed at the position it was dropped.
- If the line splice is being performed in a container such as a lane, the containment operation has to be performed as well.
- Undo and Redo operations are suported.
- Line splice must be compliant to all allow node connection rules.
- If the connection is not allowed the connector is highlighted in red when the node is being dragged over the connector.
- In case there is no enough space to splice the initial sequence flow, the line splice isn't performed.
- This new feature will be available on all kogito channels (vscode, standalone, online, etc)
- BPMN and DMN editors
- BC editors are out from scope
|Stunner - investigate efforts for Line splicing||Resolved|