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]
