-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathManagerController.java
More file actions
85 lines (64 loc) · 3.16 KB
/
Copy pathManagerController.java
File metadata and controls
85 lines (64 loc) · 3.16 KB
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
package assignment2002;
import assignment2002.user.Manager;
import assignment2002.user.UserService;
import assignment2002.utils.BTOFileService;
import assignment2002.utils.Data;
import assignment2002.utils.FileManifest;
import assignment2002.utils.InputUtil;
import java.util.Scanner;
public class ManagerController {
private Manager manager;
private BTOProjectController projectController;
private ApplicationMgmtController appMgmtController;
private OfficerRegisController officerController;
private ProjectFilterController filterController;
private ManagerEnquiryController enqController;
private final Scanner sc = new Scanner(System.in);
public ManagerController(Manager manager){
this.manager = manager;
this.projectController = new BTOProjectController(manager, sc);
this.appMgmtController = new ApplicationMgmtController(manager, sc);
this.officerController = new OfficerRegisController(manager, sc);
this.filterController = new ProjectFilterController(manager, sc);
this.enqController = new ManagerEnquiryController(manager, sc);
}
public void showMenu(){
boolean run = true;
do {
System.out.println("\n==== MANAGER MENU ====");
System.out.println("1: Manage BTO Properties");
System.out.println("2: Manage Project Visibility");
System.out.println("3: Manage Applications");
System.out.println("4: Manage Officer Registration");
System.out.println("5: Manage Equiries");
System.out.println("6: View Projects Menu");
System.out.println("7: Change Password");
System.out.println("8: Logout"); //Temp Numbering
int choice = InputUtil.getValidatedIntRange(sc, "Choice: ", 1, 8);
switch (choice) {
case 1-> projectController.showProjectMenu();
case 2 -> viewVisibilityMenu();
case 3 -> appMgmtController.viewApplicationsMenu();
case 4 -> officerController.viewOfficerRegisMenu();
case 5 -> enqController.viewMenu();
case 6 -> filterController.viewProjsMenu();
case 7 -> UserService.resetPasswordPrompt(manager);
case 8 -> run = false;
default -> System.out.println("Retry");
}
} while (run);
System.out.println("User Has Logged out!");
}
private void viewVisibilityMenu(){
manager.viewProjectsVisibility(Data.btoList);
int choice = InputUtil.getValidatedIntRange(sc, "Enter project number to toggle visibility (0 to cancel): ", 0, Data.btoList.size());
if (choice == 0) {
System.out.println("Cancelled.");
return;
}
BTOProperty selected = Data.btoList.get(choice - 1);
manager.toggleProjectVisiblity(selected);
BTOFileService.editBTOByColumn(selected.getProjectName(), FileManifest.PROJECT_COLUMNS.VISIBLE, Boolean.toString(selected.isVisible()).toUpperCase(), false);
System.out.printf("Project '%s' is now %s.\n", selected.getProjectName(), selected.isVisible() ? "VISIBLE" : "HIDDEN");
}
}