svn commit: r17602 - trunk/src/argouml-app/src/org/argouml/uml/diagram: . collaboration/ui deployment/ui state state/ui static_structure/ui ui use_case/ui
Bob Tarling <[email protected]>
| Newsgroups | gmane.comp.lang.uml.argouml.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: bobtarling
Date: 2009-12-04 04:45:12-0800
New Revision: 17602
Modified:
trunk/src/argouml-app/src/org/argouml/uml/diagram/UmlDiagramRenderer.java
trunk/src/argouml-app/src/org/argouml/uml/diagram/collaboration/ui/CollabDiagramRenderer.java
trunk/src/argouml-app/src/org/argouml/uml/diagram/deployment/ui/DeploymentDiagramRenderer.java
trunk/src/argouml-app/src/org/argouml/uml/diagram/state/StateDiagramGraphModel.java
trunk/src/argouml-app/src/org/argouml/uml/diagram/state/ui/StateDiagramRenderer.java
trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/ClassDiagramRenderer.java
trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigClassifierBox.java
trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigCompartment.java
trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigEditableCompartment.java
trunk/src/argouml-app/src/org/argouml/uml/diagram/use_case/ui/UseCaseDiagramRenderer.java
Log:
Move common code to base class
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=17602&r1=17601&r2=17602
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/diagram/UmlDiagramRenderer.java (original)
+++ trunk/src/argouml-app/src/org/argouml/uml/diagram/UmlDiagramRenderer.java 2009-12-04 04:45:12-0800
@@ -342,4 +342,31 @@
Model.getFacade().getClassifier(associationEnd);
return (FigNode) diagram.presentationFor(classifier);
}
+
+ protected void addEdge(Layer lay, FigEdge newEdge, Object edge) {
+ if (newEdge == null) {
+ throw new IllegalArgumentException(
+ "Don't know how to create FigEdge for model type "
+ + edge.getClass().getName());
+ }
+
+ setPorts(lay, newEdge);
+
+ assert newEdge != null : "There has been no FigEdge created";
+
+// newEdge.setDiElement(
+// GraphChangeAdapter.getInstance().createElement(gm, edge));
+
+ assert newEdge != null : "There has been no FigEdge created";
+ assert (newEdge.getDestFigNode() != null)
+ : "The FigEdge has no dest node";
+ assert (newEdge.getDestPortFig() != null)
+ : "The FigEdge has no dest port";
+ assert (newEdge.getSourceFigNode() != null)
+ : "The FigEdge has no source node";
+ assert (newEdge.getSourcePortFig() != null)
+ : "The FigEdge has no source port";
+
+ lay.add(newEdge);
+ }
}
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=17602&r1=17601&r2=17602
==============================================================================
--- 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 2009-12-04 04:45:12-0800
@@ -150,25 +150,7 @@
newEdge = new FigEdgeNote(edge, settings); // TODO -> settings
}
- if (newEdge == null) {
- throw new IllegalArgumentException(
- "Don't know how to create FigEdge for model type "
- + edge.getClass().getName());
- }
-
- setPorts(lay, newEdge);
-
- assert newEdge != null : "There has been no FigEdge created";
- assert (newEdge.getDestFigNode() != null)
- : "The FigEdge has no dest node";
- assert (newEdge.getDestPortFig() != null)
- : "The FigEdge has no dest port";
- assert (newEdge.getSourceFigNode() != null)
- : "The FigEdge has no source node";
- assert (newEdge.getSourcePortFig() != null)
- : "The FigEdge has no source port";
-
- lay.add(newEdge);
+ addEdge(lay, newEdge, edge);
return newEdge;
}
}
Modified: trunk/src/argouml-app/src/org/argouml/uml/diagram/deployment/ui/DeploymentDiagramRenderer.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/deployment/ui/DeploymentDiagramRenderer.java?view=diff&pathrev=17602&r1=17601&r2=17602
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/diagram/deployment/ui/DeploymentDiagramRenderer.java (original)
+++ trunk/src/argouml-app/src/org/argouml/uml/diagram/deployment/ui/DeploymentDiagramRenderer.java 2009-12-04 04:45:12-0800
@@ -192,25 +192,7 @@
} else if (edge instanceof CommentEdge) {
newEdge = new FigEdgeNote(edge, settings);
}
- if (newEdge == null) {
- throw new IllegalArgumentException(
- "Don't know how to create FigEdge for model type "
- + edge.getClass().getName());
- }
-
- setPorts(lay, newEdge);
-
- assert newEdge != null : "There has been no FigEdge created";
- assert (newEdge.getDestFigNode() != null)
- : "The FigEdge has no dest node";
- assert (newEdge.getDestPortFig() != null)
- : "The FigEdge has no dest port";
- assert (newEdge.getSourceFigNode() != null)
- : "The FigEdge has no source node";
- assert (newEdge.getSourcePortFig() != null)
- : "The FigEdge has no source port";
-
- lay.add(newEdge);
+ addEdge(lay, newEdge, edge);
return newEdge;
}
}
Modified: trunk/src/argouml-app/src/org/argouml/uml/diagram/state/StateDiagramGraphModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/state/StateDiagramGraphModel.java?view=diff&pathrev=17602&r1=17601&r2=17602
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/diagram/state/StateDiagramGraphModel.java (original)
+++ trunk/src/argouml-app/src/org/argouml/uml/diagram/state/StateDiagramGraphModel.java 2009-12-04 04:45:12-0800
@@ -249,11 +249,28 @@
*/
public void addEdge(Object edge) {
LOG.debug("adding statechart/activity diagram edge!!!!!!");
+ if (edge == null) {
+ throw new IllegalArgumentException("Cannot add a null edge");
+ }
+
+ if (getDestPort(edge) == null || getSourcePort(edge) == null) {
+ throw new IllegalArgumentException(
+ "The source and dest port should be provided on an edge");
+ }
+
+ if (LOG.isInfoEnabled()) {
+ LOG.info("Adding an edge of type "
+ + edge.getClass().getName()
+ + " to class diagram.");
+ }
if (!canAddEdge(edge)) {
+ LOG.info("Attempt to add edge rejected");
return;
}
+
getEdges().add(edge);
+
fireEdgeAdded(edge);
}
Modified: trunk/src/argouml-app/src/org/argouml/uml/diagram/state/ui/StateDiagramRenderer.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/state/ui/StateDiagramRenderer.java?view=diff&pathrev=17602&r1=17601&r2=17602
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/diagram/state/ui/StateDiagramRenderer.java (original)
+++ trunk/src/argouml-app/src/org/argouml/uml/diagram/state/ui/StateDiagramRenderer.java 2009-12-04 04:45:12-0800
@@ -119,30 +119,7 @@
} else if (edge instanceof CommentEdge) {
newEdge = new FigEdgeNote(edge, settings); // TODO -> settings
}
- if (newEdge == null) {
- throw new IllegalArgumentException(
- "Don't know how to create FigEdge for model type "
- + edge.getClass().getName());
- }
-
- setPorts(lay, newEdge);
-
- assert newEdge != null : "There has been no FigEdge created";
-
-// newEdge.setDiElement(
-// GraphChangeAdapter.getInstance().createElement(gm, edge));
-
- assert newEdge != null : "There has been no FigEdge created";
- assert (newEdge.getDestFigNode() != null)
- : "The FigEdge has no dest node";
- assert (newEdge.getDestPortFig() != null)
- : "The FigEdge has no dest port";
- assert (newEdge.getSourceFigNode() != null)
- : "The FigEdge has no source node";
- assert (newEdge.getSourcePortFig() != null)
- : "The FigEdge has no source port";
-
- lay.add(newEdge);
+ addEdge(lay, newEdge, edge);
return newEdge;
}
Modified: trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/ClassDiagramRenderer.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/ClassDiagramRenderer.java?view=diff&pathrev=17602&r1=17601&r2=17602
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/ClassDiagramRenderer.java (original)
+++ trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/ClassDiagramRenderer.java 2009-12-04 04:45:12-0800
@@ -264,30 +264,7 @@
newEdge = new FigEdgeNote(edge, settings);
}
- if (newEdge == null) {
- throw new IllegalArgumentException(
- "Don't know how to create FigEdge for model type "
- + edge.getClass().getName());
- }
-
- setPorts(lay, newEdge);
-
- assert newEdge != null : "There has been no FigEdge created";
-
-// newEdge.setDiElement(
-// GraphChangeAdapter.getInstance().createElement(gm, edge));
-
- assert newEdge != null : "There has been no FigEdge created";
- assert (newEdge.getDestFigNode() != null)
- : "The FigEdge has no dest node";
- assert (newEdge.getDestPortFig() != null)
- : "The FigEdge has no dest port";
- assert (newEdge.getSourceFigNode() != null)
- : "The FigEdge has no source node";
- assert (newEdge.getSourcePortFig() != null)
- : "The FigEdge has no source port";
-
- lay.add(newEdge);
+ addEdge(lay, newEdge, edge);
return newEdge;
}
}
Modified: trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigClassifierBox.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigClassifierBox.java?view=diff&pathrev=17602&r1=17601&r2=17602
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigClassifierBox.java (original)
+++ trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigClassifierBox.java 2009-12-04 04:45:12-0800
@@ -35,6 +35,7 @@
import org.argouml.model.AddAssociationEvent;
import org.argouml.model.AssociationChangeEvent;
+import org.argouml.model.AttributeChangeEvent;
import org.argouml.model.Model;
import org.argouml.model.RemoveAssociationEvent;
import org.argouml.model.UmlChangeEvent;
@@ -147,6 +148,14 @@
// TODO: We should be able to just call renderingChanged on the child
// figs here instead of doing an updateOperations...
updateOperations();
+
+ // TODO: Taken from FigClassifierBoxWithAttribute to handle events
+ // on an attribute. All this event handling should eventually be moved
+ // to the compartment Fig for attributes
+ if (Model.getFacade().isAAttribute(getOwner())) {
+ // TODO: We shouldn't actually have to do all this work
+ updateAttributes();
+ }
}
/**
@@ -188,8 +197,53 @@
updateOperations();
}
}
+
+ // TODO: Taken from FigClassifierBoxWithAttribute to handle events
+ // on an attribute. All this event handling should eventually be moved
+ // to the compartment Fig for attributes
+ if (Model.getFacade().isAAttribute(getOwner())) {
+ if (event instanceof AttributeChangeEvent) {
+ Object source = event.getSource();
+ if (Model.getFacade().isAAttribute(source)) {
+ // TODO: We just need to get someone to re-render a single
+ // line of text which represents the element here, but I'm
+ // not sure how to do that. - tfm
+ // TODO: Bob replies - we shouldn't be interested in this
+ // event here. The FigFeature (or its notation) should be
+ // listen for change and the FigFeature should be update
+ // from that.
+ updateAttributes();
+ }
+ } else if (event instanceof AssociationChangeEvent
+ && getOwner().equals(event.getSource())) {
+ Object o = null;
+ if (event instanceof AddAssociationEvent) {
+ o = event.getNewValue();
+ } else if (event instanceof RemoveAssociationEvent) {
+ o = event.getOldValue();
+ }
+ if (Model.getFacade().isAAttribute(o)) {
+ // TODO: Bob says - we should not be listening here for
+ // addition and removal of attributes. This should be done in
+ // FigAttributesCompartment.
+ updateAttributes();
+ }
+ }
+ }
}
+ protected void updateAttributes() {
+ FigCompartment fc = getCompartment(Model.getMetaTypes().getAttribute());
+ if (!fc.isVisible()) {
+ return;
+ }
+ fc.populate();
+
+ // TODO: make setBounds, calcBounds and updateBounds consistent
+ setBounds(getBounds());
+ }
+
+
/**
* @return The Fig for the operations compartment
*/
Modified: trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigCompartment.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigCompartment.java?view=diff&pathrev=17602&r1=17601&r2=17602
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigCompartment.java (original)
+++ trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigCompartment.java 2009-12-04 04:45:12-0800
@@ -75,7 +75,7 @@
private void constructFigs(int x, int y, int w, int h) {
bigPort = new FigRect(x, y, w, h, LINE_COLOR, FILL_COLOR);
- bigPort.setFilled(true);
+ bigPort.setFilled(false);
bigPort.setLineWidth(0);
addFig(bigPort);
Modified: trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigEditableCompartment.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigEditableCompartment.java?view=diff&pathrev=17602&r1=17601&r2=17602
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigEditableCompartment.java (original)
+++ trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigEditableCompartment.java 2009-12-04 04:45:12-0800
@@ -421,15 +421,6 @@
}
}
- @Override
- public void setFilled(boolean f) {
- super.setFilled(f);
- compartmentSeparator.setFilled(true);
- if (externalSeparatorFig != null) {
- externalSeparatorFig.setFilled(true);
- }
- }
-
/**
* Set new bounds for the external separator line (if it exists).
*
Modified: trunk/src/argouml-app/src/org/argouml/uml/diagram/use_case/ui/UseCaseDiagramRenderer.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/use_case/ui/UseCaseDiagramRenderer.java?view=diff&pathrev=17602&r1=17601&r2=17602
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/diagram/use_case/ui/UseCaseDiagramRenderer.java (original)
+++ trunk/src/argouml-app/src/org/argouml/uml/diagram/use_case/ui/UseCaseDiagramRenderer.java 2009-12-04 04:45:12-0800
@@ -246,20 +246,7 @@
newEdge = new FigEdgeNote(edge, settings);
}
- if (newEdge == null) {
- throw new IllegalArgumentException(
- "Don't know how to create FigEdge for model type "
- + edge.getClass().getName());
- } else {
- setPorts(lay, newEdge);
- }
-
- lay.add(newEdge);
- newEdge.setLayer(lay);
-
-// newEdge.setDiElement(
-// GraphChangeAdapter.getInstance().createElement(gm, edge));
-
+ addEdge(lay, newEdge, edge);
return newEdge;
}
------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2427006
To unsubscribe from this discussion, e-mail: [[email protected]].