| /******************************************************************************* |
| * Copyright (c) 2016 ALL4TEC & CEA LIST. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License 2.0 |
| * which accompanies this distribution, and is available at |
| * https://www.eclipse.org/legal/epl-2.0/ |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| * |
| * Contributors: |
| * ALL4TEC & CEA LIST - initial API and implementation |
| ******************************************************************************/ |
| package org.polarsys.esf.core.common.ui.editor; |
| |
| import java.util.Collection; |
| |
| import org.eclipse.emf.common.command.Command; |
| import org.eclipse.emf.common.command.UnexecutableCommand; |
| import org.eclipse.emf.edit.ui.action.DeleteAction; |
| import org.eclipse.jface.action.IMenuManager; |
| import org.eclipse.jface.action.Separator; |
| import org.eclipse.jface.viewers.ISelection; |
| import org.eclipse.ui.actions.ActionFactory; |
| import org.polarsys.esf.core.common.ui.actions.ActionBarContributorUtils; |
| |
| /** |
| * This is the empty action bar contributor. |
| * It doesn't allow to add or delete elements from the input model. |
| * |
| * It's primary used is for the propagation tree editor, and overridden |
| * for the archived file editors. |
| * |
| * @author $Author: jdumont $ |
| * @version $Revision: 83 $ |
| */ |
| public class EmptyActionBarContributor |
| extends AbstractActionBarContributor { |
| |
| /** |
| * Default constructor. |
| */ |
| public EmptyActionBarContributor() { |
| // Call the parent constructor |
| super(); |
| } |
| |
| /** |
| * {@inheritDoc} |
| * |
| * Overridden to avoid the creation of new elements in the model. |
| * This implementation disable the creation of action in the context menu |
| * and in the editor tool bar. |
| */ |
| @Override |
| protected void addCreateSelectChildActions(final ISelection pSelection) { |
| // Do nothing voluntary |
| } |
| |
| /** |
| * {@inheritDoc} |
| * |
| * Overridden to ensure there is no delete action possible. |
| */ |
| @Override |
| protected DeleteAction createDeleteAction() { |
| |
| DeleteAction vAction = new DeleteAction(removeAllReferencesOnDelete()) { |
| |
| /** |
| * {@inheritDoc} |
| */ |
| @Override |
| public Command createCommand(final Collection<?> pSelection) { |
| return UnexecutableCommand.INSTANCE; |
| } |
| }; |
| |
| vAction.setId(ActionFactory.DELETE.getId()); |
| |
| return vAction; |
| } |
| |
| /** |
| * {@inheritDoc} |
| * |
| * Overridden to hide all the edit actions like undo, redo, cut, copy, paste, etc. |
| */ |
| @Override |
| public void menuAboutToShow(final IMenuManager pMenuManager) { |
| // Add the standard addition marker at the beginning if needed |
| if ((style & ADDITIONS_LAST_STYLE) == 0) { |
| pMenuManager.add(new Separator(ActionBarContributorUtils.ADDITIONS_SEPARATOR_ID)); |
| } |
| |
| // Add the standard edit marker but not all the related actions |
| pMenuManager.add(new Separator(ActionBarContributorUtils.EDIT_SEPARATOR_ID)); |
| |
| // Add the standard addition marker at the end if needed |
| if ((style & ADDITIONS_LAST_STYLE) != 0) { |
| pMenuManager.add(new Separator(ActionBarContributorUtils.ADDITIONS_SEPARATOR_ID)); |
| } |
| |
| // Add the standard additions-end marker |
| pMenuManager.add(new Separator(ActionBarContributorUtils.ADDITIONS_END_SEPARATOR_ID)); |
| |
| // Finally add all the global actions |
| addGlobalActions(pMenuManager); |
| } |
| } |