svn commit: r12999 - trunk/src_new/org/argouml/uml/diagram: . collaboration/ui deployment/ui static_structure/ui use_case/ui

[email protected]
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
Author: bobtarling
Date: 2007-07-08 11:06:30-0700
New Revision: 12999

Modified:
   trunk/src_new/org/argouml/uml/diagram/UmlDiagramRenderer.java
   trunk/src_new/org/argouml/uml/diagram/collaboration/ui/CollabDiagramRenderer.java
   trunk/src_new/org/argouml/uml/diagram/deployment/ui/DeploymentDiagramRenderer.java
   trunk/src_new/org/argouml/uml/diagram/static_structure/ui/ClassDiagramRenderer.java
   trunk/src_new/org/argouml/uml/diagram/use_case/ui/UseCaseDiagramRenderer.java

Log:
Move common code into base class

Modified: trunk/src_new/org/argouml/uml/diagram/UmlDiagramRenderer.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src_new/org/argouml/uml/diagram/UmlDiagramRenderer.java?view=diff&rev=12999&p1=trunk/src_new/org/argouml/uml/diagram/UmlDiagramRenderer.java&p2=trunk/src_new/org/argouml/uml/diagram/UmlDiagramRenderer.java&r1=12998&r2=12999
==============================================================================
--- trunk/src_new/org/argouml/uml/diagram/UmlDiagramRenderer.java	(original)
+++ trunk/src_new/org/argouml/uml/diagram/UmlDiagramRenderer.java	2007-07-08 11:06:30-0700
@@ -76,6 +76,7 @@
 import org.argouml.uml.diagram.ui.FigAssociationEnd;
 import org.argouml.uml.diagram.ui.FigClassAssociationClass;
 import org.argouml.uml.diagram.ui.FigDependency;
+import org.argouml.uml.diagram.ui.FigEdgeModelElement;
 import org.argouml.uml.diagram.ui.FigGeneralization;
 import org.argouml.uml.diagram.ui.FigMessage;
 import org.argouml.uml.diagram.ui.FigNodeAssociation;
@@ -87,6 +88,7 @@
 import org.argouml.uml.diagram.use_case.ui.FigExtend;
 import org.argouml.uml.diagram.use_case.ui.FigInclude;
 import org.argouml.uml.diagram.use_case.ui.FigUseCase;
+import org.tigris.gef.base.Layer;
 import org.tigris.gef.graph.GraphEdgeRenderer;
 import org.tigris.gef.graph.GraphNodeRenderer;
 import org.tigris.gef.presentation.Fig;
@@ -301,15 +303,87 @@
 
         return newEdge;
     }
-    
-    final protected void setSourcePort(FigEdge edge, FigNode source) {
+
+    /**
+     * Find the Figs in the given layer that should be the source and
+     * destination and attach these to either end of the FigEdge
+     * @param layer the layer to look for the FigNodes
+     * @param newEdge The edge to attach
+     */
+    protected final void setPorts(Layer layer, FigEdge newEdge) {
+        Object modelElement = newEdge.getOwner();
+        if (newEdge.getSourcePortFig() == null) {
+            Object source;
+            if (modelElement instanceof CommentEdge) {
+                source = ((CommentEdge) modelElement).getSource();
+            } else {
+                source = Model.getUmlHelper().getSource(modelElement);
+            }
+            FigNode sourceNode = getNodePresentationFor(layer, source);
+            assert (sourceNode != null) : "No FigNode found for " + source;
+            setSourcePort(newEdge, sourceNode);
+        }
+
+        if (newEdge.getDestPortFig() == null) {
+            Object dest;
+            if (modelElement instanceof CommentEdge) {
+                dest = ((CommentEdge) modelElement).getDestination();
+            } else {
+                dest = Model.getUmlHelper().getDestination(newEdge.getOwner());
+            }
+            setDestPort(newEdge, getNodePresentationFor(layer, dest));
+        }
+        
+        if (newEdge.getSourcePortFig() == null
+                || newEdge.getDestPortFig() == null) {
+            throw new IllegalStateException("Edge of type "
+                + newEdge.getClass().getName()
+                + " created with no source or destination port");
+        }
+    }
+
+    private void setSourcePort(FigEdge edge, FigNode source) {
         edge.setSourcePortFig(source);
         edge.setSourceFigNode(source);
     }
 
-    final protected void setDestPort(FigEdge edge, FigNode dest) {
+    private void setDestPort(FigEdge edge, FigNode dest) {
         edge.setDestPortFig(dest);
         edge.setDestFigNode(dest);
     }
+    
+    /**
+     * Get the FigNode from the given layer that represents the given
+     * model element.
+     * The FigNode portion of an association class is returned in preference
+     * to the FigEdge portion.
+     * If no FigNode is found then a FIgEdge is searched for and the FigNode
+     * that acts as its edge port is returned.
+     * @param lay the layer containing the Fig
+     * @param modelElement the model element to find presentation for
+     * @return the FigNode presentation of the model element
+     */
+    private FigNode getNodePresentationFor(Layer lay, Object modelElement) {
+        assert modelElement != null : "A modelElement must be supplied";
+        for (Iterator it = lay.getContentsNoEdges().iterator();
+                it.hasNext(); ) {
+            Object fig = it.next();
+            if (fig instanceof FigNode
+                    && ((FigNode) fig).getOwner().equals(modelElement)) {
+                return ((FigNode) fig);
+            }
+        }
+        for (Iterator it = lay.getContentsEdgesOnly().iterator();
+            it.hasNext(); ) {
+            Object fig = it.next();
+            if (fig instanceof FigEdgeModelElement
+                    && modelElement.equals(((FigEdgeModelElement) fig)
+                            .getOwner())) {
+                return ((FigEdgeModelElement) fig).getEdgePort();
+            }
+        }
+        return null;
+    }
+    
 
 } /* end class CollabDiagramRenderer */

Modified: trunk/src_new/org/argouml/uml/diagram/collaboration/ui/CollabDiagramRenderer.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src_new/org/argouml/uml/diagram/collaboration/ui/CollabDiagramRenderer.java?view=diff&rev=12999&p1=trunk/src_new/org/argouml/uml/diagram/collaboration/ui/CollabDiagramRenderer.java&p2=trunk/src_new/org/argouml/uml/diagram/collaboration/ui/CollabDiagramRenderer.java&r1=12998&r2=12999
==============================================================================
--- trunk/src_new/org/argouml/uml/diagram/collaboration/ui/CollabDiagramRenderer.java	(original)
+++ trunk/src_new/org/argouml/uml/diagram/collaboration/ui/CollabDiagramRenderer.java	2007-07-08 11:06:30-0700
@@ -126,33 +126,8 @@
                     "Don't know how to create FigEdge for model type "
                     + edge.getClass().getName());
         }
-
-        if (newEdge.getSourcePortFig() == null) {
-            Object source;
-            if (edge instanceof CommentEdge) {
-                source = ((CommentEdge) edge).getSource();
-            } else {
-                source = Model.getUmlHelper().getSource(edge);
-            }
-            setSourcePort(newEdge, (FigNode) lay.presentationFor(source));
-        }
-
-        if (newEdge.getDestPortFig() == null) {
-            Object dest;
-            if (edge instanceof CommentEdge) {
-                dest = ((CommentEdge) edge).getDestination();
-            } else {
-                dest = Model.getUmlHelper().getDestination(edge);
-            }
-            setDestPort(newEdge, (FigNode) lay.presentationFor(dest));
-        }
-
-        if (newEdge.getSourcePortFig() == null
-                || newEdge.getDestPortFig() == null) {
-            throw new IllegalStateException("Edge of type "
-                    + newEdge.getClass().getName()
-                    + " created with no source or destination port");
-        }
+        
+        setPorts(lay, newEdge);
 
         assert newEdge != null : "There has been no FigEdge created";
         assert (newEdge.getDestFigNode() != null) 

Modified: trunk/src_new/org/argouml/uml/diagram/deployment/ui/DeploymentDiagramRenderer.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src_new/org/argouml/uml/diagram/deployment/ui/DeploymentDiagramRenderer.java?view=diff&rev=12999&p1=trunk/src_new/org/argouml/uml/diagram/deployment/ui/DeploymentDiagramRenderer.java&p2=trunk/src_new/org/argouml/uml/diagram/deployment/ui/DeploymentDiagramRenderer.java&r1=12998&r2=12999
==============================================================================
--- trunk/src_new/org/argouml/uml/diagram/deployment/ui/DeploymentDiagramRenderer.java	(original)
+++ trunk/src_new/org/argouml/uml/diagram/deployment/ui/DeploymentDiagramRenderer.java	2007-07-08 11:06:30-0700
@@ -178,33 +178,8 @@
                     "Don't know how to create FigEdge for model type "
                     + edge.getClass().getName());
         }
-
-        if (newEdge.getSourcePortFig() == null) {
-            Object source;
-            if (edge instanceof CommentEdge) {
-                source = ((CommentEdge) edge).getSource();
-            } else {
-                source = Model.getUmlHelper().getSource(edge);
-            }
-            setSourcePort(newEdge, (FigNode) lay.presentationFor(source));
-        }
-
-        if (newEdge.getDestPortFig() == null) {
-            Object dest;
-            if (edge instanceof CommentEdge) {
-                dest = ((CommentEdge) edge).getDestination();
-            } else {
-                dest = Model.getUmlHelper().getDestination(edge);
-            }
-            setDestPort(newEdge, (FigNode) lay.presentationFor(dest));
-        }
-
-        if (newEdge.getSourcePortFig() == null
-                || newEdge.getDestPortFig() == null) {
-            throw new IllegalStateException("Edge of type "
-                    + newEdge.getClass().getName()
-                    + " created with no source or destination port");
-        }
+        
+        setPorts(lay, newEdge);
 
         assert newEdge != null : "There has been no FigEdge created";
         assert (newEdge.getDestFigNode() != null) 

Modified: trunk/src_new/org/argouml/uml/diagram/static_structure/ui/ClassDiagramRenderer.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src_new/org/argouml/uml/diagram/static_structure/ui/ClassDiagramRenderer.java?view=diff&rev=12999&p1=trunk/src_new/org/argouml/uml/diagram/static_structure/ui/ClassDiagramRenderer.java&p2=trunk/src_new/org/argouml/uml/diagram/static_structure/ui/ClassDiagramRenderer.java&r1=12998&r2=12999
==============================================================================
--- trunk/src_new/org/argouml/uml/diagram/static_structure/ui/ClassDiagramRenderer.java	(original)
+++ trunk/src_new/org/argouml/uml/diagram/static_structure/ui/ClassDiagramRenderer.java	2007-07-08 11:06:30-0700
@@ -265,36 +265,10 @@
                     "Don't know how to create FigEdge for model type "
                     + edge.getClass().getName());
         }
+        
+        setPorts(lay, newEdge);
 
-        if (newEdge.getSourcePortFig() == null) {
-            Object source;
-            if (edge instanceof CommentEdge) {
-                source = ((CommentEdge) edge).getSource();
-            } else {
-                source = Model.getUmlHelper().getSource(edge);
-            }
-            FigNode sourceNode = getNodePresentationFor(lay, source);
-            assert (sourceNode != null) : "No FigNode found for " + source;
-            setSourcePort(newEdge, sourceNode);
-        }
-
-        if (newEdge.getDestPortFig() == null) {
-            Object dest;
-            if (edge instanceof CommentEdge) {
-                dest = ((CommentEdge) edge).getDestination();
-            } else {
-                dest = Model.getUmlHelper().getDestination(edge);
-            }
-            LOG.info("The dest model element is " + dest);
-            setDestPort(newEdge, getNodePresentationFor(lay, dest));
-        }
-
-        if (newEdge.getSourcePortFig() == null
-                || newEdge.getDestPortFig() == null) {
-            throw new IllegalStateException("Edge of type "
-                    + newEdge.getClass().getName()
-                    + " created with no source or destination port");
-        }
+        assert newEdge != null : "There has been no FigEdge created";
 
         newEdge.setDiElement(
             GraphChangeAdapter.getInstance().createElement(gm, edge));
@@ -313,36 +287,4 @@
         return newEdge;
     }
 
-    /**
-     * Get the FigNode from the given layer that represents the given
-     * model element.
-     * The FigNode portion of an association class is returned in preference
-     * to the FigEdge portion.
-     * If no FigNode is found then a FIgEdge is searched for and the FigNode
-     * that acts as its edge port is returned.
-     * @param lay the layer containing the Fig
-     * @param modelElement the model element to find presentation for
-     * @return the FigNode presentation of the model element
-     */
-    private FigNode getNodePresentationFor(Layer lay, Object modelElement) {
-        assert modelElement != null : "A modelElement must be supplied";
-        for (Iterator it = lay.getContentsNoEdges().iterator();
-                it.hasNext(); ) {
-            Object fig = it.next();
-            if (fig instanceof FigNode
-                    && ((FigNode) fig).getOwner().equals(modelElement)) {
-                return ((FigNode) fig);
-            }
-        }
-        for (Iterator it = lay.getContentsEdgesOnly().iterator();
-            it.hasNext(); ) {
-            Object fig = it.next();
-            if (fig instanceof FigEdgeModelElement
-                    && modelElement.equals(((FigEdgeModelElement) fig)
-                	    .getOwner())) {
-                return ((FigEdgeModelElement) fig).getEdgePort();
-            }
-        }
-        return null;
-    }
 } /* end class ClassDiagramRenderer */

Modified: trunk/src_new/org/argouml/uml/diagram/use_case/ui/UseCaseDiagramRenderer.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src_new/org/argouml/uml/diagram/use_case/ui/UseCaseDiagramRenderer.java?view=diff&rev=12999&p1=trunk/src_new/org/argouml/uml/diagram/use_case/ui/UseCaseDiagramRenderer.java&p2=trunk/src_new/org/argouml/uml/diagram/use_case/ui/UseCaseDiagramRenderer.java&r1=12998&r2=12999
==============================================================================
--- trunk/src_new/org/argouml/uml/diagram/use_case/ui/UseCaseDiagramRenderer.java	(original)
+++ trunk/src_new/org/argouml/uml/diagram/use_case/ui/UseCaseDiagramRenderer.java	2007-07-08 11:06:30-0700
@@ -254,30 +254,7 @@
                     "Don't know how to create FigEdge for model type "
                     + edge.getClass().getName());
         } else {
-            if (newEdge.getSourcePortFig() == null) {
-                Object source;
-                if (edge instanceof CommentEdge) {
-                    source = ((CommentEdge) edge).getSource();
-                } else {
-                    source = Model.getUmlHelper().getSource(edge);
-                }
-                setSourcePort(newEdge, (FigNode) lay.presentationFor(source));
-            }
-            if (newEdge.getDestPortFig() == null) {
-                Object dest;
-                if (edge instanceof CommentEdge) {
-                    dest = ((CommentEdge) edge).getDestination();
-                } else {
-                    dest = Model.getUmlHelper().getDestination(edge);
-                }
-                setDestPort(newEdge, (FigNode) lay.presentationFor(dest));
-            }
-            if (newEdge.getSourcePortFig() == null
-                    || newEdge.getDestPortFig() == null) {
-                throw new IllegalStateException("Edge of type "
-                    + newEdge.getClass().getName()
-                    + " created with no source or destination port");
-            }
+            setPorts(lay, newEdge);
         }
 
         lay.add(newEdge);
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.