import java.awt.Graphics;

import javax.swing.JComponent;
import javax.swing.JFrame;

import points.DrawableNamedPoint;
import trees.TreeInterface;

public class TreeDrawing extends JComponent {
  private static final long serialVersionUID = 1L;
  TreeInterface tree;

  public TreeDrawing(TreeInterface t) {
    tree = t;
    JFrame f = new JFrame("Tree");    // construit une fentre
    f.setSize(600, 600);              // dimensions
    f.add(this);                      // qui contient notre JComponent
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // pour terminer le
                                                      // programme
    f.setVisible(true); // il faut le dire !
  }

  public void drawLine(Graphics g, DrawableNamedPoint p1, DrawableNamedPoint p2) {
    g.drawLine(p1.getX(), p1.getY(), p2.getX(), p2.getY());
  }

  public void paint(Graphics g, DrawableNamedPoint p) {
    for (DrawableNamedPoint pp : tree.getChildren(p.getName())) {
      drawLine(g, p, pp);
      paint(g, pp);
    }
    p.paint(g);
  }

  public void paint(Graphics g) {
    paint(g, tree.getRoot());
  }
}

