diff options
| author | Stefan Suhren <suhren.stefan@fh-swf.de> | 2015-12-15 20:05:13 +0100 |
|---|---|---|
| committer | Stefan Suhren <suhren.stefan@fh-swf.de> | 2015-12-15 20:05:13 +0100 |
| commit | db9dbb0dd840a1f2c7500b65e71ee3942265670f (patch) | |
| tree | d419bc06edb43aa0a6b6ee24b01ebfa10f657720 /src/de/fhswf/in/inf/se/projektthemenvergabe/model | |
| parent | aeb4e8a6f70fbf6261e9c464ac8f156bf1dafa78 (diff) | |
| download | Projektthemenvergabe-db9dbb0dd840a1f2c7500b65e71ee3942265670f.tar.gz Projektthemenvergabe-db9dbb0dd840a1f2c7500b65e71ee3942265670f.zip | |
Don't remove all Ansprechpartner on Organisation delete
Diffstat (limited to 'src/de/fhswf/in/inf/se/projektthemenvergabe/model')
| -rw-r--r-- | src/de/fhswf/in/inf/se/projektthemenvergabe/model/Ansprechpartner.java | 62 | ||||
| -rw-r--r-- | src/de/fhswf/in/inf/se/projektthemenvergabe/model/Organisation.java | 2 |
2 files changed, 46 insertions, 18 deletions
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 11873e0..66b6ab5 100644 --- a/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Ansprechpartner.java +++ b/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Ansprechpartner.java @@ -1,6 +1,11 @@ package de.fhswf.in.inf.se.projektthemenvergabe.model; +import java.util.ArrayList; +import java.util.List; + import javafx.beans.Observable; +import javafx.beans.property.ObjectProperty; +import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleStringProperty; import javafx.beans.property.StringProperty; import javafx.util.Callback; @@ -11,7 +16,7 @@ public class Ansprechpartner private StringProperty nachname = new SimpleStringProperty(); - private Organisation organisation; + private ObjectProperty<Organisation> organisation = new SimpleObjectProperty<>(); /** * Generates an extractor that fires when a property of a list value @@ -21,10 +26,21 @@ public class Ansprechpartner */ public static Callback<Ansprechpartner, Observable[]> extractor() { - return ansprechpartner -> new Observable[] { - ansprechpartner.vornameProperty(), - ansprechpartner.nachnameProperty(), - ansprechpartner.getOrganisation().nameProperty() }; + return ansprechpartner -> { + List<Observable> extractorList = new ArrayList<>(); + + extractorList.add(ansprechpartner.vornameProperty()); + extractorList.add(ansprechpartner.nachnameProperty()); + extractorList.add(ansprechpartner.organisationProperty()); + + if (ansprechpartner.getOrganisation() != null) + { + extractorList + .add(ansprechpartner.getOrganisation().nameProperty()); + } + + return extractorList.toArray(new Observable[extractorList.size()]); + }; } /** @@ -34,23 +50,32 @@ public class Ansprechpartner */ public Ansprechpartner(Organisation organisation) { - if (organisation == null) + this.organisation.set(organisation); + + if (organisation != null) { - throw new IllegalArgumentException( - "Ansprechpartner sollten nicht arbeitslos sein."); + this.organisation.get().addAnsprechpartner(this); } - this.organisation = organisation; - this.organisation.addAnsprechpartner(this); } /** * Getter for property organisation. + * + * @return Returns the organisation. + */ + public ObjectProperty<Organisation> organisationProperty() + { + return organisation; + } + + /** + * Getter for organisation. * * @return Returns the organisation. */ public Organisation getOrganisation() { - return organisation; + return organisation.get(); } /** @@ -61,14 +86,17 @@ public class Ansprechpartner */ public void setOrganisation(Organisation organisation) { - if (organisation == null) + if (this.organisation.get() != null) + { + this.organisation.get().removeAnsprechpartner(this); + } + + this.organisation.set(organisation); + + if (organisation != null) { - throw new IllegalArgumentException( - "Ansprechpartner sollten nicht arbeitslos sein."); + organisation.addAnsprechpartner(this); } - this.organisation.removeAnsprechpartner(this); - this.organisation = organisation; - this.organisation.addAnsprechpartner(this); } /** 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 8f04979..dca4511 100644 --- a/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Organisation.java +++ b/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Organisation.java @@ -11,7 +11,7 @@ import javafx.util.Callback; public class Organisation { - private StringProperty name = new SimpleStringProperty(); + private StringProperty name = new SimpleStringProperty(""); private List<Ansprechpartner> ansprechpartner = new ArrayList<>(); |
