
import java.awt.*;
import java.awt.event.*;

/** Info-Frame mit den wichtigsten Programminformationen */
public class InfoBox extends Frame {

        /** Constructor, zeigt Dialog an und springt in Event-Queue */
        InfoBox () {
                super ("Der Funktionsplotter - Info"); // Fenster mit Titel title erzeugen

                // Action-Listener für Button definieren
                class InfoBoxOKButtonListener implements ActionListener {
                        // Event-Handler für Komponenten-Events
                        public void actionPerformed( ActionEvent e ) {
                                if (e.getActionCommand().equals("OK")) { // OK-Button gedrückt
                                        setVisible (false); // Dialog verschwinden lassen...
                                        dispose(); // ...und killen
                                }
                        }
                }
                InfoBoxOKButtonListener globalListener = new InfoBoxOKButtonListener();

                // Window-Listener für Schließen-Button definieren
                WindowListener exitListener = new WindowAdapter() {
                        // Event-Methode die beim Schließen aufgerufen wird
                        public void windowClosing (WindowEvent ThisEvent) {
                                setVisible (false); // Dialog verschwinden lassen...
                                dispose(); // ...und killen
                        }
                };
                addWindowListener(exitListener); // Event-Handling aktiv.

                // InfoText-Label und Button plazieren
                GridBagLayout layout = new GridBagLayout();
                GridBagConstraints constr = new GridBagConstraints();
                constr.fill = GridBagConstraints.BOTH;
                setLayout (layout);

                // InfoText-Label und Leerzeilen plazieren
                constr.gridwidth = GridBagConstraints.REMAINDER;
                Label titleLabel = new Label (" ", Label.CENTER);
                layout.setConstraints (titleLabel, constr);
                add (titleLabel);

                titleLabel = new Label ("Der JavaPlotter", Label.CENTER);
                titleLabel.setFont (
                    new Font("SansSerif", Font.BOLD, 16));
                layout.setConstraints (titleLabel, constr);
                add (titleLabel);

                titleLabel = new java.awt.Label("Entstanden im", Label.CENTER);
                layout.setConstraints (titleLabel, constr);
                add (titleLabel);

                titleLabel = new java.awt.Label("JAVA Kurs am Wolfgang Ernst Gymnasium Büdingen (Februar 2001)", Label.CENTER);
                layout.setConstraints (titleLabel, constr);
                add (titleLabel);

                titleLabel = new java.awt.Label("siehe: http://www.stormzone.de/uni/java-schulung", Label.CENTER);
                layout.setConstraints (titleLabel, constr);
                add (titleLabel);

                titleLabel = new Label (" ", Label.CENTER);
                layout.setConstraints (titleLabel, constr);
                add (titleLabel);

                titleLabel = new Label ("ursprünglich entwickelt von:", Label.CENTER);
                layout.setConstraints (titleLabel, constr);
                add (titleLabel);

                titleLabel = new Label ("Fabian Wleklinski (Wleklinski@eWorks.de)", Label.CENTER);
                layout.setConstraints (titleLabel, constr);
                add (titleLabel);

                titleLabel = new Label ("Martin Klossek (Klossek@eWorks.de)", Label.CENTER);
                layout.setConstraints (titleLabel, constr);
                add (titleLabel);

                titleLabel = new Label ("Martin Meedt (MMeedt@aol.com)", Label.CENTER);
                layout.setConstraints (titleLabel, constr);
                add (titleLabel);

                titleLabel = new Label (" ", Label.CENTER);
                layout.setConstraints (titleLabel, constr);
                add (titleLabel);

                titleLabel = new Label ("   Unterstützte Funktionen:", Label.LEFT);
                titleLabel.setFont (
                    new Font("SansSerif", Font.BOLD, 12));
                layout.setConstraints (titleLabel, constr);
                add (titleLabel);
                titleLabel = new Label ("         sqrt, log, exp, abs, sig, round, sqr", Label.LEFT);
                layout.setConstraints (titleLabel, constr);
                add (titleLabel);
                titleLabel = new Label ("         sin, cos, tan, asin, acos, atan", Label.LEFT);
                layout.setConstraints (titleLabel, constr);
                add (titleLabel);
                titleLabel = new Label (" ", Label.CENTER);
                layout.setConstraints (titleLabel, constr);
                add (titleLabel);

                titleLabel = new Label ("   Unterstützte Konstanten:", Label.LEFT);
                titleLabel.setFont (
                    new Font("SansSerif", Font.BOLD, 12));
                layout.setConstraints (titleLabel, constr);
                add (titleLabel);
                titleLabel = new Label ("         PI, E, Random", Label.LEFT);
                layout.setConstraints (titleLabel, constr);
                add (titleLabel);

                titleLabel = new Label (" ", Label.CENTER);
                layout.setConstraints (titleLabel, constr);
                add (titleLabel);

                // OK-Button plazieren:
                constr.gridwidth = 1;  constr.weightx = 1.0;
                titleLabel = new Label (" ", Label.CENTER);
                layout.setConstraints (titleLabel, constr);
                add (titleLabel);
                Button plotButton = new Button ("OK");
                plotButton.addActionListener (globalListener);
                layout.setConstraints (plotButton, constr);
                add (plotButton);
                constr.gridwidth = GridBagConstraints.REMAINDER;
                titleLabel = new Label (" ", Label.CENTER);
                layout.setConstraints (titleLabel, constr);
                add (titleLabel);
                titleLabel = new Label (" ", Label.CENTER);
                layout.setConstraints (titleLabel, constr);
                add (titleLabel);

                // Komponenten "zusammenpacken" und Frame anzeigen
                pack();
                setSize (getPreferredSize());
                setResizable (false);
                show();
        }

}
