You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
I want to achieve a layered layout with swim lanes, orthogonal to the direction of layers (see screenshot). To that end, I create a hierarchical graph where parent nodes represent the swim lanes.
Requirements:
Each swim lane has a root node that should be aligned to the left.
Individual nodes may have dependencies (i.e. edges) across swim lanes. Those nodes should still be layered as a global directional flow without backward edges.
Simply setting "elk.hierarchyHandling": "INCLUDE_CHILDREN" does not do the trick.
So I tried an approach with two consecutive runs:
the first one ignores hierarchies entirely and assigns layers globally
the second run uses those layers as constraints and performs cross minimization and node placement with hierarchical nodes.
However, ELK does not respect either the layer constraints, or the layer choice constraints.
I'd appreciate your help.
Hi, ELK layered does not support this, since it does not support swimlanes. However, I remember that swimlanes were once conceptualized for a student thesis. Hence, it would be helpful, if you would add some examples and what should happen in this case such that we could potentially integrate swimlanes into ELK layered in the future.
Hi Sören, thanks for the quick response.
I understand that ELK does not have dedicated support for swim lanes, but I am not sure it needs to.
By grouping nodes into separate parent nodes and then setting elk.hierarchyHandling: INCLUDE_CHILDREN, I would expect it to look exactly like the desired outcome.
From the docs: "Setting a node’s hierarchy handling to INCLUDE_CHILDREN will lay out that node and all of its descendants in a single layout run".
That means all nodes are layered as if there were no hierarchies, and layer(N4) > layer(N3). Also, constraining child-nodes ("Root 1" and "Root 2") to "FIRST_SEPARATE" should result in a single global first layer.
That is why I tagged this issue as a bug, because the current behaviour is unexpected to me. (Note that there are no edges between parents, only between child nodes, but those may cross parents. Maybe there is some complexity in that?)
Hi, INCLUDE_CHILDREN only considers the whole hierarchy for edge crossings but not for the placement of nodes and the direction of edges. Hence, Lane 2 will never be as long as you want it to be.
Describe the bug
I want to achieve a layered layout with swim lanes, orthogonal to the direction of layers (see screenshot). To that end, I create a hierarchical graph where parent nodes represent the swim lanes.
Requirements:
Simply setting "elk.hierarchyHandling": "INCLUDE_CHILDREN" does not do the trick.
So I tried an approach with two consecutive runs:
However, ELK does not respect either the layer constraints, or the layer choice constraints.
I'd appreciate your help.
Expected behavior
Screenshots
Failure modes:
ELK Version
elkjs: 0.9.3
Additional context
JSON to try:
The text was updated successfully, but these errors were encountered: