/*******************************************************************************
* This file is protected by Copyright.
* Please refer to the COPYRIGHT file distributed with this source distribution.
*
* This file is part of REDHAWK IDE.
*
* All rights reserved. This program and the accompanying materials are made available under
* the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*******************************************************************************/
package gov.redhawk.core.graphiti.sad.ui.editor;
import org.eclipse.jface.action.IContributionItem;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IWorkbenchActionConstants;
import gov.redhawk.sca.ui.actions.ReleaseAction;
import gov.redhawk.sca.ui.actions.StartAction;
import gov.redhawk.sca.ui.actions.StopAction;
public class GraphitiWaveformRuntimeActionBarContributor extends GraphitiWaveformMultipageEditorActionBarContributor {
private final StartAction startAction = new StartAction();
private final StopAction stopAction = new StopAction();
private final ReleaseAction releaseAction = new ReleaseAction();
private final String[] redhawkActions = { startAction.getId(), stopAction.getId(), releaseAction.getId() };
public GraphitiWaveformRuntimeActionBarContributor() {
this.startAction.setToolTipText("Start Waveform");
this.stopAction.setToolTipText("Stop Waveform");
this.releaseAction.setToolTipText("Release Waveform");
}
@Override
public void setActiveEditor(final IEditorPart part) {
super.setActiveEditor(part);
this.startAction.setContext(part);
this.stopAction.setContext(part);
this.releaseAction.setContext(part);
}
@Override
public void setActivePage(IEditorPart newEditor) {
super.setActivePage(newEditor);
if (newEditor instanceof GraphitiWaveformExplorerDiagramEditor) {
startAction.setContext(newEditor.getSite().getPart());
stopAction.setContext(newEditor.getSite().getPart());
releaseAction.setContext(newEditor.getSite().getPart());
}
}
@Override
protected void setActionsVisible(boolean setVisible) {
IToolBarManager toolbarManager = getActionBars().getToolBarManager();
for (String id : redhawkActions) {
IContributionItem toolBarItem = toolbarManager.find(id);
if (toolBarItem != null) {
toolBarItem.setVisible(setVisible);
}
}
super.setActionsVisible(setVisible);
}
@Override
public void contributeToToolBar(IToolBarManager toolBarManager) {
if (!getActionsBuilt()) {
return;
}
toolBarManager.add(this.startAction);
toolBarManager.add(this.stopAction);
toolBarManager.add(this.releaseAction);
super.contributeToToolBar(toolBarManager);
}
@Override
public void contributeToMenu(IMenuManager menuManager) {
if (!getActionsBuilt()) {
return;
}
final IMenuManager waveformMenu = new MenuManager("W&aveform", "waveform");
waveformMenu.add(this.startAction);
waveformMenu.add(this.stopAction);
waveformMenu.add(this.releaseAction);
menuManager.insertAfter(IWorkbenchActionConstants.MB_ADDITIONS, waveformMenu);
super.contributeToMenu(menuManager);
}
}