Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcletavernie2011-09-22 09:01:46 +0000
committercletavernie2011-09-22 09:01:46 +0000
commit4893ed82e009b37c1df4db9eff1b737ab2cae667 (patch)
treefdf684af5a69329673f7038a2d143bbbaacf463f
parent063f9ab1d0ac43ec2f618fafe5a75412486d4c9b (diff)
downloadorg.eclipse.papyrus-4893ed82e009b37c1df4db9eff1b737ab2cae667.tar.gz
org.eclipse.papyrus-4893ed82e009b37c1df4db9eff1b737ab2cae667.tar.xz
org.eclipse.papyrus-4893ed82e009b37c1df4db9eff1b737ab2cae667.zip
358077: [Property View - UML] The UML property view should be improved for usability concerns
https://bugs.eclipse.org/bugs/show_bug.cgi?id=358077
-rw-r--r--plugins/uml/org.eclipse.papyrus.properties.uml/Model/UML/ui/MultipleExtensionEnd.xwt3
-rw-r--r--plugins/uml/org.eclipse.papyrus.properties.uml/Model/UML/ui/SingleExtensionEnd.xwt4
-rw-r--r--plugins/uml/org.eclipse.papyrus.properties.uml/src/org/eclipse/papyrus/properties/uml/databinding/ExtensionEndMultiplicityObservableValue.java28
-rw-r--r--plugins/uml/org.eclipse.papyrus.properties.uml/src/org/eclipse/papyrus/properties/uml/modelelement/MemberEndModelElement.java8
4 files changed, 40 insertions, 3 deletions
diff --git a/plugins/uml/org.eclipse.papyrus.properties.uml/Model/UML/ui/MultipleExtensionEnd.xwt b/plugins/uml/org.eclipse.papyrus.properties.uml/Model/UML/ui/MultipleExtensionEnd.xwt
index 0429eb93f5e..d3c1f7df109 100644
--- a/plugins/uml/org.eclipse.papyrus.properties.uml/Model/UML/ui/MultipleExtensionEnd.xwt
+++ b/plugins/uml/org.eclipse.papyrus.properties.uml/Model/UML/ui/MultipleExtensionEnd.xwt
@@ -25,7 +25,8 @@
<Composite.layout>
<ppel:PropertiesLayout numColumns="2"></ppel:PropertiesLayout>
</Composite.layout>
- <ppe:BooleanRadio input="{Binding}" property="UML:Property:aggregation"></ppe:BooleanRadio>
+ <ppe:EnumCombo input="{Binding}" property="Multiplicity:multiplicity"></ppe:EnumCombo>
+ <ppe:EnumCombo input="{Binding}" property="UML:Property:aggregation" readOnly="true"></ppe:EnumCombo>
<ppe:EnumCombo input="{Binding}" property="UML:NamedElement:visibility"></ppe:EnumCombo>
</Composite>
</Composite> \ No newline at end of file
diff --git a/plugins/uml/org.eclipse.papyrus.properties.uml/Model/UML/ui/SingleExtensionEnd.xwt b/plugins/uml/org.eclipse.papyrus.properties.uml/Model/UML/ui/SingleExtensionEnd.xwt
index 7c6afd4ec9a..33866d80dea 100644
--- a/plugins/uml/org.eclipse.papyrus.properties.uml/Model/UML/ui/SingleExtensionEnd.xwt
+++ b/plugins/uml/org.eclipse.papyrus.properties.uml/Model/UML/ui/SingleExtensionEnd.xwt
@@ -33,7 +33,7 @@
<Composite.layout>
<ppel:PropertiesLayout numColumns="2"></ppel:PropertiesLayout>
</Composite.layout>
- <ppe:BooleanRadio input="{Binding}" property="UML:Property:aggregation"></ppe:BooleanRadio>
+ <ppe:EnumCombo input="{Binding}" property="UML:Property:aggregation" readOnly="true"></ppe:EnumCombo>
<ppe:EnumCombo input="{Binding}" property="UML:NamedElement:visibility"></ppe:EnumCombo>
</Composite>
<Composite>
@@ -42,7 +42,7 @@
</Composite.layout>
<ppe:ReferenceDialog input="{Binding}"
property="UML:Property:defaultValue"></ppe:ReferenceDialog>
- <ppe:StringCombo input="{Binding}" property="Multiplicity:multiplicity"></ppe:StringCombo>
+ <ppe:EnumCombo input="{Binding}" property="Multiplicity:multiplicity"></ppe:EnumCombo>
<ppe:ReferenceDialog input="{Binding}" property="UML:TypedElement:type"></ppe:ReferenceDialog>
</Composite>
<Composite>
diff --git a/plugins/uml/org.eclipse.papyrus.properties.uml/src/org/eclipse/papyrus/properties/uml/databinding/ExtensionEndMultiplicityObservableValue.java b/plugins/uml/org.eclipse.papyrus.properties.uml/src/org/eclipse/papyrus/properties/uml/databinding/ExtensionEndMultiplicityObservableValue.java
new file mode 100644
index 00000000000..548c0707e00
--- /dev/null
+++ b/plugins/uml/org.eclipse.papyrus.properties.uml/src/org/eclipse/papyrus/properties/uml/databinding/ExtensionEndMultiplicityObservableValue.java
@@ -0,0 +1,28 @@
+package org.eclipse.papyrus.properties.uml.databinding;
+
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.command.UnexecutableCommand;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.uml2.uml.ExtensionEnd;
+
+/**
+ * An IObservableValue for handling the UML ExtensionEnd#multiplicity
+ * The multiplicity can only be either 1 or 0..1
+ *
+ * @author Camille Letavernier
+ *
+ */
+public class ExtensionEndMultiplicityObservableValue extends MultiplicityObservableValue {
+
+ public ExtensionEndMultiplicityObservableValue(ExtensionEnd source, EditingDomain domain) {
+ super(source, domain);
+ }
+
+ @Override
+ public Command getCommand(Object value) {
+ if(value == ONE || value == OPTIONAL) {
+ return super.getCommand(value);
+ }
+ return UnexecutableCommand.INSTANCE;
+ }
+}
diff --git a/plugins/uml/org.eclipse.papyrus.properties.uml/src/org/eclipse/papyrus/properties/uml/modelelement/MemberEndModelElement.java b/plugins/uml/org.eclipse.papyrus.properties.uml/src/org/eclipse/papyrus/properties/uml/modelelement/MemberEndModelElement.java
index 710f5c0119d..874a11c0a41 100644
--- a/plugins/uml/org.eclipse.papyrus.properties.uml/src/org/eclipse/papyrus/properties/uml/modelelement/MemberEndModelElement.java
+++ b/plugins/uml/org.eclipse.papyrus.properties.uml/src/org/eclipse/papyrus/properties/uml/modelelement/MemberEndModelElement.java
@@ -25,11 +25,13 @@ import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.edit.domain.EditingDomain;
import org.eclipse.papyrus.properties.modelelement.AbstractModelElement;
import org.eclipse.papyrus.properties.uml.Activator;
+import org.eclipse.papyrus.properties.uml.databinding.ExtensionEndMultiplicityObservableValue;
import org.eclipse.papyrus.properties.uml.databinding.MultiplicityObservableValue;
import org.eclipse.papyrus.properties.uml.databinding.NavigationObservableValue;
import org.eclipse.papyrus.properties.uml.databinding.OwnerObservableValue;
import org.eclipse.papyrus.widgets.providers.IStaticContentProvider;
import org.eclipse.papyrus.widgets.providers.StaticContentProvider;
+import org.eclipse.uml2.uml.ExtensionEnd;
import org.eclipse.uml2.uml.Property;
import org.eclipse.uml2.uml.UMLPackage;
@@ -76,6 +78,9 @@ public class MemberEndModelElement extends AbstractModelElement {
@Override
public IObservable doGetObservable(String propertyPath) {
if(propertyPath.equals(MULTIPLICITY)) {
+ if(source instanceof ExtensionEnd) {
+ return new ExtensionEndMultiplicityObservableValue((ExtensionEnd)source, domain);
+ }
return new MultiplicityObservableValue(source, domain);
} else if(propertyPath.equals(OWNER)) {
return new OwnerObservableValue(source, domain);
@@ -89,6 +94,9 @@ public class MemberEndModelElement extends AbstractModelElement {
@Override
public IStaticContentProvider getContentProvider(String propertyPath) {
if(propertyPath.equals(MULTIPLICITY)) {
+ if(source instanceof ExtensionEnd) {
+ return new StaticContentProvider(new String[]{ ONE, OPTIONAL });
+ }
return new StaticContentProvider(new String[]{ ANY, ONE_OR_MORE, OPTIONAL, ONE });
} else if(propertyPath.equals(OWNER)) {
return new StaticContentProvider(new String[]{ ASSOCIATION, CLASSIFIER });

Back to the top