Skip to content

Commit

Permalink
Finish Level-9
Browse files Browse the repository at this point in the history
  • Loading branch information
DerenC committed Feb 12, 2023
1 parent 88ec341 commit df037e7
Show file tree
Hide file tree
Showing 5 changed files with 48 additions and 23 deletions.
7 changes: 2 additions & 5 deletions src/main/java/wessy/CmdType.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import java.util.Map;
import java.util.HashMap;
import java.util.Set;

public enum CmdType {
LIST("list"),
Expand All @@ -13,6 +12,7 @@ public enum CmdType {
DEADLINE("deadline"),
EVENT("event"),
DELETE("delete"),
FIND("find"),
CLEAR("clear");

private final String cmd;
Expand All @@ -31,17 +31,14 @@ public enum CmdType {
COMMANDS.put("mark", CmdType.MARK);
COMMANDS.put("unmark", CmdType.UNMARK);
COMMANDS.put("delete", CmdType.DELETE);
COMMANDS.put("find", CmdType.FIND);
COMMANDS.put("clear", CmdType.CLEAR);
}

public static CmdType getCmdType(String str) {
return COMMANDS.get(str);
}

public static Set<String> getKeys() {
return COMMANDS.keySet();
}

@Override
public String toString() {
return cmd;
Expand Down
22 changes: 21 additions & 1 deletion src/main/java/wessy/TaskList.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package wessy;

import wessy.Parser;
import wessy.exceptions.int_exceptions.EmptyListException;
import wessy.exceptions.int_exceptions.InvalidIntegerException;
import wessy.task.Deadline;
Expand Down Expand Up @@ -62,6 +61,17 @@ public void clear() {
tasks.clear();
}

public String[] find(String target) {
target = Parser.removeSpacePadding(target);
List<Task> foundResults = new ArrayList<Task>();
for (Task task : tasks) {
if (task.toString().contains(target)) {
foundResults.add(task);
}
}
return printAsStr(foundResults).toArray(new String[foundResults.size()]);
}

// Check for empty list exception
public void checkEmptyList(CmdType cmd) throws EmptyListException {
if (tasks.isEmpty()) {
Expand Down Expand Up @@ -101,4 +111,14 @@ public String[] printAsStr() {
}
return arr;
}

// HELPER FUNCTION
private static List<String> printAsStr(List<Task> foundResults) {
int n = foundResults.size();
List<String> list = new ArrayList<String>();
for (int i = 0; i < n; i++) {
list.add("" + (i + 1) + "." + foundResults.get(i));
}
return list;
}
}
28 changes: 20 additions & 8 deletions src/main/java/wessy/Ui.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,19 +25,24 @@ void printBye() {
printMessage("Bye. Hope to see you again soon!");
}

// Output for "list"
void printListMessage(int totalNumOfTasks, String[] tasks) {
// Output for "list" & "find"
void printListOrFindMessage(String[] tasks, boolean isList) {
printOpening();
printList(totalNumOfTasks, tasks);
printListOrFind(tasks, isList);
printClosing();
}

// HELPER
void printList(int totalNumOfTasks, String[] tasks) {
if (totalNumOfTasks == 0) {
println("WOOHOO! You do not have any task on the list.");
void printListOrFind(String[] tasks, boolean isList) {
String extraWord = isList ? "" : "matching ";
if (tasks.length == 0) {
if (isList) {
println("WOOHOO! You do not have any task on the list.");
} else {
println("Sorry. We did not find any task that matches the text you entered.");
}
} else {
println("Here are the tasks in your list:");
println("Here are the " + extraWord + "tasks in your list:");
printMultiln(tasks);
}
}
Expand Down Expand Up @@ -76,12 +81,19 @@ void printClear() {
printMessage("You have cleared your task list. The list is empty now.");
}

void printFindMessage(String[] foundResults) {
printOpening();
println(" Here are the matching tasks in your list:");

printClosing();
}

// When starting up
void showWelcome(String[] tasks, int totalNumOfTasks) {
printOpening();
println("Hi, I am Wessy, your personal assistant chatbot.");
println("");
printList(totalNumOfTasks, tasks);
printListOrFind(tasks, true);
printClosing();
}

Expand Down
6 changes: 5 additions & 1 deletion src/main/java/wessy/Wessy.java
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public void run() {
ui.printBye();
return;
case LIST:
ui.printListMessage(tasks.getSize(), tasks.printAsStr());
ui.printListOrFindMessage(tasks.printAsStr(), true);
break;
case TODO:
case DEADLINE:
Expand Down Expand Up @@ -74,6 +74,10 @@ public void run() {
save2Storage();
ui.printDelete(deletedTask, tasks.getSize());
break;
case FIND:
String target = userInput.substring(cmd.len() + 1);
ui.printListOrFindMessage(tasks.find(target), false);
break;
case CLEAR:
tasks.clear();
save2Storage();
Expand Down
8 changes: 0 additions & 8 deletions src/test/java/wessy/TaskListTest.java

This file was deleted.

0 comments on commit df037e7

Please sign in to comment.