javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/api/Element.java
branchfx
changeset 845 859804c78010
parent 813 2fa85847ccf7
child 969 df08556c5c7c
     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