KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > eclipse > ui > internal > browser > WebBrowserEditorActionBarContributor


1 /*******************************************************************************
2  * Copyright (c) 2003, 2006 IBM Corporation and others.
3  * All rights reserved. This program and the accompanying materials
4  * are made available under the terms of the Eclipse Public License v1.0
5  * which accompanies this distribution, and is available at
6  * http://www.eclipse.org/legal/epl-v10.html
7  *
8  * Contributors:
9  * IBM Corporation - Initial API and implementation
10  *******************************************************************************/

11 package org.eclipse.ui.internal.browser;
12
13 import org.eclipse.jface.action.Action;
14 import org.eclipse.jface.action.IToolBarManager;
15 import org.eclipse.ui.IActionBars;
16 import org.eclipse.ui.IEditorPart;
17 import org.eclipse.ui.actions.ActionFactory;
18 import org.eclipse.ui.part.EditorActionBarContributor;
19 /**
20  * ActionBarContributor for the Web browser.
21  * Just adds cut, copy, paste actions.
22  */

23 public class WebBrowserEditorActionBarContributor extends EditorActionBarContributor {
24     protected WebBrowserEditor editor;
25     protected Action back;
26     protected Action forward;
27     protected Updater updater = new Updater();
28
29     class Updater implements BrowserViewer.IBackNextListener {
30         public void updateBackNextBusy() {
31             if (back == null)
32                 return;
33             back.setEnabled(getWebBrowser().isBackEnabled());
34             forward.setEnabled(getWebBrowser().isForwardEnabled());
35             //busy.setBusy(getWebBrowser().loading);
36
}
37     }
38
39     /**
40      * WebBrowserEditorActionBarContributor constructor comment.
41      */

42     public WebBrowserEditorActionBarContributor() {
43         super();
44     }
45
46     /*
47      * Sets the active editor for the contributor.
48      */

49     public void setActiveEditor(IEditorPart targetEditor) {
50         if (targetEditor instanceof WebBrowserEditor) {
51             editor = (WebBrowserEditor) targetEditor;
52             WebBrowserEditorInput input = editor.getWebBrowserEditorInput();
53             
54             if (input == null || input.isLocationBarLocal()) {
55                 IActionBars actionBars = getActionBars();
56                 actionBars.setGlobalActionHandler(ActionFactory.COPY.getId(), editor.getCopyAction());
57                 actionBars.setGlobalActionHandler(ActionFactory.CUT.getId(), editor.getCutAction());
58                 actionBars.setGlobalActionHandler(ActionFactory.PASTE.getId(), editor.getPasteAction());
59             }
60             
61             //if (input.isToolbarGlobal())
62
// getWebBrowser().backNextListener = this.updater;
63

64             //editor.updateActions();
65
} else
66             editor = null;
67     }
68     
69     protected BrowserViewer getWebBrowser() {
70         if (editor == null)
71             return null;
72         
73         return editor.webBrowser;
74     }
75
76     /*
77     * Contributes to the given tool bar.
78     */

79    public void contributeToToolBar(IToolBarManager toolBarManager) {
80     if (editor == null)
81         return;
82     /*WebBrowserEditorInput input = editor.getWebBrowserEditorInput();
83     if (input.isLocationBarGlobal()) {
84         final LocationContributionItem location = new LocationContributionItem();
85         toolBarManager.add(location);
86        
87         Action go = new Action() {
88             public void run() {
89                 getWebBrowser().setURL(location.getText());
90             }
91         };
92         go.setImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_ELCL_NAV_GO));
93         go.setHoverImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_CLCL_NAV_GO));
94         go.setDisabledImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_DLCL_NAV_GO));
95         go.setToolTipText(Messages.actionWebBrowserGo"));
96         toolBarManager.add(go);
97     }
98     
99     if (input.isLocationBarGlobal() && input.isToolbarGlobal()) {
100         toolBarManager.add(new Separator());
101     }
102     
103     if (input.isToolbarGlobal()) {
104         Action favorites = new Action(Messages.actionWebBrowserFavorites"), IAction.AS_DROP_DOWN_MENU) {
105             public void run() {
106                 getWebBrowser().addFavorite();
107             }
108             public IMenuCreator getMenuCreator() {
109                 return new IMenuCreator() {
110                         public void dispose() {
111                             // do nothing
112                         }
113     
114                         public Menu getMenu(final Control parent) {
115                             Menu menu = new Menu(parent);
116                             
117                             // locked favorites
118                             Iterator iterator = WebBrowserUtil.getLockedFavorites().iterator();
119                             if (iterator.hasNext()) {
120                                 while (iterator.hasNext()) {
121                                     final Favorite f = (Favorite) iterator.next();
122                                     MenuItem item = new MenuItem(menu, SWT.NONE);
123                                     item.setText(f.getName());
124                                     item.setImage(ImageResource.getImage(ImageResource.IMG_FAVORITE));
125                                     item.addSelectionListener(new SelectionAdapter() {
126                                         public void widgetSelected(SelectionEvent event) {
127                                             getWebBrowser().setURL(f.getURL());
128                                         }
129                                     });
130                                 }
131                                 
132                                 new MenuItem(menu, SWT.SEPARATOR);
133                             }
134                             
135                             iterator = WebBrowserPreference.getInternalWebBrowserFavorites().iterator();
136                             if (!iterator.hasNext()) {
137                                 MenuItem item = new MenuItem(menu, SWT.NONE);
138                                 item.setText(Messages.actionWebBrowserNoFavorites"));
139                             }
140                             while (iterator.hasNext()) {
141                                 final Favorite f = (Favorite) iterator.next();
142                                 MenuItem item = new MenuItem(menu, SWT.NONE);
143                                 item.setText(f.getName());
144                                 item.setImage(ImageResource.getImage(ImageResource.IMG_FAVORITE));
145                                 item.addSelectionListener(new SelectionAdapter() {
146                                     public void widgetSelected(SelectionEvent event) {
147                                         getWebBrowser().setURL(f.getURL());
148                                     }
149                                 });
150                             }
151                             
152                             new MenuItem(menu, SWT.SEPARATOR);
153                     
154                             MenuItem item = new MenuItem(menu, SWT.NONE);
155                             item.setText(Messages.actionWebBrowserOrganizeFavorites"));
156                             item.addSelectionListener(new SelectionAdapter() {
157                                 public void widgetSelected(SelectionEvent event) {
158                                     OrganizeFavoritesDialog dialog = new OrganizeFavoritesDialog(parent.getShell());
159                                     dialog.open();
160                                 }
161                             });
162                             return menu;
163                         }
164     
165                         public Menu getMenu(final Menu parent) {
166                             Menu menu = new Menu(parent);
167                             
168                             // locked favorites
169                             Iterator iterator = WebBrowserUtil.getLockedFavorites().iterator();
170                             if (iterator.hasNext()) {
171                                 while (iterator.hasNext()) {
172                                     final Favorite f = (Favorite) iterator.next();
173                                     MenuItem item = new MenuItem(menu, SWT.NONE);
174                                     item.setText(f.getName());
175                                     item.setImage(ImageResource.getImage(ImageResource.IMG_FAVORITE));
176                                     item.addSelectionListener(new SelectionAdapter() {
177                                         public void widgetSelected(SelectionEvent event) {
178                                             getWebBrowser().setURL(f.getURL());
179                                         }
180                                     });
181                                 }
182                                 
183                                 new MenuItem(menu, SWT.SEPARATOR);
184                             }
185                             
186                             iterator = WebBrowserPreference.getInternalWebBrowserFavorites().iterator();
187                             if (!iterator.hasNext()) {
188                                 MenuItem item = new MenuItem(menu, SWT.NONE);
189                                 item.setText(Messages.actionWebBrowserNoFavorites"));
190                             }
191                             while (iterator.hasNext()) {
192                                 final Favorite f = (Favorite) iterator.next();
193                                 MenuItem item = new MenuItem(menu, SWT.NONE);
194                                 item.setText(f.getName());
195                                 item.setImage(ImageResource.getImage(ImageResource.IMG_FAVORITE));
196                                 item.addSelectionListener(new SelectionAdapter() {
197                                     public void widgetSelected(SelectionEvent event) {
198                                         getWebBrowser().setURL(f.getURL());
199                                     }
200                                 });
201                             }
202                             
203                             new MenuItem(menu, SWT.SEPARATOR);
204                     
205                             MenuItem item = new MenuItem(menu, SWT.NONE);
206                             item.setText(Messages.actionWebBrowserOrganizeFavorites"));
207                             item.addSelectionListener(new SelectionAdapter() {
208                                 public void widgetSelected(SelectionEvent event) {
209                                     OrganizeFavoritesDialog dialog = new OrganizeFavoritesDialog(parent.getShell());
210                                     dialog.open();
211                                 }
212                             });
213                             return menu;
214                         }
215                 };
216             }
217         };
218         favorites.setImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_ELCL_NAV_FAVORITES));
219         favorites.setHoverImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_CLCL_NAV_FAVORITES));
220         favorites.setDisabledImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_DLCL_NAV_FAVORITES));
221         favorites.setToolTipText(Messages.actionWebBrowserFavorites"));
222         toolBarManager.add(favorites);
223         
224         back = new Action() {
225             public void run() {
226                 getWebBrowser().back();
227             }
228         };
229         back.setImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_ELCL_NAV_BACKWARD));
230             back.setHoverImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_CLCL_NAV_BACKWARD));
231             back.setDisabledImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_DLCL_NAV_BACKWARD));
232             back.setToolTipText(Messages.actionWebBrowserBack"));
233         toolBarManager.add(back);
234         
235         forward = new Action() {
236             public void run() {
237                 getWebBrowser().forward();
238             }
239         };
240         forward.setImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_ELCL_NAV_FORWARD));
241         forward.setHoverImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_CLCL_NAV_FORWARD));
242             forward.setDisabledImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_DLCL_NAV_FORWARD));
243             forward.setToolTipText(Messages.actionWebBrowserForward"));
244         toolBarManager.add(forward);
245         
246         Action stop = new Action() {
247             public void run() {
248                 getWebBrowser().stop();
249             }
250         };
251         stop.setImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_ELCL_NAV_STOP));
252         stop.setHoverImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_CLCL_NAV_STOP));
253         stop.setDisabledImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_DLCL_NAV_STOP));
254         stop.setToolTipText(Messages.actionWebBrowserStop"));
255         toolBarManager.add(stop);
256         
257         Action refresh = new Action() {
258             public void run() {
259                 getWebBrowser().refresh();
260             }
261         };
262         refresh.setImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_ELCL_NAV_REFRESH));
263         refresh.setHoverImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_CLCL_NAV_REFRESH));
264         refresh.setDisabledImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_DLCL_NAV_REFRESH));
265         refresh.setToolTipText(Messages.actionWebBrowserRefresh"));
266         toolBarManager.add(refresh);
267     }*/

268     
269     /*toolBarManager.add(new Separator());
270     
271     ControlContribution busyCont = new ControlContribution("webbrowser.busy") {
272        protected Control createControl(Composite parent) {
273         busy = new BusyIndicator(parent, SWT.NONE);
274         return busy;
275        }
276     };
277     toolBarManager.add(busyCont);*/

278    }
279 }
280
Popular Tags