JAL-3103 Put jalview.jar first in getdown for .properties files. Remove now-not-neede...
[jalview.git] / src / jalview / util / BrowserLauncher.java
index 304fc59..cddbecb 100644 (file)
@@ -1,17 +1,44 @@
 package jalview.util;
 
-import java.io.IOException;
-
 import edu.stanford.ejalbert.exception.BrowserLaunchingInitializingException;
 import edu.stanford.ejalbert.exception.UnsupportedOperatingSystemException;
 import jalview.bin.Cache;
 import jalview.bin.Console;
 
-public class BrowserLauncher
+public class BrowserLauncher extends edu.stanford.ejalbert.BrowserLauncher
 {
+  private static BrowserLauncher INSTANCE = null;
+
+  // get singleton BrowserLauncher instance
+  public static BrowserLauncher getInstance()
+  {
+    if (INSTANCE == null)
+    {
+      try
+      {
+        INSTANCE = new BrowserLauncher();
+      } catch (BrowserLaunchingInitializingException e)
+      {
+        Console.warn(MessageManager.formatMessage(
+                "exception.browser_unable_to_launch", e.getMessage()));
+      } catch (UnsupportedOperatingSystemException e)
+      {
+        Console.warn(MessageManager.formatMessage("exception."));
+        Console.debug(e.getMessage());
+      }
+    }
+    return INSTANCE;
+  }
+
+  public BrowserLauncher() throws BrowserLaunchingInitializingException,
+          UnsupportedOperatingSystemException
+  {
+    super();
+  }
+
   private static String preferredBrowser = null;
 
-  public static void openURL(String url) throws IOException
+  public static void openURL(String url)
   {
     if (Platform.isJS())
     {
@@ -25,19 +52,7 @@ public class BrowserLauncher
      * @j2sIgnore
      */
     {
-      edu.stanford.ejalbert.BrowserLauncher bl = null;
-      try
-      {
-        bl = new edu.stanford.ejalbert.BrowserLauncher();
-      } catch (BrowserLaunchingInitializingException e)
-      {
-        Console.warn(MessageManager.formatMessage(
-                "exception.browser_unable_to_launch", e.getMessage()));
-      } catch (UnsupportedOperatingSystemException e)
-      {
-        Console.warn(MessageManager.formatMessage("exception."));
-        Console.debug(e.getMessage());
-      }
+      BrowserLauncher bl = getInstance();
       if (bl != null)
       {
         if (Platform.isMac() || preferredBrowser == null)
@@ -46,11 +61,13 @@ public class BrowserLauncher
         }
         else
         {
-          System.err.println(
-                  "**** OPENURL (" + preferredBrowser + ", " + url + ")");
           bl.openURLinBrowser(preferredBrowser, url);
         }
       }
+      else
+      {
+        Console.warn("Could not open URL '" + url + "'");
+      }
     }
   }