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