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

Override inherited methods in BudgetController

parent a068b88f
No related branches found
No related tags found
1 merge request!43Merging frontend-testing into master
......@@ -30,6 +30,7 @@ import no.ntnu.idatt1002.demo.data.Economics.ExpenseCategory;
import java.io.IOException;
import java.util.Optional;
import org.apache.commons.compress.compressors.zstandard.ZstdUtils;
/**
* Controller for budget scene in the application. This controller manages all actions that relates to the budget tableview (add, edit and delete), the switching
......@@ -38,7 +39,7 @@ import java.util.Optional;
* @author Anders Emil Bergan
* @since 24.3.2023
*/
public class BudgetController implements FinanceController {
public class BudgetController extends FinanceController {
private GeneralBudget general;
......@@ -122,7 +123,7 @@ public class BudgetController implements FinanceController {
formatDatePicker();
}
private ObservableList<PieChart.Data> createBudgetPieChart() throws IllegalArgumentException { //
public ObservableList<PieChart.Data> createPieChart() throws IllegalArgumentException { //
ObservableList<PieChart.Data> budgetData = FXCollections.observableArrayList();
List<ExpenseCategory> chosenCategories = general.getChosenBudgetCategories();
......@@ -144,14 +145,16 @@ public class BudgetController implements FinanceController {
);
}*/
private void refreshPieChart() {
this.budgetPieChart.setData(createBudgetPieChart());
@Override
public void refreshPieChart() {
this.budgetPieChart.setData(createPieChart());
}
/**
* Method for disabling the date picker, yet having its opacity at max.
*/
private void formatDatePicker() {
@Override
public void formatDatePicker() {
date.setValue(LocalDate.now());
date.setDisable(true);
date.setStyle("-fx-opacity: 1");
......@@ -251,26 +254,13 @@ public class BudgetController implements FinanceController {
* Method for synching the register with the tableview. The observable list to which the tableview is set, is being refilled with all the entries
* in the register, keeping it updated with new changes.
*/
@Override
public void refreshTableView(){
this.budgetList.setAll(general.getBudgetItems());
//Refreshing the sum of the amounts of the budget
//this.sum.setText(String.valueOf(general.totalSum()));
}
/**
* Returns an optional, which is a popup alert box, asking for confirmation for deleting an entry.
* @return An alert box, asking for confirmation for deleting the selected entry of the tableview.
*/
@Override
public Optional<ButtonType> showConfirmationDialog(String title, String header, String content) {
Alert alert = new Alert(Alert.AlertType.CONFIRMATION);
alert.setTitle("Confirm Delete");
alert.setHeaderText("Delete Confirmation");
alert.setContentText("Are you sure you would like to delete the selected entry?");
return alert.showAndWait();
}
/**
* Saves the changes made to the tableview by writing the information to a file.
*
......@@ -281,44 +271,11 @@ public class BudgetController implements FinanceController {
FileHandlingBudget.writeGeneralBudgetToFile("Budget", general);
}
/**
* Displays an alert box of type error, informing of a custom error.
*/
private void showErrorDialogBox(String title, String header, String content) {
Alert alert = new Alert(AlertType.ERROR);
alert.setTitle(title);
alert.setHeaderText(header);
alert.setContentText(content);
alert.showAndWait();
}
/**
* Method that either reads data from a file with which it fills a budget register, if this is an old budget, or instantiates a budget register if this is a new budget.
* @param fileName The name of the file that is being read from.
* @return An object of type GeneralBudget.
* @throws IOException If an error occurs while reading from the file.
*/
public GeneralBudget loadBudgetDataFromFile(String fileName) throws IOException {
//Instantiate new budget
if (FileHandlingBudget.isEmpty(fileName)) {
general = new GeneralBudget(1000);
//throws new IOException("Not valid budget")
} else { //Load previous budget
try {
general = FileHandlingBudget.readGeneralBudgetFromFile(fileName);
} catch (IOException e) {
showErrorDialogBox("File error", "Error in reading from fil", "An error occurred"
+ "when reading GeneralBudget from the file");
}
}
return general;
}
/**
* Switches scene, by loading a new FXML file and setting the scene to this location.
* @param event A button click on the return to main menu button
*/
@FXML
@Override
public void switchScene(ActionEvent event) {
FXMLLoader loader = new FXMLLoader();
try {
......@@ -326,11 +283,11 @@ public class BudgetController implements FinanceController {
//Adds unused categories to the table
general.addUnusedCategories();
//Always saving the data when switching scenes
saveDataToFile();
loader.setLocation(getClass().getResource("/view/MainMenuNew.fxml"));
} else if (event.getSource() == backBtn) {
loader.setLocation(getClass().getResource("/view/dualList.fxml"));
}
saveDataToFile();
Parent root = loader.load();
Stage stage = (Stage) ((Node) event.getSource()).getScene().getWindow();
Scene scene = new Scene(root);
......
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