Esteban Lorenzano started to develop a new list widget to replace all the widgets into Pharo.
You can load it using
smalltalkhubUser: 'estebanlm' project: 'FastTable';
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 🙂
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