summaryrefslogtreecommitdiffstats
path: root/src/de/fhswf/in/inf
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/fhswf/in/inf')
-rw-r--r--src/de/fhswf/in/inf/se/projektthemenvergabe/view/ProjektthemenverwaltungsController.java48
1 files changed, 46 insertions, 2 deletions
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 aa74270..de0c09f 100644
--- a/src/de/fhswf/in/inf/se/projektthemenvergabe/view/ProjektthemenverwaltungsController.java
+++ b/src/de/fhswf/in/inf/se/projektthemenvergabe/view/ProjektthemenverwaltungsController.java
@@ -1,5 +1,7 @@
package de.fhswf.in.inf.se.projektthemenvergabe.view;
+import java.util.Optional;
+
import de.fhswf.in.inf.se.projektthemenvergabe.Main;
import de.fhswf.in.inf.se.projektthemenvergabe.model.Projekt;
import javafx.application.Platform;
@@ -69,9 +71,51 @@ public class ProjektthemenverwaltungsController
.setCellValueFactory((data) -> data.getValue().statusProperty());
statusTableColumn.setCellFactory(ComboBoxTableCell.forTableColumn(
FXCollections.observableArrayList(Projekt.StatusTypes.values())));
+ statusTableColumn.setOnEditCommit((data) -> {
+ if (data.getNewValue().equals(Projekt.StatusTypes.IN_UEBERARBEITUNG))
+ {
+ KommentarHinzufuegenController dialog = new KommentarHinzufuegenController(
+ data.getRowValue().getDozentenkommentar());
+
+ dialog.initOwner(main.getPrimaryStage());
+
+ Optional<String> result = dialog.showAndWait();
+
+ if (result.isPresent() && !result.get().trim().isEmpty())
+ {
+ data.getRowValue().setDozentenkommentar(result.get().trim());
+ data.getRowValue().setStatus(data.getNewValue());
+ }
+ else
+ {
+ data.getRowValue().setStatus(data.getOldValue());
+
+ // HACK
+ data.getTableColumn().setVisible(false);
+ data.getTableColumn().setVisible(true);
+ }
+ }
+ else
+ {
+ data.getRowValue().setStatus(data.getNewValue());
+ }
+
+ editProjektButton.setDisable(
+ !data.getNewValue().equals(Projekt.StatusTypes.IN_BEARBEITUNG)
+ && !data.getNewValue()
+ .equals(Projekt.StatusTypes.IN_UEBERARBEITUNG));
+ });
+
+ projektTableView.getSelectionModel().selectedItemProperty()
+ .addListener((observable, oldValue, newValue) -> {
+
+ editProjektButton.setDisable(newValue == null || (!newValue
+ .getStatus().equals(Projekt.StatusTypes.IN_BEARBEITUNG)
+ && !newValue.getStatus()
+ .equals(Projekt.StatusTypes.IN_UEBERARBEITUNG)));
+
+ });
- editProjektButton.disableProperty().bind(projektTableView
- .getSelectionModel().selectedItemProperty().isNull());
deleteProjektButton.disableProperty().bind(projektTableView
.getSelectionModel().selectedItemProperty().isNull());