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