Author: bobtarling
Date: 2008-04-13 15:42:58-0700
New Revision: 14338

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

Log:
Remove UI code from modelChanged

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=14338&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=14337&r2=14338
==============================================================================
--- 
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-04-13 15:42:58-0700
@@ -32,8 +32,6 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import javax.swing.SwingUtilities;
-
 import org.apache.log4j.Logger;
 import org.argouml.model.AddAssociationEvent;
 import org.argouml.model.AttributeChangeEvent;
@@ -142,17 +140,7 @@
         if (mee instanceof AddAssociationEvent
                 || mee instanceof RemoveAssociationEvent
                 || mee instanceof AttributeChangeEvent) {
-            Runnable doWorkRunnable = new Runnable() {
-                public void run() {
-                    renderingChanged();
-                    updateListeners(getOwner(), getOwner());
-                    notationProvider.updateListener(
-                           FigClassifierRole.this, getOwner(), mee);
-                    damage();
-                }
-            };
-
-            SwingUtilities.invokeLater(doWorkRunnable);
+            notationProvider.updateListener(this, getOwner(), mee);
         }
     }
 
@@ -258,7 +246,7 @@
                   && Model.getFacade().isACreateAction(mess.getAction())) {
                 
                 LOG.info("Added a create message");
-                relocate();                
+                relocate();
             }
         }        
     }

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=14338&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=14337&r2=14338
==============================================================================
--- 
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-04-13 15:42:58-0700
@@ -33,6 +33,7 @@
 import org.tigris.gef.base.Editor;
 import org.tigris.gef.base.Layer;
 import org.tigris.gef.base.ModeCreatePolyEdge;
+import org.tigris.gef.presentation.FigEdge;
 
 /**
  * Mode to create a link between two figclassifierroles. 
@@ -67,73 +68,74 @@
             LOG.debug("ModeCreateMessage created without editor.");
         }
     }
+    
     @Override
-    public void mouseReleased(MouseEvent me) {
-        // the parent will create the message
-        super.mouseReleased(me);
-        
+    public void endAttached(FigEdge fe) {
+        super.endAttached(fe);
         final SequenceDiagramGraphModel gm =
             (SequenceDiagramGraphModel) getEditor().getGraphModel();
         
-        final Object edge = getNewEdge();
-        if (Model.getFacade().isAMessage(edge)) {
-            final Object action = Model.getFacade().getAction(edge);
-            if (Model.getFacade().isACallAction(action)) {
-                
-                // we need to create a ModeCreateMessage for adding
-                // a new message                
+        Object message = fe.getOwner();
+        FigClassifierRole dcr = (FigClassifierRole) fe.getDestFigNode();
+        FigClassifierRole scr = (FigClassifierRole) fe.getSourceFigNode();
+        
+        final Object action = Model.getFacade().getAction(message);
+        if (Model.getFacade().isACallAction(action)) {
+            
+            // we need to create a ModeCreateMessage for adding
+            // a new message                
 //                ModeManager modeManager = editor.getModeManager();
 //                ModeCreateMessage mode = new ModeCreateMessage(editor);
 //                mode.getArgs().put("action", 
 //                        Model.getMetaTypes().getReturnAction());             
  
 //                modeManager.push(mode);
 
-                // get the source of the return message
-                final Object returnMessageSource =
-                       Model.getFacade().getReceiver(edge);
-                // get the dest of the return message
-                final Object returnMessageDest =
-                       Model.getFacade().getSender(edge);
-                
-                // create the return message modelelement with the interaction
-                // and the collaboration
-                final Object returnMessage = gm.connect(
-                               returnMessageSource,
-                        returnMessageDest, 
-                        Model.getMetaTypes().getMessage(),
-                        Model.getMetaTypes().getReturnAction());
-                
-                final Layer layer = editor.getLayerManager().getActiveLayer();
-                
-                final FigMessage callEdge = (FigMessage)
-                    layer.presentationFor(edge);
-                
-                final FigMessage returnEdge = new FigMessage(returnMessage);
+            // get the source of the return message
+            final Object returnMessageSource =
+                Model.getFacade().getReceiver(message);
+            // get the dest of the return message
+            final Object returnMessageDest =
+                Model.getFacade().getSender(message);
+            
+            // create the return message modelelement with the interaction
+            // and the collaboration
+            final Object returnMessage = gm.connect(
+                    returnMessageSource,
+                    returnMessageDest, 
+                    Model.getMetaTypes().getMessage(),
+                    Model.getMetaTypes().getReturnAction());
+            
+            final Layer layer = editor.getLayerManager().getActiveLayer();
+            
+            final FigMessage returnEdge = new FigMessage(returnMessage);
 
-                returnEdge.setSourcePortFig(callEdge.getDestPortFig());
-                returnEdge.setSourceFigNode(callEdge.getDestFigNode());
-                returnEdge.setDestPortFig(callEdge.getSourcePortFig());
-                returnEdge.setDestFigNode(callEdge.getSourceFigNode());
-                
-                final Point[] points = returnEdge.getPoints();
-                for (int i=0; i < points.length; ++i) {
-                    // TODO: this shouldn't be hardcoded
-                    // 20 is the height of the spline
-                    // 50 is the default activation height
-                    points[i].y = callEdge.getY() + 50 + 20;
-                }
-                returnEdge.setPoints(points);
-                               
-                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.
-                layer.add(returnEdge);
+            returnEdge.setSourcePortFig(fe.getDestPortFig());
+            returnEdge.setSourceFigNode(dcr);
+            returnEdge.setDestPortFig(fe.getSourcePortFig());
+            returnEdge.setDestFigNode(scr);
+            
+            final Point[] points = returnEdge.getPoints();
+            for (int i=0; i < points.length; ++i) {
+                // TODO: this shouldn't be hardcoded
+                // 20 is the height of the spline
+                // 50 is the default activation height
+                points[i].y = fe.getY() + 50 + 20;
+            }
+            returnEdge.setPoints(points);
+                           
+            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.
+            layer.add(returnEdge);
         }
+        dcr.createActivations();
+        dcr.renderingChanged();
+        scr.createActivations();
+        scr.renderingChanged();
     }
 }

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

Reply via email to