Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/uml/tools/org.eclipse.papyrus.uml.tools/src/org/eclipse/papyrus/uml/tools/databinding/UnsettableStringValue.java')
-rw-r--r--plugins/uml/tools/org.eclipse.papyrus.uml.tools/src/org/eclipse/papyrus/uml/tools/databinding/UnsettableStringValue.java19
1 files changed, 15 insertions, 4 deletions
diff --git a/plugins/uml/tools/org.eclipse.papyrus.uml.tools/src/org/eclipse/papyrus/uml/tools/databinding/UnsettableStringValue.java b/plugins/uml/tools/org.eclipse.papyrus.uml.tools/src/org/eclipse/papyrus/uml/tools/databinding/UnsettableStringValue.java
index 4322ea03baf..2127c82d256 100644
--- a/plugins/uml/tools/org.eclipse.papyrus.uml.tools/src/org/eclipse/papyrus/uml/tools/databinding/UnsettableStringValue.java
+++ b/plugins/uml/tools/org.eclipse.papyrus.uml.tools/src/org/eclipse/papyrus/uml/tools/databinding/UnsettableStringValue.java
@@ -8,6 +8,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Gabriel Pascual (ALL4TEC) gabriel.pascual@all4tec.net - bug 447698
*
*****************************************************************************/
@@ -37,12 +38,22 @@ public class UnsettableStringValue extends PapyrusObservableValue {
super(realm, eObject, eStructuralFeature, domain);
}
+
@Override
protected IEditCommandRequest createSetRequest(TransactionalEditingDomain domain, EObject owner, EStructuralFeature feature, Object value) {
- if ("".equals(value) && (feature.getDefaultValue() == null)) { //$NON-NLS-1$
- // Unset the string attribute instead of making it an empty string
- return new UnsetRequest(owner, feature);
+
+ // Bug 447698 : It doesn't necessary to create UnsetRequest if the value is already null
+ if ("".equals(value)) {//$NON-NLS-1$
+
+ if ((feature.getDefaultValue() == null) && owner.eGet(eStructuralFeature) != null) {
+ // Unset the string attribute instead of making it an empty string
+ return new UnsetRequest(owner, feature);
+ }
+
+ } else {
+ return super.createSetRequest(domain, owner, feature, value);
}
- return super.createSetRequest(domain, owner, feature, value);
+
+ return null;
}
}

Back to the top