Ok, so if I try to understand a bit the structure:
=> MOCanvas is just the 'global' Morph (and so not really a canvas ?) that
will contains all the elements's morphs
=> This global morph know the MORoot element .
=> This MORoot element know each sub-MONodeElement.
=> Then the MOCanvas Morph can be set to any MorphWindow (to the MOBrowser
or MOEasel for example).
=> It's only when we try to open such a window, that we concretely 'draw'
each node (dispatching the work to the corresponding MOShapes).
=> So the morphic library says to the MOCanvas: drawOn:, wich dispatch the
work to the MORoot, wich dispatch to each MONode, which dispatch tho the
corresponding MOShapes.
Like alex said, the concrete canvas to use is provided by Morphic, and if no
one should manually instantiate it, Morphic should also be modified to use
by default the RomeCanvas instead of the current ones (?).
What seems to be sure, is that we can't specify easily a specific canvas to
be used in mondrian
2010/6/15 Alexandre Bergel <alexandre.bergel(a)inria.fr>
I did not say
that he did not say anything. I just said that it is
difficult to find where
problems are by looking at a very complex case. When
the problems were raised, we did look into the issues, but it was just too
difficult especially when we had multiple problems in the same time.
Now we are in the situation in which multiple people noticed multiple
problems,
there are some fixes, but there are still problems left. So, we
have to dig deeper and we should do it more systematically by creating
simpler cases that reproduce the problem. It's not an issue of "I told you
so", it's an issue of "We need help to identify all problems" :).
+1
Alexandre
On 15 Jun 2010, at 14:01, Stéphane Ducasse wrote:
> Doru
>
> Jannik said it several times - check the list. So do not tell him that
he did
not want to help.
>
> Stef
>
> On Jun 15, 2010, at 1:25 PM, Tudor Girba wrote:
>
>> One more thing.
>>
>> It can also be that when you have expensive traversals in your blocks,
you
can easily get to quadratic algorithms.
>>
>> For example, suppose you have something like this:
>>
>> view shape
>> height: [:each | (classes select: [:target | target invokes: each])
size].
>> view nodes: classes
>>
>> In this case, for each class, you would traverse all classes again, so
N^2.
>>
>> That is why we need canonical examples first that expose complex
graphs.
And those people that have a direct interest in getting Mondrian
fast would be good to help in this direction, because it can get difficult
to understand the particularities of each model :)
>>
>> Cheers,
>> Doru
>>
>>
>> On 15 Jun 2010, at 13:13, Tudor Girba wrote:
>>
>>> Hi,
>>>
>>>> now something important is that mondrian is barely usable for us:
DSM, package blueprint, torch are all slow.
>>>> I would really like to see some
pragmatic solutions to be found. Like
not computing all the blocks all over the
time.
>>>
>>> This is what we are already discussing, but until now it is not clear
what exactly generates the slowness. I believe the problem comes from the
edges, but we have to take a more systematic look.
>>>
>>> The other thing that has an impact is that right now Mondrian computes
everything lazily, so even if the visualization appears, scrolling might
still be problematic the first time you go through the entire picture. So,
testing should also take this into account.
>>>
>>> Doru
>>>
>>>> Stef
>>>>
>>>> On Jun 15, 2010, at 12:43 PM, Tudor Girba wrote:
>>>>
>>>>> Hi Cyrille,
>>>>>
>>>>> The canvas is defined in MOCanvas. This canvas is embedded in
MOBrowser and MOEasel, which in their turn create a StandardWindow that
holds the MOCanvas.
>>>>>
>>>>> Just to inform the others, Cyrille is experimenting with adding the
Athens canvas (which provides an abstraction over Cairo, Balloon and
possibly others) behind Mondrian.
>>>>>
>>>>> Cheers,
>>>>> Doru
>>>>>
>>>>>
>>>>> On 15 Jun 2010, at 11:42, Cyrille Delaunay wrote:
>>>>>
>>>>>> Hello,
>>>>>>
>>>>>> I have been looking a bit for the place where we set the canvas
to
use in Mondrian, but I didn't find.
>>>>>> I know that all shapes
are drawn on a FormCanvas, but there is no
references to FormCanvas in mondrian
classes.
>>>>>> I just saw that there is
a 'defaultCanvasClass' method in the class
Form for example, so maybe such
a method is use somewhere in the code.
>>>> Does somoene know the way to set a new
Canvas to Mondrian ?
>>>>
>>>> _______________________________________________
>>>> Moose-dev mailing list
>>>> Moose-dev(a)iam.unibe.ch
>>>>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>>
>>> --
>>>
www.tudorgirba.com
>>>
>>> "Presenting is storytelling."
>>>
>>> _______________________________________________
>>> Moose-dev mailing list
>>> Moose-dev(a)iam.unibe.ch
>>>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>
>>
>> _______________________________________________
>> Moose-dev mailing list
>> Moose-dev(a)iam.unibe.ch
>>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> --
>
www.tudorgirba.com
>
> "There are no old things, there are only old ways of looking at them."
>
>
>
--
www.tudorgirba.com
"In a world where everything is moving ever faster,
one might have better chances to win by moving slower."
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
--
www.tudorgirba.com
"Sometimes the best solution is not the best solution."
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev