uic.model
Class UICToggleAction

java.lang.Object
  extended by uic.model.UICSimpleAction
      extended by uic.model.UICAction
          extended by uic.model.UICToggleAction
All Implemented Interfaces:
ActionListener, EventListener
Direct Known Subclasses:
UICRadioAction

public class UICToggleAction
extends UICAction

An toggle action to add the concept of 'selected' to the ActionFactory used actions. You use this class to register an action with the ActionFactory so toggle buttons will appear in ActionFactory created menus and toolbars.

Default target signatures
(ARGUMENT_NEWSTATE, ARGMENT_SOURCE)
(ARGUMENT_NEWSTATE)
()
All Targets
ARGUMENT_NEWSTATE
uic.modelUICAction#ARGUMENT_SOURCE

Since:
1.2
See Also:
UICAction, ActionFactory

Nested Class Summary
 
Nested classes/interfaces inherited from class uic.model.UICAction
UICAction.StatusBarUpdater
 
Nested classes/interfaces inherited from class uic.model.UICSimpleAction
UICSimpleAction.Arguments, UICSimpleAction.DirectMultiThreadingPolicy, UICSimpleAction.DirectPolicy, UICSimpleAction.ExecutePolicy, UICSimpleAction.OnlyLastPolicy, UICSimpleAction.QueuedPolicy, UICSimpleAction.SimpleQueuedPolicy
 
Field Summary
static String ARGUMENT_NEWSTATE
          an Object: the source object that threw the event.
protected  boolean selected
           
 
Fields inherited from class uic.model.UICAction
ARGUMENT_SOURCE, updateUICommmand
 
Fields inherited from class uic.model.UICSimpleAction
currentPolicy, target, targetObject
 
Constructor Summary
UICToggleAction(String name)
           
UICToggleAction(String name, Object targetObject, String targetMethod, String title, ActionFactory actions)
           
UICToggleAction(String name, Object targetObject, String targetMethod, String title, String iconBaseName, ActionFactory actions)
           
UICToggleAction(String name, Object targetObject, String targetMethod, String title, String iconBaseName, String keyStroke, ActionFactory actions)
           
UICToggleAction(String name, Object targetObject, String targetMethod, String title, String iconBaseName, String keyStroke, String toolTipText, String whatIsThis, ActionFactory actions)
          Create new action.
 
Method Summary
 void actionPerformed(ActionEvent e)
           
 void addComponent(AbstractButton b)
          A button component that represents this action the the users user interface can be registered here.
 JMenuItem createMenuItem(IconFactory iconFactory)
           
 AbstractButton createToolBarButton(IconFactory iconFactory)
           
protected  Class getArgumentClass(String argumentType)
          For the uniquely defined argumentType (as also used in UICSimpleAction.getTargetSignatures()) return the Class.
protected  Object getArgumentValue(EventObject source, String argumentType)
          For the uniquely defined argumentType (as also used in UICSimpleAction.getTargetSignatures()) return the value.
protected  List getTargetSignatures()
          Return a List object with instances of the Arguments class.
 boolean isSelected()
           
 void setSelected(boolean on)
          Set this action to be un/selected selecting/checking all registered components.
 void setSelected(boolean on, boolean silent)
          Set this action to be un/selected selecting/checking all registered components.
 
Methods inherited from class uic.model.UICAction
addIcon, addKeyStroke, createPopupMenuItem, decorateButton, doAction, getComponentsIterator, getIconBaseName, getKeyStroke, getName, getTitle, getToolTipText, getWhatIsThis, setEnabled, setIconBaseName, setKeyStroke, setName, setStatusBar, setTexts, setTitle, setToolTipText, setUIUpdateCommand, setUIUpdateCommand, setWhatIsThis, toString
 
Methods inherited from class uic.model.UICSimpleAction
createArguments, equals, execute, execute, execute, execute, isEnabled, setDirect, setExecutionPolicy, setTarget, setTarget
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

ARGUMENT_NEWSTATE

public static final String ARGUMENT_NEWSTATE
an Object: the source object that threw the event.

See Also:
Constant Field Values

selected

protected boolean selected
Constructor Detail

UICToggleAction

public UICToggleAction(String name)

UICToggleAction

public UICToggleAction(String name,
                       Object targetObject,
                       String targetMethod,
                       String title,
                       ActionFactory actions)

UICToggleAction

public UICToggleAction(String name,
                       Object targetObject,
                       String targetMethod,
                       String title,
                       String iconBaseName,
                       ActionFactory actions)

UICToggleAction

public UICToggleAction(String name,
                       Object targetObject,
                       String targetMethod,
                       String title,
                       String iconBaseName,
                       String keyStroke,
                       ActionFactory actions)

UICToggleAction

public UICToggleAction(String name,
                       Object targetObject,
                       String targetMethod,
                       String title,
                       String iconBaseName,
                       String keyStroke,
                       String toolTipText,
                       String whatIsThis,
                       ActionFactory actions)
Create new action.

Parameters:
name - The identifying name of the action, must be unique.
targetObject - The object that contains the method we want to connect to.
targetMethod - the name of the method we want to connect to.
title - the name used on buttons or in a menu entry.
iconBaseName - the basename the new widgets can use to fetch the correct icon, or null if none
keyStroke - the keyStroke in the format accepted by javax.swing.KeyStroke.getKeyStroke(String)
toolTipText - the text for tooltips, or null for none
whatIsThis - the text for the statusBar.
actions - the actionFactory this action belongs to.
See Also:
KeyStroke.getKeyStroke(String)
Method Detail

actionPerformed

public void actionPerformed(ActionEvent e)
Specified by:
actionPerformed in interface ActionListener
Overrides:
actionPerformed in class UICAction

setSelected

public void setSelected(boolean on)
Set this action to be un/selected selecting/checking all registered components. Note that this method will not cause this action to fire.


setSelected

public void setSelected(boolean on,
                        boolean silent)
Set this action to be un/selected selecting/checking all registered components.

Parameters:
on - set all the registred butons selection value to this argument.
silent - make sure this action will not fire even if 'on' is different from the previous selected value.

isSelected

public boolean isSelected()

addComponent

public void addComponent(AbstractButton b)
Description copied from class: UICAction
A button component that represents this action the the users user interface can be registered here. Any button that is added to this action will trigger the action to respond on a button 'press' after adding it using the addComponent method. Additionaly en/disabling the action will make the component also en/disable.

Overrides:
addComponent in class UICAction
See Also:
UICAction.addComponent(javax.swing.AbstractButton)

getTargetSignatures

protected List getTargetSignatures()
Description copied from class: UICSimpleAction
Return a List object with instances of the Arguments class. Extending classes should implement this to return all the target method signatures that are searched for should the user create an action without an Arguments instance.

An example implementation could be this:

  List result = new ArrayList(1);
  result.add( new Arguments().addArgument("Source") );
  return result;
This will result in a call to UICSimpleAction.getArgumentClass(java.lang.String) with the string "Source" which returns a Class instance. In our example that would be java.lang.Object.

The result of this would be that a call to setTarget will try to find a method with an argument of type Object, and will search again if that is not found without any arguments.

Overrides:
getTargetSignatures in class UICAction
Returns:
a List object with instances of the Arguments class.
See Also:
UICSimpleAction.getArgumentValue(java.util.EventObject, java.lang.String), UICSimpleAction.getArgumentClass(java.lang.String)

getArgumentValue

protected Object getArgumentValue(EventObject source,
                                  String argumentType)
Description copied from class: UICSimpleAction
For the uniquely defined argumentType (as also used in UICSimpleAction.getTargetSignatures()) return the value. This method will always return 'null'; Extending actions can define various argumentType strings that can be used as an argument in the call to the target method of this action. The user decides on construction of the action which argumentTypes are to be used, if a certain value is requested to be sent to the targetMethod a call is made to this method to find its value based on the source event.

Note that base types can not be returned, since they are instances of object; you should wrap these in their object re-presentation (an Integer object for an int).

Overrides:
getArgumentValue in class UICAction
Parameters:
source - the event that caused the action to be fired. This is the event that the extending class passed to the execute method; so casting is fine.
argumentType - the uniquely defined name specifying the type of argument.
Returns:
the value to be passed to the taget method.

getArgumentClass

protected Class getArgumentClass(String argumentType)
Description copied from class: UICSimpleAction
For the uniquely defined argumentType (as also used in UICSimpleAction.getTargetSignatures()) return the Class. This method will always return 'null'; Extending actions can define various argumentType strings that can be used as an argument in the call to the target method of this action. The user decides on construction of the action which argumentTypes are to be used, if a certain value is requested to be sent to the targetMethod a call is made to this method to find the Class of the type.

Note that basetypes have a class of their own and you should return the correct one you expect the targetMethod to implement. returning Integer.class will search for an Integer; returing int.class will search for an int. This is important to note since the UICSimpleAction.getArgumentValue(java.util.EventObject, java.lang.String) method should return an Integer object in both cases.

Overrides:
getArgumentClass in class UICAction
Parameters:
argumentType - the uniquely defined name specifying the type of argument.
Returns:
the class of this argument to be found on the target method

createToolBarButton

public AbstractButton createToolBarButton(IconFactory iconFactory)
Overrides:
createToolBarButton in class UICAction

createMenuItem

public JMenuItem createMenuItem(IconFactory iconFactory)
Overrides:
createMenuItem in class UICAction


Copyright © 2002-2004 Thomas Zander Available under the Free Apache licence