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 9d4a90644cb3d09d7e6d4dc84501aeb3fc296f03..aa40ea6f80102216bdb14a7f768b0c7cdbecd760 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/controller/BudgetController.java +++ b/src/main/java/no/ntnu/idatt1002/demo/controller/BudgetController.java @@ -103,7 +103,8 @@ public class BudgetController extends FinanceController { try { System.out.println("Just in budget try"); - general = loadBudgetDataFromFile("Budget"); + general = loadBudgetDataFromFile( + "budgets/" + FileHandlingSelectedBudget.readSelectedBudget() + "/Budget"); budgetList = FXCollections.observableArrayList(general.getBudgetItems()); budgetTableView.setItems(budgetList); System.out.println("After loading general"); @@ -113,8 +114,8 @@ public class BudgetController extends FinanceController { } else { budgetRegister = FileHandlingBudgetArchive.readBudgetArchive(""); } - - if (FileHandlingBudget.isNewBudget("Budget")) { + if (FileHandlingBudget.isNewBudget( + "budgets/" + FileHandlingSelectedBudget.readSelectedBudget() + "/Budget")) { returnToMainMenuBtn.setOpacity(0); returnToMainMenuBtn.setDisable(true); daysLeftLbl.setOpacity(0); @@ -280,7 +281,8 @@ public class BudgetController extends FinanceController { */ @Override public void saveDataToFile() throws IOException { - FileHandlingBudget.writeGeneralBudgetToFile("Budget", general); + FileHandlingBudget.writeGeneralBudgetToFile( + "budgets/" + FileHandlingSelectedBudget.readSelectedBudget() + "/Budget", general); } public void updateBudgetRegister(String budgetFolderName) { 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 4b0beeba195ee7934ffa9fb1eaae356019ce06a1..2f0c5bb774f62ff9ae62b52f21ccf4a8df895040 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/controller/IncomeExpenseController.java +++ b/src/main/java/no/ntnu/idatt1002/demo/controller/IncomeExpenseController.java @@ -155,18 +155,23 @@ public class IncomeExpenseController extends FinanceController { //Initialize columns setColumns(); - //Initialize registers and tableview - incomeRegister = loadIncomeDataFromFile("Income"); + try { + //Initialize registers and tableview + incomeRegister = loadIncomeDataFromFile( + "budgets/" + FileHandlingSelectedBudget.readSelectedBudget() + "/Income"); + expenseRegister = loadExpenseDataFromFile( + "budgets/" + FileHandlingSelectedBudget.readSelectedBudget() + "/Expense"); + } catch(IOException ioe) { + showErrorDialogBox("File reading error", "Could not read register", ""); + } + + income = FXCollections.observableArrayList(incomeRegister.getItems()); incomeTableView.setItems(income); - System.out.println("After income rgister "); - expenseRegister = loadExpenseDataFromFile("Expense"); expenses = FXCollections.observableArrayList(expenseRegister.getItems()); expenseTableView.setItems(expenses); - System.out.println("Afte expense register"); - //Setting pie chart values to correspond with the registers incomePieChart.setLegendSide(Side.RIGHT); incomePieChart.setLabelLineLength(10); @@ -474,13 +479,16 @@ public class IncomeExpenseController extends FinanceController { */ @Override public void saveDataToFile() throws IOException { - FileHandling.writeItemRegisterToFile(incomeRegister, "Income"); - FileHandling.writeItemRegisterToFile(expenseRegister, "Expense"); + FileHandling.writeItemRegisterToFile(incomeRegister, + "budgets/" + FileHandlingSelectedBudget.readSelectedBudget() + "/Income"); + FileHandling.writeItemRegisterToFile(expenseRegister, + "budgets/" + FileHandlingSelectedBudget.readSelectedBudget() + "/Expense"); } public void saveDisposableIncomeToFile() throws IOException { String disposableIncomeAsString = String.valueOf(incomeRegister.getTotalSum() - expenseRegister.getTotalSum()); - FileHandlingBudget.writeMaxAmountToFile(FileHandlingSelectedBudget.readSelectedBudget(), disposableIncomeAsString); + FileHandlingBudget.writeMaxAmountToFile( + "budgets/" + FileHandlingSelectedBudget.readSelectedBudget() + "/Budget", disposableIncomeAsString); } /** * Switches scenes back to main menu, by loading a new FXML file and setting the scene to this location. diff --git a/src/main/java/no/ntnu/idatt1002/demo/controller/MainMenu.java b/src/main/java/no/ntnu/idatt1002/demo/controller/MainMenu.java index 554f8199f54cf4d843a46c0d3dd730ea69285697..71a7f39bf61426a3a18aa8d6d85d0e76999849fd 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/controller/MainMenu.java +++ b/src/main/java/no/ntnu/idatt1002/demo/controller/MainMenu.java @@ -24,6 +24,7 @@ import javafx.scene.paint.Color; import javafx.stage.Screen; import javafx.stage.Stage; import no.ntnu.idatt1002.demo.data.Budget.FileHandlingBudget; +import no.ntnu.idatt1002.demo.data.Budget.FileHandlingSelectedBudget; import no.ntnu.idatt1002.demo.data.Budget.GeneralBudget; import no.ntnu.idatt1002.demo.data.Economics.ExpenseCategory; import no.ntnu.idatt1002.demo.data.Economics.ExpenseRegister; @@ -104,9 +105,12 @@ public class MainMenu { public void initialize() { //Initialize all registers + overview try { - incomeRegister = loadIncomeDataFromFile("Income"); - expenseRegister = loadExpenseDataFromFile("Expense"); - generalBudget = loadBudgetDataFromFile("Budget"); + incomeRegister = loadIncomeDataFromFile( + "budgets/" + FileHandlingSelectedBudget.readSelectedBudget() + "/Income"); + expenseRegister = loadExpenseDataFromFile( + "budgets/" + FileHandlingSelectedBudget.readSelectedBudget() + "/Expense"); + generalBudget = loadBudgetDataFromFile( + "budgets/" + FileHandlingSelectedBudget.readSelectedBudget() + "/Budget"); } catch (IOException ioe) { Alert alert = new Alert(AlertType.ERROR); alert.setTitle("Could not load register data"); @@ -164,17 +168,17 @@ public class MainMenu { /** * Method that either reads data from a file with which it fills an income register, if older changes exist, or instantiates an income register if the file is empty. - * @param fileName The name of the file that is being read from. + * @param fileDestination The name of the file that is being read from. * @return An object of type IncomeRegister. * @throws IOException If an error occurs while reading from the file. */ - public IncomeRegister loadIncomeDataFromFile(String fileName) throws IOException { + public IncomeRegister loadIncomeDataFromFile(String fileDestination) throws IOException { //Instantiate incomeRegister - if (FileHandling.isEmpty(fileName)) { + if (FileHandling.isEmpty(fileDestination)) { incomeRegister = new IncomeRegister(); } else { //Load previous income register try { - incomeRegister = FileHandling.readIncomeRegisterFromFile(fileName); + incomeRegister = FileHandling.readIncomeRegisterFromFile(fileDestination); } catch (IOException e) { e.printStackTrace(); } @@ -184,17 +188,17 @@ public class MainMenu { /** * Method that either reads data from a file with which it fills an expense register, if older changes exist, or instantiates an expense register if the file is empty. - * @param fileName The name of the file that is being read from. + * @param fileDestination The name of the file that is being read from. * @return An object of type IncomeRegister. * @throws IOException If an error occurs while reading from the file. */ - public ExpenseRegister loadExpenseDataFromFile(String fileName) throws IOException { + public ExpenseRegister loadExpenseDataFromFile(String fileDestination) throws IOException { //Instantiate expense register - if (FileHandling.isEmpty(fileName)) { + if (FileHandling.isEmpty(fileDestination)) { expenseRegister = new ExpenseRegister(); } else { try { - expenseRegister = FileHandling.readExpenseRegisterFromFile(fileName); + expenseRegister = FileHandling.readExpenseRegisterFromFile(fileDestination); } catch (IOException e) { e.printStackTrace(); } @@ -204,18 +208,18 @@ public class MainMenu { /** * 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. + * @param fileDestination 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 { + public GeneralBudget loadBudgetDataFromFile(String fileDestination) throws IOException { //Instantiate new budget - if (FileHandlingBudget.isEmpty(fileName)) { + if (FileHandlingBudget.isEmpty(fileDestination)) { System.out.println("hey"); generalBudget = new GeneralBudget(1000); } else { //Load previous budget try { - generalBudget = FileHandlingBudget.readGeneralBudgetFromFile(fileName); + generalBudget = FileHandlingBudget.readGeneralBudgetFromFile(fileDestination); } catch (IOException e) { e.printStackTrace(); } diff --git a/src/main/java/no/ntnu/idatt1002/demo/data/Budget/FileHandlingBudget.java b/src/main/java/no/ntnu/idatt1002/demo/data/Budget/FileHandlingBudget.java index 2017bfeaa21b328ae63414bdac4dd96d6861b91c..938ae9c7b65d105d930f5f8683cd7b9e23da8e47 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/data/Budget/FileHandlingBudget.java +++ b/src/main/java/no/ntnu/idatt1002/demo/data/Budget/FileHandlingBudget.java @@ -15,7 +15,7 @@ public class FileHandlingBudget { private static final String filePath = "src/main/resources/budgets/Budget/"; private static final String fileType = ".budget"; - private static final String path = "src/main/resources/budgets/"; + private static final String path = "src/main/resources/"; private static final String type = ".register"; private static final String maxAmount = "maxAmount="; private static final String budgetAmount = "budgetAmount="; @@ -31,7 +31,7 @@ public class FileHandlingBudget { * @throws IOException if an input or output exception occurred. */ public static void writeGeneralBudgetToFile(String fileTitle, GeneralBudget generalBudget) throws IOException { - try (BufferedWriter bw = new BufferedWriter(new FileWriter(path + FileHandlingSelectedBudget.readSelectedBudget() + "/" + fileTitle + fileType))) { + try (BufferedWriter bw = new BufferedWriter(new FileWriter(path + fileTitle + fileType))) { //try (BufferedWriter bw = new BufferedWriter(new FileWriter(filePath + fileTitle + fileType))) { bw.write(generalBudget.toString()); } catch (IOException ex) { @@ -51,7 +51,7 @@ public class FileHandlingBudget { /*try (BufferedReader br = new BufferedReader(new FileReader(filePath + fileTitle + fileType))) { return br.readLine() == null; }*/ - try (BufferedReader br = new BufferedReader(new FileReader(path + FileHandlingSelectedBudget.readSelectedBudget() + "/" + fileTitle + fileType))) { + try (BufferedReader br = new BufferedReader(new FileReader(path + fileTitle + fileType))) { System.out.println("Trying budget isEmpty in: " + path + FileHandlingSelectedBudget.readSelectedBudget() + "/" + fileTitle + fileType); return br.readLine() == null; } @@ -67,7 +67,7 @@ public class FileHandlingBudget { */ public static boolean isNewBudget(String fileTitle) throws IOException { try (BufferedReader br = new BufferedReader( - new FileReader(path + FileHandlingSelectedBudget.readSelectedBudget() + "/" + fileTitle + fileType))) { + new FileReader(path + fileTitle + fileType))) { //new FileReader(filePath + fileTitle + fileType))) { for (int i = 0; i < 2; ++i) { @@ -85,7 +85,7 @@ public class FileHandlingBudget { public static void writeMaxAmountToFile(String fileDestination, String maxAmount) throws IOException { try (BufferedWriter bw = new BufferedWriter(new FileWriter(path - + fileDestination + "/Budget" + fileType))) { + + fileDestination + fileType))) { bw.write("maxAmount=" + maxAmount); System.out.println("Max amount is..."); } catch (IOException ex) { @@ -107,7 +107,7 @@ public class FileHandlingBudget { ExpenseCategory expenseCategory = null; String budgetDescription = null; - try (BufferedReader br = new BufferedReader(new FileReader( System.getProperty("user.dir") + "/" + path + FileHandlingSelectedBudget.readSelectedBudget() + "/" + fileTitle + fileType))) { + try (BufferedReader br = new BufferedReader(new FileReader(path + fileTitle + fileType))) { String line; String nextLine = br.readLine(); while ((line = nextLine) != null) { diff --git a/src/main/java/no/ntnu/idatt1002/demo/data/Budget/FileHandlingBudgetArchive.java b/src/main/java/no/ntnu/idatt1002/demo/data/Budget/FileHandlingBudgetArchive.java index a5fe1c0519913f4f4ab9d5d0c2e16d76d515f3e4..5d0541c29243483c292592c52595a8fbf282eb55 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/data/Budget/FileHandlingBudgetArchive.java +++ b/src/main/java/no/ntnu/idatt1002/demo/data/Budget/FileHandlingBudgetArchive.java @@ -8,6 +8,7 @@ import java.io.FileWriter; import java.io.IOException; //Disable next i dualList før income har blitt lagt til. Kanksje filter som prevneter negativ max amount (if balance < 1) +//MÅTE Å FIKSE TESTER PÅ: LA SELECTEDBUDGET.CURRENT VÆRE EN PARAMETER I METODENE //Disable next i newBudgetbert til maxamount har blitt burkt opp //Sette label til total balance i dualList //HVIS CONTINUE I BUDGET PRESSES, SHOWCONFIRMATION @@ -34,11 +35,10 @@ public class FileHandlingBudgetArchive { public static void writeBudgetRegisterToArchive(BudgetRegister budgetNames) throws IOException { try (BufferedWriter bw = new BufferedWriter(new FileWriter(filePath + "Archive" + fileType))) { - System.out.println(filePath + "Archive.archive"); bw.write(budgetNames.toString()); } catch (IOException ioe) { ioe.printStackTrace(); - throw new IOException("Could not write to file: Archive.archive", ioe); + throw new IOException("Could not write to file: Archive", ioe); } } diff --git a/src/main/java/no/ntnu/idatt1002/demo/data/Economics/FileHandling.java b/src/main/java/no/ntnu/idatt1002/demo/data/Economics/FileHandling.java index a9568b982d635cee356f7834560c20477fc8fa40..27a470035bb9749c496cb704cf5b4689b8826b80 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/data/Economics/FileHandling.java +++ b/src/main/java/no/ntnu/idatt1002/demo/data/Economics/FileHandling.java @@ -18,7 +18,7 @@ import no.ntnu.idatt1002.demo.data.Budget.FileHandlingSelectedBudget; public class FileHandling{ private static final String filePath = "src/main/resources/budgets/Economics/"; - private static final String path = "src/main/resources/budgets/"; + private static final String path = "src/main/resources/"; private static final String fileType = ".register"; private static final String date = "date="; private static final String description = "description="; @@ -35,7 +35,7 @@ public class FileHandling{ */ public static <T extends Item>void writeItemRegisterToFile(final ItemRegister<T> itemRegister, String fileTitle) throws IOException { //try (BufferedWriter bw = new BufferedWriter(new FileWriter(filePath + fileTitle + fileType))) { - try (BufferedWriter bw = new BufferedWriter(new FileWriter(path + FileHandlingSelectedBudget.readSelectedBudget() + "/" + fileTitle + fileType))) { + try (BufferedWriter bw = new BufferedWriter(new FileWriter(path + fileTitle + fileType))) { if (itemRegister.isEmpty()){ bw.write(""); } else{ @@ -61,8 +61,7 @@ public class FileHandling{ return false; } }*/ - - try (BufferedReader br = new BufferedReader(new FileReader(path + FileHandlingSelectedBudget.readSelectedBudget() + "/" + fileTitle + fileType))) { + try (BufferedReader br = new BufferedReader(new FileReader(path + fileTitle + fileType))) { return br.readLine() == null; } } @@ -81,7 +80,7 @@ public class FileHandling{ double amount = 0; boolean reoccuring = false; IncomeCategory incomeCategory = null; - try (BufferedReader br = new BufferedReader(new FileReader(path + FileHandlingSelectedBudget.readSelectedBudget() + "/" + fileTitle + fileType))) { + try (BufferedReader br = new BufferedReader(new FileReader(path + fileTitle + fileType))) { //try (BufferedReader br = new BufferedReader(new FileReader(filePath + fileTitle + fileType))) { String line; String nextLine = br.readLine(); @@ -129,7 +128,7 @@ public class FileHandling{ double amount = 0; boolean reoccuring = false; ExpenseCategory expenseCategory = null; - try (BufferedReader br = new BufferedReader(new FileReader(path + FileHandlingSelectedBudget.readSelectedBudget() + "/" + fileTitle + fileType))) { + try (BufferedReader br = new BufferedReader(new FileReader(path + fileTitle + fileType))) { //try (BufferedReader br = new BufferedReader(new FileReader(filePath + fileTitle + fileType))) { String line; String nextLine = br.readLine();