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