diff options
author | Vincent Lorenzo | 2019-09-23 14:34:16 +0000 |
---|---|---|
committer | vincent lorenzo | 2019-09-26 09:06:55 +0000 |
commit | f9daafd1f1bc44125a3c0c1ee12f51d0eb427f8f (patch) | |
tree | 6b574a5f62a9b7a10907b302d9628ac55053c5df /plugins/uml/properties | |
parent | 1e453e8c68c3f8854290bca4193ec95aaae4799e (diff) | |
download | org.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')
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); } /** |