diff options
| author | WillemDalton <willemhdalton@gmail.com> | 2025-10-07 09:10:05 -0400 |
|---|---|---|
| committer | WillemDalton <willemhdalton@gmail.com> | 2025-10-07 09:10:05 -0400 |
| commit | db1ede10a6547b51ffed71dc86d73f3a6c8af129 (patch) | |
| tree | 8e00cb77a84f53458f720a918659a92068d61cb4 /src/main/java/design/controller | |
| parent | c7f385078120311869fbcf27f974f480c4bb2fbb (diff) | |
| download | designproject-design-6-db1ede10a6547b51ffed71dc86d73f3a6c8af129.tar.gz designproject-design-6-db1ede10a6547b51ffed71dc86d73f3a6c8af129.tar.bz2 designproject-design-6-db1ede10a6547b51ffed71dc86d73f3a6c8af129.zip | |
added some comments, allows users to add courses to profile, fixed displaying course lists
Diffstat (limited to 'src/main/java/design/controller')
| -rw-r--r-- | src/main/java/design/controller/userinput/menus/FiltersMenu.java | 1 | ||||
| -rw-r--r-- | src/main/java/design/controller/userinput/menus/SelectCourse.java | 53 |
2 files changed, 42 insertions, 12 deletions
diff --git a/src/main/java/design/controller/userinput/menus/FiltersMenu.java b/src/main/java/design/controller/userinput/menus/FiltersMenu.java index 6923d3d..3a2463f 100644 --- a/src/main/java/design/controller/userinput/menus/FiltersMenu.java +++ b/src/main/java/design/controller/userinput/menus/FiltersMenu.java @@ -12,7 +12,6 @@ public class FiltersMenu extends Menu { CurrentSearchQuery query = CurrentSearchQuery.INSTANCE; - @Override public String getTitle() { return "filter menu"; diff --git a/src/main/java/design/controller/userinput/menus/SelectCourse.java b/src/main/java/design/controller/userinput/menus/SelectCourse.java index 0195bcf..0a57ab6 100644 --- a/src/main/java/design/controller/userinput/menus/SelectCourse.java +++ b/src/main/java/design/controller/userinput/menus/SelectCourse.java @@ -2,8 +2,9 @@ package design.controller.userinput.menus; import design.controller.userinput.Menu; import design.controller.userinput.MenuOption; -import design.model.course_search.CurrentSearchQuery; -import design.model.course_search.ICourse; +import design.runtime.*; +import design.model.*; +import design.model.course_search.*; import java.util.ArrayList; import java.util.List; @@ -26,9 +27,12 @@ public class SelectCourse extends Menu { Scanner sc = new Scanner(System.in); String searchTerm = sc.nextLine(); - query.search(searchTerm); + // reset the query so we aren't trying to search on an already searched query + query.reset(); - present(); + // search and present + query.search(searchTerm); + this.present(); } /* @@ -40,21 +44,48 @@ public class SelectCourse extends Menu { var l = new ArrayList<MenuOption>(); List<ICourse> queryResult = query.getQueryResult().getCourses(); - // we always want to return to menu as an option. + // 0 - return to main menu l.add(new MenuOption("return to main menu", (a) -> new MainMenu().present())); - // no results? let the user know. + // if we find no results, let the user know. if (queryResult.isEmpty()) { System.out.println("\nNo matching courses found.\n"); } - // add all of our results. - l.addAll(query.getQueryResult().getCourses().stream() - .map(i -> new MenuOption( - i.getName() + ", " + i.getLocation() + ", Difficulty: " + i.getDifficultyRating() + ", " + i.getHoleCount() + " holes", - (a) -> {})).toList()); // TO DO: inputing the # for the course should add it to the user's profile + // traverse the course list tree and add menu options for each leaf (course) + addCoursesRecursive(l, query.getQueryResult()); return l; } + + // recursively go through tree structure of courselist to make menu options + private void addCoursesRecursive(List<MenuOption> menuOptions, CourseList list) + { + for (ICourse icourse : list.getCourses()) + { + // if we find a leaf (course), display it as a menu option + if (icourse instanceof Course c) + { + menuOptions.add(new MenuOption( c.getName() + ", " + c.getLocation() + ", Difficulty: " + c.getDifficultyRating() + ", " + c.getHoleCount() + " holes", + (a) -> { + Golfer currentGolfer = Session.getCurrentGolfer(); + if(currentGolfer == null) + { + System.out.println("\n\n !!! log into a golfer account to add courses to your profile. !!! \n\n"); + new MainMenu().present(); + } + + currentGolfer.addCourse(c); + System.out.println("\n Course added to profile. \n"); + } + )); + } + // if not, we need to traverse another courselist + else if (icourse instanceof CourseList sublist) + { + addCoursesRecursive(menuOptions, sublist); + } + } + } } |
