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 --- .../inf/se/projektthemenvergabe/model/Student.java | 16 ++ .../view/AnsprechpartnerListeController.java | 191 +++++++++++++++++++-- .../view/StudentenverwaltungsController.java | 71 +++++++- 3 files changed, 256 insertions(+), 22 deletions(-) diff --git a/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Student.java b/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Student.java index 1ba6ed5..740fa00 100644 --- a/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Student.java +++ b/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Student.java @@ -164,4 +164,20 @@ public class Student { return String.valueOf(matrikelnummer.get()); } + + /* + * (non-Javadoc) + * + * @see java.lang.Object#equals(java.lang.Object) + */ + @Override + public boolean equals(Object obj) + { + if (!(obj instanceof Student)) + { + return false; + } + + return ((Student) obj).matrikelnummer.get() == matrikelnummer.get(); + } } \ No newline at end of file diff --git a/src/de/fhswf/in/inf/se/projektthemenvergabe/view/AnsprechpartnerListeController.java b/src/de/fhswf/in/inf/se/projektthemenvergabe/view/AnsprechpartnerListeController.java index f14f5a1..511cc6d 100644 --- a/src/de/fhswf/in/inf/se/projektthemenvergabe/view/AnsprechpartnerListeController.java +++ b/src/de/fhswf/in/inf/se/projektthemenvergabe/view/AnsprechpartnerListeController.java @@ -82,6 +82,33 @@ public class AnsprechpartnerListeController { data.getRowValue().setVorname(tmpAns.getVorname()); } + else + { + Alert alert = new Alert(AlertType.ERROR); + alert.setTitle("Ansprechpartner ist bereits vorhanden"); + alert.setHeaderText( + "Dieser Ansprechpartner wurde schon angelegt."); + alert.setContentText( + "Der Ansprechpartner wird jetzt für Sie ausgewählt."); + + alert.initOwner(main.getAnsprechpartnerverwaltungsStage()); + + alert.showAndWait(); + + ansprechpartnerTableView.getSelectionModel().select(tmpAns); + } + } + else + { + Alert alert = new Alert(AlertType.ERROR); + alert.setTitle("Vorname ist leer"); + alert.setHeaderText( + "Der Vorname des Ansprechpartners darf nicht leer sein."); + alert.setContentText("Wert wurde zurückgesetzt."); + + alert.initOwner(main.getAnsprechpartnerverwaltungsStage()); + + alert.showAndWait(); } // Hack, aktualisiert TableView, da Observable beim setzen nicht neu @@ -105,6 +132,33 @@ public class AnsprechpartnerListeController { data.getRowValue().setNachname(tmpAns.getNachname()); } + else + { + Alert alert = new Alert(AlertType.ERROR); + alert.setTitle("Ansprechpartner ist bereits vorhanden"); + alert.setHeaderText( + "Dieser Ansprechpartner wurde schon angelegt."); + alert.setContentText( + "Der Ansprechpartner wird jetzt für Sie ausgewählt."); + + alert.initOwner(main.getAnsprechpartnerverwaltungsStage()); + + alert.showAndWait(); + + ansprechpartnerTableView.getSelectionModel().select(tmpAns); + } + } + else + { + Alert alert = new Alert(AlertType.ERROR); + alert.setTitle("Nachname ist leer"); + alert.setHeaderText( + "Der Nachname des Ansprechpartners darf nicht leer sein."); + alert.setContentText("Wert wurde zurückgesetzt."); + + alert.initOwner(main.getAnsprechpartnerverwaltungsStage()); + + alert.showAndWait(); } // Hack, aktualisiert TableView, da Observable beim setzen nicht neu @@ -113,7 +167,9 @@ public class AnsprechpartnerListeController ansprechpartnerNachnameTableColumn.setVisible(true); }); - organisationsNameTableColumn.setCellValueFactory((data) -> { + organisationsNameTableColumn.setCellValueFactory((data) -> + + { data.getValue().organisationProperty().addListener((listener) -> { // Hack, aktualisiert TableView, da Organisation kein // Observable @@ -135,7 +191,9 @@ public class AnsprechpartnerListeController } return new SimpleObjectProperty(new Organisation("")); }); - organisationsNameTableColumn.setOnEditCommit((data) -> { + organisationsNameTableColumn.setOnEditCommit((data) -> + + { data.getRowValue().setOrganisation(data.getNewValue()); }); @@ -147,6 +205,7 @@ public class AnsprechpartnerListeController .bind(organisationComboBox.valueProperty().isNull()); deleteAnsprechpartner.disableProperty().bind(ansprechpartnerTableView .getSelectionModel().selectedItemProperty().isNull()); + } /** @@ -180,13 +239,45 @@ public class AnsprechpartnerListeController dialog.initOwner(main.getAnsprechpartnerverwaltungsStage()); Optional result = dialog.showAndWait(); - if (result.isPresent() && !result.get().trim().isEmpty()) + if (result.isPresent()) { - Organisation organisation = new Organisation(result.get().trim()); + if (!result.get().trim().isEmpty()) + { + Organisation organisation = new Organisation(result.get().trim()); + + if (!main.getOrganisation().contains(organisation)) + { + main.getOrganisation().add(organisation); + } + else + { + Alert alert = new Alert(AlertType.ERROR); + alert.setTitle("Organisation ist bereits vorhanden"); + alert.setHeaderText( + "Diese Organisation wurde schon angelegt."); + alert.setContentText( + "Die Organisation wird jetzt für Sie ausgewählt."); + + alert.initOwner(main.getAnsprechpartnerverwaltungsStage()); - if (!main.getOrganisation().contains(organisation)) + alert.showAndWait(); + + organisationComboBox.setValue(organisation); + } + } + else { - main.getOrganisation().add(organisation); + Alert alert = new Alert(AlertType.ERROR); + alert.setTitle("Name ist leer"); + alert.setHeaderText( + "Der Name der Organisation darf nicht leer sein."); + alert.setContentText("Versuchen Sie es bitte erneut."); + + alert.initOwner(main.getAnsprechpartnerverwaltungsStage()); + + alert.showAndWait(); + + handleAddOrganisation(); } } } @@ -208,13 +299,45 @@ public class AnsprechpartnerListeController dialog.initOwner(main.getAnsprechpartnerverwaltungsStage()); Optional result = dialog.showAndWait(); - if (result.isPresent() && !result.get().trim().isEmpty()) + if (result.isPresent()) { - Organisation tmpOrg = new Organisation(result.get().trim()); + if (!result.get().trim().isEmpty()) + { + Organisation tmpOrg = new Organisation(result.get().trim()); + + if (!main.getOrganisation().contains(tmpOrg)) + { + organisation.setName(tmpOrg.getName()); + } + else + { + Alert alert = new Alert(AlertType.ERROR); + alert.setTitle("Organisation ist bereits vorhanden"); + alert.setHeaderText( + "Diese Organisation wurde schon angelegt."); + alert.setContentText( + "Die Organisation wird jetzt für Sie ausgewählt."); + + alert.initOwner(main.getAnsprechpartnerverwaltungsStage()); - if (!main.getOrganisation().contains(tmpOrg)) + alert.showAndWait(); + + organisationComboBox.setValue(tmpOrg); + } + } + else { - organisation.setName(tmpOrg.getName()); + Alert alert = new Alert(AlertType.ERROR); + alert.setTitle("Name ist leer"); + alert.setHeaderText( + "Der Name der Organisation darf nicht leer sein."); + alert.setContentText("Versuchen Sie es bitte erneut."); + + alert.initOwner(main.getAnsprechpartnerverwaltungsStage()); + + alert.showAndWait(); + + handleAddOrganisation(); } } } @@ -295,16 +418,48 @@ public class AnsprechpartnerListeController Optional> result = dialog.showAndWait(); - if (result.isPresent() && !result.get().getKey().trim().isEmpty() - && !result.get().getValue().trim().isEmpty()) + if (result.isPresent()) { - Ansprechpartner ansprechpartner = new Ansprechpartner( - organisation, result.get().getKey().trim(), - result.get().getValue().trim()); - - if (!main.getAnsprechpartner().contains(ansprechpartner)) + if (!result.get().getKey().trim().isEmpty() + && !result.get().getValue().trim().isEmpty()) + { + Ansprechpartner ansprechpartner = new Ansprechpartner( + organisation, result.get().getKey().trim(), + result.get().getValue().trim()); + + if (!main.getAnsprechpartner().contains(ansprechpartner)) + { + main.getAnsprechpartner().add(ansprechpartner); + } + else + { + Alert alert = new Alert(AlertType.ERROR); + alert.setTitle("Ansprechpartner ist bereits vorhanden"); + alert.setHeaderText( + "Dieser Ansprechpartner wurde schon angelegt."); + alert.setContentText("Es gibt nichts mehr zu tun."); + + alert.initOwner(main.getAnsprechpartnerverwaltungsStage()); + + alert.showAndWait(); + + organisationComboBox.setValue(organisation); + } + } + else { - main.getAnsprechpartner().add(ansprechpartner); + + Alert alert = new Alert(AlertType.ERROR); + alert.setTitle("Name des Ansprechpartner ist leer"); + alert.setHeaderText( + "Der Name des Ansprechpartners darf nicht leer sein."); + alert.setContentText("Versuchen Sie es bitte erneut."); + + alert.initOwner(main.getAnsprechpartnerverwaltungsStage()); + + alert.showAndWait(); + + handleAdd(); } } } 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