diff --git a/src/main/java/BudgetBuddy.java b/src/main/java/BudgetBuddy.java index 8823c0152c..a95c123d21 100644 --- a/src/main/java/BudgetBuddy.java +++ b/src/main/java/BudgetBuddy.java @@ -1,4 +1,5 @@ import financemanager.TransactionList; +import ui.UserInterface; import java.util.Scanner; @@ -21,19 +22,26 @@ public static void main(String[] args){ while (isRunning) { String input = in.nextLine(); - - switch (input.split(" ")[0]) { - case "bye": - System.out.println("Goodbye!"); - isRunning = false; - break; - case "list": - System.out.println("Displaying transactions:"); - System.out.println(transactions.getTransactions()); - break; - default: - System.out.println("Invalid command."); + try{ + switch (input.split(" ")[0]) { + case "bye": + System.out.println("Goodbye!"); + isRunning = false; + break; + case "list": + System.out.println("Displaying transactions:"); + System.out.println(transactions.getTransactions()); + break; + case "delete": + transactions.removeTransaction(input); + break; + default: + System.out.println("Invalid command."); + } + } catch(IndexOutOfBoundsException e){ + UserInterface.printIndexOutOfBounds(e.getMessage()); } + } diff --git a/src/main/java/financemanager/TransactionList.java b/src/main/java/financemanager/TransactionList.java index 75ee45a693..80434d78d1 100644 --- a/src/main/java/financemanager/TransactionList.java +++ b/src/main/java/financemanager/TransactionList.java @@ -1,12 +1,18 @@ package financemanager; +import parser.Parser; import transactions.Transaction; import java.util.ArrayList; +import ui.UserInterface; public class TransactionList { private ArrayList transactions; + public static final int DELETE_BEGIN_INDEX = 7; + public static final int INDEX_OFFSET = 1; + public static final int LOWER_BOUND = 0; + public TransactionList() { // Initialise ArrayList in the constructor @@ -17,4 +23,17 @@ public ArrayList getTransactions() { return transactions; } + public void removeTransaction(String input){ + int id = Integer.parseInt(input.substring(DELETE_BEGIN_INDEX).trim()) - INDEX_OFFSET; + int size = transactions.size(); + if (id >= LOWER_BOUND && id < size) { + String itemRemoved = transactions.get(id).toString(); + transactions.remove(id); + UserInterface.printDeleteMessage(itemRemoved); + } else { + throw new IndexOutOfBoundsException(size); + } + } + + } diff --git a/src/main/java/transactions/Transaction.java b/src/main/java/transactions/Transaction.java index 44aff346e4..006666aad1 100644 --- a/src/main/java/transactions/Transaction.java +++ b/src/main/java/transactions/Transaction.java @@ -22,4 +22,11 @@ public float getAmount() { public String getCategory() { return category; } + + @Override + public String toString() { + return (" Description: " + getDescription() + " | " + + " Amount: " + getAmount() + " | " + + " Category: " + getCategory()) ; + } }