uic.action
Class ComponentKeyboardAction

java.lang.Object
  extended by uic.model.UICSimpleAction
      extended by uic.action.SwingAction
          extended by uic.action.ComponentKeyboardAction
All Implemented Interfaces:
KeyListener, EventListener

public class ComponentKeyboardAction
extends SwingAction
implements KeyListener

An event to respond to <escape> released in JTextComponents. Notice that the default version uses the SimpleQueuedPolicy. Using this class is easy; just call:

 new ComponentKeyboardAction(this, "firedSlot",
    ComponentKeyboardAction.TYPE_KEY_TYPED).add(childComponent); 
This has the result that when the <any>-key is released in the childComponent, the 'firedSlot' method on object 'this' will be called.
Default target signatures
(ARGUMENT_CHAR)
(ARGUMENT_KEYCODE, ARGUMENT_MODIFIERS, ARGUMENT_TYPE, ARGUMENT_KEYEVENT)
(ARGUMENT_KEYCODE, ARGUMENT_MODIFIERS, ARGUMENT_TYPE)
(ARGUMENT_KEYCODE, ARGUMENT_MODIFIERS)
(ARGUMENT_KEYCODE, ARGUMENT_TYPE)
(ARGUMENT_KEYCODE)
(ARGUMENT_SOURCE)
()
All Targets
ARGUMENT_KEYCODE
ARGUMENT_MODIFIERS
ARGUMENT_SOURCE

Since:
2.0

Nested Class Summary
 
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_CHAR
          a char: the resulting character.
static String ARGUMENT_KEYCODE
          an int: the keycode (see KeyEvent.VK_*).
static String ARGUMENT_KEYEVENT
          an KeyEvent: the actual event from the inputstream.
static String ARGUMENT_MODIFIERS
          an int: the modifiers used
static String ARGUMENT_NATIVE_EVENT
          an KeyEvent object: the event that caused this action to trigger.
static String ARGUMENT_SOURCE
          an Object: the source object that threw the event.
static String ARGUMENT_TYPE
          a short: the type of event; TYPE_* in this class.
static short TYPE_KEY_PRESSED
           
static short TYPE_KEY_RELEASED
           
static short TYPE_KEY_TYPED
           
 
Fields inherited from class uic.action.SwingAction
updateUICommmand
 
Fields inherited from class uic.model.UICSimpleAction
currentPolicy, target, targetObject
 
Constructor Summary
ComponentKeyboardAction(Object targetObject, String targetMethod, int types)
          Create a new ComponentKeyboardAction.
ComponentKeyboardAction(Object targetObject, String targetMethod, UICSimpleAction.Arguments arguments, int types)
          Create a new ComponentKeyboardAction.
 
Method Summary
 ComponentKeyboardAction add(Component source)
          Add an Component object to this action.
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.
 void keyPressed(KeyEvent evt)
           
 void keyReleased(KeyEvent evt)
           
 void keyTyped(KeyEvent evt)
           
 
Methods inherited from class uic.action.SwingAction
doAction, getComponentsIterator, registerComponent, setEnabled, setUIUpdateCommand, setUIUpdateCommand
 
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, toString, wait, wait, wait
 

Field Detail

TYPE_KEY_TYPED

public static final short TYPE_KEY_TYPED
See Also:
Constant Field Values

TYPE_KEY_PRESSED

public static final short TYPE_KEY_PRESSED
See Also:
Constant Field Values

TYPE_KEY_RELEASED

public static final short TYPE_KEY_RELEASED
See Also:
Constant Field Values

ARGUMENT_SOURCE

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

See Also:
Constant Field Values

ARGUMENT_KEYEVENT

public static final String ARGUMENT_KEYEVENT
an KeyEvent: the actual event from the inputstream. receiving this event allows you to do a 'consume' of an action key.

See Also:
Constant Field Values

ARGUMENT_CHAR

public static final String ARGUMENT_CHAR
a char: the resulting character.

See Also:
Constant Field Values

ARGUMENT_TYPE

public static final String ARGUMENT_TYPE
a short: the type of event; TYPE_* in this class.

See Also:
Constant Field Values

ARGUMENT_KEYCODE

public static final String ARGUMENT_KEYCODE
an int: the keycode (see KeyEvent.VK_*).

See Also:
Constant Field Values

ARGUMENT_MODIFIERS

public static final String ARGUMENT_MODIFIERS
an int: the modifiers used

See Also:
Constant Field Values

ARGUMENT_NATIVE_EVENT

public static final String ARGUMENT_NATIVE_EVENT
an KeyEvent object: the event that caused this action to trigger. As an exception to the normal way actions work; this action allows you to get the event as an argument to your calling method. The reason this is done is because you might want to consume the event in some cases.

Note that you can only consume events in direct mode!

See Also:
Constant Field Values
Constructor Detail

ComponentKeyboardAction

public ComponentKeyboardAction(Object targetObject,
                               String targetMethod,
                               int types)
Create a new ComponentKeyboardAction.

Parameters:
targetObject - on which object should the target method be invoked
targetMethod - wich method on the targetObject should be invoked
types - one or more of the TYPE fields OR-ed together to specify which events will be used.

ComponentKeyboardAction

public ComponentKeyboardAction(Object targetObject,
                               String targetMethod,
                               UICSimpleAction.Arguments arguments,
                               int types)
Create a new ComponentKeyboardAction.

Parameters:
targetObject - on which object should the target method be invoked
targetMethod - wich method on the targetObject should be invoked
arguments - to be used in finding the targetMethod signature
types - one or more of the TYPE fields OR-ed together to specify which events will be used.
See Also:
UICSimpleAction.setTarget(Object,String,uic.model.UICSimpleAction.Arguments)
Method Detail

add

public ComponentKeyboardAction add(Component source)
Add an Component object to this action.

Parameters:
source - the component that sends key events.

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 UICSimpleAction
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 UICSimpleAction
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 UICSimpleAction
Parameters:
argumentType - the uniquely defined name specifying the type of argument.
Returns:
the class of this argument to be found on the target method

keyTyped

public void keyTyped(KeyEvent evt)
Specified by:
keyTyped in interface KeyListener

keyPressed

public void keyPressed(KeyEvent evt)
Specified by:
keyPressed in interface KeyListener

keyReleased

public void keyReleased(KeyEvent evt)
Specified by:
keyReleased in interface KeyListener


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