summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorsowgro <tpoke.ferrari@gmail.com>2025-10-06 23:17:33 -0400
committersowgro <tpoke.ferrari@gmail.com>2025-10-06 23:17:33 -0400
commit1e243817fc4072c8da1905f0e5791e1756f179e4 (patch)
tree0ccc8eefb4a1e8d031c6a8f0090e6e213ea8e1bb /src
parentcbcbfb2a264480c67b32110c02e890825d7e866a (diff)
downloaddesignproject-design-6-1e243817fc4072c8da1905f0e5791e1756f179e4.tar.gz
designproject-design-6-1e243817fc4072c8da1905f0e5791e1756f179e4.tar.bz2
designproject-design-6-1e243817fc4072c8da1905f0e5791e1756f179e4.zip
prompt user first and code cleanup
Diffstat (limited to 'src')
-rw-r--r--src/main/java/design/ParPal.java5
-rw-r--r--src/main/java/design/controller/userinput/menus/SelectUser.java28
-rw-r--r--src/main/java/design/controller/userinput/menus/UserSettings.java6
3 files changed, 27 insertions, 12 deletions
diff --git a/src/main/java/design/ParPal.java b/src/main/java/design/ParPal.java
index 4ed6949..6ea9872 100644
--- a/src/main/java/design/ParPal.java
+++ b/src/main/java/design/ParPal.java
@@ -1,9 +1,12 @@
package design;
+import design.controller.userinput.Action;
import design.controller.userinput.menus.MainMenu;
+import design.controller.userinput.menus.SelectUser;
public class ParPal {
public static void main(String[] args) {
- new MainMenu().present();
+ Action doAfter = () -> new MainMenu().present();
+ new SelectUser(doAfter).present();
}
}
diff --git a/src/main/java/design/controller/userinput/menus/SelectUser.java b/src/main/java/design/controller/userinput/menus/SelectUser.java
index fd73b47..82e2338 100644
--- a/src/main/java/design/controller/userinput/menus/SelectUser.java
+++ b/src/main/java/design/controller/userinput/menus/SelectUser.java
@@ -1,16 +1,22 @@
package design.controller.userinput.menus;
+import design.controller.userinput.Action;
import design.controller.userinput.Menu;
import design.controller.userinput.MenuOption;
+import design.model.Golfer;
import design.runtime.Session;
import design.persistence.PersonalDatabase;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.List;
public class SelectUser extends Menu {
- PersonalDatabase personalDB = PersonalDatabase.INSTANCE;
+ private final PersonalDatabase personalDB = PersonalDatabase.INSTANCE;
+ private final Action doAfter;
+
+ public SelectUser(Action doAfter) {
+ this.doAfter = doAfter;
+ }
@Override
public String getTitle() {
@@ -20,14 +26,16 @@ public class SelectUser extends Menu {
@Override
public List<MenuOption> getMenuOptions() {
var l = new ArrayList<MenuOption>();
- // Sets user in Session too
- l.addAll(Arrays.stream(personalDB.getGolfers()).map(i -> new MenuOption(i.getUsername(), () -> {
- Session.setCurrentGolfer(i);
- System.out.printf("Loaded user: %s%n", i.getUsername());
- new UserSettings().present();
- })).toList());
- l.add(new MenuOption("<create>", () -> {
- }));
+ for (Golfer i : personalDB.getGolfers()) {
+ MenuOption menuOption = new MenuOption(i.getUsername(), () -> {
+ // Sets user in Session too
+ Session.setCurrentGolfer(i);
+ System.out.printf("Loaded user: %s%n", i.getUsername());
+ doAfter.onCommand();
+ });
+ l.add(menuOption);
+ }
+ l.add(new MenuOption("<create>", () -> {}));
return l;
}
}
diff --git a/src/main/java/design/controller/userinput/menus/UserSettings.java b/src/main/java/design/controller/userinput/menus/UserSettings.java
index 3fda5d9..ab260da 100644
--- a/src/main/java/design/controller/userinput/menus/UserSettings.java
+++ b/src/main/java/design/controller/userinput/menus/UserSettings.java
@@ -1,5 +1,6 @@
package design.controller.userinput.menus;
+import design.controller.userinput.Action;
import design.controller.userinput.Menu;
import design.controller.userinput.MenuOption;
@@ -16,7 +17,10 @@ public class UserSettings extends Menu {
public List<MenuOption> getMenuOptions() {
return List.of(
new MenuOption("return to main menu", () -> new MainMenu().present()),
- new MenuOption("switch user...", () -> new SelectUser().present()),
+ new MenuOption("switch user...", () -> {
+ Action doAfter = this::present;
+ new SelectUser(doAfter).present();
+ }),
new MenuOption("set username...", () -> {}),
new MenuOption("set password...", () -> {})
);