diff options
Diffstat (limited to 'src/de/fhswf/in/inf/se/projektthemenvergabe')
| -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()); |
