feat(ui): add sort field configuration and parity sort settings
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
package ru.project.ui.window;
|
||||
|
||||
import com.googlecode.lanterna.gui2.ActionListBox;
|
||||
import com.googlecode.lanterna.gui2.Button;
|
||||
import com.googlecode.lanterna.gui2.LinearLayout;
|
||||
import com.googlecode.lanterna.gui2.Panel;
|
||||
import com.googlecode.lanterna.gui2.WindowBasedTextGUI;
|
||||
import java.util.function.Consumer;
|
||||
import ru.project.model.SortField;
|
||||
import ru.project.ui.base.BaseModalWindow;
|
||||
|
||||
public class NormalSortSettingsWindow extends BaseModalWindow {
|
||||
|
||||
private final Consumer<SortField> onSortFieldSelected;
|
||||
|
||||
public NormalSortSettingsWindow(WindowBasedTextGUI gui, Consumer<SortField> onSortFieldSelected) {
|
||||
|
||||
super("Обычная сортировка", gui);
|
||||
|
||||
this.onSortFieldSelected = onSortFieldSelected;
|
||||
|
||||
Panel panel = new Panel();
|
||||
panel.setLayoutManager(new LinearLayout());
|
||||
|
||||
ActionListBox menu = new ActionListBox();
|
||||
|
||||
menu.addItem("Сортировать по номеру группы", () -> selectSortField(SortField.GROUP_NUMBER));
|
||||
|
||||
menu.addItem("Сортировать по среднему баллу", () -> selectSortField(SortField.AVERAGE_GRADE));
|
||||
|
||||
menu.addItem(
|
||||
"Сортировать по номеру зачётной книжки",
|
||||
() -> selectSortField(SortField.RECORD_BOOK_NUMBER));
|
||||
|
||||
panel.addComponent(menu);
|
||||
|
||||
panel.addComponent(new Button("Выйти", this::close));
|
||||
|
||||
setComponent(panel);
|
||||
}
|
||||
|
||||
private void selectSortField(SortField sortField) {
|
||||
onSortFieldSelected.accept(sortField);
|
||||
close();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package ru.project.ui.window;
|
||||
|
||||
import com.googlecode.lanterna.gui2.Button;
|
||||
import com.googlecode.lanterna.gui2.Label;
|
||||
import com.googlecode.lanterna.gui2.LinearLayout;
|
||||
import com.googlecode.lanterna.gui2.Panel;
|
||||
import com.googlecode.lanterna.gui2.WindowBasedTextGUI;
|
||||
import ru.project.ui.base.BaseModalWindow;
|
||||
|
||||
public class ParitySortSettingsWindow extends BaseModalWindow {
|
||||
|
||||
public ParitySortSettingsWindow(WindowBasedTextGUI gui) {
|
||||
super("Настройка сортировки по чётности", gui);
|
||||
|
||||
Panel panel = new Panel();
|
||||
panel.setLayoutManager(new LinearLayout());
|
||||
|
||||
panel.addComponent(new Label("Сортировка выполняется по номеру зачётной книжки."));
|
||||
|
||||
panel.addComponent(new Button("Назад", this::close));
|
||||
|
||||
setComponent(panel);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user