# HG changeset patch # User Jaroslav Tulach # Date 1395910634 -3600 # Node ID 17aafe5116d521cff7ba8c8dbcfdb00d5f164fa8 # Parent 898f93ea65e2db244f615740bd8dcd9976c320e4 Using IBrwsrPrsntr directly diff -r 898f93ea65e2 -r 17aafe5116d5 minesweeper/pom.xml --- a/minesweeper/pom.xml Thu Mar 27 08:58:12 2014 +0100 +++ b/minesweeper/pom.xml Thu Mar 27 09:57:14 2014 +0100 @@ -28,12 +28,13 @@ 0.0.10.1 - org.apidesign.demo.minesweeper.RoboVMJFXLauncher + org.apidesign.demo.minesweeper.Main java.util.logging.ConsoleHandler java.util.logging.SimpleFormatter org.netbeans.html.ko4j.KO4J org.netbeans.html.sound.impl.BrowserAudioEnv + org.apidesign.brwsr.IBrwsrPrsntr false @@ -130,20 +131,10 @@ test - org.apidesign.html - xtrnlbrwsr - 0.7-SNAPSHOT + org.apidesign.brwsr + ibrwsr + 1.0-SNAPSHOT - - org.robovm - robovm-rt - 0.0.10 - - - org.robovm - robovm-cocoatouch - 0.0.10 - diff -r 898f93ea65e2 -r 17aafe5116d5 minesweeper/src/main/java/org/apidesign/demo/minesweeper/Foo.java --- a/minesweeper/src/main/java/org/apidesign/demo/minesweeper/Foo.java Thu Mar 27 08:58:12 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package org.apidesign.demo.minesweeper; - -import org.robovm.cocoatouch.foundation.NSURL; -import org.robovm.cocoatouch.foundation.NSURLRequest; -import org.robovm.objc.ObjCClass; -import org.robovm.objc.Selector; -import org.robovm.rt.bro.Bro; -import org.robovm.rt.bro.annotation.Bridge; -import org.robovm.rt.bro.annotation.Library; - -@Library("Foundation") -public class Foo { - static { - Bro.bind(); - } - - private static final Selector requestWithURL$ = Selector.register("requestWithURL:"); - @Bridge(symbol = "objc_msgSend") - private native static NSURLRequest objc_requestWithURL(ObjCClass __self__, Selector __cmd__, NSURL URL); - public static NSURLRequest requestWithURL(NSURL url) { - return objc_requestWithURL(ObjCClass.getByType(NSURLRequest.class), requestWithURL$, url); - } - - -} diff -r 898f93ea65e2 -r 17aafe5116d5 minesweeper/src/main/java/org/apidesign/demo/minesweeper/IBrwsrPrsntr.java --- a/minesweeper/src/main/java/org/apidesign/demo/minesweeper/IBrwsrPrsntr.java Thu Mar 27 08:58:12 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,59 +0,0 @@ -package org.apidesign.demo.minesweeper; - -import java.io.IOException; -import java.net.URI; -import java.util.logging.Logger; -import org.apidesign.html.brwsr.XtrnlBrwsrPrsntr; -import org.robovm.cocoatouch.foundation.NSURL; -import org.robovm.cocoatouch.uikit.UIWebView; -import org.robovm.objc.ObjCBlock; -import org.robovm.objc.block.VoidBlock; -import org.robovm.rt.bro.Bro; -import org.robovm.rt.bro.NativeObject; -import org.robovm.rt.bro.annotation.Bridge; -import org.robovm.rt.bro.annotation.Library; - -/** - * - * @author jtulach - */ -@Library("dispatch") -final class IBrwsrPrsntr extends XtrnlBrwsrPrsntr { - private final UIWebView wv; - - static { - Bro.bind(); - } - - public static class Queue extends NativeObject { - } - - @Bridge(symbol = "dispatch_get_current_queue") - public static native Queue getMainQueue(); - - @Bridge(symbol = "dispatch_async") - public static native void async(Queue queue, ObjCBlock block); - - public IBrwsrPrsntr(UIWebView wv) throws Exception { - this.wv = wv; - } - - @Override - public void runSafe(final Runnable r) { - VoidBlock vb = new VoidBlock() { - @Override - public void invoke() { - r.run(); - } - }; - ObjCBlock ocb = VoidBlock.Marshaler.toObjCBlock(vb); - async(getMainQueue(), ocb); - } - - @Override - protected void showBrwsr(URI page) throws IOException { - wv.loadRequest(Foo.requestWithURL(new NSURL(page.toString()))); - } - private static final Logger LOG = Logger.getLogger(IBrwsrPrsntr.class.getName()); - -} diff -r 898f93ea65e2 -r 17aafe5116d5 minesweeper/src/main/java/org/apidesign/demo/minesweeper/Main.java --- a/minesweeper/src/main/java/org/apidesign/demo/minesweeper/Main.java Thu Mar 27 08:58:12 2014 +0100 +++ b/minesweeper/src/main/java/org/apidesign/demo/minesweeper/Main.java Thu Mar 27 09:57:14 2014 +0100 @@ -23,33 +23,27 @@ */ package org.apidesign.demo.minesweeper; -import java.io.IOException; -import java.net.URI; -import java.util.Arrays; -import java.util.logging.ConsoleHandler; -import java.util.logging.Level; -import java.util.logging.Logger; import net.java.html.boot.BrowserBuilder; -import org.apidesign.html.brwsr.XtrnlBrwsrPrsntr; +import org.apidesign.brwsr.IBrwsrPrsntr; /** Bootstrap and initialization. */ public final class Main { - private static final Logger LOG = Logger.getLogger(Main.class.getName()); private Main() { } + + /** Launches the browser */ + public static void main(String... args) throws Exception { + BrowserBuilder.newBrowser(new IBrwsrPrsntr()). + loadPage("pages/index.html"). + loadClass(Main.class). + invoke("onPageLoad", args). + showAndWait(); + System.exit(0); + } /** Called when page is ready */ - public static void onPageLoad(String... args) throws Exception { - /* - Logger l = Logger.getLogger("org.apidesign.html.brwsr"); - l.setLevel(Level.ALL); - l.setUseParentHandlers(false); - ConsoleHandler ch = new ConsoleHandler(); - ch.setLevel(Level.ALL); - l.addHandler(ch); - */ - + public static void onPageLoad() throws Exception { Mines m = new Mines(); m.applyBindings(); } diff -r 898f93ea65e2 -r 17aafe5116d5 minesweeper/src/main/java/org/apidesign/demo/minesweeper/RoboVMJFXLauncher.java --- a/minesweeper/src/main/java/org/apidesign/demo/minesweeper/RoboVMJFXLauncher.java Thu Mar 27 08:58:12 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,57 +0,0 @@ -package org.apidesign.demo.minesweeper; - -import java.net.URL; -import java.util.logging.Level; -import java.util.logging.Logger; -import org.robovm.cocoatouch.coregraphics.CGRect; -import org.robovm.cocoatouch.foundation.NSAutoreleasePool; -import org.robovm.cocoatouch.foundation.NSDictionary; -import org.robovm.cocoatouch.uikit.UIApplication; -import org.robovm.cocoatouch.uikit.UIApplicationDelegate; -import org.robovm.cocoatouch.uikit.UIColor; -import org.robovm.cocoatouch.uikit.UIScreen; -import org.robovm.cocoatouch.uikit.UIWebView; -import org.robovm.cocoatouch.uikit.UIWindow; - -public class RoboVMJFXLauncher extends UIApplicationDelegate.Adapter { - int clickCount; - private UIWindow window; - private UIWebView wv; - - @Override - public boolean didFinishLaunching(UIApplication application, NSDictionary launchOptions) { - wv = new UIWebView(); - wv.setFrame(new CGRect(0.0f, 0.0f, 800.0f, 1080.0f)); - - window = new UIWindow(UIScreen.getMainScreen().getBounds()); - window.setBackgroundColor(UIColor.lightGrayColor()); - window.addSubview(wv); - window.makeKeyAndVisible(); - - try { - IBrwsrPrsntr p = new IBrwsrPrsntr(wv); - URL u = RoboVMJFXLauncher.class.getResource("pages/index.html"); - p.displayPage(u, new Runnable() { - @Override - public void run() { - try { - Main.onPageLoad(); - } catch (Exception ex) { - Logger.getLogger(RoboVMJFXLauncher.class.getName()).log(Level.SEVERE, null, ex); - } - } - }); - } catch (Throwable t) { - t.printStackTrace(); - } - - - return true; - } - - public static void main(String[] args) throws Exception { - NSAutoreleasePool pool = new NSAutoreleasePool(); - UIApplication.main(args, null, RoboVMJFXLauncher.class); - pool.drain(); - } -} diff -r 898f93ea65e2 -r 17aafe5116d5 pom.xml --- a/pom.xml Thu Mar 27 08:58:12 2014 +0100 +++ b/pom.xml Thu Mar 27 09:57:14 2014 +0100 @@ -13,7 +13,7 @@ UTF-8 - 0.8-SNAPSHOT + 0.8 0.8.1 COPYING