From 5f1ea0ee335a73edf53939b87218a34e93fe4de9 Mon Sep 17 00:00:00 2001 From: sowgro Date: Thu, 9 Oct 2025 21:03:25 -0400 Subject: Menu cleanup - pass 1 --- .../controller/userinput/menus/ManageCourses.java | 58 ++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 src/main/java/design/controller/userinput/menus/ManageCourses.java (limited to 'src/main/java/design/controller/userinput/menus/ManageCourses.java') diff --git a/src/main/java/design/controller/userinput/menus/ManageCourses.java b/src/main/java/design/controller/userinput/menus/ManageCourses.java new file mode 100644 index 0000000..5156a9b --- /dev/null +++ b/src/main/java/design/controller/userinput/menus/ManageCourses.java @@ -0,0 +1,58 @@ +package design.controller.userinput.menus; + +import design.controller.userinput.Menu; +import design.controller.userinput.MenuOption; +import design.model.Course; +import design.model.Golfer; +import design.runtime.Session; + +import java.util.ArrayList; +import java.util.List; + +public class ManageCourses extends Menu { + Golfer golfer = Session.getCurrentGolfer(); + + @Override + public String getTitle() { + return "manage courses"; + } + + @Override + public List getMenuOptions() { + List opts = new java.util.ArrayList<>(); + opts.add(new MenuOption("return to main menu", () -> new MainMenu().present())); + + opts.add(new MenuOption("list courses", () -> { + for (Course course : golfer.getCourses()) { + System.out.printf("- %s\n", course); + } + this.present(); + })); + + opts.add(new MenuOption("remove course...", () -> { + new Menu() { + @Override + public String getTitle() { + return "remove course"; + } + + @Override + public List getMenuOptions() { + List list = new ArrayList<>(); + for (Course c : golfer.getCourses()) { + MenuOption menuOption = new MenuOption(c.toString(), () -> { + golfer.removeCourse(c); + this.present(); + }); + list.add(menuOption); + } + return list; + } + }.present(); + })); + + opts.add(new MenuOption("add course...", () -> new SearchMenu().present())); + + return opts; + } +} -- cgit v1.2.3