Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVincent Lorenzo2019-09-23 14:34:16 +0000
committervincent lorenzo2019-09-26 09:06:55 +0000
commitf9daafd1f1bc44125a3c0c1ee12f51d0eb427f8f (patch)
tree6b574a5f62a9b7a10907b302d9628ac55053c5df /plugins/uml/properties
parent1e453e8c68c3f8854290bca4193ec95aaae4799e (diff)
downloadorg.eclipse.papyrus-f9daafd1f1bc44125a3c0c1ee12f51d0eb427f8f.tar.gz
org.eclipse.papyrus-f9daafd1f1bc44125a3c0c1ee12f51d0eb427f8f.tar.xz
org.eclipse.papyrus-f9daafd1f1bc44125a3c0c1ee12f51d0eb427f8f.zip
Bug 551377: [PropertyView] The class StereotypeModelElement must return ObservableValue dedicated to Stereotype Property edition
Change-Id: I00e3b2b5b0cbd9cbb591c572c6d2d1ac79120358 Signed-off-by: Vincent Lorenzo <vincent.lorenzo@cea.fr>
Diffstat (limited to 'plugins/uml/properties')
-rw-r--r--plugins/uml/properties/org.eclipse.papyrus.uml.properties/META-INF/MANIFEST.MF2
-rw-r--r--plugins/uml/properties/org.eclipse.papyrus.uml.properties/pom.xml2
-rw-r--r--plugins/uml/properties/org.eclipse.papyrus.uml.properties/src/org/eclipse/papyrus/uml/properties/modelelement/StereotypeModelElement.java22
3 files changed, 17 insertions, 9 deletions
diff --git a/plugins/uml/properties/org.eclipse.papyrus.uml.properties/META-INF/MANIFEST.MF b/plugins/uml/properties/org.eclipse.papyrus.uml.properties/META-INF/MANIFEST.MF
index 5135caf81cc..2d5bfdf62c0 100644
--- a/plugins/uml/properties/org.eclipse.papyrus.uml.properties/META-INF/MANIFEST.MF
+++ b/plugins/uml/properties/org.eclipse.papyrus.uml.properties/META-INF/MANIFEST.MF
@@ -41,7 +41,7 @@ Require-Bundle: org.eclipse.papyrus.uml.profile;bundle-version="[3.0.0,4.0.0)";v
org.eclipse.papyrus.uml.types.core;bundle-version="[4.0.0,5.0.0)"
Bundle-Vendor: %providerName
Bundle-ActivationPolicy: lazy;exclude:="org.eclipse.papyrus.uml.properties.constraints"
-Bundle-Version: 3.4.0.qualifier
+Bundle-Version: 3.4.100.qualifier
Bundle-Name: %pluginName
Bundle-Localization: plugin
Bundle-Activator: org.eclipse.papyrus.uml.properties.Activator
diff --git a/plugins/uml/properties/org.eclipse.papyrus.uml.properties/pom.xml b/plugins/uml/properties/org.eclipse.papyrus.uml.properties/pom.xml
index 5f7e46e4ce1..fae7a8f754d 100644
--- a/plugins/uml/properties/org.eclipse.papyrus.uml.properties/pom.xml
+++ b/plugins/uml/properties/org.eclipse.papyrus.uml.properties/pom.xml
@@ -8,6 +8,6 @@
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>org.eclipse.papyrus.uml.properties</artifactId>
- <version>3.4.0-SNAPSHOT</version>
+ <version>3.4.100-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project> \ No newline at end of file
diff --git a/plugins/uml/properties/org.eclipse.papyrus.uml.properties/src/org/eclipse/papyrus/uml/properties/modelelement/StereotypeModelElement.java b/plugins/uml/properties/org.eclipse.papyrus.uml.properties/src/org/eclipse/papyrus/uml/properties/modelelement/StereotypeModelElement.java
index 2ee44a1ca7f..921666e7256 100644
--- a/plugins/uml/properties/org.eclipse.papyrus.uml.properties/src/org/eclipse/papyrus/uml/properties/modelelement/StereotypeModelElement.java
+++ b/plugins/uml/properties/org.eclipse.papyrus.uml.properties/src/org/eclipse/papyrus/uml/properties/modelelement/StereotypeModelElement.java
@@ -12,13 +12,14 @@
* Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
* Nicolas FAUVERGUE (ALL4TEC) nicolas.fauvergue@all4tec.net - bug 453445, 515650
* Fanch BONNABESSE (ALL4TEC) fanch.bonnabesse@all4tec.net - Bug 502533
- *
+ * Vincent LORENZO (CEA LIST) vincent.lorenzo@cea.fr - Bug 551377
*****************************************************************************/
package org.eclipse.papyrus.uml.properties.modelelement;
+import java.util.List;
+
import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.emf.databinding.EMFProperties;
import org.eclipse.emf.databinding.FeaturePath;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EClassifier;
@@ -29,20 +30,21 @@ import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.edit.domain.EditingDomain;
import org.eclipse.papyrus.infra.emf.gmf.command.GMFtoEMFCommandWrapper;
-import org.eclipse.papyrus.infra.gmfdiag.common.databinding.GMFObservableList;
-import org.eclipse.papyrus.infra.gmfdiag.common.databinding.GMFObservableValue;
import org.eclipse.papyrus.infra.properties.ui.modelelement.EMFModelElement;
import org.eclipse.papyrus.infra.properties.ui.modelelement.EObjectStructuredValueFactory;
import org.eclipse.papyrus.infra.properties.ui.modelelement.ILabeledModelElement;
import org.eclipse.papyrus.infra.widgets.creation.ReferenceValueFactory;
import org.eclipse.papyrus.infra.widgets.providers.IStaticContentProvider;
import org.eclipse.papyrus.uml.properties.Activator;
+import org.eclipse.papyrus.uml.properties.databinding.StereotypePropertyObservableList;
+import org.eclipse.papyrus.uml.properties.databinding.StereotypePropertyObservableValue;
import org.eclipse.papyrus.uml.properties.datatype.DataTypeProvider;
import org.eclipse.papyrus.uml.properties.datatype.StructuredDataTypeObservableValue;
import org.eclipse.papyrus.uml.tools.providers.UMLContentProvider;
import org.eclipse.papyrus.uml.tools.utils.DataTypeUtil;
import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
import org.eclipse.uml2.common.util.UML2Util;
+import org.eclipse.uml2.uml.Element;
import org.eclipse.uml2.uml.NamedElement;
import org.eclipse.uml2.uml.Stereotype;
@@ -89,6 +91,7 @@ public class StereotypeModelElement extends EMFModelElement implements ILabeledM
if (feature.getUpperBound() == 1) {
// Single-valued DataType
if (DataTypeProvider.instance.canHandle((EDataType) feature.getEType())) {
+ // TODO : shall we create an observable to manage SetStereotypeValueRequest ?
return new StructuredDataTypeObservableValue(source, feature, domain, (EDataType) feature.getEType());
}
// TODO : Multi-valued DataTypes
@@ -97,16 +100,21 @@ public class StereotypeModelElement extends EMFModelElement implements ILabeledM
if (feature.getEType() instanceof EClass) {
if (DataTypeUtil.isDataTypeDefinition((EClass) feature.getEType(), getSource(featurePath))) {
+ // TODO : shall we create an observable to manage SetStereotypeValueRequest ?
return new org.eclipse.papyrus.infra.services.edit.ui.databinding.PapyrusObservableValue(getSource(featurePath), feature, domain, GMFtoEMFCommandWrapper::wrap);
}
}
+ final Element baseElement = org.eclipse.uml2.uml.util.UMLUtil.getBaseElement(source);
+
if (feature.getUpperBound() != 1) {
- return new GMFObservableList(EMFProperties.list(featurePath).observe(source), domain, getSource(featurePath), feature);
+ List<?> wrappedList = (List<?>) source.eGet(feature);
+ // this observable uses the SetStereotypeValueRequest
+ return new StereotypePropertyObservableList(wrappedList, domain, baseElement, feature, stereotype);
}
-
- return new GMFObservableValue(getSource(featurePath), feature, domain);
+ // this observable uses the SetStereotypeValueRequest
+ return new StereotypePropertyObservableValue(baseElement, feature, domain, stereotype);
}
/**

Back to the top