This commit is contained in:
Bernd Heidemann
2024-03-11 12:08:46 +01:00
commit 7c998615ee
40 changed files with 3010 additions and 0 deletions

View File

@@ -0,0 +1,122 @@
package de.hitec.nhplus.controller;
import de.hitec.nhplus.datastorage.DaoFactory;
import de.hitec.nhplus.datastorage.TreatmentDao;
import javafx.beans.value.ChangeListener;
import javafx.fxml.FXML;
import javafx.scene.control.*;
import javafx.stage.Stage;
import de.hitec.nhplus.model.Patient;
import de.hitec.nhplus.model.Treatment;
import de.hitec.nhplus.utils.DateConverter;
import javafx.util.StringConverter;
import java.sql.SQLException;
import java.time.LocalDate;
import java.time.LocalTime;
public class NewTreatmentController {
@FXML
private Label labelFirstName;
@FXML
private Label labelSurname;
@FXML
private TextField textFieldBegin;
@FXML
private TextField textFieldEnd;
@FXML
private TextField textFieldDescription;
@FXML
private TextArea textAreaRemarks;
@FXML
private DatePicker datePicker;
@FXML
private Button buttonAdd;
private AllTreatmentController controller;
private Patient patient;
private Stage stage;
public void initialize(AllTreatmentController controller, Stage stage, Patient patient) {
this.controller= controller;
this.patient = patient;
this.stage = stage;
this.buttonAdd.setDisable(true);
ChangeListener<String> inputNewPatientListener = (observableValue, oldText, newText) ->
NewTreatmentController.this.buttonAdd.setDisable(NewTreatmentController.this.areInputDataInvalid());
this.textFieldBegin.textProperty().addListener(inputNewPatientListener);
this.textFieldEnd.textProperty().addListener(inputNewPatientListener);
this.textFieldDescription.textProperty().addListener(inputNewPatientListener);
this.textAreaRemarks.textProperty().addListener(inputNewPatientListener);
this.datePicker.valueProperty().addListener((observableValue, localDate, t1) -> NewTreatmentController.this.buttonAdd.setDisable(NewTreatmentController.this.areInputDataInvalid()));
this.datePicker.setConverter(new StringConverter<>() {
@Override
public String toString(LocalDate localDate) {
return (localDate == null) ? "" : DateConverter.convertLocalDateToString(localDate);
}
@Override
public LocalDate fromString(String localDate) {
return DateConverter.convertStringToLocalDate(localDate);
}
});
this.showPatientData();
}
private void showPatientData(){
this.labelFirstName.setText(patient.getFirstName());
this.labelSurname.setText(patient.getSurname());
}
@FXML
public void handleAdd(){
LocalDate date = this.datePicker.getValue();
LocalTime begin = DateConverter.convertStringToLocalTime(textFieldBegin.getText());
LocalTime end = DateConverter.convertStringToLocalTime(textFieldEnd.getText());
String description = textFieldDescription.getText();
String remarks = textAreaRemarks.getText();
Treatment treatment = new Treatment(patient.getPid(), date, begin, end, description, remarks);
createTreatment(treatment);
controller.readAllAndShowInTableView();
stage.close();
}
private void createTreatment(Treatment treatment) {
TreatmentDao dao = DaoFactory.getDaoFactory().createTreatmentDao();
try {
dao.create(treatment);
} catch (SQLException exception) {
exception.printStackTrace();
}
}
@FXML
public void handleCancel(){
stage.close();
}
private boolean areInputDataInvalid() {
if (this.textFieldBegin.getText() == null || this.textFieldEnd.getText() == null) {
return true;
}
try {
LocalTime begin = DateConverter.convertStringToLocalTime(this.textFieldBegin.getText());
LocalTime end = DateConverter.convertStringToLocalTime(this.textFieldEnd.getText());
if (!end.isAfter(begin)) {
return true;
}
} catch (Exception exception) {
return true;
}
return this.textFieldDescription.getText().isBlank() || this.datePicker.getValue() == null;
}
}