Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package sample;
- import apiConsumer.IApiConsumer;
- import dtos.api.AuthenticateResponse;
- import javafx.fxml.FXML;
- import javafx.scene.Node;
- import javafx.scene.Scene;
- import javafx.scene.control.Label;
- import javafx.scene.control.PasswordField;
- import javafx.scene.control.TextField;
- import javafx.scene.input.MouseEvent;
- import javafx.scene.paint.Paint;
- import javafx.stage.Stage;
- import sceneManager.SceneManager;
- import utils.DateUtils;
- import java.io.IOException;
- import java.util.Date;
- public class SignUpController {
- public Label lblAuthenticationStatusFailed;
- private IApiConsumer apiConsumer;
- public Label lblUsernameErr;
- public Label lblPasswordErr;
- public Label lblRepeatPasswordErr;
- public Label lblRequiredRepeatPasswordErr;
- public Label lblRequiredPasswordErr;
- public Label lblRequiredUsernameErr;
- public TextField txtUsername;
- public PasswordField txtRepeatPassword;
- public PasswordField txtPassword;
- private Scene loginScene;
- public void setApiConsumer(IApiConsumer apiConsumer){
- this.apiConsumer = apiConsumer;
- }
- public void setLoginScene(Scene loginScene) {
- this.loginScene = loginScene;
- }
- @FXML
- public void openLoginScene(MouseEvent mouseEvent) {
- cleanFields();
- Stage primaryStage = (Stage)((Node)mouseEvent.getSource()).getScene().getWindow();
- primaryStage.setScene(loginScene);
- }
- @FXML
- public void onClickBtnSignUp(MouseEvent mouseEvent) {
- if(validInput()) {
- AuthenticateResponse registerResponse = null;
- try{
- registerResponse = apiConsumer.registerUser(txtUsername.getText(), txtPassword.getText(), DateUtils.dateToUTC(new Date()));
- }
- catch (InterruptedException iex){
- //todo: handle
- }
- catch (IOException ioex){
- //todo: handle
- }
- if(registerResponse != null && registerResponse.getResponseCode() != 200){
- //todo: handle
- }
- if(registerResponse != null){
- if(registerResponse.isAuthenticated()){
- SceneManager sceneManager = SceneManager.getInstance();
- sceneManager.getLoginController().setLblSuccessfulSignUp();
- openLoginScene(mouseEvent);
- }
- else{
- if(registerResponse.isExists()) {
- lblAuthenticationStatusFailed.setText("This username is taken. Try another one.");
- }
- else {
- lblAuthenticationStatusFailed.setText(registerResponse.getInformation());
- }
- }
- }
- }
- }
- private boolean validInput() {
- boolean validInput = true;
- //validation for username
- if(isRequiredFieldEmpty(txtUsername)) {
- lblRequiredUsernameErr.setText("This field is required");
- validInput = false;
- }
- else if(!isStringOnlyAlphabetAndDigits(txtUsername.getText())){
- lblUsernameErr.setText("Username can contain only letters, numbers or underscore.");
- lblRequiredUsernameErr.setText("");
- validInput = false;
- }
- else if(txtUsername.getText().equals("USER_ALL")) {
- lblUsernameErr.setText("Username is not allowed. Try another.");
- lblRequiredUsernameErr.setText("");
- validInput = false;
- }
- else {
- lblUsernameErr.setText("");
- lblRequiredUsernameErr.setText("");
- }
- //validation for password
- if(isRequiredFieldEmpty(txtPassword)) {
- lblRequiredPasswordErr.setText("This field is required");
- validInput = false;
- }
- else if(!isStringOnlyAlphabetAndDigits(txtPassword.getText())){
- lblPasswordErr.setText("Password can contain only letters or numbers.");
- lblRequiredPasswordErr.setText("");
- validInput = false;
- }
- else {
- lblPasswordErr.setText("");
- lblRequiredPasswordErr.setText("");
- }
- //validation for repeat password field
- if(isRequiredFieldEmpty(txtRepeatPassword)) {
- lblRequiredRepeatPasswordErr.setText("This field is required");
- validInput = false;
- }
- else if(!txtPassword.getText().equals(txtRepeatPassword.getText())) {
- lblRepeatPasswordErr.setText("Two password fields must be the same");
- lblRequiredRepeatPasswordErr.setText("");
- validInput = false;
- }
- else {
- lblRepeatPasswordErr.setText("");
- lblRequiredRepeatPasswordErr.setText("");
- }
- return validInput;
- }
- private boolean isRequiredFieldEmpty(TextField textField) {
- return textField.getText().equals("");
- }
- private boolean isStringOnlyAlphabetAndDigits(String str) {
- return str.matches("^[a-zA-Z0-9_]*$");
- }
- private void cleanFields() {
- txtUsername.setText("");
- txtPassword.setText("");
- txtRepeatPassword.setText("");
- lblUsernameErr.setText("");
- lblRequiredUsernameErr.setText("");
- lblRepeatPasswordErr.setText("");
- lblRequiredRepeatPasswordErr.setText("");
- lblPasswordErr.setText("");
- lblRequiredPasswordErr.setText("");
- lblAuthenticationStatusFailed.setText("");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement