From 2c8fae1edffddf773661fd8d7f358dcbbd00360c Mon Sep 17 00:00:00 2001
From: Harry Linrui XU <xulr0820@hotmail.com>
Date: Wed, 19 Apr 2023 22:17:07 +0200
Subject: [PATCH] 
 src/main/java/no/ntnu/idatt1002/demo/data/Budget/FileHandlingSelectedBudget.java

---
 .../demo/controller/BudgetController.java     | 28 +++++--
 .../controller/CreateBudgetController.java    |  2 +-
 .../controller/IncomeExpenseController.java   | 10 +--
 .../idatt1002/demo/controller/MainMenu.java   |  3 +
 .../demo/controller/SceneController.java      | 10 +--
 .../controller/SelectBudgetController.java    | 22 +++---
 .../demo/data/Budget/FileHandlingBudget.java  | 45 +++++------
 .../Budget/FileHandlingBudgetArchive.java     | 75 ++++++++++++++++++-
 .../demo/data/Economics/FileHandling.java     | 10 +--
 src/main/resources/Archive.txt                |  5 +-
 src/main/resources/CurrentFile.txt            |  2 +-
 src/main/resources/Economics/Expense.register |  4 +-
 src/main/resources/Economics/Income.register  |  5 --
 src/main/resources/view/MainMenuNew.fxml      |  2 +-
 src/main/resources/view/newBudgetBudgert.fxml |  9 ---
 15 files changed, 144 insertions(+), 88 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 12a62178..4742a387 100644
--- a/src/main/java/no/ntnu/idatt1002/demo/controller/BudgetController.java
+++ b/src/main/java/no/ntnu/idatt1002/demo/controller/BudgetController.java
@@ -1,11 +1,7 @@
 package no.ntnu.idatt1002.demo.controller;
 
-import java.nio.file.Files;
-import java.nio.file.Paths;
 import java.time.LocalDate;
-import java.util.Arrays;
 import java.util.List;
-import java.util.stream.Collectors;
 import javafx.collections.FXCollections;
 import javafx.collections.ObservableList;
 import javafx.event.ActionEvent;
@@ -17,20 +13,18 @@ import javafx.scene.Scene;
 import javafx.scene.chart.PieChart;
 import javafx.scene.chart.PieChart.Data;
 import javafx.scene.control.*;
-import javafx.scene.control.Alert.AlertType;
 import javafx.scene.control.cell.PropertyValueFactory;
 import javafx.scene.text.Text;
 import javafx.stage.Modality;
 import javafx.stage.Stage;
 import no.ntnu.idatt1002.demo.data.Budget.BudgetItem;
+import no.ntnu.idatt1002.demo.data.Budget.BudgetRegister;
 import no.ntnu.idatt1002.demo.data.Budget.FileHandlingBudget;
 import no.ntnu.idatt1002.demo.data.Budget.GeneralBudget;
-import no.ntnu.idatt1002.demo.data.Economics.Expense;
 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
@@ -88,6 +82,8 @@ public class BudgetController extends FinanceController {
     @FXML
     private Label daysLeftLbl;
 
+    BudgetRegister budgetRegister = new BudgetRegister();
+
 
     /**
      * Initializes the budget register, the observable budget list and the tableview, along with the values of the dropbox used for filtering the tableview.
@@ -108,6 +104,13 @@ public class BudgetController extends FinanceController {
             budgetList = FXCollections.observableArrayList(general.getBudgetItems());
             budgetTableView.setItems(budgetList);
             System.out.println("After loading general");
+
+            if (FileHandlingBudget.isBudgetRegisterEmpty()) {
+                budgetRegister = new BudgetRegister();
+            } else {
+                budgetRegister = FileHandlingBudget.readBudgetArchive("");
+            }
+
             if (FileHandlingBudget.isNewBudget("Budget")) {
                 returnBtn.setOpacity(0);
                 returnBtn.setDisable(true);
@@ -277,6 +280,16 @@ public class BudgetController extends FinanceController {
         FileHandlingBudget.writeGeneralBudgetToFile("Budget", general);
     }
 
+    public void updateBudgetRegister(String budgetFolderName) {
+        try {
+            budgetRegister.addBudgetName(budgetFolderName);
+            FileHandlingBudget.writeBudgetRegisterToArchive(budgetRegister);
+        } catch(IOException ioe) {
+            showErrorDialogBox(ioe.getMessage(), ioe.getMessage(), ioe.getMessage());
+        }
+
+    }
+
     /**
      * 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
@@ -291,6 +304,7 @@ public class BudgetController extends FinanceController {
                 general.addUnusedCategories();
                 System.out.println(general.getBudgetItems().size());
                 //Always saving the data when switching scenes
+                updateBudgetRegister(FileHandlingBudget.readSelectedBudget());
                 loader.setLocation(getClass().getResource("/view/MainMenuNew.fxml"));
             } else if (event.getSource() == backBtn) {
                 loader.setLocation(getClass().getResource("/view/dualList.fxml"));
diff --git a/src/main/java/no/ntnu/idatt1002/demo/controller/CreateBudgetController.java b/src/main/java/no/ntnu/idatt1002/demo/controller/CreateBudgetController.java
index 036ff19f..84a35ab4 100644
--- a/src/main/java/no/ntnu/idatt1002/demo/controller/CreateBudgetController.java
+++ b/src/main/java/no/ntnu/idatt1002/demo/controller/CreateBudgetController.java
@@ -125,7 +125,7 @@ public class CreateBudgetController {
 
   public void updateCurrentFile(String currentMonth, String budgetName) {
     try {
-      FileHandlingBudget.updateCurrentFile(currentMonth + budgetName);
+      FileHandlingBudget.updateSelectedBudget(currentMonth + budgetName);
     } catch (IOException ioe) {
       showErrorMsgBox(ioe.getMessage(), ioe.getMessage(), ioe.getMessage());
     }
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 db0f7952..246e9b2e 100644
--- a/src/main/java/no/ntnu/idatt1002/demo/controller/IncomeExpenseController.java
+++ b/src/main/java/no/ntnu/idatt1002/demo/controller/IncomeExpenseController.java
@@ -13,8 +13,6 @@ import javafx.scene.Parent;
 import javafx.scene.Scene;
 import javafx.scene.chart.PieChart;
 import javafx.scene.chart.PieChart.Data;
-import javafx.scene.control.Alert;
-import javafx.scene.control.Alert.AlertType;
 import javafx.scene.control.Button;
 import javafx.scene.control.ButtonType;
 import javafx.scene.control.ComboBox;
@@ -22,7 +20,6 @@ import javafx.scene.control.DatePicker;
 import javafx.scene.control.Dialog;
 import javafx.scene.control.Label;
 import javafx.scene.control.MenuItem;
-import javafx.scene.control.ProgressBar;
 import javafx.scene.control.TableColumn;
 import javafx.scene.control.TableView;
 import javafx.scene.control.cell.PropertyValueFactory;
@@ -478,7 +475,7 @@ public class IncomeExpenseController extends FinanceController {
 
   public void saveDisposableIncomeToFile() throws IOException {
     String disposableIncomeAsString = String.valueOf(incomeRegister.getTotalSum() - expenseRegister.getTotalSum());
-    FileHandlingBudget.writeMaxAmountToFile(FileHandlingBudget.readCurrentFile(), disposableIncomeAsString);
+    FileHandlingBudget.writeMaxAmountToFile(FileHandlingBudget.readSelectedBudget(), disposableIncomeAsString);
   }
   /**
    * Switches scenes back to main menu, by loading a new FXML file and setting the scene to this location.
@@ -495,8 +492,9 @@ public class IncomeExpenseController extends FinanceController {
         loader.setLocation(getClass().getResource("/view/newBudgetBudgert.fxml"));
         saveDisposableIncomeToFile();
       } else if (event.getSource() == null) {
-        FileHandlingBudget.deleteBudgetDirectory(FileHandlingBudget.readCurrentFile());
-        FileHandlingBudget.updateCurrentFile("");
+        FileHandlingBudget.deleteBudgetDirectory(FileHandlingBudget.readSelectedBudget());
+        //removeBudgetNameFromArchive
+        FileHandlingBudget.updateSelectedBudget("");
       }
       Parent root = loader.load();
       Stage stage = (Stage) ((Node) event.getSource()).getScene().getWindow();
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 f95a5a0d..1a9d55c0 100644
--- a/src/main/java/no/ntnu/idatt1002/demo/controller/MainMenu.java
+++ b/src/main/java/no/ntnu/idatt1002/demo/controller/MainMenu.java
@@ -150,6 +150,9 @@ public class MainMenu {
    */
   private void refreshProgressBars() {
     mainBar.setProgress(expenseRegister.getTotalSum()/generalBudget.getMaxAmount());
+    if (mainBar.getProgress() == 1) {
+      mainBar.setStyle("-fx-accent: #fa5959;");
+    }
 
     foodBar.setProgress((generalBudget.getBudgetItem(ExpenseCategory.FOOD).getBudgetAmount() - overview.getBudgetItemMinusExpense(ExpenseCategory.FOOD))/generalBudget.getBudgetItem(ExpenseCategory.FOOD).getBudgetAmount());
     clothesBar.setProgress((generalBudget.getBudgetItem(ExpenseCategory.CLOTHES).getBudgetAmount() - overview.getBudgetItemMinusExpense(ExpenseCategory.CLOTHES))/generalBudget.getBudgetItem(ExpenseCategory.CLOTHES).getBudgetAmount());
diff --git a/src/main/java/no/ntnu/idatt1002/demo/controller/SceneController.java b/src/main/java/no/ntnu/idatt1002/demo/controller/SceneController.java
index 2f8deaf0..8afd3288 100644
--- a/src/main/java/no/ntnu/idatt1002/demo/controller/SceneController.java
+++ b/src/main/java/no/ntnu/idatt1002/demo/controller/SceneController.java
@@ -1,11 +1,7 @@
 package no.ntnu.idatt1002.demo.controller;
 
-import static com.sun.javafx.scene.control.skin.Utils.getResource;
-
 import java.io.IOException;
 
-import java.time.LocalDate;
-import java.util.Optional;
 import javafx.event.ActionEvent;
 import javafx.fxml.FXML;
 import javafx.fxml.FXMLLoader;
@@ -14,12 +10,10 @@ import javafx.scene.Parent;
 import javafx.scene.Scene;
 import javafx.scene.control.Alert;
 import javafx.scene.control.Alert.AlertType;
-import javafx.scene.control.ButtonType;
 import javafx.scene.control.Dialog;
 import javafx.stage.Modality;
 import javafx.stage.Stage;
 import no.ntnu.idatt1002.demo.data.Budget.FileHandlingBudget;
-import no.ntnu.idatt1002.demo.data.Economics.Expense;
 import no.ntnu.idatt1002.demo.data.Economics.Income;
 
 public class SceneController {
@@ -70,7 +64,7 @@ public class SceneController {
     dialog.showAndWait();
 
     try {
-      if (FileHandlingBudget.readCurrentFile() != null) {
+      if (FileHandlingBudget.readSelectedBudget() != null) {
         switchNext(event);
       }
     } catch (IOException ioe) {
@@ -118,7 +112,7 @@ public class SceneController {
     dialog.showAndWait();
 
     try {
-      if (FileHandlingBudget.readCurrentFile() != null) {
+      if (FileHandlingBudget.readSelectedBudget() != null) {
         switchChosenBudget(event);
       }
     } catch(IOException ioe) {
diff --git a/src/main/java/no/ntnu/idatt1002/demo/controller/SelectBudgetController.java b/src/main/java/no/ntnu/idatt1002/demo/controller/SelectBudgetController.java
index 9381f1c6..d2b8dfe6 100644
--- a/src/main/java/no/ntnu/idatt1002/demo/controller/SelectBudgetController.java
+++ b/src/main/java/no/ntnu/idatt1002/demo/controller/SelectBudgetController.java
@@ -1,20 +1,16 @@
 package no.ntnu.idatt1002.demo.controller;
 
 import java.io.IOException;
-import java.util.Collection;
 import javafx.collections.FXCollections;
 import javafx.collections.ObservableList;
 import javafx.event.ActionEvent;
-import javafx.event.EventHandler;
 import javafx.fxml.FXML;
 import javafx.scene.Node;
 import javafx.scene.control.ListView;
 import javafx.scene.input.MouseButton;
-import javafx.scene.input.MouseEvent;
 import javafx.stage.Stage;
 import no.ntnu.idatt1002.demo.data.Budget.BudgetRegister;
 import no.ntnu.idatt1002.demo.data.Budget.FileHandlingBudget;
-import no.ntnu.idatt1002.demo.data.Budget.GeneralBudget;
 
 public class SelectBudgetController {
 
@@ -27,10 +23,16 @@ public class SelectBudgetController {
 
   @FXML
   public void initialize() throws IOException {
-    budgetRegister = FileHandlingBudget.readBudgetArchive("");
-    System.out.println(budgetRegister);
-    System.out.println(budgetRegister.getBudgetNames().size());
-    System.out.println("this is budgetRegisr: " + budgetRegister);
+    try {
+      if (FileHandlingBudget.isBudgetRegisterEmpty()) {
+        budgetRegister = new BudgetRegister();
+      } else {
+        budgetRegister = FileHandlingBudget.readBudgetArchive("");
+      }
+    } catch (IOException ioe) {
+      ioe.printStackTrace();
+    }
+    System.out.println("budget register is: " + budgetRegister);
     budgetList = FXCollections.observableList(budgetRegister.getBudgetNames());
     budgetListView.setItems(budgetList);
 
@@ -47,7 +49,7 @@ public class SelectBudgetController {
   public void selectBudget(ActionEvent event) throws IOException {
     String name = budgetListView.getSelectionModel().getSelectedItem();
     System.out.println(name);
-    FileHandlingBudget.updateCurrentFile(name);
+    FileHandlingBudget.updateSelectedBudget(name);
 
     final Node source = (Node) event.getSource();
     ((Stage) source.getScene().getWindow()).close();
@@ -55,7 +57,7 @@ public class SelectBudgetController {
 
   @FXML
   public void exitWindow(ActionEvent event) throws IOException {
-    FileHandlingBudget.updateCurrentFile("");
+    FileHandlingBudget.updateSelectedBudget("");
     final Node source = (Node) event.getSource();
     ((Stage) source.getScene().getWindow()).close();
   }
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 86a9d25e..3fabc9df 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
@@ -11,24 +11,8 @@ import java.io.*;
  * @author andreas
  */
 
-//FÃ¥ fikset ny return knapp i dualList
-    //Disable next i dualList før income har blitt lagt til. Kanksje filter som prevneter negativ max amount
-    //La next button save dataene i to nye filer for persisterign i tilfelle "back" trykkes i newBudgetbudgetr
-    //Gjøre user.dir path static + Fikse nye klasser for filehandling
-    //Fikse vindu for old budget + FIKSE TRY CATCHES I ALLE METODENE!!!!!!!!!!
-    //add menuitems i income og expense slik at
-    //Gjøre slik at når du completer et budget (next button i budget window)
-    //skal dette legges til i budgetreigsteret
-
-
-    //System.out.println(System.getProperty("user.dir") + path); =
-    //C:\Users\xulr0\IdeaProjects\skoleProsjekter\idatt1002\idatt1002_2023_9src/main/resources/
-
-    //(System.getProperty("user.dir") + "/" + path) =
-    //(path) =
-    //(src/main/resources)
 public class FileHandlingBudget {
-    private static final String filePath = "src/main/resources/Budget"; //TODO CHANGE BACK to /resources/Budget/
+    private static final String filePath = "src/main/resources/Budget";
     private static final String fileType = ".budget";
 
     private static final String path = "src/main/resources/";
@@ -47,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 + readCurrentFile() + "/" + fileTitle + fileType))) {
+        try (BufferedWriter bw = new BufferedWriter(new FileWriter(path + readSelectedBudget() + "/" + fileTitle + fileType))) {
         //try (BufferedWriter bw = new BufferedWriter(new FileWriter(filePath + fileTitle + fileType))) {
             bw.write(generalBudget.toString());
         } catch (IOException ex) {
@@ -66,8 +50,8 @@ public class FileHandlingBudget {
         /*try (BufferedReader br = new BufferedReader(new FileReader(filePath + fileTitle + fileType))) {
             return br.readLine() == null;
         }*/
-        BufferedReader br = new BufferedReader(new FileReader(path + readCurrentFile() + "/" + fileTitle + fileType));
-        System.out.println("Trying budget isEmpty in: " + path + readCurrentFile() + "/" + fileTitle + fileType);
+        BufferedReader br = new BufferedReader(new FileReader(path + readSelectedBudget() + "/" + fileTitle + fileType));
+        System.out.println("Trying budget isEmpty in: " + path + readSelectedBudget() + "/" + fileTitle + fileType);
         return br.readLine() == null;
     }
 
@@ -81,7 +65,7 @@ public class FileHandlingBudget {
      */
     public static boolean isNewBudget(String fileTitle) throws IOException {
         try (BufferedReader br = new BufferedReader(
-            new FileReader(path + readCurrentFile() + "/" + fileTitle + fileType))) {
+            new FileReader(path + readSelectedBudget() + "/" + fileTitle + fileType))) {
             //new FileReader(filePath + fileTitle + fileType))) {
 
             for (int i = 0; i < 2; ++i) {
@@ -98,16 +82,21 @@ public class FileHandlingBudget {
     }
 
     public static void writeBudgetRegisterToArchive(BudgetRegister budgetNames) throws IOException {
-        try {
-            BufferedWriter bw = new BufferedWriter(new FileWriter(System.getProperty("user.dir") + "/" + path + "Archive.txt"));
+        try (BufferedWriter bw = new BufferedWriter(new FileWriter(System.getProperty("user.dir") + "/" + path + "Archive.txt"))) {
             System.out.println(System.getProperty("user.dir") + "/" + path + "Archive.txt");
-            bw.write("motherfucer");
+            bw.write(budgetNames.toString());
         } catch (IOException ioe) {
             ioe.printStackTrace();
             throw new IOException("Could not write to file: Archive.txt");
         }
     }
 
+    public static boolean isBudgetRegisterEmpty() throws IOException {
+        try (BufferedReader br = new BufferedReader(new FileReader(System.getProperty("user.dir") + "/src/main/resources/"
+            + "Archive.txt"))) {
+            return br.readLine() == null;
+        }
+    }
     public static BudgetRegister readBudgetArchive(String fileTitle) throws IOException {
         BufferedReader br;
         BudgetRegister budgetRegister = null;
@@ -135,7 +124,7 @@ public class FileHandlingBudget {
         }
         return budgetRegister;
     }
-    public static boolean isCurrentFileEmpty(String fileTitle) throws IOException {
+    public static boolean isSelectedBudgetEmpty(String fileTitle) throws IOException {
         try (BufferedReader br = new BufferedReader(new FileReader(System.getProperty("user.dir") + "src/main/resources/"
             + "CurrentFile.txt"))) {
             return br.readLine() == null;
@@ -155,7 +144,7 @@ public class FileHandlingBudget {
         }
     }
 
-    public static String readCurrentFile() throws IOException {
+    public static String readSelectedBudget() throws IOException {
         BufferedReader br;
         try {
             System.out.print("Reading current file...");
@@ -168,7 +157,7 @@ public class FileHandlingBudget {
         return br.readLine();
     }
 
-    public static void updateCurrentFile(String budgetName) throws IOException {
+    public static void updateSelectedBudget(String budgetName) throws IOException {
         try (BufferedWriter bw = new BufferedWriter(new FileWriter(System.getProperty("user.dir") + "/src/main/resources/CurrentFile.txt"))) {
             bw.write(budgetName);
             System.out.println("Current file is: " + budgetName);
@@ -227,7 +216,7 @@ public class FileHandlingBudget {
         ExpenseCategory expenseCategory = null;
         String budgetDescription = null;
 
-        try (BufferedReader br = new BufferedReader(new FileReader( System.getProperty("user.dir") + "/" + path + readCurrentFile() + "/" + fileTitle + fileType))) {
+        try (BufferedReader br = new BufferedReader(new FileReader( System.getProperty("user.dir") + "/" + path + readSelectedBudget() + "/" + 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 75e0102f..2e3dd4cf 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
@@ -1,2 +1,75 @@
-package no.ntnu.idatt1002.demo.data.Budget;public class FileHandlingBudgetArchive {
+package no.ntnu.idatt1002.demo.data.Budget;
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+
+public class FileHandlingBudgetArchive {
+  private static final String path = System.getProperty("user.dir") + "/src/main/resources/";
+  private static final String archiveFileType = ".arc";
+
+  public static void writeBudgetRegisterToArchive(BudgetRegister budgetNames) throws IOException {
+    try (BufferedWriter bw = new BufferedWriter(new FileWriter(System.getProperty("user.dir") + "/" + path + "Archive.txt"))) {
+      System.out.println(System.getProperty("user.dir") + "/" + path + "Archive.txt");
+      bw.write(budgetNames.toString());
+    } catch (IOException ioe) {
+      ioe.printStackTrace();
+      throw new IOException("Could not write to file: Archive.txt");
+    }
+  }
+
+  public static boolean isBudgetRegisterEmpty() throws IOException {
+    try (BufferedReader br = new BufferedReader(new FileReader(System.getProperty("user.dir") + "/src/main/resources/"
+        + "Archive.txt"))) {
+      return br.readLine() == null;
+    }
+  }
+  public static BudgetRegister readBudgetArchive(String fileTitle) throws IOException {
+    BufferedReader br;
+    BudgetRegister budgetRegister = null;
+    String budgetName;
+
+    try {
+      br = new BufferedReader(
+          new FileReader(System.getProperty("user.dir") + "/" + path
+              + "Archive.txt"));
+    } catch (IOException ioe) {
+      throw new IOException("File does not exist", ioe);
+    }
+
+    String line;
+    String nextLine = br.readLine();
+    while ((line = nextLine) != null) {
+      System.out.println(line);
+      nextLine = br.readLine();
+      budgetName = line;
+
+      if(budgetRegister == null){
+        budgetRegister = new BudgetRegister();
+      }
+      budgetRegister.addBudgetName(budgetName);
+    }
+    return budgetRegister;
+  }
+
+  public static void writeSavingsToFile() {
+
+  }
+
+  public static boolean deleteBudgetDirectory(String budgetID) {
+    File targetDirectory = new File(System.getProperty("user.dir") + "/src/main/resources/" + budgetID);
+    System.out.println("Deleting directory:" + targetDirectory.getPath());
+
+    String[]entries = targetDirectory.list();
+    assert entries != null;
+    for(String file : entries){
+      File currentFile = new File(targetDirectory.getPath(),file);
+      System.out.println("Deleting file:" + currentFile.delete());
+    }
+
+    return targetDirectory.delete();
+  }
 }
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 3487e3c7..27c05810 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
@@ -34,7 +34,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 + FileHandlingBudget.readCurrentFile() + "/" + fileTitle + fileType))) {
+        try (BufferedWriter bw = new BufferedWriter(new FileWriter(path + FileHandlingBudget.readSelectedBudget() + "/" + fileTitle + fileType))) {
             if (itemRegister.isEmpty()){
                 bw.write("");
             } else{
@@ -60,8 +60,8 @@ public class FileHandling{
                 return false;
             }
         }*/
-        BufferedReader br = new BufferedReader(new FileReader(path + FileHandlingBudget.readCurrentFile() + "/" +  fileTitle + fileType));
-        System.out.println("Checking if income is empty in: " + path + FileHandlingBudget.readCurrentFile() + "/" +  fileTitle + fileType);
+        BufferedReader br = new BufferedReader(new FileReader(path + FileHandlingBudget.readSelectedBudget() + "/" +  fileTitle + fileType));
+        System.out.println("Checking if income is empty in: " + path + FileHandlingBudget.readSelectedBudget() + "/" +  fileTitle + fileType);
         return br.readLine() == null;
     }
 
@@ -79,7 +79,7 @@ public class FileHandling{
         double amount = 0;
         boolean reoccuring = false;
         IncomeCategory incomeCategory = null;
-        try (BufferedReader br = new BufferedReader(new FileReader(path + FileHandlingBudget.readCurrentFile() + "/" + fileTitle + fileType))) {
+        try (BufferedReader br = new BufferedReader(new FileReader(path + FileHandlingBudget.readSelectedBudget() + "/" + fileTitle + fileType))) {
         //try (BufferedReader br = new BufferedReader(new FileReader(filePath + fileTitle + fileType))) {
             String line;
             String nextLine = br.readLine();
@@ -127,7 +127,7 @@ public class FileHandling{
         double amount = 0;
         boolean reoccuring = false;
         ExpenseCategory expenseCategory = null;
-        try (BufferedReader br = new BufferedReader(new FileReader(path + FileHandlingBudget.readCurrentFile() + "/" + fileTitle + fileType))) {
+        try (BufferedReader br = new BufferedReader(new FileReader(path + FileHandlingBudget.readSelectedBudget() + "/" + fileTitle + fileType))) {
             //try (BufferedReader br = new BufferedReader(new FileReader(filePath + fileTitle + fileType))) {
             String line;
             String nextLine = br.readLine();
diff --git a/src/main/resources/Archive.txt b/src/main/resources/Archive.txt
index 6b3f6b6e..8b137891 100644
--- a/src/main/resources/Archive.txt
+++ b/src/main/resources/Archive.txt
@@ -1,4 +1 @@
-APRIL1
-APRIL2
-APRIL3
-APRILnew
\ No newline at end of file
+
diff --git a/src/main/resources/CurrentFile.txt b/src/main/resources/CurrentFile.txt
index 3b2ced82..8ec6b2f4 100644
--- a/src/main/resources/CurrentFile.txt
+++ b/src/main/resources/CurrentFile.txt
@@ -1 +1 @@
-APRIL1
\ No newline at end of file
+APRILyes
\ No newline at end of file
diff --git a/src/main/resources/Economics/Expense.register b/src/main/resources/Economics/Expense.register
index cb93996b..0efd78ca 100644
--- a/src/main/resources/Economics/Expense.register
+++ b/src/main/resources/Economics/Expense.register
@@ -1,5 +1,5 @@
-date=2023-04-17
-amount=50.0
+date=2023-04-18
+amount=5.0
 isRecurring=Not recurring
 category=FOOD
 
diff --git a/src/main/resources/Economics/Income.register b/src/main/resources/Economics/Income.register
index b2756581..e69de29b 100644
--- a/src/main/resources/Economics/Income.register
+++ b/src/main/resources/Economics/Income.register
@@ -1,5 +0,0 @@
-date=2023-04-17
-amount=100.0
-isRecurring=Not recurring
-category=GIFT
-
diff --git a/src/main/resources/view/MainMenuNew.fxml b/src/main/resources/view/MainMenuNew.fxml
index 429e3fa0..4b685ffc 100644
--- a/src/main/resources/view/MainMenuNew.fxml
+++ b/src/main/resources/view/MainMenuNew.fxml
@@ -80,7 +80,7 @@
                         </ProgressBar>
                         <Label fx:id="usageLbl" text="You have used xxx out of xxx this month">
                            <font>
-                              <Font name="Lucida Console" size="12.0" />
+                              <Font name="Lucida Console" size="14.0" />
                            </font>
                            <StackPane.margin>
                               <Insets top="5.0" />
diff --git a/src/main/resources/view/newBudgetBudgert.fxml b/src/main/resources/view/newBudgetBudgert.fxml
index 64fa139e..96877b0e 100644
--- a/src/main/resources/view/newBudgetBudgert.fxml
+++ b/src/main/resources/view/newBudgetBudgert.fxml
@@ -5,10 +5,8 @@
 <?import javafx.scene.chart.PieChart?>
 <?import javafx.scene.control.Button?>
 <?import javafx.scene.control.ComboBox?>
-<?import javafx.scene.control.ContextMenu?>
 <?import javafx.scene.control.DatePicker?>
 <?import javafx.scene.control.Label?>
-<?import javafx.scene.control.MenuItem?>
 <?import javafx.scene.control.TableColumn?>
 <?import javafx.scene.control.TableView?>
 <?import javafx.scene.image.Image?>
@@ -176,13 +174,6 @@
                                  <columnResizePolicy>
                                     <TableView fx:constant="CONSTRAINED_RESIZE_POLICY" />
                                  </columnResizePolicy>
-                                 <contextMenu>
-                                    <ContextMenu>
-                                       <items>
-                                          <MenuItem mnemonicParsing="false" text="Unspecified Action" />
-                                       </items>
-                                    </ContextMenu>
-                                 </contextMenu>
                               </TableView>
                            </children>
                            <padding>
-- 
GitLab