1.1 --- a/minesweeper/pom.xml Thu Mar 27 08:58:12 2014 +0100
1.2 +++ b/minesweeper/pom.xml Thu Mar 27 09:57:14 2014 +0100
1.3 @@ -28,12 +28,13 @@
1.4 <version>0.0.10.1</version>
1.5 <configuration>
1.6 <config>
1.7 - <mainClass>org.apidesign.demo.minesweeper.RoboVMJFXLauncher</mainClass>
1.8 + <mainClass>org.apidesign.demo.minesweeper.Main</mainClass>
1.9 <forceLinkClasses>
1.10 <pattern>java.util.logging.ConsoleHandler</pattern>
1.11 <pattern>java.util.logging.SimpleFormatter</pattern>
1.12 <pattern>org.netbeans.html.ko4j.KO4J</pattern>
1.13 <pattern>org.netbeans.html.sound.impl.BrowserAudioEnv</pattern>
1.14 + <pattern>org.apidesign.brwsr.IBrwsrPrsntr</pattern>
1.15 </forceLinkClasses>
1.16 </config>
1.17 <includeJFX>false</includeJFX>
1.18 @@ -130,20 +131,10 @@
1.19 <scope>test</scope>
1.20 </dependency>
1.21 <dependency>
1.22 - <groupId>org.apidesign.html</groupId>
1.23 - <artifactId>xtrnlbrwsr</artifactId>
1.24 - <version>0.7-SNAPSHOT</version>
1.25 + <groupId>org.apidesign.brwsr</groupId>
1.26 + <artifactId>ibrwsr</artifactId>
1.27 + <version>1.0-SNAPSHOT</version>
1.28 </dependency>
1.29 - <dependency>
1.30 - <groupId>org.robovm</groupId>
1.31 - <artifactId>robovm-rt</artifactId>
1.32 - <version>0.0.10</version>
1.33 - </dependency>
1.34 - <dependency>
1.35 - <groupId>org.robovm</groupId>
1.36 - <artifactId>robovm-cocoatouch</artifactId>
1.37 - <version>0.0.10</version>
1.38 - </dependency>
1.39 </dependencies>
1.40 <profiles>
1.41 <profile>
2.1 --- a/minesweeper/src/main/java/org/apidesign/demo/minesweeper/Foo.java Thu Mar 27 08:58:12 2014 +0100
2.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
2.3 @@ -1,30 +0,0 @@
2.4 -/*
2.5 - * To change this license header, choose License Headers in Project Properties.
2.6 - * To change this template file, choose Tools | Templates
2.7 - * and open the template in the editor.
2.8 - */
2.9 -package org.apidesign.demo.minesweeper;
2.10 -
2.11 -import org.robovm.cocoatouch.foundation.NSURL;
2.12 -import org.robovm.cocoatouch.foundation.NSURLRequest;
2.13 -import org.robovm.objc.ObjCClass;
2.14 -import org.robovm.objc.Selector;
2.15 -import org.robovm.rt.bro.Bro;
2.16 -import org.robovm.rt.bro.annotation.Bridge;
2.17 -import org.robovm.rt.bro.annotation.Library;
2.18 -
2.19 -@Library("Foundation")
2.20 -public class Foo {
2.21 - static {
2.22 - Bro.bind();
2.23 - }
2.24 -
2.25 - private static final Selector requestWithURL$ = Selector.register("requestWithURL:");
2.26 - @Bridge(symbol = "objc_msgSend")
2.27 - private native static NSURLRequest objc_requestWithURL(ObjCClass __self__, Selector __cmd__, NSURL URL);
2.28 - public static NSURLRequest requestWithURL(NSURL url) {
2.29 - return objc_requestWithURL(ObjCClass.getByType(NSURLRequest.class), requestWithURL$, url);
2.30 - }
2.31 -
2.32 -
2.33 -}
3.1 --- a/minesweeper/src/main/java/org/apidesign/demo/minesweeper/IBrwsrPrsntr.java Thu Mar 27 08:58:12 2014 +0100
3.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
3.3 @@ -1,59 +0,0 @@
3.4 -package org.apidesign.demo.minesweeper;
3.5 -
3.6 -import java.io.IOException;
3.7 -import java.net.URI;
3.8 -import java.util.logging.Logger;
3.9 -import org.apidesign.html.brwsr.XtrnlBrwsrPrsntr;
3.10 -import org.robovm.cocoatouch.foundation.NSURL;
3.11 -import org.robovm.cocoatouch.uikit.UIWebView;
3.12 -import org.robovm.objc.ObjCBlock;
3.13 -import org.robovm.objc.block.VoidBlock;
3.14 -import org.robovm.rt.bro.Bro;
3.15 -import org.robovm.rt.bro.NativeObject;
3.16 -import org.robovm.rt.bro.annotation.Bridge;
3.17 -import org.robovm.rt.bro.annotation.Library;
3.18 -
3.19 -/**
3.20 - *
3.21 - * @author jtulach
3.22 - */
3.23 -@Library("dispatch")
3.24 -final class IBrwsrPrsntr extends XtrnlBrwsrPrsntr {
3.25 - private final UIWebView wv;
3.26 -
3.27 - static {
3.28 - Bro.bind();
3.29 - }
3.30 -
3.31 - public static class Queue extends NativeObject {
3.32 - }
3.33 -
3.34 - @Bridge(symbol = "dispatch_get_current_queue")
3.35 - public static native Queue getMainQueue();
3.36 -
3.37 - @Bridge(symbol = "dispatch_async")
3.38 - public static native void async(Queue queue, ObjCBlock block);
3.39 -
3.40 - public IBrwsrPrsntr(UIWebView wv) throws Exception {
3.41 - this.wv = wv;
3.42 - }
3.43 -
3.44 - @Override
3.45 - public void runSafe(final Runnable r) {
3.46 - VoidBlock vb = new VoidBlock() {
3.47 - @Override
3.48 - public void invoke() {
3.49 - r.run();
3.50 - }
3.51 - };
3.52 - ObjCBlock ocb = VoidBlock.Marshaler.toObjCBlock(vb);
3.53 - async(getMainQueue(), ocb);
3.54 - }
3.55 -
3.56 - @Override
3.57 - protected void showBrwsr(URI page) throws IOException {
3.58 - wv.loadRequest(Foo.requestWithURL(new NSURL(page.toString())));
3.59 - }
3.60 - private static final Logger LOG = Logger.getLogger(IBrwsrPrsntr.class.getName());
3.61 -
3.62 -}
4.1 --- a/minesweeper/src/main/java/org/apidesign/demo/minesweeper/Main.java Thu Mar 27 08:58:12 2014 +0100
4.2 +++ b/minesweeper/src/main/java/org/apidesign/demo/minesweeper/Main.java Thu Mar 27 09:57:14 2014 +0100
4.3 @@ -23,33 +23,27 @@
4.4 */
4.5 package org.apidesign.demo.minesweeper;
4.6
4.7 -import java.io.IOException;
4.8 -import java.net.URI;
4.9 -import java.util.Arrays;
4.10 -import java.util.logging.ConsoleHandler;
4.11 -import java.util.logging.Level;
4.12 -import java.util.logging.Logger;
4.13 import net.java.html.boot.BrowserBuilder;
4.14 -import org.apidesign.html.brwsr.XtrnlBrwsrPrsntr;
4.15 +import org.apidesign.brwsr.IBrwsrPrsntr;
4.16
4.17
4.18 /** Bootstrap and initialization. */
4.19 public final class Main {
4.20 - private static final Logger LOG = Logger.getLogger(Main.class.getName());
4.21 private Main() {
4.22 }
4.23 +
4.24 + /** Launches the browser */
4.25 + public static void main(String... args) throws Exception {
4.26 + BrowserBuilder.newBrowser(new IBrwsrPrsntr()).
4.27 + loadPage("pages/index.html").
4.28 + loadClass(Main.class).
4.29 + invoke("onPageLoad", args).
4.30 + showAndWait();
4.31 + System.exit(0);
4.32 + }
4.33
4.34 /** Called when page is ready */
4.35 - public static void onPageLoad(String... args) throws Exception {
4.36 - /*
4.37 - Logger l = Logger.getLogger("org.apidesign.html.brwsr");
4.38 - l.setLevel(Level.ALL);
4.39 - l.setUseParentHandlers(false);
4.40 - ConsoleHandler ch = new ConsoleHandler();
4.41 - ch.setLevel(Level.ALL);
4.42 - l.addHandler(ch);
4.43 - */
4.44 -
4.45 + public static void onPageLoad() throws Exception {
4.46 Mines m = new Mines();
4.47 m.applyBindings();
4.48 }
5.1 --- a/minesweeper/src/main/java/org/apidesign/demo/minesweeper/RoboVMJFXLauncher.java Thu Mar 27 08:58:12 2014 +0100
5.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
5.3 @@ -1,57 +0,0 @@
5.4 -package org.apidesign.demo.minesweeper;
5.5 -
5.6 -import java.net.URL;
5.7 -import java.util.logging.Level;
5.8 -import java.util.logging.Logger;
5.9 -import org.robovm.cocoatouch.coregraphics.CGRect;
5.10 -import org.robovm.cocoatouch.foundation.NSAutoreleasePool;
5.11 -import org.robovm.cocoatouch.foundation.NSDictionary;
5.12 -import org.robovm.cocoatouch.uikit.UIApplication;
5.13 -import org.robovm.cocoatouch.uikit.UIApplicationDelegate;
5.14 -import org.robovm.cocoatouch.uikit.UIColor;
5.15 -import org.robovm.cocoatouch.uikit.UIScreen;
5.16 -import org.robovm.cocoatouch.uikit.UIWebView;
5.17 -import org.robovm.cocoatouch.uikit.UIWindow;
5.18 -
5.19 -public class RoboVMJFXLauncher extends UIApplicationDelegate.Adapter {
5.20 - int clickCount;
5.21 - private UIWindow window;
5.22 - private UIWebView wv;
5.23 -
5.24 - @Override
5.25 - public boolean didFinishLaunching(UIApplication application, NSDictionary launchOptions) {
5.26 - wv = new UIWebView();
5.27 - wv.setFrame(new CGRect(0.0f, 0.0f, 800.0f, 1080.0f));
5.28 -
5.29 - window = new UIWindow(UIScreen.getMainScreen().getBounds());
5.30 - window.setBackgroundColor(UIColor.lightGrayColor());
5.31 - window.addSubview(wv);
5.32 - window.makeKeyAndVisible();
5.33 -
5.34 - try {
5.35 - IBrwsrPrsntr p = new IBrwsrPrsntr(wv);
5.36 - URL u = RoboVMJFXLauncher.class.getResource("pages/index.html");
5.37 - p.displayPage(u, new Runnable() {
5.38 - @Override
5.39 - public void run() {
5.40 - try {
5.41 - Main.onPageLoad();
5.42 - } catch (Exception ex) {
5.43 - Logger.getLogger(RoboVMJFXLauncher.class.getName()).log(Level.SEVERE, null, ex);
5.44 - }
5.45 - }
5.46 - });
5.47 - } catch (Throwable t) {
5.48 - t.printStackTrace();
5.49 - }
5.50 -
5.51 -
5.52 - return true;
5.53 - }
5.54 -
5.55 - public static void main(String[] args) throws Exception {
5.56 - NSAutoreleasePool pool = new NSAutoreleasePool();
5.57 - UIApplication.main(args, null, RoboVMJFXLauncher.class);
5.58 - pool.drain();
5.59 - }
5.60 -}
6.1 --- a/pom.xml Thu Mar 27 08:58:12 2014 +0100
6.2 +++ b/pom.xml Thu Mar 27 09:57:14 2014 +0100
6.3 @@ -13,7 +13,7 @@
6.4 </parent>
6.5 <properties>
6.6 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
6.7 - <net.java.html.version>0.8-SNAPSHOT</net.java.html.version>
6.8 + <net.java.html.version>0.8</net.java.html.version>
6.9 <bck2brwsr.version>0.8.1</bck2brwsr.version>
6.10 <license>COPYING</license>
6.11 </properties>