-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDialogActionListeners.java
162 lines (147 loc) · 6.69 KB
/
DialogActionListeners.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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
import javax.swing.*;
/** Project 2: DialogActionListeners class stores the different
* action listeners to be used in the application dialogs.
*
* @author Abdurrahman Faqih 104675143
* @version 0.1 9 May 2024
*/
public class DialogActionListeners {
/**
* Handles add parking spot button click. Gets text input from text field by user
* and validates the input. If there is an input error, the error dialog is shown.
* @param formTextField form text field
* @param dialogParent parent of dialog component
* @param controller controller class
*/
public static void addParkingSpotActionListener(JTextField formTextField, JFrame dialogParent, CarparkSystem controller) {
String userInputId = formTextField.getText(); // Get user input id
// Check if spot ID is valid
boolean isIdValid = Validators.validateParkingSpotId(userInputId);
if (!isIdValid) {
// Show error if invalid
MessageDialog messageDialog = new MessageDialog(dialogParent,
"Parking spot ID must be an uppercase letter followed by 3 digits.", MessageDialog.ERROR);
messageDialog.setLocationRelativeTo(dialogParent);
messageDialog.setVisible(true);
} else {
// Call handler
controller.addParkingSpotHandler(userInputId);
}
// Reset fields
formTextField.setText("");
formTextField.grabFocus();
}
/**
* Handles delete parking spot button click. Gets text input from text field by user
* and validates the input. If there is an input error, the error dialog is shown.
* @param formTextField form text field
* @param dialogParent parent of dialog component
* @param controller controller class
*/
public static void deleteParkingSpotActionListener(JTextField formTextField, JFrame dialogParent, CarparkSystem controller) {
String userInputId = formTextField.getText(); // Get user input id
// Check if spot ID is valid
boolean isIdValid = Validators.validateParkingSpotId(userInputId);
if (!isIdValid) {
// Show error if invalid
MessageDialog messageDialog = new MessageDialog(dialogParent,
"Parking spot ID must be an uppercase letter followed by 3 digits.", MessageDialog.ERROR);
messageDialog.setLocationRelativeTo(dialogParent);
messageDialog.setVisible(true);
} else {
// Call handler
controller.deleteParkingSpotHandler(userInputId);
}
// Reset fields
formTextField.setText("");
formTextField.grabFocus();
}
/**
* Handles find by registration number button click. Gets text input from text field by user
* and validates the input. If there is an input error, the error dialog is shown.
* @param formTextField form text field
* @param dialogParent parent of dialog component
* @param controller controller class
*/
public static void findByRegNoActionListener(JTextField formTextField, JFrame dialogParent, CarparkSystem controller) {
String userInputCarRegNo = formTextField.getText(); // Get user input reg number
// Check if car reg number is valid
boolean isIdValid = Validators.validateCarRegNo(userInputCarRegNo);
if (!isIdValid) {
// Show error if invalid
MessageDialog messageDialog = new MessageDialog(dialogParent,
"Invalid car registration number. Car registration number must be an uppercase letter followed by 4 digits.", MessageDialog.ERROR);
messageDialog.setLocationRelativeTo(dialogParent);
messageDialog.setVisible(true);
} else {
// Call handler
controller.findCarByRegNoHandler(userInputCarRegNo);
}
// Reset fields
formTextField.setText("");
formTextField.grabFocus();
}
/**
* Handles remove by registration number button click. Gets text input from text field by user
* and validates the input. If there is an input error, the error dialog is shown.
* @param formTextField form text field
* @param dialogParent parent of dialog component
* @param controller controller class
*/
public static void removeByRegNoActionListener(JTextField formTextField, JFrame dialogParent, CarparkSystem controller) {
String userInputCarRegNo = formTextField.getText(); // Get user input reg number
// Check if car reg number is valid
boolean isIdValid = Validators.validateCarRegNo(userInputCarRegNo);
if (!isIdValid) {
// Show error if invalid
MessageDialog messageDialog = new MessageDialog(dialogParent,
"Invalid car registration number. Car registration number must be an uppercase letter followed by 4 digits.", MessageDialog.ERROR);
messageDialog.setLocationRelativeTo(dialogParent);
messageDialog.setVisible(true);
} else {
// Call handler
controller.removeCarByRegNoHandler(userInputCarRegNo);
}
// Reset fields
formTextField.setText("");
formTextField.grabFocus();
}
/**
* Handles find by make button click. Gets text input from text field by user
* and validates the input. If there is an input error, the error dialog is shown.
* @param formTextField form text field
* @param dialogParent parent of dialog component
* @param controller controller class
*/
public static void findByMakeActionListener(JTextField formTextField, JFrame dialogParent, CarparkSystem controller) {
String userInputMake = formTextField.getText(); // Get user input make
// Check if user input is empty
if (userInputMake.isEmpty()) {
// Show error if empty
MessageDialog messageDialog = new MessageDialog(dialogParent,
"Car make cannot be empty.", MessageDialog.ERROR);
messageDialog.setLocationRelativeTo(dialogParent);
messageDialog.setVisible(true);
} else {
// Call handler
controller.findCarByMakeHandler(userInputMake);
}
// Reset fields
formTextField.setText("");
formTextField.grabFocus();
}
/**
* Handles reset carpark button click.
* @param controller controller class
*/
public static void resetCarParkActionListener(CarparkSystem controller) {
controller.resetCarparkHandler();
}
/**
* Handles exit program button click.
* @param controller controller class
*/
public static void exitProgramActionListener(CarparkSystem controller) {
controller.exitProgramHandler();
}
}