svn commit: r18095 - trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr
Bob Tarling <[email protected]>
| Newsgroups | gmane.comp.lang.uml.argouml.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: bobtarling
Date: 2010-03-14 09:27:20-0800
New Revision: 18095
Modified:
trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreFactoryMDRImpl.java
trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/UmlFactoryMDRImpl.java
Log:
Make the parameters list use SimpleListModel so that the ScrollList toolbar generates a new element toolbar action. Factories in model/MDR adapted to create parameter for Operation, Event and ObjectFlowState
Modified: trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreFactoryMDRImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreFactoryMDRImpl.java?view=diff&pathrev=18095&r1=18094&r2=18095
==============================================================================
--- trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreFactoryMDRImpl.java (original)
+++ trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreFactoryMDRImpl.java 2010-03-14 09:27:20-0800
@@ -50,6 +50,7 @@
import org.argouml.model.CoreFactory;
import org.argouml.model.ModelCommand;
import org.argouml.model.ModelManagementHelper;
+import org.omg.uml.behavioralelements.activitygraphs.ObjectFlowState;
import org.omg.uml.behavioralelements.commonbehavior.Reception;
import org.omg.uml.behavioralelements.commonbehavior.Signal;
import org.omg.uml.behavioralelements.statemachines.Event;
@@ -1100,10 +1101,19 @@
Parameter res = buildParameter((Classifier) type, event);
res.setKind(ParameterDirectionKindEnum.PDK_IN);
event.getParameter().add(res);
+ res.setName("arg" + event.getParameter().size());
+ return res;
+ } else if (o instanceof ObjectFlowState) {
+ ObjectFlowState ofs = (ObjectFlowState) o;
+ Parameter res = buildParameter((Classifier) type, ofs);
+ res.setKind(ParameterDirectionKindEnum.PDK_IN);
+ ofs.getParameter().add(res);
+ res.setName("arg" + ofs.getParameter().size());
return res;
} else if (o instanceof BehavioralFeature) {
BehavioralFeature oper = (BehavioralFeature) o;
Parameter res = buildParameter((Classifier) type, oper);
+ res.setKind(ParameterDirectionKindEnum.PDK_IN);
oper.getParameter().add(res);
res.setName("arg" + oper.getParameter().size());
return res;
Modified: trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/UmlFactoryMDRImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/UmlFactoryMDRImpl.java?view=diff&pathrev=18095&r1=18094&r2=18095
==============================================================================
--- trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/UmlFactoryMDRImpl.java (original)
+++ trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/UmlFactoryMDRImpl.java 2010-03-14 09:27:20-0800
@@ -93,6 +93,7 @@
import org.omg.uml.behavioralelements.commonbehavior.UmlException;
import org.omg.uml.behavioralelements.commonbehavior.UninterpretedAction;
import org.omg.uml.behavioralelements.statemachines.CompositeState;
+import org.omg.uml.behavioralelements.statemachines.Event;
import org.omg.uml.behavioralelements.statemachines.FinalState;
import org.omg.uml.behavioralelements.statemachines.Guard;
import org.omg.uml.behavioralelements.statemachines.Pseudostate;
@@ -152,6 +153,7 @@
import org.omg.uml.foundation.core.UmlAssociation;
import org.omg.uml.foundation.core.UmlClass;
import org.omg.uml.foundation.core.Usage;
+import org.omg.uml.foundation.datatypes.ParameterDirectionKindEnum;
import org.omg.uml.modelmanagement.ElementImport;
import org.omg.uml.modelmanagement.Subsystem;
import org.omg.uml.modelmanagement.UmlPackage;
@@ -415,11 +417,23 @@
Operation.class
});
- // specifies valid elements for a Attribute to contain
+ // specifies valid elements for a Operation to contain
validContainmentMap.put(Operation.class,
new Class<?>[] {
Parameter.class
});
+
+ // specifies valid elements for an Event to contain
+ validContainmentMap.put(Event.class,
+ new Class<?>[] {
+ Parameter.class
+ });
+
+ // specifies valid elements for an ObjectFlowState to contain
+ validContainmentMap.put(ObjectFlowState.class,
+ new Class<?>[] {
+ Parameter.class
+ });
}
public Object buildConnection(Object elementType, Object fromElement,
@@ -588,7 +602,10 @@
Object element = null;
// if this is a feature get the owner of that feature
- if (this.modelImpl.getFacade().isAFeature(container)) {
+ // TODO: Does anything actually make use of this? It can
+ // cause unexpected behaviour.
+ if (this.modelImpl.getFacade().isAFeature(container)
+ && elementType != metaTypes.getParameter()) {
container = this.modelImpl.getFacade().getOwner(container);
}
@@ -618,7 +635,9 @@
param.setName("T"); // default parameter name
element =
modelImpl.getCoreFactory().buildTemplateParameter(container,
- param, null);
+ param, null);
+ } else if (elementType == metaTypes.getParameter()) {
+ element = getCore().buildParameter(container, null);
} else {
// build all other elements using existing buildNode
element = buildNode(elementType);
------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2459551
To unsubscribe from this discussion, e-mail: [[email protected]].