inital plugin from webtools project
[phpeclipse.git] / net.sourceforge.phpeclipse.webbrowser / src / net / sourceforge / phpeclipse / webbrowser / views / BrowserView.java
1 /*******************************************************************************
2  * Copyright (c) 2000, 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 Corporation - initial API and implementation
10  *******************************************************************************/
11 package net.sourceforge.phpeclipse.webbrowser.views;
12
13 import net.sourceforge.phpeclipse.webbrowser.internal.WebBrowser;
14 import net.sourceforge.phpeclipse.webbrowser.internal.WebBrowserUtil;
15
16 import org.eclipse.core.resources.IWorkspaceRunnable;
17 import org.eclipse.core.resources.ResourcesPlugin;
18 import org.eclipse.core.runtime.CoreException;
19 import org.eclipse.core.runtime.IProgressMonitor;
20 import org.eclipse.core.runtime.IStatus;
21 import org.eclipse.core.runtime.Status;
22 import org.eclipse.core.runtime.jobs.Job;
23 import org.eclipse.swt.browser.ProgressListener;
24 import org.eclipse.swt.browser.StatusTextListener;
25 import org.eclipse.swt.browser.TitleListener;
26 import org.eclipse.swt.widgets.Composite;
27 import org.eclipse.ui.part.ViewPart;
28
29 /**
30  * <code>BrowserView</code> is a simple demonstration of the SWT Browser widget. It consists of a workbench view and tab folder
31  * where each tab in the folder allows the user to interact with a control.
32  * 
33  * @see ViewPart
34  */
35 public class BrowserView extends ViewPart {
36   public final static String ID_BROWSER = "net.sourceforge.phpeclipse.webbrowser.views";
37
38   WebBrowser instance = null;
39
40   /**
41    * Create the example
42    * 
43    * @see ViewPart#createPartControl
44    */
45   public void createPartControl(Composite frame) {
46     try {
47       if (WebBrowserUtil.canUseInternalWebBrowser()) {
48         instance = new WebBrowser(frame, true, true);
49       }
50     } catch (Exception e) {
51       instance = null;
52     }
53   }
54
55   /**
56    * Called when we must grab focus.
57    * 
58    * @see org.eclipse.ui.part.ViewPart#setFocus
59    */
60   public void setFocus() {
61     if (instance != null) {
62       instance.setFocus();
63     }
64   }
65
66   /**
67    * Called when the View is to be disposed
68    */
69   public void dispose() {
70     if (instance != null) {
71       instance.dispose();
72       instance = null;
73     }
74     super.dispose();
75   }
76
77   public void setUrl(final String url) {
78     if (instance != null) {
79       instance.setURL(url);
80       //      try {
81       //        ResourcesPlugin.getWorkspace().run(new IWorkspaceRunnable() {
82       //          public void run(IProgressMonitor monitor) throws CoreException {
83       //            instance.setURL(url);
84       //          }
85       //        }, null);
86       //      } catch (CoreException e) {
87       //        // TODO Auto-generated catch block
88       //        e.printStackTrace();
89       //      }
90     }
91   }
92
93   public void refresh() {
94     if (instance != null) {
95       instance.refresh();
96       //      try {
97       //        ResourcesPlugin.getWorkspace().run(new IWorkspaceRunnable() {
98       //          public void run(IProgressMonitor monitor) throws CoreException {
99       //            instance.refresh();
100       //          }
101       //        }, null);
102       //      } catch (CoreException e) {
103       //        // TODO Auto-generated catch block
104       //        e.printStackTrace();
105       //      }
106     }
107   }
108
109   public void addProgressListener(ProgressListener listener) {
110     if (instance != null) {
111       instance.addProgressListener(listener);
112     }
113   }
114
115   public void addStatusTextListener(StatusTextListener listener) {
116     if (instance != null) {
117       instance.addStatusTextListener(listener);
118     }
119   }
120
121   public void addTitleListener(TitleListener listener) {
122     if (instance != null) {
123       instance.addTitleListener(listener);
124     }
125   }
126 }