diff options
Diffstat (limited to 'src/main/java/design/controller/userinput/menus/SelectCourse.java')
| -rw-r--r-- | src/main/java/design/controller/userinput/menus/SelectCourse.java | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/main/java/design/controller/userinput/menus/SelectCourse.java b/src/main/java/design/controller/userinput/menus/SelectCourse.java new file mode 100644 index 0000000..0195bcf --- /dev/null +++ b/src/main/java/design/controller/userinput/menus/SelectCourse.java @@ -0,0 +1,60 @@ +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 java.util.ArrayList; +import java.util.List; +import java.util.Scanner; + +public class SelectCourse extends Menu { + CurrentSearchQuery query = CurrentSearchQuery.INSTANCE; + + @Override + public String getTitle() { + return "select course"; + } + + /* + * Prompt for input and search. + */ + public void search() + { + System.out.print("Enter search term (blank for all): "); + Scanner sc = new Scanner(System.in); + String searchTerm = sc.nextLine(); + + query.search(searchTerm); + + present(); + } + + /* + * Display the results of our search. + */ + @Override + public List<MenuOption> getMenuOptions() + { + var l = new ArrayList<MenuOption>(); + List<ICourse> queryResult = query.getQueryResult().getCourses(); + + // we always want to return to menu as an option. + l.add(new MenuOption("return to main menu", (a) -> new MainMenu().present())); + + // 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 + return l; + } + +} |
