import java.awt.event.*;
import java.awt.*;


class CrearRectanguloHandler implements ActionListener
{
  private Dibujo dibujo;
  private Rectangulo rectangulo;
  private int estado;
  private Point firstCorner;
  private static final int INICIAL=0;
  private static final int AFTER_CREADO=1;
  
  public CrearRectanguloHandler(Dibujo dib)
    {
      dibujo = dib;
      estado=INICIAL;
    }
  public void actionPerformed(ActionEvent e)
    {
      dibujo.changeMouseListener(new MouseHandler());
      dibujo.changeMouseMotionListener(new MouseMotionHandler());
      estado = INICIAL;
    }
  
  class MouseHandler extends MouseAdapter
  {
    public void mousePressed(MouseEvent event)
      {
        if(estado==INICIAL)
        {
          firstCorner = event.getPoint();
          rectangulo = new Rectangulo(firstCorner, 0, 0);
          dibujo.incorpore(rectangulo);
          estado = AFTER_CREADO;
          dibujo.repaint();
        }
      }
    public void mouseReleased(MouseEvent event)
      {
        estado = INICIAL;
      }
  }
  
  class MouseMotionHandler extends MouseMotionAdapter
  {
    public void mouseDragged(MouseEvent event)
      {
        if (estado == AFTER_CREADO) {
          Point p = event.getPoint();
          rectangulo.setThirdCorner(p);
          dibujo.repaint();
        }
      }
  }  
}


