--- /dev/null
+/**
+ * Copyright (c) 2003 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors:
+ * IBM - Initial API and implementation
+ */
+package net.sourceforge.phpeclipse.webbrowser;
+
+import java.net.URL;
+import java.util.List;
+
+import net.sourceforge.phpeclipse.webbrowser.internal.*;
+
+import org.eclipse.swt.widgets.Display;
+/**
+ * The main interface to the internal Web browser. If allows
+ * you to query the file types supported by the Web browser
+ * and open a URL.
+ */
+public class WebBrowser {
+ /**
+ * WebBrowser constructor comment.
+ */
+ private WebBrowser() {
+ super();
+ }
+
+ /**
+ * Returns true if the internal Web browser is supported on this
+ * platform and the user has chosen to use it.
+ *
+ * @return boolean
+ */
+ public static boolean isUsingInternalBrowser() {
+ return (getCurrentWebBrowser() instanceof IInternalWebBrowser);
+ }
+
+ /**
+ * Display the given URL in a Web browser. If the user has chosen not
+ * to use the internal browser, an external browser will be used. If
+ * not, a browser in the current page will be reused if forceNewPage
+ * is not true and the user preference is not set. Finally, showToolbar
+ * will decide when the toolbar should be shown in the internal browser.
+ *
+ * @param input
+ */
+ public static void openURL(final IWebBrowserEditorInput input) {
+ Trace.trace(Trace.FINEST, "openURL() " + input);
+ if (input == null)
+ return;
+
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ if (!isUsingInternalBrowser()){
+ IWebBrowser browser = getCurrentWebBrowser();
+ browser.openURL(input.getURL());
+ } else
+ WebBrowserEditor.open(input);
+ }
+ });
+ }
+
+ /**
+ * Return a list of all the installed Web browsers.
+ *
+ * @return
+ */
+ public static List getWebBrowsers() {
+ return BrowserManager.getInstance().getWebBrowsers();
+ }
+
+ /**
+ * Return the current default web browser.
+ *
+ * @return
+ */
+ public static IWebBrowser getCurrentWebBrowser() {
+ return BrowserManager.getInstance().getCurrentWebBrowser();
+ }
+
+ /**
+ * Set the current default web browser.
+ *
+ * @return
+ */
+ public static void getCurrentWebBrowser(IWebBrowser browser) {
+ BrowserManager.getInstance().setCurrentWebBrowser(browser);
+ }
+
+ /**
+ * Create a new external Web browser.
+ *
+ * @return
+ */
+ public static IExternalWebBrowserWorkingCopy createExternalWebBrowser() {
+ return new ExternalWebBrowserWorkingCopy();
+ }
+
+ /**
+ * Display the given URL in a Web browser.
+ *
+ * @param url java.net.URL
+ */
+ public static void openURL(URL url) {
+ IWebBrowser browser = getCurrentWebBrowser();
+ if (browser != null)
+ browser.openURL(url);
+ else {
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ WebBrowserUtil.openError(WebBrowserUIPlugin.getResource("%errorNoBrowser"));
+ }
+ });
+ }
+ }
+}
\ No newline at end of file