svn commit: r16116 - trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/FigClassifierRole.java

[email protected]
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
Author: penyaskito
Date: 2008-11-21 04:54:29-0800
New Revision: 16116

Modified:
   trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/FigClassifierRole.java

Log:
Fixed Issue 5190 - Activations are not updated when a message is deleted from the diagram

Modified: trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/FigClassifierRole.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/FigClassifierRole.java?view=diff&rev=16116&p1=trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/FigClassifierRole.java&p2=trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/FigClassifierRole.java&r1=16115&r2=16116
==============================================================================
--- trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/FigClassifierRole.java	(original)
+++ trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/FigClassifierRole.java	2008-11-21 04:54:29-0800
@@ -252,15 +252,23 @@
     public void removeFigEdge(FigEdge edge) {
         super.removeFigEdge(edge);
 
+        if (! (edge instanceof FigMessage)) {
+            return;
+        }
+        final FigMessage figMessage = (FigMessage) edge;
+
         // if the removed edge is a Create Message it will affect the position
         // of the ClassifierRole so it should be repositioned
-        if (edge instanceof FigMessage) {
-            final FigMessage figMessage = (FigMessage) edge;
-            if (equals(figMessage.getDestFigNode())
-                    && !equals(figMessage.getSourceFigNode())  
-                    && figMessage.isCreateAction()) {
-                relocate();
-            }
+        if (equals(figMessage.getDestFigNode())
+                && !equals(figMessage.getSourceFigNode())  
+                && figMessage.isCreateAction()) {
+            relocate();
+        }
+
+        // in any case we need to update the activations of this fig
+        ((FigClassifierRole)figMessage.getDestFigNode()).createActivations();
+        if (! figMessage.isSelfMessage()){
+            ((FigClassifierRole)figMessage.getSourceFigNode()).createActivations();
         }
     }
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.