Initial version from the webtools project; sligthly modified for phpeclipse
[phpeclipse.git] / net.sourceforge.phpeclipse.webbrowser / src / org / eclipse / webbrowser / WebBrowser.java
1 /**
2  * Copyright (c) 2003 IBM Corporation and others.
3  * All rights reserved. This program and the accompanying materials
4  * are made available under the terms of the Common Public License v1.0
5  * which accompanies this distribution, and is available at
6  * http://www.eclipse.org/legal/cpl-v10.html
7  *
8  * Contributors:
9  *    IBM - Initial API and implementation
10  */
11 package org.eclipse.webbrowser;
12
13 import java.net.URL;
14 import java.util.List;
15
16 import org.eclipse.swt.widgets.Display;
17 import org.eclipse.webbrowser.internal.*;
18 /**
19  * The main interface to the internal Web browser. If allows
20  * you to query the file types supported by the Web browser
21  * and open a URL.
22  */
23 public class WebBrowser {
24         /**
25          * WebBrowser constructor comment.
26          */
27         private WebBrowser() {
28                 super();
29         }
30
31         /**
32          * Returns true if the internal Web browser is supported on this
33          * platform and the user has chosen to use it.
34          *
35          * @return boolean
36          */
37         public static boolean isUsingInternalBrowser() {
38                 return (getCurrentWebBrowser() instanceof IInternalWebBrowser);
39         }
40
41         /**
42          * Display the given URL in a Web browser. If the user has chosen not
43          * to use the internal browser, an external browser will be used. If
44          * not, a browser in the current page will be reused if forceNewPage
45          * is not true and the user preference is not set. Finally, showToolbar
46          * will decide when the toolbar should be shown in the internal browser.
47          *
48          * @param input
49          */
50         public static void openURL(final IWebBrowserEditorInput input) {
51                 Trace.trace(Trace.FINEST, "openURL() " + input);
52                 if (input == null)
53                         return;
54         
55                 Display.getDefault().asyncExec(new Runnable() {
56                         public void run() {
57                                 if (!isUsingInternalBrowser()){
58                                         IWebBrowser browser = getCurrentWebBrowser();
59                                         browser.openURL(input.getURL());
60                                 } else
61                                         WebBrowserEditor.open(input);
62                         }
63                 });
64         }
65
66         /**
67          * Return a list of all the installed Web browsers.
68          * 
69          * @return
70          */
71         public static List getWebBrowsers() {
72                 return BrowserManager.getInstance().getWebBrowsers();
73         }
74
75         /**
76          * Return the current default web browser.
77          * 
78          * @return
79          */
80         public static IWebBrowser getCurrentWebBrowser() {
81                 return BrowserManager.getInstance().getCurrentWebBrowser();
82         }
83
84         /**
85          * Set the current default web browser.
86          * 
87          * @return
88          */
89         public static void getCurrentWebBrowser(IWebBrowser browser) {
90                 BrowserManager.getInstance().setCurrentWebBrowser(browser);
91         }
92
93         /**
94          * Create a new external Web browser.
95          * 
96          * @return
97          */
98         public static IExternalWebBrowserWorkingCopy createExternalWebBrowser() {
99                 return new ExternalWebBrowserWorkingCopy();
100         }
101
102         /**
103          * Display the given URL in a Web browser.
104          *
105          * @param url java.net.URL
106          */
107         public static void openURL(URL url) {
108                 IWebBrowser browser = getCurrentWebBrowser();
109                 if (browser != null)
110                         browser.openURL(url);
111                 else {
112                         Display.getDefault().asyncExec(new Runnable() {
113                                 public void run() {
114                                         WebBrowserUtil.openError(WebBrowserUIPlugin.getResource("%errorNoBrowser"));
115                                 }
116                         });
117                 }
118         }
119 }