From 042c456a542a60262e71f694fa21e0dfcfc25f3a Mon Sep 17 00:00:00 2001 From: Michael Lizzio Date: Sun, 5 Oct 2025 16:42:54 -0400 Subject: Completed HolePlayMenu and basic CourseSelectionMenu, minal updates to other classes --- .../userinput/menus/CourseSelectMenu.java | 50 ++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 src/main/java/design/controller/userinput/menus/CourseSelectMenu.java (limited to 'src/main/java/design/controller/userinput/menus/CourseSelectMenu.java') diff --git a/src/main/java/design/controller/userinput/menus/CourseSelectMenu.java b/src/main/java/design/controller/userinput/menus/CourseSelectMenu.java new file mode 100644 index 0000000..cf6f4b1 --- /dev/null +++ b/src/main/java/design/controller/userinput/menus/CourseSelectMenu.java @@ -0,0 +1,50 @@ +package design.controller.userinput.menus; + +import design.controller.userinput.Menu; +import design.controller.userinput.MenuOption; +import design.controller.userinput.Session; +import design.model.Course; +import design.model.Hole; +import design.model.Round; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Scanner; + +public class CourseSelectMenu extends Menu { + + @Override + public String getTitle() { + return "course select"; + } + + @Override + public List getMenuOptions() { + List opts = new ArrayList<>(); + + // 0) pick course by number TODO: add error checking + opts.add(new MenuOption("pick course by number (1..1000)", a -> { + Scanner sc = new Scanner(System.in); + + System.out.print("Course number (1..1000): "); + int n = Integer.parseInt(sc.nextLine().trim()); + Course c = Session.MDB.getCourse(n - 1); + + System.out.print("Starting hole (1..18, blank=1): "); + String s = sc.nextLine().trim(); + int start = s.isEmpty() ? 1 : Integer.parseInt(s); + + Hole startHole = c.getHoles().get(start - 1); + + Round r = new Round(c, LocalDateTime.now(), startHole); + Session.getCurrentGolfer().addRound(r); + new HolePlayMenu(r).present(); + })); + + // 1) back + opts.add(new MenuOption("back to main menu", a -> new MainMenu().present())); + + return opts; + } +} -- cgit v1.2.3 From c9992d357a0df160c8b577c12bd70338627ef2ce Mon Sep 17 00:00:00 2001 From: Michael Lizzio Date: Mon, 6 Oct 2025 16:48:53 -0400 Subject: Updated code basied on feed back --- .../design/controller/userinput/menus/CourseSelectMenu.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'src/main/java/design/controller/userinput/menus/CourseSelectMenu.java') diff --git a/src/main/java/design/controller/userinput/menus/CourseSelectMenu.java b/src/main/java/design/controller/userinput/menus/CourseSelectMenu.java index cf6f4b1..7cef7fc 100644 --- a/src/main/java/design/controller/userinput/menus/CourseSelectMenu.java +++ b/src/main/java/design/controller/userinput/menus/CourseSelectMenu.java @@ -12,6 +12,9 @@ import java.util.ArrayList; import java.util.List; import java.util.Scanner; +import design.persistence.MasterDatabase; +import design.persistence.PersonalDatabase; + public class CourseSelectMenu extends Menu { @Override @@ -23,13 +26,16 @@ public class CourseSelectMenu extends Menu { public List getMenuOptions() { List opts = new ArrayList<>(); - // 0) pick course by number TODO: add error checking + // 0) back + opts.add(new MenuOption("back to main menu", a -> new MainMenu().present())); + + // 1) pick course by number TODO: add error checking opts.add(new MenuOption("pick course by number (1..1000)", a -> { Scanner sc = new Scanner(System.in); System.out.print("Course number (1..1000): "); int n = Integer.parseInt(sc.nextLine().trim()); - Course c = Session.MDB.getCourse(n - 1); + Course c = MasterDatabase.INSTANCE.getCourse(n - 1); System.out.print("Starting hole (1..18, blank=1): "); String s = sc.nextLine().trim(); @@ -42,9 +48,6 @@ public class CourseSelectMenu extends Menu { new HolePlayMenu(r).present(); })); - // 1) back - opts.add(new MenuOption("back to main menu", a -> new MainMenu().present())); - return opts; } } -- cgit v1.2.3 From 026a61737b9ad7517f1f82ba49d0fe61afac91ff Mon Sep 17 00:00:00 2001 From: Michael Lizzio Date: Mon, 6 Oct 2025 17:59:49 -0400 Subject: Updated location of Sesion.java --- src/main/java/design/controller/userinput/menus/CourseSelectMenu.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'src/main/java/design/controller/userinput/menus/CourseSelectMenu.java') diff --git a/src/main/java/design/controller/userinput/menus/CourseSelectMenu.java b/src/main/java/design/controller/userinput/menus/CourseSelectMenu.java index 7cef7fc..881c393 100644 --- a/src/main/java/design/controller/userinput/menus/CourseSelectMenu.java +++ b/src/main/java/design/controller/userinput/menus/CourseSelectMenu.java @@ -2,7 +2,6 @@ package design.controller.userinput.menus; import design.controller.userinput.Menu; import design.controller.userinput.MenuOption; -import design.controller.userinput.Session; import design.model.Course; import design.model.Hole; import design.model.Round; @@ -13,7 +12,7 @@ import java.util.List; import java.util.Scanner; import design.persistence.MasterDatabase; -import design.persistence.PersonalDatabase; +import design.runtime.Session; public class CourseSelectMenu extends Menu { -- cgit v1.2.3