summaryrefslogtreecommitdiff
path: root/src/main/java/design/controller/userinput/menus/SearchMenu.java
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/main/java/design/controller/userinput/menus/SearchMenu.java46
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();
}
}