/
evernotenkai
/
DataBaseXJavaProject
Обзор
Документация
Войти
/
evernotenkai
/
DataBaseXJavaProject
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/app/ui/student/StudentSubmissionsView.java
95 строк
5 KB
Makson4ik
Весь проект с src db и прочим делом
12 май 2026, 22:43
12 май 2026, 22:43
431f4aa
Код
Авторство
О чём код?
package app.ui.student; import app.model.AssignmentItem; import app.model.SubmissionItem; 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.TableColumn; import javafx.scene.control.TableView; import javafx.scene.control.TextArea; import javafx.scene.layout.HBox; import javafx.scene.layout.VBox; public class StudentSubmissionsView extends VBox { private final TableView<SubmissionItem> table = new TableView<SubmissionItem>(); public StudentSubmissionsView(LmsService service, int studentId) { 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<AssignmentItem> assignmentBox = new ComboBox<AssignmentItem>(); assignmentBox.setItems(FXCollections.observableArrayList(service.findStudentAssignments(studentId))); assignmentBox.setPrefWidth(360); assignmentBox.setCellFactory(v -> new javafx.scene.control.ListCell<AssignmentItem>() { @Override protected void updateItem(AssignmentItem item, boolean empty) { super.updateItem(item, empty); setText(empty || item == null ? "" : item.getCourseName() + " — " + item.getTitle()); } }); assignmentBox.setButtonCell(new javafx.scene.control.ListCell<AssignmentItem>() { @Override protected void updateItem(AssignmentItem item, boolean empty) { super.updateItem(item, empty); setText(empty || item == null ? "" : item.getCourseName() + " — " + item.getTitle()); } }); TextArea text = new TextArea(); text.setPromptText("Текст отправляемой работы / краткое описание результата"); text.setPrefRowCount(5); Button send = new Button("Отправить работу"); send.getStyleClass().add("primary-btn"); send.setOnAction(e -> { try { if (assignmentBox.getValue() == null) { Dialogs.info("Проверка", "Выбери задание"); return; } service.submitWork(studentId, assignmentBox.getValue().getId(), text.getText()); text.clear(); reload(service, studentId); Dialogs.info("Успех", "Работа отправлена"); } catch (Exception ex) { Dialogs.error("Ошибка отправки", ex); } }); form.getChildren().addAll(assignmentBox, text, send); TableColumn<SubmissionItem, String> c1 = new TableColumn<SubmissionItem, String>("Задание"); c1.setCellValueFactory(v -> new SimpleStringProperty(v.getValue().getAssignmentTitle())); c1.setPrefWidth(220); TableColumn<SubmissionItem, String> c2 = new TableColumn<SubmissionItem, String>("Дата"); c2.setCellValueFactory(v -> new SimpleStringProperty(v.getValue().getSubmissionDate())); c2.setPrefWidth(110); TableColumn<SubmissionItem, String> c3 = new TableColumn<SubmissionItem, String>("Комментарий"); c3.setCellValueFactory(v -> new SimpleStringProperty(v.getValue().getContentNote())); c3.setPrefWidth(300); TableColumn<SubmissionItem, String> c4 = new TableColumn<SubmissionItem, String>("Статус"); c4.setCellValueFactory(v -> new SimpleStringProperty(v.getValue().getStatus())); c4.setPrefWidth(110); TableColumn<SubmissionItem, String> c5 = new TableColumn<SubmissionItem, String>("Оценка"); c5.setCellValueFactory(v -> new SimpleStringProperty(v.getValue().getGradeValue() == null ? "" : String.valueOf(v.getValue().getGradeValue()))); c5.setPrefWidth(100); table.getColumns().addAll(c1, c2, c3, c4, c5); reload(service, studentId); HBox row = new HBox(18, form, table); getChildren().add(row); } private void reload(LmsService service, int studentId) { table.setItems(FXCollections.observableArrayList(service.findStudentSubmissions(studentId))); } }