package org.teiid.designer.ui.actions;
import org.eclipse.jface.action.IContributionItem;
import org.eclipse.jface.action.IContributionManager;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.actions.CompoundContributionItem;
import org.teiid.designer.ui.UiPlugin;
/**
* @since 8.0
*/
public abstract class NewMenuContributionsManager extends CompoundContributionItem {
/**
* {@inheritDoc}
*
* @see org.eclipse.ui.actions.CompoundContributionItem#getContributionItems()
*/
@Override
protected final IContributionItem[] getContributionItems() {
UiPlugin plugin = UiPlugin.getDefault();
IWorkbench workbench = plugin.getWorkbench();
IWorkbenchPage page = workbench.getActiveWorkbenchWindow().getActivePage();
// the action service creates the new child menu in the context menu so have it create one for edit menu
ModelerActionService actionService = (ModelerActionService)plugin.getActionService(page);
// pass current selection and action service to obtain correct items
if (page.getActivePart().getSite().getSelectionProvider() != null) {
ISelection selection = page.getActivePart().getSite().getSelectionProvider().getSelection();
IContributionManager contributionMgr = getContributionManager(actionService, selection);
return contributionMgr.getItems();
}
return new IContributionItem[0];
}
protected abstract IContributionManager getContributionManager( ModelerActionService actionService,
ISelection selection );
}