package jalview.util; import edu.stanford.ejalbert.exception.BrowserLaunchingInitializingException; import edu.stanford.ejalbert.exception.UnsupportedOperatingSystemException; import jalview.bin.Cache; import jalview.bin.Console; 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) { if (Platform.isJS()) { Platform.openURL(url); return; } else /** * Java only * * @j2sIgnore */ { BrowserLauncher bl = getInstance(); if (bl != null) { if (Platform.isMac() || preferredBrowser == null) { bl.openURLinBrowser(url); } else { bl.openURLinBrowser(preferredBrowser, url); } } else { Console.warn("Could not open URL '" + url + "'"); } } } public static void resetBrowser() { String defaultBrowser = Cache.getProperty("DEFAULT_BROWSER"); preferredBrowser = defaultBrowser; } }