net.sf.freecol.client.gui.action
Class FreeColAction

java.lang.Object
  extended by javax.swing.AbstractAction
      extended by net.sf.freecol.client.gui.action.FreeColAction
All Implemented Interfaces:
java.awt.event.ActionListener, java.io.Serializable, java.lang.Cloneable, java.util.EventListener, javax.swing.Action, Option
Direct Known Subclasses:
ChatAction, MapboardAction

public abstract class FreeColAction
extends javax.swing.AbstractAction
implements Option

The super class of all actions in FreeCol. Subclasses of this object is stored in an ActionManager.

See Also:
Serialized Form

Nested Class Summary
 class FreeColAction.InnerMenuKeyListener
          A class used by Actions which have a mnemonic.
 
Field Summary
static java.lang.String BUTTON_DISABLED_IMAGE
           
static java.lang.String BUTTON_IMAGE
           
static java.lang.String BUTTON_PRESSED_IMAGE
           
static java.lang.String BUTTON_ROLLOVER_IMAGE
           
static java.lang.String COPYRIGHT
           
protected  FreeColClient freeColClient
           
static java.lang.String LICENSE
           
static java.lang.Integer NO_MNEMONIC
           
static java.lang.String REVISION
           
 
Fields inherited from class javax.swing.AbstractAction
changeSupport, enabled
 
Fields inherited from interface net.sf.freecol.common.option.Option
NO_ID
 
Fields inherited from interface javax.swing.Action
ACCELERATOR_KEY, ACTION_COMMAND_KEY, DEFAULT, LONG_DESCRIPTION, MNEMONIC_KEY, NAME, SHORT_DESCRIPTION, SMALL_ICON
 
Constructor Summary
protected FreeColAction(FreeColClient freeColClient, java.lang.String name, java.lang.String shortDescription)
          Creates a new FreeColAction.
protected FreeColAction(FreeColClient freeColClient, java.lang.String name, java.lang.String shortDescription, int mnemonic)
           
protected FreeColAction(FreeColClient freeColClient, java.lang.String name, java.lang.String shortDescription, int mnemonic, javax.swing.KeyStroke accelerator)
           
protected FreeColAction(FreeColClient freeColClient, java.lang.String name, java.lang.String shortDescription, javax.swing.KeyStroke accelerator)
           
 
Method Summary
 javax.swing.KeyStroke getAccelerator()
          Gets the keyboard accelerator for this option.
protected  FreeColClient getFreeColClient()
          Gets the main controller object for the client.
abstract  java.lang.String getId()
          Returns the id of this Option.
static java.lang.String getKeyStrokeText(javax.swing.KeyStroke keyStroke)
          Creates a String that keeps the attributes given KeyStroke.
 javax.swing.event.MenuKeyListener getMenuKeyListener()
           
 java.lang.Integer getMnemonic()
           
 java.lang.String getName()
          Returns the name of this Option.
 java.lang.String getShortDescription()
          Gives a short description of this Option.
 void readFromXML(javax.xml.stream.XMLStreamReader in)
          Initialize this object from an XML-representation of this object.
 void readFromXMLElement(org.w3c.dom.Element element)
          Initialize this object from an XML-representation of this object.
protected  void readFromXMLImpl(javax.xml.stream.XMLStreamReader in)
          Initialize this object from an XML-representation of this object.
 void setAccelerator(javax.swing.KeyStroke accelerator)
          Sets a keyboard accelerator.
protected  boolean shouldBeEnabled()
          Checks if this action should be enabled.
 java.lang.String toString()
          Returns a textual representation of this object.
 void toXML(javax.xml.stream.XMLStreamWriter out)
          This method writes an XML-representation of this object to the given stream.
 org.w3c.dom.Element toXMLElement(org.w3c.dom.Document document)
          This method writes an XML-representation of this object to the given stream.
protected  void toXMLImpl(javax.xml.stream.XMLStreamWriter out)
          This method writes an XML-representation of this object to the given stream.
 void update()
          Updates the "enabled"-status with the value returned by shouldBeEnabled().
 
Methods inherited from class javax.swing.AbstractAction
addPropertyChangeListener, clone, firePropertyChange, getKeys, getPropertyChangeListeners, getValue, isEnabled, putValue, removePropertyChangeListener, setEnabled
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.awt.event.ActionListener
actionPerformed
 

Field Detail

COPYRIGHT

public static final java.lang.String COPYRIGHT
See Also:
Constant Field Values

LICENSE

public static final java.lang.String LICENSE
See Also:
Constant Field Values

REVISION

public static final java.lang.String REVISION
See Also:
Constant Field Values

BUTTON_IMAGE

public static final java.lang.String BUTTON_IMAGE
See Also:
Constant Field Values

BUTTON_ROLLOVER_IMAGE

public static final java.lang.String BUTTON_ROLLOVER_IMAGE
See Also:
Constant Field Values

BUTTON_PRESSED_IMAGE

public static final java.lang.String BUTTON_PRESSED_IMAGE
See Also:
Constant Field Values

BUTTON_DISABLED_IMAGE

public static final java.lang.String BUTTON_DISABLED_IMAGE
See Also:
Constant Field Values

NO_MNEMONIC

public static final java.lang.Integer NO_MNEMONIC

freeColClient

protected final FreeColClient freeColClient
Constructor Detail

FreeColAction

protected FreeColAction(FreeColClient freeColClient,
                        java.lang.String name,
                        java.lang.String shortDescription)
Creates a new FreeColAction.

Parameters:
freeColClient - The main controller object for the client.
name - An i18n-key to identify the name of this action.
shortDescription - An i18n-key to identify a short description of this action. This value can be set to null if the action does not have a description.
mnemonic - A mnemonic to be used for selecting this action when the action is displaying on a menu etc.
accelerator - The keyboard accelerator to be used for selecting this action or null if this action does not have an accelerator.

FreeColAction

protected FreeColAction(FreeColClient freeColClient,
                        java.lang.String name,
                        java.lang.String shortDescription,
                        int mnemonic)

FreeColAction

protected FreeColAction(FreeColClient freeColClient,
                        java.lang.String name,
                        java.lang.String shortDescription,
                        javax.swing.KeyStroke accelerator)

FreeColAction

protected FreeColAction(FreeColClient freeColClient,
                        java.lang.String name,
                        java.lang.String shortDescription,
                        int mnemonic,
                        javax.swing.KeyStroke accelerator)
Method Detail

getMnemonic

public java.lang.Integer getMnemonic()

getFreeColClient

protected FreeColClient getFreeColClient()
Gets the main controller object for the client.

Returns:
The main controller object for the client.

update

public void update()
Updates the "enabled"-status with the value returned by shouldBeEnabled().


shouldBeEnabled

protected boolean shouldBeEnabled()
Checks if this action should be enabled.

Returns:
false if the ClientOptionsDialog is visible and true otherwise. This method should be extended by subclasses if the action should be disabled in other cases.

setAccelerator

public void setAccelerator(javax.swing.KeyStroke accelerator)
Sets a keyboard accelerator.

Parameters:
accelerator - The KeyStroke. Using null is the same as disabling the keyboard accelerator.

getAccelerator

public javax.swing.KeyStroke getAccelerator()
Gets the keyboard accelerator for this option.

Returns:
The KeyStroke or null if the keyboard accelerator is disabled.

getShortDescription

public java.lang.String getShortDescription()
Gives a short description of this Option. Can for instance be used as a tooltip text.

Specified by:
getShortDescription in interface Option
Returns:
A short description of this action.

toString

public java.lang.String toString()
Returns a textual representation of this object.

Specified by:
toString in interface Option
Overrides:
toString in class java.lang.Object
Returns:
The name of this Option.
See Also:
getName()

getId

public abstract java.lang.String getId()
Returns the id of this Option.

Specified by:
getId in interface Option
Returns:
An unique identifier for this action.

getName

public java.lang.String getName()
Returns the name of this Option.

Specified by:
getName in interface Option
Returns:
The name as provided in the constructor.

getKeyStrokeText

public static java.lang.String getKeyStrokeText(javax.swing.KeyStroke keyStroke)
Creates a String that keeps the attributes given KeyStroke. This String can be used to store the key stroke in an XML-file.

Parameters:
keyStroke - The KeyStroke.
Returns:
A String that produces a key stroke equal to the given KeyStroke if passed as a parameter to getAWTKeyStroke(String).

toXMLImpl

protected void toXMLImpl(javax.xml.stream.XMLStreamWriter out)
                  throws javax.xml.stream.XMLStreamException
This method writes an XML-representation of this object to the given stream.

Parameters:
out - The target stream.
Throws:
javax.xml.stream.XMLStreamException - if there are any problems writing to the stream.

readFromXMLImpl

protected void readFromXMLImpl(javax.xml.stream.XMLStreamReader in)
                        throws javax.xml.stream.XMLStreamException
Initialize this object from an XML-representation of this object.

Parameters:
in - The input stream with the XML.
Throws:
javax.xml.stream.XMLStreamException - if a problem was encountered during parsing.

toXML

public void toXML(javax.xml.stream.XMLStreamWriter out)
           throws javax.xml.stream.XMLStreamException
This method writes an XML-representation of this object to the given stream.

Specified by:
toXML in interface Option
Parameters:
out - The target stream.
Throws:
javax.xml.stream.XMLStreamException - if there are any problems writing to the stream.

readFromXML

public void readFromXML(javax.xml.stream.XMLStreamReader in)
                 throws javax.xml.stream.XMLStreamException
Initialize this object from an XML-representation of this object.

Specified by:
readFromXML in interface Option
Parameters:
in - The input stream with the XML.
Throws:
javax.xml.stream.XMLStreamException - if a problem was encountered during parsing.

toXMLElement

public org.w3c.dom.Element toXMLElement(org.w3c.dom.Document document)
This method writes an XML-representation of this object to the given stream.

Specified by:
toXMLElement in interface Option
Parameters:
document - The Document.
Returns:
An XML-representation of this object.

readFromXMLElement

public void readFromXMLElement(org.w3c.dom.Element element)
Initialize this object from an XML-representation of this object.

Specified by:
readFromXMLElement in interface Option
Parameters:
element - The DOM-element ("Document Object Model") made to represent this "Option".

getMenuKeyListener

public javax.swing.event.MenuKeyListener getMenuKeyListener()