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