Hey guys,
Interesting to read all your opinions about this problem! Here is my feedback
on the single ideas:
Christians idea of converting native objects on runtime to Model objects:
Sounds like a good idea in the first place but I think that the problem here
is, that we need to know the moment when there is the need of converting. Maybe
the time it is rendered but imagine a fast scrolling user... scrolling could
get really sloppy in that case and thats even worse than waiting a few seconds
for the nodes to be created.
Tobis idea of having two different interfaces the tree can handle:
I guess the two interfaces would be native objects and data models. This sounds
like a compromise because i sure don't want to drop the statement we always
have in the data binding: "you only have to take care of the model, everything
else is done automatically". So the current solution should be good enough for
most of the users not loading millions of tree nodes. But still, I can see that
use case that a tree gets that large. But then, using native objects as model,
we would loose the automatic update feature, which brings in the suggestion of
Guilherme. In that case, the widget would need in deed something like a
"commit" method where the developer can tell the widget to update because he
has changed the tree data.
But still, that would lead to an huge effort to recreate all the binding
functionality like binding individual properties, binding chains and so on.
Another idea by me:
If the overhead of qx.core.Object is too big, maybe we should think of building
a special model superclass which does not extend qx.core.Object. Maybe that not
even based on qx.Class ... that could also speed up the creation if we could
get rid of all stuff in that layer we don't need for models. Maybe that could
reduce the execution time by 50% max. But would that be enough?
Regards,
Martin
Am 21.02.2011 um 13:38 schrieb Guilherme Aiolfi:
Maybe the panyasan idea is the right approach then (native objects which get
translated into qx.core.Object models only on
demand). Its like a remote data store
(http://bugzilla.qooxdoo.org/show_bug.cgi?id=2993) that access a local plain
array object instead of going to the server to fetch data.
On Mon, Feb 21, 2011 at 9:25 AM, Tobias Oetiker
<[email protected]<mailto:[email protected]>> wrote:
Hi Guilherme,
Today Guilherme Aiolfi wrote:
> What if we used an wrapper for the array object and added an method like
> commit() to the model. So we could change a lot of data in it and update its
> visual representation at once (when calling commit()). That would give more
> control over what the model and UI are doing and when it should be done.
>
> Imagine a mass rename on 1200 items, it would be faster using the commit
> approach.
>
> That's more or less what the table widget is doing, because after you change
> the model's data you have to fire an event telling the widget which rows
> it suppose to update.
>
> What do you think?
The challenge I think, is in finding a way to provide a sensible
interface which allows for both the current way of using a
'self aware' model as well as a simple data store.
Since Martin has been the driving force behind the curent design (as far
as I can tell) I guess he is in the best position to suggest a good
pattern for solving this scaleability issue.
cheers
tobi
--
Tobi Oetiker, OETIKER+PARTNER AG, Aarweg 15 CH-4600 Olten, Switzerland
http://it.oetiker.ch<http://it.oetiker.ch/>
[email protected]<mailto:[email protected]> ++41 62 775 9902 / sb: -9900
------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
qooxdoo-devel mailing list
[email protected]<mailto:[email protected]>
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
<ATT00001..txt><ATT00002..txt>
------------------------------------------------------------------------------
Index, Search & Analyze Logs and other IT data in Real-Time with Splunk
Collect, index and harness all the fast moving IT data generated by your
applications, servers and devices whether physical, virtual or in the cloud.
Deliver compliance at lower cost and gain new business insights.
Free Software Download: http://p.sf.net/sfu/splunk-dev2dev
_______________________________________________
qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel