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

Created and implemented getChosenBudgetCategories method + Disabled/Removed...

Created and implemented getChosenBudgetCategories method + Disabled/Removed buttons depending on which budget window is shown
parent 0b44d42e
No related branches found
No related tags found
Loading
......@@ -98,75 +98,51 @@ public class BudgetController implements FinanceController {
amountCol.setCellValueFactory(new PropertyValueFactory<BudgetItem, Double>("budgetAmount"));
descriptionCol.setCellValueFactory(new PropertyValueFactory<BudgetItem, String>("budgetDescription"));
/*FileHandlingBudget fileHandlingBudget = new FileHandlingBudget();
try {
if (fileHandlingBudget.isEmpty("Budget")) {
general = loadBudgetDataFromFile("Budget");
budgetList = FXCollections.observableArrayList(general.getBudgetItems());
budgetTableView.setItems(budgetList);
if (FileHandlingBudget.isNewBudget("Budget")) {
returnBtn.setOpacity(0);
returnBtn.setDisable(true);
} else {
addBtn.setDisable(true);
editBtn.setDisable(true);
deleteBtn.setDisable(true);
refreshPieChart();
//addBtn.setDisable(true);
//editBtn.setDisable(true);
//deleteBtn.setDisable(true);
backBtn.setDisable(true);
continueBtn.setDisable(true);
backBtn.setOpacity(0);
continueBtn.setOpacity(0);
}
} catch(IOException ioe) {
showErrorDialogBox("File reading error", "Error in reading file", "Could not"
+ "read from the Budget file");
}*/
try { //Initialize registers, tableview and pie charts
//if (FileHandlingBudget.hasBudgetSet - from line 4/5, so after the general amount and such) {
//add, edit and delete buttons are removed.
//hvis linje fire er tom, instansier et nytt register, hvis ikke, last ned fra fil
general = loadBudgetDataFromFile("Budget");
budgetList = FXCollections.observableArrayList(general.getBudgetItems());
budgetTableView.setItems(budgetList);
refreshPieChart();
} catch(IOException ioe) {
showErrorDialogBox("File reading error", "Error in reading from file", "Could not read"
+ " registers from file");
}
setButtons();
formatDatePicker();
//Initialize sum field under the tableview
//sum.setText(String.valueOf(general.totalSum()));
}
/**
* Method that disables or removes button, based on where the budget window
* is being used.
*/
private void setButtons() {
try {
if (FileHandlingBudget.isEmpty("Budget")) {
returnBtn.setOpacity(0);
} else {
addBtn.setDisable(true);
editBtn.setDisable(true);
deleteBtn.setDisable(true);
backBtn.setOpacity(0);
continueBtn.setOpacity(0);
}
private ObservableList<PieChart.Data> createBudgetPieChart() throws IllegalArgumentException { //
ObservableList<PieChart.Data> budgetData = FXCollections.observableArrayList();
List<ExpenseCategory> chosenCategories = general.getChosenBudgetCategories();
} catch(IOException ioe) {
showErrorDialogBox("File reading error", "Error in reading file", "Could not"
+ "read from the Budget file");
//Only adds the budget data for chosen categories to the pie chart
for (ExpenseCategory category : chosenCategories) {
budgetData.add(new Data(category.toString().substring(0, 1).toUpperCase().
concat(category.toString().substring(1)),
general.getBudgetItem(category).getBudgetAmount()));
}
return budgetData;
}
private ObservableList<PieChart.Data> createBudgetPieChart() { //
/*private ObservableList<PieChart.Data> createBudgetPieChart() {
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 void refreshPieChart() {
this.budgetPieChart.setData(createBudgetPieChart());
......@@ -238,10 +214,7 @@ public class BudgetController implements FinanceController {
try {
general.addToBudgetBudgetItem(item);
} catch(IllegalArgumentException e) {
String title = "Budget amount exceeded/Category already exists";
String header = "Your budget exceeds the max limit OR a budget item of the same category already exists in the table";
String content = "The total budget sum must be below " + general.getMaxAmount() + " OR Each category can only have one entry in the budget table";
showErrorDialogBox(title, header, content);
showErrorDialogBox(e.getMessage(), e.getMessage(), e.getMessage());
}
}
//Updates the tableview using the register
......
......@@ -194,6 +194,17 @@ public class GeneralBudget {
return budgetItems.stream().anyMatch(budgetItem -> budgetItem.getBudgetCategory().equals(category));
}
/**
* Method that gets the chosen budget categories. Returns the chosen categories in a list.
* @return A list of the chosen budget categories.
*/
public List<ExpenseCategory> getChosenBudgetCategories() {
return Arrays.stream(ExpenseCategory.values()).toList().
stream().filter(this::hasBudgetCategory).toList();
}
/**
* This method checks if there are unused categories in the budget.
......
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