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

java.lang.Object
com.vaadin.flow.component.contextmenu.MenuManager<C,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:
  • Constructor Details

    • 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 Details

    • 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
    • add

      public void add(Component... components)
      Adds components to the (sub)menu.

      The components are added into the content as is, they are not wrapped as menu items.

      Parameters:
      components - components to add
      See Also:
    • remove

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

      public void removeAll()
      Remove all components and items from (sub)menu.
      See Also:
    • 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:
    • getChildren

      public Stream<Component> getChildren()
      Gets all (sub)menu children.

      Children consist of components and items.

      Returns:
      the children components
      See Also:
    • 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: