/*GK Informatik
Konrad-Adenauer-Gymnasium Langenfeld
12.1
September 1998
*/

import java.applet.*;
import java.awt.*;

public class Haus extends Applet
{


	BorderLayout blHaupt = new BorderLayout();
	Panel pnNord = new Panel();
	Panel pnWest = new Panel();
	Panel pnSüd = new Panel();
	Panel pnEins = new Panel();
    Panel pnZwei = new Panel();
	myCanvas cvZeichnung = new myCanvas(640-pnWest.size().width,480-pnNord.size().height-pnSüd.size().height);
	Label lbHeader = new Label("Zeichnen eines Hexenhauses");
	Label lbCopyright = new Label("© Ralph-Erich Hildebrandt/September 1998");
	Font ftHFont = new Font("Arial",Font.BOLD,20);
	Font ftCFont = new Font("Arial",Font.PLAIN,10);
    Button btZeichnen = new Button("Zeichnen");
	Button btLöschen = new Button("Löschen");
	GridLayout glLinks = new GridLayout(5,1);

	public void init()
	{
    	resize(640, 300);
		setLayout(blHaupt);

		add("North",pnNord);
		pnNord.setBackground(Color.black);
		pnNord.add(lbHeader);
		lbHeader.setFont(ftHFont);
		lbHeader.setForeground(Color.white);

		add("West",pnWest);
		pnWest.setLayout(glLinks);
		pnWest.setBackground(Color.yellow);
		pnWest.add(pnEins);
		pnEins.add(btZeichnen);
		pnWest.add(pnZwei);
		pnZwei.add(btLöschen);

		add("South",pnSüd);
		pnSüd.setBackground(Color.black);
		pnSüd.add(lbCopyright);
		lbCopyright.setFont(ftCFont);
		lbCopyright.setForeground(Color.white);

		add("Center",cvZeichnung);
		cvZeichnung.setBackground(Color.white);
		cvZeichnung.init();


	}

	public void BtnZeichnenClick()
	{
		cvZeichnung.Zeichnen();
	}

	public void BtnLöschenClick()
	{
		cvZeichnung.Löschen();
	}


	public boolean handleEvent(Event evt)
	{
		switch(evt.id)
		{
		case Event.ACTION_EVENT:
			if (evt.target == btZeichnen)
			{
        	    BtnZeichnenClick();
                return true;
			}
			if (evt.target == btLöschen)
			{
				BtnLöschenClick();
				return true;
			}
		}
		return false;
	}

}

class myCanvas extends Canvas
{

	private int iBreite;
	private int iHöhe;
	private Image imBild;
	private Graphics grGrafik;


//Konstruktor    
	public myCanvas(int iBreite, int iHöhe)
	{
		this.iBreite=iBreite;
		this.iHöhe=iHöhe;
		resize(iBreite,iHöhe);
	}

	public void init()
	{
		imBild=createImage(iBreite,iHöhe);
		grGrafik=imBild.getGraphics();
		grGrafik.setColor(Color.white);
		grGrafik.fillRect(1,1,iBreite-2,iHöhe-2);
		grGrafik.setColor(Color.black);
		grGrafik.drawRect(0,0,iBreite-1,iHöhe-1);
	}

	public void paint(Graphics g)
	{
		g.drawImage(imBild,0,0,this);
	}

	public void update(Graphics g)
	{
		paint(g);
	}

	public void Zeichnen()
	{
        int iHausbreite;
		int iHaushöhe;
		int iDachhöhe;
		int iHalbesHaus;

		iHausbreite=50;
		iHaushöhe=3*(int)(iHausbreite/2);
		iDachhöhe=(int)(iHausbreite/4);
		iHalbesHaus=(int)(iHausbreite/2);

		grGrafik.drawRect(100,100,iHausbreite,iHaushöhe);
		grGrafik.drawLine(100,100+iHaushöhe,100+iHausbreite,100);
		grGrafik.drawLine(100,100,100+iHausbreite,100+iHaushöhe);
		grGrafik.drawLine(100,100,100+iHalbesHaus,100-iDachhöhe);
		grGrafik.drawLine(100+iHalbesHaus,100-iDachhöhe,100+iHausbreite,100);
		repaint();
	}

    public void Löschen()
	{
		grGrafik.setColor(Color.white);
		grGrafik.fillRect(1,1,iBreite-2,iHöhe-2);
		grGrafik.setColor(Color.black);
		repaint();
	}

}