diff --git a/src/main/java/no/ntnu/idatt1002/demo/controller/FinanceController.java b/src/main/java/no/ntnu/idatt1002/demo/controller/FinanceController.java index 2c082fdf75959fb3d23577e74b835a809086c32e..c0d6a7ddc4dd33eb864d24b84ffefa8da56d8525 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/controller/FinanceController.java +++ b/src/main/java/no/ntnu/idatt1002/demo/controller/FinanceController.java @@ -46,8 +46,7 @@ public interface FinanceController { /** * Saves the changes made to the tableview by writing the information to a file. - * @param fileName The name of the file that is written to. * @throws IOException If an error occurs while writing to the file. */ - void saveDataToFile(String fileName) throws IOException; + void saveDataToFile() throws IOException; } 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 95b78b472b8e85f5bc9215c0f589c4d37ec8818c..e51d3b3a18a546b8278a8660eca1b502840bb9b3 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/controller/IncomeExpenseController.java +++ b/src/main/java/no/ntnu/idatt1002/demo/controller/IncomeExpenseController.java @@ -142,17 +142,17 @@ public class IncomeExpenseController implements FinanceController { expenseTableView.setItems(expenses); incomePieChart.getData().addAll(createIncomePyChart()); - expensePieChart.getData().addAll(createExpensePyChart()); + incomePieChart.setTitle("Income"); + incomePieChart.setLegendSide(Side.RIGHT); - incomePieChart.setLegendSide(Side.LEFT); + expensePieChart.setData(createExpensePyChart()); expensePieChart.setTitle("Expenses"); - expensePieChart.setLegendSide(Side.LEFT); + expensePieChart.setLegendSide(Side.RIGHT); expensePieChart.setLabelLineLength(10); //Initialize sum field under the tableview // inSum.setText(String.valueOf(incomeRegister.getTotalSum())); //expSum.setText(String.valueOf(expenseRegister.getTotalSum())); - } private void setColumns() { @@ -170,33 +170,19 @@ public class IncomeExpenseController implements FinanceController { } private ObservableList<PieChart.Data> createExpensePyChart() { - ObservableList<PieChart.Data> expensePieChartData = - FXCollections.observableArrayList( - new PieChart.Data("Food", expenseRegister.getExpenseByCategory(ExpenseCategory.FOOD).getTotalSum()), - new PieChart.Data("Books", expenseRegister.getExpenseByCategory(ExpenseCategory.BOOKS).getTotalSum()), - new PieChart.Data("Clothes", expenseRegister.getExpenseByCategory(ExpenseCategory.CLOTHES).getTotalSum()), - new PieChart.Data("Other", expenseRegister.getExpenseByCategory(ExpenseCategory.OTHER).getTotalSum()) - ); - expensePieChartData.forEach(data -> - data.nameProperty().bind( - Bindings.concat( - data.getName() + " " + data.pieValueProperty()) - )); - return expensePieChartData; + return FXCollections.observableArrayList( + new Data("Food", expenseRegister.getExpenseByCategory(ExpenseCategory.FOOD).getTotalSum()), + new Data("Books", expenseRegister.getExpenseByCategory(ExpenseCategory.BOOKS).getTotalSum()), + new Data("Clothes", expenseRegister.getExpenseByCategory(ExpenseCategory.CLOTHES).getTotalSum()), + new Data("Other", expenseRegister.getExpenseByCategory(ExpenseCategory.OTHER).getTotalSum()) + ); } private ObservableList<PieChart.Data> createIncomePyChart() { - ObservableList<PieChart.Data> incomePieChartData = - FXCollections.observableArrayList( - new PieChart.Data("Food", incomeRegister.getIncomeByCategory(IncomeCategory.GIFT).getTotalSum()), - new PieChart.Data("Books", incomeRegister.getIncomeByCategory(IncomeCategory.SALARY).getTotalSum()) - ); - incomePieChartData.forEach(data -> - data.nameProperty().bind( - Bindings.concat( - data.getName() + " " + data.pieValueProperty()) - )); - return incomePieChartData; + return FXCollections.observableArrayList( + new Data("Food", incomeRegister.getIncomeByCategory(IncomeCategory.STUDENT_LOAN).getTotalSum()), + new Data("Books", incomeRegister.getIncomeByCategory(IncomeCategory.SALARY).getTotalSum()) + ); } /** @@ -226,7 +212,6 @@ public class IncomeExpenseController implements FinanceController { */ @Override public void handleDeleteBtn(ActionEvent event) { - } /** @@ -236,7 +221,11 @@ public class IncomeExpenseController implements FinanceController { */ @Override public void refreshTableView() { + this.income.setAll(incomeRegister.getItems()); + //this.sum.setText(String.valueOf(incomeRegister.getTotalSum())); + this.expenses.setAll(expenseRegister.getItems()); + //this.sum.setText(String.valueOf(incomeRegister.getTotalSum())); } /** @@ -252,13 +241,12 @@ public class IncomeExpenseController implements FinanceController { /** * Saves the changes made to the tableview by writing the information to a file. - * - * @param fileName The name of the file that is written to. * @throws IOException If an error occurs while writing to the file. */ @Override - public void saveDataToFile(String fileName) throws IOException { - + public void saveDataToFile() throws IOException { + fileHandling.writeItemRegisterToFile(incomeRegister, "Income"); + fileHandling.writeItemRegisterToFile(expenseRegister, "Expense"); } /** @@ -327,6 +315,7 @@ public class IncomeExpenseController implements FinanceController { */ @FXML private void returnToMainMenu(javafx.event.ActionEvent event) throws IOException { + saveDataToFile(); FXMLLoader loader = new FXMLLoader(); loader.setLocation(getClass().getResource("/view/MainMenuNew.fxml")); diff --git a/src/main/resources/Economics/Expense.register b/src/main/resources/Economics/Expense.register index 8104fc76275dd1266765a39854b046291556961f..3e3f3d5fa15f46231db748edd65480d6aa509212 100644 --- a/src/main/resources/Economics/Expense.register +++ b/src/main/resources/Economics/Expense.register @@ -8,3 +8,8 @@ amount=100.0 isRecurring=Recurring category=OTHER +date=2023-03-30 +amount=200.0 +isRecurring=Not recurring +category=BOOKS + diff --git a/src/main/resources/view/IncomeAndExpenses.fxml b/src/main/resources/view/IncomeAndExpenses.fxml index 212803d74647fa0f5a1a29ae61abae17435cd78d..c251b4969bca23ef12f36f1d8a6dc68c4606b126 100644 --- a/src/main/resources/view/IncomeAndExpenses.fxml +++ b/src/main/resources/view/IncomeAndExpenses.fxml @@ -189,8 +189,16 @@ </VBox> </children> </GridPane> - <PieChart fx:id="incomePieChart" prefHeight="175.0" prefWidth="175.0" GridPane.columnIndex="1" /> - <PieChart fx:id="expensePieChart" prefHeight="175.0" prefWidth="175.0" GridPane.columnIndex="1" GridPane.rowIndex="1" /> + <Pane GridPane.columnIndex="1"> + <children> + <PieChart fx:id="incomePieChart" layoutX="4.0" layoutY="-18.0" legendSide="RIGHT" maxHeight="226.0" maxWidth="512.0" prefHeight="214.0" prefWidth="350.0" /> + </children> + </Pane> + <Pane GridPane.columnIndex="1" GridPane.rowIndex="1"> + <children> + <PieChart fx:id="expensePieChart" layoutX="-2.0" layoutY="-27.0" legendSide="RIGHT" maxHeight="247.0" maxWidth="519.0" prefHeight="227.0" prefWidth="350.0" /> + </children> + </Pane> </children> <padding> <Insets left="10.0" />