From 9a1e752ea8c7bd0048e3e66eefc1c09467d0f252 Mon Sep 17 00:00:00 2001 From: Harry Linrui XU <xulr0820@hotmail.com> Date: Wed, 19 Apr 2023 23:44:02 +0200 Subject: [PATCH] Added event filter to okBtn. Brings up error message if no budget is selected --- .../controller/SelectBudgetController.java | 18 +++++++++++++++++- src/main/resources/view/SelectBudget.fxml | 11 ++++++++--- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/main/java/no/ntnu/idatt1002/demo/controller/SelectBudgetController.java b/src/main/java/no/ntnu/idatt1002/demo/controller/SelectBudgetController.java index 0bac0407..35a213b5 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/controller/SelectBudgetController.java +++ b/src/main/java/no/ntnu/idatt1002/demo/controller/SelectBudgetController.java @@ -6,6 +6,8 @@ import javafx.collections.ObservableList; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.scene.Node; +import javafx.scene.control.Button; +import javafx.scene.control.Label; import javafx.scene.control.ListView; import javafx.scene.input.MouseButton; import javafx.stage.Stage; @@ -16,6 +18,12 @@ import no.ntnu.idatt1002.demo.data.Budget.FileHandlingSelectedBudget; public class SelectBudgetController { + @FXML + Button okBtn; + + @FXML + private Label errorMsg; + @FXML private ListView<String> budgetListView; @@ -25,6 +33,14 @@ public class SelectBudgetController { @FXML public void initialize() throws IOException { + okBtn.addEventFilter( + ActionEvent.ACTION, event -> { + if (budgetListView.getSelectionModel().getSelectedItem() == null) { + errorMsg.setOpacity(1); + event.consume(); + } + }); + try { if (FileHandlingBudgetArchive.isBudgetRegisterEmpty()) { budgetRegister = new BudgetRegister(); @@ -59,7 +75,7 @@ public class SelectBudgetController { @FXML public void exitWindow(ActionEvent event) throws IOException { - FileHandlingSelectedBudget.updateSelectedBudget(""); + FileHandlingSelectedBudget.clearSelectedBudget(); final Node source = (Node) event.getSource(); ((Stage) source.getScene().getWindow()).close(); } diff --git a/src/main/resources/view/SelectBudget.fxml b/src/main/resources/view/SelectBudget.fxml index ce1c21e1..4cf1f903 100644 --- a/src/main/resources/view/SelectBudget.fxml +++ b/src/main/resources/view/SelectBudget.fxml @@ -10,7 +10,7 @@ <DialogPane prefHeight="300.0" prefWidth="400.0" xmlns="http://javafx.com/javafx/19" xmlns:fx="http://javafx.com/fxml/1" fx:controller="no.ntnu.idatt1002.demo.controller.SelectBudgetController"> <content> - <VBox alignment="CENTER" prefWidth="362.0"> + <VBox alignment="CENTER" prefWidth="362.0" spacing="5.0"> <children> <Label text="Select budget project"> <font> @@ -18,15 +18,20 @@ </font> </Label> <ListView fx:id="budgetListView" prefHeight="200.0" prefWidth="200.0" /> + <Label fx:id="errorMsg" opacity="0.0" text="Please select a budget" textFill="#e60707"> + <font> + <Font name="Lucida Console" size="14.0" /> + </font> + </Label> <HBox alignment="CENTER" prefHeight="100.0" prefWidth="200.0" spacing="5.0"> <children> <Button mnemonicParsing="false" onAction="#exitWindow" prefWidth="70.0" text="Cancel" /> - <Button mnemonicParsing="false" onAction="#selectBudget" prefWidth="70.0" text="OK" /> + <Button fx:id="okBtn" mnemonicParsing="false" onAction="#selectBudget" prefWidth="70.0" text="OK" /> </children> </HBox> <Label text="Click on an entry to select it"> <font> - <Font size="14.0" /> + <Font name="Lucida Console" size="14.0" /> </font> </Label> </children> -- GitLab