com.vaadin.flow.component.contextmenu.

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.