Have a look at this example. There you will see, how DataBinding works with a qx.Mobile List.
https://github.com/qooxdoo/qooxdoo/blob/cbef1c693e85976fafbea07036cdf554d7c16fb2/application/mobileshowcase/source/class/mobileshowcase/page/DataBinding.js ________________________________________ Von: Vincent Vandenschrick [[email protected]] Gesendet: Montag, 20. Januar 2014 23:26 An: qooxdoo Development Betreff: Re: [qooxdoo-devel] Databinding with mobile list items Ok. I solved my own problem, so here is the solution for the records. The key point is to have the model items fire bubbling events (the simplest is to include the qx.data.marshal.MEventBubbling mixin, and call _applyEventPropagation on property changes). Then the list will be notified of item property changes and render accordingly without any other action needed. Great design ;-) HTH, Vincent Le 20 janv. 2014 à 21:46, Vincent Vandenschrick <[email protected]> a écrit : > Digging a little bit more, I discovered that this approach cannot work since > when rendering the list, the same renderer instance is re-used and cloned for > each list item. So I cannot get any handle on the widget actually drawn on > the screen. So what would be the correct design to have the list reflecting > the model changes ? > > Le 20 janv. 2014 à 21:32, Vincent Vandenschrick <[email protected]> a écrit : > >> Hi again, >> So I built a small example simulating the problem with the list renderers >> not being repainted. In this example, a button listener directly changes one >> of the renderer title but nothing get changed on screen; of course, in >> real-life, the renderer should be notified of the model change, but for the >> sake of simplicity… >> I’m sure I must be missing something but I can’t figure out. Here is the >> playground test-case : >> >> http://tinyurl.com/pqzzd53 >> >> Any hint? Shall I open a bug report ? >> >> Thanks in advance, >> Vincent >> >> >> Le 18 janv. 2014 à 15:34, Vincent Vandenschrick <[email protected]> a écrit >> : >> >>> Hi experts, >>> >>> Still experimenting the mobile API, and now, I face a strange problem. To >>> sum-up, I have 2 pages, 1 with a list of items and the second one that >>> allows to edit the 1st page selected item. Edition changes the item >>> property that is used for list rendering on the first page. The problem is >>> that, whatever I try, I cannot manage to get the list items updated >>> accordingly to the 2nd page edition. >>> >>> Everything is MVC oriented through qooxdoo databinding. Since there is no >>> mobile List controller, I had to use an object controller on the model item >>> so that I can bind the renderer property to the model item property. This >>> is called in configureItem of the List widget constructor and here is >>> basically what it looks like : >>> >>> bindListItem: function (item, state) { >>> var modelController = new qx.data.controller.Object(state); >>> modelController.addTarget(item, "title", "value"); >>> modelController.addTarget(item, "subtitle", "description"); >>> modelController.addTarget(item, "image", "iconImageUrl"); >>> } >>> >>> When debugging, I can see the setTitle() method of the Default list >>> renderer being called as expected. However, when I come back to the list >>> page, Nothing has changed and the old value is still there. It may be >>> linked to the fact that the list is not visible when the setTitle() method >>> is called but I really have no clue. >>> >>> Am I missing something ? >>> >>> Thanks in advance for any hint. >>> >>> Regards, >>> Vincent >> > ------------------------------------------------------------------------------ CenturyLink Cloud: The Leader in Enterprise Cloud Services. Learn Why More Businesses Are Choosing CenturyLink Cloud For Critical Workloads, Development Environments & Everything In Between. Get a Quote or Start a Free Trial Today. http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk _______________________________________________ qooxdoo-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel ------------------------------------------------------------------------------ CenturyLink Cloud: The Leader in Enterprise Cloud Services. Learn Why More Businesses Are Choosing CenturyLink Cloud For Critical Workloads, Development Environments & Everything In Between. Get a Quote or Start a Free Trial Today. http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk _______________________________________________ qooxdoo-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
