Files
aston-team-project/app/src/main/java/ru/project/ui/collection/CurrentCollectionMenu.java
T
debug-version 259e0bc8bd feat(search): add occurrence counting menu and student settings
- add occurrence counting menu using StudentOccurrenceIndexFinder
- add student settings window for configuring search target
- display occurrence count and matching indices
- update current collection menu to delegate occurrence counting
2026-09-01 17:13:48 +04:00

61 lines
2.1 KiB
Java

package ru.project.ui.collection;
import com.googlecode.lanterna.gui2.ActionListBox;
import com.googlecode.lanterna.gui2.WindowBasedTextGUI;
import ru.project.model.AppState;
import ru.project.ui.base.BaseModalWindow;
import ru.project.ui.collection.counting.CountOccurrencesMenu;
import ru.project.ui.collection.search.SearchCollectionMenu;
import ru.project.ui.collection.sorting.SortCollectionMenu;
import ru.project.ui.common.CollectionDisplayWindow;
import ru.project.ui.common.CollectionFileSaveWindow;
public class CurrentCollectionMenu extends BaseModalWindow {
private final AppState state;
private final SortCollectionMenu sortCollectionMenu;
private final SearchCollectionMenu searchCollectionMenu;
private final CountOccurrencesMenu countOccurrencesMenu;
public CurrentCollectionMenu(WindowBasedTextGUI gui, AppState state) {
super("Меню текущей коллекции", gui);
this.state = state;
this.sortCollectionMenu = new SortCollectionMenu(gui, state);
this.searchCollectionMenu = new SearchCollectionMenu(gui, state);
this.countOccurrencesMenu = new CountOccurrencesMenu(gui, state);
ActionListBox menu = new ActionListBox();
menu.addItem("Показать коллекцию...", this::showCurrentCollection);
menu.addItem("Сохранить коллекцию в файл...", this::saveCurrentCollection);
menu.addItem("Меню сортировки коллекции", sortCollectionMenu::showModal);
menu.addItem("Меню поиска элемента в коллекции", searchCollectionMenu::showModal);
menu.addItem("Меню подсчёта количества вхождений элемента", countOccurrencesMenu::showModal);
menu.addItem("Выйти", this::close);
setComponent(menu);
}
private void showCurrentCollection() {
CollectionDisplayWindow window = new CollectionDisplayWindow(gui, state.getMainCollection());
window.showModal();
}
private void saveCurrentCollection() {
CollectionFileSaveWindow window = new CollectionFileSaveWindow(gui, state.getMainCollection());
window.showModal();
}
}