[Pharo-project] A lil simplification of MorphTreeNodeMorph

Stéphane Ducasse stephane.ducasse at inria.fr
Wed Apr 6 10:08:34 CEST 2011


Hi guys

this is ***REALLLYYYYY*** important that we get scalable List and Tree
so thanks a lot for your effort.
Please continue
Stef

On Apr 6, 2011, at 10:02 AM, Igor Stasenko wrote:

> On 6 April 2011 09:45, Alain Plantec <alain.plantec at yahoo.com> wrote:
>> Le 06/04/2011 08:57, Igor Stasenko a écrit :
>>> 
>>>> another point, try all examples in Morphic-MorphTreeWidget-Examples.
>>>> now, the height of each row is constant.
>>> 
>>> Yes, so what it should be instead?
>> 
>> it should be dependent on the content height, so as it was before.
>> another problem is the spacers removal.
>> now, the horizontal positioning is broken (they was here to take into
>> account the vertical resizers width)
>> see the screen shots.
>> 
> 
> yes, positioning is not quite correct. But the idea is to use layouts
> instead of morphs to
> adjust positioning.
> Because having 3 extra morphs per list item which sitting there only
> for markup is not fun.
> And it affects a rendering speed considerably.
> 
>> try SimpleGridExample new open before and after the changes.
>> to exhibit the problem, change the resizerWidth from 2 to 12 as an example
>> (just set it to 12 in SimpleGridExample>>treeMorph)
>> 
>> I think that MorphTreeMorph can't be efficient for very big lists
>> because each row may contain a lot of morphs.
> 
> Yes, but you can use morphs only for those items which are shown on
> screen, while for those which outside
> you don't need to use morphs at all.
> 
> The idea is that You could keep in memory all morphs which
> representing the tree, but don't iterate over them
> every time. Just add to submorphs only those which currently visible.
> 
>> This is why I've also implemented LazyMorphTreeMorph.
>> Try it, it is very much efficient but badly implemented.
>> I think it should use a background process to build the list
>> (something like what you did for the annotation pane).
>> 
> What could be done is to simplify things even more, so creating a list
> item will be cheaper and skip many initialization,
> unless it is necessary.
> 
>> Cheers
>> Alain
> 
> 
> -- 
> Best regards,
> Igor Stasenko AKA sig.
> 




More information about the Pharo-project mailing list