New list widget under development

Esteban Lorenzano started to develop a new list widget to replace all the widgets into Pharo.

You can load it using

Gofer it
smalltalkhubUser: 'estebanlm' project: 'FastTable';
configuration;
loadStable.

My idea is to ask community help finish it.

Implementation uses datasources to feed the list, so in theory you can browse infinite rows without loosing speed.
according to my tests (in my machine):

[ Object browse ] timeToRun asMilliSeconds. -> ~3000ms (without cache)
[ Object browse ] timeToRun asMilliSeconds. -> ~350ms (with cache active)
[ Object browse ] timeToRun asMilliSeconds. -> ~150ms with FastTable, always.

There is an adaptor FTPluggableIconListMorphAdaptor that has the same format as a PluggableIconListMorph so changing already existing calls will be easy (even if there should not be done like that in the long term 🙂

So, so far, list works fine, but

– still missing drag&drop support
– there are some issues remaining:
— cells escaping his width
— last elements in long lists sometimes are not visible

some details has to be around too… but this is a good design, taken from Cocoa… is years better than the naive implementation of old PluggableListMorph and better than the strategy used by NewList (spawning threads all around).

Please, help me finish!
Repository is open so anybody can contribute.

FTExamples has a set of wxamples with all things implemented 🙂

Esteban

ps: I already has the adaptor working with Nautilus, but since it depends on some changes on it I will wait until is integrated to push it. But basically if you want to try you just need to go to: CategoryWidget>>#buildCategoriesList, ClassWidget>>#buildClassesList and MethodWidget>>#buildMethodList and change PluggableIconListMorph with FTPluggableIconListMorphAdaptor

Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: