Class GridContextMenu<T>

All Implemented Interfaces:
AttachNotifier, DetachNotifier, HasComponents, HasElement, HasEnabled, HasStyle, Serializable

public class GridContextMenu<T> extends ContextMenuBase<GridContextMenu<T>,GridMenuItem<T>,GridSubMenu<T>>
Server-side component for <vaadin-context-menu> to be used with Grid.
Author:
Vaadin Ltd.
See Also:
  • Constructor Details

    • GridContextMenu

      public GridContextMenu()
      Creates an empty context menu to be used with a Grid.
    • GridContextMenu

      public GridContextMenu(Grid<T> target)
      Creates an empty context menu with the given target component.
      Parameters:
      target - the target component for this context menu
      See Also:
  • Method Details

    • 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.

      Overrides:
      setTarget in class ContextMenuBase<GridContextMenu<T>,GridMenuItem<T>,GridSubMenu<T>>
      Parameters:
      target - the target component for this context menu, can be null to remove the target
      Throws:
      IllegalArgumentException - if the given target is not an instance of Grid
    • addItem

    • addItem

    • createMenuManager

      protected MenuManager<GridContextMenu<T>,GridMenuItem<T>,GridSubMenu<T>> createMenuManager(SerializableRunnable contentReset)
      Description copied from class: ContextMenuBase
      Creates a menu manager instance which contains logic to control the menu content.
      Specified by:
      createMenuManager in class ContextMenuBase<GridContextMenu<T>,GridMenuItem<T>,GridSubMenu<T>>
      Parameters:
      contentReset - callback to reset the menu content
      Returns:
      a new menu manager instance
    • addGridContextMenuOpenedListener

      public Registration addGridContextMenuOpenedListener(ComponentEventListener<GridContextMenu.GridContextMenuOpenedEvent<T>> listener)
      Adds a listener for the opened-changed events fired by the web component.
      Parameters:
      listener - the listener to add
      Returns:
      a Registration for removing the event listener
    • getDynamicContentHandler

      public SerializablePredicate<T> getDynamicContentHandler()
      Gets the callback function that is executed before the context menu is opened.

      The dynamic context handler allows for customizing the contents of the context menu before it is open.

      Returns:
      the callback function that is executed before opening the context menu, or null if not specified.
    • setDynamicContentHandler

      public void setDynamicContentHandler(SerializablePredicate<T> dynamicContentHandler)
      Sets a callback that is executed before the context menu is opened.

      This callback receives the clicked item (if any) as an input parameter and further can dynamically modify the contents of the context menu. This is useful in situations where the context menu items cannot be known in advance and depend on the specific context (i.e. clicked row) and thus can be configured dynamically. The boolean return value of this callback specifies if the context menu will be opened.

      Parameters:
      dynamicContentHandler - the callback function that will be executed before opening the context menu.
    • onBeforeOpenMenu

      protected boolean onBeforeOpenMenu(elemental.json.JsonObject eventDetail)
      Decides whether to open the menu when the ContextMenuBase.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.

      Overrides:
      onBeforeOpenMenu in class ContextMenuBase<GridContextMenu<T>,GridMenuItem<T>,GridSubMenu<T>>
      Parameters:
      eventDetail - the client side event details provided by the target component.
      Returns:
      true if the context menu should be opened, false otherwise.