package graphics.sprials;


public abstract class SpiralComponent
    extends javax.swing.JComponent {
  public graphics.sprials.Spirals s = new graphics.sprials.Spirals();

  public SpiralComponent(java.awt.Dimension d) {
    s.setSize(d);
    setPreferredSize(d);
  }

  public abstract void paint(java.awt.Graphics g);

  public void setSize(java.awt.Dimension d) {
    s.setSize(d);
  }

  static SpiralComponent getComponent(java.awt.Dimension d) {
    return
        new SpiralComponent(d) {
          public void paint(java.awt.Graphics g) {

            s.setSize(getSize());
            // s.fermatsSpiral(4, Math.PI, g);
            // s.archimedesImage(param,g);
            // s.equiangularSpiral(g);
            s.drawTree(g);
            param = param + .1;
            // repaint(100);

          }
        };
  }

  static double param = 0.1;

  public static void main(String args[]) {
    java.awt.Dimension d = new java.awt.Dimension(400, 400);
    gui.ClosableJFrame cf =
        new gui.ClosableJFrame();
    java.awt.Container c = cf.getContentPane();
    c.setLayout(new java.awt.FlowLayout());
    c.add(getComponent(d));
    cf.setSize(d);
    cf.setVisible(true);
  }
}