1 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 61 public class BrowserViewActionGroup extends BrowserActionGroup 62 { 63 64 65 private ShowDITAction showDITAction; 66 67 68 private ShowSearchesAction showSearchesAction; 69 70 71 private ShowBookmarksAction showBookmarksAction; 72 73 74 private ShowDirectoryMetadataEntriesAction showDirectoryMetadataEntriesAction; 75 76 77 private OpenBrowserPreferencePageAction openBrowserPreferencePageAction; 78 79 80 private LinkWithEditorAction linkWithEditorAction; 81 82 83 private static final String locateEntryInDitAction = "locateEntryInDitAction"; 84 85 86 private static final String newEntryAction = "newEntryAction"; 87 88 89 private static final String newSearchAction = "newSearchAction"; 90 91 92 private static final String newBookmarkAction = "newBookmarkAction"; 93 94 95 private static final String newBatchOperationAction = "newBatchOperationAction"; 96 97 98 private static final String copyAction = "copyAction"; 99 100 101 private static final String pasteAction = "pasteAction"; 102 103 104 private static final String deleteAction = "deleteAction"; 105 106 107 private static final String moveAction = "moveAction"; 108 109 110 private static final String renameAction = "renameAction"; 111 112 113 private static final String copyDnAction = "copyDnAction"; 114 115 116 private static final String copyUrlAction = "copyUrlAction"; 117 118 119 private static final String copyEntryAsLdifDnOnlyAction = "copyEntryAsLdifDnOnlyAction"; 120 121 122 private static final String copyEntryAsLdifReturningAttributesOnlyAction = "copyEntryAsLdifReturningAttributesOnlyAction"; 123 124 125 private static final String copyEntryAsLdifAction = "copyEntryAsLdifAction"; 126 127 128 private static final String copyEntryAsLdifOperationalAction = "copyEntryAsLdifOperationalAction"; 129 130 131 private static final String copyEntryAsCsvDnOnlyAction = "copyEntryAsCsvDnOnlyAction"; 132 133 134 private static final String copyEntryAsCsvReturningAttributesOnlyAction = "copyEntryAsCsvReturningAttributesOnlyAction"; 135 136 137 private static final String copyEntryAsCsvAction = "copyEntryAsCsvAction"; 138 139 140 private static final String copyEntryAsCsvOperationalAction = "copyEntryAsCsvOperationalAction"; 141 142 143 private static final String importDsmlAction = "importDsmlAction"; 144 145 146 private static final String importLdifAction = "importLdifAction"; 147 148 149 private static final String exportLdifAction = "exportLdifAction"; 150 151 152 private static final String exportDsmlAction = "exportDsmlAction"; 153 154 155 private static final String exportCsvAction = "exportCsvAction"; 156 157 158 private static final String exportExcelAction = "exportExcelAction"; 159 160 161 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 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 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 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 291 public void menuAboutToShow( IMenuManager menuManager ) 292 { 293 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 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 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 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 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 menuManager.add( ( IAction ) browserActionMap.get( refreshAction ) ); 356 menuManager.add( new Separator() ); 357 358 menuManager.add( new Separator( IWorkbenchActionConstants.MB_ADDITIONS ) ); 360 361 menuManager.add( ( IAction ) browserActionMap.get( propertyDialogAction ) ); 363 364 } 365 366 367 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 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 |