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/Projekt.java83
1 files changed, 65 insertions, 18 deletions
diff --git a/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Projekt.java b/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Projekt.java
index ca017cd..53972f5 100644
--- a/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Projekt.java
+++ b/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Projekt.java
@@ -5,8 +5,6 @@ import javafx.beans.property.ObjectProperty;
import javafx.beans.property.SimpleObjectProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;
-import javafx.collections.FXCollections;
-import javafx.collections.ObservableList;
import javafx.util.Callback;
/**
@@ -26,8 +24,11 @@ public class Projekt
private StringProperty projekteinhalte = new SimpleStringProperty("");
- private ObservableList<Student> student = FXCollections
- .observableArrayList(Student.extractor());
+ private ObjectProperty<Student> student1 = new SimpleObjectProperty<>();
+
+ private ObjectProperty<Student> student2 = new SimpleObjectProperty<>();
+
+ private ObjectProperty<Student> student3 = new SimpleObjectProperty<>();
private ObjectProperty<Ansprechpartner> ansprechpartner = new SimpleObjectProperty<>();
@@ -46,7 +47,8 @@ public class Projekt
{
return projekt -> new Observable[] { projekt.projektthemaProperty(),
projekt.skizzeProperty(), projekt.projektbeschreibungProperty(),
- projekt.projekteinhalteProperty(), projekt.getStudents(),
+ projekt.projekteinhalteProperty(), projekt.student1Property(),
+ projekt.student2Property(), projekt.student3Property(),
projekt.ansprechpartnerProperty(), projekt.statusProperty() };
}
@@ -132,7 +134,9 @@ public class Projekt
student3.setProjekt(this);
}
- if (student.size() < 1)
+ // Because insertions always happen at first free index, here we can
+ // cheat a bit
+ if (this.student1.get() == null)
{
throw new IllegalArgumentException(
"Alle Studenten haben bereits Projekte.");
@@ -275,14 +279,34 @@ public class Projekt
this.projekteinhalteProperty().set(projekteinhalte);
}
- /**
- * Getter for an unmodifiable list of students.
- *
- * @return FXCollections.unmodifiableObservableList(student)
- */
- public ObservableList<Student> getStudents()
+ public final ObjectProperty<Student> student1Property()
+ {
+ return this.student1;
+ }
+
+ public final Student getStudent1()
+ {
+ return this.student1Property().get();
+ }
+
+ public final ObjectProperty<Student> student2Property()
+ {
+ return this.student2;
+ }
+
+ public final Student getStudent2()
+ {
+ return this.student2Property().get();
+ }
+
+ public final ObjectProperty<Student> student3Property()
{
- return FXCollections.unmodifiableObservableList(student);
+ return this.student3;
+ }
+
+ public final Student getStudent3()
+ {
+ return this.student3Property().get();
}
/**
@@ -298,15 +322,26 @@ public class Projekt
"Es muss ein Student zum Hinzufügen gegeben sein.");
}
- if (!this.student.contains(student))
+ if (!student.equals(student1.get()) && !student.equals(student2.get())
+ && !student.equals(student3.get()))
{
- if (this.student.size() >= 3)
+ if (student1.get() == null)
+ {
+ student1.set(student);
+ }
+ else if (student2.get() == null)
+ {
+ student2.set(student);
+ }
+ else if (student3.get() == null)
+ {
+ student3.set(student);
+ }
+ else
{
throw new IllegalArgumentException(
"3 Studenten arbeiten bereits an dem Projekt.");
}
-
- this.student.add(student);
student.setProjekt(this);
}
}
@@ -324,7 +359,18 @@ public class Projekt
"Es muss ein Student zum Entfernen gegeben sein.");
}
- this.student.remove(student);
+ if (student.equals(student1.get()))
+ {
+ student1.set(null);
+ }
+ else if (student.equals(student2.get()))
+ {
+ student2.set(null);
+ }
+ else if (student.equals(student3.get()))
+ {
+ student3.set(null);
+ }
}
/**
@@ -461,4 +507,5 @@ public class Projekt
return ((Projekt) obj).projektthema.get().equals(projektthema.get());
}
+
} \ No newline at end of file