summaryrefslogtreecommitdiff
path: root/src/main/java/design/controller/userinput/menus/StatisticsMenu.java
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/main/java/design/controller/userinput/menus/StatisticsMenu.java121
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