I've been known to use code like this:
calendarsController.bind('selection[0]', entriesList, 'model', {
converter: function(calendar) {
if (calendar == null)
return null;
return new load_calendar(calendar.getId());
}
I.e. use the databinding converter to trigger an Ajax request to the
server. This seemed preferable to me, because
calendarsController.getSelection().addListener('change', ...
will not work if the selection array has a whole is replaced (and you
end up needing to do things like these:
var selection = this.tree.getController().getSelection();
selection.splice(0, selection.length, newSelectedItem);
to replace a selection in one step.
(If I'm missing something here with regards to changing a selection
array I'd love to know).
The problem with the code above is that the converter *always* triggers
twice. This is because of the code in MSelection.js:
...
// use splice to ensure a correct change event [BUG #4728]
selection.splice.apply(selection, spliceArgs).dispose();
// fire the change event manually
this.fireDataEvent("changeSelection", this.getSelection());
I.e., the binding first triggers via the "no-op" splice, then is
triggered again manually.
Now this is inacceptable in my case where data is loaded from the
server, but I image there are other cases where you wouldn't want this
to happen, and in general it doesn't seem like good design.
Any thoughts? Can this be changed?
Michael
------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite!
It's a free troubleshooting tool designed for production.
Get down to code-level detail for bottlenecks, with <2% overhead.
Download for free and get started troubleshooting in minutes.
http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk
_______________________________________________
qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel