Charlie schrieb:
> Hello,
>
> I have implemented a littlle "Quick Find" textbox linked to a 
> qx.ui.forms.List that matches the ListItem value and filter the list to 
> show only the matching items. Something like the search box of 
> Thunderbird, if you see.
> To show or hide the items, I am using the "display" property of the 
> qxListItems. If the value matches the filter, setDisplay(true), else 
> setDisplay(false). My problem is that when my list is huge (about 1200 
> items), each time I change a display on a ListItem, the 
> VerticalBoxLayout recompute every items positions, and it takes a lot of 
> time to update the whole rendering of the list. If I set the list 
> display to "false" before looping on the items, then do the loop that 
> update items display, then set the list back to "true", I can see it is 
> really quick, but the non-matching items still appear behind the 
> matching ones, so this is not a clean solution...
> I am still new to qooxdoo, so my questions would be the following :
> + Is there a way to "stop" the rendering of the list until my loop is 
> done, then trigger it ? (probably more general comprehension problem of 
> the rendering engine...)
> + Am I using the wrong component for such a task?
> + Am I totally wrong, should I for example empty the list then add only 
> the matching items back again??
>
> Thanks for your help
> Charles
>   
Hi Charlie,

the list is not really suited to display a large amount of data because 
each list entry is a single widget. This gets really expensive in terms 
of memory and processor consumption for large data sets. You should take 
a look at the table, which dynamically renders the visible content and 
scales very good even for a very huge number of rows.

There is even a special filtered table model:

Demo: <http://demo.qooxdoo.org/current/demobrowser/#example~Table_4.html>
API: <http://demo.qooxdoo.org/current/apiviewer/#qx.ui.table.model.Filtered>


BTW, as Helder said, the current API viewer has such a dynamic filter in 
the search tab. We use the table there as well.

Best Fabian

-- 
Fabian Jakobs
JavaScript Framework Developer

1&1 Internet AG
Brauerstraße 48
76135 Karlsruhe

Amtsgericht Montabaur HRB 6484

Vorstand: Henning Ahlert, Ralph Dommermuth, Matthias Ehrlich, Andreas Gauger, 
Thomas Gottschlich, Matthias Greve, Robert Hoffmann, Markus Huhn, Achim Weiss
Aufsichtsratsvorsitzender: Michael Scheeren


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Reply via email to