From 5f3084b9f0f0df60693072a3eb1a98cbd06dbd96 Mon Sep 17 00:00:00 2001 From: Stefan Suhren Date: Wed, 6 Jan 2016 01:10:21 +0100 Subject: Change list to enum --- .../inf/se/projektthemenvergabe/model/Projekt.java | 52 +++++++++++++++------- .../view/ProjektthemenverwaltungsController.java | 17 +++---- 2 files changed, 45 insertions(+), 24 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 f9ab493..a2bd162 100644 --- a/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Projekt.java +++ b/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Projekt.java @@ -9,8 +9,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; public class Projekt @@ -27,8 +25,10 @@ public class Projekt private Ansprechpartner ansprechpartner; - private StringProperty status = new SimpleStringProperty( - getStatusList().get(0)); + private ObjectProperty status = new SimpleObjectProperty<>( + StatusTypes.IN_BEARBEITUNG); + + private StringProperty dozentenkommentar = new SimpleStringProperty(""); /** * Generates an extractor that fires when a property of a list value @@ -41,17 +41,22 @@ public class Projekt return projekt -> new Observable[] { projekt.statusProperty() }; } - public static ObservableList getStatusList() - { - ObservableList status = FXCollections.observableArrayList(); + public static enum StatusTypes { + IN_BEARBEITUNG("In Bearbeitung"), EINGEREICHT( + "Eingereicht"), IN_UEBERARBEITUNG("In Überarbeitung"), ANGENOMMEN( + "Angenommen"), ABGELEHNT("Abgelehnt"); - status.add("In Bearbeitung"); - status.add("Eingereicht"); - status.add("In Überarbeitung"); - status.add("Angenommen"); - status.add("Abgelehnt"); + private String text; + + StatusTypes(String text) + { + this.text = text; + } - return FXCollections.unmodifiableObservableList(status); + public String toString() + { + return text; + } } public Projekt( @@ -165,21 +170,36 @@ public class Projekt return this.ansprechpartner; } - public final StringProperty statusProperty() + public final ObjectProperty statusProperty() { return this.status; } - public final String getStatus() + public final StatusTypes getStatus() { return this.statusProperty().get(); } - public final void setStatus(final String status) + public final void setStatus(final StatusTypes status) { this.statusProperty().set(status); } + public final StringProperty dozentenkommentarProperty() + { + return this.dozentenkommentar; + } + + public final String getDozentenkommentar() + { + return this.dozentenkommentarProperty().get(); + } + + public final void setDozentenkommentar(final String dozentenkommentar) + { + this.dozentenkommentarProperty().set(dozentenkommentar); + } + /* * (non-Javadoc) * 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 179ad98..aa74270 100644 --- a/src/de/fhswf/in/inf/se/projektthemenvergabe/view/ProjektthemenverwaltungsController.java +++ b/src/de/fhswf/in/inf/se/projektthemenvergabe/view/ProjektthemenverwaltungsController.java @@ -3,6 +3,7 @@ package de.fhswf.in.inf.se.projektthemenvergabe.view; import de.fhswf.in.inf.se.projektthemenvergabe.Main; import de.fhswf.in.inf.se.projektthemenvergabe.model.Projekt; import javafx.application.Platform; +import javafx.collections.FXCollections; import javafx.collections.transformation.FilteredList; import javafx.collections.transformation.SortedList; import javafx.fxml.FXML; @@ -33,7 +34,7 @@ public class ProjektthemenverwaltungsController private TableColumn student3TableColumn; @FXML - private TableColumn statusTableColumn; + private TableColumn statusTableColumn; @FXML private MenuItem editProjektMenuItem; @@ -66,8 +67,8 @@ public class ProjektthemenverwaltungsController .getStudents().get(2).matrikelnummerProperty().asObject()); statusTableColumn .setCellValueFactory((data) -> data.getValue().statusProperty()); - statusTableColumn.setCellFactory( - ComboBoxTableCell.forTableColumn(Projekt.getStatusList())); + statusTableColumn.setCellFactory(ComboBoxTableCell.forTableColumn( + FXCollections.observableArrayList(Projekt.StatusTypes.values()))); editProjektButton.disableProperty().bind(projektTableView .getSelectionModel().selectedItemProperty().isNull()); @@ -103,35 +104,35 @@ public class ProjektthemenverwaltungsController private void handleShowInBearbeitung() { filterList.setPredicate((projekt) -> projekt.getStatus() - .equals(Projekt.getStatusList().get(0))); + .equals(Projekt.StatusTypes.IN_BEARBEITUNG)); } @FXML private void handleShowEingereicht() { filterList.setPredicate((projekt) -> projekt.getStatus() - .equals(Projekt.getStatusList().get(1))); + .equals(Projekt.StatusTypes.EINGEREICHT)); } @FXML private void handleShowInUeberabeitung() { filterList.setPredicate((projekt) -> projekt.getStatus() - .equals(Projekt.getStatusList().get(2))); + .equals(Projekt.StatusTypes.IN_UEBERARBEITUNG)); } @FXML private void handleShowAngenommen() { filterList.setPredicate((projekt) -> projekt.getStatus() - .equals(Projekt.getStatusList().get(3))); + .equals(Projekt.StatusTypes.ANGENOMMEN)); } @FXML private void handleShowAbgelehnt() { filterList.setPredicate((projekt) -> projekt.getStatus() - .equals(Projekt.getStatusList().get(4))); + .equals(Projekt.StatusTypes.ABGELEHNT)); } @FXML -- cgit v1.2.3-70-g09d2