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 From fac7fb71260b901a893b5b90aae23e86d6c23550 Mon Sep 17 00:00:00 2001 From: sowgro Date: Sat, 11 Oct 2025 22:24:54 -0400 Subject: Menu cleanup - pass 2 --- .../controller/userinput/menus/ManageCourses.java | 26 +++++----------------- 1 file changed, 5 insertions(+), 21 deletions(-) (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 index 5156a9b..dff48dc 100644 --- a/src/main/java/design/controller/userinput/menus/ManageCourses.java +++ b/src/main/java/design/controller/userinput/menus/ManageCourses.java @@ -6,11 +6,10 @@ 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(); + private final Golfer golfer = Session.getCurrentGolfer(); @Override public String getTitle() { @@ -30,25 +29,10 @@ public class ManageCourses extends Menu { })); 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(); + var selector = new SelectCourse(golfer); + selector.present(); + golfer.removeCourse(selector.getResult()); + this.present(); })); opts.add(new MenuOption("add course...", () -> new SearchMenu().present())); -- cgit v1.2.3 From df8adcc59fad860445527c8a4da820a73036b542 Mon Sep 17 00:00:00 2001 From: sowgro Date: Sat, 11 Oct 2025 23:49:49 -0400 Subject: Menu cleanup - pass 3 --- src/main/java/design/controller/userinput/menus/ManageCourses.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (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 index dff48dc..a0d7b61 100644 --- a/src/main/java/design/controller/userinput/menus/ManageCourses.java +++ b/src/main/java/design/controller/userinput/menus/ManageCourses.java @@ -29,7 +29,7 @@ public class ManageCourses extends Menu { })); opts.add(new MenuOption("remove course...", () -> { - var selector = new SelectCourse(golfer); + var selector = new SelectCourse(); selector.present(); golfer.removeCourse(selector.getResult()); this.present(); -- cgit v1.2.3 From 8d37a242acf4026c097f44c2383a7c746cff6393 Mon Sep 17 00:00:00 2001 From: sowgro Date: Sun, 12 Oct 2025 00:55:11 -0400 Subject: fix club serialization and saving of some options --- .../java/design/controller/userinput/menus/ManageCourses.java | 8 ++++++++ 1 file changed, 8 insertions(+) (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 index a0d7b61..4306560 100644 --- a/src/main/java/design/controller/userinput/menus/ManageCourses.java +++ b/src/main/java/design/controller/userinput/menus/ManageCourses.java @@ -4,12 +4,15 @@ import design.controller.userinput.Menu; import design.controller.userinput.MenuOption; import design.model.Course; import design.model.Golfer; +import design.persistence.PersonalDatabase; import design.runtime.Session; +import java.io.IOException; import java.util.List; public class ManageCourses extends Menu { private final Golfer golfer = Session.getCurrentGolfer(); + private final PersonalDatabase personalDB = PersonalDatabase.INSTANCE; @Override public String getTitle() { @@ -32,6 +35,11 @@ public class ManageCourses extends Menu { var selector = new SelectCourse(); selector.present(); golfer.removeCourse(selector.getResult()); + try { + personalDB.updateGolfer(golfer); + } catch (IOException ex) { + System.out.println("Failed to update golfer."); + } this.present(); })); -- cgit v1.2.3