/**
* @(#)BoundedOvalPainter.java
*
* Copyright 2002 EGANTT LLP. All rights reserved.
* PROPRIETARY/QPL. Use is subject to license terms.
*/
package com.egantt.drawing.painter.bounded;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Paint;
import java.awt.Rectangle;
import java.awt.Shape;
import com.egantt.awt.graphics.GraphicsContext;
import com.egantt.drawing.DrawingPainter;
import com.egantt.model.drawing.painter.PainterState;
public class BoundedOvalPainter 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));
int backgroundDropGap = 1;
Graphics2D g2d = (Graphics2D) g;
Paint paint = g2d.getPaint();
if (backgroundDropGap > 0)
{
g.setColor(g2d.getColor().darker().darker());
g.fillOval(bounds.x + backgroundDropGap, bounds.y + backgroundDropGap,
bounds.width - backgroundDropGap, bounds.height - backgroundDropGap);
}
{
g2d.setPaint(paint);
g.fillOval(bounds.x, bounds.y,
bounds.width - backgroundDropGap, bounds.height - backgroundDropGap);
}
return bounds;
}
public long width(Object key, Graphics g, Rectangle bounds,
GraphicsContext context)
{
return Math.min(bounds.width, bounds.height);
}
}