package fplot;

import java.applet.*;
import java.awt.*;
import java.awt.event.*;
/**
 * Der Funktionsplotter als Applet.
 * @author Christian Semrau
 * <a href="mailto:Christian.Semrau@student.uni-magdeburg.de">
 * Christian.Semrau@student.uni-magdeburg.de</a>
 * <br><a href="http://chsemrau.de">Homepage</a>
 */
public class PlotApplet extends Applet {
/*
 "Arbeitszeiten":
 05.05.00 22:00 - 00:00
 07.05.00 12:30 - 21:00
 09.05.00 19:00 - 22:30 - Abgabe als Beleg
 17.06.00 12:00 - 17:00
 20.06.00 17:00 - 18:00
 05.11.00 16:00 - 20:00
 12.11.00 15:00 - 19:00
 30.11.00 18:00 - 21:00
 28.12.00 23:00 - 03:30
 02.01.01 20:00 - 21:30
 08.11.01 22:00 - 01:00
 28.11.01 13:00 - 17:00
*/

	private PlotFrame frame;
	boolean standalone = false;

public String getAppletInfo() {
	return "AlgoDat SoSe 2000, Belegaufgabe 1: \"Funktionsplotter\"\n" + 
		"\n" + 
		"Christian Semrau, 28.11.2001\n" + 
		"chsemrau@gmx.de\n" + 
		"";
}

public void init() {
//	System.out.println(getAppletInfo());

	if (!standalone){
		// erzeuge den Button, der auf der Webseite liegt
		Button fenster = new Button("Fenster");
		add(fenster);
		// Das Fenster wird einmal erzeugt und dann eingeblendet
		fenster.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				frame.setVisible(true);
			}
		});
	}

	// erzeuge das Darstellungsfenster
	frame = new PlotFrame("Funktionsplotter");

	// Konstruiere das aboutFrame
	frame.aboutFrame = new Frame("About");
	TextArea tf = new TextArea(6,50);
	tf.setEditable(false);
	tf.setText(getAppletInfo());
	frame.aboutFrame.add(tf);
	frame.aboutFrame.addWindowListener(new WindowAdapter(){
		public void windowClosing(WindowEvent ev){
			frame.aboutFrame.dispose();
		}
	});
	frame.aboutFrame.pack();

	// das Darstellungsfenster wird geschlossen, aber nicht zerstoert,
	// der naechste Klick auf den Applet-Button oeffnet dasselbe Fenster
	frame.addWindowListener(new WindowAdapter(){
		public void windowClosing(WindowEvent e) {
			if (standalone){
				stop();
				destroy();
				System.exit(0);
			}else{
				frame.disposeDialog();
				frame.setVisible(false);
			}
		}
	});
}

public void start() {
	if (standalone)
		frame.show();
}

public void stop() {
	frame.disposeDialog();
	frame.setVisible(false);
}
}