javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java
branchmodel
changeset 908 3e023bea2da4
parent 907 5dc21ce7269d
child 909 e51a474fcf79
     1.1 --- a/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java	Sun Mar 31 05:43:38 2013 +0200
     1.2 +++ b/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java	Sun Mar 31 06:46:25 2013 +0200
     1.3 @@ -128,12 +128,23 @@
     1.4                  w.append("package " + pkg + ";\n");
     1.5                  w.append("import org.apidesign.bck2brwsr.htmlpage.api.*;\n");
     1.6                  w.append("import org.apidesign.bck2brwsr.htmlpage.KOList;\n");
     1.7 +                w.append("import org.apidesign.bck2brwsr.core.JavaScriptOnly;\n");
     1.8                  w.append("final class ").append(className).append(" {\n");
     1.9                  w.append("  private Object json;\n");
    1.10                  w.append("  private boolean locked;\n");
    1.11                  w.append("  private org.apidesign.bck2brwsr.htmlpage.Knockout ko;\n");
    1.12                  w.append(body.toString());
    1.13                  w.append("  private static Class<" + e.getSimpleName() + "> modelFor() { return null; }\n");
    1.14 +                for (int i = 0; i < propsGetSet.size(); i += 4) {
    1.15 +                    w.append("  @JavaScriptOnly(name=\"" + propsGetSet.get(i) + "\",\n");
    1.16 +                    w.append("    value=\"function() { ");
    1.17 +                    final String setter = propsGetSet.get(i + 2);
    1.18 +                    if (setter != null) {
    1.19 +                        w.append("if (arguments.length == 1) this." + setter + "(arguments[0]); ");
    1.20 +                    }
    1.21 +                    w.append("return this." + propsGetSet.get(i + 1) + "();}\")\n");
    1.22 +                    w.append("  private static native void __accessor" + i + "();");
    1.23 +                }
    1.24                  w.append("}\n");
    1.25              } finally {
    1.26                  w.close();