01: /*
02: * Gruntspud
03: *
04: * Copyright (C) 2002 Brett Smith.
05: *
06: * Written by: Brett Smith <t_magicthize@users.sourceforge.net>
07: *
08: * This program is free software; you can redistribute it and/or modify it under
09: * the terms of the GNU Library General Public License as published by the Free
10: * Software Foundation; either version 2 of the License, or (at your option) any
11: * later version. This program is distributed in the hope that it will be
12: * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
13: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library
14: * General Public License for more details.
15: *
16: * You should have received a copy of the GNU Library General Public License
17: * along with this program; if not, write to the Free Software Foundation, Inc.,
18: * 675 Mass Ave, Cambridge, MA 02139, USA.
19: */
20: package gruntspud.actions;
21:
22: import gruntspud.Constants;
23: import gruntspud.ResourceUtil;
24: import java.util.ResourceBundle;
25: import javax.swing.AbstractAction;
26: import javax.swing.Action;
27:
28: /**
29: * Convencience Abstract implementation of a <code>GruntspudAction</code>
30: *
31: * @author magicthize
32: */
33: public abstract class AbstractGruntspudAction extends AbstractAction
34: implements GruntspudAction {
35: /**
36: * Default contructor for AbstractGruntspudAction
37: */
38: public AbstractGruntspudAction() {
39: }
40:
41: /**
42: * Construct the action using a resource bundle to derive the name, short
43: * description, long description, mnemonic and accelerator.
44: *
45: * @param res resource bundle
46: * @param prefix action prefix
47: */
48: public AbstractGruntspudAction(ResourceBundle res,
49: String actionPrefix) {
50: this ();
51: putValue(Action.NAME, res.getString(actionPrefix + ".name"));
52: putValue(Action.SHORT_DESCRIPTION, res.getString(actionPrefix
53: + ".shortDescription"));
54: putValue(Action.LONG_DESCRIPTION, res.getString(actionPrefix
55: + ".longDescription"));
56: putValue(Action.MNEMONIC_KEY, new Integer(ResourceUtil
57: .getResourceMnemonic(res, actionPrefix + ".mnemonic")));
58: if (!"true".equals(System.getProperty(
59: "gruntspud.disableKeyboardAccelerators", "false"))) {
60: putValue(Action.ACCELERATOR_KEY, ResourceUtil
61: .getResourceKeyStroke(res, actionPrefix
62: + ".keystroke"));
63: }
64: putValue(GruntspudAction.SHOW_NAME, Boolean
65: .valueOf(ResourceUtil.getResourceBoolean(res,
66: actionPrefix + ".showName")));
67: }
68:
69: /**
70: * Invoked whenever the state changes in some way. Each action must determine
71: * whether or not it should be enabled or not. A return value of
72: * <code>true</code> will cause the action to be enabled if it is not.
73: *
74: * @return action should be enabled
75: */
76: public boolean checkAvailable() {
77: return true;
78: }
79: }
|