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