Author: bobtarling
Date: 2010-07-19 17:11:25-0700
New Revision: 18537
Modified:
trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/FigAction.java
trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/UMLActivityDiagram.java
Log:
FigAction can now draw AcceptEventAction and SendSignalAction
Modified: trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/FigAction.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/FigAction.java?view=diff&pathrev=18537&r1=18536&r2=18537
==============================================================================
--- trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/FigAction.java (original)
+++ trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/FigAction.java 2010-07-19 17:11:25-0700
@@ -1,4 +1,4 @@
-/* $Id: FigAction.java bobtarling $
+/* $Id: $
*****************************************************************************
* Copyright (c) 2010 Contributors - see below
* All rights reserved. This program and the accompanying materials
@@ -14,10 +14,14 @@
package org.argouml.activity2.diagram;
import java.awt.Dimension;
+import java.awt.Polygon;
import java.awt.Rectangle;
+
+import org.argouml.model.Model;
import org.argouml.uml.diagram.DiagramSettings;
import org.argouml.uml.diagram.ui.FigNodeModelElement;
import org.tigris.gef.presentation.Fig;
+import org.tigris.gef.presentation.FigPoly;
import org.tigris.gef.presentation.FigRRect;
public class FigAction extends FigNodeModelElement {
@@ -41,18 +45,52 @@
@Override
protected Fig createBigPortFig() {
- return new FigRRect(X0, Y0, WIDTH, HEIGHT, LINE_COLOR, FILL_COLOR);
+ if (Model.getFacade().isASendSignalAction(getOwner())) {
+ final int[] xs = new int[6];
+ final int[] ys = new int[6];
+
+ xs[0] = X0; ys[0] = Y0;
+ xs[1] = X0 + WIDTH - HEIGHT / 2; ys[1] = Y0;
+ xs[2] = X0 + WIDTH; ys[2] = Y0 + HEIGHT / 2;
+ xs[3] = X0 + WIDTH - HEIGHT / 2; ys[3] = Y0 + HEIGHT;
+ xs[4] = X0; ys[4] = Y0 + HEIGHT;
+ xs[5] = X0; ys[5] = Y0;
+ final FigPoly polyFig = new FigPoly();
+ polyFig.setXs(xs);
+ polyFig.setYs(ys);
+ final Polygon p = new Polygon(xs, ys, 6);
+ polyFig.setPolygon(p);
+ return polyFig;
+ } else if (Model.getFacade().isAAcceptEventAction(getOwner())) {
+ final int[] xs = new int[6];
+ final int[] ys = new int[6];
+
+ xs[0] = X0; ys[0] = Y0;
+ xs[1] = X0 + WIDTH; ys[1] = Y0;
+ xs[2] = X0 + WIDTH; ys[2] = Y0 + HEIGHT;
+ xs[3] = X0; ys[3] = Y0 + HEIGHT;
+ xs[4] = X0 + HEIGHT / 2; ys[4] = Y0 + HEIGHT / 2;
+ xs[5] = X0; ys[5] = Y0;
+ final FigPoly polyFig = new FigPoly();
+ polyFig.setXs(xs);
+ polyFig.setYs(ys);
+ final Polygon p = new Polygon(xs, ys, 6);
+ polyFig.setPolygon(p);
+ return polyFig;
+ } else {
+ return new FigRRect(X0, Y0, WIDTH, HEIGHT, LINE_COLOR, FILL_COLOR);
+ }
}
@Override
public Dimension getMinimumSize() {
- Dimension stereoDim = getStereotypeFig().getMinimumSize();
- Dimension nameDim = getNameFig().getMinimumSize();
+ final Dimension stereoDim = getStereotypeFig().getMinimumSize();
+ final Dimension nameDim = getNameFig().getMinimumSize();
int w = Math.max(stereoDim.width, nameDim.width) + PADDING * 2;
/* The stereoDim has height=2, even if it is empty,
* hence the -2 below: */
- int h = stereoDim.height - 2 + nameDim.height + PADDING;
+ final int h = stereoDim.height - 2 + nameDim.height + PADDING;
w = Math.max(w, h + 44); // the width needs to be > the height
return new Dimension(w, h);
}
@@ -62,16 +100,44 @@
if (getNameFig() == null) {
return;
}
- Rectangle oldBounds = getBounds();
+ final Rectangle oldBounds = getBounds();
- Dimension stereoDim = getStereotypeFig().getMinimumSize();
- Dimension nameDim = getNameFig().getMinimumSize();
+ final Dimension stereoDim = getStereotypeFig().getMinimumSize();
+ final Dimension nameDim = getNameFig().getMinimumSize();
getNameFig().setBounds(x + PADDING, y + stereoDim.height,
w - PADDING * 2, nameDim.height);
getStereotypeFig().setBounds(x + PADDING, y,
w - PADDING * 2, stereoDim.height);
- getBigPort().setBounds(x, y, w, h);
- ((FigRRect) getBigPort()).setCornerRadius(h);
+ final Fig bigPort = getBigPort();
+ if (Model.getFacade().isASendSignalAction(getOwner())) {
+ final int[] xs = new int[6];
+ final int[] ys = new int[6];
+ xs[0] = x; ys[0] = y;
+ xs[1] = x + WIDTH - HEIGHT / 2; ys[1] = y;
+ xs[2] = x + WIDTH; ys[2] = y + HEIGHT / 2;
+ xs[3] = x + WIDTH - HEIGHT / 2; ys[3] = y + HEIGHT;
+ xs[4] = x; ys[4] = y + HEIGHT;
+ xs[5] = x; ys[5] = y;
+ final FigPoly polyFig = (FigPoly)bigPort;
+ final Polygon p = new Polygon(xs, ys, 6);
+ polyFig.setPolygon(p);
+ } else if (Model.getFacade().isAAcceptEventAction(getOwner())) {
+ final int[] xs = new int[6];
+ final int[] ys = new int[6];
+
+ xs[0] = x; ys[0] = y;
+ xs[1] = x + WIDTH; ys[1] = y;
+ xs[2] = x + WIDTH; ys[2] = y + HEIGHT;
+ xs[3] = x; ys[3] = y + HEIGHT;
+ xs[4] = x + HEIGHT / 2; ys[4] = y + HEIGHT / 2;
+ xs[5] = x; ys[5] = y;
+ final FigPoly polyFig = (FigPoly)bigPort;
+ final Polygon p = new Polygon(xs, ys, 6);
+ polyFig.setPolygon(p);
+ } else {
+ getBigPort().setBounds(x, y, w, h);
+ ((FigRRect) getBigPort()).setCornerRadius(h);
+ }
calcBounds();
updateEdges();
Modified: trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/UMLActivityDiagram.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/UMLActivityDiagram.java?view=diff&pathrev=18537&r1=18536&r2=18537
==============================================================================
--- trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/UMLActivityDiagram.java (original)
+++ trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/UMLActivityDiagram.java 2010-07-19 17:11:25-0700
@@ -87,6 +87,9 @@
getCreateNodeAction(Model.getMetaTypes().getCallBehaviorAction(), "button.new-callbehavioraction"),
getCreateNodeAction(Model.getMetaTypes().getCreateObjectAction(), "button.new-createobjectaction"),
getCreateNodeAction(Model.getMetaTypes().getDestroyObjectAction(), "button.new-destroyobjectaction"),
+ getCreateNodeAction(Model.getMetaTypes().getAcceptEventAction(), "button.new-accepteventaction"),
+ getCreateNodeAction(Model.getMetaTypes().getSendSignalAction(), "button.new-sendsignalaction"),
+ getCreateNodeAction(Model.getMetaTypes().getDestroyObjectAction(), "button.new-destroyobjectaction"),
};
return actions;
}
------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2635435
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.