svn commit: r17668 - trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui

Bob Tarling <[email protected]>
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
Author: bobtarling
Date: 2009-12-18 10:01:01-0800
New Revision: 17668

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/UMLAssociationEndTypeComboBoxModel.java
   trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLAssociationRoleBaseComboBoxModel.java
   trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLCallActionOperationComboBox.java
   trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLCallActionOperationComboBoxModel.java
   trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLCallEventOperationComboBoxModel.java
   trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLCollaborationRepresentedClassifierComboBoxModel.java
   trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLCollaborationRepresentedOperationComboBoxModel.java
   trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLComboBox.java
   trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLComboBoxModel.java
   trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLGeneralizationPowertypeComboBoxModel.java
   trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLLinkAssociationComboBoxModel.java
   trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLMessageActivatorComboBox.java
   trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLMessageActivatorComboBoxModel.java
   trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLMetaClassComboBoxModel.java
   trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLModelElementNamespaceComboBoxModel.java
   trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLStateMachineContextComboBoxModel.java
   trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLStructuralFeatureTypeComboBoxModel.java
   trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLStubStateComboBoxModel.java
   trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLSubmachineStateComboBoxModel.java
   trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLTemplateParameterDefaultElementComboBoxModel.java
   trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLTemplateParameterParameterComboBoxModel.java

Log:
Change the model when the combo selection is changed

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=17668&r1=17667&r2=17668
==============================================================================
--- 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	2009-12-18 10:01:01-0800
@@ -42,14 +42,7 @@
 import org.argouml.uml.ui.UMLDerivedCheckBox;
 import org.argouml.uml.ui.UMLRadioButtonPanel;
 import org.argouml.uml.ui.behavior.activity_graphs.UMLActionSynchCheckBox;
-import org.argouml.uml.ui.behavior.collaborations.ActionSetAssociationRoleBase;
 import org.argouml.uml.ui.behavior.common_behavior.UMLActionAsynchronousCheckBox;
-import org.argouml.uml.ui.behavior.state_machines.ActionSetContextStateMachine;
-import org.argouml.uml.ui.behavior.state_machines.ActionSetStubStateReferenceState;
-import org.argouml.uml.ui.behavior.state_machines.ActionSetSubmachineStateSubmachine;
-import org.argouml.uml.ui.foundation.core.ActionSetAssociationEndType;
-import org.argouml.uml.ui.foundation.core.ActionSetGeneralizationPowertype;
-import org.argouml.uml.ui.foundation.core.ActionSetModelElementNamespace;
 import org.argouml.uml.ui.foundation.core.UMLAssociationEndAggregationRadioButtonPanel;
 import org.argouml.uml.ui.foundation.core.UMLAssociationEndChangeabilityRadioButtonPanel;
 import org.argouml.uml.ui.foundation.core.UMLAssociationEndNavigableCheckBox;
@@ -65,7 +58,6 @@
 import org.argouml.uml.ui.foundation.core.UMLOperationConcurrencyRadioButtonPanel;
 import org.argouml.uml.ui.foundation.core.UMLParameterDirectionKindRadioButtonPanel;
 import org.argouml.uml.ui.foundation.core.UMLStructuralFeatureChangeabilityRadioButtonPanel;
-import org.argouml.uml.ui.foundation.extension_mechanisms.ActionSetTagDefinitionType;
 import org.tigris.swidgets.GridLayout2;
 
 /**
@@ -350,7 +342,7 @@
                 new UMLModelElementNamespaceComboBoxModel(propertyName, target);
             final JComboBox combo = new UMLSearchableComboBox(
                     model,
-                    new ActionSetModelElementNamespace(), true);            
+                    model.getAction(), true);            
             comp = new UMLComboBoxNavigator(
                     Translator.localize(
                     "label.namespace.navigate.tooltip"),
@@ -366,19 +358,14 @@
                         propertyName,
                         target);
             }
-            final JComboBox combo = new UMLComboBox(
-                    model,
-                    // TODO: The action is different for
-                    // attributes and parameters. Issue #5222
-                    new ActionSetStructuralFeatureType());
-            comp = combo;
+            comp = new UMLComboBox(model, model.getAction());
         } else if ("base".equals(prop.getName())) {
             if (Model.getFacade().isAAssociationRole(target)) {
                 final UMLComboBoxModel model = 
                     new UMLAssociationRoleBaseComboBoxModel(propertyName, target);
                 final JComboBox combo = new UMLSearchableComboBox(
                         model,
-                        new ActionSetAssociationRoleBase(), true);
+                        model.getAction(), true);
                 comp = new UMLComboBoxNavigator(Translator.localize(
                         "label.association.navigate.tooltip"),
                         combo);
@@ -390,7 +377,7 @@
                 new UMLGeneralizationPowertypeComboBoxModel(propertyName, target);
             final JComboBox combo = new UMLComboBox(
                     model,
-                    ActionSetGeneralizationPowertype.getInstance());
+                    model.getAction());
             comp = combo;
         } else if ("multiplicity".equals(prop.getName())) {            
             final UMLMultiplicityPanel mPanel = new UMLMultiplicityPanel(propertyName, target);
@@ -398,7 +385,8 @@
         } else if ("activator".equals(prop.getName())) {
             final UMLComboBoxModel model = 
                 new UMLMessageActivatorComboBoxModel(propertyName, target);
-            final JComboBox combo = new UMLMessageActivatorComboBox(model);
+            final JComboBox combo =
+                new UMLMessageActivatorComboBox(model, model.getAction());
             comp = combo;
         } else if ("operation".equals(prop.getName())) {
             if (Model.getFacade().isACallEvent(target)) {
@@ -412,7 +400,8 @@
                 final UMLComboBoxModel model = 
                     new UMLCallActionOperationComboBoxModel(propertyName, target);
                 UMLComboBox operationComboBox =
-                    new UMLCallActionOperationComboBox(model);
+                    new UMLCallActionOperationComboBox(model,
+                            model.getAction());
                 comp = new UMLComboBoxNavigator(
                         Translator.localize("label.operation.navigate.tooltip"),
                         operationComboBox);
@@ -420,17 +409,14 @@
         } else if ("representedClassifier".equals(prop.getName())) {
             final UMLComboBoxModel model = 
                 new UMLCollaborationRepresentedClassifierComboBoxModel(propertyName, target);
-            UMLComboBox combo =
-                new UMLComboBox(model,
-                        new ActionSetRepresentedClassifierCollaboration());
+            UMLComboBox combo = new UMLComboBox(model, model.getAction());
             comp = new UMLComboBoxNavigator(Translator.localize(
                             "label.represented-classifier.navigate.tooltip"),
                             combo);
         } else if ("representedOperation".equals(prop.getName())) {
             final UMLComboBoxModel model = 
                 new UMLCollaborationRepresentedOperationComboBoxModel(propertyName, target);
-            UMLComboBox combo = new UMLComboBox(model,
-                        new ActionSetRepresentedOperationCollaboration());
+            UMLComboBox combo = new UMLComboBox(model, model.getAction());
             comp = new UMLComboBoxNavigator(Translator.localize(
                             "label.represented-operation.navigate.tooltip"),
                     combo);
@@ -438,7 +424,7 @@
             final UMLComboBoxModel model = 
                 new UMLStateMachineContextComboBoxModel(propertyName, target);
             UMLComboBox combo = new UMLComboBox(model,
-                    ActionSetContextStateMachine.getInstance());
+                    model.getAction());
             comp = new UMLComboBoxNavigator(Translator.localize(
                             "label.context.navigate.tooltip"),
                     combo);
@@ -449,17 +435,17 @@
             comp =  new UMLComboBoxNavigator(Translator.localize(
                         "label.association.navigate.tooltip"),                
                     new UMLSearchableComboBox(model,
-                            new ActionSetLinkAssociation(), true));
+                            model.getAction(), true));
         } else if ("participant".equals(prop.getName())) {
             final UMLComboBoxModel model = 
                 new UMLAssociationEndTypeComboBoxModel(propertyName, target);
             comp = new UMLComboBox(model,
-                    ActionSetAssociationEndType.getInstance(), true);
+                    model.getAction(), true);
         } else if ("submachine".equals(prop.getName())) {
             final UMLComboBoxModel model =
                 new UMLSubmachineStateComboBoxModel(propertyName, target);
             final JComboBox submachineBox = new UMLComboBox(model,
-                    ActionSetSubmachineStateSubmachine.getInstance());
+                    model.getAction());
             comp = new UMLComboBoxNavigator(Translator.localize(
                             "tooltip.nav-submachine"), submachineBox);
         } else if ("referenceState".equals(prop.getName())) {
@@ -467,13 +453,13 @@
                 new UMLStubStateComboBoxModel(propertyName, target);
             final JComboBox referencestateBox =
                 new UMLComboBox(model,
-                        ActionSetStubStateReferenceState.getInstance());
+                        model.getAction());
             comp = new UMLComboBoxNavigator(Translator.localize(
                     "tooltip.nav-stubstate"), referencestateBox);            
         } else if ("tagType".equals(prop.getName())) {
             UMLComboBoxModel model = new UMLMetaClassComboBoxModel(propertyName, target);
             final JComboBox typeComboBox = new UMLComboBox(model, 
-                    ActionSetTagDefinitionType.getInstance());
+                    model.getAction());
             comp = new UMLComboBoxNavigator(
                    Translator.localize("label.type.navigate.tooltip"),
                    typeComboBox);
@@ -482,14 +468,14 @@
         } else if ("parameter".equals(prop.getName())) {
             final UMLComboBoxModel model =
                 new UMLTemplateParameterParameterComboBoxModel(target);
-            final JComboBox combo = new UMLComboBox(model, null);
+            final JComboBox combo = new UMLComboBox(model, model.getAction());
             comp = new UMLComboBoxNavigator(
                     Translator.localize("label.type.navigate.tooltip"),
                     combo);
         } else if ("defaultElement".equals(prop.getName())) {
             final UMLComboBoxModel model =
                 new UMLTemplateParameterDefaultElementComboBoxModel(propertyName, target);
-            final JComboBox combo = new UMLComboBox(model, null);
+            final JComboBox combo = new UMLComboBox(model, model.getAction());
             comp = new UMLComboBoxNavigator(
                     Translator.localize("label.type.navigate.tooltip"),
                     combo);

Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLAssociationEndTypeComboBoxModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLAssociationEndTypeComboBoxModel.java?view=diff&pathrev=17668&r1=17667&r2=17668
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLAssociationEndTypeComboBoxModel.java	(original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLAssociationEndTypeComboBoxModel.java	2009-12-18 10:01:01-0800
@@ -25,7 +25,15 @@
 // $header$

 package org.argouml.core.propertypanels.ui;

 

+import java.awt.event.ActionEvent;

+

+import javax.swing.Action;

+

+import org.argouml.i18n.Translator;

 import org.argouml.model.Model;

+import org.argouml.uml.ui.UMLComboBox2;

+import org.argouml.uml.ui.foundation.core.ActionSetAssociationEndType;

+import org.tigris.gef.undo.UndoableAction;

 

 /**

  * @since Nov 2, 2002

@@ -58,5 +66,54 @@
         }

         return null;

     }

+    

+    public Action getAction() {

+        return new ActionSetAssociationEndType();

+    }

+

+    private class ActionSetAssociationEndType extends UndoableAction {

 

+        /**

+         * The class uid

+         */

+        private static final long serialVersionUID = 5055557403240849587L;

+

+

+        /**

+         * Constructor for ActionSetStructuralFeatureType.

+         */

+        public ActionSetAssociationEndType() {

+            super(Translator.localize("Set"), null);

+            // Set the tooltip string:

+            putValue(Action.SHORT_DESCRIPTION, 

+                    Translator.localize("Set"));

+        }

+

+        /*

+         * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)

+         */

+        @Override

+        public void actionPerformed(ActionEvent e) {

+            super.actionPerformed(e);

+            Object source = e.getSource();

+            Object oldClassifier = null;

+            Object newClassifier = null;

+            Object end = null;

+            UMLComboBox box = (UMLComboBox) source;

+            Object o = getTarget();

+            if (Model.getFacade().isAAssociationEnd(o)) {

+                end = o;

+                oldClassifier = Model.getFacade().getType(end);

+            }

+            o = box.getSelectedItem();

+            if (Model.getFacade().isAClassifier(o)) {

+                newClassifier = o;

+            }

+            if (newClassifier != oldClassifier && end != null

+                    && newClassifier != null) {

+                Model.getCoreHelper().setType(end, newClassifier);

+                super.actionPerformed(e);

+            }

+        }

+    }

 }


Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLAssociationRoleBaseComboBoxModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLAssociationRoleBaseComboBoxModel.java?view=diff&pathrev=17668&r1=17667&r2=17668
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLAssociationRoleBaseComboBoxModel.java	(original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLAssociationRoleBaseComboBoxModel.java	2009-12-18 10:01:01-0800
@@ -24,10 +24,15 @@
 

 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.uml.ui.UMLComboBox2;

+import org.tigris.gef.undo.UndoableAction;

 

 /**

  * The combo box model for the base of an association-role.

@@ -38,6 +43,11 @@
  */

 public class UMLAssociationRoleBaseComboBoxModel extends UMLComboBoxModel {

 

+    /**

+     * The class uid

+     */

+    private static final long serialVersionUID = -7060017054488071743L;

+    

     private Collection others = new ArrayList();

 

     /**

@@ -135,5 +145,45 @@
         }

         others.clear();

     }

+    

+    public Action getAction() {

+        return new ActionSetAssociationRoleBase();

+    }

+    

+    private class ActionSetAssociationRoleBase extends UndoableAction {

+

+        /**

+         * The class uid

+         */

+        private static final long serialVersionUID = -3966106395848112765L;

+

+        /**

+         * Constructor for ActionSetAssociationRoleBase.

+         */

+        public ActionSetAssociationRoleBase() {

+            super();

+        }

+

+        /*

+         * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)

+         */

+        public void actionPerformed(ActionEvent e) {

+            super.actionPerformed(e);

+            if (e.getSource() instanceof UMLComboBox2) {

+                UMLComboBox2 source = (UMLComboBox2) e.getSource();

+                Object assoc = source.getSelectedItem();

+                Object ar = source.getTarget();

+                if (Model.getFacade().getBase(ar) == assoc) {

+                    return; // base is already set to this assoc...

+                    /* This check is needed, otherwise the setbase()

+                     *  below gives an exception.*/

+                }

+                if (Model.getFacade().isAAssociation(assoc)

+                        && Model.getFacade().isAAssociationRole(ar)) {

+                    Model.getCollaborationsHelper().setBase(ar, assoc);

+                }

+            }

+        }

 

+    }

 }


Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLCallActionOperationComboBox.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLCallActionOperationComboBox.java?view=diff&pathrev=17668&r1=17667&r2=17668
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLCallActionOperationComboBox.java	(original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLCallActionOperationComboBox.java	2009-12-18 10:01:01-0800
@@ -24,13 +24,8 @@
 
 package org.argouml.core.propertypanels.ui;
 
-import java.awt.event.ActionEvent;
+import javax.swing.Action;
 
-import org.argouml.model.Model;
-import org.argouml.uml.ui.UMLComboBox2;
-import org.argouml.uml.ui.UMLComboBoxModel2;
-import org.argouml.uml.ui.UMLSearchableComboBox;
-import org.tigris.gef.undo.UndoableAction;
 
 class UMLCallActionOperationComboBox
     extends UMLComboBox {
@@ -39,8 +34,8 @@
      *
      * @param arg0 the model
      */
-    public UMLCallActionOperationComboBox(UMLComboBoxModel arg0) {
-        super(arg0, new SetActionOperationAction());
+    public UMLCallActionOperationComboBox(UMLComboBoxModel arg0, Action action) {
+        super(arg0, action);
         setEditable(false);
     }
 
@@ -50,36 +45,3 @@
     private static final long serialVersionUID = 1453984990567492914L;
 }
 
-class SetActionOperationAction extends UndoableAction {
-
-    /**
-     * The constructor.
-     */
-    public SetActionOperationAction() {
-        super("");
-    }
-
-    /*
-     * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
-     */
-    public void actionPerformed(ActionEvent e) {
-        super.actionPerformed(e);
-        Object source = e.getSource();
-        if (source instanceof UMLComboBox2) {
-            Object selected = ((UMLComboBox2) source).getSelectedItem();
-            Object target = ((UMLComboBox2) source).getTarget();
-            if (Model.getFacade().isACallAction(target)
-                    && Model.getFacade().isAOperation(selected)) {
-                if (Model.getFacade().getOperation(target) != selected) {
-                    Model.getCommonBehaviorHelper()
-                    .setOperation(target, selected);
-                }
-            }
-        }
-    }
-
-    /**
-     * The UID.
-     */
-    private static final long serialVersionUID = -3574312020866131632L;
-}
\ No newline at end of file

Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLCallActionOperationComboBoxModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLCallActionOperationComboBoxModel.java?view=diff&pathrev=17668&r1=17667&r2=17668
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLCallActionOperationComboBoxModel.java	(original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLCallActionOperationComboBoxModel.java	2009-12-18 10:01:01-0800
@@ -24,17 +24,28 @@
 
 package org.argouml.core.propertypanels.ui;
 
+import java.awt.event.ActionEvent;
 import java.beans.PropertyChangeEvent;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Iterator;
 
+import javax.swing.Action;
+
 import org.argouml.model.AttributeChangeEvent;
 import org.argouml.model.Model;
 import org.argouml.model.UmlChangeEvent;
 import org.argouml.ui.targetmanager.TargetManager;
+import org.argouml.uml.ui.UMLComboBox2;
+import org.tigris.gef.undo.UndoableAction;
 
 class UMLCallActionOperationComboBoxModel extends UMLComboBoxModel {
+    
+    /**
+     * The UID.
+     */
+    private static final long serialVersionUID = 7752478921939209157L;
+    
     /**
      * The constructor.
      */
@@ -142,8 +153,41 @@
         }
     }
 
-    /**
-     * The UID.
-     */
-    private static final long serialVersionUID = 7752478921939209157L;
+    public Action getAction() {
+        return new SetActionOperationAction();
+    }
+    
+    private class SetActionOperationAction extends UndoableAction {
+
+        /**
+         * The constructor.
+         */
+        public SetActionOperationAction() {
+            super("");
+        }
+
+        /*
+         * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
+         */
+        public void actionPerformed(ActionEvent e) {
+            super.actionPerformed(e);
+            Object source = e.getSource();
+            if (source instanceof UMLComboBox2) {
+                Object selected = ((UMLComboBox2) source).getSelectedItem();
+                Object target = ((UMLComboBox2) source).getTarget();
+                if (Model.getFacade().isACallAction(target)
+                        && Model.getFacade().isAOperation(selected)) {
+                    if (Model.getFacade().getOperation(target) != selected) {
+                        Model.getCommonBehaviorHelper()
+                        .setOperation(target, selected);
+                    }
+                }
+            }
+        }
+
+        /**
+         * The UID.
+         */
+        private static final long serialVersionUID = -3574312020866131632L;
+    }    
 }
\ No newline at end of file

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=17668&r1=17667&r2=17668
==============================================================================
--- 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	2009-12-18 10:01:01-0800
@@ -27,6 +27,8 @@
 import java.util.ArrayList;
 import java.util.Collection;
 
+import javax.swing.Action;
+
 import org.argouml.model.Model;
 
 class UMLCallEventOperationComboBoxModel extends UMLComboBoxModel {
@@ -98,4 +100,8 @@
         }
         return false;
     }
+    
+    public Action getAction() {
+        return null;
+    }
 }
\ No newline at end of file

Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLCollaborationRepresentedClassifierComboBoxModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLCollaborationRepresentedClassifierComboBoxModel.java?view=diff&pathrev=17668&r1=17667&r2=17668
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLCollaborationRepresentedClassifierComboBoxModel.java	(original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLCollaborationRepresentedClassifierComboBoxModel.java	2009-12-18 10:01:01-0800
@@ -24,15 +24,18 @@
 
 package org.argouml.core.propertypanels.ui;
 
-import java.beans.PropertyChangeEvent;
+import java.awt.event.ActionEvent;
 import java.util.ArrayList;
 import java.util.Collection;
 
+import javax.swing.Action;
+
+import org.argouml.application.helpers.ResourceLoaderWrapper;
+import org.argouml.i18n.Translator;
 import org.argouml.kernel.Project;
 import org.argouml.kernel.ProjectManager;
 import org.argouml.model.Model;
-import org.argouml.model.UmlChangeEvent;
-import org.argouml.uml.ui.UMLComboBoxModel2;
+import org.tigris.gef.undo.UndoableAction;
 
 /**
  * The ComboBox model for the represented classifier 
@@ -89,5 +92,47 @@
     protected Object getSelectedModelElement() {
         return Model.getFacade().getRepresentedClassifier(getTarget());
     }
+    
+    public Action getAction() {
+        return new ActionSetRepresentedClassifierCollaboration();
+    }
+    
+    /**
+     * This Action sets the represented classifier 
+     * of a collaboration.
+     * 
+     * @author michiel
+     */
+    private class ActionSetRepresentedClassifierCollaboration extends UndoableAction {
+
+        /**
+         * Constructor for ActionSetCompositeStateConcurrent.
+         */
+        ActionSetRepresentedClassifierCollaboration() {
+            super(Translator.localize("action.set"),
+                    ResourceLoaderWrapper.lookupIcon("action.set"));
+        }
+
+        /*
+         * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
+         */
+        public void actionPerformed(ActionEvent e) {
+            super.actionPerformed(e);
+            UMLComboBox source = (UMLComboBox) e.getSource();
+            Object target = source.getTarget();
+            Object newValue = source.getSelectedItem();
+            /* The selected value may be "" to 
+             * clear the represented classifier. */
+            if (!Model.getFacade().isAClassifier(newValue)) {
+                newValue = null;
+            }
+            if (Model.getFacade().getRepresentedClassifier(target)
+                    != newValue) {
+                Model.getCollaborationsHelper().setRepresentedClassifier(
+                        target, newValue);
+            }
+        }
+
+    }
 }
 

Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLCollaborationRepresentedOperationComboBoxModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLCollaborationRepresentedOperationComboBoxModel.java?view=diff&pathrev=17668&r1=17667&r2=17668
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLCollaborationRepresentedOperationComboBoxModel.java	(original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLCollaborationRepresentedOperationComboBoxModel.java	2009-12-18 10:01:01-0800
@@ -24,15 +24,18 @@
 
 package org.argouml.core.propertypanels.ui;
 
-import java.beans.PropertyChangeEvent;
+import java.awt.event.ActionEvent;
 import java.util.ArrayList;
 import java.util.Collection;
 
+import javax.swing.Action;
+
+import org.argouml.application.helpers.ResourceLoaderWrapper;
+import org.argouml.i18n.Translator;
 import org.argouml.kernel.Project;
 import org.argouml.kernel.ProjectManager;
 import org.argouml.model.Model;
-import org.argouml.model.UmlChangeEvent;
-import org.argouml.uml.ui.UMLComboBoxModel2;
+import org.tigris.gef.undo.UndoableAction;
 
 /**
  * The ComboBox model for the represented Operation 
@@ -90,4 +93,51 @@
     protected Object getSelectedModelElement() {
         return Model.getFacade().getRepresentedOperation(getTarget());
     }
+    
+    public Action getAction() {
+        return new ActionSetRepresentedOperationCollaboration();
+    }
+    
+    /**
+     * This Action sets the represented operation 
+     * of a collaboration.
+     * 
+     * @author michiel
+     */
+    private class ActionSetRepresentedOperationCollaboration
+            extends UndoableAction {
+
+        /**
+         * 
+         */
+        private static final long serialVersionUID = 3408819535102974375L;
+
+        /**
+         * Constructor.
+         */
+        ActionSetRepresentedOperationCollaboration() {
+            super(Translator.localize("action.set"),
+                    ResourceLoaderWrapper.lookupIcon("action.set"));
+        }
+
+        /*
+         * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
+         */
+        public void actionPerformed(ActionEvent e) {
+            super.actionPerformed(e);
+            UMLComboBox source = (UMLComboBox) e.getSource();
+            Object target = source.getTarget();
+            Object newValue = source.getSelectedItem();
+            /* The selected value may be "" to 
+             * clear the represented operation. */
+            if (!Model.getFacade().isAOperation(newValue)) {
+                newValue = null;
+            }
+            if (Model.getFacade().getRepresentedOperation(target)
+                    != newValue) {
+                Model.getCollaborationsHelper().setRepresentedOperation(
+                        target, newValue);
+            }
+        }
+    }
 }

Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLComboBox.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLComboBox.java?view=diff&pathrev=17668&r1=17667&r2=17668
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLComboBox.java	(original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLComboBox.java	2009-12-18 10:01:01-0800
@@ -29,7 +29,6 @@
 import javax.swing.Action;
 import javax.swing.JComboBox;
 
-import org.argouml.ui.LookAndFeelMgr;
 import org.argouml.uml.ui.UMLListCellRenderer2;
 
 
@@ -68,7 +67,8 @@
      * The constructor.
      *
      * @param model the ComboBoxModel
-     * @param action the action // TODO used for what/when?
+     * @param action the action that is called whenever the
+     * combo selection changes
      */
     public UMLComboBox(UMLComboBoxModel model, Action action) {
         this(model, action, true);

Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLComboBoxModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLComboBoxModel.java?view=diff&pathrev=17668&r1=17667&r2=17668
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLComboBoxModel.java	(original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLComboBoxModel.java	2009-12-18 10:01:01-0800
@@ -32,6 +32,7 @@
 import java.util.List;
 
 import javax.swing.AbstractListModel;
+import javax.swing.Action;
 import javax.swing.ComboBoxModel;
 import javax.swing.JComboBox;
 import javax.swing.SwingUtilities;
@@ -727,4 +728,6 @@
             }
         }
     }
+    
+    abstract public Action getAction();
 }

Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLGeneralizationPowertypeComboBoxModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLGeneralizationPowertypeComboBoxModel.java?view=diff&pathrev=17668&r1=17667&r2=17668
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLGeneralizationPowertypeComboBoxModel.java	(original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLGeneralizationPowertypeComboBoxModel.java	2009-12-18 10:01:01-0800
@@ -25,15 +25,21 @@
 // $header$

 package org.argouml.core.propertypanels.ui;

 

+import java.awt.event.ActionEvent;

 import java.util.ArrayList;

 import java.util.Collection;

 import java.util.Set;

 import java.util.TreeSet;

 

+import javax.swing.Action;

+

+import org.argouml.i18n.Translator;

 import org.argouml.kernel.Project;

 import org.argouml.kernel.ProjectManager;

 import org.argouml.model.Model;

+import org.argouml.uml.ui.UMLComboBox2;

 import org.argouml.uml.util.PathComparator;

+import org.tigris.gef.undo.UndoableAction;

 

 /**

  * TODO: For UML 2.x, powertypes are accessed indirectly through the 

@@ -112,5 +118,54 @@
     protected boolean isValidElement(Object element) {

         return Model.getFacade().isAClassifier(element);

     }

+    

+    public Action getAction() {

+        return new ActionSetGeneralizationPowertype();

+    }

 

+    private class ActionSetGeneralizationPowertype extends UndoableAction {

+

+        /**

+         * The class uid

+         */

+        private static final long serialVersionUID = -6222244327700907236L;

+

+        /**

+         * Constructor for ActionSetStructuralFeatureType.

+         */

+        protected ActionSetGeneralizationPowertype() {

+            super(Translator.localize("Set"), null);

+            // Set the tooltip string:

+            putValue(Action.SHORT_DESCRIPTION, 

+                    Translator.localize("Set"));

+        }

+

+

+        /*

+         * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)

+         */

+        @Override

+        public void actionPerformed(ActionEvent e) {

+            super.actionPerformed(e);

+            Object source = e.getSource();

+            Object oldClassifier = null;

+            Object newClassifier = null;

+            Object gen = null;

+            if (source instanceof UMLComboBox2) {

+                UMLComboBox2 box = (UMLComboBox2) source;

+                Object o = box.getTarget();

+                if (Model.getFacade().isAGeneralization(o)) {

+                    gen = o;

+                    oldClassifier = Model.getFacade().getPowertype(gen);

+                }

+                o = box.getSelectedItem();

+                if (Model.getFacade().isAClassifier(o)) {

+                    newClassifier = o;

+                }

+            }

+            if (newClassifier != oldClassifier && gen != null) {

+                Model.getCoreHelper().setPowertype(gen, newClassifier);

+            }

+        }

+    }

 }


Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLLinkAssociationComboBoxModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLLinkAssociationComboBoxModel.java?view=diff&pathrev=17668&r1=17667&r2=17668
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLLinkAssociationComboBoxModel.java	(original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLLinkAssociationComboBoxModel.java	2009-12-18 10:01:01-0800
@@ -24,11 +24,17 @@
 
 package org.argouml.core.propertypanels.ui;
 
+import java.awt.event.ActionEvent;
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.Iterator;
 
+import javax.swing.Action;
+
+import org.argouml.i18n.Translator;
 import org.argouml.model.Model;
+import org.argouml.uml.ui.UMLComboBox2;
+import org.tigris.gef.undo.UndoableAction;
 
 /**
  * The model for the combobox to show the Association of the Link.
@@ -108,4 +114,56 @@
         }
         return null;
     }
+    
+    public Action getAction() {
+        return new ActionSetLinkAssociation();
+    }
+    
+    /**
+     *
+     * @author Michiel
+     */
+    class ActionSetLinkAssociation extends UndoableAction {
+
+       /**
+        * The UID.
+        */
+       private static final long serialVersionUID = 6168167355078835252L;
+
+       /**
+        * Constructor for ActionSetModelElementNamespace.
+        */
+       public ActionSetLinkAssociation() {
+           super(Translator.localize("Set"), null);
+                   // Set the tooltip string:
+           putValue(Action.SHORT_DESCRIPTION, Translator.localize("Set"));
+       }
+
+       /*
+        * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
+        */
+       @Override
+       public void actionPerformed(ActionEvent e) {
+           super.actionPerformed(e);
+           Object source = e.getSource();
+           Object oldAssoc = null;
+           Object newAssoc = null;
+           Object link = null;
+           if (source instanceof UMLComboBox2) {
+               UMLComboBox2 box = (UMLComboBox2) source;
+               Object o = box.getTarget();
+               if (Model.getFacade().isALink(o)) {
+                   link = o;
+                   oldAssoc = Model.getFacade().getAssociation(o);
+               }
+               Object n = box.getSelectedItem();
+               if (Model.getFacade().isAAssociation(n)) {
+                   newAssoc = n;
+               }
+           }
+           if (newAssoc != oldAssoc && link != null && newAssoc != null) {
+               Model.getCoreHelper().setAssociation(link, newAssoc);
+           }
+       }
+   }
 }

Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLMessageActivatorComboBox.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLMessageActivatorComboBox.java?view=diff&pathrev=17668&r1=17667&r2=17668
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLMessageActivatorComboBox.java	(original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLMessageActivatorComboBox.java	2009-12-18 10:01:01-0800
@@ -26,6 +26,8 @@
 
 import java.awt.event.ActionEvent;
 
+import javax.swing.Action;
+
 import org.argouml.model.Model;
 import org.argouml.uml.ui.UMLListCellRenderer2;
 /**
@@ -47,8 +49,8 @@
      * @param model the model
      */
     public UMLMessageActivatorComboBox(
-        final UMLComboBoxModel model) {
-        super(model, null, false);
+        final UMLComboBoxModel model, Action action) {
+        super(model, action, false);
         setRenderer(new UMLListCellRenderer2(true));
     }
 

Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLMessageActivatorComboBoxModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLMessageActivatorComboBoxModel.java?view=diff&pathrev=17668&r1=17667&r2=17668
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLMessageActivatorComboBoxModel.java	(original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLMessageActivatorComboBoxModel.java	2009-12-18 10:01:01-0800
@@ -24,6 +24,8 @@
 
 package org.argouml.core.propertypanels.ui;
 
+import javax.swing.Action;
+
 import org.argouml.model.Model;
 import org.argouml.uml.ui.UMLComboBoxModel2;
 
@@ -97,5 +99,9 @@
             }
         }
     }
+    
+    public Action getAction() {
+        return null;
+    }
 }
 

Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLMetaClassComboBoxModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLMetaClassComboBoxModel.java?view=diff&pathrev=17668&r1=17667&r2=17668
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLMetaClassComboBoxModel.java	(original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLMetaClassComboBoxModel.java	2009-12-18 10:01:01-0800
@@ -25,12 +25,20 @@
 // $header$

 package org.argouml.core.propertypanels.ui;

 

+import java.awt.event.ActionEvent;

 import java.util.Collection;

 import java.util.Collections;

 import java.util.LinkedList;

 import java.util.List;

 

+import javax.swing.Action;

+

+import org.apache.log4j.Logger;

+import org.argouml.i18n.Translator;

 import org.argouml.model.Model;

+import org.argouml.uml.ui.UMLComboBox2;

+import org.argouml.uml.ui.foundation.extension_mechanisms.ActionSetTagDefinitionType;

+import org.tigris.gef.undo.UndoableAction;

 

 /**

  * A model for selecting a UML metaclass. Originally designed for use in

@@ -99,5 +107,49 @@
     protected boolean isValidElement(Object element) {

         return metaClasses.contains(element);

     }

+    

+    public Action getAction() {

+        return new ActionSetTagDefinitionType();

+    }

+    

+    /**

+     * Action to set the type of a TagDefinition. The tagType attribute of a

+     * TagDefinition is a Name of a UML metaclass (ie String).

+     */

+    private class ActionSetTagDefinitionType extends UndoableAction {

+

+        /**

+         * Constructor for ActionSetTagDefinitionType.

+         */

+        protected ActionSetTagDefinitionType() {

+            super(Translator.localize("Set"), null);

+            // Set the tooltip string:

+            putValue(Action.SHORT_DESCRIPTION, 

+                    Translator.localize("Set"));

+        }

 

+        /*

+         * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)

+         */

+        @Override

+        public void actionPerformed(ActionEvent e) {

+            super.actionPerformed(e);

+            Object source = e.getSource();

+            String oldType = null;

+            String newType = null;

+            Object tagDef = null;

+            if (source instanceof UMLComboBox2) {

+                UMLComboBox2 box = (UMLComboBox2) source;

+                Object t = box.getTarget();

+                if (Model.getFacade().isATagDefinition(t)) {

+                    tagDef = t;

+                    oldType = (String) Model.getFacade().getType(tagDef);

+                }

+                newType = (String) box.getSelectedItem();

+            }

+            if (newType != null && !newType.equals(oldType) && tagDef != null) {

+                Model.getExtensionMechanismsHelper().setTagType(tagDef, newType);

+            }

+        }

+    }

 }


Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLModelElementNamespaceComboBoxModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLModelElementNamespaceComboBoxModel.java?view=diff&pathrev=17668&r1=17667&r2=17668
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLModelElementNamespaceComboBoxModel.java	(original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLModelElementNamespaceComboBoxModel.java	2009-12-18 10:01:01-0800
@@ -24,15 +24,21 @@
 

 package org.argouml.core.propertypanels.ui;

 

+import java.awt.event.ActionEvent;

 import java.util.ArrayList;

 import java.util.Collection;

 import java.util.Set;

 import java.util.TreeSet;

 

+import javax.swing.AbstractAction;

+import javax.swing.Action;

+

 import org.apache.log4j.Logger;

 import org.argouml.kernel.ProjectManager;

 import org.argouml.model.Model;

 import org.argouml.model.UmlChangeEvent;

+import org.argouml.ui.UndoableAction;

+import org.argouml.uml.ui.UMLComboBox2;

 import org.argouml.uml.ui.UMLComboBoxModel2;

 import org.argouml.uml.util.PathComparator;

 

@@ -140,4 +146,51 @@
     protected boolean isLazy() {

         return true;

     }

+    

+    public Action getAction() {

+        

+        return new SetAction();

+    }

+    

+    class SetAction extends UndoableAction {

+        

+        /**

+         * The class uid

+         */

+        private static final long serialVersionUID = 6281434994800778660L;

+

+        /**

+         * Constructor for ActionSetModelElementNamespace.

+         */

+        public SetAction() {

+            super();

+        }

+

+        /*

+         * @see java.awt.event.ActionListener#actionPerformed(

+         * java.awt.event.ActionEvent)

+         */

+        public void actionPerformed(ActionEvent e) {

+            Object source = e.getSource();

+            Object oldNamespace = null;

+            Object newNamespace = null;

+            Object m = null;

+            if (source instanceof UMLComboBox2) {

+                UMLComboBox2 box = (UMLComboBox2) source;

+                Object o = box.getTarget();

+                if (Model.getFacade().isAModelElement(o)) {

+                    m =  o;

+                    oldNamespace = Model.getFacade().getNamespace(m);

+                }

+                o = box.getSelectedItem();

+                if (Model.getFacade().isANamespace(o)) {

+                    newNamespace = o;

+                }

+            }

+            if (newNamespace != oldNamespace && m != null && newNamespace != null) {

+                super.actionPerformed(e);

+                Model.getCoreHelper().setNamespace(m, newNamespace);

+            }

+        }

+    }

 }


Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLStateMachineContextComboBoxModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLStateMachineContextComboBoxModel.java?view=diff&pathrev=17668&r1=17667&r2=17668
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLStateMachineContextComboBoxModel.java	(original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLStateMachineContextComboBoxModel.java	2009-12-18 10:01:01-0800
@@ -24,13 +24,20 @@
 

 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.i18n.Translator;

 import org.argouml.kernel.Project;

 import org.argouml.kernel.ProjectManager;

 import org.argouml.model.Model;

 import org.argouml.model.UmlChangeEvent;

+import org.argouml.uml.ui.UMLComboBox2;

+import org.argouml.uml.ui.behavior.state_machines.ActionSetContextStateMachine;

+import org.tigris.gef.undo.UndoableAction;

 

 /**

  * Listmodel for the context of a statemachine.

@@ -91,4 +98,40 @@
     public void modelChanged(UmlChangeEvent evt) {

         /* Do nothing by design. */

     }

+    

+    public Action getAction() {

+        return new ActionSetContextStateMachine();

+    }

+    

+    private class ActionSetContextStateMachine extends UndoableAction {

+

+        /**

+         * The UID.

+         */

+        private static final long serialVersionUID = -8118983979324112900L;

+

+        /**

+         * Constructor for ActionSetCompositeStateConcurrent.

+         */

+        protected ActionSetContextStateMachine() {

+            super(Translator.localize("action.set"), null);

+            // Set the tooltip string:

+            putValue(Action.SHORT_DESCRIPTION, 

+                    Translator.localize("action.set"));

+        }

+

+        /*

+         * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)

+         */

+        public void actionPerformed(ActionEvent e) {

+            super.actionPerformed(e);

+            UMLComboBox source = (UMLComboBox) e.getSource();

+            Object target = source.getTarget();

+            if (Model.getFacade().getContext(target)

+                    != source.getSelectedItem()) {

+                Model.getStateMachinesHelper().setContext(

+                        target, source.getSelectedItem());

+            }

+        }

+    }

 }


Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLStructuralFeatureTypeComboBoxModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLStructuralFeatureTypeComboBoxModel.java?view=diff&pathrev=17668&r1=17667&r2=17668
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLStructuralFeatureTypeComboBoxModel.java	(original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLStructuralFeatureTypeComboBoxModel.java	2009-12-18 10:01:01-0800
@@ -24,14 +24,19 @@
 

 package org.argouml.core.propertypanels.ui;

 

+import java.awt.event.ActionEvent;

 import java.util.ArrayList;

 import java.util.Collection;

 import java.util.Set;

 import java.util.TreeSet;

 

+import javax.swing.Action;

+

+import org.argouml.i18n.Translator;

 import org.argouml.kernel.Project;

 import org.argouml.kernel.ProjectManager;

 import org.argouml.model.Model;

+import org.argouml.ui.UndoableAction;

 import org.argouml.uml.util.PathComparator;

 

 /**

@@ -154,4 +159,60 @@
         Model.getPump().removeClassModelEventListener(this,

                 Model.getMetaTypes().getDataType(), "name");

     }

+    

+    public Action getAction() {

+        return new ActionSetStructuralFeatureType();

+    }

+    

+    /**

+     * @since Nov 3, 2002

+     * @author [email protected]

+     */

+    class ActionSetStructuralFeatureType extends UndoableAction {

+

+        /**

+         * The class uid

+         */

+        private static final long serialVersionUID = 8227201276430122294L;

+        

+        /**

+         * Constructor for ActionSetStructuralFeatureType.

+         */

+        protected ActionSetStructuralFeatureType() {

+            super(Translator.localize("Set"), null);

+            // Set the tooltip string:

+            putValue(Action.SHORT_DESCRIPTION, 

+                    Translator.localize("Set"));

+        }

+

+        /*

+         * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)

+         */

+        @Override

+        public void actionPerformed(ActionEvent e) {

+            super.actionPerformed(e);

+            assert (e.getSource() instanceof UMLComboBox);

+            Object oldClassifier = null;

+            final UMLComboBox box = (UMLComboBox) e.getSource();

+            final Object feature = box.getTarget();

+            assert (feature != null);

+            

+            oldClassifier = Model.getFacade().getType(feature);

+            

+            Object selectedClassifier = box.getSelectedItem();

+            System.out.println("The selected classifier is " + selectedClassifier);

+            

+            final Object newClassifier;

+            if (Model.getFacade().isAElement(selectedClassifier)) {

+                newClassifier = selectedClassifier;

+            } else {

+                newClassifier = null;

+            }

+            

+            if (newClassifier != oldClassifier) {

+                System.out.println("Setting the type to " + newClassifier);

+                Model.getCoreHelper().setType(feature, newClassifier);

+            }

+        }

+    }

 }


Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLStubStateComboBoxModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLStubStateComboBoxModel.java?view=diff&pathrev=17668&r1=17667&r2=17668
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLStubStateComboBoxModel.java	(original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLStubStateComboBoxModel.java	2009-12-18 10:01:01-0800
@@ -24,10 +24,18 @@
 

 package org.argouml.core.propertypanels.ui;

 

+import org.argouml.i18n.Translator;

 import org.argouml.model.Model;

+import org.argouml.uml.ui.UMLComboBox2;

+import org.argouml.uml.ui.behavior.state_machines.ActionSetStubStateReferenceState;

+import org.tigris.gef.undo.UndoableAction;

+

+import java.awt.event.ActionEvent;

 import java.util.ArrayList;

 import java.util.Iterator;

 

+import javax.swing.Action;

+

 /**

  * @author [email protected]

  */

@@ -105,5 +113,48 @@
         }

         return null;

     }

+    

+    public Action getAction() {

+        return new ActionSetStubStateReferenceState();

+    }

+

+    /**

+     * Action to set the reference state of a stubstate.

+     *

+     * @author [email protected]

+     */

+    public class ActionSetStubStateReferenceState extends UndoableAction {

 

+        /**

+         * The class uid

+         */

+        private static final long serialVersionUID = 4412688175035654097L;

+

+        /**

+         * The constructor.

+         */

+        protected ActionSetStubStateReferenceState() {

+            super(Translator.localize("action.set"), null);

+            // Set the tooltip string:

+            putValue(Action.SHORT_DESCRIPTION, 

+                    Translator.localize("action.set"));

+        }

+

+        /*

+         * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)

+         */

+        public void actionPerformed(ActionEvent e) {

+            super.actionPerformed(e);

+            if (e.getSource() instanceof UMLComboBox2) {

+                UMLComboBox2 box = (UMLComboBox2) e.getSource();

+                Object o = box.getSelectedItem();

+                if (o != null) {

+                    String name = Model.getStateMachinesHelper().getPath(o);

+                    if (name != null)

+                        Model.getStateMachinesHelper()

+                                .setReferenceState(box.getTarget(), name);

+                }

+            }

+        }

+    }

 }


Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLSubmachineStateComboBoxModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLSubmachineStateComboBoxModel.java?view=diff&pathrev=17668&r1=17667&r2=17668
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLSubmachineStateComboBoxModel.java	(original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLSubmachineStateComboBoxModel.java	2009-12-18 10:01:01-0800
@@ -24,9 +24,17 @@
 

 package org.argouml.core.propertypanels.ui;

 

+import java.awt.event.ActionEvent;

+

+import javax.swing.Action;

+

+import org.argouml.i18n.Translator;

 import org.argouml.kernel.Project;

 import org.argouml.kernel.ProjectManager;

 import org.argouml.model.Model;

+import org.argouml.uml.ui.UMLComboBox2;

+import org.argouml.uml.ui.behavior.state_machines.ActionSetSubmachineStateSubmachine;

+import org.tigris.gef.undo.UndoableAction;

 

 /**

  * @since Dec 15, 2002

@@ -78,5 +86,40 @@
         }

         return null;

     }

+    

+    public Action getAction() {

+        return new ActionSetSubmachineStateSubmachine();

+    }

+    

+    /**

+     * @since Dec 15, 2002

+     * @author [email protected]

+     */

+    private class ActionSetSubmachineStateSubmachine extends UndoableAction {

 

+        /**

+         * 

+         */

+        private static final long serialVersionUID = -2501791485368016442L;

+

+        /**

+         * Constructor for ActionSetModelElementStereotype.

+         */

+        protected ActionSetSubmachineStateSubmachine() {

+            super(Translator.localize("action.set"), null);

+            // Set the tooltip string:

+            putValue(Action.SHORT_DESCRIPTION, 

+                    Translator.localize("action.set"));

+        }

+

+        /*

+         * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)

+         */

+        public void actionPerformed(ActionEvent e) {

+            super.actionPerformed(e);

+            UMLComboBox box = (UMLComboBox) e.getSource();

+            Model.getStateMachinesHelper().setStatemachineAsSubmachine(

+                    getTarget(), box.getSelectedItem());

+        }

+    }

 }


Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLTemplateParameterDefaultElementComboBoxModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLTemplateParameterDefaultElementComboBoxModel.java?view=diff&pathrev=17668&r1=17667&r2=17668
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLTemplateParameterDefaultElementComboBoxModel.java	(original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLTemplateParameterDefaultElementComboBoxModel.java	2009-12-18 10:01:01-0800
@@ -29,6 +29,8 @@
 import java.util.Set;

 import java.util.TreeSet;

 

+import javax.swing.Action;

+

 import org.argouml.kernel.Project;

 import org.argouml.kernel.ProjectManager;

 import org.argouml.model.Model;

@@ -113,4 +115,8 @@
         }

         return o;

     }

+    

+    public Action getAction() {

+        return null;

+    }

 }


Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLTemplateParameterParameterComboBoxModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLTemplateParameterParameterComboBoxModel.java?view=diff&pathrev=17668&r1=17667&r2=17668
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLTemplateParameterParameterComboBoxModel.java	(original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLTemplateParameterParameterComboBoxModel.java	2009-12-18 10:01:01-0800
@@ -29,6 +29,8 @@
 import java.util.Set;

 import java.util.TreeSet;

 

+import javax.swing.Action;

+

 import org.apache.log4j.Logger;

 import org.argouml.kernel.Project;

 import org.argouml.kernel.ProjectManager;

@@ -41,6 +43,11 @@
 public class UMLTemplateParameterParameterComboBoxModel

         extends UMLComboBoxModel {

 

+    /**

+     * The class uid

+     */

+    private static final long serialVersionUID = -1295242702819038923L;

+    

     private static final Logger LOG =

         Logger.getLogger(UMLTemplateParameterParameterComboBoxModel.class);

 

@@ -114,4 +121,8 @@
         }

         return o;

     }

+    

+    public Action getAction() {

+        return null;

+    }

 }



------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2431539

To unsubscribe from this discussion, e-mail: [[email protected]].
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.