-
Ludovic Apvrille authoredLudovic Apvrille authored
JDialogBase.java 3.75 KiB
package ui.window;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
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 JButton cancelButton, closeButton;
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(GridBagConstraints c0, Container c,
ActionListener al) {
initMainButtons(c0, c, al, false, "Save and Close", "Cancel");
}
protected void initMainButtons(GridBagConstraints c0, Container c,
ActionListener al, boolean isInverse, String closeButtonStr, String cancelButtonStr) {
//Close Button
if (isInverse) {
closeButton = new JButton(closeButtonStr, IconManager.imgic25);
closeButton.addActionListener(al);
c.add(closeButton, c0);
c0.gridwidth = GridBagConstraints.REMAINDER; //end row
//Cancel Button
cancelButton = new JButton(cancelButtonStr, IconManager.imgic27);
cancelButton.addActionListener(al);
c.add(cancelButton, c0);
} else {
cancelButton = new JButton(cancelButtonStr, IconManager.imgic27);
cancelButton.addActionListener(al);
c.add(cancelButton, c0);
c0.gridwidth = GridBagConstraints.REMAINDER; //end row
closeButton = new JButton(closeButtonStr, IconManager.imgic25);
closeButton.addActionListener(al);
c.add(closeButton, c0);
}
//Add closeButton's behaviour on Enter key
this.getRootPane().setDefaultButton(closeButton);
}
protected JPanel initBasicButtons(ActionListener al) {
JPanel buttonPanel = new JPanel(new GridBagLayout());
GridBagConstraints gridConstraints = new GridBagConstraints();
gridConstraints.gridwidth = 1;
gridConstraints.gridheight = 1;
gridConstraints.weighty = 1.0;
gridConstraints.weightx = 1.0;
gridConstraints.fill = GridBagConstraints.BOTH; //end row
cancelButton = new JButton("Cancel", IconManager.imgic27);
cancelButton.addActionListener(al);
buttonPanel.add(cancelButton, gridConstraints);
gridConstraints.gridwidth = GridBagConstraints.REMAINDER; //end row
closeButton = new JButton("Save and close", IconManager.imgic25);
closeButton.addActionListener(al);
buttonPanel.add(closeButton, gridConstraints);
return buttonPanel;
}
protected void renameSaveButton(String label) {
closeButton.setText(label);
}
protected void initButtons(Container c,
ActionListener al) {
JPanel p = new JPanel(new FlowLayout());
//Close Button
closeButton = new JButton("Save and Close", IconManager.imgic25);
closeButton.addActionListener(al);
p.add(closeButton);
//Cancel Button
cancelButton = new JButton("Cancel", IconManager.imgic27);
cancelButton.addActionListener(al);
p.add(cancelButton);
c.add(p, BorderLayout.SOUTH);
//Add closeButton's behaviour on Enter key
this.getRootPane().setDefaultButton(closeButton);
}
}