From aca726dd1a3bba26dff2b1f5718cef9200954219 Mon Sep 17 00:00:00 2001 From: Harry Linrui XU <xulr0820@hotmail.com> Date: Wed, 22 Mar 2023 14:38:44 +0100 Subject: [PATCH] Implemented Filehandling method, which allows registers to be saved to file when switching scenes --- .../demo/controller/ExpensesController.java | 33 ++++++++++++------- 1 file changed, 22 insertions(+), 11 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 d0f1cd4c..3eedc713 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/controller/ExpensesController.java +++ b/src/main/java/no/ntnu/idatt1002/demo/controller/ExpensesController.java @@ -41,9 +41,6 @@ public class ExpensesController { @FXML private Button addBtn; - - @FXML - private TextField descriptionField; @FXML private Button editBtn; @@ -75,11 +72,12 @@ public class ExpensesController { ObservableList<Expense> expenses; @FXML - public void initialize() { + public void initialize() throws IOException { ObservableList<String> filter = FXCollections.observableArrayList("All", "Other", "Food"); show.setItems(filter); show.setValue("All"); + //expenseRegister = loadDataFromFile("wawawiwa"); Expense newExpense = new Expense(99, true, ExpenseCategory.FOOD, "1/1/23"); expenseRegister.addItem(newExpense); expenses = FXCollections.observableArrayList(expenseRegister.getItems()); @@ -90,8 +88,6 @@ public class ExpensesController { descriptionColumn.setCellValueFactory(new PropertyValueFactory<Expense, String>("description")); recurringColumn.setCellValueFactory(new PropertyValueFactory<Expense, Boolean>("recurring")); - //loadDataFromFile(); - refreshObservableList(); expenseTableView.setItems(expenses); } @@ -173,16 +169,23 @@ public class ExpensesController { return alert.showAndWait(); } - public void loadDataFromFile(String fileName) { + public ExpenseRegister loadDataFromFile(String fileName) throws IOException { FileHandling fileHandling = new FileHandling(); - File file = new File(System.getProperty("user.dir") + "/src/main/resources/" + fileName + ".txt"); - if (file.length() == 0) { - + if (fileHandling.isEmpty(fileName)) { + //expenseRegister = new ExpenseRegister(); + } else { + expenseRegister = fileHandling.readExpenseRegisterFromFile(fileName); } + return expenseRegister; + } + public void saveDataToFile(String fileName) throws IOException { + 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(); @@ -191,7 +194,15 @@ public class ExpensesController { stage.show(); } - public void switchOverview(ActionEvent event) { + @FXML + public void switchOverview(ActionEvent event) throws IOException { + saveDataToFile("Expenses"); + FXMLLoader loader = new FXMLLoader(SceneController.class.getResource("/view/Overview.fxml")); + Parent root = loader.load(); + Stage stage = (Stage)((Node)event.getSource()).getScene().getWindow(); + Scene scene = new Scene(root); + stage.setScene(scene); + stage.show(); } } -- GitLab