package org.reldb.dbrowser.ui.content.rel.var.grids;
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.nebula.widgets.nattable.ui.menu.PopupMenuBuilder;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Menu;
// IConfiguration for registering a UI binding to open a menu
class MenuConfiguration extends AbstractUiBindingConfiguration {
private final Menu menu;
private final String gridRegion;
// gridRegion can be, for example, GridRegion.COLUMN_HEADER
public MenuConfiguration(String gridRegion, PopupMenuBuilder menuBuilder) {
this.gridRegion = gridRegion;
// create the menu using the PopupMenuBuilder
menu = menuBuilder.build();
}
@Override
public void configureUiBindings(UiBindingRegistry uiBindingRegistry) {
uiBindingRegistry.registerMouseDownBinding(
new MouseEventMatcher(SWT.NONE, gridRegion, MouseEventMatcher.RIGHT_BUTTON),
new PopupMenuAction(menu));
}
}