/**
* @(#)FilledRectanglePainter.java
*
* Copyright 2002 EGANTT LLP. All rights reserved.
* PROPRIETARY/QPL. Use is subject to license terms.
*/
package com.egantt.drawing.painter.bounded;
import com.egantt.awt.graphics.GraphicsContext;
import com.egantt.drawing.DrawingPainter;
import com.egantt.model.drawing.painter.PainterState;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Paint;
import java.awt.Rectangle;
import java.awt.Shape;
public class BoundedDiamondPainter implements DrawingPainter
{
// __________________________________________________________________________
public Shape paint(Object key, Graphics g, Rectangle bounds,
PainterState state, GraphicsContext context)
{
bounds = new Rectangle(bounds.x, bounds.y, Math.min(bounds.height, bounds.width), Math.min(bounds.height, bounds.width));
Graphics2D g2d = (Graphics2D) g;
Paint paint = g2d.getPaint();
int backdropGap = 2;
if (backdropGap > 0)
{
g.setColor(g.getColor().darker().darker());
drawPolygon(g, bounds.x + backdropGap, bounds.y + backdropGap,
bounds.width - ((int)(backdropGap * 1.5)), bounds.height - ((int)(backdropGap * 1.5)));
}
g2d.setPaint(paint);
drawPolygon(g, bounds.x, bounds.y,
bounds.width - backdropGap, bounds.height - backdropGap);
return bounds;
}
public long width(Object key, Graphics g, Rectangle bounds,
GraphicsContext context)
{
return bounds.width;
}
// ________________________________________________________________________
protected void drawPolygon(Graphics g, int x, int y, int width, int height) {
int xx[] = new int[4];
int yy[] = new int[4];
xx[0] = ((x + width) / 2);
xx[1] = x + width;
xx[2] = xx[0];
xx[3] = x;
yy[0] = y;
yy[1] = (y + height) / 2;
yy[2] = y + height;
yy[3] = (y + height) / 2;
g.fillPolygon(xx, yy, 4);
}
}