#18: handle adding nurses, binding new method and validate input
All checks were successful
Quality Check / Qualty Check (push) Successful in 11s
Quality Check / Qualty Check (pull_request) Successful in 12s

This commit is contained in:
Ole Kück 2024-05-03 11:48:18 +02:00
parent be45122138
commit 0c3c1ec9df
3 changed files with 52 additions and 1 deletions

View file

@ -1,18 +1,30 @@
package de.hitec.nhplus.nurse; package de.hitec.nhplus.nurse;
import static de.hitec.nhplus.utils.Validator.*;
import de.hitec.nhplus.datastorage.DaoFactory; import de.hitec.nhplus.datastorage.DaoFactory;
import javafx.beans.value.ChangeListener;
import javafx.collections.FXCollections; import javafx.collections.FXCollections;
import javafx.collections.ObservableList; import javafx.collections.ObservableList;
import javafx.fxml.FXML; import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.TableColumn; import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView; import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.scene.control.cell.PropertyValueFactory; 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;
public class AllNurseController { public class AllNurseController {
@FXML
public TextField textFieldSurname;
@FXML
public TextField textFieldFirstname;
@FXML
public TextField textFieldPhoneNumber;
@FXML
public Button buttonAdd;
@FXML @FXML
private TableView<Nurse> tableView; private TableView<Nurse> tableView;
@FXML @FXML
@ -43,6 +55,20 @@ public class AllNurseController {
this.columnPhoneNumber.setCellFactory(TextFieldTableCell.forTableColumn()); this.columnPhoneNumber.setCellFactory(TextFieldTableCell.forTableColumn());
this.tableView.setItems(this.nurses); this.tableView.setItems(this.nurses);
this.buttonAdd.setDisable(true);
ChangeListener<String> 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(){ private void readAllAndShowInTableView(){
@ -54,4 +80,25 @@ public class AllNurseController {
exception.printStackTrace(); 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();
}
} }

View file

@ -68,6 +68,9 @@ public class Validator
public static boolean isValidSurName(String text){ public static boolean isValidSurName(String text){
return !text.isBlank(); return !text.isBlank();
} }
public static boolean isValidPhoneNumber(String text){
return !text.isBlank();
}
public static boolean isValidCareLevel(String text){ public static boolean isValidCareLevel(String text){
return !text.isBlank(); return !text.isBlank();
} }

View file

@ -72,6 +72,7 @@
<Button <Button
fx:id="buttonAdd" fx:id="buttonAdd"
mnemonicParsing="false" mnemonicParsing="false"
onAction="#handleAdd"
prefWidth="90.0" prefWidth="90.0"
text="Hinzufügen" text="Hinzufügen"
/> />