summaryrefslogtreecommitdiff
path: root/src/main/java/design/controller/userinput/menus/SearchMenu.java
diff options
context:
space:
mode:
authorsowgro <tpoke.ferrari@gmail.com>2025-10-11 22:24:54 -0400
committersowgro <tpoke.ferrari@gmail.com>2025-10-11 22:24:54 -0400
commitfac7fb71260b901a893b5b90aae23e86d6c23550 (patch)
tree41132296ea8e2bf124f76b9cfad1d6e492e8f0e0 /src/main/java/design/controller/userinput/menus/SearchMenu.java
parent197e1961b4b9b2ab12dc070cd6a76ccb1ef3b369 (diff)
downloaddesignproject-design-6-fac7fb71260b901a893b5b90aae23e86d6c23550.tar.gz
designproject-design-6-fac7fb71260b901a893b5b90aae23e86d6c23550.tar.bz2
designproject-design-6-fac7fb71260b901a893b5b90aae23e86d6c23550.zip
Menu cleanup - pass 2
Diffstat (limited to 'src/main/java/design/controller/userinput/menus/SearchMenu.java')
-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();
+ }
}