Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
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.java28
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);
+ }
+ }
+
+}

Back to the top