Class MenuItem
- All Implemented Interfaces:
com.vaadin.flow.component.AttachNotifier,com.vaadin.flow.component.ClickNotifier<MenuItem>,com.vaadin.flow.component.DetachNotifier,com.vaadin.flow.component.HasAriaLabel,com.vaadin.flow.component.HasComponents,com.vaadin.flow.component.HasComponentsOfType<com.vaadin.flow.component.Component>,com.vaadin.flow.component.HasElement,com.vaadin.flow.component.HasEnabled,com.vaadin.flow.component.HasStyle,com.vaadin.flow.component.HasText,Serializable
ContextMenu and SubMenu. This
component can be created and added to a menu overlay with
HasMenuItems.addItem(String, ComponentEventListener) and similar
methods.- Since:
- 1.0
- 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
ConstructorsConstructorDescriptionMenuItem(ContextMenu contextMenu, com.vaadin.flow.function.SerializableRunnable contentReset) -
Method Summary
Modifier and TypeMethodDescriptionprotected SubMenucom.vaadin.flow.server.streams.DownloadHandlerGets the handler that produces the file downloaded when the item is clicked.voidsetDownloadHandler(com.vaadin.flow.server.streams.DownloadHandler downloadHandler) Sets a handler that produces a file to download when the item is clicked.voidsetEnabled(boolean enabled) Sets the menu item explicitly disabled or enabled.Methods inherited from class com.vaadin.flow.component.contextmenu.MenuItemBase
addThemeNames, bindEnabled, ensureTooltipElement, executeJsWhenAttached, getContextMenu, getSubMenu, hasThemeName, isCheckable, isChecked, isDisableOnClick, isKeepOpen, isParentItem, removeThemeNames, setCheckable, setChecked, setDisableOnClick, setKeepOpen, setTooltipPosition, setTooltipTextMethods inherited from class com.vaadin.flow.component.Component
addListener, bindVisible, findAncestor, findAncestor, fireEvent, from, get, getChildren, getElement, getEventBus, getId, getListeners, getLocale, getParent, getTestId, getTranslation, getTranslation, getTranslation, getTranslation, getTranslation, getTranslation, getUI, getUIOrThrow, hasListener, isAttached, isTemplateMapped, isVisible, onAttach, onDetach, onEnabledStateChanged, removeFromParent, scrollIntoView, scrollIntoView, set, setElement, setId, setTestId, setVisible, whenAttachedMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.vaadin.flow.component.AttachNotifier
addAttachListenerMethods inherited from interface com.vaadin.flow.component.ClickNotifier
addClickListener, addClickShortcut, addDoubleClickListener, addSingleClickListenerMethods inherited from interface com.vaadin.flow.component.DetachNotifier
addDetachListenerMethods inherited from interface com.vaadin.flow.component.HasAriaLabel
getAriaLabel, getAriaLabelledBy, setAriaLabel, setAriaLabelledBy, setAriaLabelledByMethods inherited from interface com.vaadin.flow.component.HasComponents
addMethods inherited from interface com.vaadin.flow.component.HasComponentsOfType
add, add, addComponentAsFirst, addComponentAtIndex, bindChildren, getChildren, getComponentAt, getComponentCount, indexOf, remove, remove, removeAll, replaceMethods inherited from interface com.vaadin.flow.component.HasElement
getElementMethods inherited from interface com.vaadin.flow.component.HasEnabled
isEnabledMethods inherited from interface com.vaadin.flow.component.HasStyle
addClassName, addClassNames, bindClassName, bindClassNames, getClassName, getClassNames, getStyle, hasClassName, removeClassName, removeClassNames, setClassName, setClassNameMethods inherited from interface com.vaadin.flow.component.HasText
bindText, getText, getWhiteSpace, setText, setWhiteSpace
-
Constructor Details
-
Method Details
-
createSubMenu
- Specified by:
createSubMenuin classMenuItemBase<ContextMenu,MenuItem, SubMenu>
-
getDownloadHandler
public com.vaadin.flow.server.streams.DownloadHandler getDownloadHandler()Gets the handler that produces the file downloaded when the item is clicked.- Returns:
- the download handler, or
nullif clicking the item does not start a download - Since:
- 25.4
- See Also:
-
setDownloadHandler
public void setDownloadHandler(com.vaadin.flow.server.streams.DownloadHandler downloadHandler) Sets a handler that produces a file to download when the item is clicked. The download starts in the browser as part of the click, and click listeners still run as usual. Setting a new handler replaces the previous one, andnullstops the item from starting a download.The handler runs only when the browser requests the file, once per click, so you can create the content, file name and response headers at that point. If the handler fails, the browser reports a failed download instead of saving an empty file. Use the transfer callbacks of the handler, for example
whenComplete, to react on the server when the transfer has finished or failed.The file is only served while the item is part of its menu, visible and enabled, so hiding or removing the item in a click listener makes the download fail. Closing the menu does not affect the download. The exception is an item with
disable on click: it disables itself before the browser requests the file, so the file is also served while the item is disabled by the click. Once the enabled state is set explicitly, for example withsetEnabled(false), or a parent is disabled, the file is no longer served while the item is disabled. To serve the file regardless of the enabled state, passhandler.allowDisabled().For an item in a
ContextMenuthat has a target, theowning componentof the download is the target of the menu.MenuItem export = menu.addItem("Export"); export.setDownloadHandler( DownloadHandler.fromInputStream(event -> createReport()));- Parameters:
downloadHandler- the handler that produces the file, ornullto not start a download on click- Since:
- 25.4
-
setEnabled
public void setEnabled(boolean enabled) Sets the menu item explicitly disabled or enabled. When disabled, menu items are rendered as "dimmed".By default, disabled items are not focusable and don't react to hover. As a result, they are hidden from assistive technologies, and it's not possible to show a tooltip to explain why they are disabled. This can be addressed by enabling the feature flag
accessibleDisabledMenuItems, which makes disabled items focusable and hoverable, while still preventing them from being activated. To enable this feature flag, add the following line tosrc/main/resources/vaadin-featureflags.properties:com.vaadin.experimental.accessibleDisabledMenuItems = true
- Specified by:
setEnabledin interfacecom.vaadin.flow.component.HasEnabled- Overrides:
setEnabledin classMenuItemBase<ContextMenu,MenuItem, SubMenu> - Since:
- 25.2
-