diff --git a/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientTablesController.java b/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientTablesController.java index af30adf..d842fee 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientTablesController.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/controller/PatientTablesController.java @@ -245,13 +245,18 @@ public class PatientTablesController{ public void updatePatientsFromDb(){ + if(this.loadPatientTask != null && this.loadPatientTask.isRunning()) { + System.out.println("Patienten werden bereits geladen."); + return; + } + + btnPatRefresh.setDisable(true); - //if(!loadPatientsTask.isRunning()) { - lblTablePatientEmpty.setText("Daten werden geladen..."); tblPatientOverview.setItems(null); mainController.increaseParallelTaskCount(); + lblTablePatientEmpty.setText("Liste wird geladen..."); Task>loadPatientsTask = new Task>(){ @@ -263,32 +268,41 @@ public class PatientTablesController{ @Override protected void succeeded() { super.succeeded(); + btnPatRefresh.setDisable(false); + lblTablePatientEmpty.setText("Liste ist leer."); tblPatientOverview.setItems(FXCollections.observableArrayList(this.getValue())); - lblTablePatientEmpty.setText("Es sind keine Patienten in der Datenbank"); mainController.decreaseParallelTaskCount(); - System.out.println("Patientenlsite erfolgreich aus Task geladen!"); } @Override protected void failed() { super.failed(); + btnPatRefresh.setDisable(false); + lblTablePatientEmpty.setText("Laden fehlgeschlagen!"); mainController.decreaseParallelTaskCount(); tblPatientOverview.setItems(null); - lblTablePatientEmpty.setText("Ein Fehler ist aufgetreten: "+this.getException()); if(getException()!=null){ getException().printStackTrace(); } } }; + this.loadPatientTask = loadPatientsTask; Thread thread = new Thread(loadPatientsTask); thread.setDaemon(true); thread.start(); - // } } + private Task loadPatientTask = null; + + @FXML + private Button btnPatRefresh; + @FXML + private void clickedRefreshPatient(){ + updatePatientsFromDb(); + } private ObjectBinding patientObjectBinding = null; diff --git a/src/main/resources/patient_tables.fxml b/src/main/resources/patient_tables.fxml index 4ab4bc2..e1aad8f 100644 --- a/src/main/resources/patient_tables.fxml +++ b/src/main/resources/patient_tables.fxml @@ -17,6 +17,8 @@