From d97f1a846bb872db8a0954c2214fb0a757542e8b Mon Sep 17 00:00:00 2001 From: sowgro Date: Sat, 4 Oct 2025 15:13:22 -0400 Subject: Initial version mostly working --- .../design/controller/userinput/menus/MainMenu.java | 17 +++++++++++++++++ .../controller/userinput/menus/SelectUser.java | 20 ++++++++++++++++++++ .../controller/userinput/menus/StatisticsMenu.java | 14 ++++++++++++++ .../controller/userinput/menus/UserSettings.java | 18 ++++++++++++++++++ 4 files changed, 69 insertions(+) create mode 100644 src/main/java/design/controller/userinput/menus/MainMenu.java create mode 100644 src/main/java/design/controller/userinput/menus/SelectUser.java create mode 100644 src/main/java/design/controller/userinput/menus/StatisticsMenu.java create mode 100644 src/main/java/design/controller/userinput/menus/UserSettings.java (limited to 'src/main/java/design/controller/userinput/menus') diff --git a/src/main/java/design/controller/userinput/menus/MainMenu.java b/src/main/java/design/controller/userinput/menus/MainMenu.java new file mode 100644 index 0000000..b6fca7c --- /dev/null +++ b/src/main/java/design/controller/userinput/menus/MainMenu.java @@ -0,0 +1,17 @@ +package design.controller.userinput.menus; + +import design.controller.userinput.Menu; +import design.controller.userinput.MenuOption; + +public class MainMenu extends Menu { + public MainMenu() { + super("main menu"); + + addAll( + new MenuOption("user settings...", (a) -> new UserSettings().present()), + new MenuOption("statistics...", (a) -> new StatisticsMenu().present()), + new MenuOption("log round...", (a) -> {}), + new MenuOption("quit", (a) -> {}) + ); + } +} diff --git a/src/main/java/design/controller/userinput/menus/SelectUser.java b/src/main/java/design/controller/userinput/menus/SelectUser.java new file mode 100644 index 0000000..f5ddd64 --- /dev/null +++ b/src/main/java/design/controller/userinput/menus/SelectUser.java @@ -0,0 +1,20 @@ +package design.controller.userinput.menus; + +import design.controller.userinput.Menu; +import design.controller.userinput.MenuOption; +import design.persistence.PersonalDatabase; + +import java.util.Arrays; + +public class SelectUser extends Menu { + + PersonalDatabase personalDB = PersonalDatabase.INSTANCE; + + public SelectUser() { + super("select user"); + + addAll(Arrays.stream(personalDB.getGolfers()) + .map(i -> new MenuOption(i.getUsername(), (a) -> {})).toList()); + add(new MenuOption("", (a) -> {})); + } +} diff --git a/src/main/java/design/controller/userinput/menus/StatisticsMenu.java b/src/main/java/design/controller/userinput/menus/StatisticsMenu.java new file mode 100644 index 0000000..1d6de4b --- /dev/null +++ b/src/main/java/design/controller/userinput/menus/StatisticsMenu.java @@ -0,0 +1,14 @@ +package design.controller.userinput.menus; + +import design.controller.userinput.Menu; +import design.controller.userinput.MenuOption; + +public class StatisticsMenu extends Menu { + public StatisticsMenu() { + super("statistics menu"); + + addAll( + new MenuOption("return to main menu", (c) -> new MainMenu().present()) + ); + } +} diff --git a/src/main/java/design/controller/userinput/menus/UserSettings.java b/src/main/java/design/controller/userinput/menus/UserSettings.java new file mode 100644 index 0000000..fd9a311 --- /dev/null +++ b/src/main/java/design/controller/userinput/menus/UserSettings.java @@ -0,0 +1,18 @@ +package design.controller.userinput.menus; + +import design.controller.userinput.Menu; +import design.controller.userinput.MenuOption; + +public class UserSettings extends Menu { + + public UserSettings() { + super("user settings"); + + addAll( + new MenuOption("return to main menu", (a) -> new MainMenu().present()), + new MenuOption("switch user...", (a) -> new SelectUser().present()), + new MenuOption("set username...", (a -> {})), + new MenuOption("set password...", (a) -> {}) + ); + } +} -- cgit v1.2.3 From 75ef9ca83d43051616c0083af85eacbd71b4b4b6 Mon Sep 17 00:00:00 2001 From: sowgro Date: Sun, 5 Oct 2025 14:06:20 -0400 Subject: Reorganize menu api --- .../design/controller/userinput/menus/MainMenu.java | 12 +++++++++--- .../design/controller/userinput/menus/SelectUser.java | 17 ++++++++++++----- .../controller/userinput/menus/StatisticsMenu.java | 13 ++++++++++--- .../design/controller/userinput/menus/UserSettings.java | 12 +++++++++--- 4 files changed, 40 insertions(+), 14 deletions(-) (limited to 'src/main/java/design/controller/userinput/menus') diff --git a/src/main/java/design/controller/userinput/menus/MainMenu.java b/src/main/java/design/controller/userinput/menus/MainMenu.java index b6fca7c..fb3cee9 100644 --- a/src/main/java/design/controller/userinput/menus/MainMenu.java +++ b/src/main/java/design/controller/userinput/menus/MainMenu.java @@ -3,11 +3,17 @@ package design.controller.userinput.menus; import design.controller.userinput.Menu; import design.controller.userinput.MenuOption; +import java.util.List; + public class MainMenu extends Menu { - public MainMenu() { - super("main menu"); + @Override + public String getTitle() { + return "main menu"; + } - addAll( + @Override + public List getMenuOptions() { + return List.of( new MenuOption("user settings...", (a) -> new UserSettings().present()), new MenuOption("statistics...", (a) -> new StatisticsMenu().present()), new MenuOption("log round...", (a) -> {}), diff --git a/src/main/java/design/controller/userinput/menus/SelectUser.java b/src/main/java/design/controller/userinput/menus/SelectUser.java index f5ddd64..1963f1d 100644 --- a/src/main/java/design/controller/userinput/menus/SelectUser.java +++ b/src/main/java/design/controller/userinput/menus/SelectUser.java @@ -4,17 +4,24 @@ import design.controller.userinput.Menu; import design.controller.userinput.MenuOption; 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; - public SelectUser() { - super("select user"); + @Override + public String getTitle() { + return "select user"; + } - addAll(Arrays.stream(personalDB.getGolfers()) + @Override + public List getMenuOptions() { + var l = new ArrayList(); + l.addAll(Arrays.stream(personalDB.getGolfers()) .map(i -> new MenuOption(i.getUsername(), (a) -> {})).toList()); - add(new MenuOption("", (a) -> {})); + l.add(new MenuOption("", (a) -> {})); + return l; } } diff --git a/src/main/java/design/controller/userinput/menus/StatisticsMenu.java b/src/main/java/design/controller/userinput/menus/StatisticsMenu.java index 1d6de4b..66d60e3 100644 --- a/src/main/java/design/controller/userinput/menus/StatisticsMenu.java +++ b/src/main/java/design/controller/userinput/menus/StatisticsMenu.java @@ -3,11 +3,18 @@ package design.controller.userinput.menus; import design.controller.userinput.Menu; import design.controller.userinput.MenuOption; +import java.util.List; + public class StatisticsMenu extends Menu { - public StatisticsMenu() { - super("statistics menu"); - addAll( + @Override + public String getTitle() { + return "statistics menu"; + } + + @Override + public List getMenuOptions() { + return List.of( new MenuOption("return to main menu", (c) -> new MainMenu().present()) ); } diff --git a/src/main/java/design/controller/userinput/menus/UserSettings.java b/src/main/java/design/controller/userinput/menus/UserSettings.java index fd9a311..a866889 100644 --- a/src/main/java/design/controller/userinput/menus/UserSettings.java +++ b/src/main/java/design/controller/userinput/menus/UserSettings.java @@ -3,12 +3,18 @@ package design.controller.userinput.menus; import design.controller.userinput.Menu; import design.controller.userinput.MenuOption; +import java.util.List; + public class UserSettings extends Menu { - public UserSettings() { - super("user settings"); + @Override + public String getTitle() { + return "user settings"; + } - addAll( + @Override + public List getMenuOptions() { + return List.of( new MenuOption("return to main menu", (a) -> new MainMenu().present()), new MenuOption("switch user...", (a) -> new SelectUser().present()), new MenuOption("set username...", (a -> {})), -- cgit v1.2.3