|
1 | 1 | package seedu.address.logic.commands; |
2 | 2 |
|
3 | | -import java.util.ArrayList; |
4 | | -import java.util.Date; |
5 | | -import java.util.List; |
6 | | -import java.util.Optional; |
7 | | - |
8 | | -import seedu.address.model.item.Name; |
9 | | -import seedu.address.model.item.Priority; |
10 | | -import seedu.address.model.item.ReadOnlyTask; |
11 | | -import seedu.address.model.item.RecurrenceRate; |
12 | | -import seedu.address.model.item.Task; |
13 | | - |
14 | 3 | /** |
15 | 4 | * Selects a person identified using it's last displayed index from the address book. |
16 | 5 | */ |
@@ -41,116 +30,7 @@ public CommandResult execute() { |
41 | 30 | UndoableCommand cmdToRedo = history.redoStep(); |
42 | 31 | return cmdToRedo.execute(); |
43 | 32 |
|
44 | | - /* |
45 | | - ReversibleEffect reversibleEffect = history.redoStep(); |
46 | | - String commandName = reversibleEffect.getCommandName(); |
47 | | - List<Task> tasksAffected = reversibleEffect.getTasksAffected(); |
48 | | - List<ReadOnlyTask> readOnlyTasksAffected = convertTaskListToReadOnlyTaskList(tasksAffected); |
49 | | - |
50 | | - assert tasksAffected.size() > 0 && readOnlyTasksAffected.size() > 0; |
51 | | - Task firstAffectedTask = getFirstTaskInList(tasksAffected); |
52 | | - |
53 | | - switch(commandName){ |
54 | | - case "add": |
55 | | - model.addTask(firstAffectedTask); |
56 | | - return new CommandResult("Redid last undo command:\n\t" + commandName + " " + firstAffectedTask); |
57 | | - |
58 | | - case "delete": |
59 | | - model.deleteTasks(readOnlyTasksAffected); |
60 | | - // TODO: inform user if task is not found and so not deleted if necessary, exception somewhere.. |
61 | | - return new CommandResult("Redid last undo command:\n\t" + commandName + " " + firstAffectedTask); |
62 | | - |
63 | | - |
64 | | - case "edit": |
65 | | - assert tasksAffected.size() == 2; |
66 | | - |
67 | | - // this is the updated task before edit |
68 | | - Task prevStateOfEditedTask = getSecondTaskInList(tasksAffected); |
69 | | - |
70 | | - // keep a deep copy for printing since the task will be changed |
71 | | - Task copyOfEditedTask = new Task(prevStateOfEditedTask); |
72 | | - |
73 | | - Task editedTaskToRevert = firstAffectedTask; |
74 | | - |
75 | | - redoEditCommand(prevStateOfEditedTask, editedTaskToRevert); |
76 | | - return new CommandResult("Redid last command:\n\t" + commandName + " " + copyOfEditedTask + " reverted back to " + prevStateOfEditedTask); |
77 | | - |
78 | | - case "clear": |
79 | | - model.deleteTasks(readOnlyTasksAffected); |
80 | | - return new CommandResult("Redid last command:\n\t" + commandName); |
81 | | - |
82 | | - |
83 | | - case "done": |
84 | | - model.addDoneTasks(tasksAffected); |
85 | | - model.deleteTasks(readOnlyTasksAffected); |
86 | | - return new CommandResult("Undid last command:\n\t" + commandName); |
87 | | - |
88 | | - default: |
89 | | - return new CommandResult("Nothing to redo."); |
90 | | - } |
91 | | - */ |
92 | | - |
93 | | - } |
94 | | - |
95 | | - private void redoEditCommand(Task prevStateOfEditedTask, Task editedTaskToRevert) { |
96 | | - // temporary method of undoing edit by editing back all fields |
97 | | - // until there is a single unified edit method |
98 | | - |
99 | | - Name oldTaskName = prevStateOfEditedTask.getName(); |
100 | | - Optional<Date> oldStartDate = prevStateOfEditedTask.getStartDate(); |
101 | | - Optional<Date> oldEndDate = prevStateOfEditedTask.getEndDate(); |
102 | | - Priority oldPriority = prevStateOfEditedTask.getPriorityValue(); |
103 | | - Optional<RecurrenceRate> oldReccurence = prevStateOfEditedTask.getRecurrenceRate(); |
104 | | - |
105 | | - Task taskInListToRevert = model.getTaskManager().getUniqueUndoneTaskList().getTask(editedTaskToRevert); |
106 | | - |
107 | | - model.editName(taskInListToRevert, oldTaskName); |
108 | | - |
109 | | - model.editPriority(taskInListToRevert, oldPriority); |
110 | | - |
111 | | - // edit back the start date |
112 | | - if (oldStartDate.isPresent()){ |
113 | | - model.editStartDate(taskInListToRevert, oldStartDate.get()); |
114 | | - } |
115 | | - else { |
116 | | - model.editStartDate(taskInListToRevert, null); |
117 | | - } |
118 | | - |
119 | | - // edit back the end date |
120 | | - if (oldEndDate.isPresent()){ |
121 | | - model.editEndDate(taskInListToRevert, oldEndDate.get()); |
122 | | - } |
123 | | - else { |
124 | | - model.editEndDate(taskInListToRevert, null); |
125 | | - } |
126 | | - |
127 | | - // edit back the recurrence rate |
128 | | - if (oldReccurence.isPresent()){ |
129 | | - model.editRecurrence(taskInListToRevert, oldReccurence.get()); |
130 | | - } |
131 | | - else{ |
132 | | - model.editRecurrence(taskInListToRevert, null); |
133 | | - } |
134 | | - |
135 | | - |
136 | | - } |
137 | | - |
138 | | - private List<ReadOnlyTask> convertTaskListToReadOnlyTaskList(List<Task> tasks){ |
139 | | - List<ReadOnlyTask> readOnlyTaskList = new ArrayList<ReadOnlyTask>(); |
140 | | - for (Task task: tasks){ |
141 | | - readOnlyTaskList.add(task); |
142 | | - } |
143 | | - return readOnlyTaskList; |
144 | | - } |
145 | | - |
146 | | - private Task getFirstTaskInList(List<Task> tasks){ |
147 | | - assert tasks.size() >= 1; |
148 | | - return tasks.get(0); |
149 | | - } |
150 | | - |
151 | | - private Task getSecondTaskInList(List<Task> tasks){ |
152 | | - assert tasks.size() >= 2; |
153 | | - return tasks.get(1); |
154 | 33 | } |
155 | 34 |
|
| 35 | + |
156 | 36 | } |
0 commit comments