/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.gui.workflow.editor;
import org.eclipse.gef.internal.GEFMessages;
import org.eclipse.gef.ui.actions.ActionBarContributor;
import org.eclipse.gef.ui.actions.DeleteRetargetAction;
import org.eclipse.gef.ui.actions.GEFActionConstants;
import org.eclipse.gef.ui.actions.RedoRetargetAction;
import org.eclipse.gef.ui.actions.UndoRetargetAction;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.action.Separator;
import org.eclipse.ui.actions.ActionFactory;
import org.eclipse.ui.actions.RetargetAction;
import de.rcenvironment.core.gui.resources.api.ImageManager;
import de.rcenvironment.core.gui.resources.api.StandardImages;
/**
* Make Edit->Undo/Redo/Delete work.
*
* @author Heinrich Wendel
* @author Sascha Zur
*/
@SuppressWarnings("restriction")
public class WorkflowEditorActionBarContributor extends ActionBarContributor {
private static final String SHOW_NUMBER_OF_CONNECTIONS = "ShowNumberOfConnections";
@Override
protected void buildActions() {
addRetargetAction(new DeleteRetargetAction());
addRetargetAction(new UndoRetargetAction());
addRetargetAction(new RedoRetargetAction());
// Grid action with icon
RetargetAction gridAction = new RetargetAction(GEFActionConstants.TOGGLE_GRID_VISIBILITY,
"Show grid", IAction.AS_CHECK_BOX);
gridAction.setImageDescriptor(ImageManager.getInstance().getImageDescriptor(StandardImages.SNAP_TO_GRID));
addRetargetAction(gridAction);
// Snap to geometry action with icon
RetargetAction geometryAction = new RetargetAction(GEFActionConstants.TOGGLE_SNAP_TO_GEOMETRY,
"Snap to geometry", IAction.AS_CHECK_BOX);
geometryAction.setImageDescriptor(ImageManager.getInstance().getImageDescriptor(StandardImages.SNAP_TO_GEOMETRY));
addRetargetAction(geometryAction);
// Show number of connections action with icon
ShowNumberOfConnectionsAction showNumberOfConnectionAction =
new ShowNumberOfConnectionsAction(SHOW_NUMBER_OF_CONNECTIONS, "Show number of connections in workflow editor");
showNumberOfConnectionAction.setImageDescriptor(
ImageManager.getInstance().getImageDescriptor(StandardImages.SHOW_CONNECTION_NUMBERS));
showNumberOfConnectionAction.setToolTipText("Show number of connections in workflow editor");
addRetargetAction(showNumberOfConnectionAction);
addRetargetAction(new RetargetAction(ActionFactory.SELECT_ALL.getId(), GEFMessages.SelectAllAction_Label));
}
@Override
public void contributeToToolBar(IToolBarManager toolBarManager) {
toolBarManager.add(getAction(ActionFactory.UNDO.getId()));
toolBarManager.add(getAction(ActionFactory.REDO.getId()));
toolBarManager.add(new Separator());
toolBarManager.add(getAction(GEFActionConstants.TOGGLE_GRID_VISIBILITY));
toolBarManager.add(getAction(GEFActionConstants.TOGGLE_SNAP_TO_GEOMETRY));
toolBarManager.add(getAction(SHOW_NUMBER_OF_CONNECTIONS));
}
@Override
protected void declareGlobalActionKeys() {
// currently none
}
}