-
Notifications
You must be signed in to change notification settings - Fork 0
/
SignupController.java
115 lines (90 loc) · 3.32 KB
/
SignupController.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.CheckBox;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.input.MouseEvent;
import javafx.stage.Stage;
import java.io.IOException;
public class SignupController {
private Market market;
public SignupController(Market market){
this.market = market;
}
@FXML
private Label errorLabel;
@FXML
private TextField usernameTextField;
@FXML
private TextField passwordTextField;
@FXML
private TextField confirmPswTextField;
@FXML
private Button registerButton;
@FXML
private Label loginButton;
@FXML
private CheckBox adminToggle;
@FXML
private TextField adminKey;
@FXML
private TextField adminUsername;
@FXML
void register(MouseEvent event) throws IOException {
String username = usernameTextField.getText();
String password = passwordTextField.getText();
String confirmPsw = confirmPswTextField.getText();
Account account = market.findAccountByUsername(username);
if(account != null){
errorLabel.setText("Username already in use");
return;
}
if(password.equals(confirmPsw)){
Account newAccount = null;
if(adminToggle.isSelected()){
if(!adminKey.getText().equals("ADMIN")){
Account refAccount = market.findAccountByUsername(adminUsername.getText());
if(refAccount != null && refAccount instanceof Admin && ((Admin) refAccount).getKey().equals(adminKey.getText())){
newAccount = new Admin(username, password);
}else {
errorLabel.setText("Admin credential are incorrect");
} return;
}else{
newAccount = new Admin(username, password);
}
}else {
newAccount = new User(username, password);
}
market.addInvestor(newAccount);
FXMLLoader loader = new FXMLLoader(getClass().getResource("Home.fxml"));
HomeController homeController = new HomeController(newAccount, market);
loader.setController(homeController);
Parent root = loader.load();
Stage stage = (Stage)registerButton.getScene().getWindow();
Scene homeScene = new Scene(root);
stage.setScene(homeScene);
stage.setOnHidden(e -> homeController.saveState());
stage.show();
}else {
errorLabel.setText("Password do not match");
}
}
@FXML
void goToLogin(MouseEvent event) throws IOException {
FXMLLoader loader = new FXMLLoader(getClass().getResource("Login.fxml"));
loader.setController(new LoginController(market));
Parent root = loader.load();
Stage stage = (Stage) loginButton.getScene().getWindow();
Scene registerScene = new Scene(root);
stage.setScene(registerScene);
stage.show();
}
@FXML
void changeAdminSelection(){
adminKey.setVisible(adminToggle.isSelected());
adminUsername.setVisible(adminToggle.isSelected());
}
}