/
Maksim_Shchelochok
/
Course_Work
Обзор
Документация
Войти
/
Maksim_Shchelochok
/
Course_Work
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/controller/TeacherController.java
92 строки
3 KB
Maksim
Создан контроллер для Speciality
23 июн 2026, 00:46
23 июн 2026, 00:46
13b7c2f
Код
Авторство
О чём код?
package controller; import javafx.scene.control.Alert; import javafx.scene.layout.Region; import model.Teacher; import model.TeacherManager; import view.EntityTableView; import view.Input; import java.util.List; public class TeacherController { private final TeacherManager manager = new TeacherManager(); private final EntityTableView view; private static final String[] LABELS = {"Фамилия", "Имя", "Отчество", "Стаж (число)", "Телефон"}; public TeacherController(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<Teacher> data = manager.getAll(); view.setData(data); } private void add() { Input dialog = new Input("Добавить преподавателя", LABELS, null); dialog.showAndWait().ifPresent(v -> { int experience = parseIntSafe(v.get(3)); String error = manager.create(v.get(0), v.get(1), v.get(2), experience, v.get(4)); 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()); String[] init = { str(row[1]), str(row[2]), str(row[3]), str(row[4]), str(row[5]) }; Input dialog = new Input("Изменить преподавателя", LABELS, init); dialog.showAndWait().ifPresent(v -> { int experience = parseIntSafe(v.get(3)); String error = manager.update(id, v.get(0), v.get(1), v.get(2), experience, v.get(4)); 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 int parseIntSafe(String s) { try { return Integer.parseInt(s.trim()); } catch (Exception e) { return 0; } } private String str(Object o) { return o == null ? "" : o.toString(); } 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(); } }