import sum.komponenten.*;
import sum.werkzeuge.*;
import sum.ereignis.*;

public class BinaerbaumGraphik extends EBAnwendung
{   private Etikett hatEtikettRekursion;
    private Knopf hatKnopfZeichnen;
    private Knopf hatKnopfBeenden;
    private Buntstift hatStift;

    public BinaerbaumGraphik()
    {   super(520, 400);      // Fensterbreite ist 520, -hoehe ist 400
        hatEtikettRekursion = new Etikett(230, 10, 150, 25, "Rekursiver Baum");
        // Ausrichtung
        hatEtikettRekursion.setzeAusrichtung(Ausrichtung.LINKS);
        hatKnopfZeichnen = new Knopf(61, 50, 100, 30, "Zeichnen");
        hatKnopfZeichnen.setzeBearbeiterGeklickt("hatKnopfZeichnenGeklickt");
        hatKnopfBeenden = new Knopf(61, 90, 100, 30, "Beenden");
        hatKnopfBeenden.setzeBearbeiterGeklickt("hatKnopfBeendenGeklickt");
        hatStift = new Buntstift();
        hatStift.setzeFuellmuster(Muster.GEFUELLT);
        hatStift.setzeFarbe(Farbe.GRUEN);
        hatStift.hoch();
        hatStift.bewegeBis(260, 350);
        hatStift.dreheBis(90);
        hatStift.runter();
/*      Weitere Methodenaufrufe sind z.B.
 *      hatStift.bewegeUm(20);
 *      hatStift.dreheUm(40);   // Drehung im Gegenuhrzeigersinn
 *      hatStift.dreheUm(-40);  // Drehung im Uhrzeigersinn
 *      hatStift.zeichneKreis(5);
 */
    }

    public void hatKnopfZeichnenGeklickt()
    {  zeichneBaum(100);   
       hatStift.hoch();
       hatStift.bewegeBis(260, 380);
       hatStift.runter();
       hatStift.setzeFarbe(Farbe.BLAU);
       hatStift.schreibeText("Das ist leider erst einmal nur der Stamm!");        
    }
    
    public void zeichneBaum(double stammLaenge)
    {  hatStift.bewegeUm(stammLaenge);
        
        
       // Und hier soll der Quelltext fuer einen
       // rekursiv zu zeichnenden Baum stehen!
    }

    public void hatKnopfBeendenGeklickt()
    {  this.beenden();  }
}
