svn commit: r19410 - trunk/src/argouml-app/src/org/argouml/uml/diagram: deployment/ui ui

[email protected]
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
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.