diff options
| author | sowgro <tpoke.ferrari@gmail.com> | 2025-10-06 23:17:33 -0400 |
|---|---|---|
| committer | sowgro <tpoke.ferrari@gmail.com> | 2025-10-06 23:17:33 -0400 |
| commit | 1e243817fc4072c8da1905f0e5791e1756f179e4 (patch) | |
| tree | 0ccc8eefb4a1e8d031c6a8f0090e6e213ea8e1bb /src/main/java/design | |
| parent | cbcbfb2a264480c67b32110c02e890825d7e866a (diff) | |
| download | designproject-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 '')
| -rw-r--r-- | src/main/java/design/ParPal.java | 5 | ||||
| -rw-r--r-- | src/main/java/design/controller/userinput/menus/SelectUser.java | 28 | ||||
| -rw-r--r-- | src/main/java/design/controller/userinput/menus/UserSettings.java | 6 |
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...", () -> {}) ); |
