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.java41
1 files changed, 31 insertions, 10 deletions
diff --git a/src/main/java/design/controller/userinput/menus/SearchMenu.java b/src/main/java/design/controller/userinput/menus/SearchMenu.java
index 609ce23..6d9fe26 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() {
@@ -24,12 +22,35 @@ public class SearchMenu extends Menu {
return List.of(
new MenuOption("return to main menu", () -> new MainMenu().present()),
new MenuOption("search...", () -> new CourseSearch().present()),
- 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())
+ new MenuOption("add difficulty filter...", () -> addFilter(new SortByDifficulty())),
+ new MenuOption("add hole count filter...", () -> addFilter(new SortByHoles())),
+ new MenuOption("add location filter...", () -> addFilter(new SortByLocation())),
+ new MenuOption("add par filter...", () -> addFilter(new SortByPar())),
+ new MenuOption("list filters", this::printFilters),
+ new MenuOption("clear all filters", this::clearFilters)
);
}
+
+ private void printFilters() {
+ System.out.println("\nYou are filtering by ");
+ System.out.println(query.printFilters());
+ }
+
+ /*
+ * Add a new filter to our filter list
+ */
+ public void addFilter(CourseSorter filter) {
+ query.addFilter(filter);
+ System.out.println("\nAdded filter.\n");
+ new SearchMenu().present();
+ }
+
+ /*
+ * clear all of our filters.
+ */
+ public void clearFilters() {
+ query.clearFilters();
+ System.out.println("\nCleared all filters.\n");
+ new SearchMenu().present();
+ }
}