w.indent();
// switch (getMethodIndex()) {
w.write("switch (getMethodIndex()) {");
w.indent();
for (int j = 0; j < uiHandlerMethods.length; j++) {
JMethod uiMethod = uiHandlerMethods[j];
// case 0:
w.write("case %s:", j);
w.indent();
// getEventTarget().onClickRoot((ClickEvent) somethingUnlikelyToCollideWithParamNames,
// getRoot(), a, b);
StringBuffer sb = new StringBuffer();
JParameter[] sourceParameters = sourceMethod.getParameters();
// Cat the extra parameters i.e. ", a, b"
JType[] uiHandlerParameterTypes = uiMethod.getParameterTypes();
if (uiHandlerParameterTypes.length >= 2) {
sb.append(", getRoot()");
}
for (int k = 2; k < uiHandlerParameterTypes.length; k++) {
JParameter sourceParam = sourceParameters[k + 1];
sb.append(", ");
sb.append(sourceParam.getName());
}
w.write("getEventTarget().%s((%s) %sEvent%s);", uiMethod.getName(),
uiHandlerParameterTypes[0].getQualifiedSourceName(), SAFE_VAR_PREFIX,
sb.toString());
// break;
w.write("break;");
w.newline();