Using IBrwsrPrsntr directly ibrwsr
authorJaroslav Tulach <jtulach@netbeans.org>
Thu, 27 Mar 2014 09:57:14 +0100
branchibrwsr
changeset 12317aafe5116d5
parent 122 898f93ea65e2
child 124 533c2be1747c
Using IBrwsrPrsntr directly
minesweeper/pom.xml
minesweeper/src/main/java/org/apidesign/demo/minesweeper/Foo.java
minesweeper/src/main/java/org/apidesign/demo/minesweeper/IBrwsrPrsntr.java
minesweeper/src/main/java/org/apidesign/demo/minesweeper/Main.java
minesweeper/src/main/java/org/apidesign/demo/minesweeper/RoboVMJFXLauncher.java
pom.xml
     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>