From 0c2644dcb4fb6e70fb0e9b7a4d583e8b5b9af021 Mon Sep 17 00:00:00 2001 From: jrshi Date: Sun, 16 Nov 2025 15:37:32 -0500 Subject: Working on league menus --- .../controller/userinput/menus/HolePlayMenu.java | 4 ++ .../controller/userinput/menus/LeageMenu.java | 14 +++++-- .../userinput/menus/LeagueStatsMenu.java | 43 ++++++++++++++++++++++ 3 files changed, 58 insertions(+), 3 deletions(-) create mode 100644 src/main/java/design/controller/userinput/menus/LeagueStatsMenu.java (limited to 'src/main/java/design/controller/userinput/menus') diff --git a/src/main/java/design/controller/userinput/menus/HolePlayMenu.java b/src/main/java/design/controller/userinput/menus/HolePlayMenu.java index 6651500..e4dc43d 100644 --- a/src/main/java/design/controller/userinput/menus/HolePlayMenu.java +++ b/src/main/java/design/controller/userinput/menus/HolePlayMenu.java @@ -28,6 +28,10 @@ public class HolePlayMenu extends Menu { this.ctx = new HolePlayContext(this.golfer, round, PersonalDatabase.instance()); } + public Round getRound() { + return round; + } + @Override public String getTitle() { return String.format("hole play - %s | hole %d", round.getCourse().getName(), diff --git a/src/main/java/design/controller/userinput/menus/LeageMenu.java b/src/main/java/design/controller/userinput/menus/LeageMenu.java index d9afa91..4e2f079 100644 --- a/src/main/java/design/controller/userinput/menus/LeageMenu.java +++ b/src/main/java/design/controller/userinput/menus/LeageMenu.java @@ -3,6 +3,8 @@ package design.controller.userinput.menus; import design.controller.userinput.Menu; import design.controller.userinput.MenuOption; import design.model.League; +import design.model.Round; +import design.runtime.Session; import java.util.ArrayList; import java.util.List; @@ -22,9 +24,15 @@ public class LeageMenu extends Menu { @Override public List getMenuOptions() { List options = new ArrayList<>(); - options.add(new MenuOption("statistics...", () -> {})); - options.add(new MenuOption("leaderboard...", () -> {})); - options.add(new MenuOption("log round...", () -> {})); + options.add(new MenuOption("statistics...", () -> { + new LeagueStatsMenu(league).present(); + })); + options.add(new MenuOption("log round...", () -> { + var holePlay = new HolePlayMenu(); + holePlay.present(); + Round round = holePlay.getRound(); + league.recordPlay(Session.getCurrentGolfer(), league.getCurrentMatch(), round); + })); return options; } } diff --git a/src/main/java/design/controller/userinput/menus/LeagueStatsMenu.java b/src/main/java/design/controller/userinput/menus/LeagueStatsMenu.java new file mode 100644 index 0000000..d0aa2b2 --- /dev/null +++ b/src/main/java/design/controller/userinput/menus/LeagueStatsMenu.java @@ -0,0 +1,43 @@ +package design.controller.userinput.menus; + +import design.controller.userinput.Menu; +import design.controller.userinput.MenuOption; +import design.model.League; +import design.model.statistics.LeagueStats; + +import java.util.List; + +public class LeagueStatsMenu extends Menu { + private final LeagueStats league; + + public LeagueStatsMenu(League league) { + this.league = new LeagueStats(league); + } + + @Override + public String getTitle() { + return "League Stats"; + } + + @Override + public List getMenuOptions() { + return List.of( + new MenuOption("View Played Matches", () -> { + System.out.println(league.getMatchesPlayed()); + this.present(); + }), + new MenuOption("Get Scores", () -> { + System.out.println(league.getScores()); + this.present(); + }), + new MenuOption("Get Standings", () -> { + System.out.println(league.getStandings()); + this.present(); + }), + new MenuOption("Get Winners", () -> { + System.out.println(league.getWinners()); + this.present(); + }) + ); + } +} -- cgit v1.2.3