com.vaadin.flow.component.contextmenu.
Class ContextMenuBase<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.GeneratedVaadinContextMenu<C>
 - 
- com.vaadin.flow.component.contextmenu.ContextMenuBase<C,I,S>
 
 
 
 
- 
Type Parameters:
C- the context-menu typeI- the menu-item typeS- the sub menu typeAll Implemented Interfaces:
AttachNotifier, ClickNotifier<C>, DetachNotifier, HasComponents, HasElement, HasEnabled, HasStyle, Serializable
Direct Known Subclasses:
@JsModule(value="./flow-component-renderer.js") @JsModule(value="./contextMenuConnector.js") public abstract class ContextMenuBase<C extends ContextMenuBase<C,I,S>,I extends MenuItemBase<C,I,S>,S extends SubMenuBase<C,I,S>> extends GeneratedVaadinContextMenu<C> implements HasComponentsBase functionality for server-side components based on
<vaadin-context-menu>. Classes extending this should provide API for adding items and handling events related to them. For basic example, seeContextMenu.Author:
Vaadin Ltd.
See Also:
 
- 
- 
Nested Class Summary
- 
Nested classes/interfaces inherited from class com.vaadin.flow.component.contextmenu.GeneratedVaadinContextMenu
GeneratedVaadinContextMenu.OpenedChangeEvent<R extends GeneratedVaadinContextMenu<R>> 
 - 
 
- 
Field Summary
Fields Modifier and Type Field and Description static StringEVENT_DETAIL 
- 
Constructor Summary
Constructors Constructor and Description ContextMenuBase()Creates an empty context menu.
 
- 
Method Summary
All Methods Modifier and Type Method and Description voidadd(Component... components)Adds the given components into the context menu overlay.
voidaddComponentAtIndex(int index, Component component)Adds the given component into this context menu at the given index.
IaddItem(Component component)Adds a new item component with the given component to the context menu overlay.
IaddItem(String text)Adds a new item component with the given text content to the context menu overlay.
RegistrationaddOpenedChangeListener(ComponentEventListener<GeneratedVaadinContextMenu.OpenedChangeEvent<C>> listener)Adds a listener for the
opened-changedevents fired by the web component.voidclose()Closes this context menu if it is currently open.
protected abstract MenuManager<C,I,S>createMenuManager(SerializableRunnable contentReset)Creates a menu manager instance which contains logic to control the menu content.
Stream<Component>getChildren()Gets the child components of this component.
List<I>getItems()Gets the items added to this component (the children of this component that are instances of
MenuItem).protected MenuManager<C,I,S>getMenuManager()Gets the menu manager.
ComponentgetTarget()Gets the target component of this context menu, or
nullif it doesn't have a target.booleanisOpened()Gets the open state from the context menu.
booleanisOpenOnClick()Gets whether the context menu can be opened via left click.
protected booleanonBeforeOpenMenu(elemental.json.JsonObject eventDetail)Decides whether to open the menu when the
beforeOpenHandler(DomEvent)is processed, sub-classes can easily override it and perform additional operations in this phase.voidremove(Component... components)Removes the given child components from this component.
voidremoveAll()Removes all of the child components.
voidsetOpenOnClick(boolean openOnClick)Determines the way for opening the context menu.
voidsetTarget(Component target)Sets the target component for this context menu.
- 
Methods inherited from class com.vaadin.flow.component.contextmenu.GeneratedVaadinContextMenu
getCloseOnString, getListenOnJsonObject, getOpenOnString, getSelectorString, isOpenedBoolean, open, setCloseOn, setListenOn, setOpenOn, setSelector 
- 
Methods inherited from class com.vaadin.flow.component.Component
addListener, fireEvent, from, get, getElement, getEventBus, getId, getLocale, getParent, getTranslation, getTranslation, getUI, hasListener, isTemplateMapped, isVisible, onAttach, onDetach, onEnabledStateChanged, 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.HasComponents
add, addComponentAsFirst 
- 
Methods inherited from interface com.vaadin.flow.component.HasEnabled
isEnabled, setEnabled 
- 
Methods inherited from interface com.vaadin.flow.component.HasElement
getElement 
- 
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.ClickNotifier
addClickListener, addClickShortcut 
- 
Methods inherited from interface com.vaadin.flow.component.AttachNotifier
addAttachListener 
- 
Methods inherited from interface com.vaadin.flow.component.DetachNotifier
addDetachListener 
 - 
 
 - 
 
- 
- 
Field Detail
- 
EVENT_DETAIL
public static final String EVENT_DETAILSee Also:
 
 - 
 
- 
Method Detail
- 
setTarget
public void setTarget(Component target)Sets the target component for this context menu.
By default, the context menu can be opened with a right click or a long touch on the target component.
Parameters:
target- the target component for this context menu, can benullto remove the target 
- 
getTarget
public Component getTarget()Gets the target component of this context menu, or
nullif it doesn't have a target.Returns:
the target component of this context menu
See Also:
 
- 
setOpenOnClick
public void setOpenOnClick(boolean openOnClick)Determines the way for opening the context menu.
By default, the context menu can be opened with a right click or a long touch on the target component.
Parameters:
openOnClick- iftrue, the context menu can be opened with left click only. Otherwise the context menu follows the default behavior. 
- 
isOpenOnClick
public boolean isOpenOnClick()Gets whether the context menu can be opened via left click.
By default, this will return
falseand context menu can be opened with a right click or a long touch on the target component.Returns:
trueif the context menu can be opened with left click only. Otherwise the context menu follows the default behavior. 
- 
close
public void close()Closes this context menu if it is currently open.
Overrides:
closein classGeneratedVaadinContextMenu<C extends ContextMenuBase<C,I,S>> 
- 
addItem
public I addItem(String text)Adds a new item component with the given text content to the context menu overlay.
This is a convenience method for the use case where you have a list of highlightable
MenuItems inside the overlay. If you want to configure the contents of the overlay without wrapping them insideMenuItems, or if you just want to add some non-highlightable components between the items, use theadd(Component...)method.Parameters:
text- the text content for the created menu itemReturns:
the created menu item
See Also:
 
- 
addItem
public I addItem(Component component)Adds a new item component with the given component to the context menu overlay.
This is a convenience method for the use case where you have a list of highlightable
MenuItems inside the overlay. If you want to configure the contents of the overlay without wrapping them insideMenuItems, or if you just want to add some non-highlightable components between the items, use theadd(Component...)method.Parameters:
component- the component to add to the created menu itemReturns:
the created menu item
See Also:
 
- 
add
public void add(Component... components)Adds the given components into the context menu overlay.
For the common use case of having a list of high-lightable items inside the overlay, you can use the
addItem(String)convenience methods instead.The added elements in the DOM will not be children of the
<vaadin-context-menu>element, but will be inserted into an overlay that is attached into the<body>.Specified by:
addin interfaceHasComponentsParameters:
components- the components to addSee Also:
HasMenuItems.addItem(String, ComponentEventListener),HasMenuItems.addItem(Component, ComponentEventListener) 
- 
remove
public void remove(Component... components)Description copied from interface:
HasComponentsRemoves the given child components from this component.
Specified by:
removein interfaceHasComponentsParameters:
components- the components to remove 
- 
removeAll
public void removeAll()Removes all of the child components. This also removes all the items added with
addItem(String)and its overload methods.Specified by:
removeAllin interfaceHasComponents 
- 
addComponentAtIndex
public void addComponentAtIndex(int index, Component component)Adds the given component into this context menu at the given index.
The added elements in the DOM will not be children of the
<vaadin-context-menu>element, but will be inserted into an overlay that is attached into the<body>.Specified by:
addComponentAtIndexin interfaceHasComponentsParameters:
index- the index, where the component will be addedcomponent- the component to addSee Also:
 
- 
getChildren
public Stream<Component> getChildren()Gets the child components of this component. This includes components added with
add(Component...)and theMenuItemcomponents created withaddItem(String)and its overload methods. This doesn't include the components added to the sub menus of this context menu.Overrides:
getChildrenin classComponentReturns:
the child components of this component
See Also:
 
- 
getItems
public List<I> getItems()Gets the items added to this component (the children of this component that are instances of
MenuItem). This doesn't include the components added to the sub menus of this context menu.Returns:
the
MenuItemcomponents in this context menuSee Also:
 
- 
isOpened
public boolean isOpened()Gets the open state from the context menu.
Returns:
the
openedproperty from the context menu 
- 
addOpenedChangeListener
public Registration addOpenedChangeListener(ComponentEventListener<GeneratedVaadinContextMenu.OpenedChangeEvent<C>> listener)Adds a listener for the
opened-changedevents fired by the web component.Overrides:
addOpenedChangeListenerin classGeneratedVaadinContextMenu<C extends ContextMenuBase<C,I,S>>Parameters:
listener- the listener to addReturns:
a Registration for removing the event listener
 
- 
getMenuManager
protected MenuManager<C,I,S> getMenuManager()Gets the menu manager.
Returns:
the menu manager
 
- 
createMenuManager
protected abstract MenuManager<C,I,S> createMenuManager(SerializableRunnable contentReset)Creates a menu manager instance which contains logic to control the menu content.
Parameters:
contentReset- callback to reset the menu contentReturns:
a new menu manager instance
 
- 
onBeforeOpenMenu
protected boolean onBeforeOpenMenu(elemental.json.JsonObject eventDetail)Decides whether to open the menu when the
beforeOpenHandler(DomEvent)is processed, sub-classes can easily override it and perform additional operations in this phase.The event details are completely specified by the target component that is in charge of defining the data it sends to the server. Based on this information, this method enables for dynamically modifying the contents of the context menu. Furthermore, this method's return value specifies if the context menu will be opened.
Parameters:
eventDetail- the client side event details provided by the target component.Returns:
trueif the context menu should be opened,falseotherwise. 
 - 
 
 -