Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'deprecated/org.eclipse.papyrus.navigator/src/org/eclipse/papyrus/navigator/actions/EditingDomainActionProvider.java')
-rw-r--r--deprecated/org.eclipse.papyrus.navigator/src/org/eclipse/papyrus/navigator/actions/EditingDomainActionProvider.java255
1 files changed, 0 insertions, 255 deletions
diff --git a/deprecated/org.eclipse.papyrus.navigator/src/org/eclipse/papyrus/navigator/actions/EditingDomainActionProvider.java b/deprecated/org.eclipse.papyrus.navigator/src/org/eclipse/papyrus/navigator/actions/EditingDomainActionProvider.java
deleted file mode 100644
index 962722b4446..00000000000
--- a/deprecated/org.eclipse.papyrus.navigator/src/org/eclipse/papyrus/navigator/actions/EditingDomainActionProvider.java
+++ /dev/null
@@ -1,255 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Obeo.
- * 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:
- * Obeo - initial API and implementation
- * Emilien Perico - use extension point to define dynamically registered actions
- *******************************************************************************/
-package org.eclipse.papyrus.navigator.actions;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.emf.transaction.TransactionalEditingDomain;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.papyrus.infra.core.utils.EditorUtils;
-import org.eclipse.papyrus.navigator.factory.IActionHandlerFactory;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.navigator.CommonNavigator;
-import org.eclipse.ui.navigator.ICommonActionExtensionSite;
-
-/**
- * Provider used to create actions applicable on semantic elements
- *
- * @author <a href="mailto:jerome.benois@obeo.fr">Jerome Benois</a>
- * @author Emilien Perico - see extension point org.eclipse.papyrus.navigator.actionHandler to add
- * specific action
- */
-public class EditingDomainActionProvider extends AbstractSubmenuActionProvider {
-
- public static final String ACTION_HANDLER_EXTENSION_POINT_ID = "org.eclipse.papyrus.navigator.actionHandler";
-
- protected CommonNavigator activeViewPart;
-
- protected Map<IActionHandlerFactory, ActionProperties> actionsFactoriesMap;
-
- /**
- * {@inheritDoc}
- */
- @Override
- public void init(ICommonActionExtensionSite site) {
- super.init(site);
-
- this.activeViewPart = getCommonNavigator();
- this.actionsFactoriesMap = new HashMap<IActionHandlerFactory, ActionProperties>();
- TransactionalEditingDomain editingDomain = EditorUtils.getTransactionalEditingDomain();
-
- IConfigurationElement[] registry = Platform.getExtensionRegistry().getConfigurationElementsFor(ACTION_HANDLER_EXTENSION_POINT_ID);
- for(IConfigurationElement elt : registry) {
- try {
- final String actionId = elt.getAttribute("actionId");
- final String afterAction = elt.getAttribute("afterAction");
- boolean needSeparator = Boolean.valueOf(elt.getAttribute("needSeparator"));
- ActionProperties properties = new ActionProperties(actionId, afterAction, needSeparator);
-
- IActionHandlerFactory factory = (IActionHandlerFactory)elt.createExecutableExtension("actionHandler");
- // create registered actions
- factory.createActions(editingDomain);
-
- actionsFactoriesMap.put(factory, properties);
- } catch (CoreException exception) {
- exception.printStackTrace();
- }
- }
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public void fillActionBars(IActionBars actionBars) {
- super.fillActionBars(actionBars);
- for(IActionHandlerFactory factory : actionsFactoriesMap.keySet()) {
- factory.fillActionBars(actionBars);
- }
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public void fillContextMenu(IMenuManager menu) {
- update();
- // sort factories from "afterAction" property
- List<IActionHandlerFactory> sortedFactories = sortFactories(actionsFactoriesMap);
-
- // Add the edit menu actions
- for(IActionHandlerFactory factory : sortedFactories) {
- ActionProperties actionProperties = actionsFactoriesMap.get(factory);
- if(actionProperties != null && actionProperties.isNeedSeparator()) {
- menu.add(new Separator());
- }
- for(Action action : factory.getActions()) {
- menu.add(new ActionContributionItem(action));
- }
- }
- activate();
- }
-
- /**
- * Update actions
- */
- public void update() {
- ISelection selection = getCommonNavigator().getCommonViewer().getSelection();
- IStructuredSelection structuredSelection = StructuredSelection.EMPTY;
- if(selection instanceof IStructuredSelection) {
- structuredSelection = (IStructuredSelection)selection;
- }
-
- for(IActionHandlerFactory factory : actionsFactoriesMap.keySet()) {
- factory.update(structuredSelection);
- }
- }
-
- /**
- * Activate actions
- */
- public void activate() {
- for(IActionHandlerFactory factory : actionsFactoriesMap.keySet()) {
- factory.activate(activeViewPart);
- }
- update();
- }
-
- /**
- * Deactivate actions
- */
- // @unused
- public void deactivate() {
- for(IActionHandlerFactory factory : actionsFactoriesMap.keySet()) {
- factory.deactivate(activeViewPart);
- }
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public void updateActionBars() {
- super.updateActionBars();
- activate();
- update();
- }
-
- /**
- * Sort factories.
- *
- * @param actionsFactoriesMap
- * the actions factories map
- *
- * @return the sorted list of factories
- */
- private List<IActionHandlerFactory> sortFactories(final Map<IActionHandlerFactory, ActionProperties> actionsFactoriesMap) {
-
- List<IActionHandlerFactory> factories = new ArrayList<IActionHandlerFactory>(actionsFactoriesMap.keySet());
-
- Collections.sort(factories, new Comparator<IActionHandlerFactory>() {
-
- public int compare(IActionHandlerFactory factory1, IActionHandlerFactory factory2) {
-
- ActionProperties properties1 = getDefaultForNull(actionsFactoriesMap.get(factory1));
- ActionProperties properties2 = getDefaultForNull(actionsFactoriesMap.get(factory2));
- String after1 = properties1.getAfterAction();
- String after2 = properties2.getAfterAction();
-
- if(properties1.getActionId().equals(properties2.getActionId())) {
- return 0;
- } else if(properties1.getActionId().equals(after2)) {
- return -1;
- } else if(properties2.getActionId().equals(after1)) {
- return 1;
- } else if(after1 == null) {
- return -1;
- } else if(after2 == null) {
- return 1;
- }
- return 0;
- }
-
- private ActionProperties getDefaultForNull(ActionProperties actionProperties) {
- if(actionProperties == null) {
- actionProperties = new ActionProperties("", "", false);
- }
- return actionProperties;
- }
- });
-
- return factories;
- }
-
- /**
- * The Class ActionProperties to store properties for a registered action from extension point
- * org.eclipse.papyrus.navigator.actionHandler
- */
- private class ActionProperties {
-
- private final String actionId;
-
- private final String afterAction;
-
- private final boolean needSeparator;
-
- /**
- * @param actionId
- * @param afterAction
- * @param needSeparator
- */
- // @unused
- public ActionProperties(String actionId, String afterAction, boolean needSeparator) {
- super();
- this.actionId = actionId;
- this.afterAction = afterAction;
- this.needSeparator = needSeparator;
- }
-
- /**
- * @return the actionId
- */
- public String getActionId() {
- return actionId;
- }
-
- /**
- * @return the afterAction
- */
- public String getAfterAction() {
- return afterAction;
- }
-
- /**
- * @return the needSeparator
- */
- public boolean isNeedSeparator() {
- return needSeparator;
- }
-
- }
-
-}

Back to the top