org/homelinux/largo/utils/BrowserLaunch.java
changeset 0 e0dbaef72362
child 13 f83884cc7d2f
new file mode 100644
--- /dev/null
+++ b/org/homelinux/largo/utils/BrowserLaunch.java
@@ -0,0 +1,50 @@
+/**
+ *  $Id: BrowserLaunch.java 125 2008-04-22 08:06:08Z mbroeker $
+ * $URL: http://localhost/svn/eclipse/Schachspiel/trunk/org/homelinux/largo/utils/BrowserLaunch.java $
+ */
+
+package org.homelinux.largo.utils;
+
+import java.lang.reflect.Method;
+
+import javax.swing.JOptionPane;
+/**
+ * Cross-Platform Browserlaunch
+ */
+public class BrowserLaunch {
+	private static final String errMsg = "Error attempting to launch web browser";
+
+	/**
+	 * This method opens the URL in a native platform browser
+	 */
+	public void openURL(String url) {
+		String osName = System.getProperty("os.name");
+		try {
+			if (osName.startsWith("Mac OS")) {
+				Class<?> fileMgr = Class.forName("com.apple.eio.FileManager");
+				Method openURL = fileMgr.getDeclaredMethod("openURL",
+						new Class[] { String.class });
+				openURL.invoke(null, new Object[] { url });
+			} else if (osName.startsWith("Windows"))
+				Runtime.getRuntime().exec(
+						"rundll32 url.dll,FileProtocolHandler " + url);
+			else {
+				String[] browsers = { "firefox", "opera", "konqueror",
+						"epiphany", "mozilla", "netscape" };
+				String browser = null;
+				for (int count = 0; count < browsers.length && browser == null; count++)
+					if (Runtime.getRuntime().exec(
+							new String[] { "which", browsers[count] })
+							.waitFor() == 0)
+						browser = browsers[count];
+				if (browser == null)
+					throw new Exception("Could not find web browser");
+				else
+					Runtime.getRuntime().exec(new String[] { browser, url });
+			}
+		} catch (Exception e) {
+			JOptionPane.showMessageDialog(null, errMsg + ":\n"
+					+ e.getLocalizedMessage());
+		}
+	}
+};