Author: tfmorris
Date: 2008-09-24 07:38:38-0700
New Revision: 15779

Modified:
   trunk/src/argouml-app/src/org/argouml/uml/ui/UMLMultiplicityPanel.java

Log:
RESOLVED - task 5406: If multiplicity is unspecified then checking box does not 
enable 
http://argouml.tigris.org/issues/show_bug.cgi?id=5406

Modified: trunk/src/argouml-app/src/org/argouml/uml/ui/UMLMultiplicityPanel.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/ui/UMLMultiplicityPanel.java?view=diff&rev=15779&p1=trunk/src/argouml-app/src/org/argouml/uml/ui/UMLMultiplicityPanel.java&p2=trunk/src/argouml-app/src/org/argouml/uml/ui/UMLMultiplicityPanel.java&r1=15778&r2=15779
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/ui/UMLMultiplicityPanel.java      
(original)
+++ trunk/src/argouml-app/src/org/argouml/uml/ui/UMLMultiplicityPanel.java      
2008-09-24 07:38:38-0700
@@ -294,28 +294,35 @@
        public void itemStateChanged(ItemEvent e) {
            Object target = getTarget();
            Object oldValue = Model.getFacade().getMultiplicity(target);
+           // Note: MultiplicityComboBox.targetSet() can cause this event
+           // as well as user actions, so be sure to consider this in 
+           // changing the following logic 
            if (e.getStateChange() == ItemEvent.SELECTED) {
-               String comboText =
-                   (String) multiplicityComboBox.getSelectedItem();
-               if (comboText.equals(Model.getFacade().toString(oldValue))) {
-                   return;
-               }
-                Object multi =
-                    Model.getDataTypesFactory().createMultiplicity(comboText);
-               if (multi == null) {
-                    Model.getCoreHelper().setMultiplicity(target, "1");
-               } else {
-                    Model.getCoreHelper().setMultiplicity(target, multi);
-               }
+                String comboText = 
+                    (String) multiplicityComboBox.getSelectedItem();
+                if (oldValue == null
+                        || !comboText.equals(Model.getFacade().toString(
+                                oldValue))) {
+                    Object multi = Model.getDataTypesFactory()
+                            .createMultiplicity(comboText);
+                    if (multi == null) {
+                        Model.getCoreHelper().setMultiplicity(target, "1");
+                    } else {
+                        Model.getCoreHelper().setMultiplicity(target, multi);
+                    }
+                    if (oldValue != null) {
+                        Model.getUmlFactory().delete(oldValue);
+                    }
+                }
                multiplicityComboBox.setEnabled(true);
                multiplicityComboBox.setEditable(true);
            } else {
                multiplicityComboBox.setEnabled(false);
                multiplicityComboBox.setEditable(false);
                 Model.getCoreHelper().setMultiplicity(target, null);
-           }
-           if (oldValue != null) {
-               Model.getUmlFactory().delete(oldValue);
+                if (oldValue != null) {
+                    Model.getUmlFactory().delete(oldValue);
+                }
            }
        }
     }

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to