From 39e32d291769e5155c5ad8b3d0423fb9cbe92587 Mon Sep 17 00:00:00 2001 From: Harry Linrui XU <xulr0820@hotmail.com> Date: Mon, 10 Apr 2023 14:50:44 +0200 Subject: [PATCH] Cancelling add will not refresh pie chart --- .../demo/controller/BudgetController.java | 20 ++++++++++++------- .../controller/IncomeExpenseController.java | 7 ++++--- src/main/resources/Economics/Income.register | 8 ++++---- 3 files changed, 21 insertions(+), 14 deletions(-) diff --git a/src/main/java/no/ntnu/idatt1002/demo/controller/BudgetController.java b/src/main/java/no/ntnu/idatt1002/demo/controller/BudgetController.java index ee55a6f0..1325d296 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/controller/BudgetController.java +++ b/src/main/java/no/ntnu/idatt1002/demo/controller/BudgetController.java @@ -82,6 +82,7 @@ public class BudgetController implements FinanceController { //TODO disable return to main menu when creating budget because this is the same view as when you create budeget //TODO make budget item throw exception with negative amount //TODO specify error messgage for when amount is exceeded / duplicate exists + //todo properly close screen so things are saved //Initialize table columns categoryCol.setCellValueFactory(new PropertyValueFactory<BudgetItem, ExpenseCategory>("budgetCategory")); amountCol.setCellValueFactory(new PropertyValueFactory<BudgetItem, Double>("budgetAmount")); @@ -98,13 +99,18 @@ public class BudgetController implements FinanceController { //sum.setText(String.valueOf(general.totalSum())); } - private ObservableList<PieChart.Data> createBudgetPieChart() { //TODO DOESNT WORK IF BUDGETITEM HAS NO BUDGET - return FXCollections.observableArrayList( - new Data("Food", general.getBudgetItem(ExpenseCategory.FOOD).getBudgetAmount()), - new Data("Books", general.getBudgetItem(ExpenseCategory.BOOKS).getBudgetAmount()), - new Data("Clothes", general.getBudgetItem(ExpenseCategory.CLOTHES).getBudgetAmount()), - new Data("Other", general.getBudgetItem(ExpenseCategory.OTHER).getBudgetAmount()) - ); + private ObservableList<PieChart.Data> createBudgetPieChart() throws IllegalArgumentException { //TODO DOESNT WORK IF BUDGETITEM HAS NO BUDGET + try { + return FXCollections.observableArrayList( + new Data("Food", general.getBudgetItem(ExpenseCategory.FOOD).getBudgetAmount()), + new Data("Books", general.getBudgetItem(ExpenseCategory.BOOKS).getBudgetAmount()), + new Data("Clothes", + general.getBudgetItem(ExpenseCategory.CLOTHES).getBudgetAmount()), + new Data("Other", general.getBudgetItem(ExpenseCategory.OTHER).getBudgetAmount()) + ); + } catch(IllegalArgumentException iae) { + return FXCollections.observableArrayList(); + } } /** diff --git a/src/main/java/no/ntnu/idatt1002/demo/controller/IncomeExpenseController.java b/src/main/java/no/ntnu/idatt1002/demo/controller/IncomeExpenseController.java index 8c4ba019..d82af87d 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/controller/IncomeExpenseController.java +++ b/src/main/java/no/ntnu/idatt1002/demo/controller/IncomeExpenseController.java @@ -227,7 +227,6 @@ public class IncomeExpenseController implements FinanceController { if (sizeAf != sizeBf) { refreshTableView(); - refreshPieCharts(); refreshProgress(); } } @@ -334,6 +333,7 @@ public class IncomeExpenseController implements FinanceController { //Adds the new item to the register if (newIncome != null) { incomeRegister.addItem(newIncome); + incomePieChart.setData(createIncomePieChart()); } } @@ -369,11 +369,14 @@ public class IncomeExpenseController implements FinanceController { //Adds the new item to the register if (newExpense != null) { expenseRegister.addItem(newExpense); + expensePieChart.setData(createExpensePieChart()); } } @FXML private void handleEditIncome(Income chosenIncome) { + //Create copy of chosenIncome before changes + //Instantiate FXML loader and loads the popup for adding income FXMLLoader loader = new FXMLLoader(); loader.setLocation(getClass().getResource("/view/AddIncome.fxml")); @@ -398,8 +401,6 @@ public class IncomeExpenseController implements FinanceController { dialog.setTitle(dialogTitle); // Show the Dialog and wait for the user to close it dialog.showAndWait(); - - this.incomePieChart.setData(createIncomePieChart()); } @FXML diff --git a/src/main/resources/Economics/Income.register b/src/main/resources/Economics/Income.register index 7f32fd99..24087f73 100644 --- a/src/main/resources/Economics/Income.register +++ b/src/main/resources/Economics/Income.register @@ -1,10 +1,10 @@ -date=2023-03-31 +date=2023-04-10 amount=499.0 isRecurring=Not recurring -category=SALARY +category=GIFT date=2023-04-10 -amount=100.0 +amount=200.0 isRecurring=Not recurring -category=GIFT +category=SALARY -- GitLab