Author: bobtarling Date: 2010-05-18 13:36:01-0700 New Revision: 18398 Removed: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLCallEventOperationComboBox.java Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/SwingUIFactory.java trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLCallEventOperationComboBoxModel.java
Log: Further changes required for issue 6086. It seems that when selecting a new operation for a call event were were only chnaging the GUI but not actually changing anything in the model. Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/SwingUIFactory.java Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/SwingUIFactory.java?view=diff&pathrev=18398&r1=18397&r2=18398 ============================================================================== --- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/SwingUIFactory.java (original) +++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/SwingUIFactory.java 2010-05-18 13:36:01-0700 @@ -67,7 +67,7 @@ */ class SwingUIFactory { - private static final Logger LOG = Logger.getLogger(SwingUIFactory.class); + private static final Logger LOG = Logger.getLogger(SwingUIFactory.class); public SwingUIFactory() { @@ -417,18 +417,18 @@ if (Model.getFacade().isACallEvent(target)) { UMLComboBoxModel model = new UMLCallEventOperationComboBoxModel(propertyName, target); - UMLComboBox combo = new UMLCallEventOperationComboBox(model); + UMLComboBox combo = new UMLComboBox(model); comp = new UMLComboBoxNavigator(Translator.localize( "label.operation.navigate.tooltip"), combo); } else { final UMLComboBoxModel model = new UMLCallActionOperationComboBoxModel(propertyName, target); - UMLComboBox operationComboBox = + UMLComboBox combo = new UMLComboBox(model); - comp = new UMLComboBoxNavigator( - Translator.localize("label.operation.navigate.tooltip"), - operationComboBox); + comp = new UMLComboBoxNavigator(Translator.localize( + "label.operation.navigate.tooltip"), + combo); } } else if ("representedClassifier".equals(prop.getName())) { final UMLComboBoxModel model = Removed: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLCallEventOperationComboBox.java Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLCallEventOperationComboBox.java?view=markup&pathrev=18397 Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLCallEventOperationComboBoxModel.java Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLCallEventOperationComboBoxModel.java?view=diff&pathrev=18398&r1=18397&r2=18398 ============================================================================== --- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLCallEventOperationComboBoxModel.java (original) +++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLCallEventOperationComboBoxModel.java 2010-05-18 13:36:01-0700 @@ -38,12 +38,14 @@ package org.argouml.core.propertypanels.ui; +import java.awt.event.ActionEvent; import java.util.ArrayList; import java.util.Collection; import javax.swing.Action; import org.argouml.model.Model; +import org.argouml.ui.UndoableAction; class UMLCallEventOperationComboBoxModel extends UMLComboBoxModel { @@ -117,6 +119,35 @@ } public Action getAction() { - return null; + return new SetAction(); } + + private class SetAction extends UndoableAction { + + /** + * The constructor. + */ + public SetAction() { + super(""); + } + + /* + * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent) + */ + public void actionPerformed(ActionEvent e) { + super.actionPerformed(e); + final Object source = e.getSource(); + if (source instanceof UMLComboBox) { + final Object selected = ((UMLComboBox) source).getSelectedItem(); + final Object target = ((UMLComboBox) source).getTarget(); + if (Model.getFacade().isACallEvent(target) + && Model.getFacade().isAOperation(selected)) { + if (Model.getFacade().getOperation(target) != selected) { + Model.getCommonBehaviorHelper().setOperation( + target, selected); + } + } + } + } + } } ------------------------------------------------------ http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2610527 To unsubscribe from this discussion, e-mail: [[email protected]].
