/* * Copyright (c) 2012 Data Harmonisation Panel * * All rights reserved. This program and the accompanying materials are made * available under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation, either version 3 of the License, * or (at your option) any later version. * * You should have received a copy of the GNU Lesser General Public License * along with this distribution. If not, see <http://www.gnu.org/licenses/>. * * Contributors: * HUMBOLDT EU Integrated Project #030962 * Data Harmonisation Panel <http://www.dhpanel.eu> */ package eu.esdihumboldt.hale.ui.application; import org.eclipse.jface.action.GroupMarker; import org.eclipse.jface.action.IContributionItem; 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.ui.IWorkbenchActionConstants; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.actions.ActionFactory; import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction; import org.eclipse.ui.actions.ContributionItemFactory; import org.eclipse.ui.application.ActionBarAdvisor; import org.eclipse.ui.application.IActionBarConfigurer; import org.eclipse.ui.internal.provisional.application.IActionBarConfigurer2; import eu.esdihumboldt.hale.ui.application.internal.Messages; /** * An action bar advisor is responsible for creating, adding, and disposing of * the actions added to a workbench window. Each window will be populated with * new actions. */ @SuppressWarnings("restriction") public class ApplicationActionBarAdvisor extends ActionBarAdvisor { private IWorkbenchAction undoAction; private IWorkbenchAction redoAction; private IWorkbenchAction introAction; private IWorkbenchAction savePerspectiveAction; private IContributionItem viewsShortList; /** * @see ActionBarAdvisor#ActionBarAdvisor(IActionBarConfigurer) */ public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) { super(configurer); } /** * @see ActionBarAdvisor#makeActions(IWorkbenchWindow) */ @Override protected void makeActions(IWorkbenchWindow window) { super.makeActions(window); register(undoAction = ActionFactory.UNDO.create(window)); register(redoAction = ActionFactory.REDO.create(window)); register(introAction = ActionFactory.INTRO.create(window)); register(savePerspectiveAction = ActionFactory.SAVE_PERSPECTIVE.create(window)); viewsShortList = ContributionItemFactory.VIEWS_SHORTLIST.create(window); } /** * @see ActionBarAdvisor#fillMenuBar(IMenuManager) */ @Override protected void fillMenuBar(IMenuManager menuBar) { menuBar.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS)); // edit menu IMenuManager menu = new MenuManager("Edit", IWorkbenchActionConstants.M_EDIT); menu.add(new GroupMarker(IWorkbenchActionConstants.EDIT_START)); menu.add(undoAction); menu.add(redoAction); menu.add(new GroupMarker(IWorkbenchActionConstants.UNDO_EXT)); menu.add(new Separator()); menuBar.add(menu); // window menu IMenuManager windowMenu = new MenuManager(Messages.ApplicationWorkbenchWindowAdvisor_1, IWorkbenchActionConstants.M_WINDOW); //$NON-NLS-1$ IMenuManager viewMenu = new MenuManager(Messages.ApplicationWorkbenchWindowAdvisor_3, "view"); //$NON-NLS-1$ windowMenu.add(viewMenu); viewMenu.add(viewsShortList); windowMenu.add(savePerspectiveAction); menuBar.add(windowMenu); // help menu IMenuManager helpMenu = new MenuManager(Messages.ApplicationWorkbenchWindowAdvisor_2, IWorkbenchActionConstants.M_HELP); //$NON-NLS-1$ //$NON-NLS-2$ helpMenu.add(introAction); menuBar.add(helpMenu); } /** * @see org.eclipse.ui.application.ActionBarAdvisor#fillCoolBar(org.eclipse.jface.action.ICoolBarManager) */ @Override protected void fillCoolBar(ICoolBarManager coolBar) { IActionBarConfigurer2 actionBarConfigurer = (IActionBarConfigurer2) getActionBarConfigurer(); coolBar.add(new GroupMarker(IWorkbenchActionConstants.GROUP_FILE)); { // File Group IToolBarManager fileToolBar = actionBarConfigurer.createToolBarManager(); fileToolBar.add(new Separator(IWorkbenchActionConstants.NEW_GROUP)); fileToolBar.add(new GroupMarker(IWorkbenchActionConstants.NEW_EXT)); fileToolBar.add(new GroupMarker(IWorkbenchActionConstants.SAVE_GROUP)); fileToolBar.add(new GroupMarker(IWorkbenchActionConstants.SAVE_EXT)); fileToolBar.add(new Separator(IWorkbenchActionConstants.BUILD_GROUP)); fileToolBar.add(new GroupMarker(IWorkbenchActionConstants.BUILD_EXT)); fileToolBar.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); // Add to the cool bar manager coolBar.add(actionBarConfigurer.createToolBarContributionItem(fileToolBar, IWorkbenchActionConstants.TOOLBAR_FILE)); } // coolBar.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS)); coolBar.add(new GroupMarker("group.nav")); { // Navigate group IToolBarManager navToolBar = actionBarConfigurer.createToolBarManager(); navToolBar.add(new Separator(IWorkbenchActionConstants.HISTORY_GROUP)); navToolBar.add(new Separator(IWorkbenchActionConstants.GROUP_APP)); navToolBar.add(new Separator(IWorkbenchActionConstants.PIN_GROUP)); // Add to the cool bar manager coolBar.add(actionBarConfigurer.createToolBarContributionItem(navToolBar, IWorkbenchActionConstants.TOOLBAR_NAVIGATE)); } coolBar.add(new GroupMarker(IWorkbenchActionConstants.GROUP_EDITOR)); coolBar.add(new GroupMarker(IWorkbenchActionConstants.GROUP_HELP)); { // Help group IToolBarManager helpToolBar = actionBarConfigurer.createToolBarManager(); helpToolBar.add(new Separator(IWorkbenchActionConstants.GROUP_HELP)); // Add the group for applications to contribute helpToolBar.add(new GroupMarker(IWorkbenchActionConstants.GROUP_APP)); // Add to the cool bar manager coolBar.add(actionBarConfigurer.createToolBarContributionItem(helpToolBar, IWorkbenchActionConstants.TOOLBAR_HELP)); } } }