package org.robotframework.red.nattable.configs;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.viewers.ISelectionProvider;
import org.eclipse.nebula.widgets.nattable.NatTable;
import org.eclipse.nebula.widgets.nattable.config.AbstractUiBindingConfiguration;
import org.eclipse.nebula.widgets.nattable.ui.binding.UiBindingRegistry;
import org.eclipse.nebula.widgets.nattable.ui.matcher.MouseEventMatcher;
import org.eclipse.nebula.widgets.nattable.ui.menu.PopupMenuAction;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.ui.IEditorSite;
public class TableMenuConfiguration extends AbstractUiBindingConfiguration {
private final Menu menu;
public TableMenuConfiguration(final IEditorSite site, final NatTable table,
final ISelectionProvider selectionProvider, final String menuId, final String menuText) {
final MenuManager manager = new MenuManager(menuText, menuId);
this.menu = manager.createContextMenu(table);
table.setMenu(menu);
site.registerContextMenu(menuId, manager, selectionProvider, false);
}
@Override
public void configureUiBindings(final UiBindingRegistry uiBindingRegistry) {
uiBindingRegistry.registerMouseDownBinding(new MouseEventMatcher(SWT.NONE, null, 3), new PopupMenuAction(menu));
}
}