KickJava   Java API By Example, From Geeks To Geeks.

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


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.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 /**
43  * This class manages all the actions of the connection view.
44  *
45  * @author <a HREF="mailto:dev@directory.apache.org">Apache Directory Project</a>
46  * @version $Rev$, $Date$
47  */

48 public class ConnectionViewActionGroup extends ConnectionActionGroup
49 {
50
51     /** The connection view */
52     private ConnectionView view;
53
54     /** The link with editor action. */
55     private LinkWithEditorAction linkWithEditorAction;
56
57     /** The Constant selectAllAction. */
58     private static final String JavaDoc selectAllAction = "selectAllAction";
59
60     /** The Constant importDsmlAction. */
61     private static final String JavaDoc importDsmlAction = "importDsmlAction";
62
63     /** The Constant exportDsmlAction. */
64     private static final String JavaDoc exportDsmlAction = "exportDsmlAction";
65
66     /** The Constant importLdifAction. */
67     private static final String JavaDoc importLdifAction = "importLdifAction";
68
69     /** The Constant exportLdifAction. */
70     private static final String JavaDoc exportLdifAction = "exportLdifAction";
71
72     /** The Constant exportCsvAction. */
73     private static final String JavaDoc exportCsvAction = "exportCsvAction";
74
75     /** The Constant exportExcelAction. */
76     private static final String JavaDoc exportExcelAction = "exportExcelAction";
77
78     /** The Constant openSchemaBrowserAction. */
79     private static final String JavaDoc openSchemaBrowserAction = "openSchemaBrowserAction";
80
81     /** The drag connection listener. */
82     private DragConnectionListener dragConnectionListener;
83
84     /** The drop connection listener. */
85     private DropConnectionListener dropConnectionListener;
86
87
88     /**
89      * Creates a new instance of ConnectionViewActionGroup and creates
90      * all actions.
91      *
92      * @param view the connection view
93      */

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         // DND support
120
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     /**
131      * {@inheritDoc}
132      */

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     /**
147      * {@inheritDoc}
148      */

149     public void menuAboutToShow( IMenuManager menuManager )
150     {
151
152         // add
153
menuManager.add( ( IAction ) connectionActionMap.get( newConnectionAction ) );
154         menuManager.add( new Separator() );
155
156         // open/close
157
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         // copy/paste/...
171
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         // import/export
179
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         // additions
194
menuManager.add( new Separator( IWorkbenchActionConstants.MB_ADDITIONS ) );
195
196         // properties
197
menuManager.add( ( IAction ) connectionActionMap.get( propertyDialogAction ) );
198     }
199
200
201     /**
202      * {@inheritDoc}
203      */

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     /**
219      * {@inheritDoc}
220      */

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