From b0edb7781764875e62dbf336462a962dfcf87e88 Mon Sep 17 00:00:00 2001
From: Harry Linrui XU <xulr0820@hotmail.com>
Date: Sun, 12 Mar 2023 12:37:07 +0100
Subject: [PATCH] Implement initializable in controller. Added methods that
 switch to expenses window and adds expenses

---
 .../idatt1002/demo/view/SceneController.java  | 39 ++++++++++++++-----
 1 file changed, 30 insertions(+), 9 deletions(-)

diff --git a/src/main/java/no/ntnu/idatt1002/demo/view/SceneController.java b/src/main/java/no/ntnu/idatt1002/demo/view/SceneController.java
index 7891fdfa..94b2ad8f 100644
--- a/src/main/java/no/ntnu/idatt1002/demo/view/SceneController.java
+++ b/src/main/java/no/ntnu/idatt1002/demo/view/SceneController.java
@@ -2,43 +2,59 @@ package no.ntnu.idatt1002.demo.view;
 
 import java.io.IOException;
 
+import java.net.URL;
+import java.util.ResourceBundle;
+import javafx.collections.FXCollections;
+import javafx.collections.ObservableList;
 import javafx.event.ActionEvent;
 import javafx.fxml.FXML;
 import javafx.fxml.FXMLLoader;
+import javafx.fxml.Initializable;
 import javafx.scene.Node;
 import javafx.scene.Parent;
 import javafx.scene.Scene;
 import javafx.scene.control.Tab;
 import javafx.scene.control.TableColumn;
 import javafx.scene.control.TableView;
+import javafx.scene.control.cell.PropertyValueFactory;
 import javafx.stage.Stage;
 import jdk.jfr.Category;
 import no.ntnu.idatt1002.demo.data.Expense;
 import no.ntnu.idatt1002.demo.data.ExpenseCategory;
 
-public class SceneController {
+public class SceneController implements Initializable {
 
     private Stage stage;
     private Scene scene;
     private Parent root;
 
     @FXML
-    private TableView<Expense> expenses;
+    private TableColumn<Expense, Double> amount;
 
     @FXML
-    private TableColumn<Expense, String> date;
+    private TableColumn<Expense, ExpenseCategory> category;
 
     @FXML
-    private TableColumn<Expense, Double> amount;
+    private TableColumn<Expense, String> date;
 
     @FXML
-    private TableColumn<Expense, Boolean> recurring;
+    private TableColumn<Expense, String> description;
 
     @FXML
-    private TableColumn<Expense, ExpenseCategory> category;
+    private TableView<Expense> expenseTableView;
 
-    //ouble amount, boolean recurring, ExpenseCategory category, String date) {
-      //  super(amount, recurring, date);
+    ObservableList<Expense> expenses = FXCollections.observableArrayList(
+        new Expense("", 1000.00, true, ExpenseCategory.FOOD, "1/1/23")
+    );
+    @Override
+    public void initialize(URL url, ResourceBundle resourceBundle) {
+        amount.setCellValueFactory(new PropertyValueFactory<Expense, Double>("amount"));
+        category.setCellValueFactory(new PropertyValueFactory<Expense, ExpenseCategory>("category"));
+        date.setCellValueFactory(new PropertyValueFactory<Expense, String>("date"));
+        description.setCellValueFactory(new PropertyValueFactory<Expense, String>("description"));
+
+        expenseTableView.setItems(expenses);
+    }
 
     public void switchStartMenu(ActionEvent event) throws IOException {
         FXMLLoader loader = new FXMLLoader(getClass().getResource("/view/FirstMenu.fxml"));
@@ -64,4 +80,9 @@ public class SceneController {
         scene = new Scene(root);
         stage.setScene(scene);
         stage.show();
-    }}
\ No newline at end of file
+    }
+
+    public void addExpense(ActionEvent event) throws IOException {
+
+    }
+}
\ No newline at end of file
-- 
GitLab