Class MenuItemBase<C extends ContextMenuBase<C,I,S>,I extends MenuItemBase<C,I,S>,S extends SubMenuBase<C,I,S>>

java.lang.Object
com.vaadin.flow.component.Component
com.vaadin.flow.component.contextmenu.MenuItemBase<C,I,S>
Type Parameters:
C - the context menu type
I - the menu item type
S - the sub menu type
All Implemented Interfaces:
com.vaadin.flow.component.AttachNotifier, com.vaadin.flow.component.DetachNotifier, com.vaadin.flow.component.HasAriaLabel, com.vaadin.flow.component.HasComponents, com.vaadin.flow.component.HasElement, com.vaadin.flow.component.HasEnabled, com.vaadin.flow.component.HasStyle, com.vaadin.flow.component.HasText, Serializable
Direct Known Subclasses:
MenuItem

@Tag("vaadin-context-menu-item") public abstract class MenuItemBase<C extends ContextMenuBase<C,I,S>,I extends MenuItemBase<C,I,S>,S extends SubMenuBase<C,I,S>> extends com.vaadin.flow.component.Component implements com.vaadin.flow.component.HasAriaLabel, com.vaadin.flow.component.HasComponents, com.vaadin.flow.component.HasEnabled, com.vaadin.flow.component.HasText
Base class for item component used inside ContextMenus.
Author:
Vaadin Ltd.
See Also:
  • Nested Class Summary

    Nested classes/interfaces inherited from interface com.vaadin.flow.component.HasText

    com.vaadin.flow.component.HasText.WhiteSpace
  • Constructor Summary

    Constructors
    Constructor
    Description
    MenuItemBase(C contextMenu)
    Default constructor
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    addThemeNames(String... themeNames)
    Adds one or more theme names to this item.
    protected abstract S
     
    protected void
    executeJsWhenAttached(String expression, Serializable... parameters)
     
    Gets the context menu component that this item belongs to.
    Gets the sub menu API for this menu item.
    boolean
    hasThemeName(String themeName)
    Checks if the item has the given theme name.
    boolean
    Gets whether this item toggles a checkmark icon when clicked.
    boolean
    Gets the checked state of this item.
    boolean
    Gets whether the item is set to be disabled when clicked.
    boolean
    Gets whether clicking this item keeps the menu open.
    boolean
    Gets whether this item has a sub menu attached to it or not.
    void
    removeThemeNames(String... themeNames)
    Removes one or more theme names from this item.
    void
    setCheckable(boolean checkable)
    Sets the checkable state of this menu item.
    void
    setChecked(boolean checked)
    Sets the checked state of this item.
    void
    setDisableOnClick(boolean disableOnClick)
    Sets whether the item should be disabled when clicked.
    void
    setEnabled(boolean enabled)
     
    void
    setKeepOpen(boolean keepOpen)
    Sets the keep open state of this menu item.

    Methods inherited from class com.vaadin.flow.component.Component

    addListener, findAncestor, fireEvent, from, get, getChildren, getElement, getEventBus, getId, getListeners, getLocale, getParent, getTranslation, getTranslation, getTranslation, getTranslation, getTranslation, getTranslation, getUI, hasListener, isAttached, isTemplateMapped, isVisible, onAttach, onDetach, onEnabledStateChanged, removeFromParent, scrollIntoView, scrollIntoView, set, setElement, setId, setVisible

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface com.vaadin.flow.component.AttachNotifier

    addAttachListener

    Methods inherited from interface com.vaadin.flow.component.DetachNotifier

    addDetachListener

    Methods inherited from interface com.vaadin.flow.component.HasAriaLabel

    getAriaLabel, getAriaLabelledBy, setAriaLabel, setAriaLabelledBy

    Methods inherited from interface com.vaadin.flow.component.HasComponents

    add, add, add, addComponentAsFirst, addComponentAtIndex, remove, remove, removeAll

    Methods inherited from interface com.vaadin.flow.component.HasElement

    getElement

    Methods inherited from interface com.vaadin.flow.component.HasEnabled

    isEnabled

    Methods inherited from interface com.vaadin.flow.component.HasStyle

    addClassName, addClassNames, getClassName, getClassNames, getStyle, hasClassName, removeClassName, removeClassNames, setClassName, setClassName

    Methods inherited from interface com.vaadin.flow.component.HasText

    getText, getWhiteSpace, setText, setWhiteSpace
  • Constructor Details

    • MenuItemBase

      public MenuItemBase(C contextMenu)
      Default constructor
      Parameters:
      contextMenu - the context menu to which this item belongs to
  • Method Details

    • getContextMenu

      public C getContextMenu()
      Gets the context menu component that this item belongs to.
      Returns:
      the context-menu component
    • getSubMenu

      public S getSubMenu()
      Gets the sub menu API for this menu item. Adding content to the returned sub menu makes this component a parent item which opens the sub menu overlay. When the sub menu has no content, it won't be rendered.
      Returns:
      the sub menu that can be opened via this item
    • isParentItem

      public boolean isParentItem()
      Gets whether this item has a sub menu attached to it or not.
      Returns:
      true if this component has a sub menu with content inside it, false otherwise
      See Also:
    • setCheckable

      public void setCheckable(boolean checkable)
      Sets the checkable state of this menu item. A checkable item toggles a checkmark icon when clicked. Changes in the checked state can be handled in the item's click handler with isChecked().

      Setting a checked item un-checkable also makes it un-checked.

      Parameters:
      checkable - true to enable toggling the checked-state of this menu item by clicking, false to disable it.
      Throws:
      IllegalStateException - if setting a parent item checkable
    • isCheckable

      public boolean isCheckable()
      Gets whether this item toggles a checkmark icon when clicked.
      Returns:
      the checkable state of the item
      See Also:
    • setChecked

      public void setChecked(boolean checked)
      Sets the checked state of this item. A checked item displays a checkmark icon next to it. The checked state is also toggled by clicking the item.

      Note that the item needs to be explicitly set as checkable via setCheckable(boolean) in order to check it.

      Parameters:
      checked - true to check this item, false to un-check it
      Throws:
      IllegalStateException - if trying to check the item when it's checkable
    • isChecked

      public boolean isChecked()
      Gets the checked state of this item. The item can be checked and un-checked with setChecked(boolean) or by clicking it when it is checkable. A checked item displays a checkmark icon inside it.
      Returns:
      true if the item is checked, false otherwise
      See Also:
    • setKeepOpen

      public void setKeepOpen(boolean keepOpen)
      Sets the keep open state of this menu item. An item that marked as keep open prevents menu from closing when clicked.
      Parameters:
      keepOpen - true to enable keeping the menu open when toggle this item selection, false to disable it.
    • isKeepOpen

      public boolean isKeepOpen()
      Gets whether clicking this item keeps the menu open.
      Returns:
      the keep open state of the item
      See Also:
    • setDisableOnClick

      public void setDisableOnClick(boolean disableOnClick)
      Sets whether the item should be disabled when clicked.

      When set to true, the item will be immediately disabled on the client-side when clicked, preventing further clicks until re-enabled from the server-side.

      Parameters:
      disableOnClick - whether the item should be disabled when clicked
    • isDisableOnClick

      public boolean isDisableOnClick()
      Gets whether the item is set to be disabled when clicked.
      Returns:
      whether the item is set to be disabled on click
    • setEnabled

      public void setEnabled(boolean enabled)
      Specified by:
      setEnabled in interface com.vaadin.flow.component.HasEnabled
    • addThemeNames

      public void addThemeNames(String... themeNames)
      Adds one or more theme names to this item. Multiple theme names can be specified by using multiple parameters.
      Parameters:
      themeNames - the theme name or theme names to be added to the item
    • removeThemeNames

      public void removeThemeNames(String... themeNames)
      Removes one or more theme names from this item. Multiple theme names can be specified by using multiple parameters.
      Parameters:
      themeNames - the theme name or theme names to be removed from the item
    • hasThemeName

      public boolean hasThemeName(String themeName)
      Checks if the item has the given theme name.
      Parameters:
      themeName - the theme name to check for
      Returns:
      true if the item has the given theme name, false otherwise
    • createSubMenu

      protected abstract S createSubMenu()
    • executeJsWhenAttached

      protected void executeJsWhenAttached(String expression, Serializable... parameters)