Class MenuManager<C extends Component,​I extends MenuItemBase<?,​I,​S>,​S extends SubMenuBase<?,​I,​S>>

  • Type Parameters:
    C - the context menu type
    I - the menu item type
    S - the sub menu type
    All Implemented Interfaces:
    Serializable

    public class MenuManager<C extends Component,​I extends MenuItemBase<?,​I,​S>,​S extends SubMenuBase<?,​I,​S>>
    extends Object
    implements Serializable
    Common management logic for context menus and sub menus. Maintains the list of components to stamp into one overlay.
    Author:
    Vaadin Ltd.
    See Also:
    Serialized Form
    • Constructor Detail

      • MenuManager

        public MenuManager​(C menu,
                           SerializableRunnable contentReset,
                           SerializableBiFunction<C,​SerializableRunnable,​I> itemGenerator,
                           Class<I> itemType,
                           I parentMenuItem)
        Creates a new manager instance.
        Parameters:
        menu - the context menu
        contentReset - callback to reset the context menu
        itemGenerator - the item generator/factory
        itemType - the item type
        parentMenuItem - the parent menu item of the submenu
    • Method Detail

      • addItem

        public I addItem​(String text)
        Adds a text as a menu item.
        Parameters:
        text - the text for the menu item
        Returns:
        a new menu item
      • addItem

        public I addItem​(Component component)
        Adds a component as a menu item.
        Parameters:
        component - the component for the menu item
        Returns:
        a new menu item
      • addItem

        public I addItem​(String text,
                         ComponentEventListener<ClickEvent<I>> clickListener)
        Adds a text as a menu item with a click listener.
        Parameters:
        text - the text for the menu item
        clickListener - a click listener
        Returns:
        a new menu item
      • addItem

        public I addItem​(Component component,
                         ComponentEventListener<ClickEvent<I>> clickListener)
        Adds a component as a menu item with a click listener.
        Parameters:
        component - the component for the menu item
        clickListener - a click listener
        Returns:
        a new menu item
      • remove

        public void remove​(Component... components)
        Removes components to the (sub)menu.
        Parameters:
        components - components to remove
        See Also:
        add(Component...)
      • removeAll

        public void removeAll()
        Remove all components and items from (sub)menu.
        See Also:
        remove(Component...)
      • addComponentAtIndex

        public void addComponentAtIndex​(int index,
                                        Component component)
        Inserts component to the (sub)menu using the index.

        The component is inserted into the content as is, it is not wrapped as a menu item.

        Parameters:
        index - index to insert, not negative
        component - component to insert
        See Also:
        add(Component...), remove(Component...)
      • getItems

        public List<I> getItems()
        Gets all children items.

        The items are filtered using the provided item type in the constructor.

        Returns:
        all children items
        See Also:
        getChildren()