X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse.webbrowser/src/net/sourceforge/phpeclipse/webbrowser/WebBrowser.java b/net.sourceforge.phpeclipse.webbrowser/src/net/sourceforge/phpeclipse/webbrowser/WebBrowser.java new file mode 100644 index 0000000..e348805 --- /dev/null +++ b/net.sourceforge.phpeclipse.webbrowser/src/net/sourceforge/phpeclipse/webbrowser/WebBrowser.java @@ -0,0 +1,120 @@ +/** + * 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