1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.xmlhammer.gui.actions;
22
23 import java.awt.Toolkit;
24 import java.awt.event.InputEvent;
25 import java.awt.event.KeyEvent;
26
27 import javax.swing.JOptionPane;
28 import javax.swing.KeyStroke;
29
30 import org.bounce.RunnableAction;
31 import org.xmlhammer.gui.ProjectsView;
32 import org.xmlhammer.gui.XMLHammer;
33
34 /***
35 * An action that can be used to close all projects.
36 *
37 * @version $Revision: 1.6 $, $Date: 2007/07/04 19:42:49 $
38 * @author Edwin Dankert <edankert@gmail.com>
39 */
40 public class CloseAllAction extends RunnableAction {
41 private static final long serialVersionUID = -5318818717517600451L;
42
43 private XMLHammer parent = null;
44
45 /***
46 * The constructor for the action which closes all projects.
47 *
48 * @param parent the parent frame.
49 */
50 public CloseAllAction( XMLHammer parent) {
51 super( "Close All");
52
53 putValue( ACCELERATOR_KEY, KeyStroke.getKeyStroke( KeyEvent.VK_W, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask() + InputEvent.SHIFT_MASK, false));
54 putValue( SHORT_DESCRIPTION, "Close All Projects");
55
56 this.parent = parent;
57
58 setEnabled( false);
59 }
60
61 /***
62 * The implementation of the close all project action, called
63 * after a user action.
64 */
65 public void run() {
66 execute( parent);
67 }
68
69 public static int execute( XMLHammer parent) {
70 ProjectsView projects = parent.getProjectsView();
71
72 for ( int i = projects.getViewCount()-1; i >= 0; i--) {
73 if ( CloseAction.execute( parent, projects.getViewAt(i)) == JOptionPane.CANCEL_OPTION) {
74 return JOptionPane.CANCEL_OPTION;
75 }
76 }
77
78 return JOptionPane.OK_OPTION;
79 }
80 }