int y = child.getY() + child.getHeight() / 2;
int x = 0;
if (horizontal instanceof Leading) {
x = ((Leading) horizontal).getLeading();
g2d.drawLine(insets.left, y, insets.left + x, y);
Polygon polygon = new Polygon();
polygon.addPoint(insets.left, y - BOX + 1);
polygon.addPoint(insets.left, y + BOX);
polygon.addPoint(insets.left + BOX, y);
g2d.fillPolygon(polygon);
} else if (horizontal instanceof Trailing) {
x = child.getX() + child.getWidth();
g2d.drawLine(width - insets.right, y, x, y);
Polygon polygon = new Polygon();
polygon.addPoint(width - insets.right, y - BOX);
polygon.addPoint(width - insets.right, y + BOX - 1);
polygon.addPoint(width - BOX - insets.right, y);
g2d.fillPolygon(polygon);
} else if (horizontal instanceof Bilateral) {
x = ((Bilateral) horizontal).getLeading();
g2d.drawLine(insets.left, y, insets.left + x, y);
Polygon polygon = new Polygon();
polygon.addPoint(insets.left, y - BOX + 1);
polygon.addPoint(insets.left, y + BOX);
polygon.addPoint(insets.left + BOX, y);
g2d.fillPolygon(polygon);
x = child.getX() + child.getWidth();
g2d.drawLine(width - insets.right, y, x, y);
polygon = new Polygon();
polygon.addPoint(width - insets.right, y - BOX);
polygon.addPoint(width - insets.right, y + BOX - 1);
polygon.addPoint(width - BOX - insets.right, y);
g2d.fillPolygon(polygon);
}
Alignment vertical = constraints.getVertical();
x = child.getX() + child.getWidth() / 2;
if (vertical instanceof Leading) {
y = ((Leading) vertical).getLeading();
g2d.drawLine(x, insets.top, x, insets.top + y);
Polygon polygon = new Polygon();
polygon.addPoint(x - BOX + 1, insets.top);
polygon.addPoint(x + BOX, insets.top);
polygon.addPoint(x, BOX + insets.top);
g2d.fillPolygon(polygon);
} else if (vertical instanceof Trailing) {
y = child.getY() + child.getHeight();
g2d.drawLine(x, height - insets.bottom, x, y);
Polygon polygon = new Polygon();
polygon.addPoint(x - BOX, height - insets.bottom);
polygon.addPoint(x + BOX - 1, height - insets.bottom);
polygon.addPoint(x, height - BOX - insets.bottom);
g2d.fillPolygon(polygon);
} else if (vertical instanceof Bilateral) {
y = ((Bilateral) vertical).getLeading();
g2d.drawLine(x, insets.top, x, y + insets.top);
Polygon polygon = new Polygon();
polygon.addPoint(x - BOX + 1, insets.top);
polygon.addPoint(x + BOX, insets.top);
polygon.addPoint(x, BOX + insets.top);
g2d.fillPolygon(polygon);
y = child.getY() + child.getHeight();
g2d.drawLine(x, height - insets.bottom, x, y);
polygon = new Polygon();
polygon.addPoint(x - BOX, height - insets.bottom);
polygon.addPoint(x + BOX - 1, height - insets.bottom);
polygon.addPoint(x, height - BOX - insets.bottom);
g2d.fillPolygon(polygon);
}
}
}
g2d.setStroke(old);