/
Maksim_Shchelochok
/
Course_Work
Обзор
Документация
Войти
/
Maksim_Shchelochok
/
Course_Work
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/controller/CourseController.java
78 строк
3 KB
Maksim
Создан контроллер для класса курсов
21 июн 2026, 19:36
21 июн 2026, 19:36
4fda37f
Код
Авторство
О чём код?
package controller; import javafx.scene.control.Alert; import javafx.scene.layout.Region; import model.Course; import model.CourseManager; import view.EntityTableView; import view.Input; import java.util.List; public class CourseController { private final CourseManager manager = new CourseManager(); private final EntityTableView view; public CourseController(boolean canEdit) { this.view = new EntityTableView( new String[]{"ID", "Название курса"}, canEdit); view.getRefreshButton().setOnAction(e -> refresh()); if (canEdit) { view.getAddButton().setOnAction(e -> add()); view.getEditButton().setOnAction(e -> edit()); view.getDeleteButton().setOnAction(e -> delete()); } refresh(); } public Region getView() { return view; } private void refresh() { List<Course> data = manager.getAll(); view.setData(data); } private void add() { Input dialog = new Input( "Добавить курс", new String[]{"Название курса"}, null); dialog.showAndWait().ifPresent(values -> { String error = manager.create(values.get(0)); if (error != null) error(error); refresh(); }); } private void edit() { Object[] row = view.getSelectedRow(); if (row == null) { info("Выберите строку для изменения."); return; } int id = Integer.parseInt(row[0].toString()); Input dialog = new Input("Изменить курс", new String[]{"Название курса"}, new String[]{row[1].toString()}); dialog.showAndWait().ifPresent(values -> { String error = manager.update(id, values.get(0)); if (error != null) error(error); refresh(); }); } private void delete() { Object[] row = view.getSelectedRow(); if (row == null) { info("Выберите строку для удаления."); return; } int id = Integer.parseInt(row[0].toString()); String error = manager.delete(id); if (error != null) error(error); refresh(); } private void info(String text) {alert(Alert.AlertType.INFORMATION, text);} private void error(String text) {alert(Alert.AlertType.ERROR, text);} private void alert(Alert.AlertType type, String text) { Alert a = new Alert(type); a.setHeaderText(null); a.setContentText(text); a.showAndWait(); } }