diff -r aeb076729a8a -r a0d8b5ab79a2 launcher/src/main/java/org/apidesign/bck2brwsr/launcher/Console.java --- a/launcher/src/main/java/org/apidesign/bck2brwsr/launcher/Console.java Tue Jan 22 13:34:57 2013 +0100 +++ b/launcher/src/main/java/org/apidesign/bck2brwsr/launcher/Console.java Tue Jan 22 19:16:38 2013 +0100 @@ -53,7 +53,7 @@ private static native void closeWindow(); private static void log(String newText) { - String id = "result"; + String id = "bck2brwsr.result"; String attr = "value"; setAttr(id, attr, getAttr(id, attr) + "\n" + newText); setAttr(id, "scrollTop", getAttr(id, "scrollHeight")); @@ -63,7 +63,7 @@ String clazz = (String) getAttr("clazz", "value"); String method = (String) getAttr("method", "value"); Object res = invokeMethod(clazz, method); - setAttr("result", "value", res); + setAttr("bck2brwsr.result", "value", res); } @JavaScriptBody(args = { "url", "callback", "arr" }, body = "" @@ -111,10 +111,14 @@ } Case c = Case.parseData(data); + if (c.getHtmlFragment() != null) { + setAttr("bck2brwsr.fragment", "innerHTML", c.getHtmlFragment()); + } log("Invoking " + c.getClassName() + '.' + c.getMethodName() + " as request: " + c.getRequestId()); Object result = invokeMethod(c.getClassName(), c.getMethodName()); + setAttr("bck2brwsr.fragment", "innerHTML", ""); log("Result: " + result); result = encodeURL("" + result); @@ -237,11 +241,19 @@ public String getRequestId() { return value("request", data); } + + public String getHtmlFragment() { + return value("html", data); + } @JavaScriptBody(args = "s", body = "return eval('(' + s + ')');") private static native Object toJSON(String s); - @JavaScriptBody(args = {"p", "d"}, body = "return d[p].toString();") + @JavaScriptBody(args = {"p", "d"}, body = + "var v = d[p];\n" + + "if (typeof v === 'undefined') return null;\n" + + "return v.toString();" + ) private static native String value(String p, Object d); } }