diff options
| author | WillemDalton <willemhdalton@gmail.com> | 2025-10-05 19:02:08 -0400 |
|---|---|---|
| committer | WillemDalton <willemhdalton@gmail.com> | 2025-10-05 19:02:08 -0400 |
| commit | 3cc12738542bd7267606185ded60293d0acd7af6 (patch) | |
| tree | 5e31f47ae27fb70ce57f7a8e66779d89c8a940cd /src/main/java/design/controller/userinput | |
| parent | 9b67c5fa4c53a558a32926ab04b59def510396ab (diff) | |
| download | designproject-design-6-3cc12738542bd7267606185ded60293d0acd7af6.tar.gz designproject-design-6-3cc12738542bd7267606185ded60293d0acd7af6.tar.bz2 designproject-design-6-3cc12738542bd7267606185ded60293d0acd7af6.zip | |
more work on UI for the course searching
Diffstat (limited to 'src/main/java/design/controller/userinput')
| -rw-r--r-- | src/main/java/design/controller/userinput/menus/FiltersMenu.java | 42 | ||||
| -rw-r--r-- | src/main/java/design/controller/userinput/menus/SearchMenu.java | 14 |
2 files changed, 51 insertions, 5 deletions
diff --git a/src/main/java/design/controller/userinput/menus/FiltersMenu.java b/src/main/java/design/controller/userinput/menus/FiltersMenu.java new file mode 100644 index 0000000..434e395 --- /dev/null +++ b/src/main/java/design/controller/userinput/menus/FiltersMenu.java @@ -0,0 +1,42 @@ +package design.controller.userinput.menus; + +import design.controller.userinput.Menu; +import design.controller.userinput.MenuOption; +import design.model.course_search.*; + +import java.util.ArrayList; +import java.util.List; + +public class FiltersMenu extends Menu { + private final List<CourseSorter> filters = new ArrayList<CourseSorter>(); + + @Override + public String getTitle() { + return "filter menu"; + } + + public void addFilter(CourseSorter filter) { + filters.add(filter); + System.out.println("\nAdded filter.\n"); + new SearchMenu().present(); + } + + public void clearFilters() { + filters.clear(); + } + + @Override + public List<MenuOption> getMenuOptions() { + String filterString = "nothing"; + + for (CourseSorter f : filters) + { + filterString += "-->" + f.toString(); + } + + 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 f02de09..cc91795 100644 --- a/src/main/java/design/controller/userinput/menus/SearchMenu.java +++ b/src/main/java/design/controller/userinput/menus/SearchMenu.java @@ -2,6 +2,10 @@ 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 java.util.List; @@ -17,11 +21,11 @@ public class SearchMenu extends Menu { return List.of( new MenuOption("return to main menu", (a) -> new MainMenu().present()), new MenuOption("search...", (a) -> new SelectCourse().present()), - new MenuOption("add difficulty filter...", (a) -> {}), - new MenuOption("add hole count filter...", (a) -> {}), - new MenuOption("add location filter...", (a) -> {}), - new MenuOption("add par filter...", (a) -> {}), - new MenuOption("list filters", (a) -> {}), + new MenuOption("add difficulty filter...", (a) -> new FiltersMenu().addFilter(new SortByDifficulty())), + new MenuOption("add hole count filter...", (a) -> new FiltersMenu().addFilter(new SortByHoles())), + 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) -> {}) ); } |
