org.jdesktop.swingx.hyperlink
Class LinkModelAction<T extends LinkModel>

java.lang.Object
  extended by javax.swing.AbstractAction
      extended by org.jdesktop.swingx.action.AbstractActionExt
          extended by org.jdesktop.swingx.hyperlink.AbstractHyperlinkAction<T>
              extended by org.jdesktop.swingx.hyperlink.LinkModelAction<T>
All Implemented Interfaces:
ActionListener, ItemListener, Serializable, Cloneable, EventListener, Action

public class LinkModelAction<T extends LinkModel>
extends AbstractHyperlinkAction<T>

Specialized LinkAction for a target of type LinkModel.

This action delegates actionPerformed to vistingDelegate. PENDING: move to swingx package?

See Also:
Serialized Form

Field Summary
static String VISIT_ACTION
           
 
Fields inherited from class org.jdesktop.swingx.hyperlink.AbstractHyperlinkAction
target, VISITED_KEY
 
Fields inherited from class org.jdesktop.swingx.action.AbstractActionExt
GROUP, IS_STATE, LARGE_ICON
 
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
LinkModelAction()
           
LinkModelAction(ActionListener visitingDelegate)
           
LinkModelAction(T target)
           
LinkModelAction(T target, ActionListener visitingDelegate)
           
 
Method Summary
 void actionPerformed(ActionEvent e)
          This action delegates to the visitingDelegate if both delegate and target are != null, does nothing otherwise.
protected  void installTarget()
          installs a propertyChangeListener on the target and updates the visual properties from the target.
 void setVisitingDelegate(ActionListener delegate)
          The delegate to invoke on actionPerformed.
protected  void uninstallTarget()
          removes the propertyChangeListener.
protected  void updateFromTarget()
           
 
Methods inherited from class org.jdesktop.swingx.hyperlink.AbstractHyperlinkAction
getTarget, isVisited, itemStateChanged, setStateAction, setTarget, setVisited
 
Methods inherited from class org.jdesktop.swingx.action.AbstractActionExt
dispose, getAccelerator, getActionCommand, getGroup, getLargeIcon, getLongDescription, getMnemonic, getName, getShortDescription, getSmallIcon, isSelected, isStateAction, setAccelerator, setActionCommand, setGroup, setLargeIcon, setLongDescription, setMnemonic, setMnemonic, setName, setSelected, setShortDescription, setSmallIcon, setStateAction, toString
 
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
 

Field Detail

VISIT_ACTION

public static final String VISIT_ACTION
See Also:
Constant Field Values
Constructor Detail

LinkModelAction

public LinkModelAction()

LinkModelAction

public LinkModelAction(ActionListener visitingDelegate)

LinkModelAction

public LinkModelAction(T target)

LinkModelAction

public LinkModelAction(T target,
                       ActionListener visitingDelegate)
Method Detail

setVisitingDelegate

public void setVisitingDelegate(ActionListener delegate)
The delegate to invoke on actionPerformed.

The delegates actionPerformed is invoked with an ActionEvent having the target as source. Delegates are expected to cope gracefully with the T.

PENDING: JW - How to formalize?

Parameters:
delegate - the action invoked on the target.

actionPerformed

public void actionPerformed(ActionEvent e)
This action delegates to the visitingDelegate if both delegate and target are != null, does nothing otherwise. The actionEvent carries the target as source. PENDING: pass through a null target? - most probably!


installTarget

protected void installTarget()
installs a propertyChangeListener on the target and updates the visual properties from the target.

Overrides:
installTarget in class AbstractHyperlinkAction<T extends LinkModel>

uninstallTarget

protected void uninstallTarget()
removes the propertyChangeListener.

Implementation NOTE: this does not clean-up internal state! There is no need to because updateFromTarget handles both null and not-null targets. Hmm...

Overrides:
uninstallTarget in class AbstractHyperlinkAction<T extends LinkModel>

updateFromTarget

protected void updateFromTarget()