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]].
