package javacodebook.gui.toolbar;

import java.awt.*;
import java.awt.event.*;

/**
 * @author Benjamin Rusch
 *
 * Diese Frame besitz ein Textfeld im Zentrum und 
 * eine Buttonleiste im Norden des Frames. Da die 
 * Buttonleiste ein anderes Layout besitzt sprechen wir 
 * hier von verschachtelten Layouts. 
 * Wie in diesem Beispiel bildet das BorderLayout 
 * oft nur die Basis für ein weitaus komplexeres Layout.
 * 
 * Man kann sich gut vorstellen wie basierend auf dem 
 * Konzept der Verschachtelung von Layouts viele 
 * Applikationen nachgebaut werden können.
 */

public class ToolBarFrame  extends Frame {

	// Komponenten für die Buttonleiste	
	private Button one = new Button("eins");
	private Button two = new Button("zwei");
	private Button three = new Button("drei");
	private Button four = new Button("vier");
	private Button five = new Button("fünf");
	private Button six 	= new Button("sechs");
	
	private TextArea center = new TextArea(5,20);
	
	// Container für die Buttonleiste
	private Panel northPanel = new Panel();
	
	/**
 	*	Konstruktor von ToolbarFrame.  
 	*/	
	public ToolBarFrame(String title) {
		
		super(title);
	 
		this.setLayout(new BorderLayout());
		
		// Beim Klicken des Schließen-Buttons vom HauptFenster
		// wird das Programm beendet
		this.addWindowListener(new WindowAdapter() {
		    public void windowClosing(WindowEvent we) {
				System.exit(0);
		    }
		});
		
		//
		// Das Layout vom northPanel wird auf FlowLayout gesetzt, die 
		// Buttons werden am linken Rand ausgerichtet, der Abstand 
		// zwischen ihnen beträgt 2 Pixel. 
		FlowLayout fl = new FlowLayout(FlowLayout.LEFT,2,2);
		northPanel.setLayout(fl);
		
		// Die Buttons werden auf das Panel platziert, anschließend wird 
		// das Panel in den NOTRTH-Bereich des darunter liegenden Frames 
		// gelegt.
		northPanel.add(one);
		northPanel.add(two);
		northPanel.add(three);
		northPanel.add(four);
		northPanel.add(five);
		northPanel.add(six);
				
		this.add(northPanel,BorderLayout.NORTH);
		
		//
		// Die TextArea wird in unserem Beispiel direkt in den CENTER- 
		// Bereich gelegt, auf diese Weise passt sich Ihrer größe immer 
		// der Fenstergröße an.
		this.add(center,BorderLayout.CENTER);		
	}
}
