diff --git a/src/main/java/de/hitec/nhplus/main/MainWindowController.java b/src/main/java/de/hitec/nhplus/main/MainWindowController.java index b0f4a47..7e887cf 100644 --- a/src/main/java/de/hitec/nhplus/main/MainWindowController.java +++ b/src/main/java/de/hitec/nhplus/main/MainWindowController.java @@ -3,6 +3,7 @@ package de.hitec.nhplus.main; import de.hitec.nhplus.Main; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; +import javafx.scene.control.SelectionModel; import javafx.scene.control.Tab; import javafx.scene.control.TabPane; import javafx.scene.layout.AnchorPane; @@ -29,10 +30,18 @@ public class MainWindowController { @FXML private Tab treatmentTab; @FXML - private AnchorPane nursePage; - @FXML private Tab nurseTab; @FXML + private TabPane nurseTabPane; + @FXML + private AnchorPane activeNursePage; + @FXML + private Tab activeNurseTab; + @FXML + private AnchorPane lockedNursePage; + @FXML + private Tab lockedNurseTab; + @FXML private AnchorPane medicationPage; @FXML private Tab medicationTab; @@ -46,6 +55,12 @@ public class MainWindowController { treatmentTab.setOnSelectionChanged(event -> loadTreatmentsPage()); nurseTab.setOnSelectionChanged(event -> loadNursePage()); medicationTab.setOnSelectionChanged(event -> loadMedicationPage()); + + + nurseTabPane.getSelectionModel().select(activeNurseTab); + + activeNurseTab.setOnSelectionChanged(event -> loadActiveNursePage()); + lockedNurseTab.setOnSelectionChanged(event -> loadLockedNursePage()); } /** @@ -88,15 +103,43 @@ public class MainWindowController { * Loads the nurse page into its tab. */ private void loadNursePage() { + SelectionModel selectionModel = nurseTabPane.getSelectionModel(); + Tab selectedTab = selectionModel.getSelectedItem(); + if(selectedTab == activeNurseTab){ + loadActiveNursePage(); + } + if(selectedTab == lockedNurseTab){ + loadLockedNursePage(); + } + } + + private void loadActiveNursePage() { + System.out.println("TODO: Active Nurse"); try { - BorderPane nursePane = FXMLLoader.load( + BorderPane activeNursePane = FXMLLoader.load( Objects.requireNonNull(Main.class.getResource("/de/hitec/nhplus/nurse/AllNurseView.fxml")) ); - nursePage.getChildren().setAll(nursePane); - AnchorPane.setTopAnchor(nursePane, 0d); - AnchorPane.setBottomAnchor(nursePane, 0d); - AnchorPane.setLeftAnchor(nursePane, 0d); - AnchorPane.setRightAnchor(nursePane, 0d); + activeNursePage.getChildren().setAll(activeNursePane); + AnchorPane.setTopAnchor(activeNursePane, 0d); + AnchorPane.setBottomAnchor(activeNursePane, 0d); + AnchorPane.setLeftAnchor(activeNursePane, 0d); + AnchorPane.setRightAnchor(activeNursePane, 0d); + } catch (IOException exception) { + exception.printStackTrace(); + } + } + + private void loadLockedNursePage() { + System.out.println("TODO: Locked Nurse"); + try { + BorderPane lockedNursePane = FXMLLoader.load( + Objects.requireNonNull(Main.class.getResource("/de/hitec/nhplus/nurse/LockedNurseView.fxml")) + ); + lockedNursePage.getChildren().setAll(lockedNursePane); + AnchorPane.setTopAnchor(lockedNursePane, 0d); + AnchorPane.setBottomAnchor(lockedNursePane, 0d); + AnchorPane.setLeftAnchor(lockedNursePane, 0d); + AnchorPane.setRightAnchor(lockedNursePane, 0d); } catch (IOException exception) { exception.printStackTrace(); } diff --git a/src/main/java/de/hitec/nhplus/nurse/AllNurseController.java b/src/main/java/de/hitec/nhplus/nurse/AllNurseController.java index 86eccbd..77a7a5f 100644 --- a/src/main/java/de/hitec/nhplus/nurse/AllNurseController.java +++ b/src/main/java/de/hitec/nhplus/nurse/AllNurseController.java @@ -33,6 +33,8 @@ public class AllNurseController { @FXML public Button buttonAdd; @FXML + public Button buttonLock; + @FXML private TableView tableView; @FXML private TableColumn columnId; @@ -89,7 +91,7 @@ public class AllNurseController { this.nurses.clear(); this.dao = DaoFactory.getInstance().createNurseDAO(); try { - this.nurses.setAll(this.dao.readAll()); + this.nurses.setAll(this.dao.readAllActive()); }catch (SQLException exception){ exception.printStackTrace(); } @@ -119,5 +121,20 @@ public class AllNurseController { clearTextfields(); } + @FXML + public void handleLock(){ + Nurse selectedItem = this.tableView.getSelectionModel().getSelectedItem(); + if (selectedItem == null){ + return; + } + + try { + selectedItem.setLocked(true); + this.dao.update(selectedItem); + }catch (SQLException exception){ + exception.printStackTrace(); + } + readAllAndShowInTableView(); + } } diff --git a/src/main/java/de/hitec/nhplus/nurse/LockedNurseController.java b/src/main/java/de/hitec/nhplus/nurse/LockedNurseController.java new file mode 100644 index 0000000..ecf3626 --- /dev/null +++ b/src/main/java/de/hitec/nhplus/nurse/LockedNurseController.java @@ -0,0 +1,96 @@ +package de.hitec.nhplus.nurse; + +import de.hitec.nhplus.datastorage.DaoFactory; +import de.hitec.nhplus.nurse.database.NurseDao; +import javafx.application.Application; +import javafx.collections.FXCollections; +import javafx.collections.ObservableList; +import javafx.fxml.FXML; +import javafx.scene.control.Button; +import javafx.scene.control.Tab; +import javafx.scene.control.TableColumn; +import javafx.scene.control.TableView; +import javafx.scene.control.cell.PropertyValueFactory; +import javafx.scene.control.cell.TextFieldTableCell; +import javafx.scene.layout.AnchorPane; +import javafx.stage.Stage; + +import java.sql.SQLException; + +public class LockedNurseController { + @FXML + public Button buttonDelete; + @FXML + private Button buttonUnlock; + @FXML + public TableView tableView; + @FXML + public TableColumn columnId; + @FXML + public TableColumn columnFirstName; + @FXML + public TableColumn columnSurName; + @FXML + public TableColumn columnDeleteDate; + + private final ObservableList nurses = FXCollections.observableArrayList(); + private NurseDao dao; + + public void initialize() { + this.readAllAndShowInTableView(); + + this.columnId.setCellValueFactory(new PropertyValueFactory<>("id")); + + this.columnFirstName.setCellValueFactory(new PropertyValueFactory<>("firstName")); + this.columnFirstName.setCellFactory(TextFieldTableCell.forTableColumn()); + + this.columnSurName.setCellValueFactory(new PropertyValueFactory<>("surName")); + this.columnSurName.setCellFactory(TextFieldTableCell.forTableColumn()); + + this.columnDeleteDate.setCellValueFactory(new PropertyValueFactory<>("date")); + this.columnDeleteDate.setCellFactory(TextFieldTableCell.forTableColumn()); + + this.tableView.setItems(this.nurses); + } + + private void readAllAndShowInTableView() { + this.nurses.clear(); + this.dao = DaoFactory.getInstance().createNurseDAO(); + try { + this.nurses.addAll(this.dao.readAllLocked()); + } catch (SQLException exception) { + exception.printStackTrace(); + } + } + + @FXML + public void handleDelete() { + Nurse selectedItem = this.tableView.getSelectionModel().getSelectedItem(); + if (selectedItem == null) { + return; + } + try { + this.dao.delete(selectedItem.getId()); + } catch (SQLException exception) { + exception.printStackTrace(); + } + + } + + @FXML + public void changeUnlock() { + Nurse selectedItem = this.tableView.getSelectionModel().getSelectedItem(); + if (selectedItem == null) { + return; + } + + try { + selectedItem.setLocked(false); + this.dao.update(selectedItem); + } catch (SQLException exception) { + exception.printStackTrace(); + } + readAllAndShowInTableView(); + } + +} diff --git a/src/main/resources/de/hitec/nhplus/main/MainWindowView.fxml b/src/main/resources/de/hitec/nhplus/main/MainWindowView.fxml index 2c63236..c5316ea 100644 --- a/src/main/resources/de/hitec/nhplus/main/MainWindowView.fxml +++ b/src/main/resources/de/hitec/nhplus/main/MainWindowView.fxml @@ -16,7 +16,14 @@ - + + + + + + + + diff --git a/src/main/resources/de/hitec/nhplus/nurse/AllNurseView.fxml b/src/main/resources/de/hitec/nhplus/nurse/AllNurseView.fxml index 2597997..3a7b76a 100644 --- a/src/main/resources/de/hitec/nhplus/nurse/AllNurseView.fxml +++ b/src/main/resources/de/hitec/nhplus/nurse/AllNurseView.fxml @@ -77,10 +77,11 @@ text="Hinzufügen" />