Class LinkModelAction<T extends LinkModel>

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?

Author:
Jeanette Winzenburg
See Also:
  • Field Details

  • Constructor Details

    • LinkModelAction

      public LinkModelAction()
    • LinkModelAction

      public LinkModelAction(ActionListener visitingDelegate)
    • LinkModelAction

      public LinkModelAction(T target)
    • LinkModelAction

      public LinkModelAction(T target, ActionListener visitingDelegate)
  • Method Details

    • 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()