javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/Knockout.java
branchmodel
changeset 887 13dc5ada296b
parent 884 89891834511c
child 909 e51a474fcf79
     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