Skip to content
Snippets Groups Projects
JDialogBase.java 2.12 KiB
Newer Older
package ui.window;

import java.awt.Container;
import java.awt.Dialog;
import java.awt.Frame;
import java.awt.GridBagConstraints;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.concurrent.Callable;

import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JDialog;
import javax.swing.KeyStroke;

import ui.util.IconManager;

/**
 * Class JDialogBase
 * Superclass for dialog inheritance 
 * Creation: 19/09/2017
 * @version 1.0 19/09/2017
 * @author Fabien TESSIER
*/

public class JDialogBase extends JDialog {
	
	protected JDialogBase(Frame _frame, String _title, boolean b) {
		super(_frame, _title, b);
		getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ESCAPE"), "close");
        getRootPane().getActionMap().put("close", new AbstractAction() {
        	@Override
        	public void actionPerformed(ActionEvent e) {
                dispose();
        	}
        });
	}
	
	protected JDialogBase(Frame _frame, String _title, Dialog.ModalityType m) {
		super(_frame, _title, m);
		
		//Add closeButton's behaviour on Escape key
		getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ESCAPE"), "close");
        getRootPane().getActionMap().put("close", new AbstractAction() {
        	@Override
        	public void actionPerformed(ActionEvent e) {
                dispose();
        	}
        });
	}
	
	protected void initButtons(JButton closeButton, JButton cancelButton, GridBagConstraints c0, Container c,
			                  ActionListener al) {
        closeButton = new JButton("Save and Close", IconManager.imgic25);
        closeButton.addActionListener(al);
        c.add(closeButton, c0);
        c0.gridwidth = GridBagConstraints.REMAINDER; //end row
        cancelButton = new JButton("Cancel", IconManager.imgic27);
        cancelButton.addActionListener(al);
        c.add(cancelButton, c0);
        
        //Add closeButton's behaviour on Enter key
        this.getRootPane().setDefaultButton(closeButton);
;
	}
}