# HG changeset patch # User Jaroslav Tulach # Date 1393917851 -3600 # Node ID 5a8a80e18430b74d8318e8a73475e928ace4fe44 # Parent 10e6f6e098114ca920413ae6161fde8196b1fe00 Experimenting with external browser diff -r 10e6f6e09811 -r 5a8a80e18430 minesweeper/pom.xml --- a/minesweeper/pom.xml Sat Feb 22 16:35:11 2014 +0100 +++ b/minesweeper/pom.xml Tue Mar 04 08:24:11 2014 +0100 @@ -224,6 +224,12 @@ provided + org.apidesign.html + dlvkbrwsr + 0.2-SNAPSHOT + jar + + org.netbeans.html ko-ws-tyrus ${net.java.html.version} @@ -234,12 +240,6 @@ - - org.apidesign.html - dlvkbrwsr - 0.1-SNAPSHOT - jar - diff -r 10e6f6e09811 -r 5a8a80e18430 minesweeper/src/main/java/org/apidesign/demo/minesweeper/Main.java --- a/minesweeper/src/main/java/org/apidesign/demo/minesweeper/Main.java Sat Feb 22 16:35:11 2014 +0100 +++ b/minesweeper/src/main/java/org/apidesign/demo/minesweeper/Main.java Tue Mar 04 08:24:11 2014 +0100 @@ -23,21 +23,61 @@ */ package org.apidesign.demo.minesweeper; +import java.io.IOException; +import java.net.URI; +import java.util.Arrays; +import java.util.logging.Level; +import java.util.logging.Logger; import net.java.html.boot.BrowserBuilder; +import org.apidesign.html.dlvkbrwsr.XtrnlBrwsrPrsntr; /** Bootstrap and initialization. */ public final class Main { + private static final Logger LOG = Logger.getLogger(Main.class.getName()); private Main() { } + + static Object[] showBrwsr(URI uri, String cmd) throws IOException { + LOG.log(Level.INFO, "Showing {0}", uri); + if (cmd == null) { + try { + LOG.log(Level.INFO, "Trying Desktop.browse on {0} {2} by {1}", new Object[]{ + System.getProperty("java.vm.name"), + System.getProperty("java.vm.vendor"), + System.getProperty("java.vm.version"),}); + java.awt.Desktop.getDesktop().browse(uri); + LOG.log(Level.INFO, "Desktop.browse successfully finished"); + return null; + } catch (UnsupportedOperationException ex) { + LOG.log(Level.INFO, "Desktop.browse not supported: {0}", ex.getMessage()); + LOG.log(Level.FINE, null, ex); + } + } + { + String cmdName = cmd == null ? "xdg-open" : cmd; + String[] cmdArr = { + cmdName, uri.toString() + }; + LOG.log(Level.INFO, "Launching {0}", Arrays.toString(cmdArr)); + final Process process = Runtime.getRuntime().exec(cmdArr); + return new Object[]{process, null}; + } + } /** Launches the browser */ public static void main(String... args) throws Exception { - BrowserBuilder.newBrowser(). + BrowserBuilder.newBrowser(new XtrnlBrwsrPrsntr() { + @Override + protected void showBrwsr(URI page) throws IOException { + Main.showBrwsr(page, null); + } + }). loadPage("pages/index.html"). loadClass(Main.class). invoke("onPageLoad", args). showAndWait(); + System.in.read(); System.exit(0); } diff -r 10e6f6e09811 -r 5a8a80e18430 minesweeper/src/main/webapp/pages/index.html --- a/minesweeper/src/main/webapp/pages/index.html Sat Feb 22 16:35:11 2014 +0100 +++ b/minesweeper/src/main/webapp/pages/index.html Tue Mar 04 08:24:11 2014 +0100 @@ -149,6 +149,6 @@ var vm = bck2brwsr('${project.build.finalName}.jar'); vm.loadClass('org.apidesign.demo.minesweeper.MainBrwsr'); - + diff -r 10e6f6e09811 -r 5a8a80e18430 pom.xml --- a/pom.xml Sat Feb 22 16:35:11 2014 +0100 +++ b/pom.xml Tue Mar 04 08:24:11 2014 +0100 @@ -13,7 +13,7 @@ UTF-8 - 0.7.5 + 0.8-SNAPSHOT 0.8.1 COPYING