Skip to content
Snippets Groups Projects
Commit ed375ce9 authored by Harry Linrui XU's avatar Harry Linrui XU
Browse files

Created new Expense Controller, renamed old Expense Controller to...

Created new Expense Controller, renamed old Expense Controller to ExpensesController, and created two other new controller classes for testing
parent 7ba801f4
No related branches found
No related tags found
10 merge requests!43Merging frontend-testing into master,!38"Made progressbar dynamic in accordance to spending. Added balance field....,!37Made the sub progress bars respond to changes in expense,!32Added input validation to add dialog boxes.,!30Redesigned scenes,!29Redesigned scenes,!28Redesigned scenes,!26Redesigned Main menu and expense/income windows,!24Merging frontend-testing with master,!23Merging frontend-testing and master
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 {
}
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) {
}
}
......@@ -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();
}
}
package no.ntnu.idatt1002.demo.data.Economics;
public class ExpenseRepository {
}
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;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment