Class MenuBar

  • All Implemented Interfaces:
    com.vaadin.flow.component.AttachNotifier, HasMenuItems, com.vaadin.flow.component.DetachNotifier, com.vaadin.flow.component.HasElement, com.vaadin.flow.component.HasEnabled, com.vaadin.flow.component.HasSize, com.vaadin.flow.component.HasStyle, com.vaadin.flow.component.HasTheme, Serializable

    @Tag("vaadin-menu-bar")
    @NpmPackage(value="@vaadin/polymer-legacy-adapter",version="23.6.2") @NpmPackage(value="@vaadin/menu-bar",version="23.6.2") @NpmPackage(value="@vaadin/vaadin-menu-bar",version="23.6.2") @NpmPackage(value="@vaadin/tooltip",version="23.6.2")
    @JsModule("@vaadin/polymer-legacy-adapter/style-modules.js") @JsModule("./menubarConnector.js") @JsModule("@vaadin/menu-bar/src/vaadin-menu-bar.js") @JsModule("@vaadin/tooltip/src/vaadin-tooltip.js")
    public class MenuBar
    extends com.vaadin.flow.component.Component
    implements HasMenuItems, com.vaadin.flow.component.HasSize, com.vaadin.flow.component.HasStyle, com.vaadin.flow.component.HasTheme, com.vaadin.flow.component.HasEnabled
    Menu Bar is a horizontal button bar with hierarchical drop-down menus. Menu items can either trigger an action, open a menu, or work as a toggle.
    Author:
    Vaadin Ltd
    See Also:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  MenuBar.MenuBarI18n
      The internationalization properties for MenuBar
    • Constructor Summary

      Constructors 
      Constructor Description
      MenuBar()
      Creates an empty menu bar component.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      MenuItem addItem​(com.vaadin.flow.component.Component component)
      Creates a new MenuItem component and adds it to the root level of this menu bar.
      MenuItem addItem​(com.vaadin.flow.component.Component component, com.vaadin.flow.component.ComponentEventListener<com.vaadin.flow.component.ClickEvent<MenuItem>> clickListener)
      Creates a new MenuItem component with the provided click listener and adds it to the root level of this menu bar.
      MenuItem addItem​(com.vaadin.flow.component.Component component, String tooltipText)
      Creates a new MenuItem component with the provided tooltip text and adds it to the root level of this menu bar.
      MenuItem addItem​(com.vaadin.flow.component.Component component, String tooltipText, com.vaadin.flow.component.ComponentEventListener<com.vaadin.flow.component.ClickEvent<MenuItem>> clickListener)
      Creates a new MenuItem component with the provided click listener and the tooltip text and adds it to the root level of this menu bar.
      MenuItem addItem​(String text)
      Creates a new MenuItem component with the provided text content and adds it to the root level of this menu bar.
      MenuItem addItem​(String text, com.vaadin.flow.component.ComponentEventListener<com.vaadin.flow.component.ClickEvent<MenuItem>> clickListener)
      Creates a new MenuItem component with the provided text content and click listener and adds it to the root level of this menu bar.
      MenuItem addItem​(String text, String tooltipText)
      Creates a new MenuItem component with the provided text content and the tooltip text and adds it to the root level of this menu bar.
      MenuItem addItem​(String text, String tooltipText, com.vaadin.flow.component.ComponentEventListener<com.vaadin.flow.component.ClickEvent<MenuItem>> clickListener)
      Creates a new MenuItem component with the provided text content and the tooltip text and click listener and adds it to the root level of this menu bar.
      void addThemeVariants​(MenuBarVariant... variants)
      Adds theme variants to the component.
      Stream<com.vaadin.flow.component.Component> getChildren()
      Gets the child components of this menu bar.
      MenuBar.MenuBarI18n getI18n()
      Gets the internationalization object previously set for this component.
      List<MenuItem> getItems()
      Gets the MenuItem components added to the root level of the menu bar.
      boolean isOpenOnHover()
      Gets whether the sub menus open by clicking or hovering on the root level buttons.
      boolean isReverseCollapseOrder()
      Gets whether the menu bar uses reverse collapse order.
      protected void onAttach​(com.vaadin.flow.component.AttachEvent attachEvent)  
      void remove​(MenuItem... items)
      Removes the given item components from this menu bar.
      void removeAll()
      Removes all item components from this menu bar.
      void removeThemeVariants​(MenuBarVariant... variants)
      Removes theme variants from the component.
      void setI18n​(MenuBar.MenuBarI18n i18n)
      Sets the internationalization properties for this component.
      void setOpenOnHover​(boolean openOnHover)
      Sets the event which opens the sub menus of the root level buttons.
      void setReverseCollapseOrder​(boolean reverseCollapseOrder)
      Sets reverse collapse order for the menu bar.
      void setTooltipText​(MenuItem item, String tooltipText)
      Sets the tooltip text for the given MenuItem.
      • Methods inherited from class com.vaadin.flow.component.Component

        addListener, findAncestor, fireEvent, from, get, getElement, getEventBus, getId, getListeners, getLocale, getParent, getTranslation, getTranslation, getTranslation, getTranslation, getTranslation, getTranslation, getUI, hasListener, isAttached, isTemplateMapped, isVisible, onDetach, onEnabledStateChanged, scrollIntoView, set, setElement, setId, setVisible
      • 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.HasElement

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

        isEnabled, setEnabled
      • Methods inherited from interface com.vaadin.flow.component.HasSize

        getHeight, getHeightUnit, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getWidth, getWidthUnit, setHeight, setHeight, setHeightFull, setMaxHeight, setMaxHeight, setMaxWidth, setMaxWidth, setMinHeight, setMinHeight, setMinWidth, setMinWidth, setSizeFull, setSizeUndefined, setWidth, setWidth, setWidthFull
      • 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.HasTheme

        addThemeName, addThemeNames, getThemeName, getThemeNames, hasThemeName, removeThemeName, removeThemeNames, setThemeName, setThemeName
    • Constructor Detail

      • MenuBar

        public MenuBar()
        Creates an empty menu bar component.

        Use addItem(String) to add content to the menu bar.

    • Method Detail

      • addItem

        public MenuItem addItem​(String text)
        Creates a new MenuItem component with the provided text content and adds it to the root level of this menu bar.

        The added MenuItem component is placed inside a button in the menu bar. If this button overflows the menu bar horizontally, the MenuItem is moved out of the button, into a context menu openable via an overflow button at the end of the button row.

        To add content to the sub menu opened by clicking the root level item, use MenuItemBase.getSubMenu().

        Parameters:
        text - the text content for the new item
        Returns:
        the added MenuItem component
      • addItem

        public MenuItem addItem​(com.vaadin.flow.component.Component component)
        Creates a new MenuItem component and adds it to the root level of this menu bar. The provided component is added into the created MenuItem.

        The added MenuItem component is placed inside a button in the menu bar. If this button overflows the menu bar horizontally, the MenuItem is moved out of the button, into a context menu openable via an overflow button at the end of the button row.

        To add content to the sub menu opened by clicking the root level item, use MenuItemBase.getSubMenu().

        Parameters:
        component - the component to add inside new item
        Returns:
        the added MenuItem component
      • addItem

        public MenuItem addItem​(String text,
                                com.vaadin.flow.component.ComponentEventListener<com.vaadin.flow.component.ClickEvent<MenuItem>> clickListener)
        Creates a new MenuItem component with the provided text content and click listener and adds it to the root level of this menu bar.

        The added MenuItem component is placed inside a button in the menu bar. If this button overflows the menu bar horizontally, the MenuItem is moved out of the button, into a context menu openable via an overflow button at the end of the button row.

        To add content to the sub menu opened by clicking the root level item, use MenuItemBase.getSubMenu().

        Specified by:
        addItem in interface HasMenuItems
        Parameters:
        text - the text content for the new item
        clickListener - the handler for clicking the new item, can be null to not add listener
        Returns:
        the added MenuItem component
      • addItem

        public MenuItem addItem​(com.vaadin.flow.component.Component component,
                                com.vaadin.flow.component.ComponentEventListener<com.vaadin.flow.component.ClickEvent<MenuItem>> clickListener)
        Creates a new MenuItem component with the provided click listener and adds it to the root level of this menu bar. The provided component is added into the created MenuItem.

        The added MenuItem component is placed inside a button in the menu bar. If this button overflows the menu bar horizontally, the MenuItem is moved out of the button, into a context menu openable via an overflow button at the end of the button row.

        To add content to the sub menu opened by clicking the root level item, use MenuItemBase.getSubMenu().

        Specified by:
        addItem in interface HasMenuItems
        Parameters:
        component - the component to add inside the added menu item
        clickListener - the handler for clicking the new item, can be null to not add listener
        Returns:
        the added MenuItem component
      • addItem

        public MenuItem addItem​(String text,
                                String tooltipText)
        Creates a new MenuItem component with the provided text content and the tooltip text and adds it to the root level of this menu bar.

        The added MenuItem component is placed inside a button in the menu bar. If this button overflows the menu bar horizontally, the MenuItem is moved out of the button, into a context menu openable via an overflow button at the end of the button row.

        To add content to the sub menu opened by clicking the root level item, use MenuItemBase.getSubMenu().

        Parameters:
        text - the text content for the new item
        tooltipText - the tooltip text for the new item
        Returns:
        the added MenuItem component
      • addItem

        public MenuItem addItem​(com.vaadin.flow.component.Component component,
                                String tooltipText)
        Creates a new MenuItem component with the provided tooltip text and adds it to the root level of this menu bar. The provided component is added into the created MenuItem.

        The added MenuItem component is placed inside a button in the menu bar. If this button overflows the menu bar horizontally, the MenuItem is moved out of the button, into a context menu openable via an overflow button at the end of the button row.

        To add content to the sub menu opened by clicking the root level item, use MenuItemBase.getSubMenu().

        Parameters:
        component - the component to add inside new item
        tooltipText - the tooltip text for the new item
        Returns:
        the added MenuItem component
      • addItem

        public MenuItem addItem​(String text,
                                String tooltipText,
                                com.vaadin.flow.component.ComponentEventListener<com.vaadin.flow.component.ClickEvent<MenuItem>> clickListener)
        Creates a new MenuItem component with the provided text content and the tooltip text and click listener and adds it to the root level of this menu bar.

        The added MenuItem component is placed inside a button in the menu bar. If this button overflows the menu bar horizontally, the MenuItem is moved out of the button, into a context menu openable via an overflow button at the end of the button row.

        To add content to the sub menu opened by clicking the root level item, use MenuItemBase.getSubMenu().

        Parameters:
        text - the text content for the new item
        tooltipText - the tooltip text for the new item
        clickListener - the handler for clicking the new item, can be null to not add listener
        Returns:
        the added MenuItem component
      • addItem

        public MenuItem addItem​(com.vaadin.flow.component.Component component,
                                String tooltipText,
                                com.vaadin.flow.component.ComponentEventListener<com.vaadin.flow.component.ClickEvent<MenuItem>> clickListener)
        Creates a new MenuItem component with the provided click listener and the tooltip text and adds it to the root level of this menu bar. The provided component is added into the created MenuItem.

        The added MenuItem component is placed inside a button in the menu bar. If this button overflows the menu bar horizontally, the MenuItem is moved out of the button, into a context menu openable via an overflow button at the end of the button row.

        To add content to the sub menu opened by clicking the root level item, use MenuItemBase.getSubMenu().

        Parameters:
        component - the component to add inside the added menu item
        tooltipText - the tooltip text for the new item
        clickListener - the handler for clicking the new item, can be null to not add listener
        Returns:
        the added MenuItem component
      • remove

        public void remove​(MenuItem... items)
        Removes the given item components from this menu bar.
        Parameters:
        items - the item components to remove, not null
        Throws:
        IllegalArgumentException - if any of the item components to remove is not a child of this menu bar
      • removeAll

        public void removeAll()
        Removes all item components from this menu bar.
      • getChildren

        public Stream<com.vaadin.flow.component.Component> getChildren()
        Gets the child components of this menu bar.

        The returned components are the same as the ones returned by getItems().

        Overrides:
        getChildren in class com.vaadin.flow.component.Component
        Returns:
        the child components of this menu bar
      • setOpenOnHover

        public void setOpenOnHover​(boolean openOnHover)
        Sets the event which opens the sub menus of the root level buttons.
        Parameters:
        openOnHover - true to make the sub menus open on hover (mouseover), false to make them openable by clicking
      • isOpenOnHover

        public boolean isOpenOnHover()
        Gets whether the sub menus open by clicking or hovering on the root level buttons.
        Returns:
        true if the sub menus open by hovering on the root level buttons, false if they open by clicking
      • addThemeVariants

        public void addThemeVariants​(MenuBarVariant... variants)
        Adds theme variants to the component.
        Parameters:
        variants - theme variants to add
      • removeThemeVariants

        public void removeThemeVariants​(MenuBarVariant... variants)
        Removes theme variants from the component.
        Parameters:
        variants - theme variants to remove
      • setReverseCollapseOrder

        public void setReverseCollapseOrder​(boolean reverseCollapseOrder)
        Sets reverse collapse order for the menu bar.
        Parameters:
        reverseCollapseOrder - If true, the buttons will be collapsed into the overflow menu starting from the "start" end of the bar instead of the "end".
      • isReverseCollapseOrder

        public boolean isReverseCollapseOrder()
        Gets whether the menu bar uses reverse collapse order.
        Returns:
        true if the buttons will be collapsed into the overflow menu starting from the "start" end of the bar instead of the "end".
      • getI18n

        public MenuBar.MenuBarI18n getI18n()
        Gets the internationalization object previously set for this component.

        Note: updating the object content that is gotten from this method will not update the lang on the component if not set back using setI18n(MenuBarI18n)

        Returns:
        the i18n object. It will be null, If the i18n properties weren't set.
      • setI18n

        public void setI18n​(MenuBar.MenuBarI18n i18n)
        Sets the internationalization properties for this component.
        Parameters:
        i18n - the internationalized properties, not null
      • onAttach

        protected void onAttach​(com.vaadin.flow.component.AttachEvent attachEvent)
        Overrides:
        onAttach in class com.vaadin.flow.component.Component
      • setTooltipText

        public void setTooltipText​(MenuItem item,
                                   String tooltipText)
        Sets the tooltip text for the given MenuItem.
        Parameters:
        item - the menu item to set the tooltip for
        tooltipText - the tooltip text to set for the item