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]].