Enough to set the back reference once per object, not once per its property.
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Sat, 31 Aug 2013 01:29:13 +0000
changeset 272461a542da9fd
parent 271 8e62255ff5f5
child 273 494240a49e42
Enough to set the back reference once per object, not once per its property.
ko-fx/src/main/java/org/apidesign/html/kofx/FXContext.java
ko-fx/src/main/java/org/apidesign/html/kofx/Knockout.java
     1.1 --- a/ko-fx/src/main/java/org/apidesign/html/kofx/FXContext.java	Sat Aug 31 00:39:39 2013 +0000
     1.2 +++ b/ko-fx/src/main/java/org/apidesign/html/kofx/FXContext.java	Sat Aug 31 01:29:13 2013 +0000
     1.3 @@ -79,7 +79,9 @@
     1.4  
     1.5      @Override
     1.6      public JSObject wrapModel(Object model) {
     1.7 -        return (JSObject) Knockout.createBinding(model).koData();
     1.8 +        JSObject obj = (JSObject) Knockout.createBinding(model).koData();
     1.9 +        obj.setMember("ko-fx.model", model);
    1.10 +        return obj;
    1.11      }
    1.12  
    1.13      @Override
     2.1 --- a/ko-fx/src/main/java/org/apidesign/html/kofx/Knockout.java	Sat Aug 31 00:39:39 2013 +0000
     2.2 +++ b/ko-fx/src/main/java/org/apidesign/html/kofx/Knockout.java	Sat Aug 31 01:29:13 2013 +0000
     2.3 @@ -89,7 +89,6 @@
     2.4          try {
     2.5              InvokeJS.bind(bindings, pb, prop, "getValue", pb.isReadOnly() ? null : "setValue", primitive, array);
     2.6              
     2.7 -            ((JSObject)bindings).setMember("ko-fx.model", model);
     2.8              LOG.log(Level.FINE, "binding defined for {0}: {1}", new Object[]{prop, ((JSObject)bindings).getMember(prop)});
     2.9          } catch (Throwable ex) {
    2.10              LOG.log(Level.WARNING, "binding failed for {0} on {1}", new Object[]{prop, bindings});