Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## charvax.swing
Interface Action

All Superinterfaces:
  ActionListener, EventListener

All Known Implementing Classes:
  AbstractAction

public interface Action
extends ActionListener

The `Action` interface provides a useful extension to the `ActionListener` interface in cases where the same functionality may be accessed by several controls.

In addition to the `actionPerformed` method defined by the `ActionListener` interface, this interface allows the application to define, in a single place:

- One or more text strings that describe the function. These strings can be used, for example, to display the flyover text for a button or to set the text in a menu item.
- One or more icons that depict the function. These icons can be used for the images in a menu control, or for composite entries in a more sophisticated user interface.
- The enabled/disabled state of the functionality. Instead of having to separately disable the menu item and the toolbar button, the application can disable the function that implements this interface. All components which are registered as listeners for the state change then know to disable event generation for that item and to modify the display accordingly.

Certain containers, including menus and tool bars, know how to add an `Action` object. When an `Action` object is added to such a container, the container:

1. Creates a component that is appropriate for that container (a tool bar creates a button component, for example).
2. Gets the appropriate property(s) from the `Action` object to customize the component (for example, the icon image and flyover text).
3. Checks the initial state of the `Action` object to determine if it is enabled or disabled, and renders the component in the appropriate fashion.
4. Registers a listener with the `Action` object so that is notified of state changes. When the `Action` object changes from enabled to disabled, or back, the container makes the appropriate revisions to the event-generation mechanisms and renders the component accordingly.

For example, both a menu item and a toolbar button could access a `Cut` action object. The text associated with the object is specified as "Cut", and an image depicting a pair of scissors is specified as its icon. The `Cut` action-object can then be added to a menu and to a tool bar. Each container does the appropriate things with the object, and invokes its `actionPerformed` method when the component associated with it is activated. The application can then disable or enable the application object without worrying about what user-interface components are connected to it.

This interface can be added to an existing class or used to create an adapter (typically, by subclassing `AbstractAction`). The `Action` object can then be added to multiple `Action`-aware containers and connected to `Action`-capable components. The GUI controls can then be activated or deactivated all at once by invoking the `Action` object's `setEnabled` method.

Note that `Action` implementations tend to be more expensive in terms of storage than a typical `ActionListener`, which does not offer the benefits of centralized control of functionality and broadcast of property changes. For this reason, you should take care to only use `Action`s where their benefits are desired, and use simple `ActionListener`s elsewhere.

Version:
  1.30 12/19/03
Author:
  Georges Saab
See Also:
  `AbstractAction`

Field Summary
`static java.lang.String` | `ACCELERATOR_KEY` The key used for storing a `KeyStroke` to be used as the accelerator for the action.
`static java.lang.String` | `ACTION_COMMAND_KEY` The key used to determine the command `String` for the `ActionEvent` that will be created when an `Action` is going to be notified as the result of residing in a `Keymap` associated with a `JComponent`.
`static java.lang.String` | `DEFAULT` Not currently used.
`static java.lang.String` | `LONG_DESCRIPTION` The key used for storing a longer `String` description for the action, could be used for context-sensitive help.
`static java.lang.String` | `MNEMONIC_KEY` The key used for storing a `KeyEvent` to be used as the mnemonic for the action.
`static java.lang.String` | `NAME` The key used for storing the `String` name for the action, used for a menu or button.
`static java.lang.String` | `SHORT_DESCRIPTION` The key used for storing a short `String` description for the action, used for tooltip text.
`static java.lang.String` | `SMALL_ICON` The key used for storing a small `Icon`, such as `ImageIcon`, for the action, used for toolbar buttons.

Method Summary
`void` | `addPropertyChangeListener(java.beans.PropertyChangeListener listener)` Adds a `PropertyChange` listener.
`java.lang.Object` | `getValue(java.lang.String key)` Gets one of this object's properties using the associated key.
`boolean` | `isEnabled()` Returns the enabled state of the `Action`.
`void` | `putValue(java.lang.String key, java.lang.Object value)` Sets one of this object's properties using the associated key.
`void` | `removePropertyChangeListener(java.beans.PropertyChangeListener listener)` Removes a `PropertyChange` listener.
`void` | `setEnabled(boolean b)` Sets the enabled state of the `Action`.

Methods inherited from interface charva.awt.event.ActionListener
`actionPerformed`

Field Detail

### DEFAULT

    public static final java.lang.String DEFAULT

  Not currently used.

  See Also:
    Constant Field Values

### NAME

    public static final java.lang.String NAME

  The key used for storing the `String` name for the action, used for a menu or button.

  See Also:
    Constant Field Values

### SHORT_DESCRIPTION

    public static final java.lang.String SHORT_DESCRIPTION

  The key used for storing a short `String` description for the action, used for tooltip text.

  See Also:
    Constant Field Values

### LONG_DESCRIPTION

    public static final java.lang.String LONG_DESCRIPTION

  The key used for storing a longer `String` description for the action, could be used for context-sensitive help.

  See Also:
    Constant Field Values

### SMALL_ICON

    public static final java.lang.String SMALL_ICON

  The key used for storing a small `Icon`, such as `ImageIcon`, for the action, used for toolbar buttons.

  See Also:
    Constant Field Values

### ACTION_COMMAND_KEY

    public static final java.lang.String ACTION_COMMAND_KEY

  The key used to determine the command `String` for the `ActionEvent` that will be created when an `Action` is going to be notified as the result of residing in a `Keymap` associated with a `JComponent`.

  See Also:
    Constant Field Values

### ACCELERATOR_KEY

    public static final java.lang.String ACCELERATOR_KEY

  The key used for storing a `KeyStroke` to be used as the accelerator for the action.

  Since:
    1.3
  See Also:
    Constant Field Values

### MNEMONIC_KEY

    public static final java.lang.String MNEMONIC_KEY

  The key used for storing a `KeyEvent` to be used as the mnemonic for the action.

  Since:
    1.3
  See Also:
    Constant Field Values

Method Detail

### getValue

    public java.lang.Object getValue(java.lang.String key)

  Gets one of this object's properties using the associated key.

  See Also:
    `putValue(java.lang.String, java.lang.Object)`

### putValue

    public void putValue(java.lang.String key,
                         java.lang.Object value)

  Sets one of this object's properties using the associated key. If the value has changed, a `PropertyChangeEvent` is sent to listeners.

  Parameters:
    `key` - a `String` containing the key
    `value` - an `Object` value

### setEnabled

    public void setEnabled(boolean b)

  Sets the enabled state of the `Action`. When enabled, any component associated with this object is active and able to fire this object's `actionPerformed` method. If the value has changed, a `PropertyChangeEvent` is sent to listeners.

  Parameters:
    `b` - true to enable this `Action`, false to disable it

### isEnabled

    public boolean isEnabled()

  Returns the enabled state of the `Action`. When enabled, any component associated with this object is active and able to fire this object's `actionPerformed` method.

  Returns:
    true if this `Action` is enabled

### addPropertyChangeListener

    public void addPropertyChangeListener(java.beans.PropertyChangeListener listener)

  Adds a `PropertyChange` listener. Containers and attached components use these methods to register interest in this `Action` object. When its enabled state or other property changes, the registered listeners are informed of the change.

  Parameters:
    `listener` - a `PropertyChangeListener` object

### removePropertyChangeListener

    public void removePropertyChangeListener(java.beans.PropertyChangeListener listener)

  Removes a `PropertyChange` listener.

  Parameters:
    `listener` - a `PropertyChangeListener` object
  See Also:
    `addPropertyChangeListener(java.beans.PropertyChangeListener)`

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD