package ckelling.baukasten;

import java.awt.*;

// Versionsgeschichte
// 1.0.0, 29.06.97
// 1.0.1, 04.08.97

/**
 *  Ein Fenster mit Angaben zu Programmname und -version,
 *  Programmbeschreibung und Autor. Diese Angaben werden von
 *  folgenden Methoden des aufrufenden Rechners geliefert:
 *  - Programmname und -version: getVersionString()
 *  - Programmbeschreibung:      getAppletInfo()
 *  - Autor:                     getAuthorString()
 *
 *  @author   Carsten Kelling
 *  @version  1.0.1, 04.08.97
 */
public class AboutRechnerDialog extends Dialog {

	private Rechner	parent_rechner;
	private Frame	parent;


	public AboutRechnerDialog(Rechner parent_rechner, Frame parent) {

	    super(parent, false);  // zweiter Parameter: modal

	    this.parent_rechner = parent_rechner;
	    this.parent = parent;

		//{{INIT_CONTROLS
		setLayout(null);
		addNotify();
		resize(insets().left + insets().right + 293,insets().top + insets().bottom + 182);
		setFont(new Font("Helvetica", Font.PLAIN, 12));
		setBackground(new Color(12632256));
		okButton = new java.awt.Button("OK");
		okButton.reshape(insets().left + 108,insets().top + 144,66,27);
		add(okButton);
		description_label = new symantec.itools.awt.WrappingLabel();
		description_label.reshape(insets().left + 12,insets().top + 36,264,48);
		description_label.setFont(new Font("Dialog", Font.PLAIN, 12));
		add(description_label);
		description_label.setText("Kurzbeschreibung");
		author_label = new java.awt.Label("(c) 1997  Carsten Kelling");
		author_label.reshape(insets().left + 12,insets().top + 96,264,21);
		author_label.setFont(new Font("Helvetica", Font.ITALIC, 12));
		add(author_label);
		nameAndVersion_label = new java.awt.Label("Name und Version");
		nameAndVersion_label.reshape(insets().left + 12,insets().top + 12,264,21);
		nameAndVersion_label.setFont(new Font("Helvetica", Font.BOLD, 12));
		add(nameAndVersion_label);
		setTitle("Über dieses applet");
		setResizable(false);
		//}}

		author_label.setAlignment(Label.CENTER);
	}

	public AboutRechnerDialog(Rechner parent_rechner, Frame parent, String title) {
	    this(parent_rechner, parent);
	    setTitle(title);
	}

	/**
	 * Zeigt das Fenster an.
	 * Aktualisiert die Text-Angaben.
	 */
    public synchronized void show() {
    	Rectangle bounds = parent.bounds();
    	Rectangle abounds = bounds();

    	move(bounds.x + (bounds.width - abounds.width)/ 2,
    	     bounds.y + (bounds.height - abounds.height)/2);

    	nameAndVersion_label.setText(parent_rechner.getVersionString());
    	description_label.setText(parent_rechner.getAppletInfo());
    	author_label.setText(parent_rechner.getAuthorString());

    	super.show();
    }

	public boolean handleEvent(Event event) {
	    if(event.id == Event.WINDOW_DESTROY) {
	        hide();
	        dispose();
	        return true;
	    }
		if (event.target == okButton && event.id == Event.ACTION_EVENT) {
			hide();
			dispose();
		}
		return super.handleEvent(event);
	}

	//{{DECLARE_CONTROLS
	java.awt.Button okButton;
	symantec.itools.awt.WrappingLabel description_label;
	java.awt.Label author_label;
	java.awt.Label nameAndVersion_label;
	//}}
}
