Registration UI
This commit is contained in:
		| @@ -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ä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(); | ||||
| 					} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 DieGurke
					DieGurke