Action
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}
- See Also:
-
Required Element Summary
Required ElementsModifier and TypeRequired ElementDescriptionThe text that should be set inAction.textProperty()
. -
Optional Element Summary
Optional ElementsModifier and TypeOptional ElementDescriptionAccepts string values such as "ctrl+shift+T" to represent the keyboard shortcut for this action.The full class-name of a class that implementsAnnotatedActionFactory
.The graphic that should be set inAction.graphicProperty()
.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.The text that should be set inAction.longTextProperty()
.
-
Element Details
-
id
String idBy 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:
""
-
text
String textThe text that should be set inAction.textProperty()
. -
graphic
String graphicThe 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 longTextThe text that should be set inAction.longTextProperty()
.- Default:
""
-
accelerator
String acceleratorAccepts 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 factoryThe 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:
""
-