2026-08-31 13:52:54 +04:00
|
|
|
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;
|
2026-09-01 13:27:21 +04:00
|
|
|
import ru.project.ui.collection.search.SearchCollectionMenu;
|
2026-08-31 13:52:54 +04:00
|
|
|
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;
|
2026-09-01 13:27:21 +04:00
|
|
|
private final SearchCollectionMenu searchCollectionMenu;
|
2026-08-31 13:52:54 +04:00
|
|
|
|
2026-08-31 19:11:10 +04:00
|
|
|
// private final CountOccurrencesMenu countOccurrencesMenu;
|
|
|
|
|
|
2026-08-31 13:52:54 +04:00
|
|
|
public CurrentCollectionMenu(WindowBasedTextGUI gui, AppState state) {
|
|
|
|
|
|
|
|
|
|
super("Меню текущей коллекции", gui);
|
|
|
|
|
|
|
|
|
|
this.state = state;
|
|
|
|
|
|
|
|
|
|
this.sortCollectionMenu = new SortCollectionMenu(gui, state);
|
|
|
|
|
|
2026-09-01 13:27:21 +04:00
|
|
|
this.searchCollectionMenu = new SearchCollectionMenu(gui, state);
|
|
|
|
|
|
2026-08-31 19:11:10 +04:00
|
|
|
// this.countCollectionMenu = new CountOccurrencesMenu(gui, state);
|
|
|
|
|
|
2026-08-31 13:52:54 +04:00
|
|
|
ActionListBox menu = new ActionListBox();
|
2026-08-31 18:01:58 +04:00
|
|
|
menu.addItem("Показать коллекцию...", this::showCurrentCollection);
|
2026-08-31 13:52:54 +04:00
|
|
|
|
2026-08-31 18:01:58 +04:00
|
|
|
menu.addItem("Сохранить коллекцию в файл...", this::saveCurrentCollection);
|
2026-08-31 13:52:54 +04:00
|
|
|
|
2026-08-31 18:01:58 +04:00
|
|
|
menu.addItem("Меню сортировки коллекции", sortCollectionMenu::showModal);
|
2026-08-31 13:52:54 +04:00
|
|
|
|
2026-09-01 13:27:21 +04:00
|
|
|
menu.addItem("Меню поиска элемента в коллекции", searchCollectionMenu::showModal);
|
2026-08-31 13:52:54 +04:00
|
|
|
|
2026-08-31 18:01:58 +04:00
|
|
|
menu.addItem("Меню подсчёта количества вхождений элемента", this::countOccurrences);
|
2026-08-31 13:52:54 +04:00
|
|
|
|
|
|
|
|
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();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void countOccurrences() {
|
2026-08-31 19:11:10 +04:00
|
|
|
// CountOccurrencesMenu countOccurrencesMenu = new CountOccurrencesMenu(gui, state);
|
|
|
|
|
//
|
|
|
|
|
// countOccurrencesMenu.showModal();
|
2026-08-31 13:52:54 +04:00
|
|
|
}
|
|
|
|
|
}
|