package de.fhswf.in.inf.se.projektthemenvergabe.model; import java.util.ArrayList; import java.util.Collections; import java.util.Date; 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; public class Projekt { private StringProperty projektthema = new SimpleStringProperty(""); private StringProperty skizze = new SimpleStringProperty(""); private StringProperty projektbeschreibung = new SimpleStringProperty(""); private StringProperty projekteinhalte = new SimpleStringProperty(""); private ObjectProperty präsentationstermin = new SimpleObjectProperty(); private ArrayList student = new ArrayList(); private Ansprechpartner ansprechpartner; private StringProperty status = new SimpleStringProperty( getStatusList().get(0)); /** * Generates an extractor that fires when a property of a list value * changes. * * @return The extractor. */ public static Callback extractor() { return projekt -> new Observable[] { projekt.statusProperty() }; } public static ObservableList getStatusList() { ObservableList status = FXCollections.observableArrayList(); status.add("In Bearbeitung"); status.add("Eingereicht"); status.add("In Überarbeitung"); status.add("Angenommen"); status.add("Abgelehnt"); return FXCollections.unmodifiableObservableList(status); } public Projekt( Student student1, Student student2, Student student3, Ansprechpartner ansprechpartner) { if (student1 == null && student2 == null && student3 == null) { throw new IllegalArgumentException( "Zumindest ein Student sollte das Projekt bearbeiten."); } if (ansprechpartner == null) { throw new IllegalArgumentException( "Das Projekt sollte irgendwo gemacht werden."); } if (student1 != null) { student.add(student1); student1.setProjekt(this); } if (student2 != null) { student.add(student2); student2.setProjekt(this); } if (student3 != null) { student.add(student3); student3.setProjekt(this); } this.ansprechpartner = ansprechpartner; this.ansprechpartner.addProjekt(this); } public final StringProperty projektthemaProperty() { return this.projektthema; } public final String getProjektthema() { return this.projektthemaProperty().get(); } public final void setProjektthema(final String projektthema) { this.projektthemaProperty().set(projektthema); } public final StringProperty skizzeProperty() { return this.skizze; } public final String getSkizze() { return this.skizzeProperty().get(); } public final void setSkizze(final String skizze) { this.skizzeProperty().set(skizze); } public final StringProperty projektbeschreibungProperty() { return this.projektbeschreibung; } public final String getProjektbeschreibung() { return this.projektbeschreibungProperty().get(); } public final void setProjektbeschreibung(final String projektbeschreibung) { this.projektbeschreibungProperty().set(projektbeschreibung); } public final StringProperty projekteinhalteProperty() { return this.projekteinhalte; } public final String getProjekteinhalte() { return this.projekteinhalteProperty().get(); } public final void setProjekteinhalte(final String projekteinhalte) { this.projekteinhalteProperty().set(projekteinhalte); } public final ObjectProperty präsentationsterminProperty() { return this.präsentationstermin; } public final java.util.Date getPräsentationstermin() { return this.präsentationsterminProperty().get(); } public final void setPräsentationstermin(final Date präsentationstermin) { this.präsentationsterminProperty().set(präsentationstermin); } public List getStudents() { return Collections.unmodifiableList(student); } public Ansprechpartner getAnsprechpartner() { return this.ansprechpartner; } public final StringProperty statusProperty() { return this.status; } public final String getStatus() { return this.statusProperty().get(); } public final void setStatus(final String status) { this.statusProperty().set(status); } /* * (non-Javadoc) * * @see java.lang.Object#toString() */ @Override public String toString() { return projektthema.get(); } }