From 953b348b7011b5aabe0f896ad0472cbf8455312d Mon Sep 17 00:00:00 2001 From: Stefan Suhren Date: Tue, 15 Dec 2015 22:25:23 +0100 Subject: Only allow singular PKs --- .../model/Ansprechpartner.java | 17 +++++++++ .../projektthemenvergabe/model/Organisation.java | 16 ++++++++ .../view/AnsprechpartnerListeController.java | 43 +++++++++++++++++++--- 3 files changed, 71 insertions(+), 5 deletions(-) (limited to 'src/de/fhswf/in/inf') diff --git a/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Ansprechpartner.java b/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Ansprechpartner.java index 66b6ab5..72bf249 100644 --- a/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Ansprechpartner.java +++ b/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Ansprechpartner.java @@ -161,4 +161,21 @@ public class Ansprechpartner this.vorname.set(vorname); } + /* + * (non-Javadoc) + * + * @see java.lang.Object#equals(java.lang.Object) + */ + @Override + public boolean equals(Object obj) + { + if (!(obj instanceof Ansprechpartner)) + { + return false; + } + + return ((Ansprechpartner) obj).vorname.get().equals(vorname.get()) + && ((Ansprechpartner) obj).nachname.get().equals(nachname.get()); + } + } \ No newline at end of file diff --git a/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Organisation.java b/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Organisation.java index dca4511..4525045 100644 --- a/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Organisation.java +++ b/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Organisation.java @@ -107,4 +107,20 @@ public class Organisation { return name.get(); } + + /* + * (non-Javadoc) + * + * @see java.lang.Object#equals(java.lang.Object) + */ + @Override + public boolean equals(Object obj) + { + if (!(obj instanceof Organisation)) + { + return false; + } + + return ((Organisation) obj).name.get().equals(name.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 ac6bb34..ee036e2 100644 --- a/src/de/fhswf/in/inf/se/projektthemenvergabe/view/AnsprechpartnerListeController.java +++ b/src/de/fhswf/in/inf/se/projektthemenvergabe/view/AnsprechpartnerListeController.java @@ -71,7 +71,18 @@ public class AnsprechpartnerListeController ansprechpartnerVornameTableColumn .setCellFactory(TextFieldTableCell.forTableColumn()); ansprechpartnerVornameTableColumn.setOnEditCommit((data) -> { - data.getRowValue().setVorname(data.getNewValue().trim()); + if (!data.getNewValue().isEmpty()) + { + Ansprechpartner tmpAns = new Ansprechpartner( + data.getRowValue().getOrganisation()); + tmpAns.setNachname(data.getRowValue().getNachname()); + tmpAns.setVorname(data.getNewValue().trim()); + + if (!main.getAnsprechpartner().contains(tmpAns)) + { + data.getRowValue().setVorname(tmpAns.getVorname()); + } + } // Hack, aktualisiert TableView, da Observable beim setzen nicht neu // abgefragt wird @@ -84,7 +95,18 @@ public class AnsprechpartnerListeController ansprechpartnerNachnameTableColumn .setCellFactory(TextFieldTableCell.forTableColumn()); ansprechpartnerNachnameTableColumn.setOnEditCommit((data) -> { - data.getRowValue().setNachname(data.getNewValue().trim()); + if (!data.getNewValue().isEmpty()) + { + Ansprechpartner tmpAns = new Ansprechpartner( + data.getRowValue().getOrganisation()); + tmpAns.setVorname(data.getRowValue().getVorname()); + tmpAns.setNachname(data.getNewValue().trim()); + + if (!main.getAnsprechpartner().contains(tmpAns)) + { + data.getRowValue().setNachname(tmpAns.getNachname()); + } + } // Hack, aktualisiert TableView, da Observable beim setzen nicht neu // abgefragt wird @@ -163,7 +185,10 @@ public class AnsprechpartnerListeController { Organisation organisation = new Organisation(); organisation.setName(result.get().trim()); - main.getOrganisation().add(organisation); + if (!main.getOrganisation().contains(organisation)) + { + main.getOrganisation().add(organisation); + } } } @@ -186,7 +211,12 @@ public class AnsprechpartnerListeController Optional result = dialog.showAndWait(); if (result.isPresent() && !result.get().trim().isEmpty()) { - organisation.setName(result.get().trim()); + Organisation tmpOrg = new Organisation(); + tmpOrg.setName(result.get().trim()); + if (!main.getOrganisation().contains(tmpOrg)) + { + organisation.setName(tmpOrg.getName()); + } } } @@ -272,7 +302,10 @@ public class AnsprechpartnerListeController ansprechpartner.setVorname(result.get().getKey().trim()); ansprechpartner.setNachname(result.get().getValue().trim()); - main.getAnsprechpartner().add(ansprechpartner); + if (!main.getAnsprechpartner().contains(ansprechpartner)) + { + main.getAnsprechpartner().add(ansprechpartner); + } } } } -- cgit v1.2.3-70-g09d2