package de.thdeg.grademanager.gui; import de.thdeg.grademanager.JpaService; import de.thdeg.grademanager.model.CoursesOfStudy; import de.thdeg.grademanager.model.enumeration.Degree; import de.thdeg.grademanager.model.enumeration.Semester; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.scene.control.*; import java.io.IOException; import java.util.Optional; public class CoursesOfStudyModificationController { @FXML protected ComboBox<Degree> degreeComboBox; @FXML protected ComboBox<Semester> durationComboBox; ObservableList<Degree> degreeList = FXCollections.observableArrayList(Degree.values()); ObservableList<Semester> durationList = FXCollections.observableArrayList(Semester.values()); @FXML protected void initialize() { degreeComboBox.setItems(degreeList); durationComboBox.setItems(durationList); } @FXML protected TextField name; @FXML protected Degree degree; @FXML protected Semester duration; @FXML protected int fees; @FXML protected TextField fieldOfStudy; @FXML protected TextField warning; @FXML protected void onSaveButtonClick(ActionEvent event) throws IOException { if (!name.getText().isBlank() && degreeComboBox.getValue() != null && durationComboBox.getValue() != null && !fieldOfStudy.getText().isBlank()) { degree = degreeComboBox.getValue(); duration = durationComboBox.getValue(); fees = 62; CoursesOfStudy coursesOfStudy =new CoursesOfStudy( name.getText(), degree.getDegree(), durationComboBox.getValue().getSemester(), fees, fieldOfStudy.getText()); JpaService jpaService = JpaService.getInstance(); jpaService.runInTransaction(entityManager -> {entityManager.persist(coursesOfStudy); return null;}); SwitchWindowHelper.switchTo("Main", event); } else { warning.setText("Bitte alle Felder ausfüllen."); Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Fehler"); alert.setHeaderText("Bitte alle Felder ausfüllen."); Optional<ButtonType> result = alert.showAndWait(); } } @FXML protected void abortAndSwitchToMain(ActionEvent event) throws IOException { Alert alert = new Alert(Alert.AlertType.CONFIRMATION); alert.setTitle("Bestätigung erforderlich"); alert.setHeaderText("Daten wurden nicht gespeichert. Änderungen verwerfen?"); ButtonType buttonTypeOne = new ButtonType("Ja"); ButtonType buttonTypeCancel = new ButtonType("Abbrechen", ButtonBar.ButtonData.CANCEL_CLOSE); alert.getButtonTypes().setAll(buttonTypeOne, buttonTypeCancel); Optional<ButtonType> result = alert.showAndWait(); if (result.get() == buttonTypeOne) { SwitchWindowHelper.switchTo("Main", event); } } }