package javacodebook.gui.dialog;

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

/**
 * @author Benjamin Rusch
 *
 * Der Dialog erscheint, wenn versucht wird, über den Schließen-Button vom 
 * Fenster die Anwendung zu beenden.
 * Da der Dialog modal ist, ist der Frame gesperrt.
 */

public class DialogJFrame  extends JFrame {

    private String message = "Wollen Sie wirklich die Anwendung beenden?";
    private Container content = null;

    /**
     *	Konstruktor von DialogJFrame.
     */
    public DialogJFrame(String title) {

		super(title);
		content = this.getContentPane();
		content.setLayout(new FlowLayout());
	
		// Damit das Frame nicht automatisch geschlossen wird beim Klicken des
		// Schließen-Buttons muss die DefaultCloseOperation geändert werden
		this.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
	
		this.addWindowListener(new WindowAdapter() {
		    public void windowClosing(WindowEvent we) {
				// showConfirmDialog() öffnet einen Dialog und gibt die
				// Information welcher Button gedrückt wurde in Form eines int-
				// Werts zurück
				int answer = JOptionPane.showConfirmDialog(DialogJFrame.this, message);
				// Vorgefertigte Konstanten in JOptionPane machen die Abfrage
				// welcher Button gedrückt wurde einfach
				if (answer == JOptionPane.YES_OPTION) {
				    System.exit(0);
				} else if ((answer == JOptionPane.NO_OPTION) ||
					   (answer == JOptionPane.CANCEL_OPTION )) {
				    // Dialog schließt sich automatisch und den Focus bekommt wieder
				    // der Frame.
				}
		    }
		});
    }
}