Author: bobtarling
Date: 2011-05-11 11:27:52-0700
New Revision: 19410
Modified:
trunk/src/argouml-app/src/org/argouml/uml/diagram/deployment/ui/UMLDeploymentDiagram.java
trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigNodeModelElement.java
Log:
Support for ComponentRealization
Modified: trunk/src/argouml-app/src/org/argouml/uml/diagram/deployment/ui/UMLDeploymentDiagram.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/deployment/ui/UMLDeploymentDiagram.java?view=diff&pathrev=19410&r1=19409&r2=19410
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/diagram/deployment/ui/UMLDeploymentDiagram.java (original)
+++ trunk/src/argouml-app/src/org/argouml/uml/diagram/deployment/ui/UMLDeploymentDiagram.java 2011-05-11 11:27:52-0700
@@ -200,15 +200,15 @@
return actions;
} else {
final Object[] actions = {
- getActionMNode(),
- getActionMComponent(),
- getActionMGeneralization(),
- getActionMAbstraction(),
- getActionMDependency(),
- getAssociationActions(),
- getActionMObject(),
- getActionMLink(),
- };
+ getActionMNode(),
+ getActionMComponent(),
+ getActionMGeneralization(),
+ getActionMAbstraction(),
+ getActionMDependency(),
+ getAssociationActions(),
+ getActionMObject(),
+ getActionMLink(),
+ };
return actions;
}
}
Modified: trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigNodeModelElement.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigNodeModelElement.java?view=diff&pathrev=19410&r1=19409&r2=19410
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigNodeModelElement.java (original)
+++ trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigNodeModelElement.java 2011-05-11 11:27:52-0700
@@ -90,6 +90,7 @@
import org.argouml.model.AttributeChangeEvent;
import org.argouml.model.DeleteInstanceEvent;
import org.argouml.model.DiElement;
+import org.argouml.model.IllegalModelElementConnectionException;
import org.argouml.model.InvalidElementException;
import org.argouml.model.Model;
import org.argouml.model.UmlChangeEvent;
@@ -845,25 +846,50 @@
assert Model.getFacade().isAComponent(component);
assert Model.getFacade().isAUMLElement(owner);
- final Collection er1 = Model.getFacade().getElementResidences(owner);
- final Collection er2 = Model.getFacade().getResidentElements(component);
- boolean found = false;
- // Find all ElementResidences between the class and the component:
- final Collection<Object> common = new ArrayList<Object>(er1);
- common.retainAll(er2);
- for (Object elementResidence : common) {
+ if (Model.getFacade().getUmlVersion().startsWith("1")) {
+ final Collection er1 = Model.getFacade().getElementResidences(owner);
+ final Collection er2 = Model.getFacade().getResidentElements(component);
+ boolean found = false;
+ // Find all ElementResidences between the class and the component:
+ final Collection<Object> common = new ArrayList<Object>(er1);
+ common.retainAll(er2);
+ for (Object elementResidence : common) {
+ if (!found) {
+ found = true;
+ // There is already a correct ElementResidence
+ } else {
+ // There were 2 ElementResidences .. strange case.
+ Model.getUmlFactory().delete(elementResidence);
+ }
+ }
if (!found) {
- found = true;
- // There is already a correct ElementResidence
- } else {
- // There were 2 ElementResidences .. strange case.
- Model.getUmlFactory().delete(elementResidence);
+ // There was no ElementResidence yet, so let's create one:
+ Model.getCoreFactory().buildElementResidence(
+ owner, component);
+ }
+ } else {
+ Object namespace = Model.getFacade().getNamespace(component);
+ Collection deps = Model.getFacade().getClientDependencies(owner);
+ for (Object cr : deps) {
+ if (Model.getFacade().isAComponentRealization(cr)) {
+ Collection supps = Model.getFacade().getSuppliers(cr);
+ for (Object supp : supps) {
+ Object comp = Model.getFacade().getSuppliers(cr);
+ if (supp == component) {
+ // The owner is already linked to the component
+ return;
+ }
+ }
+ }
+ }
+ try {
+ Model.getUmlFactory().buildConnection(
+ Model.getMetaTypes().getComponentRealization(),
+ owner, null, component,
+ null, null, namespace);
+ } catch (IllegalModelElementConnectionException e) {
+ LOG.error("Exception", e);
}
- }
- if (!found) {
- // There was no ElementResidence yet, so let's create one:
- Model.getCoreFactory().buildElementResidence(
- owner, component);
}
}
------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2734461
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.