From 280ef132b3122586e680d8838e3020c5820b2fb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ole=20K=C3=BCck?= Date: Fri, 3 May 2024 11:48:18 +0200 Subject: [PATCH] #18: handle adding nurses, binding new method and validate input --- .../nhplus/nurse/AllNurseController.java | 49 ++++++++++++++++++- .../java/de/hitec/nhplus/utils/Validator.java | 3 ++ .../de/hitec/nhplus/nurse/AllNurseView.fxml | 1 + 3 files changed, 52 insertions(+), 1 deletion(-) diff --git a/src/main/java/de/hitec/nhplus/nurse/AllNurseController.java b/src/main/java/de/hitec/nhplus/nurse/AllNurseController.java index 0539494..7f7cfbb 100644 --- a/src/main/java/de/hitec/nhplus/nurse/AllNurseController.java +++ b/src/main/java/de/hitec/nhplus/nurse/AllNurseController.java @@ -1,18 +1,30 @@ package de.hitec.nhplus.nurse; +import static de.hitec.nhplus.utils.Validator.*; + import de.hitec.nhplus.datastorage.DaoFactory; +import javafx.beans.value.ChangeListener; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.fxml.FXML; +import javafx.scene.control.Button; import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; +import javafx.scene.control.TextField; import javafx.scene.control.cell.PropertyValueFactory; import javafx.scene.control.cell.TextFieldTableCell; import java.sql.SQLException; public class AllNurseController { - + @FXML + public TextField textFieldSurname; + @FXML + public TextField textFieldFirstname; + @FXML + public TextField textFieldPhoneNumber; + @FXML + public Button buttonAdd; @FXML private TableView tableView; @FXML @@ -43,6 +55,20 @@ public class AllNurseController { this.columnPhoneNumber.setCellFactory(TextFieldTableCell.forTableColumn()); this.tableView.setItems(this.nurses); + + this.buttonAdd.setDisable(true); + ChangeListener inputNewNurseValidationListener = (observableValue, oldText, newText)-> + { + boolean isValid = isValidFirstName(this.textFieldFirstname.getText()) + && isValidSurName(this.textFieldSurname.getText()) + && isValidPhoneNumber(this.textFieldPhoneNumber.getText()); + + AllNurseController.this.buttonAdd.setDisable(!isValid); + }; + + this.textFieldFirstname.textProperty().addListener(inputNewNurseValidationListener); + this.textFieldSurname.textProperty().addListener(inputNewNurseValidationListener); + this.textFieldPhoneNumber.textProperty().addListener(inputNewNurseValidationListener); } private void readAllAndShowInTableView(){ @@ -54,4 +80,25 @@ public class AllNurseController { exception.printStackTrace(); } } + @FXML + public void handleAdd(){ + String surname=this.textFieldSurname.getText(); + String firstName=this.textFieldFirstname.getText(); + String phoneNumber=this.textFieldPhoneNumber.getText(); + try { + this.dao.create(new Nurse(firstName, surname, phoneNumber)); + } + catch (SQLException exception){ + exception.printStackTrace(); + } + readAllAndShowInTableView(); + clearTextfields(); + } + + private void clearTextfields() { + this.textFieldFirstname.clear(); + this.textFieldSurname.clear(); + this.textFieldPhoneNumber.clear(); + } + } diff --git a/src/main/java/de/hitec/nhplus/utils/Validator.java b/src/main/java/de/hitec/nhplus/utils/Validator.java index 433341b..4fdddd9 100644 --- a/src/main/java/de/hitec/nhplus/utils/Validator.java +++ b/src/main/java/de/hitec/nhplus/utils/Validator.java @@ -68,6 +68,9 @@ public class Validator public static boolean isValidSurName(String text){ return !text.isBlank(); } + public static boolean isValidPhoneNumber(String text){ + return !text.isBlank(); + } public static boolean isValidCareLevel(String text){ return !text.isBlank(); } diff --git a/src/main/resources/de/hitec/nhplus/nurse/AllNurseView.fxml b/src/main/resources/de/hitec/nhplus/nurse/AllNurseView.fxml index 592e739..4a7fb33 100644 --- a/src/main/resources/de/hitec/nhplus/nurse/AllNurseView.fxml +++ b/src/main/resources/de/hitec/nhplus/nurse/AllNurseView.fxml @@ -72,6 +72,7 @@