import java.awt.*;
import java.awt.datatransfer.*;

public class RectangleFigure extends Figure
{
    public RectangleFigure(Rectangle r,Color c)
    {
	myAnchor = new Point(r.x,r.y);
	myDim    = new Dimension(r.width,r.height);
	myColor  = c;
	setBounds(r);
    }


    public void paint(Graphics g)
    {
	Color c = g.getColor();

	g.setColor(myColor);
	g.fillRect(0,0,myDim.width,myDim.height);
	g.setColor(Color.black);
	g.drawRect(0,0,myDim.width-1,myDim.height-1);
	g.setColor(c);
    }

    public Dimension getPreferredSize()
    {
	return myDim;
    }

    public Rectangle getBounds()
    {
	return new
	    Rectangle(myAnchor.x,myAnchor.y,myDim.width,myDim.height);
    }

    public Point getLocation()
    {
	return myAnchor;
    }

    public void setLocation(Point p)
    {
	myAnchor = p;
	super.setLocation(p);
    }

    public Object clone()
    {
	return new RectangleFigure(getBounds(),myColor);
    }

    public String toString()
    {
	return super.toString()+" "+Integer.toString(myNumber);
    }

    public boolean contains(Point p)
    {
	return myAnchor.x <= p.x && p.x <= myAnchor.x + myDim.width &&
	       myAnchor.y <= p.y && p.y <= myAnchor.y + myDim.height;
    }

    Color      myColor;
    Point      myAnchor;
    Dimension  myDim;
    int        myNumber = ourCount++;
    static int ourCount = 0;
}
