From 7b4bf299f37cbde81c86b6afa3c4ab14bf4584fd Mon Sep 17 00:00:00 2001 From: pkpaing Date: Fri, 17 Feb 2023 21:50:27 +0800 Subject: [PATCH] Final edits --- data/duke.txt | 3 +- src/main/java/duke/Ui.java | 93 +++++++++++++++++++++++--------------- 2 files changed, 59 insertions(+), 37 deletions(-) diff --git a/data/duke.txt b/data/duke.txt index 45c609fe7a..126cf5df01 100644 --- a/data/duke.txt +++ b/data/duke.txt @@ -1,3 +1,4 @@ T | 1 | go home T | 1 | eat lunch -T | 0 | finish work \ No newline at end of file +T | 0 | finish work +D | 0 | iP | 17-02-2023 \ No newline at end of file diff --git a/src/main/java/duke/Ui.java b/src/main/java/duke/Ui.java index 2e3262feda..c8ebd4eadf 100644 --- a/src/main/java/duke/Ui.java +++ b/src/main/java/duke/Ui.java @@ -70,36 +70,47 @@ public static String handleCommand(String s, TaskList t) throws DukeException { * Command to toggle whether a task is done or not */ public static String toggleMarked(String s, TaskList t, boolean mark) { - int taskNumber = Integer.parseInt(s.substring(s.length() - 1)) - 1; - if (mark && !t.get(taskNumber).getIsDone()) { - t.get(taskNumber).toggleMarked(); - } else if (!mark && t.get(taskNumber).getIsDone()) { - t.get(taskNumber).toggleMarked(); - } else { - return mark ? " This task is already marked" : - " This task is already unmarked"; - } + try { + int taskNumber = Integer.parseInt(s.substring(s.length() - 1)) - 1; + if (mark && !t.get(taskNumber).getIsDone()) { + t.get(taskNumber).toggleMarked(); + } else if (!mark && t.get(taskNumber).getIsDone()) { + t.get(taskNumber).toggleMarked(); + } else { + return mark ? " This task is already marked" : + " This task is already unmarked"; + } - String output = ""; - if (s.contains("unmark")) { - output += " OK, I've marked this task as not done yet:"; - } else { - output += " Nice! I've marked this task as done:"; + String output = ""; + if (s.contains("unmark")) { + output += " OK, I've marked this task as not done yet:"; + } else { + output += " Nice! I've marked this task as done:"; + } + return output + " " + t.get(taskNumber).toString(); + + } catch (StringIndexOutOfBoundsException e) { + return "Incorrect command format.\nUse: mark or unmark "; } - return output + " " + t.get(taskNumber).toString(); + } /** * Command to add a To-Do to the TaskList */ public static String addTodo(String s, TaskList t) { - if (s.substring(4).isBlank()) { - return " OOPS!!! The description of a todo cannot be empty."; - } else { - Task newTask = new Todo(s.substring(5)); - t.addTask(newTask); - return " added: " + newTask; + try { + if (s.substring(4).isBlank()) { + return " OOPS!!! The description of a todo cannot be empty."; + } else { + Task newTask = new Todo(s.substring(5)); + t.addTask(newTask); + return " added: " + newTask; + } + } catch (StringIndexOutOfBoundsException e) { + return "Incorrect command format.\nUse: todo "; } + } /** @@ -153,30 +164,40 @@ public static String addEvent(String s, TaskList t) { * Command to delete a task from the TaskList */ public static String deleteTask(String s, TaskList t) { - if (s.substring(6).isBlank()) { - return " OOPS!!! You have not entered anything to delete."; - } else { - int taskNumber = Integer.parseInt(s.substring(s.length() - 1)) - 1; - Task deletedTask = t.get(taskNumber); - t.remove(taskNumber); - return " Noted. I've removed this task:\n " + deletedTask + - "\n Now you have " + t.size()+ " tasks in the list"; + try { + if (s.substring(6).isBlank()) { + return " OOPS!!! You have not entered anything to delete."; + } else { + int taskNumber = Integer.parseInt(s.substring(s.length() - 1)) - 1; + Task deletedTask = t.get(taskNumber); + t.remove(taskNumber); + return " Noted. I've removed this task:\n " + deletedTask + + "\n Now you have " + t.size()+ " tasks in the list"; + } + } catch (StringIndexOutOfBoundsException e) { + return "Incorrect command format.\nUse: delete "; } + } /** * Command to find a Task in the TaskList */ public static String findTasks(String s, TaskList t) { - String findString = s.substring(5); - ArrayList foundTasks = new ArrayList(); - for (Task task : t.getTasks()) { - if (task.toString().contains(findString)) { - foundTasks.add(task); + try { + String findString = s.substring(5); + ArrayList foundTasks = new ArrayList(); + for (Task task : t.getTasks()) { + if (task.toString().contains(findString)) { + foundTasks.add(task); + } } + TaskList searchResults = new TaskList(foundTasks); + return "Here are the tasks I found!\n" + searchResults.displayTasks(); + } catch (StringIndexOutOfBoundsException e) { + return "Incorrect command format.\nUse: find "; } - TaskList searchResults = new TaskList(foundTasks); - return "Here are the tasks I found!\n" + searchResults.displayTasks(); + } }