Author: bobtarling Date: 2010-07-19 19:01:24-0700 New Revision: 18539 Added: trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/FigAcceptEventPoly.java 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/FigGravityPoly.java
Log: Provide specialist gravity for AcceptEventAction so that edges will remain perpendicular when ever possible Added: trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/FigAcceptEventPoly.java Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/FigAcceptEventPoly.java?view=markup&pathrev=18539 ============================================================================== --- (empty file) +++ trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/FigAcceptEventPoly.java 2010-07-19 19:01:24-0700 @@ -0,0 +1,65 @@ +/* $Id: $ + ***************************************************************************** + * Copyright (c) 2009 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 + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Bob Tarling + ***************************************************************************** + */ + +package org.argouml.activity2.diagram; + +import java.awt.Color; +import java.awt.Point; +import java.awt.Polygon; +import java.util.List; + +import org.tigris.gef.base.Geometry; +import org.tigris.gef.presentation.FigPoly; + +/** + * A FigPoly to which edges gravitate to the perimeter instead of the points + * @author Bob Tarling + * + */ +public class FigAcceptEventPoly extends FigGravityPoly { + + FigAcceptEventPoly(int x, int y, int w, int h, Color lineColor, Color fillColor) { + super(); + final int[] xs = new int[6]; + final int[] ys = new int[6]; + xs[0] = x; ys[0] = y; + xs[1] = x + w; ys[1] = y; + xs[2] = x + w; ys[2] = y + h; + xs[3] = x; ys[3] = y + h; + xs[4] = x + h / 2; ys[4] = y + h / 2; + xs[5] = x; ys[5] = y; + final Polygon p = new Polygon(xs, ys, 6); + setPolygon(p); + } + + FigAcceptEventPoly(Polygon p) { + super(p); + } + + @Override + public Point getClosestPoint(Point anotherPt) { + if (anotherPt.x < getX() && anotherPt.y >= getY() && anotherPt.y < getY() + getHeight()) { + if (anotherPt.y < getY() + getHeight() / 2) { + return new Point(getX() + (anotherPt.y - getY()), anotherPt.y); + } else { + return new Point(getX() + ((getY() + getHeight()) - anotherPt.y), anotherPt.y); + } + } else { + return super.getClosestPoint(anotherPt); + } + } + + public List getGravityPoints() { + return null; + } +} 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=18539&r1=18538&r2=18539 ============================================================================== --- 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 19:01:24-0700 @@ -71,7 +71,7 @@ xs[4] = X0 + HEIGHT / 2; ys[4] = Y0 + HEIGHT / 2; xs[5] = X0; ys[5] = Y0; final Polygon p = new Polygon(xs, ys, 6); - final FigGravityPoly polyFig = new FigGravityPoly(p); + final FigGravityPoly polyFig = new FigAcceptEventPoly(X0, Y0, WIDTH, HEIGHT, LINE_COLOR, FILL_COLOR); // final FigPoly polyFig = new FigPoly(); // polyFig.setPolygon(p); return polyFig; Modified: trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/FigGravityPoly.java Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/FigGravityPoly.java?view=diff&pathrev=18539&r1=18538&r2=18539 ============================================================================== --- trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/FigGravityPoly.java (original) +++ trunk/src/argouml-core-diagrams-activity2/src/org/argouml/activity2/diagram/FigGravityPoly.java 2010-07-19 19:01:24-0700 @@ -21,12 +21,16 @@ import org.tigris.gef.presentation.FigPoly; /** - * A FigPoly to which + * A FigPoly to which edges gravitate to the perimeter instead of the points * @author Bob Tarling * */ public class FigGravityPoly extends FigPoly { + FigGravityPoly() { + super(); + } + FigGravityPoly(Polygon p) { super(); setPolygon(p); ------------------------------------------------------ http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2635472 To unsubscribe from this discussion, e-mail: [[email protected]].
