No more references to WebEngine classloader
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Mon, 17 Jun 2013 19:56:54 +0200
branchclassloader
changeset 1229b404b20052c
parent 121 81e976eb0fc2
child 123 8e54b83ea65c
No more references to WebEngine
ko-fx/src/main/java/org/apidesign/html/kofx/Knockout.java
ko-fx/src/test/java/org/apidesign/html/kofx/KnockoutFXTest.java
     1.1 --- a/ko-fx/src/main/java/org/apidesign/html/kofx/Knockout.java	Mon Jun 17 18:07:59 2013 +0200
     1.2 +++ b/ko-fx/src/main/java/org/apidesign/html/kofx/Knockout.java	Mon Jun 17 19:56:54 2013 +0200
     1.3 @@ -26,7 +26,6 @@
     1.4  import java.io.InputStreamReader;
     1.5  import java.util.logging.Level;
     1.6  import java.util.logging.Logger;
     1.7 -import javafx.scene.web.WebEngine;
     1.8  import net.java.html.json.Model;
     1.9  import netscape.javascript.JSObject;
    1.10  import org.apidesign.bck2brwsr.core.JavaScriptBody;
    1.11 @@ -126,15 +125,17 @@
    1.12                      throw new IllegalStateException(ex);
    1.13                  }
    1.14              }
    1.15 -            WebEngine web = (WebEngine) System.getProperties().get("webEngine");
    1.16 -            web.executeScript(sb.toString());
    1.17 -            Object ko = web.executeScript("ko");
    1.18 +            exec(sb.toString());
    1.19 +            Object ko = exec("ko");
    1.20              assert ko != null : "Knockout library successfully defined 'ko'";
    1.21  
    1.22              Console.register();
    1.23              KObject = (JSObject) kObj();
    1.24          }
    1.25          
    1.26 +        @JavaScriptBody(args = { "s" }, body = "return eval(s);")
    1.27 +        private static native Object exec(String s);
    1.28 +        
    1.29          @JavaScriptBody(args = {}, body =
    1.30                    "  var k = {};"
    1.31                  + "  k.array= function() {"
     2.1 --- a/ko-fx/src/test/java/org/apidesign/html/kofx/KnockoutFXTest.java	Mon Jun 17 18:07:59 2013 +0200
     2.2 +++ b/ko-fx/src/test/java/org/apidesign/html/kofx/KnockoutFXTest.java	Mon Jun 17 19:56:54 2013 +0200
     2.3 @@ -24,6 +24,7 @@
     2.4  import javafx.scene.web.WebEngine;
     2.5  import net.java.html.BrwsrCtx;
     2.6  import netscape.javascript.JSObject;
     2.7 +import org.apidesign.bck2brwsr.core.JavaScriptBody;
     2.8  import org.apidesign.bck2brwsr.vmtest.VMTest;
     2.9  import org.apidesign.html.context.spi.Contexts;
    2.10  import org.apidesign.html.json.spi.Technology;
    2.11 @@ -69,17 +70,11 @@
    2.12          return json;
    2.13      }
    2.14  
    2.15 -    private static JSObject eval;
    2.16      @Override
    2.17 -    public Object executeScript(String script, Object[] arguments) {
    2.18 -        if (eval == null) {
    2.19 -            WebEngine web = (WebEngine) System.getProperties().get("webEngine");
    2.20 -            eval = (JSObject) web.executeScript("(function(scope) {"
    2.21 -                + "  scope.jko = {};"
    2.22 -                + "  scope.jko.compute = function(s, args) { var f = new Function(s); return f.apply(null, args); }"
    2.23 -                + "})(window); window.jko;");
    2.24 -        }
    2.25 -        return eval.call("compute", script, arguments);
    2.26 -    }
    2.27 +    @JavaScriptBody(args = { "s", "args" }, body = ""
    2.28 +        + "var f = new Function(s); "
    2.29 +        + "return f.apply(null, args);"
    2.30 +    )
    2.31 +    public native Object executeScript(String script, Object[] arguments);
    2.32      
    2.33  }