diff options
| author | Willem Dalton <144246261+WillemDalton@users.noreply.github.com> | 2025-10-12 12:36:17 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-12 12:36:17 -0400 |
| commit | ab1c8dbf8e3fbd7ae1affd17e7b5596b1e58e839 (patch) | |
| tree | 91ed2c27e9735e05c8569f48e1130a95a7bdeb46 /src/main/java/design/controller/userinput/menus/SearchMenu.java | |
| parent | 1eca2f8681752ad359e8372780cdf719e2b1747d (diff) | |
| parent | 050118d5d029382ffc3b11e9f8159fb297007ef5 (diff) | |
| download | designproject-design-6-ab1c8dbf8e3fbd7ae1affd17e7b5596b1e58e839.tar.gz designproject-design-6-ab1c8dbf8e3fbd7ae1affd17e7b5596b1e58e839.tar.bz2 designproject-design-6-ab1c8dbf8e3fbd7ae1affd17e7b5596b1e58e839.zip | |
Merge pull request #12 from RIT-SWEN-262/menu-reorganize
Menu reorganize
Diffstat (limited to 'src/main/java/design/controller/userinput/menus/SearchMenu.java')
| -rw-r--r-- | src/main/java/design/controller/userinput/menus/SearchMenu.java | 46 |
1 files changed, 32 insertions, 14 deletions
diff --git a/src/main/java/design/controller/userinput/menus/SearchMenu.java b/src/main/java/design/controller/userinput/menus/SearchMenu.java index 8b50265..48aebb0 100644 --- a/src/main/java/design/controller/userinput/menus/SearchMenu.java +++ b/src/main/java/design/controller/userinput/menus/SearchMenu.java @@ -2,10 +2,7 @@ package design.controller.userinput.menus; import design.controller.userinput.Menu; import design.controller.userinput.MenuOption; -import design.model.course_search.SortByDifficulty; -import design.model.course_search.SortByHoles; -import design.model.course_search.SortByLocation; -import design.model.course_search.SortByPar; +import design.model.course_search.*; import java.util.List; @@ -13,6 +10,7 @@ import java.util.List; * The main control panel for course searching. */ public class SearchMenu extends Menu { + private final CurrentSearchQuery query = CurrentSearchQuery.INSTANCE; @Override public String getTitle() { @@ -21,15 +19,35 @@ public class SearchMenu extends Menu { @Override public List<MenuOption> getMenuOptions() { - return List.of( - new MenuOption("return to main menu", () -> new MainMenu().present()), - new MenuOption("search...", () -> new CourseSearch().search()), - new MenuOption("add difficulty filter...", () -> new FiltersMenu().addFilter(new SortByDifficulty())), - new MenuOption("add hole count filter...", () -> new FiltersMenu().addFilter(new SortByHoles())), - new MenuOption("add location filter...", () -> new FiltersMenu().addFilter(new SortByLocation())), - new MenuOption("add par filter...", () -> new FiltersMenu().addFilter(new SortByPar())), - new MenuOption("list filters", () -> new FiltersMenu().present()), - new MenuOption("clear all filters", () -> new FiltersMenu().clearFilters()) - ); + List<MenuOption> menuOptions = new java.util.ArrayList<>(); + + menuOptions.add(new MenuOption("return to main menu", () -> new MainMenu().present())); + menuOptions.add(new MenuOption("search...", () -> new CourseSearch().present())); + + menuOptions.add(new MenuOption("sort by difficulty", () -> addFilter(new SortByDifficulty()))); + menuOptions.add(new MenuOption("sort by hole count", () -> addFilter(new SortByHoles()))); + menuOptions.add(new MenuOption("sort by location", () -> addFilter(new SortByLocation()))); + menuOptions.add(new MenuOption("sort by par", () -> addFilter(new SortByPar()))); + + menuOptions.add(new MenuOption("list filters", () -> { + System.out.println("\nYou are filtering by "); + System.out.println(query.printFilters()); + })); + + menuOptions.add(new MenuOption("clear sorting filters", () -> { + query.clearFilters(); + System.out.println("\nCleared all filters.\n"); + this.present(); + })); + return menuOptions; + } + + /* + * Add a new filter to our filter list + */ + public void addFilter(CourseSorter filter) { + query.addFilter(filter); + System.out.println("\nAdded sorting filter.\n"); + this.present(); } } |
