Author: bobtarling
Date: 2011-03-24 07:57:39-0700
New Revision: 19127
Modified:
trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigAssociation.java
Log:
Do not cache the value for arrowType - just generate it and return it when getArrowType is called.
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=19127&r1=19126&r2=19127
==============================================================================
--- 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-03-24 07:57:39-0700
@@ -151,8 +151,6 @@
if (Model.getFacade().getUmlVersion().charAt(0) == '2'
&& pce instanceof AssociationChangeEvent
&& pce.getPropertyName().equals("navigableOwnedEnd")) {
- srcEnd.getGroup().determineArrowHead();
- destEnd.getGroup().determineArrowHead();
applyArrowHeads();
damage();
}
@@ -855,7 +853,6 @@
private FigRole role;
private FigOrdering ordering;
- private int arrowType = 0;
private FigEdgeModelElement figEdge;
FigAssociationEndAnnotation(FigEdgeModelElement edge, Object owner,
@@ -869,7 +866,6 @@
ordering = new FigOrdering(owner, settings);
addFig(ordering);
- determineArrowHead();
Model.getPump().addModelEventListener(this, owner,
new String[] {"isNavigable", "aggregation", "participant"});
}
@@ -893,7 +889,6 @@
if (pce instanceof AttributeChangeEvent
&& (pce.getPropertyName().equals("isNavigable")
|| pce.getPropertyName().equals("aggregation"))) {
- determineArrowHead();
((FigAssociation) figEdge).applyArrowHeads();
damage();
}
@@ -923,27 +918,6 @@
}
/**
- * Decide which arrow head should appear
- */
- void determineArrowHead() {
- assert getOwner() != null;
-
- final Object ak = getAggregateKind();
- boolean nav = Model.getFacade().isNavigable(getOwner());
-
- if (Model.getAggregationKind().getAggregate().equals(ak)) {
- arrowType = AGGREGATE;
- } else if (Model.getAggregationKind().getComposite().equals(ak)) {
- arrowType = COMPOSITE;
- } else {
- arrowType = NONE;
- }
- if (nav) {
- arrowType += 3;
- }
- }
-
- /**
* Get the aggregation kind to display at this end
* @return the aggregation kind or null if this is not a binary association
*/
@@ -954,7 +928,9 @@
Object ass = Model.getFacade().getAssociation(getOwner());
Collection ends = Model.getFacade().getConnections(ass);
if (ends.size() != 2) {
- return null;
+ // Aggregation is meaningless in a n-ary association
+ // so always assume none.
+ return Model.getAggregationKind().getNone();
}
Iterator it = ends.iterator();
Object aggEnd = it.next();
@@ -969,6 +945,23 @@
* @return the current arrow type of this end of the association
*/
public int getArrowType() {
+ assert getOwner() != null;
+
+
+ final Object ak = getAggregateKind();
+ boolean nav = Model.getFacade().isNavigable(getOwner());
+
+ int arrowType;
+ if (Model.getAggregationKind().getAggregate().equals(ak)) {
+ arrowType = AGGREGATE;
+ } else if (Model.getAggregationKind().getComposite().equals(ak)) {
+ arrowType = COMPOSITE;
+ } else {
+ arrowType = NONE;
+ }
+ if (nav) {
+ arrowType += NAV;
+ }
return arrowType;
}
------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2713847
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.