Hi,
On Sun, Oct 7, 2012 at 10:54 PM, Alexandre Bergel alexandre.bergel@me.com wrote:
if you check the sender of #mostSpecificParentCommonWith: then you will see that only the Mondrian builder makes use of it. Currently, and outside the Mondrian DSL, you can insert the edge where you actually want, independently of its extremities.
Is there a reason for this "freedom" in Roassal?
Simplicity of the code. Currently there is absolutely no optimization or even caches in Roassal. I have the feeling that this point will be crucial when we will have to address some scalable situations.
But, this is not an optimization. Storing edges in reasonable places is about the meaningfulness of the model. Perhaps it makes sense to have it like it is now in Roassal, but I think there should be an explicit reason for it. That is because a graph has essentially two concepts, and if one of them is randomly placed, the model is only 50% sound :).
Regarding caches, the original Mondrian had no cache either precisely because we wanted to keep it open. Caches were introduced only very late in the Pharo version because you wanted to make it faster :). It is clear that we learnt that hard and extensive caches impose limitations and I never argued for them.
I am wondering whether this is what we really want. Shouldn't the element/node be aware of its attachpoint, instead of its edges?
I think you should have both. There should be a lookup, where the node should have the priority over the edge.
Probably yes.
We tried something like this in Mondrian, but the model was not quite clean. There, even the layout could set the attachment points. It would be cool to rethink this part.
Cheers, Doru
Alexandre
-- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.