From db9dbb0dd840a1f2c7500b65e71ee3942265670f Mon Sep 17 00:00:00 2001 From: Stefan Suhren Date: Tue, 15 Dec 2015 20:05:13 +0100 Subject: Don't remove all Ansprechpartner on Organisation delete --- .../view/AnsprechpartnerListeController.java | 32 +++++++++++++++++----- 1 file changed, 25 insertions(+), 7 deletions(-) (limited to 'src/de/fhswf/in/inf/se/projektthemenvergabe/view') 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 2ae8405..27f85c9 100644 --- a/src/de/fhswf/in/inf/se/projektthemenvergabe/view/AnsprechpartnerListeController.java +++ b/src/de/fhswf/in/inf/se/projektthemenvergabe/view/AnsprechpartnerListeController.java @@ -92,14 +92,26 @@ public class AnsprechpartnerListeController }); organisationsNameTableColumn.setCellValueFactory((data) -> { - data.getValue().getOrganisation().nameProperty() - .addListener((listener) -> { - // Hack, aktualisiert TableView, da Organisation kein Observable + data.getValue().organisationProperty().addListener((listener) -> { + // Hack, aktualisiert TableView, da Organisation kein + // Observable // ist organisationsNameTableColumn.setVisible(false); organisationsNameTableColumn.setVisible(true); }); - return new SimpleObjectProperty<>(data.getValue().getOrganisation()); + if (data.getValue().getOrganisation() != null) + { + data.getValue().getOrganisation().nameProperty() + .addListener((listener) -> { + // Hack, aktualisiert TableView, da Organisation kein + // Observable + // ist + organisationsNameTableColumn.setVisible(false); + organisationsNameTableColumn.setVisible(true); + }); + return data.getValue().organisationProperty(); + } + return new SimpleObjectProperty(new Organisation()); }); organisationsNameTableColumn.setOnEditCommit((data) -> { data.getRowValue().setOrganisation(data.getNewValue()); @@ -203,8 +215,14 @@ public class AnsprechpartnerListeController if (result == null || result.get() == ButtonType.OK) { - main.getAnsprechpartner() - .removeAll(selectedItem.getAnsprechpartner()); + Ansprechpartner[] ansArray = selectedItem.getAnsprechpartner() + .toArray(new Ansprechpartner[selectedItem + .getAnsprechpartner().size()]); + for (Ansprechpartner ans : ansArray) + { + ans.setOrganisation(null); + } + main.getOrganisation().remove(organisationComboBox.getValue()); } } @@ -222,7 +240,7 @@ public class AnsprechpartnerListeController if (selectedItem != null) { - selectedItem.getOrganisation().removeAnsprechpartner(selectedItem); + selectedItem.setOrganisation(null); main.getAnsprechpartner().remove(selectedItem); } } -- cgit v1.2.3-70-g09d2