From ed375ce95eb69678493c2b25efcdcbcbb70998aa Mon Sep 17 00:00:00 2001
From: Harry Linrui XU <xulr0820@hotmail.com>
Date: Wed, 15 Mar 2023 17:53:34 +0100
Subject: [PATCH] Created new Expense Controller, renamed old Expense
 Controller to ExpensesController, and created two other new controller
 classes for testing

---
 .../demo/controller/ExpenseController.java    | 83 +---------------
 .../demo/controller/ExpensesController.java   | 98 +++++++++++++++++++
 .../demo/controller/MenuController.java       | 38 +++----
 .../data/Economics/ExpenseRepository.java     |  5 -
 .../demo/view/ExpenseRepository.java          | 22 +++++
 5 files changed, 142 insertions(+), 104 deletions(-)
 create mode 100644 src/main/java/no/ntnu/idatt1002/demo/controller/ExpensesController.java
 delete mode 100644 src/main/java/no/ntnu/idatt1002/demo/data/Economics/ExpenseRepository.java
 create mode 100644 src/main/java/no/ntnu/idatt1002/demo/view/ExpenseRepository.java

diff --git a/src/main/java/no/ntnu/idatt1002/demo/controller/ExpenseController.java b/src/main/java/no/ntnu/idatt1002/demo/controller/ExpenseController.java
index 06c46ca7..5d3ad79e 100644
--- a/src/main/java/no/ntnu/idatt1002/demo/controller/ExpenseController.java
+++ b/src/main/java/no/ntnu/idatt1002/demo/controller/ExpenseController.java
@@ -1,83 +1,2 @@
-package no.ntnu.idatt1002.demo.controller;
-
-import java.io.IOException;
-import java.io.Serializable;
-
-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.Scene;
-import javafx.scene.control.Button;
-import javafx.scene.control.ComboBox;
-import javafx.scene.control.TableColumn;
-import javafx.scene.control.TableView;
-import javafx.scene.control.cell.PropertyValueFactory;
-import javafx.stage.Modality;
-import javafx.stage.Stage;
-import no.ntnu.idatt1002.demo.data.Economics.Expense;
-import no.ntnu.idatt1002.demo.data.Economics.ExpenseCategory;
-
-public class ExpenseController implements Initializable {
-
-  @FXML
-  private Button add;
-
-  @FXML
-  private ComboBox<?> show;
-
-  @FXML
-  private TableColumn<Expense, Double> amount;
-
-  @FXML
-  private TableColumn<Expense, ExpenseCategory> category;
-
-  @FXML
-  private TableColumn<Expense, String> date;
-
-  @FXML
-  private TableColumn<Expense, String> description;
-
-  @FXML
-  private TableView<Expense> expenseTableView;
-
-  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 addExpense(ActionEvent event) throws IOException {
-    FXMLLoader loader = new FXMLLoader(SceneController.class.getResource("/view/addExpense.fxml"));
-    Scene newScene = new Scene(loader.load());
-    Stage newStage = new Stage();
-    newStage.setScene(newScene);
-    newStage.setResizable(false);
-    newStage.initModality(Modality.APPLICATION_MODAL);
-
-    newStage.show();
-  }
-
-  public void editExpense(ActionEvent event) throws  IOException {
-
-  }
-
-  public void deleteExpense(ActionEvent event) throws  IOException {
-
-  }
-
-  public void switchIncome(ActionEvent event) {
-  }
+package no.ntnu.idatt1002.demo.controller;public class ExpenseController {
 }
diff --git a/src/main/java/no/ntnu/idatt1002/demo/controller/ExpensesController.java b/src/main/java/no/ntnu/idatt1002/demo/controller/ExpensesController.java
new file mode 100644
index 00000000..d46beb0e
--- /dev/null
+++ b/src/main/java/no/ntnu/idatt1002/demo/controller/ExpensesController.java
@@ -0,0 +1,98 @@
+package no.ntnu.idatt1002.demo.controller;
+
+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.Scene;
+import javafx.scene.control.Button;
+import javafx.scene.control.ComboBox;
+import javafx.scene.control.TableColumn;
+import javafx.scene.control.TableView;
+import javafx.scene.control.cell.PropertyValueFactory;
+import javafx.stage.Modality;
+import javafx.stage.Stage;
+import no.ntnu.idatt1002.demo.data.Economics.Expense;
+import no.ntnu.idatt1002.demo.data.Economics.ExpenseCategory;
+import no.ntnu.idatt1002.demo.view.ExpenseRepository;
+
+public class ExpensesController implements Initializable {
+  @FXML
+  private Button add;
+
+  @FXML
+  private Button edit;
+
+  @FXML
+  private Button delete;
+
+  @FXML
+  private ComboBox<?> show;
+
+  @FXML
+  private TableColumn<Expense, Double> amount;
+
+  @FXML
+  private TableColumn<Expense, ExpenseCategory> category;
+
+  @FXML
+  private TableColumn<Expense, String> date;
+
+  @FXML
+  private TableColumn<Expense, String> description;
+
+  @FXML
+  private TableColumn<Expense, Boolean> recurring;
+
+  @FXML
+  private TableView<Expense> expenseTableView;
+
+
+
+  @Override
+  public void initialize(URL url, ResourceBundle resourceBundle) {
+    ObservableList<Expense> expenses = FXCollections.observableArrayList(ExpenseRepository.getExpenses());
+
+    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"));
+    recurring.setCellValueFactory(new PropertyValueFactory<Expense, Boolean>("recurring"));
+
+    expenseTableView.setItems(expenses);
+  }
+
+  public void add(ActionEvent event) throws IOException {
+    FXMLLoader loader = new FXMLLoader(SceneController.class.getResource("/view/addExpense.fxml"));
+    Scene newScene = new Scene(loader.load());
+    Stage newStage = new Stage();
+    newStage.setScene(newScene);
+    newStage.setResizable(false);
+    newStage.initModality(Modality.APPLICATION_MODAL);
+
+    newStage.show();
+  }
+
+  public void edit(ActionEvent event) throws  IOException {
+
+  }
+
+  public void delete(ActionEvent event) throws  IOException {
+
+  }
+
+  public void switchIncome(ActionEvent event) {
+
+
+  }
+
+  public void switchOverview(ActionEvent event) {
+
+  }
+}
diff --git a/src/main/java/no/ntnu/idatt1002/demo/controller/MenuController.java b/src/main/java/no/ntnu/idatt1002/demo/controller/MenuController.java
index 87469182..983dff9c 100644
--- a/src/main/java/no/ntnu/idatt1002/demo/controller/MenuController.java
+++ b/src/main/java/no/ntnu/idatt1002/demo/controller/MenuController.java
@@ -34,29 +34,33 @@ public class MenuController implements Initializable {
     private ProgressBar progressbar;
 
 
+  @FXML
+  public void switchStartMenu(ActionEvent event) throws IOException {
+    FXMLLoader loader = new FXMLLoader(SceneController.class.getResource("/view/FirstMenu.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 switchExpenses(ActionEvent event) throws IOException {
+    FXMLLoader loader = new FXMLLoader(SceneController.class.getResource("/view/Expenses.fxml"));
+    Parent root = loader.load();
+    Stage stage = (Stage)((Node)event.getSource()).getScene().getWindow();
+    Scene scene = new Scene(root);
+    stage.setScene(scene);
+    stage.show();
+  }
 
   @Override
   public void initialize(URL url, ResourceBundle resourceBundle) {
 
   }
 
-  @FXML
-  public void switchStartMenu(ActionEvent event) throws IOException {
-      FXMLLoader loader = new FXMLLoader(SceneController.class.getResource("/view/FirstMenu.fxml"));
-      Parent root = loader.load();
-      Stage stage = (Stage)((Node)event.getSource()).getScene().getWindow();
-      Scene scene = new Scene(root);
-      stage.setScene(scene);
-      stage.show();
-  }
 
 
-  public void switchExpenses(ActionEvent event) throws IOException {
-      FXMLLoader loader = new FXMLLoader(SceneController.class.getResource("/view/Expenses.fxml"));
-      Parent root = loader.load();
-      Stage stage = (Stage)((Node)event.getSource()).getScene().getWindow();
-      Scene scene = new Scene(root);
-      stage.setScene(scene);
-      stage.show();
-  }
+
+
 }
diff --git a/src/main/java/no/ntnu/idatt1002/demo/data/Economics/ExpenseRepository.java b/src/main/java/no/ntnu/idatt1002/demo/data/Economics/ExpenseRepository.java
deleted file mode 100644
index 4ccc19c0..00000000
--- a/src/main/java/no/ntnu/idatt1002/demo/data/Economics/ExpenseRepository.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package no.ntnu.idatt1002.demo.data.Economics;
-
-public class ExpenseRepository {
-
-}
diff --git a/src/main/java/no/ntnu/idatt1002/demo/view/ExpenseRepository.java b/src/main/java/no/ntnu/idatt1002/demo/view/ExpenseRepository.java
new file mode 100644
index 00000000..e6fb5b2c
--- /dev/null
+++ b/src/main/java/no/ntnu/idatt1002/demo/view/ExpenseRepository.java
@@ -0,0 +1,22 @@
+package no.ntnu.idatt1002.demo.view;
+
+import java.util.ArrayList;
+import no.ntnu.idatt1002.demo.data.Economics.Expense;
+import no.ntnu.idatt1002.demo.data.Economics.ExpenseCategory;
+import no.ntnu.idatt1002.demo.data.Economics.ItemRegister;
+
+public class ExpenseRepository {
+  public static ArrayList<Expense> getExpenses () {
+    ArrayList<Expense> expenses = new ArrayList<>();
+    expenses.add(new Expense("free", 100, true, ExpenseCategory.FOOD, "1/1/23"));
+    expenses.add(new Expense(149, true, ExpenseCategory.FOOD, "1/1/23"));
+    expenses.add(new Expense("Not free", 1000, true, ExpenseCategory.CLOTHES, "2/1/23"));
+    expenses.add(new Expense(200, true, ExpenseCategory.BOOKS, "3/1/23"));
+
+    return expenses;
+  }
+
+
+  }
+
+
-- 
GitLab