KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > project > ui > actions > Actions


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 package org.netbeans.modules.project.ui.actions;
21
22 import java.awt.event.ActionEvent JavaDoc;
23 import java.awt.event.KeyEvent JavaDoc;
24 import java.beans.PropertyChangeEvent JavaDoc;
25 import java.beans.PropertyChangeListener JavaDoc;
26 import javax.swing.Action JavaDoc;
27 import javax.swing.Icon JavaDoc;
28 import javax.swing.ImageIcon JavaDoc;
29 import javax.swing.KeyStroke JavaDoc;
30 import org.netbeans.modules.project.uiapi.ActionsFactory;
31 import org.netbeans.spi.project.ActionProvider;
32 import org.netbeans.spi.project.ui.support.ProjectActionPerformer;
33 import org.openide.actions.DeleteAction;
34 import org.openide.nodes.Node;
35 import org.openide.util.ContextAwareAction;
36 import org.openide.util.HelpCtx;
37 import org.openide.util.Lookup;
38 import org.openide.util.NbBundle;
39 import org.openide.util.Utilities;
40 import org.openide.util.actions.CallableSystemAction;
41 import org.openide.util.actions.NodeAction;
42 import org.openide.util.actions.SystemAction;
43
44 /** Factory for all kinds of actions used in projectui and
45  *projectuiapi.
46  */

47 public class Actions implements ActionsFactory {
48     
49     //private static final Actions INSTANCE = new Actions();
50

51     public Actions() {}
52     
53     
54     // Implementation of ActionFactory -----------------------------------------
55

56     private static Action JavaDoc SET_AS_MAIN_PROJECT;
57     private static Action JavaDoc CUSTOMIZE_PROJECT;
58     private static Action JavaDoc OPEN_SUBPROJECTS;
59     private static Action JavaDoc CLOSE_PROJECT;
60     private static Action JavaDoc NEW_FILE;
61     private static Action JavaDoc COPY_PROJECT;
62     private static Action JavaDoc MOVE_PROJECT;
63     private static Action JavaDoc RENAME_PROJECT;
64             
65     public synchronized Action JavaDoc setAsMainProjectAction() {
66         if ( SET_AS_MAIN_PROJECT == null ) {
67             SET_AS_MAIN_PROJECT = new SetMainProject();
68         }
69         return SET_AS_MAIN_PROJECT;
70     }
71     
72     public synchronized Action JavaDoc customizeProjectAction() {
73         if ( CUSTOMIZE_PROJECT == null ) {
74             CUSTOMIZE_PROJECT = new CustomizeProject();
75         }
76         return CUSTOMIZE_PROJECT;
77     }
78     
79     public synchronized Action JavaDoc openSubprojectsAction() {
80         if ( OPEN_SUBPROJECTS == null ) {
81             OPEN_SUBPROJECTS = new OpenSubprojects();
82         }
83         return OPEN_SUBPROJECTS;
84     }
85     
86     public synchronized Action JavaDoc closeProjectAction() {
87         if ( CLOSE_PROJECT == null ) {
88             CLOSE_PROJECT = new CloseProject();
89         }
90         return CLOSE_PROJECT;
91     }
92     
93     public synchronized Action JavaDoc newFileAction() {
94         if ( NEW_FILE == null ) {
95             NEW_FILE = new NewFile.WithSubMenu();
96         }
97         return NEW_FILE;
98     }
99     
100     public Action JavaDoc deleteProjectAction() {
101         return deleteProject();
102     }
103
104     public Action JavaDoc copyProjectAction() {
105         return copyProject();
106     }
107     
108     public Action JavaDoc moveProjectAction() {
109         return moveProject();
110     }
111     
112     public Action JavaDoc renameProjectAction() {
113         return renameProject();
114     }
115     
116     public synchronized Action JavaDoc newProjectAction() {
117         return new NewProject();
118     }
119     
120     public Action JavaDoc projectCommandAction(String JavaDoc command, String JavaDoc namePattern, Icon JavaDoc icon ) {
121         return new ProjectAction( command, namePattern, icon, null );
122     }
123     
124     public Action JavaDoc projectSensitiveAction( ProjectActionPerformer performer, String JavaDoc namePattern, Icon JavaDoc icon ) {
125         return new ProjectAction( performer, namePattern, icon, null );
126     }
127     
128     public Action JavaDoc mainProjectCommandAction(String JavaDoc command, String JavaDoc name, Icon JavaDoc icon) {
129         return new MainProjectAction( command, name, icon );
130     }
131     
132     public Action JavaDoc mainProjectSensitiveAction(ProjectActionPerformer performer, String JavaDoc name, Icon JavaDoc icon) {
133         return new MainProjectAction( performer, name, icon );
134     }
135
136     
137     public Action JavaDoc fileCommandAction(String JavaDoc command, String JavaDoc name, Icon JavaDoc icon) {
138         return new FileCommandAction( command, name, icon, null );
139     }
140     
141     // Project specific actions ------------------------------------------------
142

143     public static Action JavaDoc javadocProject() {
144         return new ProjectAction (
145             "javadoc", // XXX Define standard
146
NbBundle.getMessage(Actions.class, "LBL_JavadocProjectAction_Name" ), // NOI18N
147
null,
148             null );
149     }
150     
151     public static Action JavaDoc testProject() {
152         Action JavaDoc a = new ProjectAction (
153             "test", // XXX Define standard
154
NbBundle.getMessage(Actions.class, "LBL_TestProjectAction_Name" ), // NOI18N
155
new ImageIcon JavaDoc( Utilities.loadImage( "org/netbeans/modules/project/ui/resources/testProject.png" ) ), //NOI18N
156
null );
157         a.putValue("iconBase","org/netbeans/modules/project/ui/resources/testProject.png"); //NOI18N
158
a.putValue("noIconInMenu", Boolean.TRUE); //NOI18N
159
return a;
160     }
161         
162     
163     public static Action JavaDoc buildProject() {
164         Action JavaDoc a = new ProjectAction (
165             ActionProvider.COMMAND_BUILD,
166             NbBundle.getMessage(Actions.class, "LBL_BuildProjectAction_Name" ), // NO18N
167
new ImageIcon JavaDoc( Utilities.loadImage( "org/netbeans/modules/project/ui/resources/buildCurrentProject.gif" ) ), //NOI18N
168
null );
169         a.putValue("iconBase","org/netbeans/modules/project/ui/resources/buildCurrentProject.gif"); //NOI18N
170
return a;
171     }
172     
173     public static Action JavaDoc cleanProject() {
174         Action JavaDoc a = new ProjectAction(
175                 ActionProvider.COMMAND_CLEAN,
176                 NbBundle.getMessage(Actions.class, "LBL_CleanProjectAction_Name" ), // NO18N
177
new ImageIcon JavaDoc( Utilities.loadImage( "org/netbeans/modules/project/ui/resources/cleanCurrentProject.gif" ) ), //NOI18N
178
null );
179         a.putValue("iconBase","org/netbeans/modules/project/ui/resources/cleanCurrentProject.gif"); //NOI18N
180
return a;
181     }
182     
183     public static Action JavaDoc rebuildProject() {
184         Action JavaDoc a = new ProjectAction(
185             ActionProvider.COMMAND_REBUILD,
186             NbBundle.getMessage(Actions.class, "LBL_RebuildProjectAction_Name"), // NOI18N
187
new ImageIcon JavaDoc( Utilities.loadImage( "org/netbeans/modules/project/ui/resources/rebuildCurrentProject.gif" ) ), //NOI18N
188
null );
189         a.putValue("iconBase","org/netbeans/modules/project/ui/resources/rebuildCurrentProject.gif"); //NOI18N
190
return a;
191     }
192         
193     public static Action JavaDoc runProject() {
194         Action JavaDoc a = new ProjectAction(
195             ActionProvider.COMMAND_RUN,
196             NbBundle.getMessage(Actions.class, "LBL_RunProjectAction_Name"), // NO18N
197
new ImageIcon JavaDoc( Utilities.loadImage( "org/netbeans/modules/project/ui/resources/runCurrentProject.gif" ) ), //NOI18N
198
null );
199         a.putValue("iconBase","org/netbeans/modules/project/ui/resources/runCurrentProject.gif"); //NOI18N
200
return a;
201     }
202     
203     public static synchronized Action JavaDoc deleteProject() {
204         Action JavaDoc a = new ProjectAction(
205             ActionProvider.COMMAND_DELETE,
206             NbBundle.getMessage(Actions.class, "LBL_DeleteProjectAction_Name"),
207             null,
208             null );
209         
210         a.putValue(Action.ACCELERATOR_KEY, DeleteAction.get(DeleteAction.class).getValue(Action.ACCELERATOR_KEY));
211         
212         return a;
213     }
214     
215     public static synchronized Action JavaDoc copyProject() {
216         if (COPY_PROJECT == null) {
217             Action JavaDoc a = new ProjectAction(
218                     ActionProvider.COMMAND_COPY,
219             NbBundle.getMessage(Actions.class, "LBL_CopyProjectAction_Name"),
220                     null, //NOI18N
221
null );
222             COPY_PROJECT = a;
223         }
224         
225         return COPY_PROJECT;
226     }
227     
228     public static synchronized Action JavaDoc moveProject() {
229         if (MOVE_PROJECT == null) {
230             Action JavaDoc a = new ProjectAction(
231                     ActionProvider.COMMAND_MOVE,
232             NbBundle.getMessage(Actions.class, "LBL_MoveProjectAction_Name"),
233                     null, //NOI18N
234
null );
235             MOVE_PROJECT = a;
236         }
237         
238         return MOVE_PROJECT;
239     }
240     
241     public static synchronized Action JavaDoc renameProject() {
242         if (RENAME_PROJECT == null) {
243             Action JavaDoc a = new ProjectAction(
244                     ActionProvider.COMMAND_RENAME,
245             NbBundle.getMessage(Actions.class, "LBL_RenameProjectAction_Name"),
246                     null, //NOI18N
247
null );
248             RENAME_PROJECT = a;
249         }
250         
251         return RENAME_PROJECT;
252     }
253     
254     // 1-off actions -----------------------------------------------------------
255

256     public static Action JavaDoc compileSingle() {
257         Action JavaDoc a = new FileCommandAction (
258             "compile.single", // XXX Define standard
259
NbBundle.getMessage(Actions.class, "LBL_CompileSingleAction_Name" ),// NOI18N
260
new ImageIcon JavaDoc( Utilities.loadImage( "org/netbeans/modules/project/ui/resources/compileSingle.png" ) ), //NOI18N
261
null ); //NOI18N
262
a.putValue("iconBase","org/netbeans/modules/project/ui/resources/compileSingle.png"); //NOI18N
263
a.putValue("noIconInMenu", Boolean.TRUE); //NOI18N
264
return a;
265     }
266     
267     public static Action JavaDoc runSingle() {
268         Action JavaDoc a = new FileCommandAction (
269             "run.single", // XXX Define standard
270
NbBundle.getMessage(Actions.class, "LBL_RunSingleAction_Name"), // NOI18N
271
new ImageIcon JavaDoc( Utilities.loadImage( "org/netbeans/modules/project/ui/resources/runSingle.png" ) ), //NOI18N
272
null);
273         a.putValue("iconBase","org/netbeans/modules/project/ui/resources/runSingle.png"); //NOI18N
274
a.putValue("noIconInMenu", Boolean.TRUE); //NOI18N
275
return a;
276     }
277     
278     public static Action JavaDoc debugSingle() {
279         Action JavaDoc a = new FileCommandAction (
280             "debug.single", // XXX Define standard
281
NbBundle.getMessage(Actions.class, "LBL_DebugSingleAction_Name"), // NOI18N
282
new ImageIcon JavaDoc( Utilities.loadImage( "org/netbeans/modules/project/ui/resources/debugSingle.png" ) ), //NOI18N
283
null);
284         a.putValue("iconBase","org/netbeans/modules/project/ui/resources/debugSingle.png"); //NOI18N
285
a.putValue("noIconInMenu", Boolean.TRUE); //NOI18N
286
return a;
287     }
288     
289     public static Action JavaDoc testSingle() {
290         Action JavaDoc a = new FileCommandAction (
291             "test.single", // XXX Define standard
292
NbBundle.getMessage(Actions.class, "LBL_TestSingleAction_Name" ),// NOI18N
293
new ImageIcon JavaDoc( Utilities.loadImage( "org/netbeans/modules/project/ui/resources/testSingle.png" ) ), //NOI18N
294
null ); //NOI18N
295
a.putValue("iconBase","org/netbeans/modules/project/ui/resources/testSingle.png"); //NOI18N
296
a.putValue("noIconInMenu", Boolean.TRUE); //NOI18N
297
return a;
298     }
299     
300     public static Action JavaDoc debugTestSingle() {
301         Action JavaDoc a = new FileCommandAction (
302             "debug.test.single", // XXX Define standard
303
NbBundle.getMessage(Actions.class, "LBL_DebugTestSingleAction_Name" ),// NOI18N
304
new ImageIcon JavaDoc( Utilities.loadImage( "org/netbeans/modules/project/ui/resources/debugTestSingle.png" ) ), //NOI18N
305
null ); //NOI18N
306
a.putValue("iconBase","org/netbeans/modules/project/ui/resources/debugTestSingle.png"); //NOI18N
307
a.putValue("noIconInMenu", Boolean.TRUE); //NOI18N
308
return a;
309     }
310         
311     // Main Project actions ----------------------------------------------------
312

313     
314     public static Action JavaDoc buildMainProject() {
315         Action JavaDoc a = new MainProjectAction (
316             ActionProvider.COMMAND_BUILD,
317             NbBundle.getMessage(Actions.class, "LBL_BuildMainProjectAction_Name" ),
318             new ImageIcon JavaDoc( Utilities.loadImage( "org/netbeans/modules/project/ui/resources/buildProject.gif" ) ) ); //NOI18N
319
a.putValue("iconBase","org/netbeans/modules/project/ui/resources/buildProject.gif"); //NOI18N
320
return a;
321     }
322     
323     public static Action JavaDoc cleanMainProject() {
324         Action JavaDoc a = new MainProjectAction(
325                 ActionProvider.COMMAND_CLEAN,
326                 NbBundle.getMessage(Actions.class, "LBL_CleanMainProjectAction_Name" ),
327                 new ImageIcon JavaDoc( Utilities.loadImage( "org/netbeans/modules/project/ui/resources/cleanProject.gif" ) ) ); //NOI18N
328
a.putValue("iconBase","org/netbeans/modules/project/ui/resources/cleanProject.gif"); //NOI18N
329
return a;
330     }
331
332     public static Action JavaDoc rebuildMainProject() {
333         Action JavaDoc a = new MainProjectAction(
334             ActionProvider.COMMAND_REBUILD,
335             NbBundle.getMessage(Actions.class, "LBL_RebuildMainProjectAction_Name"), // NOI18N
336
new ImageIcon JavaDoc( Utilities.loadImage( "org/netbeans/modules/project/ui/resources/rebuildProject.gif" ) ) ); //NOI18N
337
a.putValue("iconBase","org/netbeans/modules/project/ui/resources/rebuildProject.gif"); //NOI18N
338
return a;
339     }
340         
341     public static Action JavaDoc runMainProject() {
342         Action JavaDoc a = new MainProjectAction(
343             ActionProvider.COMMAND_RUN,
344             NbBundle.getMessage(Actions.class, "LBL_RunMainProjectAction_Name"), // NO18N
345
new ImageIcon JavaDoc( Utilities.loadImage( "org/netbeans/modules/project/ui/resources/runProject.gif" ) ) ); //NOI18N
346
a.putValue("iconBase","org/netbeans/modules/project/ui/resources/runProject.gif"); //NOI18N
347
return a;
348     }
349     
350     public static Action JavaDoc debugMainProject() {
351         Action JavaDoc a = new MainProjectAction(
352             ActionProvider.COMMAND_DEBUG,
353             NbBundle.getMessage(Actions.class, "LBL_DebugMainProjectAction_Name" ), // NOI18N
354
new ImageIcon JavaDoc( Utilities.loadImage( "org/netbeans/modules/project/ui/resources/debugProject.gif" ) ) ); //NOI18N
355
a.putValue("iconBase","org/netbeans/modules/project/ui/resources/debugProject.gif"); //NOI18N
356
return a;
357     }
358
359     public Action JavaDoc setProjectConfigurationAction() {
360         return SystemAction.get(ActiveConfigAction.class);
361     }
362
363 }
364
Popular Tags