Package org.eclipse.gef

# Class ContextMenuProvider

java.lang.Object
org.eclipse.jface.action.ContributionManager
org.eclipse.jface.action.MenuManager
org.eclipse.gef.ContextMenuProvider

All Implemented Interfaces:
  `IContributionItem`, `IContributionManager`, `IMenuListener`, `IMenuManager`

Direct Known Subclasses:
  `PaletteContextMenuProvider`

public abstract class ContextMenuProvider extends MenuManager implements IMenuListener
Extends MenuManager to allow populating the menu directly from the manager itself. Using this class is no different than using a standalone `MenuManager`, and adding a menuAboutToShow listener.

## Field Summary

### Fields inherited from class org.eclipse.jface.action.MenuManager

`MANAGER_KEY, visible`

## Constructor Summary

Constructors
Constructor
Description
`ContextMenuProvider(EditPartViewer viewer)`
Constructs a context menu for the specified EditPartViewer.

## Method Summary

Modifier and Type
Method
Description
`abstract void`
`buildContextMenu(IMenuManager menu)`
Called when the menu is about to show.
`protected EditPartViewer`
`getViewer()`
Returns the EditPartViewer
`void`
`menuAboutToShow(IMenuManager menu)`
`protected void`
`setViewer(EditPartViewer viewer)`
Sets the editpart viewer.

### Methods inherited from class org.eclipse.jface.action.MenuManager

`addMenuListener, createContextMenu, createMenuBar, createMenuBar, dispose, doItemFill, fill, fill, fill, fill, findMenuUsingPath, findUsingPath, getId, getImageDescriptor, getMenu, getMenuItem, getMenuItemCount, getMenuItems, getMenuText, getOverrides, getParent, getRemoveAllWhenShown, isDynamic, isEnabled, isGroupMarker, isSeparator, isSubstituteFor, isVisible, markDirty, menuExist, removeMenuListener, saveWidgetState, setActionDefinitionId, setImageDescriptor, setMenuText, setOverrides, setParent, setRemoveAllWhenShown, setVisible, toString, update, update, update, update, updateAll`

### Methods inherited from class org.eclipse.jface.action.ContributionManager

`add, add, allowItem, appendToGroup, appendToGroup, dumpStatistics, find, getItems, getSize, hasDynamicItems, indexOf, indexOf, insert, insertAfter, insertAfter, insertBefore, insertBefore, internalSetItems, isDirty, isEmpty, itemAdded, itemRemoved, prependToGroup, prependToGroup, remove, remove, removeAll, replaceItem, setDirty`

### Methods inherited from class java.lang.Object

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

### Methods inherited from interface org.eclipse.jface.action.IContributionItem

`isDirty`

### Methods inherited from interface org.eclipse.jface.action.IContributionManager

`add, add, appendToGroup, appendToGroup, find, getItems, insertAfter, insertAfter, insertBefore, insertBefore, isDirty, isEmpty, prependToGroup, prependToGroup, remove, remove, removeAll`

## Constructor Details

### ContextMenuProvider

public ContextMenuProvider(EditPartViewer viewer)
Constructs a context menu for the specified EditPartViewer.

Parameters:
  `viewer` - the editpart viewer

## Method Details

### buildContextMenu

public abstract void buildContextMenu(IMenuManager menu)
Called when the menu is about to show. Subclasses must implement this method to populate the menu each time it is shown.

Parameters:
  `menu` - this parameter is actually `this` object

### getViewer

protected EditPartViewer getViewer()
Returns the EditPartViewer

Returns:
  the viewer

### menuAboutToShow

public void menuAboutToShow(IMenuManager menu)

Specified by:
  `menuAboutToShow` in interface `IMenuListener`
See Also:
  - `IMenuListener.menuAboutToShow(IMenuManager)`

### setViewer

protected void setViewer(EditPartViewer viewer)
Sets the editpart viewer. Called during construction.

Parameters:
  `viewer` - the viewer