diff options
| author | Willem Dalton <144246261+WillemDalton@users.noreply.github.com> | 2025-10-12 12:36:17 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-12 12:36:17 -0400 |
| commit | ab1c8dbf8e3fbd7ae1affd17e7b5596b1e58e839 (patch) | |
| tree | 91ed2c27e9735e05c8569f48e1130a95a7bdeb46 /src/main/java/design/controller/userinput/menus/StatisticsMenu.java | |
| parent | 1eca2f8681752ad359e8372780cdf719e2b1747d (diff) | |
| parent | 050118d5d029382ffc3b11e9f8159fb297007ef5 (diff) | |
| download | designproject-design-6-ab1c8dbf8e3fbd7ae1affd17e7b5596b1e58e839.tar.gz designproject-design-6-ab1c8dbf8e3fbd7ae1affd17e7b5596b1e58e839.tar.bz2 designproject-design-6-ab1c8dbf8e3fbd7ae1affd17e7b5596b1e58e839.zip | |
Merge pull request #12 from RIT-SWEN-262/menu-reorganize
Menu reorganize
Diffstat (limited to '')
| -rw-r--r-- | src/main/java/design/controller/userinput/menus/StatisticsMenu.java | 121 |
1 files changed, 61 insertions, 60 deletions
diff --git a/src/main/java/design/controller/userinput/menus/StatisticsMenu.java b/src/main/java/design/controller/userinput/menus/StatisticsMenu.java index 3af790e..9ce0bd0 100644 --- a/src/main/java/design/controller/userinput/menus/StatisticsMenu.java +++ b/src/main/java/design/controller/userinput/menus/StatisticsMenu.java @@ -19,27 +19,82 @@ import java.util.List; import java.util.Scanner; public class StatisticsMenu extends Menu { - - Golfer golfer = Session.getCurrentGolfer(); + private final Golfer golfer = Session.getCurrentGolfer(); @Override public String getTitle() { return "statistics menu"; } + @Override + public List<MenuOption> getMenuOptions() { + List<MenuOption> opts = new java.util.ArrayList<>(); + + opts.add(new MenuOption("return to main menu", () -> new MainMenu().present())); + + opts.add(new MenuOption("view lifetime statistics", () -> { + Statistics stats = new LifetimeStats(golfer); + + System.out.printf("Total swings: %d\n", stats.get_score()); + System.out.printf("Total distance: %.1f\n", stats.get_distance()); + this.present(); + })); + + opts.add(new MenuOption("view yearly statistics", () -> { + Statistics baseStats = new LifetimeStats(golfer); + Statistics yearStats = getUserYear(baseStats); + + System.out.printf("Total swings: %d\n", yearStats.get_score()); + System.out.printf("Total distance: %.1f\n", yearStats.get_distance()); + this.present(); + })); + + opts.add(new MenuOption("view course statistics", () -> { + Statistics baseStats = new LifetimeStats(golfer); + Statistics yearStats = getUserYear(baseStats); + Statistics courseStats = getUserCourse(yearStats); + + System.out.printf("Total swings: %d\n", courseStats.get_score()); + System.out.printf("Total distance: %.1f\n", courseStats.get_distance()); + this.present(); + })); + + opts.add(new MenuOption("view round statistics", () -> { + Statistics baseStats = new LifetimeStats(golfer); + Statistics yearStats = getUserYear(baseStats); + Statistics courseStats = getUserCourse(yearStats); + Statistics roundStats = getUserRound(courseStats); + + System.out.printf("Total swings: %d\n", roundStats.get_score()); + System.out.printf("Total distance: %.1f\n", roundStats.get_distance()); + this.present(); + })); + + opts.add(new MenuOption("view hole statistics", () -> { + Statistics baseStats = new LifetimeStats(golfer); + Statistics yearStats = getUserYear(baseStats); + Statistics courseStats = getUserCourse(yearStats); + Statistics roundStats = getUserRound(courseStats); + Statistics holeStats = getUserHole(roundStats); + + System.out.printf("Total swings: %d\n", holeStats.get_score()); + System.out.printf("Total distance: %.1f\n", holeStats.get_distance()); + this.present(); + })); + + return opts; + } + // Helper classes to get user input and handle finding the data they requested (Course, Hole, Year, etc.) - @SuppressWarnings("resource") private Statistics getUserYear(Statistics baseStats){ Scanner sc = new Scanner(System.in); System.out.println("Enter year to search: "); int year = Integer.parseInt(sc.nextLine()); - Statistics yearStats = new YearlyStats(baseStats, year); - return yearStats; + return new YearlyStats(baseStats, year); } - @SuppressWarnings("resource") private Statistics getUserCourse(Statistics baseStats){ Scanner sc = new Scanner(System.in); Course[] courses = golfer.getCourses(); @@ -51,7 +106,6 @@ public class StatisticsMenu extends Menu { return new CourseStats(baseStats, courses[selection - 1]); } - @SuppressWarnings("resource") private Statistics getUserRound(Statistics baseStats){ Scanner sc = new Scanner(System.in); Round[] rounds = baseStats.getRounds(); @@ -63,7 +117,6 @@ public class StatisticsMenu extends Menu { return new RoundStats(baseStats, rounds[selection - 1]); } - @SuppressWarnings("resource") private Statistics getUserHole(Statistics baseStats){ Scanner sc = new Scanner(System.in); Round round = baseStats.getRounds()[0]; // Only 1 round @@ -82,56 +135,4 @@ public class StatisticsMenu extends Menu { } return baseStats; } - - @Override - public List<MenuOption> getMenuOptions() { - return List.of( - new MenuOption("return to main menu", () -> new MainMenu().present()), - new MenuOption("view lifetime statistics", () -> { - Statistics stats = new LifetimeStats(golfer); - - System.out.printf("Total swings: %d\n", stats.get_score()); - System.out.printf("Total distance: %.1f\n", stats.get_distance()); - this.present(); - }), - new MenuOption("view yearly statistics", () -> { - Statistics baseStats = new LifetimeStats(golfer); - Statistics yearStats = getUserYear(baseStats); - - System.out.printf("Total swings: %d\n", yearStats.get_score()); - System.out.printf("Total distance: %.1f\n", yearStats.get_distance()); - this.present(); - }), - new MenuOption("view course statistics", () -> { - Statistics baseStats = new LifetimeStats(golfer); - Statistics yearStats = getUserYear(baseStats); - Statistics courseStats = getUserCourse(yearStats); - - System.out.printf("Total swings: %d\n", courseStats.get_score()); - System.out.printf("Total distance: %.1f\n", courseStats.get_distance()); - this.present(); - }), - new MenuOption("view round statistics", () -> { - Statistics baseStats = new LifetimeStats(golfer); - Statistics yearStats = getUserYear(baseStats); - Statistics courseStats = getUserCourse(yearStats); - Statistics roundStats = getUserRound(courseStats); - - System.out.printf("Total swings: %d\n", roundStats.get_score()); - System.out.printf("Total distance: %.1f\n", roundStats.get_distance()); - this.present(); - }), - new MenuOption("view hole statistics", () -> { - Statistics baseStats = new LifetimeStats(golfer); - Statistics yearStats = getUserYear(baseStats); - Statistics courseStats = getUserCourse(yearStats); - Statistics roundStats = getUserRound(courseStats); - Statistics holeStats = getUserHole(roundStats); - - System.out.printf("Total swings: %d\n", holeStats.get_score()); - System.out.printf("Total distance: %.1f\n", holeStats.get_distance()); - this.present(); - }) - ); - } }
\ No newline at end of file |
