diff -r 1adce93fea0f -r 2fa85847ccf7 javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java --- a/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java Wed Jan 23 12:53:23 2013 +0100 +++ b/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java Tue Mar 05 19:00:36 2013 +0100 @@ -45,6 +45,7 @@ import javax.lang.model.element.TypeElement; import javax.lang.model.element.VariableElement; import javax.lang.model.type.MirroredTypeException; +import javax.lang.model.type.TypeKind; import javax.lang.model.type.TypeMirror; import javax.tools.Diagnostic; import javax.tools.FileObject; @@ -209,7 +210,19 @@ } first = false; if (ve.asType() == stringType) { - params.append('"').append(id).append('"'); + if (ve.getSimpleName().contentEquals("id")) { + params.append('"').append(id).append('"'); + continue; + } + params.append("org.apidesign.bck2brwsr.htmlpage.ConvertTypes.toString(ev, \""); + params.append(ve.getSimpleName().toString()); + params.append("\")"); + continue; + } + if (processingEnv.getTypeUtils().getPrimitiveType(TypeKind.DOUBLE) == ve.asType()) { + params.append("org.apidesign.bck2brwsr.htmlpage.ConvertTypes.toDouble(ev, \""); + params.append(ve.getSimpleName().toString()); + params.append("\")"); continue; } String rn = ve.asType().toString(); @@ -222,7 +235,7 @@ continue; } processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, - "@On method can only accept String or " + className + " arguments", + "@On method can only accept String named 'id' or " + className + " arguments", ee ); return false; @@ -252,10 +265,10 @@ } w.append(" }\n"); if (dispatchCnt > 0) { - w.append("class OnDispatch implements Runnable {\n"); + w.append("class OnDispatch implements OnHandler {\n"); w.append(" private final int dispatch;\n"); w.append(" OnDispatch(int d) { dispatch = d; }\n"); - w.append(" public void run() {\n"); + w.append(" public void onEvent(Object ev) {\n"); w.append(" switch (dispatch) {\n"); w.append(dispatch); w.append(" }\n");