content: /**
   * @(#)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);
  	}
  }
  