/
evernotenkai
/
DataBaseXJavaProject
Обзор
Документация
Войти
/
evernotenkai
/
DataBaseXJavaProject
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/app/ui/teacher/TeacherAssignmentsView.java
96 строк
4 KB
Makson4ik
Весь проект с src db и прочим делом
12 май 2026, 22:43
12 май 2026, 22:43
431f4aa
Код
Авторство
О чём код?
package app.ui.teacher; import app.model.AssignmentItem; import app.model.CourseItem; import app.service.LmsService; import app.ui.components.PageHeader; import app.util.Dialogs; import javafx.beans.property.SimpleStringProperty; import javafx.collections.FXCollections; import javafx.geometry.Insets; import javafx.scene.control.Button; import javafx.scene.control.ComboBox; import javafx.scene.control.Label; import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; import javafx.scene.control.TextArea; import javafx.scene.control.TextField; import javafx.scene.layout.HBox; import javafx.scene.layout.VBox; public class TeacherAssignmentsView extends VBox { private final TableView<AssignmentItem> table = new TableView<AssignmentItem>(); public TeacherAssignmentsView(LmsService service, int teacherId) { getStyleClass().add("content-root"); setSpacing(18); getChildren().add(new PageHeader("Мои задания", "Создавай задания только для собственных курсов.")); VBox form = new VBox(10); form.getStyleClass().addAll("card", "surface"); form.setPadding(new Insets(18)); ComboBox<CourseItem> courseBox = new ComboBox<CourseItem>(); courseBox.setPrefWidth(320); courseBox.setItems(FXCollections.observableArrayList(service.findTeacherCourses(teacherId))); courseBox.setCellFactory(v -> new javafx.scene.control.ListCell<CourseItem>() { @Override protected void updateItem(CourseItem item, boolean empty) { super.updateItem(item, empty); setText(empty || item == null ? "" : item.getName()); } }); courseBox.setButtonCell(new javafx.scene.control.ListCell<CourseItem>() { @Override protected void updateItem(CourseItem item, boolean empty) { super.updateItem(item, empty); setText(empty || item == null ? "" : item.getName()); } }); TextField title = new TextField(); title.setPromptText("Название задания"); TextField dueDate = new TextField(); dueDate.setPromptText("Срок сдачи (YYYY-MM-DD)"); TextArea desc = new TextArea(); desc.setPromptText("Описание задания"); desc.setPrefRowCount(3); Button create = new Button("Создать задание"); create.getStyleClass().add("primary-btn"); create.setOnAction(e -> { try { if (courseBox.getValue() == null) { Dialogs.info("Проверка", "Выбери курс"); return; } service.createAssignment(courseBox.getValue().getId(), title.getText(), desc.getText(), dueDate.getText()); table.setItems(FXCollections.observableArrayList(service.findTeacherAssignments(teacherId))); title.clear(); desc.clear(); dueDate.clear(); Dialogs.info("Успех", "Задание создано"); } catch (Exception ex) { Dialogs.error("Ошибка создания задания", ex); } }); form.getChildren().addAll(new Label("Курс"), courseBox, title, dueDate, desc, create); TableColumn<AssignmentItem, String> c1 = new TableColumn<AssignmentItem, String>("Курс"); c1.setCellValueFactory(v -> new SimpleStringProperty(v.getValue().getCourseName())); c1.setPrefWidth(180); TableColumn<AssignmentItem, String> c2 = new TableColumn<AssignmentItem, String>("Название"); c2.setCellValueFactory(v -> new SimpleStringProperty(v.getValue().getTitle())); c2.setPrefWidth(220); TableColumn<AssignmentItem, String> c3 = new TableColumn<AssignmentItem, String>("Описание"); c3.setCellValueFactory(v -> new SimpleStringProperty(v.getValue().getDescription())); c3.setPrefWidth(300); TableColumn<AssignmentItem, String> c4 = new TableColumn<AssignmentItem, String>("Срок"); c4.setCellValueFactory(v -> new SimpleStringProperty(v.getValue().getDueDate())); c4.setPrefWidth(120); table.getColumns().addAll(c1, c2, c3, c4); table.setItems(FXCollections.observableArrayList(service.findTeacherAssignments(teacherId))); HBox row = new HBox(18, form, table); getChildren().add(row); } }