diff options
Diffstat (limited to 'src/de')
3 files changed, 27 insertions, 10 deletions
diff --git a/src/de/fhswf/in/inf/se/projektthemenvergabe/Main.java b/src/de/fhswf/in/inf/se/projektthemenvergabe/Main.java index 9c93b5a..53bcd7f 100644 --- a/src/de/fhswf/in/inf/se/projektthemenvergabe/Main.java +++ b/src/de/fhswf/in/inf/se/projektthemenvergabe/Main.java @@ -38,7 +38,7 @@ public class Main extends Application .observableArrayList(Projekt.extractor()); private ObservableList<Student> studenten = FXCollections - .observableArrayList(); + .observableArrayList(Student.extractor()); private Stage primaryStage; 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 bcaba6f..ca017cd 100644 --- a/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Projekt.java +++ b/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Projekt.java @@ -1,14 +1,12 @@ package de.fhswf.in.inf.se.projektthemenvergabe.model; -import java.util.ArrayList; -import java.util.Collections; -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.collections.FXCollections; +import javafx.collections.ObservableList; import javafx.util.Callback; /** @@ -28,7 +26,8 @@ public class Projekt private StringProperty projekteinhalte = new SimpleStringProperty(""); - private ArrayList<Student> student = new ArrayList<Student>(); + private ObservableList<Student> student = FXCollections + .observableArrayList(Student.extractor()); private ObjectProperty<Ansprechpartner> ansprechpartner = new SimpleObjectProperty<>(); @@ -45,7 +44,10 @@ public class Projekt */ public static Callback<Projekt, Observable[]> extractor() { - return projekt -> new Observable[] { projekt.statusProperty() }; + return projekt -> new Observable[] { projekt.projektthemaProperty(), + projekt.skizzeProperty(), projekt.projektbeschreibungProperty(), + projekt.projekteinhalteProperty(), projekt.getStudents(), + projekt.ansprechpartnerProperty(), projekt.statusProperty() }; } /** @@ -276,11 +278,11 @@ public class Projekt /** * Getter for an unmodifiable list of students. * - * @return Collection.unmodifiableList(student) + * @return FXCollections.unmodifiableObservableList(student) */ - public List<Student> getStudents() + public ObservableList<Student> getStudents() { - return Collections.unmodifiableList(student); + return FXCollections.unmodifiableObservableList(student); } /** diff --git a/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Student.java b/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Student.java index 7265b94..89c80bb 100644 --- a/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Student.java +++ b/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Student.java @@ -1,11 +1,13 @@ package de.fhswf.in.inf.se.projektthemenvergabe.model; +import javafx.beans.Observable; import javafx.beans.property.IntegerProperty; import javafx.beans.property.ObjectProperty; import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleStringProperty; import javafx.beans.property.StringProperty; +import javafx.util.Callback; /** * @@ -25,6 +27,19 @@ public class Student private ObjectProperty<Projekt> projekt = new SimpleObjectProperty<>(); /** + * Generates an extractor that fires when a property of a list value + * changes. + * + * @return The extractor. + */ + public static Callback<Student, Observable[]> extractor() + { + return student -> new Observable[] { student.matrikelnummerProperty(), + student.vornameProperty(), student.nachnameProperty(), + student.projektProperty() }; + } + + /** * Constructor of {@link Student}. * * @param matrikelnummer |
