Package uk.ac.starlink.topcat

# Class WindowAction

java.lang.Object
javax.swing.AbstractAction
uk.ac.starlink.topcat.BasicAction
uk.ac.starlink.topcat.WindowAction

All Implemented Interfaces:
  `ActionListener`, `Serializable`, `Cloneable`, `EventListener`, `Action`

public abstract class WindowAction extends BasicAction
An `Action` which controls display of a window. `ActionEvent`s passed to this action may have the action command set to one of the strings `HIDE` or `SHOW` to define what the command means (in fact anything other than `HIDE` counts as `SHOW`). It has a bound property with key `VISIBLE` which indicates whether the associated window is currently showing or not. Setting the `VISIBLE` property true/false has the same effect as invoking the action with the `SHOW`/`HIDE` command string.

This class is currently a bit messy and overspecified for what it does.

Since:
  2 Mar 2004
Author:
  Mark Taylor (Starlink)
See Also:
  - Serialized Form

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`HIDE`
Action command text for the action which hides the window associated with this action.
`static final String`
`SHOW`
Action command text for the action which reveals the window associated with this action.
`static final String`
`VISIBLE`
Name of the bound property which indicates whether the window associated with this action is currently visible in the GUI.

### Fields inherited from class javax.swing.AbstractAction

`changeSupport, enabled`

### Fields inherited from interface javax.swing.Action

`ACCELERATOR_KEY, ACTION_COMMAND_KEY, DEFAULT, DISPLAYED_MNEMONIC_INDEX_KEY, LARGE_ICON_KEY, LONG_DESCRIPTION, MNEMONIC_KEY, NAME, SELECTED_KEY, SHORT_DESCRIPTION, SMALL_ICON`

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`WindowAction(String name, Icon icon, String shortdesc)`
Constructs a new WindowAction.

## Method Summary

Modifier and Type
Method
Description
`void`
`actionPerformed(ActionEvent evt)`
`JToggleButton`
`getButton()`
Returns a toggle button which toggles visibility of the window associated with this action.
`Object`
`getValue(String key)`
`abstract Window`
`getWindow(Component parent)`
Returns the window associated with this action, creating it if necessary.
`abstract boolean`
`hasWindow()`
Indicates whether the window associated with this window is currently in existence.
`void`
`putValue(String key, Object newValue)`

### Methods inherited from class uk.ac.starlink.topcat.BasicAction

`create, getEventWindow`

### Methods inherited from class javax.swing.AbstractAction

`addPropertyChangeListener, clone, firePropertyChange, getKeys, getPropertyChangeListeners, isEnabled, removePropertyChangeListener, setEnabled`

### Methods inherited from class java.lang.Object

`equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface javax.swing.Action

`accept`

## Field Details

### HIDE

public static final String HIDE
Action command text for the action which hides the window associated with this action.

See Also:
  - Constant Field Values

### SHOW

public static final String SHOW
Action command text for the action which reveals the window associated with this action.

See Also:
  - Constant Field Values

### VISIBLE

public static final String VISIBLE
Name of the bound property which indicates whether the window associated with this action is currently visible in the GUI.

See Also:
  - Constant Field Values

## Constructor Details

### WindowAction

protected WindowAction(String name, Icon icon, String shortdesc)
Constructs a new WindowAction.

Parameters:
  `name` - action name
  `icon` - action icon
  `shortdesc` - action short description property

## Method Details

### actionPerformed

public void actionPerformed(ActionEvent evt)

### getValue

public Object getValue(String key)

Specified by:
  `getValue` in interface `Action`
Overrides:
  `getValue` in class `AbstractAction`

### putValue

public void putValue(String key, Object newValue)

Specified by:
  `putValue` in interface `Action`
Overrides:
  `putValue` in class `AbstractAction`

### getWindow

public abstract Window getWindow(Component parent)
Returns the window associated with this action, creating it if necessary.

Parameters:
  `parent` - component which may be used for placing the new window

### hasWindow

public abstract boolean hasWindow()
Indicates whether the window associated with this window is currently in existence.

Returns:
  true iff the window exists

### getButton

public JToggleButton getButton()
Returns a toggle button which toggles visibility of the window associated with this action.

** Mostly working but not used at the moment **

Returns:
  new button