Setting a property initilizes the binding
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Fri, 19 Apr 2013 15:44:44 +0200
changeset 87aca06d79b78
parent 7 e7718a31c6d2
child 9 e77b0d6cee20
Setting a property initilizes the binding
json/src/main/java/org/apidesign/html/json/impl/ModelProcessor.java
json/src/test/java/net/java/html/json/ModelTest.java
     1.1 --- a/json/src/main/java/org/apidesign/html/json/impl/ModelProcessor.java	Fri Apr 19 15:40:27 2013 +0200
     1.2 +++ b/json/src/main/java/org/apidesign/html/json/impl/ModelProcessor.java	Fri Apr 19 15:44:44 2013 +0200
     1.3 @@ -335,12 +335,13 @@
     1.4                  w.write("public void " + gs[1] + "(" + tn + " v) {\n");
     1.5                  w.write("  if (locked) throw new IllegalStateException();\n");
     1.6                  w.write("  prop_" + p.name() + " = v;\n");
     1.7 -                w.write("  if (ko != null) {\n");
     1.8 -                w.write("    ko.valueHasMutated(\"" + p.name() + "\");\n");
     1.9 +                w.write("  org.apidesign.html.json.impl.Bindings b = intKnckt();\n");
    1.10 +                w.write("  if (b != null) {\n");
    1.11 +                w.write("    b.valueHasMutated(\"" + p.name() + "\");\n");
    1.12                  Collection<String> dependants = deps.get(p.name());
    1.13                  if (dependants != null) {
    1.14                      for (String depProp : dependants) {
    1.15 -                        w.write("    ko.valueHasMutated(\"" + depProp + "\");\n");
    1.16 +                        w.write("    b.valueHasMutated(\"" + depProp + "\");\n");
    1.17                      }
    1.18                  }
    1.19                  w.write("  }\n");
     2.1 --- a/json/src/test/java/net/java/html/json/ModelTest.java	Fri Apr 19 15:40:27 2013 +0200
     2.2 +++ b/json/src/test/java/net/java/html/json/ModelTest.java	Fri Apr 19 15:44:44 2013 +0200
     2.3 @@ -101,13 +101,7 @@
     2.4          assertEquals(model.getValues().get(0), Integer.valueOf(10), "Really ten");
     2.5      }
     2.6  
     2.7 -/*    
     2.8      @Test public void derivedArrayProp() {
     2.9 -        MockKnockout my = new MockKnockout();
    2.10 -        MockKnockout.next = my;
    2.11 -        
    2.12 -        model.applyBindings();
    2.13 -        
    2.14          model.setCount(10);
    2.15          
    2.16          List<String> arr = model.getRepeat();
    2.17 @@ -126,11 +120,6 @@
    2.18      }
    2.19      
    2.20      @Test public void derivedPropertiesAreNotified() {
    2.21 -        MockKnockout my = new MockKnockout();
    2.22 -        MockKnockout.next = my;
    2.23 -        
    2.24 -        model.applyBindings();
    2.25 -        
    2.26          model.setValue(33);
    2.27          
    2.28          // not interested in change of this property
    2.29 @@ -150,7 +139,7 @@
    2.30          assertEquals(my.mutated.size(), 1, "One property changed: " + my.mutated);
    2.31          assertTrue(my.mutated.contains("unrelated"), "Its name is unrelated");
    2.32      }
    2.33 -    */
    2.34 +
    2.35      @Test public void computedPropertyCannotWriteToModel() {
    2.36          leakedModel = model;
    2.37          try {