1.1 --- a/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java Mon Jan 21 11:55:27 2013 +0100
1.2 +++ b/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java Mon Jan 21 13:43:40 2013 +0100
1.3 @@ -94,28 +94,27 @@
1.4 try {
1.5 w.append("package " + pkg + ";\n");
1.6 w.append("import org.apidesign.bck2brwsr.htmlpage.api.*;\n");
1.7 - w.append("class ").append(className).append(" {\n");
1.8 + w.append("final class ").append(className).append(" {\n");
1.9 w.append(" private static boolean locked;\n");
1.10 - w.append(" private ").append(className).append("() {}\n");
1.11 - for (String id : pp.ids()) {
1.12 - String tag = pp.tagNameForId(id);
1.13 - String type = type(tag);
1.14 - w.append(" ").append("public static final ").
1.15 - append(type).append(' ').append(cnstnt(id)).append(" = new ").
1.16 - append(type).append("(\"").append(id).append("\");\n");
1.17 - }
1.18 - w.append(" static {\n");
1.19 + w.append(" public ").append(className).append("() {\n");
1.20 if (!initializeOnClick((TypeElement) e, w, pp)) {
1.21 return false;
1.22 }
1.23 w.append(" }\n");
1.24 + for (String id : pp.ids()) {
1.25 + String tag = pp.tagNameForId(id);
1.26 + String type = type(tag);
1.27 + w.append(" ").append("public final ").
1.28 + append(type).append(' ').append(cnstnt(id)).append(" = new ").
1.29 + append(type).append("(\"").append(id).append("\");\n");
1.30 + }
1.31 List<String> propsGetSet = new ArrayList<String>();
1.32 Map<String,Collection<String>> propsDeps = new HashMap<String, Collection<String>>();
1.33 generateComputedProperties(w, e.getEnclosedElements(), propsGetSet, propsDeps);
1.34 generateProperties(w, p.properties(), propsGetSet, propsDeps);
1.35 - w.append(" private static org.apidesign.bck2brwsr.htmlpage.Knockout ko;\n");
1.36 + w.append(" private org.apidesign.bck2brwsr.htmlpage.Knockout ko;\n");
1.37 if (!propsGetSet.isEmpty()) {
1.38 - w.write("public static void applyBindings() {\n");
1.39 + w.write("public " + className + " applyBindings() {\n");
1.40 w.write(" ko = org.apidesign.bck2brwsr.htmlpage.Knockout.applyBindings(");
1.41 w.write(className + ".class, new " + className + "(), ");
1.42 w.write("new String[] {\n");
1.43 @@ -129,8 +128,7 @@
1.44 }
1.45 sep = ",\n";
1.46 }
1.47 - w.write("\n });\n}\n");
1.48 - //w.write("static { applyBindings(); }\n");
1.49 + w.write("\n });\n return this;\n}\n");
1.50 }
1.51 w.append("}\n");
1.52 } finally {
1.53 @@ -271,12 +269,12 @@
1.54 final String tn = typeName(p);
1.55 String[] gs = toGetSet(p.name(), tn);
1.56
1.57 - w.write("private static " + tn + " prop_" + p.name() + ";\n");
1.58 - w.write("public static " + tn + " " + gs[0] + "() {\n");
1.59 + w.write("private " + tn + " prop_" + p.name() + ";\n");
1.60 + w.write("public " + tn + " " + gs[0] + "() {\n");
1.61 w.write(" if (locked) throw new IllegalStateException();\n");
1.62 w.write(" return prop_" + p.name() + ";\n");
1.63 w.write("}\n");
1.64 - w.write("public static void " + gs[1] + "(" + tn + " v) {\n");
1.65 + w.write("public void " + gs[1] + "(" + tn + " v) {\n");
1.66 w.write(" if (locked) throw new IllegalStateException();\n");
1.67 w.write(" prop_" + p.name() + " = v;\n");
1.68 w.write(" if (ko != null) {\n");
1.69 @@ -312,7 +310,7 @@
1.70 final String sn = ee.getSimpleName().toString();
1.71 String[] gs = toGetSet(sn, tn);
1.72
1.73 - w.write("public static " + tn + " " + gs[0] + "() {\n");
1.74 + w.write("public " + tn + " " + gs[0] + "() {\n");
1.75 w.write(" if (locked) throw new IllegalStateException();\n");
1.76 int arg = 0;
1.77 for (VariableElement pe : ee.getParameters()) {