summaryrefslogtreecommitdiffstats
path: root/src/de/fhswf/in/inf/se/projektthemenvergabe/model
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/fhswf/in/inf/se/projektthemenvergabe/model')
-rw-r--r--src/de/fhswf/in/inf/se/projektthemenvergabe/model/Ansprechpartner.java79
-rw-r--r--src/de/fhswf/in/inf/se/projektthemenvergabe/model/Organisation.java18
2 files changed, 79 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..72bf249 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)
{
- throw new IllegalArgumentException(
- "Ansprechpartner sollten nicht arbeitslos sein.");
+ this.organisation.get().removeAnsprechpartner(this);
+ }
+
+ this.organisation.set(organisation);
+
+ if (organisation != null)
+ {
+ organisation.addAnsprechpartner(this);
}
- this.organisation.removeAnsprechpartner(this);
- this.organisation = organisation;
- this.organisation.addAnsprechpartner(this);
}
/**
@@ -133,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 8f04979..4525045 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<>();
@@ -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