From cbcbfb2a264480c67b32110c02e890825d7e866a Mon Sep 17 00:00:00 2001 From: sowgro Date: Mon, 6 Oct 2025 22:57:49 -0400 Subject: Remove unused args parameter in Action --- src/main/java/design/controller/userinput/Action.java | 2 +- src/main/java/design/controller/userinput/Menu.java | 7 ++++--- src/main/java/design/controller/userinput/MenuOption.java | 4 ++-- .../java/design/controller/userinput/menus/CourseSelectMenu.java | 4 ++-- src/main/java/design/controller/userinput/menus/HolePlayMenu.java | 8 ++++---- src/main/java/design/controller/userinput/menus/MainMenu.java | 8 ++++---- src/main/java/design/controller/userinput/menus/SelectUser.java | 4 ++-- .../java/design/controller/userinput/menus/StatisticsMenu.java | 2 +- src/main/java/design/controller/userinput/menus/UserSettings.java | 8 ++++---- 9 files changed, 24 insertions(+), 23 deletions(-) diff --git a/src/main/java/design/controller/userinput/Action.java b/src/main/java/design/controller/userinput/Action.java index 0b52bfc..bb16585 100644 --- a/src/main/java/design/controller/userinput/Action.java +++ b/src/main/java/design/controller/userinput/Action.java @@ -2,5 +2,5 @@ package design.controller.userinput; @FunctionalInterface public interface Action { - void onCommand(String[] args); + void onCommand(); } diff --git a/src/main/java/design/controller/userinput/Menu.java b/src/main/java/design/controller/userinput/Menu.java index 605b640..8eac5dd 100644 --- a/src/main/java/design/controller/userinput/Menu.java +++ b/src/main/java/design/controller/userinput/Menu.java @@ -14,13 +14,14 @@ public abstract class Menu { MenuOption menuOption = menuOptions.get(i); System.out.printf("%s: %s\n", i, menuOption.getName()); } + + System.out.print("Selection: "); Scanner sc = new Scanner(System.in); var line = sc.nextLine(); - var split = line.split(" "); try { - int i = Integer.parseInt(split[0]); - menuOptions.get(i).onCommand(Arrays.copyOfRange(split, 1, split.length)); + int i = Integer.parseInt(line); + menuOptions.get(i).onCommand(); } catch (ArrayIndexOutOfBoundsException ex) { System.err.printf("Invalid option \"%s\"\n", line); present(); diff --git a/src/main/java/design/controller/userinput/MenuOption.java b/src/main/java/design/controller/userinput/MenuOption.java index 9635ebd..5ae9521 100644 --- a/src/main/java/design/controller/userinput/MenuOption.java +++ b/src/main/java/design/controller/userinput/MenuOption.java @@ -13,7 +13,7 @@ public class MenuOption { return name; } - public void onCommand(String[] args) { - action.onCommand(args); + public void onCommand() { + action.onCommand(); } } diff --git a/src/main/java/design/controller/userinput/menus/CourseSelectMenu.java b/src/main/java/design/controller/userinput/menus/CourseSelectMenu.java index 881c393..8df9823 100644 --- a/src/main/java/design/controller/userinput/menus/CourseSelectMenu.java +++ b/src/main/java/design/controller/userinput/menus/CourseSelectMenu.java @@ -26,10 +26,10 @@ public class CourseSelectMenu extends Menu { List opts = new ArrayList<>(); // 0) back - opts.add(new MenuOption("back to main menu", a -> new MainMenu().present())); + opts.add(new MenuOption("back to main menu", () -> new MainMenu().present())); // 1) pick course by number TODO: add error checking - opts.add(new MenuOption("pick course by number (1..1000)", a -> { + opts.add(new MenuOption("pick course by number (1..1000)", () -> { Scanner sc = new Scanner(System.in); System.out.print("Course number (1..1000): "); diff --git a/src/main/java/design/controller/userinput/menus/HolePlayMenu.java b/src/main/java/design/controller/userinput/menus/HolePlayMenu.java index bcd7560..e12bdfa 100644 --- a/src/main/java/design/controller/userinput/menus/HolePlayMenu.java +++ b/src/main/java/design/controller/userinput/menus/HolePlayMenu.java @@ -36,14 +36,14 @@ public class HolePlayMenu extends Menu { if (inSetup) { // 0) Start hole - opts.add(new MenuOption("start hole", (a) -> { + opts.add(new MenuOption("start hole", () -> { ctx.startHole(); System.out.println("Started hole " + round.getCurrentHole().getNumber() + "."); this.present(); })); } else { // 0) Take a shot - opts.add(new MenuOption("take a shot", (a) -> { + opts.add(new MenuOption("take a shot", () -> { // Gets club Scanner sc = new Scanner(System.in); System.out.print("Club nickname: "); @@ -68,7 +68,7 @@ public class HolePlayMenu extends Menu { })); // 1) Hole out - opts.add(new MenuOption("hole out", (a) -> { + opts.add(new MenuOption("hole out", () -> { // Precedes to next hole int prev = round.getCurrentHole().getNumber(); ctx.holeOut(); @@ -78,7 +78,7 @@ public class HolePlayMenu extends Menu { } // End round (always shown) - opts.add(new MenuOption("end round", (a) -> { + opts.add(new MenuOption("end round", () -> { ctx.endRoundNow(); System.out.println("Round ended."); new MainMenu().present(); diff --git a/src/main/java/design/controller/userinput/menus/MainMenu.java b/src/main/java/design/controller/userinput/menus/MainMenu.java index c76e61a..1d6b72d 100644 --- a/src/main/java/design/controller/userinput/menus/MainMenu.java +++ b/src/main/java/design/controller/userinput/menus/MainMenu.java @@ -14,9 +14,9 @@ public class MainMenu extends Menu { @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) -> new CourseSelectMenu().present()), - new MenuOption("quit", (a) -> {})); + new MenuOption("user settings...", () -> new UserSettings().present()), + new MenuOption("statistics...", () -> new StatisticsMenu().present()), + new MenuOption("log round...", () -> new CourseSelectMenu().present()), + new MenuOption("quit", () -> {})); } } diff --git a/src/main/java/design/controller/userinput/menus/SelectUser.java b/src/main/java/design/controller/userinput/menus/SelectUser.java index 2f1a867..fd73b47 100644 --- a/src/main/java/design/controller/userinput/menus/SelectUser.java +++ b/src/main/java/design/controller/userinput/menus/SelectUser.java @@ -21,12 +21,12 @@ public class SelectUser extends Menu { public List getMenuOptions() { var l = new ArrayList(); // Sets user in Session too - l.addAll(Arrays.stream(personalDB.getGolfers()).map(i -> new MenuOption(i.getUsername(), (a) -> { + 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("", (a) -> { + l.add(new MenuOption("", () -> { })); 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 66d60e3..c609177 100644 --- a/src/main/java/design/controller/userinput/menus/StatisticsMenu.java +++ b/src/main/java/design/controller/userinput/menus/StatisticsMenu.java @@ -15,7 +15,7 @@ public class StatisticsMenu extends Menu { @Override public List getMenuOptions() { return List.of( - new MenuOption("return to main menu", (c) -> new MainMenu().present()) + new MenuOption("return to main menu", () -> 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 a866889..3fda5d9 100644 --- a/src/main/java/design/controller/userinput/menus/UserSettings.java +++ b/src/main/java/design/controller/userinput/menus/UserSettings.java @@ -15,10 +15,10 @@ public class UserSettings extends Menu { @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 -> {})), - new MenuOption("set password...", (a) -> {}) + new MenuOption("return to main menu", () -> new MainMenu().present()), + new MenuOption("switch user...", () -> new SelectUser().present()), + new MenuOption("set username...", () -> {}), + new MenuOption("set password...", () -> {}) ); } } -- cgit v1.2.3 From 1e243817fc4072c8da1905f0e5791e1756f179e4 Mon Sep 17 00:00:00 2001 From: sowgro Date: Mon, 6 Oct 2025 23:17:33 -0400 Subject: prompt user first and code cleanup --- src/main/java/design/ParPal.java | 5 +++- .../controller/userinput/menus/SelectUser.java | 28 ++++++++++++++-------- .../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 getMenuOptions() { var l = new ArrayList(); - // 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("", () -> { - })); + 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("", () -> {})); 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 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...", () -> {}) ); -- cgit v1.2.3