/** * Aptana Studio * Copyright (c) 2005-2012 by Appcelerator, Inc. All Rights Reserved. * Licensed under the terms of the GNU Public License (GPL) v3 (with exceptions). * Please see the license.html included with this distribution for details. * Any modifications to this file must keep this entire header intact. */ package com.aptana.deploy.internal.ui; import org.eclipse.jface.action.ContributionItem; import org.eclipse.jface.action.MenuManager; import org.eclipse.swt.widgets.Menu; import org.eclipse.ui.menus.IMenuService; import org.eclipse.ui.menus.IWorkbenchContribution; import org.eclipse.ui.menus.MenuUtil; import org.eclipse.ui.plugin.AbstractUIPlugin; import org.eclipse.ui.services.IServiceLocator; import com.aptana.deploy.ui.DeployUIPlugin; public class DeployPopupContributionItem extends ContributionItem implements IWorkbenchContribution { private IServiceLocator serviceLocator; private MenuManager menuManager; public DeployPopupContributionItem() { } public DeployPopupContributionItem(String id) { super(id); } @Override public void fill(Menu menu, int index) { menuManager = new MenuManager(Messages.DeployPopupContributionItem_Text, AbstractUIPlugin.imageDescriptorFromPlugin(DeployUIPlugin.PLUGIN_ID, DeployUIPlugin.DEPLOY_MENU_ICON), DeployUIPlugin.DEPLOY_MENU_ID); IMenuService menuService = (IMenuService) serviceLocator.getService(IMenuService.class); menuService.populateContributionManager(menuManager, MenuUtil.menuUri(menuManager.getId())); menuManager.fill(menu, index); } @Override public void dispose() { if (menuManager != null) { menuManager.dispose(); menuManager.removeAll(); menuManager = null; } } public void initialize(IServiceLocator serviceLocator) { this.serviceLocator = serviceLocator; } }