/******************************************************************************* * Copyright (c) 2011 Subgraph. * 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: * Subgraph - initial API and implementation ******************************************************************************/ package com.subgraph.vega.application; import org.eclipse.jface.action.ActionContributionItem; import org.eclipse.jface.action.ContributionItem; import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.action.IStatusLineManager; import org.eclipse.jface.action.MenuManager; import org.eclipse.jface.action.Separator; import org.eclipse.jface.action.StatusLineManager; import org.eclipse.jface.util.Util; 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.application.ActionBarAdvisor; import org.eclipse.ui.application.IActionBarConfigurer; public class ApplicationActionBarAdvisor extends ActionBarAdvisor { private ActionContributionItem preferenceItem; private ActionContributionItem quitItem; private ActionContributionItem resetPerspectiveItem; private ActionContributionItem aboutItem; public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) { super(configurer); } protected void makeActions(IWorkbenchWindow window) { preferenceItem = createItem(ActionFactory.PREFERENCES, window); quitItem = createItem(ActionFactory.QUIT, window); resetPerspectiveItem = createItem(ActionFactory.RESET_PERSPECTIVE, window); aboutItem = createItem(ActionFactory.ABOUT, window); } private ActionContributionItem createItem(ActionFactory factory, IWorkbenchWindow window) { final IWorkbenchAction action = factory.create(window); register(action); return new ActionContributionItem(action); } protected void fillMenuBar(IMenuManager menuBar) { MenuManager fileMenu = new MenuManager("&File", IWorkbenchActionConstants.M_FILE); MenuManager winMenu = new MenuManager("&Window", IWorkbenchActionConstants.M_WINDOW); MenuManager helpMenu = new MenuManager("&Help", IWorkbenchActionConstants.M_HELP); winMenu.add(preferenceItem); final Separator quitSeparator = new Separator("vega.quit"); fileMenu.add(quitSeparator); fileMenu.add(quitItem); MenuManager viewMenu = new MenuManager("Show View"); winMenu.add(viewMenu); winMenu.add(resetPerspectiveItem); menuBar.add(fileMenu); menuBar.insertAfter(IWorkbenchActionConstants.M_FILE, winMenu); menuBar.insertAfter(IWorkbenchActionConstants.M_WINDOW, helpMenu); final Separator helpSeparator = new Separator("vega.help"); helpMenu.add(helpSeparator); helpMenu.add(aboutItem); if(Util.isMac()) { preferenceItem.setVisible(false); quitItem.setVisible(false); quitSeparator.setVisible(false); aboutItem.setVisible(false); } } protected void fillStatusLine(IStatusLineManager statusLine) { ContributionItem statusLineItem = com.subgraph.vega.ui.http.Activator.getDefault().getStatusLineContribution(); statusLine.appendToGroup(StatusLineManager.END_GROUP, statusLineItem); } }