package org.erlide.ui.navigator.actions;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.ui.IActionBars;
import org.eclipse.ui.IWorkbenchPartSite;
import org.eclipse.ui.contexts.IContextService;
import org.eclipse.ui.navigator.CommonActionProvider;
import org.eclipse.ui.navigator.ICommonActionConstants;
import org.eclipse.ui.navigator.ICommonActionExtensionSite;
import org.eclipse.ui.navigator.ICommonMenuConstants;
import org.eclipse.ui.navigator.ICommonViewerSite;
import org.eclipse.ui.navigator.ICommonViewerWorkbenchSite;
import org.erlide.ui.actions.ErlangSearchActionGroup;
public class ErlangFileActionProvider extends CommonActionProvider {
private OpenErlangAction openAction;
private ErlangSearchActionGroup searchActionGroup;
public ErlangFileActionProvider() {
}
@Override
public void init(final ICommonActionExtensionSite aSite) {
final ICommonViewerSite viewSite = aSite.getViewSite();
if (viewSite instanceof ICommonViewerWorkbenchSite) {
final ICommonViewerWorkbenchSite workbenchSite = (ICommonViewerWorkbenchSite) viewSite;
final IWorkbenchPartSite site = workbenchSite.getSite();
openAction = new OpenErlangAction(aSite,
workbenchSite.getSelectionProvider());
searchActionGroup = new ErlangSearchActionGroup(site);
final IContextService service = (IContextService) site
.getService(IContextService.class);
service.activateContext("org.erlide.ui.erlangOutlineAndNavigatorScope");
}
}
@Override
public void fillActionBars(final IActionBars actionBars) {
/* Set up the property open action when enabled. */
if (openAction.isEnabled()) {
actionBars.setGlobalActionHandler(ICommonActionConstants.OPEN, openAction);
}
}
@Override
public void fillContextMenu(final IMenuManager menu) {
if (openAction.isEnabled()) {
menu.appendToGroup(ICommonMenuConstants.GROUP_OPEN, openAction);
}
searchActionGroup.fillContextMenu(menu);
}
}