From b60d50a7ce4ed9c43390e938f11c2dc9ff75ab23 Mon Sep 17 00:00:00 2001 From: Yana Stamcheva Date: Tue, 15 Aug 2006 12:27:48 +0000 Subject: [PATCH] launch the default browser on mac - fixed --- .../utils/CrossPlatformBrowserLauncher.java | 45 +++++++++++-------- 1 file changed, 26 insertions(+), 19 deletions(-) diff --git a/src/net/java/sip/communicator/impl/gui/utils/CrossPlatformBrowserLauncher.java b/src/net/java/sip/communicator/impl/gui/utils/CrossPlatformBrowserLauncher.java index 5073845a3..07e7143f7 100644 --- a/src/net/java/sip/communicator/impl/gui/utils/CrossPlatformBrowserLauncher.java +++ b/src/net/java/sip/communicator/impl/gui/utils/CrossPlatformBrowserLauncher.java @@ -10,10 +10,12 @@ import java.net.MalformedURLException; import java.net.URL; -import javax.swing.JOptionPane; - +import net.java.sip.communicator.impl.gui.main.message.ChatWindow; +import net.java.sip.communicator.util.Logger; import edu.stanford.ejalbert.BrowserLauncher; import edu.stanford.ejalbert.BrowserLauncherRunner; +import edu.stanford.ejalbert.exception.BrowserLaunchingInitializingException; +import edu.stanford.ejalbert.exception.UnsupportedOperatingSystemException; import edu.stanford.ejalbert.exceptionhandler.BrowserLauncherErrorHandler; /** @@ -24,6 +26,8 @@ */ public class CrossPlatformBrowserLauncher { + private static Logger logger = Logger.getLogger(ChatWindow.class.getName()); + private static BrowserLauncher launcher; /** @@ -33,14 +37,15 @@ public class CrossPlatformBrowserLauncher { * @param url The url to open in the browser. */ public static void openURL(String urlString) { - try { - launcher = new BrowserLauncher(null); - - if (urlString == null || urlString.trim().length() == 0) { + + try { + launcher = new BrowserLauncher(null); + + if (urlString == null || urlString.trim().length() == 0) { throw new MalformedURLException("You must specify a url."); } new URL(urlString); // may throw MalformedURLException - BrowserLauncherErrorHandler errorHandler = new TestAppErrorHandler(); + BrowserLauncherErrorHandler errorHandler = new BrowserErrorHandler(); String targetBrowser = launcher.getBrowserList().get(0).toString(); BrowserLauncherRunner runner = new BrowserLauncherRunner( @@ -51,24 +56,26 @@ public static void openURL(String urlString) { Thread launcherThread = new Thread(runner); launcherThread.start(); } - catch (Exception ex) { - // show message to user - JOptionPane.showMessageDialog(null, - ex.getMessage(), - "Error Message", - JOptionPane.ERROR_MESSAGE); + catch (BrowserLaunchingInitializingException e) { + logger.error("Failed to initialize browser launcher : " + e); + } + catch (UnsupportedOperatingSystemException e) { + logger.error("The operating system is not supported " + + "by browser launcher implementation : " + e); + } + catch (MalformedURLException e) { + logger.error("The URL string could not be parsed : " + e); } } - private static class TestAppErrorHandler + /** + * The error handler to be passed to the browser launcher runner. + */ + private static class BrowserErrorHandler implements BrowserLauncherErrorHandler { public void handleException(Exception ex) { - // show message to user - JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), - ex.getMessage(), - "Error Message", - JOptionPane.ERROR_MESSAGE); + logger.error(ex); } } }