-
@Target(METHOD) @Retention(RUNTIME) public @interface ActionProxy
An annotation to allow conversion of class methods toAction
instances.The following steps are required to use
ActionProxy
annotations:- Annotate your methods with the
ActionProxy
annotation. For example:@ActionProxy(text="Action 1.1", graphic=imagePath, accelerator="ctrl+shift+T") private void action11() { System.out.println("Action 1.1 is executed"); }
The ActionProxy annotation is designed to work with three types of methods:
- Methods with no parameters,
- Methods with one parameter of type
ActionEvent
. - Methods that take both an
ActionEvent
and anAction
.
The ActionProxy annotation
graphic()
property supports different node types:- Images,
- Glyph fonts.
The ability for ActionProxy to support glyph fonts is part of the ControlsFX
Glyph
API. For more information on how to specify images and glyph fonts, refer to thegraphic()
method. - Register your class in the global
ActionMap
, preferably in the class constructor:
Immediately after that actions will be created according to the provided annotations and are accessible fromActionMap.register(this);
ActionMap
, which provides several convenience methods to access actions by id. Refer to theActionMap
class for more details on how to use it.
ActionCheck
annotation is supported on the same method where @ActionProxy is applied} - Annotate your methods with the
-
-
Required Element Summary
Required Elements Modifier and Type Required Element Description String
text
The text that should be set inAction.textProperty()
.
-
Optional Element Summary
Optional Elements Modifier and Type Optional Element Description String
accelerator
Accepts string values such as "ctrl+shift+T" to represent the keyboard shortcut for this action.String
factory
The full class-name of a class that implementsAnnotatedActionFactory
.String
graphic
The graphic that should be set inAction.graphicProperty()
.String
id
By default the method name that this annotation is applied to, but if not null then this ID is what you use when requesting theAction
out of theActionMap
when using theActionMap.action(String)
method.String
longText
The text that should be set inAction.longTextProperty()
.
-
-
-
Element Detail
-
text
String text
The text that should be set inAction.textProperty()
.
-
-
-
id
String id
By default the method name that this annotation is applied to, but if not null then this ID is what you use when requesting theAction
out of theActionMap
when using theActionMap.action(String)
method.- Default:
- ""
-
-
-
graphic
String graphic
The graphic that should be set inAction.graphicProperty()
.The graphic can be either image (local path or url) or font glyph.
Because a graphic can come from multiple sources, a simple protocol prefix is used to designate the type. Currently supported prefixes are '
image>
' and 'font>
'. Default protocol is 'image>
'.The following are the examples of different graphic nodes:
@ActionProxy(text="Teacher", graphic="http://icons.iconarchive.com/icons/custom-icon-design/mini-3/16/teacher-male-icon.png") @ActionProxy(text="Security", graphic="/org/controlsfx/samples/security-low.png") @ActionProxy(text="Security", graphic="image>/org/controlsfx/samples/security-low.png") @ActionProxy(text="Star", graphic="font>FontAwesome|STAR")
- Default:
- ""
-
-
-
longText
String longText
The text that should be set inAction.longTextProperty()
.- Default:
- ""
-
-
-
accelerator
String accelerator
Accepts string values such as "ctrl+shift+T" to represent the keyboard shortcut for this action. By default this is empty if there is no keyboard shortcut desired for this action.- Default:
- ""
-
-
-
factory
String factory
The full class-name of a class that implementsAnnotatedActionFactory
.ActionMap
will use this class to instantiate theAnnotatedAction
associated with this method, rather than using its own action factory.- Default:
- ""
-
-