package de.uniluebeck.mi.projmi6.controller; /** * Created by 626947 on 12.11.15. */ import de.uniluebeck.mi.projmi6.db.DBHandler; import de.uniluebeck.mi.projmi6.model.Mitarbeiter; import de.uniluebeck.mi.projmi6.model.OpsCode; import de.uniluebeck.mi.projmi6.model.Untersuchung; import de.uniluebeck.mi.projmi6.view.DateTimePicker; import de.uniluebeck.mi.projmi6.view.SelectKeyComboBoxListener; import javafx.beans.property.SimpleObjectProperty; import javafx.collections.ObservableList; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.scene.control.*; import javafx.scene.paint.Color; import javafx.scene.text.Text; import java.sql.SQLException; public class UntersuchungenController { /** * The examination that is shown in the edit window, or null if a new examination should be created. */ private Untersuchung untersuchung = null; private MainController mainController; @FXML private Button btnUntsCancel; @FXML private Button btnUntsCreate; @FXML private DateTimePicker dtTmUntersuchungszeitpunkt; @FXML private Button btnUntsSave; @FXML private Label untsChanger; @FXML private Label untsCreator; @FXML private Label untsChangeTime; @FXML private Label untsCreateTime; @FXML private ListView untsList; @FXML private ComboBox untsOpsCode; @FXML private ComboBox untsArzt; private SimpleObjectProperty> untersuchungen = new SimpleObjectProperty<>(); public UntersuchungenController(MainController mainController) { this.mainController = mainController; } public ObservableList getUntersuchungen() { return untersuchungen.get(); } public void setUntersuchungen(ObservableList untersuchungen) { this.untersuchungen.set(untersuchungen); } public SimpleObjectProperty> untersuchungenProperty() { return untersuchungen; } @FXML public void initialize(){ untsOpsCode.itemsProperty().bind(mainController.getStammdaten().opsCodesProperty()); new SelectKeyComboBoxListener(untsOpsCode); untsList.itemsProperty().bind(untersuchungen); untsArzt.setItems(mainController.getStammdaten().getMitarbeiter()); untsList.setCellFactory(lv -> { return new ListCell(){ @Override protected void updateItem(Untersuchung item, boolean empty) { super.updateItem(item, empty); if(item==null||empty){ setText(null); setGraphic(null); return; } setText(item.toString()); if(item.getStorniert()){ setTextFill(Color.GRAY); Text text = new Text(" "); text.setFill(Color.RED); setGraphic(text); }else{ setTextFill(Color.BLACK); setGraphic(null); } } }; }); } @FXML void clickedUntsCreate() { clearFields(); untsArzt.getSelectionModel().select(mainController.getCurrentMitarbeiter()); untersuchung = null; } @FXML void clickedUntsAbort() { Untersuchung untersuchung = untsList.getSelectionModel().getSelectedItem(); if(untersuchung!=null){ untersuchung.setStorniert(true); try { DBHandler.setUntersuchung(untersuchung, mainController.getCurrentMitarbeiter().getMitarbID(), true); }catch (Exception e){ e.printStackTrace(); } } mainController.refreshCaseData(); } @FXML void clickedUntsSave(ActionEvent event) { if (untersuchung == null) { untersuchung = new Untersuchung(); untersuchung.setFall(mainController.getFallController().getFall()); copyFieldDataIntoUntersuchung(untersuchung); try { DBHandler.setUntersuchung(untersuchung, mainController.getCurrentMitarbeiter().getMitarbID(), false); } catch (SQLException e) { e.printStackTrace(); } } } public void setUntersuchung(Untersuchung untersuchung){ this.untersuchung = untersuchung; if(untersuchung==null){ clearFields(); }else { copyUntersuchungDataIntoFields(); } } private void copyUntersuchungDataIntoFields(){ // untsList.setText(Integer.toString(untersuchung.getUntersID())); untsOpsCode.setValue(untersuchung.getOpscode()); untsArzt.setValue(untersuchung.getDurchfuehrenderArzt()); dtTmUntersuchungszeitpunkt.setDateTime(untersuchung.getUntersuchungsdatum()); untsCreator.setText(Integer.toString(untersuchung.getErsteller())); untsCreateTime.setText(untersuchung.getErstellDatumZeit().toString()); untsChanger.setText(Integer.toString(untersuchung.getBearbeiter())); untsChangeTime.setText(untersuchung.getBearbeitetDatumZeit().toString()); } private void copyFieldDataIntoUntersuchung(Untersuchung untersuchung){ untersuchung.setOpscode(untsOpsCode.getValue()); untersuchung.setDurchfuehrenderArzt(untsArzt.getValue()); // untersuchung.set?(untsList.getValue()); untersuchung.setUntersuchungsdatum(dtTmUntersuchungszeitpunkt.getDateTime()); // untersCreateTime.setText(untersuchung.getErstellDatumZeit().toString()); // untersCreator.setText(Integer.toString(untersuchung.getErsteller())); // untersEditTime.setText(untersuchung.getBearbeitetDatumZeit().toString()); // untersEditor.setText(Integer.toString(untersuchung.getBearbeiter())); } private void clearFields(){ untsCreateTime.setText(""); untsCreator.setText(""); untsChangeTime.setText(""); // untersEditor.setText(""); untsOpsCode.setValue(null); untsArzt.setValue(null); dtTmUntersuchungszeitpunkt.setDateTime(null); } }