diff options
author | Christian W. Damus | 2014-05-20 20:04:48 +0000 |
---|---|---|
committer | Christian W. Damus | 2014-05-20 20:05:31 +0000 |
commit | de43b0af28f5aecf1ed161f090a1594437b2bb00 (patch) | |
tree | 156ccc39694843f9c627e763e017650c16f9bb8d /extraplugins | |
parent | a2127999aa76c92fcf5b6e3794e9f9f3ab13c426 (diff) | |
download | org.eclipse.papyrus-de43b0af28f5aecf1ed161f090a1594437b2bb00.tar.gz org.eclipse.papyrus-de43b0af28f5aecf1ed161f090a1594437b2bb00.tar.xz org.eclipse.papyrus-de43b0af28f5aecf1ed161f090a1594437b2bb00.zip |
386118: [EMF Facet] Papyrus should progressively support EMF Facet 0.2
https://bugs.eclipse.org/bugs/show_bug.cgi?id=386118
Adapt to latest changes in EMF Facet tree model API.
Diffstat (limited to 'extraplugins')
-rw-r--r-- | extraplugins/cdo/org.eclipse.papyrus.cdo.ui/src/org/eclipse/papyrus/cdo/internal/ui/adapters/CDOAdapterFactory.java | 47 |
1 files changed, 25 insertions, 22 deletions
diff --git a/extraplugins/cdo/org.eclipse.papyrus.cdo.ui/src/org/eclipse/papyrus/cdo/internal/ui/adapters/CDOAdapterFactory.java b/extraplugins/cdo/org.eclipse.papyrus.cdo.ui/src/org/eclipse/papyrus/cdo/internal/ui/adapters/CDOAdapterFactory.java index 37f8b0c6f76..02ba2529203 100644 --- a/extraplugins/cdo/org.eclipse.papyrus.cdo.ui/src/org/eclipse/papyrus/cdo/internal/ui/adapters/CDOAdapterFactory.java +++ b/extraplugins/cdo/org.eclipse.papyrus.cdo.ui/src/org/eclipse/papyrus/cdo/internal/ui/adapters/CDOAdapterFactory.java @@ -20,46 +20,49 @@ import org.eclipse.emf.cdo.CDOObject; import org.eclipse.emf.ecore.EObject; import org.eclipse.gef.EditPart; import org.eclipse.papyrus.cdo.internal.core.CDOUtils; -import org.eclipse.papyrus.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EObjectTreeElement; /** * This is the CDOAdapterFactory type. Enjoy. */ -@SuppressWarnings("rawtypes") public class CDOAdapterFactory implements IAdapterFactory { - private final Class[] supported = { CDOObject.class }; + private final Class<?>[] supported = { CDOObject.class }; public CDOAdapterFactory() { super(); } @Override - public Object getAdapter(Object adaptableObject, Class adapterType) { - EObject eObject = null; - if(adaptableObject instanceof EditPart) { - // notation views are important as CDOObjects for locking and - // conflict purposes, so do not defer to the semantic element - eObject = (EObject)((EditPart)adaptableObject).getModel(); - } else if(adaptableObject instanceof EObjectTreeElement) { - eObject = ((EObjectTreeElement)adaptableObject).getEObject(); - } else if(adaptableObject instanceof EObject) { - eObject = (EObject)adaptableObject; - } else { - // try really hard to get an EObject - if(adaptableObject instanceof IAdaptable) { - eObject = (EObject)((IAdaptable)adaptableObject).getAdapter(EObject.class); - } - if(eObject == null) { - eObject = (EObject)Platform.getAdapterManager().getAdapter(adaptableObject, EObject.class); + public Object getAdapter(Object adaptableObject, @SuppressWarnings("rawtypes") Class adapterType) { + Object result = null; + + if(adapterType == CDOObject.class) { + EObject eObject = null; + if(adaptableObject instanceof EditPart) { + // notation views are important as CDOObjects for locking and + // conflict purposes, so do not defer to the semantic element + eObject = (EObject)((EditPart)adaptableObject).getModel(); + } else if(adaptableObject instanceof EObject) { + eObject = (EObject)adaptableObject; + } else { + // try really hard to get an EObject + if(adaptableObject instanceof IAdaptable) { + eObject = (EObject)((IAdaptable)adaptableObject).getAdapter(EObject.class); + } + if(eObject == null) { + eObject = (EObject)Platform.getAdapterManager().getAdapter(adaptableObject, EObject.class); + } } + + // get the CDOObject from the EObject (if possible) + result = CDOUtils.getCDOObject(eObject); } - // get the CDOObject from the EObject (if possible) - return CDOUtils.getCDOObject(eObject); + return result; } @Override + @SuppressWarnings("rawtypes") public Class[] getAdapterList() { return supported; } |