svn commit: r15779 - trunk/src/argouml-app/src/org/argouml/uml/ui/UMLMultiplicityPanel.java

[email protected]
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
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);
+                }
 	    }
 	}
     }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.