Skip to content

Commit dbd4b1c

Browse files
authored
Merge pull request #75 from jiayushe/add-tasks
Implement UI for Tasks
2 parents 36348f6 + 21c6bd6 commit dbd4b1c

File tree

18 files changed

+335
-105
lines changed

18 files changed

+335
-105
lines changed

docs/tutorials/AddRemark.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ We accomplish that by returning a `CommandResult` with an accompanying message.
3636
.RemarkCommand.java
3737
[source, java]
3838
----
39-
package seedu.address.seedu.algobase.commands;
39+
package seedu.address.logic.commands;
4040
4141
import seedu.address.model.Model;
4242

src/main/java/seedu/algobase/logic/Logic.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import seedu.algobase.model.plan.Plan;
1313
import seedu.algobase.model.problem.Problem;
1414
import seedu.algobase.model.tag.Tag;
15+
import seedu.algobase.model.task.Task;
1516

1617
/**
1718
* API of the Logic component
@@ -49,6 +50,9 @@ public interface Logic {
4950
/** Returns an unmodifiable view of the filtered list of plans */
5051
ObservableList<Plan> getProcessedPlanList();
5152

53+
/** Returns an unmodifiable view of the filtered list of tasks */
54+
ObservableList<Task> getProcessedTaskList();
55+
5256
/**
5357
* Returns the user prefs' algobase file path.
5458
*/

src/main/java/seedu/algobase/logic/LogicManager.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import seedu.algobase.model.plan.Plan;
1919
import seedu.algobase.model.problem.Problem;
2020
import seedu.algobase.model.tag.Tag;
21+
import seedu.algobase.model.task.Task;
2122
import seedu.algobase.storage.Storage;
2223

2324
/**
@@ -60,24 +61,29 @@ public ReadOnlyAlgoBase getAlgoBase() {
6061
}
6162

6263
@Override
63-
public ObservableList<Problem> getProcessedProblemList() {
64-
return model.getFilteredProblemList();
64+
public GuiState getGuiState() {
65+
return model.getGuiState();
6566
}
6667

6768
@Override
6869
public ObservableList<Tag> getFilteredTagList() {
6970
return model.getFilteredTagList();
7071
}
7172

72-
public GuiState getGuiState() {
73-
return model.getGuiState();
73+
public ObservableList<Problem> getProcessedProblemList() {
74+
return model.getFilteredProblemList();
7475
}
7576

7677
@Override
7778
public ObservableList<Plan> getProcessedPlanList() {
7879
return model.getFilteredPlanList();
7980
}
8081

82+
@Override
83+
public ObservableList<Task> getProcessedTaskList() {
84+
return model.getCurrentTaskList();
85+
}
86+
8187
@Override
8288
public Path getAlgoBaseFilePath() {
8389
return model.getAlgoBaseFilePath();

src/main/java/seedu/algobase/logic/commands/AddTaskCommand.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ public CommandResult execute(Model model) throws CommandException {
7070
Plan updatedPlan = Plan.createUpdatedPlan(plan, taskSet);
7171
model.setPlan(plan, updatedPlan);
7272

73-
return new CommandResult(String.format(MESSAGE_SUCCESS, task, plan));
73+
return new CommandResult(String.format(MESSAGE_SUCCESS, task, updatedPlan));
7474
}
7575

7676
@Override

src/main/java/seedu/algobase/logic/parser/AddTagCommandParser.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
import java.util.stream.Stream;
77

8-
import seedu.algobase.logic.commands.AddCommand;
98
import seedu.algobase.logic.commands.AddTagCommand;
109
import seedu.algobase.logic.parser.exceptions.ParseException;
1110
import seedu.algobase.model.tag.Tag;
@@ -25,7 +24,7 @@ public AddTagCommand parse(String args) throws ParseException {
2524
ArgumentTokenizer.tokenize(args, PREFIX_TAG);
2625
if (!arePrefixesPresent(argMultimap, PREFIX_TAG)
2726
|| !argMultimap.getPreamble().isEmpty()) {
28-
throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddCommand.MESSAGE_USAGE));
27+
throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddTagCommand.MESSAGE_USAGE));
2928
}
3029
Tag tag = new ParserUtil().parseTag(argMultimap.getValue(PREFIX_TAG).get());
3130
return new AddTagCommand(tag);

src/main/java/seedu/algobase/model/AlgoBase.java

Lines changed: 25 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import seedu.algobase.model.problem.UniqueProblemList;
1212
import seedu.algobase.model.tag.Tag;
1313
import seedu.algobase.model.tag.UniqueTagList;
14+
import seedu.algobase.model.task.Task;
1415

1516
/**
1617
* Wraps all data at the algobase level
@@ -32,9 +33,6 @@ public class AlgoBase implements ReadOnlyAlgoBase {
3233
{
3334
problems = new UniqueProblemList();
3435
plans = new PlanList();
35-
}
36-
37-
{
3836
tags = new UniqueTagList();
3937
}
4038

@@ -103,7 +101,12 @@ public void removeProblem(Problem key) {
103101
problems.remove(key);
104102
}
105103

106-
//// tag methods
104+
@Override
105+
public ObservableList<Problem> getProblemList() {
106+
return problems.asUnmodifiableObservableList();
107+
}
108+
109+
//========== Tag ====================================================================
107110
/**
108111
* Replaces the contents of the Tag list with {@code tags}.
109112
* {@code tags} must not contain duplicate tags.
@@ -112,9 +115,6 @@ public void setTags(List<Tag> tags) {
112115
this.tags.setTags(tags);
113116
}
114117

115-
116-
//// tag-level operations
117-
118118
/**
119119
* Returns true if a Tag with the same identity as {@code Tag} exists in the algobase.
120120
*/
@@ -140,9 +140,18 @@ public void setTag(Tag target, Tag editedTag) {
140140
requireNonNull(editedTag);
141141
tags.setTag(target, editedTag);
142142
}
143+
144+
/**
145+
* Removes {@code key} from this {@code AlgoBase}.
146+
* {@code key} must exist in the algobase.
147+
*/
148+
public void removeTag(Tag key) {
149+
tags.remove(key);
150+
}
151+
143152
@Override
144-
public ObservableList<Problem> getProblemList() {
145-
return problems.asUnmodifiableObservableList();
153+
public ObservableList<Tag> getTagList() {
154+
return tags.asUnmodifiableObservableList();
146155
}
147156

148157
//========== Plan ===================================================================
@@ -174,16 +183,6 @@ public void setPlan(Plan target, Plan editedPlan) {
174183
plans.setPlan(target, editedPlan);
175184
}
176185

177-
/**
178-
* Removes {@code key} from this {@code AlgoBase}.
179-
* {@code key} must exist in the algobase.
180-
*/
181-
public void removeTag(Tag key) {
182-
tags.remove(key);
183-
}
184-
185-
//// util methods
186-
187186
public void removePlan(Plan key) {
188187
plans.remove(key);
189188
}
@@ -193,6 +192,13 @@ public ObservableList<Plan> getPlanList() {
193192
return plans.asUnmodifiableObservableList();
194193
}
195194

195+
//========== Task ===================================================================
196+
197+
@Override
198+
public ObservableList<Task> getCurrentTaskList() {
199+
return plans.getUnmodifiableObservableTaskList();
200+
}
201+
196202
//========== Util ===================================================================
197203

198204
@Override
@@ -201,11 +207,6 @@ public String toString() {
201207
// TODO: refine later
202208
}
203209

204-
@Override
205-
public ObservableList<Tag> getTagList() {
206-
return tags.asUnmodifiableObservableList();
207-
}
208-
209210
@Override
210211
public boolean equals(Object other) {
211212
return other == this // short circuit if same object

src/main/java/seedu/algobase/model/Model.java

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,14 @@
1111
import seedu.algobase.model.plan.Plan;
1212
import seedu.algobase.model.problem.Problem;
1313
import seedu.algobase.model.tag.Tag;
14+
import seedu.algobase.model.task.Task;
1415

1516
/**
1617
* The API of the Model component.
1718
*/
1819
public interface Model {
1920
/** {@code Predicate} that always evaluate to true */
2021
Predicate<Problem> PREDICATE_SHOW_ALL_PROBLEMS = unused -> true;
21-
22-
/** {@code Predicate} that always evaluate to true */
2322
Predicate<Tag> PREDICATE_SHOW_ALL_TAGS = unused -> true;
2423
Predicate<Plan> PREDICATE_SHOW_ALL_PLANS = unused -> true;
2524

@@ -70,7 +69,6 @@ public interface Model {
7069

7170
/** Returns the AlgoBase */
7271
ReadOnlyAlgoBase getAlgoBase();
73-
/////
7472

7573
//=========== Problem ===============================================================
7674

@@ -106,7 +104,15 @@ public interface Model {
106104
* @throws NullPointerException if {@code predicate} is null.
107105
*/
108106
void updateFilteredProblemList(Predicate<Problem> predicate);
109-
/////
107+
108+
/**
109+
* Updates the Problem list according to the given {@code problemComparator}.
110+
* @param problemComparator
111+
* @throws NullPointerException if {@code problemComparator} is null;
112+
*/
113+
void updateSortedProblemList(Comparator<Problem> problemComparator);
114+
115+
//=========== Tag ===================================================================
110116

111117
/**
112118
* Returns true if a Tag with the same identity as {@code Tag} exists in the algobase.
@@ -160,13 +166,6 @@ public interface Model {
160166
*/
161167
void updateFilteredTagList(Predicate<Tag> predicate);
162168

163-
/**
164-
* Updates the Problem list according to the given {@code problemComparator}.
165-
* @param problemComparator
166-
* @throws NullPointerException if {@code problemComparator} is null;
167-
*/
168-
void updateSortedProblemList(Comparator<Problem> problemComparator);
169-
170169
//=========== Plan ==================================================================
171170

172171
/**
@@ -202,4 +201,8 @@ public interface Model {
202201
*/
203202
void updateFilteredPlanList(Predicate<Plan> predicate);
204203

204+
//=========== Task ==================================================================
205+
206+
/** Returns an unmodifiable view of the filtered Plan list */
207+
ObservableList<Task> getCurrentTaskList();
205208
}

src/main/java/seedu/algobase/model/ModelEnum.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
public enum ModelEnum {
77
PROBLEM (0, "problem", "Problems"),
88
TAG (1, "tag", "Tags"),
9-
PLAN (2, "plan", "Training Plans");
9+
PLAN (2, "plan", "Training Plans"),
10+
TASK (3, "task", "Tasks");
1011

1112
private final int displayTabPaneIndex;
1213
private final String commandArgumentValue;

0 commit comments

Comments
 (0)