From 73a8dd6ebd286ea9de3af32d9b5e7751cbc7ab72 Mon Sep 17 00:00:00 2001 From: Stefan Suhren Date: Tue, 12 Jan 2016 13:16:15 +0100 Subject: Update extractors for the model --- .../fhswf/in/inf/se/projektthemenvergabe/Main.java | 2 +- .../inf/se/projektthemenvergabe/model/Projekt.java | 20 +++++++++++--------- .../inf/se/projektthemenvergabe/model/Student.java | 15 +++++++++++++++ 3 files changed, 27 insertions(+), 10 deletions(-) (limited to 'src/de') 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 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 = new ArrayList(); + private ObservableList student = FXCollections + .observableArrayList(Student.extractor()); private ObjectProperty ansprechpartner = new SimpleObjectProperty<>(); @@ -45,7 +44,10 @@ public class Projekt */ public static Callback 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 getStudents() + public ObservableList 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; /** * @@ -24,6 +26,19 @@ public class Student private ObjectProperty projekt = new SimpleObjectProperty<>(); + /** + * Generates an extractor that fires when a property of a list value + * changes. + * + * @return The extractor. + */ + public static Callback extractor() + { + return student -> new Observable[] { student.matrikelnummerProperty(), + student.vornameProperty(), student.nachnameProperty(), + student.projektProperty() }; + } + /** * Constructor of {@link Student}. * -- cgit v1.2.3-70-g09d2