package de.thdeg.grademanager.gui; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.scene.Node; import javafx.scene.Scene; import javafx.scene.control.*; import javafx.stage.Stage; import java.io.IOException; import java.util.Optional; public class CoursesOfStudyModificationController { @FXML protected ComboBox<String> bachelorDegreeComboBox; @FXML protected ComboBox<String> durationComboBox; ObservableList<String> bachelorDegreeList = FXCollections.observableArrayList("B. A.", "B. Eng.", "B. Sc."); ObservableList<String> durationList = FXCollections.observableArrayList("7 Semester", "8 Semester", "9 Semester"); @FXML protected void initialize() { MainController.setComboBox(bachelorDegreeComboBox, bachelorDegreeList); MainController.setComboBox(durationComboBox, durationList); } @FXML protected TextField name; @FXML protected String bachelorDegree; @FXML protected String duration; @FXML protected int fees; @FXML protected TextField courses; @FXML protected TextField fieldOfStudy; @FXML protected TextField warning; @FXML protected void onSaveButtonClick(ActionEvent event) throws IOException { if(!name.getText().isBlank() && bachelorDegreeComboBox.getValue() != null && durationComboBox.getValue() != null && !fieldOfStudy.getText().isBlank()) { bachelorDegree = bachelorDegreeComboBox.getValue(); duration = durationComboBox.getValue(); fees = 62; MainController.degreeList.add(name.getText()); switchToMain(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(); } } private Stage stage; private Scene scene; private FXMLLoader root; @FXML protected void switchToMain(ActionEvent event) throws IOException { root = new FXMLLoader(Main.class.getResource("main.fxml")); stage = (Stage) ((Node) event.getSource()).getScene().getWindow(); scene = new Scene(root.load(), 960, 540); stage.setTitle("Main"); stage.setScene(scene); stage.show(); } @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){ switchToMain(event); } } @FXML protected void switchToCourseModification(ActionEvent event) throws IOException { root = new FXMLLoader(Main.class.getResource("course-modification.fxml")); stage = (Stage) ((Node) event.getSource()).getScene().getWindow(); scene = new Scene(root.load(), 960, 540); stage.setTitle("Course Modification"); stage.setScene(scene); stage.show(); } }