KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > directory > ldapstudio > browser > ui > views > browser > BrowserViewActionGroup


1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one
3  * or more contributor license agreements. See the NOTICE file
4  * distributed with this work for additional information
5  * regarding copyright ownership. The ASF licenses this file
6  * to you under the Apache License, Version 2.0 (the
7  * "License"); you may not use this file except in compliance
8  * with the License. You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing,
13  * software distributed under the License is distributed on an
14  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15  * KIND, either express or implied. See the License for the
16  * specific language governing permissions and limitations
17  * under the License.
18  *
19  */

20
21 package org.apache.directory.ldapstudio.browser.ui.views.browser;
22
23
24 import org.apache.directory.ldapstudio.browser.common.actions.CopyAction;
25 import org.apache.directory.ldapstudio.browser.common.actions.DeleteAction;
26 import org.apache.directory.ldapstudio.browser.common.actions.PasteAction;
27 import org.apache.directory.ldapstudio.browser.common.actions.RenameAction;
28 import org.apache.directory.ldapstudio.browser.common.actions.proxy.BrowserActionProxy;
29 import org.apache.directory.ldapstudio.browser.common.actions.proxy.BrowserViewActionProxy;
30 import org.apache.directory.ldapstudio.browser.common.widgets.browser.BrowserActionGroup;
31 import org.apache.directory.ldapstudio.browser.ui.actions.CopyDnAction;
32 import org.apache.directory.ldapstudio.browser.ui.actions.CopyEntryAsCsvAction;
33 import org.apache.directory.ldapstudio.browser.ui.actions.CopyEntryAsLdifAction;
34 import org.apache.directory.ldapstudio.browser.ui.actions.CopyUrlAction;
35 import org.apache.directory.ldapstudio.browser.ui.actions.ImportExportAction;
36 import org.apache.directory.ldapstudio.browser.ui.actions.LocateEntryInDitAction;
37 import org.apache.directory.ldapstudio.browser.ui.actions.MoveAction;
38 import org.apache.directory.ldapstudio.browser.ui.actions.NewBatchOperationAction;
39 import org.apache.directory.ldapstudio.browser.ui.actions.NewBookmarkAction;
40 import org.apache.directory.ldapstudio.browser.ui.actions.NewEntryAction;
41 import org.apache.directory.ldapstudio.browser.ui.actions.NewSearchAction;
42 import org.eclipse.jface.action.IAction;
43 import org.eclipse.jface.action.IMenuManager;
44 import org.eclipse.jface.action.IToolBarManager;
45 import org.eclipse.jface.action.MenuManager;
46 import org.eclipse.jface.action.Separator;
47 import org.eclipse.jface.commands.ActionHandler;
48 import org.eclipse.jface.viewers.TreeViewer;
49 import org.eclipse.ui.IWorkbenchActionConstants;
50 import org.eclipse.ui.PlatformUI;
51 import org.eclipse.ui.actions.ActionFactory;
52 import org.eclipse.ui.commands.ICommandService;
53
54
55 /**
56  * This class manages all the actions of the browser view.
57  *
58  * @author <a HREF="mailto:dev@directory.apache.org">Apache Directory Project</a>
59  * @version $Rev$, $Date$
60  */

61 public class BrowserViewActionGroup extends BrowserActionGroup
62 {
63
64     /** The action to show/hide the DIT. */
65     private ShowDITAction showDITAction;
66
67     /** The action to show/hide searches. */
68     private ShowSearchesAction showSearchesAction;
69
70     /** The action to show/hide bookmarks. */
71     private ShowBookmarksAction showBookmarksAction;
72
73     /** The action to show/hide metadata. */
74     private ShowDirectoryMetadataEntriesAction showDirectoryMetadataEntriesAction;
75
76     /** The action to open the browser's preference page. */
77     private OpenBrowserPreferencePageAction openBrowserPreferencePageAction;
78
79     /** The action to link the current editor with the browser view. */
80     private LinkWithEditorAction linkWithEditorAction;
81
82     /** The Constant locateEntryInDitAction. */
83     private static final String JavaDoc locateEntryInDitAction = "locateEntryInDitAction";
84
85     /** The Constant newEntryAction. */
86     private static final String JavaDoc newEntryAction = "newEntryAction";
87
88     /** The Constant newSearchAction. */
89     private static final String JavaDoc newSearchAction = "newSearchAction";
90
91     /** The Constant newBookmarkAction. */
92     private static final String JavaDoc newBookmarkAction = "newBookmarkAction";
93
94     /** The Constant newBatchOperationAction. */
95     private static final String JavaDoc newBatchOperationAction = "newBatchOperationAction";
96
97     /** The Constant copyAction. */
98     private static final String JavaDoc copyAction = "copyAction";
99
100     /** The Constant pasteAction. */
101     private static final String JavaDoc pasteAction = "pasteAction";
102
103     /** The Constant deleteAction. */
104     private static final String JavaDoc deleteAction = "deleteAction";
105
106     /** The Constant moveAction. */
107     private static final String JavaDoc moveAction = "moveAction";
108
109     /** The Constant renameAction. */
110     private static final String JavaDoc renameAction = "renameAction";
111
112     /** The Constant copyDnAction. */
113     private static final String JavaDoc copyDnAction = "copyDnAction";
114
115     /** The Constant copyUrlAction. */
116     private static final String JavaDoc copyUrlAction = "copyUrlAction";
117
118     /** The Constant copyEntryAsLdifDnOnlyAction. */
119     private static final String JavaDoc copyEntryAsLdifDnOnlyAction = "copyEntryAsLdifDnOnlyAction";
120
121     /** The Constant copyEntryAsLdifReturningAttributesOnlyAction. */
122     private static final String JavaDoc copyEntryAsLdifReturningAttributesOnlyAction = "copyEntryAsLdifReturningAttributesOnlyAction";
123
124     /** The Constant copyEntryAsLdifAction. */
125     private static final String JavaDoc copyEntryAsLdifAction = "copyEntryAsLdifAction";
126
127     /** The Constant copyEntryAsLdifOperationalAction. */
128     private static final String JavaDoc copyEntryAsLdifOperationalAction = "copyEntryAsLdifOperationalAction";
129
130     /** The Constant copyEntryAsCsvDnOnlyAction. */
131     private static final String JavaDoc copyEntryAsCsvDnOnlyAction = "copyEntryAsCsvDnOnlyAction";
132
133     /** The Constant copyEntryAsCsvReturningAttributesOnlyAction. */
134     private static final String JavaDoc copyEntryAsCsvReturningAttributesOnlyAction = "copyEntryAsCsvReturningAttributesOnlyAction";
135
136     /** The Constant copyEntryAsCsvAction. */
137     private static final String JavaDoc copyEntryAsCsvAction = "copyEntryAsCsvAction";
138
139     /** The Constant copyEntryAsCsvOperationalAction. */
140     private static final String JavaDoc copyEntryAsCsvOperationalAction = "copyEntryAsCsvOperationalAction";
141
142     /** The Constant importDsmlAction. */
143     private static final String JavaDoc importDsmlAction = "importDsmlAction";
144
145     /** The Constant importLdifAction. */
146     private static final String JavaDoc importLdifAction = "importLdifAction";
147
148     /** The Constant exportLdifAction. */
149     private static final String JavaDoc exportLdifAction = "exportLdifAction";
150
151     /** The Constant exportDsmlAction. */
152     private static final String JavaDoc exportDsmlAction = "exportDsmlAction";
153
154     /** The Constant exportCsvAction. */
155     private static final String JavaDoc exportCsvAction = "exportCsvAction";
156
157     /** The Constant exportExcelAction. */
158     private static final String JavaDoc exportExcelAction = "exportExcelAction";
159
160
161     /**
162      * Creates a new instance of BrowserViewActionGroup and
163      * creates all the actions.
164      *
165      * @param view the browser view
166      */

167     public BrowserViewActionGroup( BrowserView view )
168     {
169         super( view.getMainWidget(), view.getConfiguration() );
170         TreeViewer viewer = view.getMainWidget().getViewer();
171
172         linkWithEditorAction = new LinkWithEditorAction( view );
173         showDITAction = new ShowDITAction();
174         showSearchesAction = new ShowSearchesAction();
175         showBookmarksAction = new ShowBookmarksAction();
176         showDirectoryMetadataEntriesAction = new ShowDirectoryMetadataEntriesAction();
177         openBrowserPreferencePageAction = new OpenBrowserPreferencePageAction();
178
179         browserActionMap.put( newEntryAction, new BrowserViewActionProxy( viewer, new NewEntryAction( view.getSite()
180             .getWorkbenchWindow() ) ) );
181         browserActionMap.put( newSearchAction, new BrowserViewActionProxy( viewer, new NewSearchAction() ) );
182         browserActionMap.put( newBookmarkAction, new BrowserViewActionProxy( viewer, new NewBookmarkAction() ) );
183         browserActionMap.put( newBatchOperationAction, new BrowserViewActionProxy( viewer,
184             new NewBatchOperationAction() ) );
185
186         browserActionMap
187             .put( locateEntryInDitAction, new BrowserViewActionProxy( viewer, new LocateEntryInDitAction() ) );
188
189         browserActionMap.put( pasteAction, new BrowserViewActionProxy( viewer, new PasteAction() ) );
190         browserActionMap.put( copyAction, new BrowserViewActionProxy( viewer, new CopyAction(
191             ( BrowserActionProxy ) browserActionMap.get( pasteAction ) ) ) );
192         browserActionMap.put( deleteAction, new BrowserViewActionProxy( viewer, new DeleteAction() ) );
193         browserActionMap.put( moveAction, new BrowserViewActionProxy( viewer, new MoveAction() ) );
194         browserActionMap.put( renameAction, new BrowserViewActionProxy( viewer, new RenameAction() ) );
195
196         browserActionMap.put( copyDnAction, new BrowserViewActionProxy( viewer, new CopyDnAction() ) );
197         browserActionMap.put( copyUrlAction, new BrowserViewActionProxy( viewer, new CopyUrlAction() ) );
198
199         browserActionMap.put( copyEntryAsLdifAction, new BrowserViewActionProxy( viewer, new CopyEntryAsLdifAction(
200             CopyEntryAsLdifAction.MODE_NORMAL ) ) );
201         browserActionMap.put( copyEntryAsLdifDnOnlyAction, new BrowserViewActionProxy( viewer,
202             new CopyEntryAsLdifAction( CopyEntryAsLdifAction.MODE_DN_ONLY ) ) );
203         browserActionMap.put( copyEntryAsLdifReturningAttributesOnlyAction, new BrowserViewActionProxy( viewer,
204             new CopyEntryAsLdifAction( CopyEntryAsLdifAction.MODE_RETURNING_ATTRIBUTES_ONLY ) ) );
205         browserActionMap.put( copyEntryAsLdifOperationalAction, new BrowserViewActionProxy( viewer,
206             new CopyEntryAsLdifAction( CopyEntryAsLdifAction.MODE_INCLUDE_OPERATIONAL_ATTRIBUTES ) ) );
207         browserActionMap.put( copyEntryAsCsvAction, new BrowserViewActionProxy( viewer, new CopyEntryAsCsvAction(
208             CopyEntryAsLdifAction.MODE_NORMAL ) ) );
209         browserActionMap.put( copyEntryAsCsvDnOnlyAction, new BrowserViewActionProxy( viewer, new CopyEntryAsCsvAction(
210             CopyEntryAsLdifAction.MODE_DN_ONLY ) ) );
211         browserActionMap.put( copyEntryAsCsvReturningAttributesOnlyAction, new BrowserViewActionProxy( viewer,
212             new CopyEntryAsCsvAction( CopyEntryAsLdifAction.MODE_RETURNING_ATTRIBUTES_ONLY ) ) );
213         browserActionMap.put( copyEntryAsCsvOperationalAction, new BrowserViewActionProxy( viewer,
214             new CopyEntryAsCsvAction( CopyEntryAsLdifAction.MODE_INCLUDE_OPERATIONAL_ATTRIBUTES ) ) );
215
216         browserActionMap.put( importDsmlAction, new BrowserViewActionProxy( viewer, new ImportExportAction(
217             ImportExportAction.TYPE_IMPORT_DSML ) ) );
218         browserActionMap.put( exportDsmlAction, new BrowserViewActionProxy( viewer, new ImportExportAction(
219             ImportExportAction.TYPE_EXPORT_DSML ) ) );
220         browserActionMap.put( importLdifAction, new BrowserViewActionProxy( viewer, new ImportExportAction(
221             ImportExportAction.TYPE_IMPORT_LDIF ) ) );
222         browserActionMap.put( exportLdifAction, new BrowserViewActionProxy( viewer, new ImportExportAction(
223             ImportExportAction.TYPE_EXPORT_LDIF ) ) );
224         browserActionMap.put( exportCsvAction, new BrowserViewActionProxy( viewer, new ImportExportAction(
225             ImportExportAction.TYPE_EXPORT_CSV ) ) );
226         browserActionMap.put( exportExcelAction, new BrowserViewActionProxy( viewer, new ImportExportAction(
227             ImportExportAction.TYPE_EXPORT_EXCEL ) ) );
228
229     }
230
231
232     /**
233      * {@inheritDoc}
234      */

235     public void dispose()
236     {
237         if ( openBrowserPreferencePageAction != null )
238         {
239             linkWithEditorAction.dispose();
240             linkWithEditorAction = null;
241
242             showDITAction = null;
243             showSearchesAction = null;
244             showBookmarksAction = null;
245             showDirectoryMetadataEntriesAction = null;
246             openBrowserPreferencePageAction = null;
247         }
248
249         super.dispose();
250     }
251
252
253     /**
254      * {@inheritDoc}
255      */

256     public void fillToolBar( IToolBarManager toolBarManager )
257     {
258
259         toolBarManager.add( ( IAction ) browserActionMap.get( upAction ) );
260         toolBarManager.add( new Separator() );
261         toolBarManager.add( ( IAction ) browserActionMap.get( refreshAction ) );
262         toolBarManager.add( new Separator() );
263         toolBarManager.add( collapseAllAction );
264         toolBarManager.add( linkWithEditorAction );
265         toolBarManager.update( true );
266
267     }
268
269
270     /**
271      * {@inheritDoc}
272      */

273     public void fillMenu( IMenuManager menuManager )
274     {
275
276         menuManager.add( openSortDialogAction );
277         menuManager.add( new Separator() );
278         menuManager.add( showDITAction );
279         menuManager.add( showSearchesAction );
280         menuManager.add( showBookmarksAction );
281         menuManager.add( showDirectoryMetadataEntriesAction );
282         menuManager.add( new Separator() );
283         menuManager.add( openBrowserPreferencePageAction );
284         menuManager.update( true );
285     }
286
287
288     /**
289      * {@inheritDoc}
290      */

291     public void menuAboutToShow( IMenuManager menuManager )
292     {
293         // new
294
menuManager.add( ( IAction ) browserActionMap.get( newEntryAction ) );
295         menuManager.add( ( IAction ) browserActionMap.get( newSearchAction ) );
296         menuManager.add( ( IAction ) browserActionMap.get( newBookmarkAction ) );
297         menuManager.add( ( IAction ) browserActionMap.get( newBatchOperationAction ) );
298         menuManager.add( new Separator() );
299
300         // navigation
301
BrowserViewActionProxy leid = ( BrowserViewActionProxy ) browserActionMap.get( locateEntryInDitAction );
302         leid.setImageDescriptor( leid.getAction().getImageDescriptor() );
303         menuManager.add( leid );
304         menuManager.add( ( IAction ) browserActionMap.get( upAction ) );
305         menuManager.add( new Separator() );
306
307         // copy/paste/...
308
menuManager.add( ( IAction ) browserActionMap.get( copyAction ) );
309         menuManager.add( ( IAction ) browserActionMap.get( pasteAction ) );
310         menuManager.add( ( IAction ) browserActionMap.get( deleteAction ) );
311         menuManager.add( ( IAction ) browserActionMap.get( moveAction ) );
312         menuManager.add( ( IAction ) browserActionMap.get( renameAction ) );
313         MenuManager advancedMenuManager = new MenuManager( "Advanced" );
314         advancedMenuManager.add( ( IAction ) browserActionMap.get( copyDnAction ) );
315         advancedMenuManager.add( ( IAction ) browserActionMap.get( copyUrlAction ) );
316         advancedMenuManager.add( new Separator() );
317         advancedMenuManager.add( ( IAction ) browserActionMap.get( copyEntryAsLdifDnOnlyAction ) );
318         advancedMenuManager.add( ( IAction ) browserActionMap.get( copyEntryAsLdifReturningAttributesOnlyAction ) );
319         advancedMenuManager.add( ( IAction ) browserActionMap.get( copyEntryAsLdifAction ) );
320         advancedMenuManager.add( ( IAction ) browserActionMap.get( copyEntryAsLdifOperationalAction ) );
321         advancedMenuManager.add( new Separator() );
322         advancedMenuManager.add( ( IAction ) browserActionMap.get( copyEntryAsCsvDnOnlyAction ) );
323         advancedMenuManager.add( ( IAction ) browserActionMap.get( copyEntryAsCsvReturningAttributesOnlyAction ) );
324         advancedMenuManager.add( ( IAction ) browserActionMap.get( copyEntryAsCsvAction ) );
325         advancedMenuManager.add( ( IAction ) browserActionMap.get( copyEntryAsCsvOperationalAction ) );
326         advancedMenuManager.add( new Separator() );
327         menuManager.add( advancedMenuManager );
328         menuManager.add( new Separator() );
329
330         // filter, batch
331
menuManager.add( ( IAction ) browserActionMap.get( filterChildrenAction ) );
332         if ( ( ( IAction ) browserActionMap.get( unfilterChildrenAction ) ).isEnabled() )
333         {
334             menuManager.add( ( IAction ) browserActionMap.get( unfilterChildrenAction ) );
335         }
336         menuManager.add( new Separator() );
337
338         // import/export
339
MenuManager importMenuManager = new MenuManager( "Import" );
340         importMenuManager.add( ( IAction ) browserActionMap.get( importLdifAction ) );
341         importMenuManager.add( ( IAction ) browserActionMap.get( importDsmlAction ) );
342         importMenuManager.add( new Separator() );
343         menuManager.add( importMenuManager );
344
345         MenuManager exportMenuManager = new MenuManager( "Export" );
346         exportMenuManager.add( ( IAction ) browserActionMap.get( exportLdifAction ) );
347         exportMenuManager.add( ( IAction ) browserActionMap.get( exportDsmlAction ) );
348         exportMenuManager.add( new Separator() );
349         exportMenuManager.add( ( IAction ) browserActionMap.get( exportCsvAction ) );
350         exportMenuManager.add( ( IAction ) browserActionMap.get( exportExcelAction ) );
351         menuManager.add( exportMenuManager );
352         menuManager.add( new Separator() );
353
354         // refresh
355
menuManager.add( ( IAction ) browserActionMap.get( refreshAction ) );
356         menuManager.add( new Separator() );
357
358         // additions
359
menuManager.add( new Separator( IWorkbenchActionConstants.MB_ADDITIONS ) );
360
361         // properties
362
menuManager.add( ( IAction ) browserActionMap.get( propertyDialogAction ) );
363
364     }
365
366
367     /**
368      * {@inheritDoc}
369      */

370     public void activateGlobalActionHandlers()
371     {
372
373         if ( actionBars != null )
374         {
375             actionBars.setGlobalActionHandler( ActionFactory.COPY.getId(), ( IAction ) browserActionMap
376                 .get( copyAction ) );
377             actionBars.setGlobalActionHandler( ActionFactory.PASTE.getId(), ( IAction ) browserActionMap
378                 .get( pasteAction ) );
379             actionBars.setGlobalActionHandler( ActionFactory.DELETE.getId(), ( IAction ) browserActionMap
380                 .get( deleteAction ) );
381             actionBars.setGlobalActionHandler( ActionFactory.MOVE.getId(), ( IAction ) browserActionMap
382                 .get( moveAction ) );
383             actionBars.setGlobalActionHandler( ActionFactory.RENAME.getId(), ( IAction ) browserActionMap
384                 .get( renameAction ) );
385         }
386
387         super.activateGlobalActionHandlers();
388
389         ICommandService commandService = ( ICommandService ) PlatformUI.getWorkbench().getAdapter(
390             ICommandService.class );
391         if ( commandService != null )
392         {
393             IAction leid = ( IAction ) browserActionMap.get( locateEntryInDitAction );
394             commandService.getCommand( leid.getActionDefinitionId() ).setHandler( new ActionHandler( leid ) );
395         }
396
397     }
398
399
400     /**
401      * {@inheritDoc}
402      */

403     public void deactivateGlobalActionHandlers()
404     {
405
406         if ( actionBars != null )
407         {
408             actionBars.setGlobalActionHandler( ActionFactory.COPY.getId(), null );
409             actionBars.setGlobalActionHandler( ActionFactory.PASTE.getId(), null );
410             actionBars.setGlobalActionHandler( ActionFactory.DELETE.getId(), null );
411             actionBars.setGlobalActionHandler( ActionFactory.RENAME.getId(), null );
412             actionBars.setGlobalActionHandler( ActionFactory.MOVE.getId(), null );
413         }
414
415         super.deactivateGlobalActionHandlers();
416
417         ICommandService commandService = ( ICommandService ) PlatformUI.getWorkbench().getAdapter(
418             ICommandService.class );
419         if ( commandService != null )
420         {
421             IAction leid = ( IAction ) browserActionMap.get( locateEntryInDitAction );
422             commandService.getCommand( leid.getActionDefinitionId() ).setHandler( null );
423         }
424
425     }
426
427 }
428
Popular Tags