/** Undo the command */ @Override public void undo() { logger.log(Level.INFO, "Command UNDO DELETE"); taskList = storage.getTaskList(); ArrayList<Task> displayList = MainLogic.getDisplayList(); for (int i = 0; i < userInput.getTasksToDelete().size(); i++) { Task task = userInput.getTasksToDelete().get(i); if (task.isRecurring() && userInput.getIsAll()) { Task t = task.getHead(); for (int j = 0; j < userInput.getRecurList().size(); j++) { taskList.add(userInput.getRecurList().get(j)); if (!displayList.equals(taskList)) { displayList.add(userInput.getRecurList().get(j)); } } t.setRecurList(userInput.getRecurList()); } else if (task.isRecurring()) { taskList.add(task); if (!displayList.equals(taskList)) { displayList.add(task); } Task t = task.getHead(); t.getRecurList().add(task); } else { taskList.add(task); if (!displayList.equals(taskList)) { displayList.add(task); } } } storage.saveFile(); feedback.setMessage(MSG_SUCCESS_UNDO); }