Issue 4904 in pharo: MorphTreeMorph improvements

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
28 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Issue 4904 in pharo: MorphTreeMorph improvements

pharo
Status: Accepted
Owner: [hidden email]
CC: [hidden email]
Labels: Milestone-1.4

New issue 4904 by [hidden email]: MorphTreeMorph improvements
http://code.google.com/p/pharo/issues/detail?id=4904

- It is much too slow
- the implementation implies the creation of MorphTreeModel subclasses even  
for simple lists (as an example, TickList* is made of 8 classes)
- composition is not made easy (MCSliceMaker, SettingBrowser, TimeProfiler,  
FinderUI and MessageListBrowser should not be subclasses of MorphTreeModel)


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 4904 in pharo: MorphTreeMorph improvements

pharo

Comment #1 on issue 4904 by [hidden email]: MorphTreeMorph  
improvements
http://code.google.com/p/pharo/issues/detail?id=4904

Thanks alain. We need you.

Stef



_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 4904 in pharo: MorphTreeMorph improvements

pharo

Comment #2 on issue 4904 by [hidden email]: MorphTreeMorph improvements
http://code.google.com/p/pharo/issues/detail?id=4904

first part:
SLICE-Issue-4904-MorphTreeMorph-improvements-AlainPlantec.1

- Speed improvement: 10 to 12 times faster !
   the speed is now very near from what is possible with PluggableListMorph.
   the TimeProfiler is now very efficient.

- made MorphTreeModel composable (see MCSliceMaker which is not a  
MorphTreeModel subclass anymore)

- Start to use Annoucements instead of change/update (see  
MorphTreeSelectionChanged announcement)

- no item "forgotten" when sliding with the mouse for auto multiselection  
(as in the TestRunner, try to select items with the mouse, some items are  
not selected if the mouse slides too fast)

- no need for TickList* (8 classes) and no need for a CheckList class
----
(TickDialogWindo itemsList: Morph methodDict values itemsHeaderName: 'Plop'  
wrapBlockOrSelector: #selector title: 'Example') choose
----
can be implemented as:
----
(MorphTreeModel new rootItems: Morph methodDict values;
                 wrapBlockOrSelector: #selector;
                 autoMultiSelection: true;
                 headerLabel: 'Plop';
                 beCheckList) openDialogWindowIn: World title: 'All Morph methods'
----
(10 times faster)






_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 4904 in pharo: MorphTreeMorph improvements

pharo
Updates:
        Status: ReviewNeeded

Comment #3 on issue 4904 by [hidden email]: MorphTreeMorph improvements
http://code.google.com/p/pharo/issues/detail?id=4904

(No comment was entered for this change.)


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 4904 in pharo: MorphTreeMorph improvements

pharo

Comment #4 on issue 4904 by [hidden email]: MorphTreeMorph improvements
http://code.google.com/p/pharo/issues/detail?id=4904

Sweet!
Just a quick comment:
Why not call it SelectionChanged? I'm quite certain there are others  
widgets changing selection as well :)
Perhaps make it the beginning of a GUI-Announcements package?
IE: Have the Announcement be general, and specify which widget you are  
interested in listening to based on which Announcer you subscribe to  
instead.


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 4904 in pharo: MorphTreeMorph improvements

pharo

Comment #5 on issue 4904 by [hidden email]: MorphTreeMorph  
improvements
http://code.google.com/p/pharo/issues/detail?id=4904

alain do you want me to integrate these changes now?


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 4904 in pharo: MorphTreeMorph improvements

pharo

Comment #6 on issue 4904 by [hidden email]: MorphTreeMorph  
improvements
http://code.google.com/p/pharo/issues/detail?id=4904

@rydier
yep, I think announcement should be general, but announcer specific. But  
it's not always easy to set up :)


By the way, great job Alain. It's damn so cool :)


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 4904 in pharo: MorphTreeMorph improvements

pharo

Comment #7 on issue 4904 by [hidden email]: MorphTreeMorph  
improvements
http://code.google.com/p/pharo/issues/detail?id=4904

Ok I will integrate them now :)


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 4904 in pharo: MorphTreeMorph improvements

pharo

Comment #8 on issue 4904 by [hidden email]: MorphTreeMorph improvements
http://code.google.com/p/pharo/issues/detail?id=4904

take the second version
SLICE-Issue-4904-MorphTreeMorph-improvements-AlainPlantec.2


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 4904 in pharo: MorphTreeMorph improvements

pharo

Comment #9 on issue 4904 by [hidden email]: MorphTreeMorph improvements
http://code.google.com/p/pharo/issues/detail?id=4904

regarding announcements, I agree but for now I prefer to let it tree  
specific.
The goal is to use annoucements instead of the change/update only for the  
tree for now.
When this kind of refactoring will be done for other widgets, then we will  
see how to better integrate Annoucmement.


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 4904 in pharo: MorphTreeMorph improvements

pharo

Comment #10 on issue 4904 by [hidden email]: MorphTreeMorph  
improvements
http://code.google.com/p/pharo/issues/detail?id=4904

I'm taking v2 now :)



_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 4904 in pharo: MorphTreeMorph improvements

pharo
Updates:
        Status: Closed

Comment #11 on issue 4904 by [hidden email]: MorphTreeMorph  
improvements
http://code.google.com/p/pharo/issues/detail?id=4904

in 14191


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 4904 in pharo: MorphTreeMorph improvements

pharo

Comment #12 on issue 4904 by [hidden email]: MorphTreeMorph  
improvements
http://code.google.com/p/pharo/issues/detail?id=4904

Argh I got a bug when I wanted to test if the package would load well.

So I'm trying to push the change without verification because I suspect the  
problem to be in the update process. and we will see



_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 4904 in pharo: MorphTreeMorph improvements

pharo
Updates:
        Status: ReviewNeeded

Comment #13 on issue 4904 by [hidden email]: MorphTreeMorph  
improvements
http://code.google.com/p/pharo/issues/detail?id=4904

argh I have a problem so I will rollback but now I have to take the train.
Apparently there is a do it with classTrait that is not understood by the  
Obsoleteclass


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 4904 in pharo: MorphTreeMorph improvements

pharo

Comment #14 on issue 4904 by [hidden email]: MorphTreeMorph  
improvements
http://code.google.com/p/pharo/issues/detail?id=4904

Seems to come from here

Model subclass: #MorphTreeModel
        uses: AnObsoleteTMorphTreeModel
        instanceVariableNames: 'selection announcer rootItems autoMultiSelection  
headerLabel multiSelection wrapBlockOrSelector isCheckList'
        classVariableNames: ''
        poolDictionaries: ''
        category: 'Morphic-MorphTreeWidget'


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 4904 in pharo: MorphTreeMorph improvements

pharo

Comment #15 on issue 4904 by [hidden email]: MorphTreeMorph improvements
http://code.google.com/p/pharo/issues/detail?id=4904

yes, the problem is that I have the correct declaration and the trait is  
actually removed in my package. But when the slice is merged  or loaded  
this bad declaration is here again ...

here is what I have when the slice is uploaded:
Model subclass: #MorphTreeModel
        instanceVariableNames: 'selection announcer rootItems autoMultiSelection  
headerLabel multiSelection wrapBlockOrSelector isCheckList'
        classVariableNames: ''
        poolDictionaries: ''
        category: 'Morphic-MorphTreeWidget'


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 4904 in pharo: MorphTreeMorph improvements

pharo

Comment #16 on issue 4904 by [hidden email]: MorphTreeMorph improvements
http://code.google.com/p/pharo/issues/detail?id=4904

I've found a workarround by manually removing the trait and accept the new  
MorphTreeModel class declaration *before* merging.
-> 21 conflicts when merging. If one accept all incoming versions, all  
seems ok.



_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 4904 in pharo: MorphTreeMorph improvements

pharo

Comment #17 on issue 4904 by [hidden email]: MorphTreeMorph  
improvements
http://code.google.com/p/pharo/issues/detail?id=4904

alain so that understand well.
I could do first a change with the class without trait and then I do an  
update with the slice?


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 4904 in pharo: MorphTreeMorph improvements

pharo

Comment #18 on issue 4904 by [hidden email]: MorphTreeMorph improvements
http://code.google.com/p/pharo/issues/detail?id=4904

yes, only if the update is a merge.
remove the trait and its uses in MorphTreeModel, then merge.


_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
Reply | Threaded
Open this post in threaded view
|

Re: Issue 4904 in pharo: MorphTreeMorph improvements

pharo

Comment #19 on issue 4904 by [hidden email]: MorphTreeMorph improvements
http://code.google.com/p/pharo/issues/detail?id=4904

so, as a pre-script
------
Model subclass: #MorphTreeModel
        uses: {}
        instanceVariableNames: 'selection pageSize'
        classVariableNames: ''
        poolDictionaries: ''
        category: 'Morphic-MorphTreeWidget'.
TMorphTreeModel removeFromSystem.
-------
then merge with:
SLICE-Issue-4904-MorphTreeMorph-improvements-AlainPlantec.6




_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-bugtracker
12