Class ActionGroup

  • All Implemented Interfaces:
    EventListener, EventHandler<ActionEvent>

    public class ActionGroup
    extends Action
    An ActionGroup (unsurprisingly) groups together zero or more Action instances, allowing for more complex controls like ToolBar, MenuBar and ContextMenu to be automatically generated from the collection of actions inside the ActionGroup. For your convenience, there are a number of utility methods that do precisely this in the ActionUtils class.

    Code Examples

    Consider the following code example (note that DummyAction is a fake class that extends from (and implements) Action):

     
     // Firstly, create a list of Actions
     Collection<? extends Action> actions = Arrays.asList(
         new ActionGroup("Group 1",  new DummyAction("Action 1.1"), 
                                     new DummyAction("Action 2.1") ),
         new ActionGroup("Group 2",  new DummyAction("Action 2.1"), 
                                     new ActionGroup("Action 2.2", new DummyAction("Action 2.2.1"), 
                                                                   new DummyAction("Action 2.2.2")),
                                     new DummyAction("Action 2.3") ),
         new ActionGroup("Group 3",  new DummyAction("Action 3.1"), 
                                     new DummyAction("Action 3.2") )
       );
       
       // Use the ActionUtils class to create UI controls from these actions, e.g:
       MenuBar menuBar = ActionUtils.createMenuBar(actions);
       
       ToolBar toolBar = ActionUtils.createToolBar(actions);
       
       Label context = new Label("Right-click to see the context menu");
       context.setContextMenu(ActionUtils.createContextMenu(actions));  
     

    The end result of running the code above is shown in the screenshots below (hopefully it goes without saying that within the 'Group 1', 'Group 2' and 'Group 3' options are the 'Action 1.1', etc actions that have been specified in the code above):

    MenuBar: Screenshot of ActionGroup in a MenuBar
    ToolBar: Screenshot of ActionGroup in a ToolBar
    ContextMenu: Screenshot of ActionGroup in a ContextMenu
    See Also:
    Action, ActionUtils
    • Constructor Detail

      • ActionGroup

        public ActionGroup​(String text,
                           Action... actions)
        Creates an ActionGroup with the given text as the name of the Action, and zero or more Actions as members of this ActionGroup. Note that it is legitimate to pass in zero Actions to this constructor, and to later set the actions directly into the actions list.
        Parameters:
        text - The text of this Action.
        actions - Zero or more actions to insert into this ActionGroup.
      • ActionGroup

        public ActionGroup​(String text,
                           Collection<Action> actions)
        Creates an ActionGroup with the given text as the name of the Action, and collection of Actions as members of this ActionGroup.
        Parameters:
        text - The text of this Action.
        actions - Collection of actions to insert into this ActionGroup.
      • ActionGroup

        public ActionGroup​(String text,
                           Node icon,
                           Action... actions)
        Creates an ActionGroup with the given text as the name of the Action, and zero or more Actions as members of this ActionGroup. Note that it is legitimate to pass in zero Actions to this constructor, and to later set the actions directly into the actions list.
        Parameters:
        text - The text of this Action.
        icon - The image of this Action.
        actions - Zero or more actions to insert into this ActionGroup.
      • ActionGroup

        public ActionGroup​(String text,
                           Node icon,
                           Collection<Action> actions)
        Creates an ActionGroup with the given text as the name of the Action, and collection of Actions as members of this ActionGroup. .
        Parameters:
        text - The text of this Action.
        icon - The image of this Action.
        actions - Collection of actions to insert into this ActionGroup.
    • Method Detail

      • getActions

        public final ObservableList<Action> getActions()
        The list of Action instances that exist within this ActionGroup. This list may be modified, as shown in the class documentation.