////////////////////////////////////////
// 49104 øv.5 opg.1
//
// Font-Farve-Test
//
// NB! På grund af bug i IE40 virker programmet ikke korrekt i den browser.
//     Sun's Applet-viewer, derimod, kan godt afvikle programmet korrekt.

import java.applet.*;
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;

public class FontFarveTest extends Applet implements ItemListener
{

	private Label sampletext = new Label( "Prøvetekst" );
	private Choice fontnameList = new Choice();
	private Choice fontsizeList = new Choice();
	private Choice fontcolorList = new Choice();
	private Checkbox bold = new Checkbox("Fed");
	private Checkbox italic = new Checkbox("Kursiv");
	private Font samplefont;


	public FontFarveTest()
	{
	}

	public String getAppletInfo()
	{
		return "Name: FontFarveTest\r\n" +
		       "Author: Mikael and Rune\r\n" +
		       "Created with Hard Work!";
	}


	public void init()
	{
   	resize(320, 240);

		// Tilføj label til applet
		add(sampletext);

		// Klargør og tilføj font-størrelse listen
		for (int i=0; i<= 10; i++)
			fontsizeList.add( ""+(10 + 2*i) );
		fontsizeList.addItemListener( this);
		add(fontsizeList);
		
		// Klargør og tilføj font-navne-listen
		fontnameList.add( "MonoSpaced" );
		fontnameList.add( "SansSerif" );
		fontnameList.add( "Serif");
		fontnameList.addItemListener( this);
		add(fontnameList);

		// Klargør og tilføj font-farve-listen
		fontcolorList.add( "Rød" );
		fontcolorList.add( "Grøn" );
		fontcolorList.add( "Blå");
		fontcolorList.add( "Sort" );
		fontcolorList.add( "Hvid" );
		fontcolorList.addItemListener( this);
		add(fontcolorList);

		// Tilføj afkrydsningsfelt for Fed
		bold.addItemListener( this );
		add (bold);

		// Tilføj afkrydsningsfelt for Kursiv
		italic.addItemListener( this );
		add (italic);

	}

	// Kaldes nåt der sker noget i listerne font-?-list
	public void itemStateChanged( ItemEvent e )
	{
		// undersøg afkrydsningsfelterne
		int attr = (bold.getState() ? Font.BOLD : Font.PLAIN) + (italic.getState() ? Font.ITALIC : Font.PLAIN);

		switch (fontcolorList.getSelectedIndex())
		{
			case 0:	sampletext.setForeground(new Color(255,0,0) ); break;
			case 1:	sampletext.setForeground(new Color(0,255,0) ); break;
			case 2:	sampletext.setForeground(new Color(0,0,255) ); break;
			case 3: sampletext.setForeground(new Color(0,0,0) ); break;
			case 4:	sampletext.setForeground(new Color(255,255,255) ); break;
			default:sampletext.setForeground(new Color(0,0,0) ); break;
		}
		
		samplefont = new Font(fontnameList.getSelectedItem(), attr, Integer.parseInt(fontsizeList.getSelectedItem() ) );
		sampletext.setFont( samplefont );
		doLayout(); // Dette tvinger alle komponeneter på plads på applet'en!
	}


	public void destroy()
	{
	}

	public void paint(Graphics g)
	{
	}

	public void start()
	{
	}
	
	public void stop()
	{
	}

}
