]> gitweb.fperrin.net Git - GpsPrune.git/blobdiff - tim/prune/function/browser/BrowserLauncher.java
Moved source into separate src directory due to popular request
[GpsPrune.git] / tim / prune / function / browser / BrowserLauncher.java
diff --git a/tim/prune/function/browser/BrowserLauncher.java b/tim/prune/function/browser/BrowserLauncher.java
deleted file mode 100644 (file)
index 7c6fa58..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-package tim.prune.function.browser;
-
-import java.net.URI;
-import javax.swing.JOptionPane;
-
-
-/**
- * Class to launch a browser window to show an external map
- * Some code and ideas taken from BareBonesBrowserLaunch at centerkey.com
- */
-public abstract class BrowserLauncher
-{
-       private static boolean _initialised = false;
-       private static String[] _browserCommand = null;
-       private static boolean _urlNeedsQuotes = false;
-
-
-       /**
-        * Init method to set up browser
-        */
-       private static void init()
-       {
-               _browserCommand = null;
-               // First check if "which" command is available
-               if (commandExists("which"))
-               {
-                       // which exists, so try browsers in turn
-                       String[] browsersToTry = {"firefox", "iceweasel", "konqueror", "opera", "epiphany",
-                               "mozilla", "chromium", "midori", "safari", "lynx"};
-                       String browserFound = null;
-                       for (String browser : browsersToTry)
-                       {
-                               if (commandExists(browser))
-                               {
-                                       browserFound = browser;
-                                       break;
-                               }
-                       }
-                       if (browserFound != null) {
-                               _browserCommand = new String[] {browserFound, null};
-                       }
-               }
-
-               if (_browserCommand == null)
-               {
-                       // no which command (or none of the browsers found), so check if os name looks like a mac
-                       String osName = System.getProperty("os.name").toLowerCase();
-                       boolean isMacOsx = osName.indexOf("mac os") >= 0 || osName.indexOf("darwin") >= 0;
-                       if (isMacOsx) {
-                               // for Mac Osx just use "open" command
-                               _browserCommand = new String[] {"open", null};
-                       }
-                       else {
-                               // assume it's not linux or mac, so try windows method using "start" command
-                               _browserCommand = new String[] {"cmd.exe", "/C", "start", "\"\"", null};
-                               _urlNeedsQuotes = true;
-                       }
-               }
-               _initialised = true;
-       }
-
-
-       /**
-        * Check if the specified command exists on the system
-        * @param inCommand command to check
-        * @return true if the command exists
-        */
-       private static boolean commandExists(String inCommand)
-       {
-               try
-               {
-                       String[] commands = {"which", inCommand};
-                       if (Runtime.getRuntime().exec(commands).waitFor() == 0)
-                       {
-                               return true;
-                       }
-               }
-               catch (Exception e) {} // failed
-               return false;
-       }
-
-
-       /**
-        * Launch a browser window to show the given url
-        * @param inUrl url to show
-        */
-       public static void launchBrowser(String inUrl)
-       {
-               if (inUrl == null) {return;}
-               // First choice is to try the Desktop library from java 6, if available
-               try {
-                       Class<?> d = Class.forName("java.awt.Desktop");
-                       d.getDeclaredMethod("browse", new Class[] {URI.class}).invoke(
-                               d.getDeclaredMethod("getDesktop").invoke(null), new Object[] {URI.create(inUrl)});
-                       //above code mimics: Desktop.getDesktop().browse(URI.create(inUrl));
-               }
-               catch (Exception ignore)
-               {
-                       // The Desktop call failed, need to try backup methods
-                       if (!_initialised) {init();}
-                       if (_browserCommand == null) {
-                               JOptionPane.showMessageDialog(null, "Cannot show url: " + inUrl);
-                       }
-                       else
-                       {
-                               try
-                               {
-                                       // enclose url in quotes if necessary
-                                       String url = inUrl;
-                                       if (_urlNeedsQuotes) {url = "\"" + url + "\"";}
-                                       // Fill in url in last element of command array
-                                       _browserCommand[_browserCommand.length - 1] = url;
-                                       // execute command to launch browser
-                                       Runtime.getRuntime().exec(_browserCommand);
-                               }
-                               catch (Exception e) {
-                                       JOptionPane.showMessageDialog(null, "Failed to show url: " + inUrl);
-                               }
-                       }
-               }
-       }
-}