Layouting GoListGroup and GoView

i have a question about GoListGroup and GoView.
The problem is, that we have to show a huge sequence of arranged grafic-blocks.
These blocks are arranged vertical or horizontal side by side and additional in deeply nested hierarchies.

Our first solution is to place only one GoListGroup on the View, to arrange the root-blocks.
Each block is a GoGroup which has several elements, such as GoText or GoImage and a additional GoListGroup which contains other child-blocks.
This nested GoListGroup can collapse and expand, to show/hide
the child-blocks. The GoListGroups layouts the elements automatically horizontal or vertical.

When we build a sequence with 20000 or more blocks, every user action (collapse, expand, move) needs up to 10-20 seconds, because the GoListGroups layouts the whole sequence, and not only the Viewable blocks.

Is it possible to layout only the blocks, which you can see in the view?
Than we need probably events, when the view shows an element and when it leave the view during scolling.

Or should we choose the approach, to assume the layouting?

Thank you a lot.


The reason that doing partial layouts is difficult is because there can be multiple views displaying a GoObject. In fact, it’s moderately common to have a GoOverview showing the whole diagram. Keeping that up-to-date means having to complete the whole layout.
I suppose if you can make the simplifying assumption that there’s only one GoView showing your GoDocument, you could implement the optimization you are talking about. Basically you’ll need to reimplement LayoutChildren. If you’re a customer, send me e-mail.
Are you using a GoUndoManager? If you are but don’t need to, I’m wondering if the performance would be better without a GoUndoManager.
By the way, did you think your implementation so far has been simple? Did you start with the CollapsibleListGroup example in Demo1? I’m trying to figure out what we need to do to make GoDiagram even easier to learn and use.