diff -r 89891834511c -r 13dc5ada296b javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/Knockout.java --- a/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/Knockout.java Mon Mar 25 13:48:45 2013 +0100 +++ b/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/Knockout.java Mon Mar 25 16:17:21 2013 +0100 @@ -18,6 +18,7 @@ package org.apidesign.bck2brwsr.htmlpage; import java.lang.reflect.Method; +import java.util.List; import org.apidesign.bck2brwsr.core.ExtraJavaScript; import org.apidesign.bck2brwsr.core.JavaScriptBody; @@ -48,7 +49,8 @@ bind(bindings, model, propsGettersAndSetters[i], propsGettersAndSetters[i + 1], propsGettersAndSetters[i + 2], - getter.getReturnType().isPrimitive() + getter.getReturnType().isPrimitive(), + List.class.isAssignableFrom(getter.getReturnType()) ); } catch (NoSuchMethodException ex) { throw new IllegalStateException(ex.getMessage()); @@ -74,10 +76,11 @@ public static void triggerEvent(String id, String ev) { } - @JavaScriptBody(args = { "bindings", "model", "prop", "getter", "setter", "primitive" }, body = + @JavaScriptBody(args = { "bindings", "model", "prop", "getter", "setter", "primitive", "array" }, body = "var bnd = {\n" + " 'read': function() {\n" + " var v = model[getter]();\n" + + " if (array) v = v.koArray();\n" + " return v;\n" + " },\n" + " 'owner': bindings\n" @@ -90,7 +93,7 @@ + "bindings[prop] = ko['computed'](bnd);" ) private static void bind( - Object bindings, Object model, String prop, String getter, String setter, boolean primitive + Object bindings, Object model, String prop, String getter, String setter, boolean primitive, boolean array ) { }