Need to have applyBindings method to tell the model to associate itself with the page
1.1 --- a/json/src/main/java/net/java/html/json/Context.java Mon Apr 22 13:03:34 2013 +0200
1.2 +++ b/json/src/main/java/net/java/html/json/Context.java Mon Apr 22 13:52:00 2013 +0200
1.3 @@ -76,5 +76,9 @@
1.4 @Override
1.5 public void expose(FunctionBinding fb, Object model, Object d) {
1.6 }
1.7 +
1.8 + @Override
1.9 + public void applyBindings(Object data) {
1.10 + }
1.11 }
1.12 }
2.1 --- a/json/src/main/java/org/apidesign/html/json/impl/Bindings.java Mon Apr 22 13:03:34 2013 +0200
2.2 +++ b/json/src/main/java/org/apidesign/html/json/impl/Bindings.java Mon Apr 22 13:52:00 2013 +0200
2.3 @@ -76,4 +76,8 @@
2.4 public void valueHasMutated(String firstName) {
2.5 bp.valueHasMutated(data, firstName);
2.6 }
2.7 +
2.8 + public void applyBindings() {
2.9 + bp.applyBindings(data);
2.10 + }
2.11 }
3.1 --- a/json/src/main/java/org/apidesign/html/json/impl/ModelProcessor.java Mon Apr 22 13:03:34 2013 +0200
3.2 +++ b/json/src/main/java/org/apidesign/html/json/impl/ModelProcessor.java Mon Apr 22 13:52:00 2013 +0200
3.3 @@ -273,6 +273,10 @@
3.4 w.append(" };\n");
3.5 writeToString(props, w);
3.6 writeClone(className, props, w);
3.7 + w.write("public " + className + " applyBindings() {\n");
3.8 + w.write(" ko.applyBindings();\n");
3.9 + w.write(" return this;\n");
3.10 + w.write("}\n");
3.11 w.append(" public Object koData() {\n");
3.12 w.append(" return intKnckt().koData();\n");
3.13 w.append(" }\n");
4.1 --- a/json/src/main/java/org/apidesign/html/json/spi/Technology.java Mon Apr 22 13:03:34 2013 +0200
4.2 +++ b/json/src/main/java/org/apidesign/html/json/spi/Technology.java Mon Apr 22 13:52:00 2013 +0200
4.3 @@ -56,4 +56,9 @@
4.4 public void valueHasMutated(Data data, String propertyName);
4.5
4.6 public void expose(FunctionBinding fb, Object model, Data d);
4.7 +
4.8 + /** Applies given data to current context (usually an HTML page).
4.9 + * @param data the data to apply
4.10 + */
4.11 + public void applyBindings(Data data);
4.12 }
5.1 --- a/json/src/test/java/net/java/html/json/MapModelTest.java Mon Apr 22 13:03:34 2013 +0200
5.2 +++ b/json/src/test/java/net/java/html/json/MapModelTest.java Mon Apr 22 13:52:00 2013 +0200
5.3 @@ -138,6 +138,9 @@
5.4 throw new IllegalStateException(ex);
5.5 }
5.6 }
5.7 -
5.8 +
5.9 + @Override
5.10 + public void applyBindings(Map<String, One> data) {
5.11 + }
5.12 }
5.13 }
6.1 --- a/json/src/test/java/net/java/html/json/ModelTest.java Mon Apr 22 13:03:34 2013 +0200
6.2 +++ b/json/src/test/java/net/java/html/json/ModelTest.java Mon Apr 22 13:52:00 2013 +0200
6.3 @@ -165,6 +165,7 @@
6.4 @OnReceive(url = "{protocol}://{host}?query={query}")
6.5 static void loadPeople(Modelik thiz, People p) {
6.6 Modelik m = null;
6.7 + m.applyBindings();
6.8 m.loadPeople("http", "apidesign.org", "query");
6.9 }
6.10
6.11 @@ -251,5 +252,9 @@
6.12 @Override
6.13 public void expose(FunctionBinding fb, Object model, Object d) {
6.14 }
6.15 +
6.16 + @Override
6.17 + public void applyBindings(Object data) {
6.18 + }
6.19 }
6.20 }