I’m trying to layout some groups stacked as vertical swimlanes, then within those I have nodes laid out vertically downwards from the top. I’ve got my layout working, and that calculates the correct co-ordinates every time. I then have an option to “hide” a group, which collapses its subgraph and changes its dimensions so that it is very thin. Upon unhide I have to relayout my diagram in order to reposition swimlanes to the right of the group, however when I run the layout I initially see the new “unhidden” nodes in the top left of the graph, before they quickly reposition to the group’s location. This causes a strange jumping effect for my group.
I turned animation on in order to try to see what is happening, and it looks as though the nodes are moving from their old location, to where the group is initially positioned (in the top left), then the group is moving to its location after that. This would be fine, but I don’t want animation, I just want the nodes in the place I told them to be.
So I seem to be getting some intermediary steps of the layout process being drawn on the screen as it lays out (despite animations being off). Is there some way to delay any rendering taking effect until the entire layout has been calculated? It’s worth noting that the way I’m doing this is that there is a diagram layout that positions each group, and each group has a layout positioning its nodes within it. At the moment the only solution I have is to put a loading image in front of the diagram before a layout and hide it upon layout completion, however this causes the whole diagram to flicker if the layout is quick.