#10: Deletedate calculated & DeletreBurtton enabled/disabled
This commit is contained in:
parent
917aa8275f
commit
353146cbd7
4 changed files with 53 additions and 7 deletions
Binary file not shown.
|
@ -2,9 +2,13 @@ package de.hitec.nhplus.nurse;
|
||||||
|
|
||||||
import de.hitec.nhplus.datastorage.DaoFactory;
|
import de.hitec.nhplus.datastorage.DaoFactory;
|
||||||
import de.hitec.nhplus.nurse.database.NurseDao;
|
import de.hitec.nhplus.nurse.database.NurseDao;
|
||||||
|
import de.hitec.nhplus.treatment.Treatment;
|
||||||
|
import de.hitec.nhplus.treatment.database.TreatmentDao;
|
||||||
|
import de.hitec.nhplus.utils.DateConverter;
|
||||||
import javafx.beans.property.SimpleStringProperty;
|
import javafx.beans.property.SimpleStringProperty;
|
||||||
import javafx.collections.FXCollections;
|
import javafx.collections.FXCollections;
|
||||||
import javafx.collections.ObservableList;
|
import javafx.collections.ObservableList;
|
||||||
|
import javafx.collections.ObservableMap;
|
||||||
import javafx.fxml.FXML;
|
import javafx.fxml.FXML;
|
||||||
import javafx.scene.control.Button;
|
import javafx.scene.control.Button;
|
||||||
import javafx.scene.control.TableColumn;
|
import javafx.scene.control.TableColumn;
|
||||||
|
@ -13,6 +17,11 @@ import javafx.scene.control.cell.PropertyValueFactory;
|
||||||
import javafx.scene.control.cell.TextFieldTableCell;
|
import javafx.scene.control.cell.TextFieldTableCell;
|
||||||
|
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
public class LockedNurseController {
|
public class LockedNurseController {
|
||||||
@FXML
|
@FXML
|
||||||
|
@ -33,7 +42,9 @@ public class LockedNurseController {
|
||||||
public TableColumn<Nurse, String> columnDeleteDate;
|
public TableColumn<Nurse, String> columnDeleteDate;
|
||||||
|
|
||||||
private final ObservableList<Nurse> nurses = FXCollections.observableArrayList();
|
private final ObservableList<Nurse> nurses = FXCollections.observableArrayList();
|
||||||
|
private final Map<Nurse, List<Treatment>> treatmentsPerNurse = new HashMap<>();
|
||||||
private NurseDao dao;
|
private NurseDao dao;
|
||||||
|
private TreatmentDao treatmentDao;
|
||||||
|
|
||||||
public void initialize() {
|
public void initialize() {
|
||||||
this.readAllAndShowInTableView();
|
this.readAllAndShowInTableView();
|
||||||
|
@ -49,20 +60,32 @@ public class LockedNurseController {
|
||||||
this.columnPhoneNumber.setCellValueFactory(new PropertyValueFactory<>("phoneNumber"));
|
this.columnPhoneNumber.setCellValueFactory(new PropertyValueFactory<>("phoneNumber"));
|
||||||
this.columnPhoneNumber.setCellFactory(TextFieldTableCell.forTableColumn());
|
this.columnPhoneNumber.setCellFactory(TextFieldTableCell.forTableColumn());
|
||||||
|
|
||||||
this.columnDeleteDate.setCellValueFactory(cellData -> {
|
this.columnDeleteDate.setCellValueFactory(cellData -> new SimpleStringProperty(cellData.getValue().calculateDeleteDate(treatmentsPerNurse.get(cellData.getValue()))));
|
||||||
return new SimpleStringProperty(cellData.getValue().calculateDeleteDate());
|
|
||||||
});
|
|
||||||
//this.columnDeleteDate.setCellFactory(TextFieldTableCell.forTableColumn());
|
//this.columnDeleteDate.setCellFactory(TextFieldTableCell.forTableColumn());
|
||||||
|
|
||||||
|
buttonDelete.setDisable(true);
|
||||||
|
|
||||||
this.tableView.setItems(this.nurses);
|
this.tableView.setItems(this.nurses);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void readAllAndShowInTableView() {
|
private void readAllAndShowInTableView() {
|
||||||
this.nurses.clear();
|
this.nurses.clear();
|
||||||
|
this.treatmentsPerNurse.clear();
|
||||||
|
|
||||||
this.dao = DaoFactory.getInstance().createNurseDAO();
|
this.dao = DaoFactory.getInstance().createNurseDAO();
|
||||||
|
this.treatmentDao = DaoFactory.getInstance().createTreatmentDao();
|
||||||
try {
|
try {
|
||||||
this.nurses.addAll(this.dao.readAllLocked());
|
this.nurses.addAll(this.dao.readAllLocked());
|
||||||
|
this.nurses.forEach(
|
||||||
|
nurse -> {
|
||||||
|
try {
|
||||||
|
this.treatmentsPerNurse.put(nurse, this.treatmentDao.readTreatmentsByNurse(nurse.getId()));
|
||||||
|
} catch (SQLException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
} catch (SQLException exception) {
|
} catch (SQLException exception) {
|
||||||
exception.printStackTrace();
|
exception.printStackTrace();
|
||||||
}
|
}
|
||||||
|
@ -80,6 +103,14 @@ public class LockedNurseController {
|
||||||
exception.printStackTrace();
|
exception.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
readAllAndShowInTableView();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
public void handleMouseClick() {
|
||||||
|
Nurse nurse = tableView.getSelectionModel().getSelectedItem();
|
||||||
|
buttonDelete.setDisable(!(DateConverter.convertStringToLocalDate(nurse.calculateDeleteDate(treatmentsPerNurse.get(nurse))).isBefore(LocalDate.now())));
|
||||||
}
|
}
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
|
|
|
@ -1,10 +1,15 @@
|
||||||
package de.hitec.nhplus.nurse;
|
package de.hitec.nhplus.nurse;
|
||||||
|
|
||||||
import de.hitec.nhplus.main.Person;
|
import de.hitec.nhplus.main.Person;
|
||||||
|
import de.hitec.nhplus.treatment.Treatment;
|
||||||
|
import de.hitec.nhplus.utils.DateConverter;
|
||||||
import javafx.beans.property.SimpleBooleanProperty;
|
import javafx.beans.property.SimpleBooleanProperty;
|
||||||
import javafx.beans.property.SimpleIntegerProperty;
|
import javafx.beans.property.SimpleIntegerProperty;
|
||||||
import javafx.beans.property.SimpleStringProperty;
|
import javafx.beans.property.SimpleStringProperty;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.util.List;
|
||||||
import java.util.StringJoiner;
|
import java.util.StringJoiner;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -33,6 +38,7 @@ public class Nurse extends Person {
|
||||||
this.phoneNumber = new SimpleStringProperty(phoneNumber);
|
this.phoneNumber = new SimpleStringProperty(phoneNumber);
|
||||||
this.locked = new SimpleBooleanProperty(false);
|
this.locked = new SimpleBooleanProperty(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Nurse(
|
public Nurse(
|
||||||
String firstName,
|
String firstName,
|
||||||
String surName,
|
String surName,
|
||||||
|
@ -60,9 +66,17 @@ public class Nurse extends Person {
|
||||||
this.locked = new SimpleBooleanProperty(isLocked);
|
this.locked = new SimpleBooleanProperty(isLocked);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String calculateDeleteDate() {
|
public String calculateDeleteDate(List<Treatment> treatments) {
|
||||||
//TODO: Lese alle Behandlungen die Dieser Pfleger Durchgefürt hat & brechene mit ihnen das Datum
|
LocalDate today = LocalDate.now();
|
||||||
return "Comming soon";
|
LocalDate newestDate = LocalDate.of(1980, 1, 1);
|
||||||
|
for (Treatment treatment : treatments) {
|
||||||
|
if (DateConverter.convertStringToLocalDate(treatment.getDate()).isAfter(newestDate)) {
|
||||||
|
newestDate = DateConverter.convertStringToLocalDate(treatment.getDate());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return DateConverter.convertLocalDateToString(newestDate.plusYears(10));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPhoneNumber(String phoneNumber) {
|
public void setPhoneNumber(String phoneNumber) {
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
<Insets top="8" left="8" right="8" bottom="8"/>
|
<Insets top="8" left="8" right="8" bottom="8"/>
|
||||||
</padding>
|
</padding>
|
||||||
<center>
|
<center>
|
||||||
<TableView fx:id="tableView" layoutX="31.0" layoutY="40">
|
<TableView fx:id="tableView" layoutX="31.0" layoutY="40" onMouseClicked="#handleMouseClick" >
|
||||||
<columns>
|
<columns>
|
||||||
<TableColumn
|
<TableColumn
|
||||||
fx:id="columnId"
|
fx:id="columnId"
|
||||||
|
@ -74,6 +74,7 @@
|
||||||
onAction="#handleDelete"
|
onAction="#handleDelete"
|
||||||
prefWidth="90.0"
|
prefWidth="90.0"
|
||||||
text="Löschen"
|
text="Löschen"
|
||||||
|
|
||||||
/>
|
/>
|
||||||
</HBox>
|
</HBox>
|
||||||
</right>
|
</right>
|
||||||
|
|
Loading…
Reference in a new issue