diff options
| author | Stefan Suhren <suhren.stefan@fh-swf.de> | 2016-01-06 01:24:01 +0100 |
|---|---|---|
| committer | Stefan Suhren <suhren.stefan@fh-swf.de> | 2016-01-06 01:24:01 +0100 |
| commit | a30fbcf6d2229d6bd5b9cc08ee05ada2d0a38e71 (patch) | |
| tree | 3e593ac3cfba58cd40e577b0d57e100520286ed8 | |
| parent | 5f3084b9f0f0df60693072a3eb1a98cbd06dbd96 (diff) | |
| download | Projektthemenvergabe-a30fbcf6d2229d6bd5b9cc08ee05ada2d0a38e71.tar.gz Projektthemenvergabe-a30fbcf6d2229d6bd5b9cc08ee05ada2d0a38e71.zip | |
Let the dozent add a comment on certain status changes
| -rw-r--r-- | src/de/fhswf/in/inf/se/projektthemenvergabe/view/ProjektthemenverwaltungsController.java | 48 |
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()); |
