primitiveContainer.createLine(first.x, first.y, second.x,
second.y);
primitiveContainer.createLine(second.x, second.y, third.x,
third.y);
if (arrowBoundary != null) {
Rectangle arrow = getPrimitiveContainer().createRectangle(
arrowBoundary.x, arrowBoundary.y,
arrowBoundary.width, arrowBoundary.height);
arrow.setStyle(style);
}
} else {
Point first = next.myDependeeVector.getPoint(3);
if (next.myDependantVector.reaches(first)) {
Point second = new Point(first.x, next.myDependantVector
.getPoint().y);
primitiveContainer.createLine(next.myDependeeVector
.getPoint().x, next.myDependeeVector.getPoint().y,
first.x, first.y);
primitiveContainer.createLine(first.x, first.y, second.x,
second.y);
primitiveContainer.createLine(second.x, second.y,
next.myDependantVector.getPoint().x,
next.myDependantVector.getPoint().y);
int xsign = signum(next.myDependantVector.getPoint().x
- second.x);
java.awt.Rectangle arrowBoundary = new java.awt.Rectangle(
next.myDependantVector.getPoint(7).x,
next.myDependantVector.getPoint().y - 3, xsign * 7,
6);
Rectangle arrow = primitiveContainer.createRectangle(
arrowBoundary.x, arrowBoundary.y,
arrowBoundary.width, arrowBoundary.height);
arrow.setStyle(xsign < 0 ? "dependency.arrow.left"
: "dependency.arrow.right");
} else {
Point forth = next.myDependantVector.getPoint(3);
Point second = new Point(first.x, (first.y + forth.y) / 2);
Point third = new Point(forth.x, (first.y + forth.y) / 2);