1.1 --- a/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/api/Element.java Tue Mar 05 19:00:36 2013 +0100
1.2 +++ b/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/api/Element.java Thu Mar 14 09:22:28 2013 +0100
1.3 @@ -17,6 +17,8 @@
1.4 */
1.5 package org.apidesign.bck2brwsr.htmlpage.api;
1.6
1.7 +import javafx.scene.web.WebEngine;
1.8 +import netscape.javascript.JSObject;
1.9 import org.apidesign.bck2brwsr.core.JavaScriptBody;
1.10
1.11 /** Represents a generic HTML element.
1.12 @@ -73,13 +75,26 @@
1.13 + "};\n"
1.14 )
1.15 final void on(OnEvent ev, OnHandler r) {
1.16 + WebEngine e = web();
1.17 + JSObject add = (JSObject)e.executeScript(
1.18 + "var x = {}; x.add = new Function('e','attr','r', "
1.19 + + " 'window.document.getElementById(e)[attr] = function(ev) { var d = ev ? ev : null; try { r.onEvent(d); } catch (x) { alert(\"OK\" + r[\"onEvent\"] + \"e\" + d + x); } };'"
1.20 + + "); x;");
1.21 + add.call("add", id, ev.id, r);
1.22 + }
1.23 +
1.24 + private static WebEngine web() {
1.25 + return (WebEngine) System.getProperties().get("webEngine");
1.26 }
1.27
1.28 /** Shows alert message dialog in a browser.
1.29 * @param msg the message to show
1.30 */
1.31 @JavaScriptBody(args = "msg", body = "alert(msg);")
1.32 - public static native void alert(String msg);
1.33 + public static void alert(String msg) {
1.34 + JSObject obj = (JSObject) web().executeScript("window");
1.35 + obj.call("alert", msg);
1.36 + }
1.37
1.38 /** Generic way to query any attribute of this element.
1.39 * @param property name of the attribute