Author: bobtarling
Date: 2011-05-13 10:56:38-0700
New Revision: 19421

Modified:
   trunk/src/argouml-app/src/org/argouml/i18n/button.properties
   
trunk/src/argouml-app/src/org/argouml/notation/providers/AssociationEndNameNotation.java
   
trunk/src/argouml-app/src/org/argouml/notation/providers/AssociationRoleNotation.java
   trunk/src/argouml-app/src/org/argouml/uml/diagram/UmlDiagramRenderer.java
   
trunk/src/argouml-app/src/org/argouml/uml/diagram/collaboration/CollabDiagramGraphModel.java
   
trunk/src/argouml-app/src/org/argouml/uml/diagram/collaboration/ui/CollabDiagramRenderer.java
   
trunk/src/argouml-app/src/org/argouml/uml/diagram/collaboration/ui/UMLCollaborationDiagram.java
   trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigAssociation.java

Log:
Handle Connector and ConnectorEnd metatypes

Modified: trunk/src/argouml-app/src/org/argouml/i18n/button.properties
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/i18n/button.properties?view=diff&pathrev=19421&r1=19420&r2=19421
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/i18n/button.properties        
(original)
+++ trunk/src/argouml-app/src/org/argouml/i18n/button.properties        
2011-05-13 10:56:38-0700
@@ -115,6 +115,7 @@
 button.new-componentinstance = New Component Instance
 button.new-compositestate = New Composite State
 button.new-composition = New Composition
+button.new-connector = New Connector
 button.new-createaction = New Create Action
 button.new-datatype = New Datatype
 button.new-deephistory = New Deep History

Modified: 
trunk/src/argouml-app/src/org/argouml/notation/providers/AssociationEndNameNotation.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/notation/providers/AssociationEndNameNotation.java?view=diff&pathrev=19421&r1=19420&r2=19421
==============================================================================
--- 
trunk/src/argouml-app/src/org/argouml/notation/providers/AssociationEndNameNotation.java
    (original)
+++ 
trunk/src/argouml-app/src/org/argouml/notation/providers/AssociationEndNameNotation.java
    2011-05-13 10:56:38-0700
@@ -62,7 +62,8 @@
      * @param associationEnd the uml element
      */
     public AssociationEndNameNotation(Object associationEnd) {
-        if (!Model.getFacade().isAAssociationEnd(associationEnd)) {
+        if (!Model.getFacade().isAAssociationEnd(associationEnd)
+                && !Model.getFacade().isAConnectorEnd(associationEnd)) {
             throw new IllegalArgumentException("This is not an 
AssociationEnd.");
         }
     }

Modified: 
trunk/src/argouml-app/src/org/argouml/notation/providers/AssociationRoleNotation.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/notation/providers/AssociationRoleNotation.java?view=diff&pathrev=19421&r1=19420&r2=19421
==============================================================================
--- 
trunk/src/argouml-app/src/org/argouml/notation/providers/AssociationRoleNotation.java
       (original)
+++ 
trunk/src/argouml-app/src/org/argouml/notation/providers/AssociationRoleNotation.java
       2011-05-13 10:56:38-0700
@@ -1,6 +1,6 @@
 /* $Id$
  *****************************************************************************
- * Copyright (c) 2009-2010 Contributors - see below
+ * Copyright (c) 2009-2011 Contributors - see below
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -8,6 +8,7 @@
  *
  * Contributors:
  *    Michiel van der Wulp
+ *    Bob Tarling
  *****************************************************************************
  *
  * Some portions of this file was previously release using the BSD License:
@@ -56,7 +57,7 @@
      * @param role the given associationRole
      */
     public AssociationRoleNotation(Object role) {
-        if (!Model.getFacade().isAAssociationRole(role)) {
+        if (!Model.getFacade().isAAssociationRole(role) && 
!Model.getFacade().isAConnector(role)) {
             throw new IllegalArgumentException(
                     "This is not an AssociationRole.");
         }
@@ -64,9 +65,16 @@
 
     @Override
     public void initialiseListener(Object modelElement) {
-        addElementListener(modelElement, 
-            new String[] {"name", "base"});
-        Object assoc = Model.getFacade().getBase(modelElement);
+        final Object assoc;
+        if (Model.getFacade().getUmlVersion().startsWith("1")) {
+            addElementListener(modelElement, 
+                new String[] {"name", "base"});
+            assoc = Model.getFacade().getBase(modelElement);
+        } else {
+            addElementListener(modelElement, 
+                    new String[] {"name", "type"});
+            assoc = Model.getFacade().getType(modelElement);
+        }
         if (assoc != null) {
             addElementListener(assoc, "name");
         }

Modified: 
trunk/src/argouml-app/src/org/argouml/uml/diagram/UmlDiagramRenderer.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/UmlDiagramRenderer.java?view=diff&pathrev=19421&r1=19420&r2=19421
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/diagram/UmlDiagramRenderer.java   
(original)
+++ trunk/src/argouml-app/src/org/argouml/uml/diagram/UmlDiagramRenderer.java   
2011-05-13 10:56:38-0700
@@ -352,9 +352,15 @@
     protected FigNode getFigNodeForAssociationEnd(
             final ArgoDiagram diagram,
             final Object associationEnd) {
-        Object classifier = 
-            Model.getFacade().getClassifier(associationEnd);
-        return getNodePresentationFor(diagram.getLayer(), classifier);
+        final Object element; 
+        if (Model.getFacade().getUmlVersion().startsWith("1")) {
+            element = 
+                Model.getFacade().getClassifier(associationEnd);
+        } else {
+            element = 
+                Model.getFacade().getLifeline(associationEnd);
+        }
+        return getNodePresentationFor(diagram.getLayer(), element);
     }
     
     protected void addEdge(Layer lay, FigEdge newEdge, Object edge) {

Modified: 
trunk/src/argouml-app/src/org/argouml/uml/diagram/collaboration/CollabDiagramGraphModel.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/collaboration/CollabDiagramGraphModel.java?view=diff&pathrev=19421&r1=19420&r2=19421
==============================================================================
--- 
trunk/src/argouml-app/src/org/argouml/uml/diagram/collaboration/CollabDiagramGraphModel.java
        (original)
+++ 
trunk/src/argouml-app/src/org/argouml/uml/diagram/collaboration/CollabDiagramGraphModel.java
        2011-05-13 10:56:38-0700
@@ -207,7 +207,20 @@
         }
        Object end0 = null;
         Object end1 = null;
-       if (Model.getFacade().isAAssociationRole(edge)) {
+        if (Model.getFacade().isAConnector(edge)) {
+            Collection conns = Model.getFacade().getConnections(edge);
+            Iterator iter = conns.iterator();
+            if (conns.size() < 2) {
+                return false;
+            }
+            Object associationEndRole0 = iter.next();
+            Object associationEndRole1 = iter.next();
+            if (associationEndRole0 == null || associationEndRole1 == null) {
+                return false;
+            }
+            end0 = Model.getFacade().getLifeline(associationEndRole0);
+            end1 = Model.getFacade().getLifeline(associationEndRole1);
+        } else if (Model.getFacade().isAAssociationRole(edge)) {
            Collection conns = Model.getFacade().getConnections(edge);
             Iterator iter = conns.iterator();
            if (conns.size() < 2) {

Modified: 
trunk/src/argouml-app/src/org/argouml/uml/diagram/collaboration/ui/CollabDiagramRenderer.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/collaboration/ui/CollabDiagramRenderer.java?view=diff&pathrev=19421&r1=19420&r2=19421
==============================================================================
--- 
trunk/src/argouml-app/src/org/argouml/uml/diagram/collaboration/ui/CollabDiagramRenderer.java
       (original)
+++ 
trunk/src/argouml-app/src/org/argouml/uml/diagram/collaboration/ui/CollabDiagramRenderer.java
       2011-05-13 10:56:38-0700
@@ -139,7 +139,8 @@
         DiagramSettings settings = diag.getDiagramSettings();
 
         FigEdge newEdge = null;
-        if (Model.getFacade().isAAssociationRole(edge)) {
+        if (Model.getFacade().isAAssociationRole(edge)
+                || Model.getFacade().isAConnector(edge)) {
             Object[] associationEnds = 
                 Model.getFacade().getConnections(edge).toArray();
             newEdge = new FigAssociationRole(

Modified: 
trunk/src/argouml-app/src/org/argouml/uml/diagram/collaboration/ui/UMLCollaborationDiagram.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/collaboration/ui/UMLCollaborationDiagram.java?view=diff&pathrev=19421&r1=19420&r2=19421
==============================================================================
--- 
trunk/src/argouml-app/src/org/argouml/uml/diagram/collaboration/ui/UMLCollaborationDiagram.java
     (original)
+++ 
trunk/src/argouml-app/src/org/argouml/uml/diagram/collaboration/ui/UMLCollaborationDiagram.java
     2011-05-13 10:56:38-0700
@@ -95,6 +95,8 @@
     private Action actionClassifierRole;
     private Action actionGeneralize;
 
+    private Action actionConnector;
+
     private Action actionAssociation;
     private Action actionAggregation;
     private Action actionComposition;
@@ -204,16 +206,28 @@
      * {@inheritDoc}
      */
     protected Object[] getUmlActions() {
-        Object[] actions = {
-           getActionClassifierRole(),
-           null,
-           getAssociationActions(),
-           getActionGeneralize(),
-           getActionDepend(),
-            null,
-            getActionMessage(), //this one behaves differently, hence 
seperated!
-        };
-        return actions;
+        if (Model.getFacade().getUmlVersion().startsWith("1")) {
+            Object[] actions = {
+                getActionClassifierRole(),
+                null,
+                getAssociationActions(),
+                getActionGeneralize(),
+                getActionDepend(),
+                null,
+                getActionMessage(), //this one behaves differently, hence 
seperated!
+            };
+            return actions;
+        } else {
+            Object[] actions = {
+                getActionClassifierRole(),
+                getActionAssociation(),
+                getActionGeneralize(),
+                getActionDepend(),
+                null,
+                getActionMessage(), //this one behaves differently, hence 
seperated!
+            };
+            return actions;
+        }
     }
 
     private Object[] getAssociationActions() {
@@ -298,6 +312,23 @@
         }
         return actionAssociation;
     }
+    
+    /**
+     * @return Returns the actionAssociation.
+     */
+    protected Action getActionConnector() {
+        if (actionConnector == null) {
+            actionConnector =
+                new RadioAction(
+                    new ActionSetMode(
+                        ModeCreatePolyEdge.class,
+                        "edgeClass",
+                        Model.getMetaTypes().getConnector(),
+                        "button.new-connector"));
+        }
+        return actionConnector;
+    }
+    
     /**
      * @return Returns the actionComposition.
      */

Modified: 
trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigAssociation.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigAssociation.java?view=diff&pathrev=19421&r1=19420&r2=19421
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigAssociation.java    
(original)
+++ trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigAssociation.java    
2011-05-13 10:56:38-0700
@@ -553,7 +553,10 @@
         if (getOwner() == null ) {
             LOG.error("Trying to paint a FigAssociation without an owner. ");
         } else {
-            applyArrowHeads(); 
+            if (!Model.getFacade().isAConnector(getOwner())) {
+                // If we're a UML2 Connector then we don't need arrows
+                applyArrowHeads(); 
+            }
         }
         if (getSourceArrowHead() != null && getDestArrowHead() != null) {
             getSourceArrowHead().setLineColor(getLineColor());

------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2735850

To unsubscribe from this discussion, e-mail: 
[[email protected]].

Reply via email to