javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java
branchmodel
changeset 954 6448c284fe21
parent 950 445d5f1d4177
child 955 dad881565d0a
     1.1 --- a/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java	Mon Apr 08 12:36:12 2013 +0200
     1.2 +++ b/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java	Mon Apr 08 16:51:30 2013 +0200
     1.3 @@ -901,13 +901,26 @@
     1.4              String n = e.getSimpleName().toString();
     1.5              body.append("public void ").append(n).append("(");
     1.6              StringBuilder assembleURL = new StringBuilder();
     1.7 +            String jsonpVarName = null;
     1.8              {
     1.9                  String sep = "";
    1.10 +                boolean skipJSONP = onR.jsonp().isEmpty();
    1.11                  for (String p : findParamNames(e, onR.url(), assembleURL)) {
    1.12 +                    if (!skipJSONP && p.equals(onR.jsonp())) {
    1.13 +                        skipJSONP = true;
    1.14 +                        jsonpVarName = p;
    1.15 +                        continue;
    1.16 +                    }
    1.17                      body.append(sep);
    1.18                      body.append("String ").append(p);
    1.19                      sep = ", ";
    1.20                  }
    1.21 +                if (!skipJSONP) {
    1.22 +                    err().printMessage(Diagnostic.Kind.ERROR, 
    1.23 +                        "Name of jsonp attribute ('" + onR.jsonp() + 
    1.24 +                        "') is not used in url attribute '" + onR.url() + "'"
    1.25 +                    );
    1.26 +                }
    1.27              }
    1.28              body.append(") {\n");
    1.29              body.append("  final Object[] result = { null };\n");
    1.30 @@ -944,9 +957,14 @@
    1.31                  "    }\n" +
    1.32                  "  }\n"
    1.33              );
    1.34 +            body.append("  ProcessResult pr = new ProcessResult();\n");
    1.35 +            if (jsonpVarName != null) {
    1.36 +                body.append("  String ").append(jsonpVarName).
    1.37 +                    append(" = org.apidesign.bck2brwsr.htmlpage.ConvertTypes.createJSONP(result, pr);\n");
    1.38 +            }
    1.39              body.append("  org.apidesign.bck2brwsr.htmlpage.ConvertTypes.loadJSON(\n      ");
    1.40              body.append(assembleURL);
    1.41 -            body.append(", result, new ProcessResult()\n  );\n");
    1.42 +            body.append(", result, pr, ").append(jsonpVarName).append("\n  );\n");
    1.43  //            body.append("  ").append(clazz.getSimpleName()).append(".").append(n).append("(");
    1.44  //            body.append(wrapParams(e, null, className, "ev", "data"));
    1.45  //            body.append(");\n");