1.1 --- a/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java Fri Mar 22 16:43:51 2013 +0100
1.2 +++ b/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java Fri Mar 22 17:03:32 2013 +0100
1.3 @@ -46,6 +46,7 @@
1.4 import javax.lang.model.element.TypeElement;
1.5 import javax.lang.model.element.VariableElement;
1.6 import javax.lang.model.type.MirroredTypeException;
1.7 +import javax.lang.model.type.TypeKind;
1.8 import javax.lang.model.type.TypeMirror;
1.9 import javax.lang.model.util.Types;
1.10 import javax.tools.Diagnostic;
1.11 @@ -283,7 +284,19 @@
1.12 }
1.13 first = false;
1.14 if (ve.asType() == stringType) {
1.15 - params.append('"').append(id).append('"');
1.16 + if (ve.getSimpleName().contentEquals("id")) {
1.17 + params.append('"').append(id).append('"');
1.18 + continue;
1.19 + }
1.20 + params.append("org.apidesign.bck2brwsr.htmlpage.ConvertTypes.toString(ev, \"");
1.21 + params.append(ve.getSimpleName().toString());
1.22 + params.append("\")");
1.23 + continue;
1.24 + }
1.25 + if (processingEnv.getTypeUtils().getPrimitiveType(TypeKind.DOUBLE) == ve.asType()) {
1.26 + params.append("org.apidesign.bck2brwsr.htmlpage.ConvertTypes.toDouble(ev, \"");
1.27 + params.append(ve.getSimpleName().toString());
1.28 + params.append("\")");
1.29 continue;
1.30 }
1.31 String rn = ve.asType().toString();
1.32 @@ -296,7 +309,7 @@
1.33 continue;
1.34 }
1.35 processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR,
1.36 - "@On method can only accept String or " + className + " arguments",
1.37 + "@On method can only accept String named 'id' or " + className + " arguments",
1.38 ee
1.39 );
1.40 return false;
1.41 @@ -328,10 +341,10 @@
1.42 }
1.43 w.append(" }\n");
1.44 if (dispatchCnt > 0) {
1.45 - w.append("class OnDispatch implements Runnable {\n");
1.46 + w.append("class OnDispatch implements OnHandler {\n");
1.47 w.append(" private final int dispatch;\n");
1.48 w.append(" OnDispatch(int d) { dispatch = d; }\n");
1.49 - w.append(" public void run() {\n");
1.50 + w.append(" public void onEvent(Object ev) {\n");
1.51 w.append(" switch (dispatch) {\n");
1.52 w.append(dispatch);
1.53 w.append(" }\n");