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

public class DrawingCanvasController 
     implements ModelListener, MouseListener, MouseMotionListener {

  protected DrawingCanvasView canvas;
  protected MiniDrawModel model;
  protected Point startingMousePosition;

  /* Constructor */
  public DrawingCanvasController(DrawingCanvasView c,
                                  MiniDrawModel m) {
    canvas=c;
    model = m;
    model.addModelListener(this);
  }
  
  public void ModelUpdated() {
    //null so far
  }

  public void mousePressed(MouseEvent e)  {
    /* Establish starting point for next drawing */
    startingMousePosition = e.getPoint();
  }

  public void mouseDragged(MouseEvent e)  {
    Point newMousePosition = e.getPoint(); 
    canvas.drawLineSegment(startingMousePosition,
			   newMousePosition);
    /* update current mouse coordinates */
    startingMousePosition = newMousePosition;
  }

  /* Null listener methods */

  public void mouseClicked(MouseEvent e) {}
  public void mouseEntered(MouseEvent e) {}
  public void mouseExited(MouseEvent e) {}
  public void mouseReleased(MouseEvent e) {}
  public void mouseMoved(MouseEvent e) {}

} /* end of class DrawingCanvasController */
