/*
 * Created on Jun 25, 2003
 *
 * To change this generated comment go to 
 * Window>Preferences>Java>Code Generation>Code Template
 */
package jdraw.figures;

import java.awt.Graphics;
import java.awt.Point;
import java.awt.Rectangle;
import java.util.List;

import jdraw.framework.Figure;

/**
 * @author Christoph
 */
public abstract class Decorator extends AbstractFigure {
	protected Figure component;
	
	/* (non-Javadoc)
	 * @see jdraw.framework.Figure#setBounds(java.awt.Point, java.awt.Point)
	 */
	public void setBounds(Point origin, Point corner) {
		component.setBounds(origin, corner);
	}

	/* (non-Javadoc)
	 * @see jdraw.framework.Figure#draw(java.awt.Graphics)
	 */
	public void draw(Graphics g) {
		component.draw(g);
	}

	/* (non-Javadoc)
	 * @see jdraw.framework.Figure#move(int, int)
	 */
	public void move(int dx, int dy) {
		component.move(dx, dy);
	}

	/* (non-Javadoc)
	 * @see jdraw.framework.Figure#contains(int, int)
	 */
	public boolean contains(int x, int y) {
		return component.contains(x, y);
	}

	/* (non-Javadoc)
	 * @see jdraw.framework.Figure#getBounds()
	 */
	public Rectangle getBounds() {
		return component.getBounds();
	}

	/* (non-Javadoc)
	 * @see jdraw.framework.Figure#getCenter()
	 */
	public Point getCenter() {
		return component.getCenter();
	}

	/* (non-Javadoc)
	 * @see jdraw.framework.Figure#getHandles()
	 */
	public List getHandles() {
		return component.getHandles();
	}

	/* (non-Javadoc)
	 * @see jdraw.framework.Figure#isEmpty()
	 */
	public boolean isEmpty() {
		return component.isEmpty();
	}

	/* (non-Javadoc)
	 * @see java.lang.Object#clone()
	 */
	public Object clone() {
		Object copy = super.clone();
		((Decorator)copy).component = (Figure)component.clone();
		return copy;
	}

}
