1.1 --- a/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/Knockout.java Mon Mar 25 13:48:45 2013 +0100
1.2 +++ b/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/Knockout.java Mon Mar 25 16:17:21 2013 +0100
1.3 @@ -18,6 +18,7 @@
1.4 package org.apidesign.bck2brwsr.htmlpage;
1.5
1.6 import java.lang.reflect.Method;
1.7 +import java.util.List;
1.8 import org.apidesign.bck2brwsr.core.ExtraJavaScript;
1.9 import org.apidesign.bck2brwsr.core.JavaScriptBody;
1.10
1.11 @@ -48,7 +49,8 @@
1.12 bind(bindings, model, propsGettersAndSetters[i],
1.13 propsGettersAndSetters[i + 1],
1.14 propsGettersAndSetters[i + 2],
1.15 - getter.getReturnType().isPrimitive()
1.16 + getter.getReturnType().isPrimitive(),
1.17 + List.class.isAssignableFrom(getter.getReturnType())
1.18 );
1.19 } catch (NoSuchMethodException ex) {
1.20 throw new IllegalStateException(ex.getMessage());
1.21 @@ -74,10 +76,11 @@
1.22 public static void triggerEvent(String id, String ev) {
1.23 }
1.24
1.25 - @JavaScriptBody(args = { "bindings", "model", "prop", "getter", "setter", "primitive" }, body =
1.26 + @JavaScriptBody(args = { "bindings", "model", "prop", "getter", "setter", "primitive", "array" }, body =
1.27 "var bnd = {\n"
1.28 + " 'read': function() {\n"
1.29 + " var v = model[getter]();\n"
1.30 + + " if (array) v = v.koArray();\n"
1.31 + " return v;\n"
1.32 + " },\n"
1.33 + " 'owner': bindings\n"
1.34 @@ -90,7 +93,7 @@
1.35 + "bindings[prop] = ko['computed'](bnd);"
1.36 )
1.37 private static void bind(
1.38 - Object bindings, Object model, String prop, String getter, String setter, boolean primitive
1.39 + Object bindings, Object model, String prop, String getter, String setter, boolean primitive, boolean array
1.40 ) {
1.41 }
1.42