[Pharo-project] Toward MVP: SimpleGridExample vs. ClassListExample, etc.
bschwab at anest.ufl.edu
Sun Jun 5 19:11:37 EDT 2011
Stef might be correct about it being better in 1.3. In fairness, the Hudson 1.3 image is not as big as my 1.1.1 working image, so the comparison might have some flaws.
The class examples are paginated, deferring some work. There is a separate LazyClassListExample; it seems to work properly, and the only change that I see relative to ClassListExample is its use of LazyMorphTreeMorph. Making that same substitution for SimpleGridMorph produces weird side effects ("extra morphs" created on some rows) in 1.3. In 1.1.1, the window opens quickly, but is ultimately sluggish until all morphs are created. The latter is not terribly surprising, but one could hope for 1.3's speed with 1.1.1's stability :)
Getting back to my MVP focus, I note that MorphTreeMorph is both slower than Dolphin's enhanced (multi-column) lists, and also more powerful. It has a lot in common with the lists in the PaneHolders package that I created for Dolphin (with some additions and omissions). As non-oo as it might be, there is arguably room for a text-only grid that is very fast. Whether Object Arts put it in Dolphin "because it was there" in Windows, because they knew it would a good compromise, or somewhere in between is open for discussion. Regardless, it is a useful widget.
Maybe PluggableMultiColumnListMorph is where I should start for the short term??
From: pharo-project-bounces at lists.gforge.inria.fr [pharo-project-bounces at lists.gforge.inria.fr] On Behalf Of Alain Plantec [alain.plantec at yahoo.com]
Sent: Saturday, June 04, 2011 12:46 PM
To: pharo-project at lists.gforge.inria.fr
Subject: Re: [Pharo-project] Toward MVP: SimpleGridExample vs. ClassListExample, etc.
yes, it is slow.
the idea would be to build the list in background.
you can try the lazy version also. LazyMorphTreeMorph.
a row is built only when it is visible.
Le 04/06/2011 18:08, Schwab,Wilhelm K a écrit :
> I have a couple of GUIs to create, and took another look at my (very) slowly evolving MVP package. A small update appears below, but the question of the day is one of performance of MorphTreeMorph in its various incarnations.
> ClassListExample is very impressive and reasonably quick. SimpleGridExample is very nice, but quite slow. Profiling its opening reveals that it spends a lot of time making morphs, but that's not super surprising. It's the total time that is of concern. Any takers on why?
> I ask, because I am trying to create basic presenter classes for lists, trees, (more or less working), text (will be easy - I *think*), and another big item is multi-column lists. My objective is to be able to easily construct things that (unless told to do otherwise) automatically deal with the selected index, updates, etc. None of this stuff is terribly difficult to do when following the Polymorph examples, PharoCasts, etc., but hopefully we can have MVP and stop repeating ourselves at the same time.
> The next thing I am missing is a grid. Any strong thoughts on examples to follow/reuse, or things that should NOT be used for any reason?
More information about the Pharo-dev