diff --git a/src/main/java/de/uniluebeck/mi/projmi6/controller/DiagnoseController.java b/src/main/java/de/uniluebeck/mi/projmi6/controller/DiagnoseController.java index ecd269f..16c1600 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/controller/DiagnoseController.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/controller/DiagnoseController.java @@ -4,7 +4,9 @@ package de.uniluebeck.mi.projmi6.controller; * Created by 631806 on 12.11.15. */ +import de.uniluebeck.mi.projmi6.db.DBHandler; import de.uniluebeck.mi.projmi6.model.*; +import javafx.beans.property.ReadOnlyObjectProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.collections.FXCollections; import javafx.collections.ObservableList; @@ -12,6 +14,7 @@ import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.scene.control.*; import javafx.event.ActionEvent; +import javafx.scene.layout.GridPane; public class DiagnoseController { @@ -38,6 +41,21 @@ public class DiagnoseController { + public enum State { + CREATE, EDIT, VIEW + } + + SimpleObjectProperty state = new SimpleObjectProperty<>(State.VIEW); + + public State getState() { + return state.get(); + } + + public ReadOnlyObjectProperty stateProperty() { + return state; + } + + @FXML private ListView diagnoseList; @@ -48,14 +66,63 @@ public class DiagnoseController { diagDiagnoseArzt.itemsProperty().bind(mainController.getStammdaten().mitarbeiterProperty()); diagnoseList.itemsProperty().bind(diagnosen); + initButtons(); + + fields.disableProperty().bind(state.isEqualTo(State.VIEW)); + diagnoseList.getSelectionModel().setSelectionMode(SelectionMode.SINGLE); diagnoseList.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> { - this.setDiagnose(newValue); + if(newValue==null){ + clearFields(); + }else{ + copyDiagnoseDataIntoFields(newValue); + } }); + } + private void initButtons(){ + btnDiagCreate.disableProperty().bind(mainController.fallProperty().isNull()); + + btnDiagEdit.disableProperty().bind(diagnoseList.getSelectionModel().selectedItemProperty().isNull()); + + btnDiagEdit.managedProperty().bind(state.isEqualTo(State.VIEW)); + btnDiagEdit.visibleProperty().bind(btnDiagEdit.managedProperty()); + + + btnDiagSave.managedProperty().bind(state.isNotEqualTo(State.VIEW)); + btnDiagSave.visibleProperty().bind(btnDiagSave.managedProperty()); + + btnDiagAbort.managedProperty().bind(btnDiagSave.managedProperty()); + btnDiagAbort.visibleProperty().bind(btnDiagSave.managedProperty()); + + } + + @FXML + Button btnDiagAbort, btnDiagEdit; + + + @FXML + private void clickedEdit(){ + state.set(State.EDIT); + } + + @FXML + private void clickedAbort(){ + state.set(State.VIEW); + Diagnose diagnose = diagnoseList.getSelectionModel().getSelectedItem(); + if(diagnose==null){ + clearFields(); + }else{ + copyDiagnoseDataIntoFields(diagnose); + } + } + + @FXML + private GridPane fields; + @FXML private ComboBox diagDiagnoseArzt; @@ -92,7 +159,7 @@ public class DiagnoseController { @FXML void clickedDiagCreate(ActionEvent event) { - + this.state.set(State.CREATE); } @FXML @@ -102,24 +169,16 @@ public class DiagnoseController { @FXML void clickedDiagSave(ActionEvent event) { + if(state.get() == State.CREATE){ + //Create new diagnosis + //DBHandler.set + }else{ + //Update diagnosis in db + } } - /** - * The diagnose that is shown in the edit window, or null if a new diagnose should be created. - */ - - private Diagnose diagnose = null; - - public void setDiagnose(Diagnose diagnose){ - this.diagnose = diagnose; - if(diagnose==null){ - clearFields(); - }else { - copyDiagnoseDataIntoFields(diagnose); - } - } private void copyDiagnoseDataIntoFields(Diagnose diagnose){ diagDiagnoseArzt.setValue(diagnose.getArzt()); diff --git a/src/main/java/de/uniluebeck/mi/projmi6/controller/StationsHistorieController.java b/src/main/java/de/uniluebeck/mi/projmi6/controller/StationsHistorieController.java index 1d3bd37..aaad16f 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/controller/StationsHistorieController.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/controller/StationsHistorieController.java @@ -117,7 +117,8 @@ public class StationsHistorieController { btnStatHistAbort.visibleProperty().bind(state.isEqualTo(State.VIEW).not()); btnStatHistAbort.managedProperty().bind(btnStatHistAbort.visibleProperty()); - btnStatHistEdit.visibleProperty().bind(state.isEqualTo(State.VIEW)); + btnStatHistEdit.visibleProperty().bind(state.isEqualTo(State.VIEW) + .and(tblStationsHistorie.getSelectionModel().selectedItemProperty().isNotNull())); btnStatHistEdit.managedProperty().bind(btnStatHistEdit.visibleProperty()); } @@ -174,6 +175,7 @@ public class StationsHistorieController { } mainController.refreshCaseData(); } + state.set(State.VIEW); } @FXML diff --git a/src/main/resources/diagnose.fxml b/src/main/resources/diagnose.fxml index 75aba84..05f29af 100644 --- a/src/main/resources/diagnose.fxml +++ b/src/main/resources/diagnose.fxml @@ -22,7 +22,7 @@ - + @@ -47,6 +47,8 @@