import java.applet.*;
import java.awt.*;

public class SpiralApplet extends Applet {
  private int last_x, last_y;
  Graphics g;	       
  Spiral spiral = new Spiral();
  SpiralCanvas spiralCanvas = new SpiralCanvas();
  SpiralPanel spiralPanel = new SpiralPanel();
  SpiralDisplay spiralDisplay = new SpiralDisplay();
  SpiralMeters spiralMeters = new SpiralMeters();

  public void init() {
    setLayout(new BorderLayout());
    add("North", spiralMeters);
    add("West", spiralCanvas);
    add("Center", spiralPanel);
    add("South", spiralDisplay);
    attachObservers(spiral);
    g = spiralCanvas.getGraphics();
  }

  public boolean mouseDown(Event e, int x, int y) {
    last_x = x;
    last_y = y;
    return true;
  }

  public boolean mouseUp(Event e, int x, int y) {
    g.setColor(Color.black);
    g.drawLine(last_x, last_y, x, y);
    spiral.setAngles(last_x, last_y, x, y);
    spiral.setMatrix();
    spiral.setRotation();
    last_x = x;
    last_y = y;
    return true;
  }

  public void attachObservers(Spiral s) {
    spiralCanvas.attachObservable(s);
    spiralPanel.attachObservable(s);
    spiralDisplay.attachObservable(s);
    spiralMeters.attachObservable(s);
  }
}






