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

      @Deprecated(since="24.8") public void add(Component... components)
      Deprecated.
      Since 24.8, use addComponent(Component...) instead
      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:
    • addComponent

      public void addComponent(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:
    • addSeparator

      public void addSeparator()
      Adds a separator between items.