Dynamically adding nodes to Roassal
I am playing around with Roassal (in particular, a tree map) and I have a question: Is there a way to dynamically adding nodes? I mean, once the view is generated to update the #nodes by adding a new node (and associations as well, i.e., edges) and have the visualization re-
At the moment I managed to have something *almost* working, but the behavior of the ROTreeMapLayout is not clear to me.
Using the ROMondrianViewBuilder I can specify the size of the Tree map, but then I am not able to dynamically add nodes. Well, at least I did not manage to do that. So I moved to pure Roassal, as suggested by Alejandro.
Here's how my actual code looks like: http://ws.stfx.eu/CFM522Z9X3ES
I am a beginner with Roassal, so I spend some time to figure out how to draw the tree map in this way. I did not really quite understand why I have to add the ROBox new size: 200 to the ROElement, but I'll figure it out.
The thing is when I try to add the new node. Following, again, Alejandro's advice I am writing something like:
"I add a new node, re-layout the view, and signalUpdate"
rawView add: ((ROElement on: 10) + (ROBox new size: 200)).
(ROTreeMapLayout withWeightBlock: [ :e | e model ]) applyOn: rawView elements.
rawView signalUpdate .
The result is quite strange, the view is indeed updated but I cannot understand why all sizes are messed up.
I think that once I apply the layout, the "elements" array is actually changed (i.e., sizes, parents, resize strategy). Am I correct? is it the correct behavior?
My questions, in short are: How can I fix the overall size of the tree map? Am I doing everything correct till now?
Thanks again for your help,