@Override protected void drawFill(Graphics2D g) { RoundRectangle2D.Double r = (RoundRectangle2D.Double) roundrect.clone(); double grow = AttributeKeys.getPerpendicularFillGrowth(this); r.x -= grow; r.y -= grow; r.width += grow * 2; r.height += grow * 2; r.arcwidth += grow * 2; r.archeight += grow * 2; if (r.width > 0 && r.height > 0) { g.fill(r); } }
@Override protected void drawStroke(Graphics2D g) { RoundRectangle2D.Double r = (RoundRectangle2D.Double) roundrect.clone(); double grow = AttributeKeys.getPerpendicularDrawGrowth(this); r.x -= grow; r.y -= grow; r.width += grow * 2; r.height += grow * 2; r.arcwidth += grow * 2; r.archeight += grow * 2; if (r.width > 0 && r.height > 0) { g.draw(r); } } // SHAPE AND BOUNDS
private Shape getTransformedShape() { if (cachedTransformedShape == null) { if (getArcHeight() == 0 || getArcWidth() == 0) { cachedTransformedShape = roundrect.getBounds2D(); } else { cachedTransformedShape = (Shape) roundrect.clone(); } if (get(TRANSFORM) != null) { cachedTransformedShape = get(TRANSFORM).createTransformedShape(cachedTransformedShape); } } return cachedTransformedShape; }
public Shape getShape() { return (Shape) shape.clone(); }
public Shape getShape() { return (Shape) shape.clone(); }
/** * Checks if a Point2D.Double is inside the figure. */ @Override public boolean contains(Point2D.Double p) { RoundRectangle2D.Double r = (RoundRectangle2D.Double) roundrect.clone(); double grow = AttributeKeys.getPerpendicularHitGrowth(this); r.x -= grow; r.y -= grow; r.width += grow * 2; r.height += grow * 2; r.arcwidth += grow * 2; r.archeight += grow * 2; return r.contains(p); }
private Shape getTransformedShape() { if (cachedTransformedShape == null) { if (getArcHeight() == 0 || getArcWidth() == 0) { cachedTransformedShape = roundrect.getBounds2D(); } else { cachedTransformedShape = (Shape) roundrect.clone(); } if (get(TRANSFORM) != null) { cachedTransformedShape = get(TRANSFORM).createTransformedShape(cachedTransformedShape); } } return cachedTransformedShape; }
@Override public SVGRectFigure clone() { SVGRectFigure that = (SVGRectFigure) super.clone(); that.roundrect = (RoundRectangle2D.Double) this.roundrect.clone(); that.cachedTransformedShape = null; that.cachedHitShape = null; return that; }
@Override public ODGRectFigure clone() { ODGRectFigure that = (ODGRectFigure) super.clone(); that.roundrect = (RoundRectangle2D.Double) this.roundrect.clone(); that.cachedTransformedShape = null; that.cachedHitShape = null; return that; }
@Override public Object getTransformRestoreData() { return new Object[]{ roundrect.clone(), TRANSFORM.getClone(this), FILL_GRADIENT.getClone(this), STROKE_GRADIENT.getClone(this),}; }
@Override public RoundRectangleFigure clone() { RoundRectangleFigure that = (RoundRectangleFigure) super.clone(); that.roundrect = (RoundRectangle2D.Double) this.roundrect.clone(); return that; } // EVENT HANDLING
@Override public void restoreTransformTo(Object geometry) { invalidateTransformedShape(); Object[] restoreData = (Object[]) geometry; roundrect = (RoundRectangle2D.Double) ((RoundRectangle2D.Double) restoreData[0]).clone(); TRANSFORM.setClone(this, (AffineTransform) restoreData[1]); FILL_GRADIENT.setClone(this, (Gradient) restoreData[2]); STROKE_GRADIENT.setClone(this, (Gradient) restoreData[3]); }
@Override public void restoreTransformTo(Object geometry) { invalidateTransformedShape(); Object[] restoreData = (Object[]) geometry; roundrect = (RoundRectangle2D.Double) ((RoundRectangle2D.Double) restoreData[0]).clone(); TRANSFORM.setClone(this, (AffineTransform) restoreData[1]); FILL_GRADIENT.setClone(this, (Gradient) restoreData[2]); STROKE_GRADIENT.setClone(this, (Gradient) restoreData[3]); }
@Override public Object getTransformRestoreData() { return roundrect.clone(); } // CONNECTING
@Override public Object getTransformRestoreData() { return new Object[]{ roundrect.clone(), TRANSFORM.getClone(this), FILL_GRADIENT.getClone(this), STROKE_GRADIENT.getClone(this),}; }