Files
cURLing/src/ovh/alexisdelhaie/curling/windows/AddHeader.java
2019-10-17 21:54:50 +02:00

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;
}
}