From 186634af654b63206c842dcc4915a260e2c82471 Mon Sep 17 00:00:00 2001 From: Stefan Suhren Date: Mon, 11 Jan 2016 19:17:16 +0100 Subject: Show more errors to the user --- .../view/StudentenverwaltungsController.java | 71 ++++++++++++++++++++-- 1 file changed, 67 insertions(+), 4 deletions(-) (limited to 'src/de/fhswf/in/inf/se/projektthemenvergabe/view/StudentenverwaltungsController.java') diff --git a/src/de/fhswf/in/inf/se/projektthemenvergabe/view/StudentenverwaltungsController.java b/src/de/fhswf/in/inf/se/projektthemenvergabe/view/StudentenverwaltungsController.java index a86bbe9..3000a8d 100644 --- a/src/de/fhswf/in/inf/se/projektthemenvergabe/view/StudentenverwaltungsController.java +++ b/src/de/fhswf/in/inf/se/projektthemenvergabe/view/StudentenverwaltungsController.java @@ -50,6 +50,33 @@ public class StudentenverwaltungsController (data) -> data.getValue().matrikelnummerProperty().asObject()); matrikelnummerTableColumn.setCellFactory( TextFieldTableCell.forTableColumn(new IntegerStringConverter())); + matrikelnummerTableColumn.setOnEditCommit((data) -> { + Student tmpStud = new Student(data.getNewValue()); + + if (!main.getStudenten().contains(tmpStud)) + { + data.getRowValue().setMatrikelnummer(tmpStud.getMatrikelnummer()); + } + else + { + Alert alert = new Alert(AlertType.ERROR); + alert.setTitle("Student ist bereits vorhanden"); + alert.setHeaderText("Dieser Student wurde schon angelegt."); + alert.setContentText( + "Der Student wird jetzt für Sie ausgewählt."); + + alert.initOwner(main.getStudentenverwaltungsStage()); + + alert.showAndWait(); + + studentTableView.getSelectionModel().select(tmpStud); + } + + // Hack, aktualisiert TableView, da Observable beim setzen nicht neu + // abgefragt wird + matrikelnummerTableColumn.setVisible(false); + matrikelnummerTableColumn.setVisible(true); + }); vornameTableColumn .setCellValueFactory((data) -> data.getValue().vornameProperty()); @@ -110,11 +137,45 @@ public class StudentenverwaltungsController dialog.initOwner(main.getStudentenverwaltungsStage()); Optional result = dialog.showAndWait(); - if (result.isPresent() && !result.get().trim().isEmpty()) + if (result.isPresent()) { - Student student = new Student( - Integer.parseInt(result.get().trim(), 10)); - main.getStudenten().add(student); + if (!result.get().trim().isEmpty()) + { + Student student = new Student( + Integer.parseInt(result.get().trim(), 10)); + if (!main.getStudenten().contains(student)) + { + main.getStudenten().add(student); + } + else + { + Alert alert = new Alert(AlertType.ERROR); + alert.setTitle("Student ist bereits vorhanden"); + alert.setHeaderText("Dieser Student wurde schon angelegt."); + alert.setContentText( + "Der Student wird jetzt für Sie ausgewählt."); + + alert.initOwner(main.getStudentenverwaltungsStage()); + + alert.showAndWait(); + + studentTableView.getSelectionModel().select(student); + } + } + else + { + Alert alert = new Alert(AlertType.ERROR); + alert.setTitle("Matrikelnummer ist leer"); + alert.setHeaderText( + "Die von Ihnen eingegebene Matrikelnummer ist leer."); + alert.setContentText("Versuchen Sie es bitte erneut."); + + alert.initOwner(main.getStudentenverwaltungsStage()); + + alert.showAndWait(); + + handleAddStudent(); + } } } catch (NumberFormatException e) @@ -128,6 +189,8 @@ public class StudentenverwaltungsController alert.initOwner(main.getStudentenverwaltungsStage()); alert.showAndWait(); + + handleAddStudent(); } } -- cgit v1.2.3-70-g09d2