Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'deprecated/org.eclipse.papyrus.navigator/src/org/eclipse/papyrus/navigator/actions/GenericTransformActionProvider.java')
-rw-r--r--deprecated/org.eclipse.papyrus.navigator/src/org/eclipse/papyrus/navigator/actions/GenericTransformActionProvider.java187
1 files changed, 0 insertions, 187 deletions
diff --git a/deprecated/org.eclipse.papyrus.navigator/src/org/eclipse/papyrus/navigator/actions/GenericTransformActionProvider.java b/deprecated/org.eclipse.papyrus.navigator/src/org/eclipse/papyrus/navigator/actions/GenericTransformActionProvider.java
deleted file mode 100644
index dab4b79a71f..00000000000
--- a/deprecated/org.eclipse.papyrus.navigator/src/org/eclipse/papyrus/navigator/actions/GenericTransformActionProvider.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/***************************************************
- * Copyright (c) 2010 Atos Origin.
-
- *
- * 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:
- * Atos Origin - Initial API and implementation
- *
- ****************************************************/
-package org.eclipse.papyrus.navigator.actions;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.converter.util.ConverterUtil;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EClassifier;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-
-/**
- * GenericTransformActionProvider class provides GenericTransformAction actions available for a given element.
- */
-public class GenericTransformActionProvider extends AbstractSubmenuActionProvider {
-
- /** Group label */
- private static final String TRANSFORM_INTO_LABEL = "Transform into";
-
- /** The factories of appropriate EClass */
- private Map<String, AdapterFactory> factories = new HashMap<String, AdapterFactory>();
-
- /** The appropriate EClass for element's transformation */
- private Set<EClassifier> eClassifiers = new HashSet<EClassifier>();
-
- /**
- * Adds all actions to transform an EObject
- */
- @Override
- public void fillContextMenu(IMenuManager menu) {
- super.fillContextMenu(menu);
- ISelection selection = getContext().getSelection();
- if(selection instanceof IStructuredSelection && ((IStructuredSelection)selection).size() == 1) {
- Object selectedElement = ((IStructuredSelection)selection).getFirstElement();
- if(selectedElement instanceof EObject) {
- fillEClassifiers((EObject)selectedElement);
- }
- }
-
- Collection<IAction> genericTransformActions = generateTransformActions(selection);
- MenuManager submenuManager = new MenuManager(TRANSFORM_INTO_LABEL);
- populateManager(submenuManager, genericTransformActions, null);
- menu.add(submenuManager);
- }
-
- /**
- * From an EObject we get the epackage corresponding to the resource extension of the file
- * and get the imported epackage correspondant
- *
- * @param selectionEObject
- */
- private void fillEClassifiers(EObject selectionEObject) {
- Resource r = selectionEObject.eResource();
- URI uri = r.getURI();
- String extension = uri.fileExtension();
- for(Object p : EPackage.Registry.INSTANCE.values()) {
- if(p instanceof EPackage) {
- EPackage pack = (EPackage)p;
- if(pack.getNsPrefix() != null && extension.toLowerCase().equals(pack.getNsPrefix().toLowerCase())) {
- addClassifiers(pack, eClassifiers);
- factories.put(pack.getNsURI(), GenericTransformer.getFactory(pack.getNsURI()));
- List<EPackage> packages = ConverterUtil.computeRequiredPackages(pack);
- for(EPackage pTmp : packages) {
- addClassifiers(pTmp, eClassifiers);
- factories.put(pTmp.getNsURI(), GenericTransformer.getFactory(pTmp.getNsURI()));
- }
- break;
- }
- }
- }
-
- }
-
- /**
- * Register all classifiers contained in the package
- *
- * @param pack
- * the package
- * @param result
- * results at which classifiers must be added
- */
- private void addClassifiers(EPackage pack, Set<EClassifier> result) {
- for(EClassifier c : pack.getEClassifiers()) {
- result.add(c);
- }
- }
-
- /**
- * Generate the sorted list of transformation actions.
- *
- * @param descriptors
- * the descriptors
- * @param selection
- * the selection
- *
- * @return the collection< i action>
- */
- protected Collection<IAction> generateTransformActions(ISelection selection) {
- List<IAction> transformActions = (List<IAction>)generateTransformActionsCore(selection);
-
- Collections.<IAction> sort(transformActions, new Comparator<IAction>() {
-
- public int compare(IAction a1, IAction a2) {
- return a1.getText().compareTo(a2.getText());
- }
- });
-
- return transformActions;
- }
-
- /**
- * Generate transformation actions.
- *
- * @param descriptors
- * the descriptors
- * @param selection
- * the selection
- *
- * @return the collection< i action>
- */
- protected Collection<IAction> generateTransformActionsCore(ISelection selection) {
- Collection<IAction> actions = new ArrayList<IAction>();
- if(eClassifiers != null) {
- for(EClassifier descriptor : eClassifiers) {
- Object selected = ((IStructuredSelection)selection).getFirstElement();
- if(selected instanceof EObject) {
- final EObject selectedElement = (EObject)selected;
- if(descriptor instanceof EClass && selectedElement.eContainingFeature() != null) {
- final EClass eclass = (EClass)descriptor;
- EStructuralFeature containingFeature = selectedElement.eContainingFeature();
- // to be candidate an eclass has to have a common parent, to not be the selection
- // and to not be abstract
- EClass containgType = (EClass)containingFeature.getEType();
- if((GenericTransformer.getAllSuperTypes(eclass).contains(containgType) || EcoreUtil.equals(eclass, containgType)) && !eclass.equals(selectedElement.eClass()) && !eclass.isAbstract()) {
- if(selection instanceof IStructuredSelection && ((IStructuredSelection)selection).size() == 1) {
-
- AdapterFactory adapterFactory = factories.get(eclass.getEPackage().getNsURI());
- Action transformAction = new GenericTransformAction(eclass, adapterFactory, selectedElement);
- actions.add(transformAction);
- if(adapterFactory != null) {
- EObject tmpEobject = eclass.getEPackage().getEFactoryInstance().create(eclass);
- IItemLabelProvider provider = (IItemLabelProvider)adapterFactory.adapt(tmpEobject, IItemLabelProvider.class);
- transformAction.setImageDescriptor(ExtendedImageRegistry.INSTANCE.getImageDescriptor(provider.getImage(tmpEobject)));
- }
- }
- }
- }
- }
- }
- }
- return actions;
- }
-
-}

Back to the top