summaryrefslogtreecommitdiffstats
path: root/src/de/fhswf
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/fhswf')
-rw-r--r--src/de/fhswf/in/inf/se/projektthemenvergabe/model/Projekt.java83
-rw-r--r--src/de/fhswf/in/inf/se/projektthemenvergabe/view/ProjektHinzufuegenController.java26
-rw-r--r--src/de/fhswf/in/inf/se/projektthemenvergabe/view/ProjektthemenverwaltungsController.java47
3 files changed, 99 insertions, 57 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
diff --git a/src/de/fhswf/in/inf/se/projektthemenvergabe/view/ProjektHinzufuegenController.java b/src/de/fhswf/in/inf/se/projektthemenvergabe/view/ProjektHinzufuegenController.java
index deb2293..65fa98c 100644
--- a/src/de/fhswf/in/inf/se/projektthemenvergabe/view/ProjektHinzufuegenController.java
+++ b/src/de/fhswf/in/inf/se/projektthemenvergabe/view/ProjektHinzufuegenController.java
@@ -130,17 +130,17 @@ public class ProjektHinzufuegenController
ansprechpartnerComboBox.setValue(projekt.getAnsprechpartner());
- if (projekt.getStudents().size() > 0)
+ if (projekt.getStudent1() != null)
{
- student1ComboBox.setValue(projekt.getStudents().get(0));
+ student1ComboBox.setValue(projekt.getStudent1());
}
- if (projekt.getStudents().size() > 1)
+ if (projekt.getStudent2() != null)
{
- student2ComboBox.setValue(projekt.getStudents().get(1));
+ student2ComboBox.setValue(projekt.getStudent2());
}
- if (projekt.getStudents().size() > 2)
+ if (projekt.getStudent3() != null)
{
- student3ComboBox.setValue(projekt.getStudents().get(2));
+ student3ComboBox.setValue(projekt.getStudent3());
}
dozentenkommentar.setText(projekt.getDozentenkommentar());
@@ -224,10 +224,18 @@ public class ProjektHinzufuegenController
{
projekt.setProjektthema(projektthemaTextField.getText().trim());
projekt.setAnsprechpartner(ansprechpartnerComboBox.getValue());
- for (Student student : projekt.getStudents()
- .toArray(new Student[projekt.getStudents().size()]))
+
+ if (projekt.getStudent1() != null)
+ {
+ projekt.removeStudent(projekt.getStudent1());
+ }
+ if (projekt.getStudent2() != null)
+ {
+ projekt.removeStudent(projekt.getStudent2());
+ }
+ if (projekt.getStudent3() != null)
{
- projekt.removeStudent(student);
+ projekt.removeStudent(projekt.getStudent3());
}
if (student1ComboBox.getValue() != null)
diff --git a/src/de/fhswf/in/inf/se/projektthemenvergabe/view/ProjektthemenverwaltungsController.java b/src/de/fhswf/in/inf/se/projektthemenvergabe/view/ProjektthemenverwaltungsController.java
index ffea351..2cd1c14 100644
--- a/src/de/fhswf/in/inf/se/projektthemenvergabe/view/ProjektthemenverwaltungsController.java
+++ b/src/de/fhswf/in/inf/se/projektthemenvergabe/view/ProjektthemenverwaltungsController.java
@@ -7,6 +7,7 @@ import de.fhswf.in.inf.se.projektthemenvergabe.model.Projekt;
import de.fhswf.in.inf.se.projektthemenvergabe.model.Student;
import javafx.application.Platform;
import javafx.beans.property.SimpleIntegerProperty;
+import javafx.beans.property.SimpleObjectProperty;
import javafx.collections.FXCollections;
import javafx.collections.transformation.FilteredList;
import javafx.collections.transformation.SortedList;
@@ -35,13 +36,13 @@ public class ProjektthemenverwaltungsController
private TableColumn<Projekt, String> ansprechpatnerTableColumn;
@FXML
- private TableColumn<Projekt, Integer> student1TableColumn;
+ private TableColumn<Projekt, Student> student1TableColumn;
@FXML
- private TableColumn<Projekt, Integer> student2TableColumn;
+ private TableColumn<Projekt, Student> student2TableColumn;
@FXML
- private TableColumn<Projekt, Integer> student3TableColumn;
+ private TableColumn<Projekt, Student> student3TableColumn;
@FXML
private TableColumn<Projekt, Projekt.StatusTypes> statusTableColumn;
@@ -73,30 +74,9 @@ public class ProjektthemenverwaltungsController
(data) -> data.getValue().projektthemaProperty());
ansprechpatnerTableColumn.setCellValueFactory(
(data) -> data.getValue().getAnsprechpartner().nameProperty());
- student1TableColumn.setCellValueFactory((data) -> {
- if (data.getValue().getStudents().size() > 0)
- {
- return data.getValue().getStudents().get(0)
- .matrikelnummerProperty().asObject();
- }
- return new SimpleIntegerProperty(0).asObject();
- });
- student2TableColumn.setCellValueFactory((data) -> {
- if (data.getValue().getStudents().size() > 1)
- {
- return data.getValue().getStudents().get(1)
- .matrikelnummerProperty().asObject();
- }
- return new SimpleIntegerProperty(0).asObject();
- });
- student3TableColumn.setCellValueFactory((data) -> {
- if (data.getValue().getStudents().size() > 2)
- {
- return data.getValue().getStudents().get(2)
- .matrikelnummerProperty().asObject();
- }
- return new SimpleIntegerProperty(0).asObject();
- });
+ student1TableColumn.setCellValueFactory((data) -> data.getValue().student1Property());
+ student2TableColumn.setCellValueFactory((data) -> data.getValue().student2Property());
+ student3TableColumn.setCellValueFactory((data) -> data.getValue().student3Property());
statusTableColumn
.setCellValueFactory((data) -> data.getValue().statusProperty());
statusTableColumn.setCellFactory(ComboBoxTableCell.forTableColumn(
@@ -309,10 +289,17 @@ public class ProjektthemenverwaltungsController
if (selectedItem != null)
{
- for (Student student : selectedItem.getStudents()
- .toArray(new Student[selectedItem.getStudents().size()]))
+ if (selectedItem.getStudent1() != null)
+ {
+ selectedItem.getStudent1().setProjekt(null);
+ }
+ if (selectedItem.getStudent2() != null)
+ {
+ selectedItem.getStudent2().setProjekt(null);
+ }
+ if (selectedItem.getStudent3() != null)
{
- student.setProjekt(null);
+ selectedItem.getStudent3().setProjekt(null);
}
main.getProjekte().remove(selectedItem);