Registration UI

This commit is contained in:
DieGurke 2020-01-18 13:13:03 +01:00
parent cd925bf0c9
commit 40adb54a32

View File

@ -1,7 +1,10 @@
package envoy.client.ui;
import java.awt.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
@ -14,6 +17,7 @@ import envoy.data.LoginCredentials;
* Created: <strong>01.01.2020</strong><br>
*
* @author Kai S. K. Engelbart
* @author Maximilian K&auml;fer
* @since Envoy v0.3-alpha
*/
public class LoginDialog extends JDialog {
@ -24,6 +28,11 @@ public class LoginDialog extends JDialog {
private JTextField textField;
private JPasswordField passwordField;
private JPasswordField repeatPasswordField;
private JLabel lblRepeatPassword;
private GridBagConstraints gbc_lblRepeatPassword;
private GridBagConstraints gbc_repeatPasswordField;
private LoginCredentials credentials;
/**
@ -79,16 +88,78 @@ public class LoginDialog extends JDialog {
gbc_passwordField.gridy = 1;
contentPanel.add(passwordField, gbc_passwordField);
}
{
lblRepeatPassword = new JLabel("Repeat Password:");
gbc_lblRepeatPassword = new GridBagConstraints();
gbc_lblRepeatPassword.anchor = GridBagConstraints.EAST;
gbc_lblRepeatPassword.insets = new Insets(0, 0, 0, 5);
gbc_lblRepeatPassword.gridx = 0;
gbc_lblRepeatPassword.gridy = 2;
}
{
repeatPasswordField = new JPasswordField();
gbc_repeatPasswordField = new GridBagConstraints();
gbc_repeatPasswordField.fill = GridBagConstraints.HORIZONTAL;
gbc_repeatPasswordField.gridx = 1;
gbc_repeatPasswordField.gridy = 2;
}
{
JPanel buttonPane = new JPanel();
JTextPane registerText = new JTextPane();
registerText.setText("Register?");
registerText.setFont(new Font("Arial", Font.BOLD, 12));
registerText.setAlignmentX(LEFT_ALIGNMENT);
buttonPane.add(registerText);
JCheckBox registerCheckBox = new JCheckBox();
registerCheckBox.setAlignmentX(LEFT_ALIGNMENT);
registerCheckBox.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
switch (e.getStateChange()) {
case ItemEvent.SELECTED:
contentPanel.add(lblRepeatPassword, gbc_lblRepeatPassword);
contentPanel.add(repeatPasswordField, gbc_repeatPasswordField);
setSize(338, 160);
contentPanel.revalidate();
contentPanel.repaint();
break;
case ItemEvent.DESELECTED:
if (repeatPasswordField.getParent() == contentPanel) {
contentPanel.remove(lblRepeatPassword);
contentPanel.remove(repeatPasswordField);
setSize(338, 123);
contentPanel.revalidate();
contentPanel.repaint();
}
break;
}
}
});
buttonPane.add(registerCheckBox);
buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
getContentPane().add(buttonPane, BorderLayout.SOUTH);
{
JButton okButton = new JButton("OK");
okButton.addActionListener((evt) -> {
try {
credentials = new LoginCredentials(textField.getText(), passwordField.getPassword(), false);
dispose();
if (registerCheckBox.isSelected()) {
if (Arrays.equals(passwordField.getPassword(), repeatPasswordField.getPassword())) {
credentials = new LoginCredentials(textField.getText(), passwordField.getPassword(), true);
dispose();
} else {
JOptionPane.showMessageDialog(this, "The repeated password is unequal to the origional password!");
passwordField.setText(null);
repeatPasswordField.setText(null);
}
} else {
credentials = new LoginCredentials(textField.getText(), passwordField.getPassword(), false);
dispose();
}
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}