From 8d70e35aead5ea92cbcfa1440dfb5c7bd352d372 Mon Sep 17 00:00:00 2001 From: Harry Linrui XU <xulr0820@hotmail.com> Date: Wed, 22 Mar 2023 14:50:30 +0100 Subject: [PATCH] Generalised all methods that switch scene in Expenses --- .../demo/controller/ExpensesController.java | 33 ++++++++++--------- src/main/resources/view/Expenses.fxml | 8 ++--- 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/src/main/java/no/ntnu/idatt1002/demo/controller/ExpensesController.java b/src/main/java/no/ntnu/idatt1002/demo/controller/ExpensesController.java index 3eedc713..249eb6f4 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/controller/ExpensesController.java +++ b/src/main/java/no/ntnu/idatt1002/demo/controller/ExpensesController.java @@ -50,6 +50,14 @@ public class ExpensesController { @FXML private ComboBox<String> show; + @FXML + private Button incomeBtn; + + @FXML + private Button overviewBtn; + + @FXML + private Button returnBtn; @FXML private TableColumn<Expense, Double> amountColumn; @@ -183,26 +191,21 @@ public class ExpensesController { FileHandling fileHandling = new FileHandling(); fileHandling.writeItemRegisterToFile(expenseRegister, fileName); } - @FXML - protected void switchIncome(ActionEvent event) throws IOException { - saveDataToFile("Expenses"); - FXMLLoader loader = new FXMLLoader(SceneController.class.getResource("/view/Income.fxml")); - Parent root = loader.load(); - Stage stage = (Stage)((Node)event.getSource()).getScene().getWindow(); - Scene scene = new Scene(root); - stage.setScene(scene); - stage.show(); - } @FXML - public void switchOverview(ActionEvent event) throws IOException { - saveDataToFile("Expenses"); - FXMLLoader loader = new FXMLLoader(SceneController.class.getResource("/view/Overview.fxml")); + public void switchScene(ActionEvent event) throws IOException { + FXMLLoader loader = new FXMLLoader(); + if (event.getSource() == incomeBtn) { + loader.setLocation(SceneController.class.getResource("/view/Income.fxml")); + } else if (event.getSource() == overviewBtn) { + loader.setLocation(SceneController.class.getResource("/view/Overview.fxml")); + } else if (event.getSource() == returnBtn) { + loader.setLocation(SceneController.class.getResource("/view/FirstMenu.fxml")); + } Parent root = loader.load(); - Stage stage = (Stage)((Node)event.getSource()).getScene().getWindow(); + Stage stage = (Stage) ((Node) event.getSource()).getScene().getWindow(); Scene scene = new Scene(root); stage.setScene(scene); stage.show(); - } } diff --git a/src/main/resources/view/Expenses.fxml b/src/main/resources/view/Expenses.fxml index 7985d641..400e0084 100644 --- a/src/main/resources/view/Expenses.fxml +++ b/src/main/resources/view/Expenses.fxml @@ -33,7 +33,7 @@ <top> <HBox BorderPane.alignment="CENTER"> <children> - <Button mnemonicParsing="false" onAction="#switchIncome" text="Return "> + <Button fx:id="returnBtn" mnemonicParsing="false" onAction="#switchScene" text="Return "> <opaqueInsets> <Insets left="100.0" /> </opaqueInsets> @@ -119,14 +119,14 @@ </VBox> <HBox prefHeight="100.0" prefWidth="200.0" GridPane.columnSpan="2" GridPane.rowIndex="2"> <children> - <Button mnemonicParsing="false" onAction="#switchOverview" text="Overview"> + <Button fx:id="overviewBtn" mnemonicParsing="false" onAction="#switchScene" text="Overview"> <HBox.margin> <Insets right="5.0" /> </HBox.margin></Button> - <Button mnemonicParsing="false" onAction="#switchIncome" text="Income" /> + <Button fx:id="incomeBtn" mnemonicParsing="false" onAction="#switchScene" text="Income" /> <Button disable="true" mnemonicParsing="false" text="Expenses" /> <Button disable="true" mnemonicParsing="false" text="Savings" /> - <Button mnemonicParsing="false" onAction="#switchOverview" text="Next"> + <Button disable="true" mnemonicParsing="false" onAction="#switchScene" text="Next"> <HBox.margin> <Insets left="170.0" /> </HBox.margin></Button> -- GitLab