diff options
Diffstat (limited to 'extraplugins/umlrt/org.eclipse.papyrus.umlrt.properties/src/org/eclipse/papyrus/umlrt/properties/modelelement/UMLRTExtModelElementFactory.java')
-rw-r--r-- | extraplugins/umlrt/org.eclipse.papyrus.umlrt.properties/src/org/eclipse/papyrus/umlrt/properties/modelelement/UMLRTExtModelElementFactory.java | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/extraplugins/umlrt/org.eclipse.papyrus.umlrt.properties/src/org/eclipse/papyrus/umlrt/properties/modelelement/UMLRTExtModelElementFactory.java b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.properties/src/org/eclipse/papyrus/umlrt/properties/modelelement/UMLRTExtModelElementFactory.java new file mode 100644 index 00000000000..05c6e340446 --- /dev/null +++ b/extraplugins/umlrt/org.eclipse.papyrus.umlrt.properties/src/org/eclipse/papyrus/umlrt/properties/modelelement/UMLRTExtModelElementFactory.java @@ -0,0 +1,28 @@ +package org.eclipse.papyrus.umlrt.properties.modelelement; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.papyrus.infra.emf.utils.EMFHelper; +import org.eclipse.papyrus.uml.properties.modelelement.UMLModelElement; +import org.eclipse.papyrus.uml.properties.modelelement.UMLModelElementFactory; +import org.eclipse.papyrus.umlrt.properties.Activator; +import org.eclipse.papyrus.views.properties.contexts.DataContextElement; +import org.eclipse.uml2.uml.Collaboration; + +public class UMLRTExtModelElementFactory extends UMLModelElementFactory { + + @Override + protected UMLModelElement doCreateFromSource(Object sourceElement, DataContextElement context) { + EObject source = EMFHelper.getEObject(sourceElement); + if (source == null) { + Activator.log.warn("Unable to resolve the selected element to an EObject"); //$NON-NLS-1$ + return null; + } + if (source instanceof Collaboration) { + return new UMLRTExtModelElement(source); + } + else { + return super.doCreateFromSource(sourceElement, context); + } + } + +} |