From e21be3aea31959219aafc4e28d983bafa95cde0a Mon Sep 17 00:00:00 2001 From: WillemDalton Date: Mon, 6 Oct 2025 10:25:23 -0400 Subject: moved some menu logic over to the search subystem, added a new query class --- .../controller/userinput/menus/FiltersMenu.java | 21 +++++++++++---------- .../controller/userinput/menus/SearchMenu.java | 2 +- 2 files changed, 12 insertions(+), 11 deletions(-) (limited to 'src/main/java/design/controller') diff --git a/src/main/java/design/controller/userinput/menus/FiltersMenu.java b/src/main/java/design/controller/userinput/menus/FiltersMenu.java index 434e395..e81c093 100644 --- a/src/main/java/design/controller/userinput/menus/FiltersMenu.java +++ b/src/main/java/design/controller/userinput/menus/FiltersMenu.java @@ -4,11 +4,14 @@ import design.controller.userinput.Menu; import design.controller.userinput.MenuOption; import design.model.course_search.*; -import java.util.ArrayList; import java.util.List; +import design.model.course_search.CurrentSearchQuery; + public class FiltersMenu extends Menu { - private final List filters = new ArrayList(); + + CurrentSearchQuery query = CurrentSearchQuery.INSTANCE; + @Override public String getTitle() { @@ -16,25 +19,23 @@ public class FiltersMenu extends Menu { } public void addFilter(CourseSorter filter) { - filters.add(filter); + CurrentSearchQuery.INSTANCE.addFilter(filter); System.out.println("\nAdded filter.\n"); new SearchMenu().present(); } public void clearFilters() { - filters.clear(); + CurrentSearchQuery.INSTANCE.clearFilters(); + System.out.println("\nCleared all filters.\n"); + new SearchMenu().present(); } @Override public List getMenuOptions() { - String filterString = "nothing"; - for (CourseSorter f : filters) - { - filterString += "-->" + f.toString(); - } + System.out.println("\nYou are filtering by "); + System.out.println(query.printFilters()); - System.out.println("You are filtering by " + filterString); return List.of( new MenuOption("return to search", (c) -> new SearchMenu().present()) ); diff --git a/src/main/java/design/controller/userinput/menus/SearchMenu.java b/src/main/java/design/controller/userinput/menus/SearchMenu.java index cc91795..6f3399b 100644 --- a/src/main/java/design/controller/userinput/menus/SearchMenu.java +++ b/src/main/java/design/controller/userinput/menus/SearchMenu.java @@ -26,7 +26,7 @@ public class SearchMenu extends Menu { new MenuOption("add location filter...", (a) -> new FiltersMenu().addFilter(new SortByLocation())), new MenuOption("add par filter...", (a) -> new FiltersMenu().addFilter(new SortByPar())), new MenuOption("list filters", (a) -> new FiltersMenu().present()), - new MenuOption("clear all filters", (a) -> {}) + new MenuOption("clear all filters", (a) -> new FiltersMenu().clearFilters()) ); } } -- cgit v1.2.3