On Mon, Mar 1, 2010 at 14:36, Greg Beaver <[email protected]> wrote:

>
> My vmware ubuntu instance doesn't have ssl enabled for svn at the moment
> (I am looking to see if I need to compile a custom svn, but that may
> take a while with my limited time), but I can wait until 1.0.2 comes out
> if that will be within the next month or so.
>

Greg, here's Martin's patch from earlier today. You can try to apply it to
your existing code if you'd like.

Derrell


Modified: trunk/qooxdoo/framework/
source/class/qx/data/controller/Form.js
===================================================================
--- trunk/qooxdoo/framework/source/class/qx/data/controller/Form.js
2010-02-26 17:03:32 UTC (rev 21660)
+++ trunk/qooxdoo/framework/source/class/qx/data/controller/Form.js
2010-03-01 07:42:05 UTC (rev 21661)
@@ -208,6 +208,17 @@

    // apply method
    _applyModel : function(value, old) {
+      // first, get rid off all bindings (avoids whong data population)
+      if (this.__objectController != null) {
+        var items = this.getTarget().getItems();
+        for (var name in items) {
+          var item = items[name];
+          var targetProperty =
+            this.__isModelSelectable(item) ? "modelSelection[0]" : "value";
+          this.__objectController.removeTarget(item, targetProperty, name);
+        }
+      }
+
      // set the model of the object controller if available
      if (this.__objectController != null) {
        this.__objectController.setModel(value);

Modified:
trunk/qooxdoo/framework/source/class/qx/test/data/controller/Form.js
===================================================================
--- trunk/qooxdoo/framework/source/class/qx/test/data/controller/Form.js
   2010-02-26 17:03:32 UTC (rev 21660)
+++ trunk/qooxdoo/framework/source/class/qx/test/data/controller/Form.js
   2010-03-01 07:42:05 UTC (rev 21661)
@@ -533,7 +533,62 @@

      // distroy the objects
      c.dispose();
+    },
+
+
+    testConnectionWithListControllerSelection : function() {
+      // generate fake data
+      var data = [{name: "a", age: 1}, {name: "b", age: 2}, {name: "c",
age: 3}];
+      var model = qx.data.marshal.Json.createModel(data);
+
+      // list
+      var list = new qx.ui.form.List();
+      var listController = new qx.data.controller.List(model, list,
"name");
+
+      // form
+      var form = new qx.ui.form.Form();
+      form.add(new qx.ui.form.TextField(), "Name", null, "name");
+      form.add(new qx.ui.form.Spinner(), "Age", null, "age");
+      var formController = new qx.data.controller.Form(null, form);
+
+      // connection
+      listController.bind("selection[0]", formController, "model");
+
+      // select the first item
+      var listItems = list.getSelectables();
+      list.setSelection([listItems[0]]);
+
+      // check if the model is still the same
+      this.assertEquals("a", model.getItem(0).getName());
+      this.assertEquals("b", model.getItem(1).getName());
+      this.assertEquals("c", model.getItem(2).getName());
+      this.assertEquals(1, model.getItem(0).getAge());
+      this.assertEquals(2, model.getItem(1).getAge());
+      this.assertEquals(3, model.getItem(2).getAge());
+
+      // select the second item
+      var listItems = list.getSelectables();
+      list.setSelection([listItems[1]]);
+
+      // check if the model is still the same
+      this.assertEquals("a", model.getItem(0).getName());
+      this.assertEquals("b", model.getItem(1).getName());
+      this.assertEquals("c", model.getItem(2).getName());
+      this.assertEquals(1, model.getItem(0).getAge());
+      this.assertEquals(2, model.getItem(1).getAge());
+      this.assertEquals(3, model.getItem(2).getAge());
+
+      // select the first item again
+      var listItems = list.getSelectables();
+      list.setSelection([listItems[0]]);
+
+      // check if the model is still the same
+      this.assertEquals("a", model.getItem(0).getName());
+      this.assertEquals("b", model.getItem(1).getName());
+      this.assertEquals("c", model.getItem(2).getName());
+      this.assertEquals(1, model.getItem(0).getAge());
+      this.assertEquals(2, model.getItem(1).getAge());
+      this.assertEquals(3, model.getItem(2).getAge());
    }
-
  }
 });
------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Reply via email to