Advertisement
Guest User

Untitled

a guest
Dec 12th, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.54 KB | None | 0 0
  1. package sample;
  2.  
  3. import apiConsumer.IApiConsumer;
  4. import dtos.api.AuthenticateResponse;
  5. import javafx.fxml.FXML;
  6. import javafx.scene.Node;
  7. import javafx.scene.Scene;
  8. import javafx.scene.control.Label;
  9. import javafx.scene.control.PasswordField;
  10. import javafx.scene.control.TextField;
  11. import javafx.scene.input.MouseEvent;
  12. import javafx.scene.paint.Paint;
  13. import javafx.stage.Stage;
  14. import sceneManager.SceneManager;
  15. import utils.DateUtils;
  16.  
  17. import java.io.IOException;
  18. import java.util.Date;
  19.  
  20. public class SignUpController {
  21. public Label lblAuthenticationStatusFailed;
  22. private IApiConsumer apiConsumer;
  23.  
  24. public Label lblUsernameErr;
  25. public Label lblPasswordErr;
  26. public Label lblRepeatPasswordErr;
  27. public Label lblRequiredRepeatPasswordErr;
  28. public Label lblRequiredPasswordErr;
  29. public Label lblRequiredUsernameErr;
  30. public TextField txtUsername;
  31. public PasswordField txtRepeatPassword;
  32. public PasswordField txtPassword;
  33. private Scene loginScene;
  34.  
  35. public void setApiConsumer(IApiConsumer apiConsumer){
  36. this.apiConsumer = apiConsumer;
  37. }
  38.  
  39. public void setLoginScene(Scene loginScene) {
  40. this.loginScene = loginScene;
  41. }
  42.  
  43.  
  44. @FXML
  45. public void openLoginScene(MouseEvent mouseEvent) {
  46. cleanFields();
  47. Stage primaryStage = (Stage)((Node)mouseEvent.getSource()).getScene().getWindow();
  48. primaryStage.setScene(loginScene);
  49. }
  50.  
  51. @FXML
  52. public void onClickBtnSignUp(MouseEvent mouseEvent) {
  53. if(validInput()) {
  54. AuthenticateResponse registerResponse = null;
  55. try{
  56. registerResponse = apiConsumer.registerUser(txtUsername.getText(), txtPassword.getText(), DateUtils.dateToUTC(new Date()));
  57. }
  58. catch (InterruptedException iex){
  59. //todo: handle
  60. }
  61. catch (IOException ioex){
  62. //todo: handle
  63. }
  64. if(registerResponse != null && registerResponse.getResponseCode() != 200){
  65. //todo: handle
  66. }
  67.  
  68. if(registerResponse != null){
  69. if(registerResponse.isAuthenticated()){
  70. SceneManager sceneManager = SceneManager.getInstance();
  71. sceneManager.getLoginController().setLblSuccessfulSignUp();
  72. openLoginScene(mouseEvent);
  73. }
  74. else{
  75. if(registerResponse.isExists()) {
  76. lblAuthenticationStatusFailed.setText("This username is taken. Try another one.");
  77. }
  78. else {
  79. lblAuthenticationStatusFailed.setText(registerResponse.getInformation());
  80. }
  81. }
  82. }
  83. }
  84. }
  85.  
  86. private boolean validInput() {
  87. boolean validInput = true;
  88.  
  89. //validation for username
  90. if(isRequiredFieldEmpty(txtUsername)) {
  91. lblRequiredUsernameErr.setText("This field is required");
  92. validInput = false;
  93. }
  94. else if(!isStringOnlyAlphabetAndDigits(txtUsername.getText())){
  95. lblUsernameErr.setText("Username can contain only letters, numbers or underscore.");
  96. lblRequiredUsernameErr.setText("");
  97. validInput = false;
  98. }
  99. else if(txtUsername.getText().equals("USER_ALL")) {
  100. lblUsernameErr.setText("Username is not allowed. Try another.");
  101. lblRequiredUsernameErr.setText("");
  102. validInput = false;
  103. }
  104. else {
  105. lblUsernameErr.setText("");
  106. lblRequiredUsernameErr.setText("");
  107. }
  108.  
  109. //validation for password
  110. if(isRequiredFieldEmpty(txtPassword)) {
  111. lblRequiredPasswordErr.setText("This field is required");
  112. validInput = false;
  113. }
  114. else if(!isStringOnlyAlphabetAndDigits(txtPassword.getText())){
  115. lblPasswordErr.setText("Password can contain only letters or numbers.");
  116. lblRequiredPasswordErr.setText("");
  117. validInput = false;
  118. }
  119. else {
  120. lblPasswordErr.setText("");
  121. lblRequiredPasswordErr.setText("");
  122. }
  123.  
  124. //validation for repeat password field
  125. if(isRequiredFieldEmpty(txtRepeatPassword)) {
  126. lblRequiredRepeatPasswordErr.setText("This field is required");
  127. validInput = false;
  128. }
  129. else if(!txtPassword.getText().equals(txtRepeatPassword.getText())) {
  130. lblRepeatPasswordErr.setText("Two password fields must be the same");
  131. lblRequiredRepeatPasswordErr.setText("");
  132. validInput = false;
  133. }
  134. else {
  135. lblRepeatPasswordErr.setText("");
  136. lblRequiredRepeatPasswordErr.setText("");
  137. }
  138.  
  139. return validInput;
  140. }
  141.  
  142. private boolean isRequiredFieldEmpty(TextField textField) {
  143. return textField.getText().equals("");
  144. }
  145.  
  146. private boolean isStringOnlyAlphabetAndDigits(String str) {
  147. return str.matches("^[a-zA-Z0-9_]*$");
  148. }
  149.  
  150. private void cleanFields() {
  151. txtUsername.setText("");
  152. txtPassword.setText("");
  153. txtRepeatPassword.setText("");
  154. lblUsernameErr.setText("");
  155. lblRequiredUsernameErr.setText("");
  156. lblRepeatPasswordErr.setText("");
  157. lblRequiredRepeatPasswordErr.setText("");
  158. lblPasswordErr.setText("");
  159. lblRequiredPasswordErr.setText("");
  160. lblAuthenticationStatusFailed.setText("");
  161. }
  162. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement