Author: bobtarling
Date: 2008-05-01 06:29:23-0700
New Revision: 14559

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

Log:
Don't create duplicate return fig

Modified: 
trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/ModeCreateMessage.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/ModeCreateMessage.java?view=diff&rev=14559&p1=trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/ModeCreateMessage.java&p2=trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/ModeCreateMessage.java&r1=14558&r2=14559
==============================================================================
--- 
trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/ModeCreateMessage.java
   (original)
+++ 
trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/ModeCreateMessage.java
   2008-05-01 06:29:23-0700
@@ -25,14 +25,15 @@
 package org.argouml.uml.diagram.sequence2.ui;
 
 import java.awt.Point;
-import java.awt.event.MouseEvent;
+import java.util.List;
 
 import org.apache.log4j.Logger;
 import org.argouml.model.Model;
 import org.argouml.uml.diagram.sequence2.SequenceDiagramGraphModel;
 import org.tigris.gef.base.Editor;
-import org.tigris.gef.base.Layer;
+import org.tigris.gef.base.LayerPerspective;
 import org.tigris.gef.base.ModeCreatePolyEdge;
+import org.tigris.gef.presentation.Fig;
 import org.tigris.gef.presentation.FigEdge;
 
 /**
@@ -87,7 +88,7 @@
 //                ModeManager modeManager = editor.getModeManager();
 //                ModeCreateMessage mode = new ModeCreateMessage(editor);
 //                mode.getArgs().put("action", 
-//                        Model.getMetaTypes().getReturnAction());             
  
+//                        Model.getMetaTypes().getReturnAction()); 
 //                modeManager.push(mode);
 
             // get the source of the return message
@@ -105,7 +106,18 @@
                     Model.getMetaTypes().getMessage(),
                     Model.getMetaTypes().getReturnAction());
             
-            final FigMessage returnEdge = new FigMessage(returnMessage);
+            final LayerPerspective layer = 
+                (LayerPerspective) editor.getLayerManager().getActiveLayer();
+            
+            FigMessage returnEdge = null;
+
+            List<Fig> figs = layer.getContents();
+            for (Fig fig : figs) {
+                if (fig.getOwner() == returnMessage) {
+                    returnEdge = (FigMessage) fig;
+                    break;
+                }
+            }
 
             returnEdge.setSourcePortFig(fe.getDestPortFig());
             returnEdge.setSourceFigNode(dcr);
@@ -124,13 +136,6 @@
             if (returnEdge.isSelfMessage()) {
                 returnEdge.convertToArc();
             }
-            
-            // FIXME #5005: The message is added, 
-            // it doesn't need to be added again. 
-            // The problem here is that the diagram
-            // isn't damaged, and btw the edge ends' X are wrong.
-            final Layer layer = editor.getLayerManager().getActiveLayer();
-            layer.add(returnEdge);
         }
         dcr.createActivations();
         dcr.renderingChanged();

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to