launch the default browser on mac - fixed

cusax-fix
Yana Stamcheva 20 years ago
parent e7237230a8
commit b60d50a7ce

@ -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);
}
}
}

Loading…
Cancel
Save