/* * JBoss, Home of Professional Open Source. * * See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing. * * See the AUTHORS.txt file distributed with this work for a full listing of individual contributors. */ package org.teiid.designer.diagram.ui.connection.decorator; /** * RectangleDecoration * * @since 8.0 */ import org.eclipse.draw2d.ColorConstants; import org.eclipse.draw2d.PolygonDecoration; import org.eclipse.draw2d.Polyline; import org.eclipse.draw2d.geometry.Point; import org.eclipse.draw2d.geometry.PointList; /** * A decorative Figure intended to be placed on a * {@link Polyline}. * It has the default shape of diamond that is wider than it is tall. * * @since 8.0 */ public class DiamondDecoration extends PolygonDecoration { public static final PointList DIAMOND_TIP = new PointList(); // jh: this produced a nice diamond, but the classifier 'wall' bisected it: // solution: move all x's to the left 2 points // static { // DIAMOND_TIP.addPoint(-2, 0); // DIAMOND_TIP.addPoint(0, 1); // DIAMOND_TIP.addPoint(2, 0); // DIAMOND_TIP.addPoint(0, -1); // } static { DIAMOND_TIP.addPoint(-4, 0); DIAMOND_TIP.addPoint(-2, 1); DIAMOND_TIP.addPoint(0, 0); DIAMOND_TIP.addPoint(-2, -1); } /** * Constructs a RectangleDecoration. * Defaults the RectangleDecoration to fill its region with black. * * @since 2.0 */ public DiamondDecoration() { setBackgroundColor(ColorConstants.black); setForegroundColor(ColorConstants.black); setTemplate(DIAMOND_TIP); setPoints(DIAMOND_TIP); setScale(4, 4); } /** * Returns the points in the PolylineDecoration as a PointList. * * @since 2.0 */ @Override public PointList getPoints() { return super.getPoints(); } /** * Sets the amount of scaling to be done along X and Y * axes on the PolylineDecoration's template. * * @param x X scaling * @param y Y scaling * @since 2.0 */ @Override public void setScale(double x, double y) { super.setScale(x, y); } @Override public void setReferencePoint(Point ref) { super.setReferencePoint(ref); } /** * Sets the angle by which rotation is to be done on the * PolylineDecoration. * * @param angle Angle of rotation. * @since 2.0 */ @Override public void setRotation(double angle) { super.setRotation(angle); } /* (non-Javadoc) * @see org.eclipse.draw2d.Figure#useLocalCoordinates() */ @Override protected boolean useLocalCoordinates() { return true; } }