package hu.elte.inf.pszt.prt.javalib.swingapp;

import java.awt.BorderLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.JFrame;
import javax.swing.JMenuBar;

/**
 *
 * @author lengyel zsolt
 */
public abstract class ElteJFrame extends JFrame implements ElteJFramable {

    private WindowListener elteWindowListener = null;

    protected ElteJFrame(){
        super();
    }
    
    @Override
    public final void registerWindowAdapter() {
        if (elteWindowListener == null) {
            elteWindowListener = new WindowAdapter() {

                @Override
                public void windowClosing(WindowEvent e) {
                    ElteJFrame.this.onWindowClosing();
                }
            };
            addWindowListener(elteWindowListener);
        }
    }

    @Override
    public void onConfigLoad() {
    }

    @Override
    public void onShow() {
        setVisible(true);
    }

    @Override
    public void onWindowClosing() {
        System.exit(0);
    }
    
    protected void setDefaults(String title){
        setTitle(title);
        setLocation(40, 50);
        setSize(600, 400);
        setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        setJMenuBar(createJMenuBar());
        setLayout(new BorderLayout());
    }

    @Override
    public JMenuBar createJMenuBar() {
        return null;
    }
}
