/******************************************************************************* * Copyright (c) 2010-2015 Henshin developers. 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 * * Contributors: * TU Berlin, University of Luxembourg, SES S.A. *******************************************************************************/ package de.tub.tfs.muvitor.actions; import org.eclipse.gef.editparts.ZoomManager; 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.gef.ui.actions.ZoomComboContributionItem; import org.eclipse.gef.ui.actions.ZoomInRetargetAction; import org.eclipse.gef.ui.actions.ZoomOutRetargetAction; import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.action.IToolBarManager; import org.eclipse.jface.action.MenuManager; import org.eclipse.jface.action.Separator; import org.eclipse.ui.IWorkbenchActionConstants; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.actions.ActionFactory; import org.eclipse.ui.actions.RetargetAction; /** * Contributor class to build up the editor's menu and tool bar. Some standard * actions are put on the ActionBar by this. Usually you will not need to * subclass this. * * <p> * In the rare case that you really need an additional RetargetAction for all * the Muvitor's views, it must be built in {@link #buildActions()} and * contributed in {@link #contributeToMenu(IMenuManager)} or * {@link #contributeToMenu(IMenuManager)} in subclasses. * * @author Tony Modica */ public class MuvitorActionBarContributor extends ActionBarContributor { /* * (non-Javadoc) * @see * org.eclipse.ui.part.EditorActionBarContributor#contributeToMenu(org.eclipse * .jface.action.IMenuManager) */ @Override public void contributeToMenu(final IMenuManager menuManager) { super.contributeToMenu(menuManager); // add a "View" menu after "Edit" final MenuManager viewMenu = new MenuManager("View"); viewMenu.add(getAction(GEFActionConstants.ZOOM_IN)); viewMenu.add(getAction(GEFActionConstants.ZOOM_OUT)); menuManager.insertAfter(IWorkbenchActionConstants.M_EDIT, viewMenu); } /* * (non-Javadoc) * @see * org.eclipse.ui.part.EditorActionBarContributor#contributeToToolBar(org * .eclipse.jface.action.IToolBarManager) */ @Override public void contributeToToolBar(final IToolBarManager toolBarManager) { super.contributeToToolBar(toolBarManager); toolBarManager.add(getAction(ActionFactory.REVERT.getId())); toolBarManager.add(new Separator()); toolBarManager.add(getAction(ActionFactory.UNDO.getId())); toolBarManager.add(getAction(ActionFactory.REDO.getId())); toolBarManager.add(new Separator()); toolBarManager.add(getAction(ActionFactory.COPY.getId())); toolBarManager.add(getAction(ActionFactory.CUT.getId())); toolBarManager.add(getAction(ActionFactory.PASTE.getId())); toolBarManager.add(new Separator()); toolBarManager.add(getAction(ActionFactory.DELETE.getId())); toolBarManager.add(new Separator()); toolBarManager.add(getAction(GEFActionConstants.ZOOM_IN)); toolBarManager.add(getAction(GEFActionConstants.ZOOM_OUT)); final String[] zoomStrings = new String[] { ZoomManager.FIT_ALL, ZoomManager.FIT_HEIGHT, ZoomManager.FIT_WIDTH }; toolBarManager.add(new ZoomComboContributionItem(getPage(), zoomStrings)); } /* * (non-Javadoc) * @see org.eclipse.gef.ui.actions.ActionBarContributor#buildActions() */ @Override protected void buildActions() { addRetargetAction(new UndoRetargetAction()); addRetargetAction(new RedoRetargetAction()); addRetargetAction(new DeleteRetargetAction()); final IWorkbenchWindow iww = getPage().getWorkbenchWindow(); addRetargetAction((RetargetAction) ActionFactory.REVERT.create(iww)); addRetargetAction((RetargetAction) ActionFactory.COPY.create(iww)); addRetargetAction((RetargetAction) ActionFactory.CUT.create(iww)); addRetargetAction((RetargetAction) ActionFactory.PASTE.create(iww)); addRetargetAction(new ZoomInRetargetAction()); addRetargetAction(new ZoomOutRetargetAction()); } /** * Only IDs which were not already added directly or indirectly using * {@link #addGlobalActionKey(String)} need to be added. */ /* * (non-Javadoc) * @see * org.eclipse.gef.ui.actions.ActionBarContributor#declareGlobalActionKeys() */ @Override protected void declareGlobalActionKeys() { // addRetargetAction does declare global action keys } }