de.tub.tfs.muvitor.actions.MuvitorActionBarContributor.java Source code

Java tutorial

Introduction

Here is the source code for de.tub.tfs.muvitor.actions.MuvitorActionBarContributor.java

Source

/*******************************************************************************
 * 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
    }
}