71 lines
1.9 KiB
Java
71 lines
1.9 KiB
Java
package ovh.alexisdelhaie.curling.windows;
|
|
|
|
import ovh.alexisdelhaie.curling.dataSet.HeaderModel;
|
|
|
|
import javax.swing.*;
|
|
import java.awt.event.*;
|
|
|
|
public class AddHeader extends JDialog {
|
|
|
|
public static String WINDOW_TITLE = "Ajouter une en-tête";
|
|
|
|
private JPanel contentPane;
|
|
private JButton buttonOK;
|
|
private JButton buttonCancel;
|
|
private JTextField keyField;
|
|
private JTextField valueField;
|
|
|
|
private HeaderModel result;
|
|
|
|
public AddHeader() {
|
|
setContentPane(contentPane);
|
|
setModal(true);
|
|
setTitle(WINDOW_TITLE);
|
|
getRootPane().setDefaultButton(buttonOK);
|
|
|
|
buttonOK.addActionListener(new ActionListener() {
|
|
public void actionPerformed(ActionEvent e) {
|
|
onOK();
|
|
}
|
|
});
|
|
|
|
buttonCancel.addActionListener(new ActionListener() {
|
|
public void actionPerformed(ActionEvent e) {
|
|
onCancel();
|
|
}
|
|
});
|
|
|
|
// call onCancel() when cross is clicked
|
|
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
|
|
addWindowListener(new WindowAdapter() {
|
|
public void windowClosing(WindowEvent e) {
|
|
onCancel();
|
|
}
|
|
});
|
|
|
|
// call onCancel() on ESCAPE
|
|
contentPane.registerKeyboardAction(new ActionListener() {
|
|
public void actionPerformed(ActionEvent e) {
|
|
onCancel();
|
|
}
|
|
}, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
|
|
}
|
|
|
|
private void onOK() {
|
|
if(!keyField.getText().isBlank() && !valueField.getText().isBlank()) {
|
|
result = new HeaderModel(keyField.getText(), valueField.getText());
|
|
}
|
|
dispose();
|
|
}
|
|
|
|
private void onCancel() {
|
|
dispose();
|
|
}
|
|
|
|
public HeaderModel getValue() {
|
|
pack();
|
|
setVisible(true);
|
|
return result;
|
|
}
|
|
}
|