1 20 21 package org.apache.directory.ldapstudio.browser.ui.views.connection; 22 23 24 import org.apache.directory.ldapstudio.browser.common.actions.SelectAllAction; 25 import org.apache.directory.ldapstudio.browser.common.actions.proxy.ConnectionViewActionProxy; 26 import org.apache.directory.ldapstudio.browser.common.dnd.ConnectionTransfer; 27 import org.apache.directory.ldapstudio.browser.common.dnd.SearchTransfer; 28 import org.apache.directory.ldapstudio.browser.common.widgets.connection.ConnectionActionGroup; 29 import org.apache.directory.ldapstudio.browser.ui.actions.ImportExportAction; 30 import org.apache.directory.ldapstudio.browser.ui.actions.OpenSchemaBrowserAction; 31 import org.eclipse.jface.action.IAction; 32 import org.eclipse.jface.action.IMenuManager; 33 import org.eclipse.jface.action.MenuManager; 34 import org.eclipse.jface.action.Separator; 35 import org.eclipse.jface.viewers.TableViewer; 36 import org.eclipse.swt.dnd.DND; 37 import org.eclipse.swt.dnd.Transfer; 38 import org.eclipse.ui.IWorkbenchActionConstants; 39 import org.eclipse.ui.actions.ActionFactory; 40 41 42 48 public class ConnectionViewActionGroup extends ConnectionActionGroup 49 { 50 51 52 private ConnectionView view; 53 54 55 private LinkWithEditorAction linkWithEditorAction; 56 57 58 private static final String selectAllAction = "selectAllAction"; 59 60 61 private static final String importDsmlAction = "importDsmlAction"; 62 63 64 private static final String exportDsmlAction = "exportDsmlAction"; 65 66 67 private static final String importLdifAction = "importLdifAction"; 68 69 70 private static final String exportLdifAction = "exportLdifAction"; 71 72 73 private static final String exportCsvAction = "exportCsvAction"; 74 75 76 private static final String exportExcelAction = "exportExcelAction"; 77 78 79 private static final String openSchemaBrowserAction = "openSchemaBrowserAction"; 80 81 82 private DragConnectionListener dragConnectionListener; 83 84 85 private DropConnectionListener dropConnectionListener; 86 87 88 94 public ConnectionViewActionGroup( ConnectionView view ) 95 { 96 super( view.getMainWidget(), view.getConfiguration() ); 97 this.view = view; 98 TableViewer viewer = view.getMainWidget().getViewer(); 99 100 linkWithEditorAction = new LinkWithEditorAction( view ); 101 connectionActionMap 102 .put( selectAllAction, new ConnectionViewActionProxy( viewer, new SelectAllAction( viewer ) ) ); 103 connectionActionMap.put( importDsmlAction, new ConnectionViewActionProxy( viewer, new ImportExportAction( 104 ImportExportAction.TYPE_IMPORT_DSML ) ) ); 105 connectionActionMap.put( exportDsmlAction, new ConnectionViewActionProxy( viewer, new ImportExportAction( 106 ImportExportAction.TYPE_EXPORT_DSML ) ) ); 107 connectionActionMap.put( importLdifAction, new ConnectionViewActionProxy( viewer, new ImportExportAction( 108 ImportExportAction.TYPE_IMPORT_LDIF ) ) ); 109 connectionActionMap.put( exportLdifAction, new ConnectionViewActionProxy( viewer, new ImportExportAction( 110 ImportExportAction.TYPE_EXPORT_LDIF ) ) ); 111 connectionActionMap.put( exportCsvAction, new ConnectionViewActionProxy( viewer, new ImportExportAction( 112 ImportExportAction.TYPE_EXPORT_CSV ) ) ); 113 connectionActionMap.put( exportExcelAction, new ConnectionViewActionProxy( viewer, new ImportExportAction( 114 ImportExportAction.TYPE_EXPORT_EXCEL ) ) ); 115 116 connectionActionMap.put( openSchemaBrowserAction, new ConnectionViewActionProxy( viewer, 117 new OpenSchemaBrowserAction() ) ); 118 119 dropConnectionListener = new DropConnectionListener(); 121 dragConnectionListener = new DragConnectionListener(); 122 int ops = DND.DROP_COPY | DND.DROP_MOVE; 123 Transfer[] transfers = new Transfer[] 124 { ConnectionTransfer.getInstance(), SearchTransfer.getInstance() }; 125 viewer.addDragSupport( ops, transfers, dragConnectionListener ); 126 viewer.addDropSupport( ops, transfers, dropConnectionListener ); 127 } 128 129 130 133 public void dispose() 134 { 135 if ( view != null ) 136 { 137 linkWithEditorAction.dispose(); 138 linkWithEditorAction = null; 139 dragConnectionListener = null; 140 dropConnectionListener = null; 141 view = null; 142 } 143 } 144 145 146 149 public void menuAboutToShow( IMenuManager menuManager ) 150 { 151 152 menuManager.add( ( IAction ) connectionActionMap.get( newConnectionAction ) ); 154 menuManager.add( new Separator() ); 155 156 if ( ( ( IAction ) connectionActionMap.get( closeConnectionAction ) ).isEnabled() ) 158 { 159 menuManager.add( ( IAction ) connectionActionMap.get( closeConnectionAction ) ); 160 } 161 else if ( ( ( IAction ) connectionActionMap.get( openConnectionAction ) ).isEnabled() ) 162 { 163 menuManager.add( ( IAction ) connectionActionMap.get( openConnectionAction ) ); 164 } 165 menuManager.add( new Separator() ); 166 167 menuManager.add( ( IAction ) connectionActionMap.get( openSchemaBrowserAction ) ); 168 menuManager.add( new Separator() ); 169 170 menuManager.add( ( IAction ) connectionActionMap.get( copyConnectionAction ) ); 172 menuManager.add( ( IAction ) connectionActionMap.get( pasteConnectionAction ) ); 173 menuManager.add( ( IAction ) connectionActionMap.get( deleteConnectionAction ) ); 174 menuManager.add( ( IAction ) connectionActionMap.get( selectAllAction ) ); 175 menuManager.add( ( IAction ) connectionActionMap.get( renameConnectionAction ) ); 176 menuManager.add( new Separator() ); 177 178 MenuManager importMenuManager = new MenuManager( "Import" ); 180 importMenuManager.add( ( IAction ) connectionActionMap.get( importLdifAction ) ); 181 importMenuManager.add( ( IAction ) connectionActionMap.get( importDsmlAction ) ); 182 importMenuManager.add( new Separator() ); 183 menuManager.add( importMenuManager ); 184 MenuManager exportMenuManager = new MenuManager( "Export" ); 185 exportMenuManager.add( ( IAction ) connectionActionMap.get( exportLdifAction ) ); 186 exportMenuManager.add( ( IAction ) connectionActionMap.get( exportDsmlAction ) ); 187 exportMenuManager.add( new Separator() ); 188 exportMenuManager.add( ( IAction ) connectionActionMap.get( exportCsvAction ) ); 189 exportMenuManager.add( ( IAction ) connectionActionMap.get( exportExcelAction ) ); 190 menuManager.add( exportMenuManager ); 191 menuManager.add( new Separator() ); 192 193 menuManager.add( new Separator( IWorkbenchActionConstants.MB_ADDITIONS ) ); 195 196 menuManager.add( ( IAction ) connectionActionMap.get( propertyDialogAction ) ); 198 } 199 200 201 204 public void activateGlobalActionHandlers() 205 { 206 207 if ( actionBars != null ) 208 { 209 actionBars.setGlobalActionHandler( ActionFactory.SELECT_ALL.getId(), ( IAction ) connectionActionMap 210 .get( selectAllAction ) ); 211 } 212 213 super.activateGlobalActionHandlers(); 214 215 } 216 217 218 221 public void deactivateGlobalActionHandlers() 222 { 223 224 if ( actionBars != null ) 225 { 226 actionBars.setGlobalActionHandler( ActionFactory.SELECT_ALL.getId(), null ); 227 } 228 229 super.deactivateGlobalActionHandlers(); 230 231 } 232 233 } 234 | Popular Tags |