Hi,
On Sun, Oct 7, 2012 at 10:54 PM, Alexandre Bergel
<alexandre.bergel(a)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
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
--
www.tudorgirba.com
"Every thing has its own flow"