de.iteratec.logan.LoganActionBarAdvisor.java Source code

Java tutorial

Introduction

Here is the source code for de.iteratec.logan.LoganActionBarAdvisor.java

Source

/*******************************************************************************
 * Copyright (c) 2004, 2008 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Common Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/cpl-v10.html
 * 
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package de.iteratec.logan;

import org.eclipse.jface.action.GroupMarker;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.action.ICoolBarManager;
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.jface.action.ToolBarContributionItem;
import org.eclipse.jface.action.ToolBarManager;

import org.eclipse.ui.IWorkbenchActionConstants;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.actions.ActionFactory;
import org.eclipse.ui.actions.ContributionItemFactory;
import org.eclipse.ui.application.ActionBarAdvisor;
import org.eclipse.ui.application.IActionBarConfigurer;

/**
 * Adds actions to a workbench window.
 */
public final class LoganActionBarAdvisor extends ActionBarAdvisor {

    /**
     * Constructs a new action builder.
     * 
     * @param actionBarConfigurer the configurer
     */
    public LoganActionBarAdvisor(IActionBarConfigurer actionBarConfigurer) {
        super(actionBarConfigurer);
    }

    @Override
    protected void fillCoolBar(ICoolBarManager cbManager) {
        cbManager.add(new GroupMarker("group.file")); //$NON-NLS-1$
        { // File Group
            IToolBarManager fileToolBar = new ToolBarManager(cbManager.getStyle());
            fileToolBar.add(new Separator(IWorkbenchActionConstants.NEW_GROUP));
            fileToolBar.add(new GroupMarker(IWorkbenchActionConstants.OPEN_EXT));
            fileToolBar.add(new GroupMarker(IWorkbenchActionConstants.SAVE_GROUP));
            fileToolBar.add(getAction(ActionFactory.SAVE.getId()));

            // Add to the cool bar manager
            cbManager.add(new ToolBarContributionItem(fileToolBar, IWorkbenchActionConstants.TOOLBAR_FILE));
        }

        cbManager.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));

        cbManager.add(new GroupMarker(IWorkbenchActionConstants.GROUP_EDITOR));
    }

    @Override
    protected void fillMenuBar(IMenuManager menubar) {
        menubar.add(createFileMenu());
        menubar.add(createEditMenu());
        menubar.add(createAboutMenu());
    }

    private MenuManager createAboutMenu() {
        MenuManager helpMenu = new MenuManager("&Help", IWorkbenchActionConstants.M_HELP); //$NON-NLS-1$
        helpMenu.add(getAction(ActionFactory.ABOUT.getId()));
        helpMenu.add(getAction(ActionFactory.PREFERENCES.getId()));

        return helpMenu;
    }

    /**
     * Creates and returns the 'File' menu.
     * 
     * @return the created menu manager
     */
    private MenuManager createFileMenu() {
        MenuManager menu = new MenuManager("&File", IWorkbenchActionConstants.M_FILE); //$NON-NLS-1$
        menu.add(new GroupMarker(IWorkbenchActionConstants.FILE_START));

        menu.add(new GroupMarker(IWorkbenchActionConstants.NEW_EXT));
        menu.add(getAction(ActionFactory.CLOSE.getId()));
        menu.add(getAction(ActionFactory.CLOSE_ALL.getId()));
        // menu.add(closeAllSavedAction);
        menu.add(new GroupMarker(IWorkbenchActionConstants.CLOSE_EXT));
        menu.add(new Separator());
        menu.add(getAction(ActionFactory.SAVE.getId()));
        menu.add(getAction(ActionFactory.SAVE_AS.getId()));
        menu.add(getAction(ActionFactory.SAVE_ALL.getId()));

        menu.add(getAction(ActionFactory.REVERT.getId()));
        menu.add(ContributionItemFactory.REOPEN_EDITORS
                .create(getActionBarConfigurer().getWindowConfigurer().getWindow()));
        menu.add(new GroupMarker(IWorkbenchActionConstants.MRU));
        menu.add(new Separator());
        menu.add(getAction(ActionFactory.QUIT.getId()));
        menu.add(new GroupMarker(IWorkbenchActionConstants.FILE_END));
        return menu;
    }

    /**
     * Creates and returns the 'Edit' menu.
     * 
     * @return the created menu manager
     */
    private MenuManager createEditMenu() {
        MenuManager menu = new MenuManager("&Edit", IWorkbenchActionConstants.M_EDIT); //$NON-NLS-1$
        menu.add(new GroupMarker(IWorkbenchActionConstants.EDIT_START));

        menu.add(getAction(ActionFactory.UNDO.getId()));
        menu.add(getAction(ActionFactory.REDO.getId()));
        menu.add(new GroupMarker(IWorkbenchActionConstants.UNDO_EXT));

        menu.add(getAction(ActionFactory.CUT.getId()));
        menu.add(getAction(ActionFactory.COPY.getId()));
        menu.add(getAction(ActionFactory.PASTE.getId()));
        menu.add(new GroupMarker(IWorkbenchActionConstants.CUT_EXT));

        menu.add(getAction(ActionFactory.SELECT_ALL.getId()));
        menu.add(new Separator());

        menu.add(getAction(ActionFactory.FIND.getId()));
        menu.add(new GroupMarker(IWorkbenchActionConstants.FIND_EXT));

        menu.add(new GroupMarker(IWorkbenchActionConstants.ADD_EXT));

        menu.add(new GroupMarker(IWorkbenchActionConstants.EDIT_END));
        menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
        return menu;
    }

    @Override
    protected void makeActions(IWorkbenchWindow window) {
        registerAsGlobal(ActionFactory.SAVE.create(window));
        registerAsGlobal(ActionFactory.SAVE_AS.create(window));
        registerAsGlobal(ActionFactory.ABOUT.create(window));
        registerAsGlobal(ActionFactory.SAVE_ALL.create(window));
        registerAsGlobal(ActionFactory.UNDO.create(window));
        registerAsGlobal(ActionFactory.REDO.create(window));
        registerAsGlobal(ActionFactory.CUT.create(window));
        registerAsGlobal(ActionFactory.COPY.create(window));
        registerAsGlobal(ActionFactory.PASTE.create(window));
        registerAsGlobal(ActionFactory.SELECT_ALL.create(window));
        registerAsGlobal(ActionFactory.FIND.create(window));
        registerAsGlobal(ActionFactory.CLOSE.create(window));
        registerAsGlobal(ActionFactory.CLOSE_ALL.create(window));
        registerAsGlobal(ActionFactory.CLOSE_ALL_SAVED.create(window));
        registerAsGlobal(ActionFactory.REVERT.create(window));
        registerAsGlobal(ActionFactory.QUIT.create(window));
        registerAsGlobal(ActionFactory.PREFERENCES.create(window));
    }

    /**
     * Registers the action as global action and registers it for disposal.
     * 
     * @param action the action to register
     */
    private void registerAsGlobal(IAction action) {
        getActionBarConfigurer().registerGlobalAction(action);
        register(action);
    }
}