Skip to content

Commit

Permalink
Merge changes from 'master' into refactor/schedule
Browse files Browse the repository at this point in the history
  • Loading branch information
alexfjw committed Nov 6, 2016
2 parents bba15ef + d3b70de commit 14921dd
Show file tree
Hide file tree
Showing 25 changed files with 428 additions and 172 deletions.
2 changes: 1 addition & 1 deletion src/main/java/seedu/taskman/commons/core/Messages.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
public class Messages {

public static final String MESSAGE_UNKNOWN_COMMAND = "Unknown command.";
public static final String MESSAGE_INVALID_COMMAND_FORMAT = "Invalid command format.\n%1$s.";
public static final String MESSAGE_INVALID_COMMAND_FORMAT = "Invalid command format.";

public static final String MESSAGE_INVALID_COMMAND_FOR_EVENT = "Invalid command for event.";
public static final String MESSAGE_INVALID_EVENT_DISPLAYED_INDEX = "The index provided is invalid.";
Expand Down
5 changes: 3 additions & 2 deletions src/main/java/seedu/taskman/logic/commands/AddCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public class AddCommand extends Command {

public static final String COMMAND_WORD = "add";

public static final String MESSAGE_USAGE = COMMAND_WORD + ": Adds a task to TaskMan.\n"
public static final String MESSAGE_USAGE = "Add a task to TaskMan.\n"
+ "Parameters: TITLE [d/DEADLINE] [s/SCHEDULE] [t/TAGS]...\n"
+ "Example: " + COMMAND_WORD
+ " pay bills d/next fri 1900 s/tmr 1800 to tmr 1830 t/bills";
Expand Down Expand Up @@ -62,7 +62,8 @@ private AddCommand(String title, String deadline, String schedule, Set<String> t
public static Command prepareAdd(String args) {
final Matcher matcher = TASK_ADD_ARGS_FORMAT.matcher(args.trim());
if (!matcher.matches()) {
return new IncorrectCommand(String.format(MESSAGE_INVALID_COMMAND_FORMAT, MESSAGE_USAGE));
return new IncorrectCommand(MESSAGE_INVALID_COMMAND_FORMAT
+ "\n" + COMMAND_WORD + ": " + MESSAGE_USAGE);
}
try {
return new AddCommand(
Expand Down
5 changes: 3 additions & 2 deletions src/main/java/seedu/taskman/logic/commands/AddECommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public class AddECommand extends Command {

public static final String COMMAND_WORD = "adde";

public static final String MESSAGE_USAGE = COMMAND_WORD + ": Adds an event to TaskMan.\n"
public static final String MESSAGE_USAGE = "Add an event to TaskMan.\n"
+ "Parameters: TITLE s/SCHEDULE [t/TAGS]...\n"
+ "Example: " + COMMAND_WORD
+ " star gazing s/today 2300, today 2330 t/telescope";
Expand Down Expand Up @@ -59,7 +59,8 @@ public static Command prepareAddE(String args) {
final Matcher matcher = EVENT_MARK_ARGS_FORMAT.matcher(args.trim());
// Validate arg string format
if (!matcher.matches()) {
return new IncorrectCommand(String.format(MESSAGE_INVALID_COMMAND_FORMAT, MESSAGE_USAGE));
return new IncorrectCommand(MESSAGE_INVALID_COMMAND_FORMAT
+ "\n" + COMMAND_WORD + ": " + MESSAGE_USAGE);
}
try {
return new AddECommand(
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/seedu/taskman/logic/commands/ClearCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
public class ClearCommand extends Command {

public static final String COMMAND_WORD = "clear";
public static final String MESSAGE_USAGE = "Clear data in TaskMan.\n"
+ "Example: " + COMMAND_WORD;
public static final String MESSAGE_SUCCESS = "TaskMan has been cleared!";

public ClearCommand() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public class CompleteCommand extends Command {
public static final String COMMAND_WORD = "complete";
private static final String STATUS_COMPLETE = "complete";

public static final String MESSAGE_USAGE = COMMAND_WORD + ": Marks an incomplete task as complete./n"
public static final String MESSAGE_USAGE = "Mark a task as complete.\n"
+ "Parameters: INDEX\n"
+ "Example: " + COMMAND_WORD
+ " d1";
Expand All @@ -46,8 +46,8 @@ private CompleteCommand(Activity.PanelType panelType, int targetIndex) {
public static Command prepareComplete(String arguments) {
Optional<Pair<Activity.PanelType, Integer>> panelIndexPair = parsePanelTypeWithIndexOnly(arguments);
if(!panelIndexPair.isPresent()){
return new IncorrectCommand(
String.format(MESSAGE_INVALID_COMMAND_FORMAT, MESSAGE_USAGE));
return new IncorrectCommand(MESSAGE_INVALID_COMMAND_FORMAT
+ "\n" + COMMAND_WORD + ": " + MESSAGE_USAGE);
}

return new CompleteCommand(
Expand Down
9 changes: 4 additions & 5 deletions src/main/java/seedu/taskman/logic/commands/DeleteCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,8 @@ public class DeleteCommand extends Command {

public static final String COMMAND_WORD = "delete";

public static final String MESSAGE_USAGE = COMMAND_WORD
+ ": Deletes the entry identified by the index number used in the listings.\n"
+ "Parameters: INDEX (must be a positive whole number)\n"
public static final String MESSAGE_USAGE = "Delete an activity.\n"
+ "Parameters: INDEX\n"
+ "Example: " + COMMAND_WORD + " f1";

public static final String MESSAGE_DELETE_EVENT_SUCCESS = "Deleted task: %1$s";
Expand All @@ -36,8 +35,8 @@ private DeleteCommand(Activity.PanelType panelType, int targetIndex) {
public static Command prepareDelete(String arguments) {
Optional<Pair<Activity.PanelType, Integer>> panelWithIndex = parsePanelTypeWithIndexOnly(arguments);
if(!panelWithIndex.isPresent()){
return new IncorrectCommand(
String.format(MESSAGE_INVALID_COMMAND_FORMAT, MESSAGE_USAGE));
return new IncorrectCommand(MESSAGE_INVALID_COMMAND_FORMAT
+ "\n" + COMMAND_WORD + ": " + MESSAGE_USAGE);
}
Pair<Activity.PanelType, Integer> pair = panelWithIndex.get();
return new DeleteCommand(pair.getKey(), pair.getValue());
Expand Down
5 changes: 3 additions & 2 deletions src/main/java/seedu/taskman/logic/commands/EditCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ public class EditCommand extends Command {

public static final String COMMAND_WORD = "edit";

public static final String MESSAGE_USAGE = COMMAND_WORD + ": Edits an existing entry.\n"
public static final String MESSAGE_USAGE = "Edit an activity.\n"
+ "Parameters: INDEX [TITLE] [d/DEADLINE] [s/SCHEDULE] [t/TAGS]...\n"
+ "Example: " + COMMAND_WORD
+ " s2 s/mon 10am, tue 2pm";
Expand Down Expand Up @@ -71,7 +71,8 @@ public static Command prepareEdit(String args) {
final Matcher matcher = TASK_EDIT_ARGS_FORMAT.matcher(args.trim());

if (!matcher.matches()) {
return new IncorrectCommand(String.format(MESSAGE_INVALID_COMMAND_FORMAT, MESSAGE_USAGE));
return new IncorrectCommand(MESSAGE_INVALID_COMMAND_FORMAT
+ "\n" + COMMAND_WORD + ": " + MESSAGE_USAGE);
}

String panelTypeRaw = matcher.group(CommandParser.Group.panel.name).trim();
Expand Down
3 changes: 2 additions & 1 deletion src/main/java/seedu/taskman/logic/commands/ExitCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@
public class ExitCommand extends Command {

public static final String COMMAND_WORD = "exit";

public static final String MESSAGE_USAGE = "Exit TaskMan.\n"
+ "Example: " + COMMAND_WORD;
public static final String MESSAGE_EXIT_ACKNOWLEDGEMENT = "Exiting TaskMan as requested.";

public ExitCommand() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ public class HelpCommand extends Command {

public static final String COMMAND_WORD = "help";

public static final String MESSAGE_USAGE = COMMAND_WORD + ": Shows program usage instructions.\n"
public static final String MESSAGE_USAGE = "Show command formats.\n"
+ "Example: " + COMMAND_WORD;

public static final String SHOWING_HELP_MESSAGE = "Opened help window.";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ public class HistoryCommand extends Command {

public static final String COMMAND_WORD = "history";

public static final String MESSAGE_USAGE = COMMAND_WORD + ": Shows the "
public static final String MESSAGE_USAGE = "Show the "
+ CAPACITY_UPP_BOUND_HISTORY_COMMAND
+ " most recently executed commands the change the data.\n"
+ " most recently executed commands that modified data.\n"
+ "Example: " + COMMAND_WORD;

public static final String HISTORY_STRING_HEADER = "Most Recent History:\n";
Expand Down
24 changes: 12 additions & 12 deletions src/main/java/seedu/taskman/logic/commands/ListCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ public class ListCommand extends Command {

public static final String COMMAND_WORD = "list";

public static final String MESSAGE_USAGE = COMMAND_WORD + ": Finds all entries whose titles contain any of "
+ "the specified keywords (case-sensitive) or tags and filters them out in their respective panels.\n"
+ "Parameters: [KEYWORDS]... [t/TAGS]...\n"
public static final String MESSAGE_USAGE = "Find all activities whose titles contain "
+ "the specified keywords or holds the specified tags.\n"
+ "Parameters: [PANEL]... [KEYWORDS]... [t/TAGS]...\n"
+ "Example: " + COMMAND_WORD + " d homework t/engineering";

public static final String MESSAGE_FEEDBACK_DEFAULT = "All entries are listed.";
Expand All @@ -31,12 +31,12 @@ public class ListCommand extends Command {
public static final String MESSAGE_FEEDBACK_WORD_SEPARATOR = " ";

private static final Pattern SPECIFY_PANEL_ARGS_FORMAT =
Pattern.compile("" + CommandParser.ArgumentPattern.PANEL + "?"
Pattern.compile("" + CommandParser.ArgumentPattern.PANEL
+ CommandParser.ArgumentPattern.OPTIONAL_KEYWORDS
+ CommandParser.ArgumentPattern.OPTIONAL_TAGS);

private static final Pattern SPECIFY_PANELESS_ARGS_FORMAT =
Pattern.compile("" + CommandParser.ArgumentPattern.KEYWORDS
private static final Pattern SPECIFY_NO_PANEL_ARGS_FORMAT =
Pattern.compile("" + CommandParser.ArgumentPattern.OPTIONAL_KEYWORDS
+ CommandParser.ArgumentPattern.OPTIONAL_TAGS);

private final Activity.PanelType panelType;
Expand All @@ -46,7 +46,7 @@ public class ListCommand extends Command {
public static Command prepareList(String args) {
final String trimmedArgs = args.trim();
final Matcher matcherWithPanel = SPECIFY_PANEL_ARGS_FORMAT.matcher(trimmedArgs);
final Matcher matcherPaneless = SPECIFY_PANELESS_ARGS_FORMAT.matcher(trimmedArgs);
final Matcher matcherWithoutPanel = SPECIFY_NO_PANEL_ARGS_FORMAT.matcher(trimmedArgs);

if (trimmedArgs.isEmpty()) {
return new ListCommand(
Expand All @@ -60,14 +60,14 @@ public static Command prepareList(String args) {
matcherWithPanel.group(CommandParser.Group.keywords.name),
matcherWithPanel.group(CommandParser.Group.tagArguments.name)
);
} else if(matcherPaneless.matches()) {
} else if(matcherWithoutPanel.matches()) {
return allPanelsListCommand(
matcherPaneless.group(CommandParser.Group.keywords.name),
matcherPaneless.group(CommandParser.Group.tagArguments.name)
matcherWithoutPanel.group(CommandParser.Group.keywords.name),
matcherWithoutPanel.group(CommandParser.Group.tagArguments.name)
);
} else {
return new IncorrectCommand(String.format(MESSAGE_INVALID_COMMAND_FORMAT,
ListCommand.MESSAGE_USAGE));
return new IncorrectCommand(MESSAGE_INVALID_COMMAND_FORMAT
+ "\n" + COMMAND_WORD + ": " + MESSAGE_USAGE);
}
}

Expand Down
9 changes: 4 additions & 5 deletions src/main/java/seedu/taskman/logic/commands/SelectCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,16 +21,15 @@ public class SelectCommand extends Command {

public static final String COMMAND_WORD = "select";

public static final String MESSAGE_USAGE = COMMAND_WORD
+ ": Selects the entry identified by the index number used in the latest TaskMan listing.\n"
+ "Parameters: INDEX (must be a positive integer)\n"
public static final String MESSAGE_USAGE = "Select an activity.\n"
+ "Parameters: INDEX\n"
+ "Example: " + COMMAND_WORD + " f2";

public static Command prepareSelect(String arguments) {
Optional<Pair<Activity.PanelType, Integer>> panelWithIndex = parsePanelTypeWithIndexOnly(arguments);
if(!panelWithIndex.isPresent()){
return new IncorrectCommand(
String.format(MESSAGE_INVALID_COMMAND_FORMAT, MESSAGE_USAGE));
return new IncorrectCommand(MESSAGE_INVALID_COMMAND_FORMAT
+ "\n" + COMMAND_WORD + ": " + MESSAGE_USAGE);
}
Pair<Activity.PanelType, Integer> pair = panelWithIndex.get();
return new SelectCommand(pair.getKey(), pair.getValue());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ public class StoragelocCommand extends Command {

public static final String COMMAND_WORD = "storageloc";

public static final String MESSAGE_USAGE = COMMAND_WORD + ": Saves to the specified file name and location and sets the application to load from the specified location in the future.\n"
public static final String MESSAGE_USAGE = "Save to the specified file name and location and sets the application to load from the specified location in the future.\n"
+ "Parameters: LOCATION\n"
+ "Example: " + COMMAND_WORD
+ " C:/Users/Owner/Desktop/new_tasks.xm\n"
Expand All @@ -39,8 +39,8 @@ public static Command prepareStorageloc(String args) {
String trimmedArgs = args.trim();

if (!STORAGELOC_ARGS_FORMAT.matcher(trimmedArgs).matches()) {
return new IncorrectCommand(String.format(MESSAGE_INVALID_COMMAND_FORMAT,
MESSAGE_USAGE));
return new IncorrectCommand(MESSAGE_INVALID_COMMAND_FORMAT
+ "\n" + COMMAND_WORD + ": " + MESSAGE_USAGE);
}

if (trimmedArgs.equals(STORAGELOC_VIEW_KEYWORD)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ public class TagsCommand extends Command {

public static final String COMMAND_WORD = "tags";

public static final String MESSAGE_USAGE = COMMAND_WORD + ": Shows all existing tags.\n"
public static final String MESSAGE_USAGE = "Show all existing tags.\n"
+ "Example: " + COMMAND_WORD;

public static final String TAG_STRING_HEADER = "Existing tags:\n";
Expand Down
9 changes: 4 additions & 5 deletions src/main/java/seedu/taskman/logic/commands/UndoCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,8 @@ public class UndoCommand extends Command {

public static final String COMMAND_WORD = "undo";

public static final String MESSAGE_USAGE = COMMAND_WORD
+ ": Undo the most recently executed command which changed the data in TaskMan. If a number between 1 to 10 inclusive is specified, that number of commands will be undone. "
+ "Parameters: NUMBER (1 to 10 inclusive)\n"
public static final String MESSAGE_USAGE = "Undo the specified number of executed commands which modified data in TaskMan.\n"
+ "Parameters: [NUMBER (1 to 10 inclusive)]\n"
+ "Example: " + COMMAND_WORD
+ " 2";

Expand All @@ -26,8 +25,8 @@ public static Command prepareUndo(String arguments) {
} else {
Optional<Integer> index = parseIndex(arguments);
if(!index.isPresent()){
return new IncorrectCommand(
String.format(MESSAGE_INVALID_COMMAND_FORMAT, MESSAGE_USAGE));
return new IncorrectCommand(MESSAGE_INVALID_COMMAND_FORMAT
+ "\n" + COMMAND_WORD + ": " + MESSAGE_USAGE);
}
return new UndoCommand(index.get());
}
Expand Down
20 changes: 2 additions & 18 deletions src/main/java/seedu/taskman/logic/parser/CommandParser.java
Original file line number Diff line number Diff line change
@@ -1,21 +1,6 @@
package seedu.taskman.logic.parser;

import seedu.taskman.logic.commands.AddCommand;
import seedu.taskman.logic.commands.ClearCommand;
import seedu.taskman.logic.commands.Command;
import seedu.taskman.logic.commands.CompleteCommand;
import seedu.taskman.logic.commands.DeleteCommand;
import seedu.taskman.logic.commands.EditCommand;
import seedu.taskman.logic.commands.ExitCommand;
import seedu.taskman.logic.commands.HelpCommand;
import seedu.taskman.logic.commands.HistoryCommand;
import seedu.taskman.logic.commands.IncorrectCommand;
import seedu.taskman.logic.commands.ListCommand;
import seedu.taskman.logic.commands.AddECommand;
import seedu.taskman.logic.commands.SelectCommand;
import seedu.taskman.logic.commands.StoragelocCommand;
import seedu.taskman.logic.commands.TagsCommand;
import seedu.taskman.logic.commands.UndoCommand;
import seedu.taskman.logic.commands.*;

import java.util.regex.Matcher;
import java.util.regex.Pattern;
Expand Down Expand Up @@ -57,8 +42,7 @@ public enum ArgumentPattern {
PANEL("(?<" + Group.panel.name + ">[dsf])"),
TARGET_INDEX("(?<" + Group.targetIndex.name + ">[0-9]+)"),
TITLE("(?<" + Group.title.name + ">[^/]+)"),
KEYWORDS("(?<" + Group.keywords.name + ">[^/]+)"),
OPTIONAL_KEYWORDS("(?<" + Group.keywords.name + ">(?:\\s+[^/]+)*)?"),
OPTIONAL_KEYWORDS("(?<" + Group.keywords.name + ">(?:\\s*[^/]+)*)?"),
OPTIONAL_DEADLINE("(?:\\s+d/(?<" + Group.deadline.name + ">[^/]+))?"),
OPTIONAL_SCHEDULE("(?:\\s+s/(?<" + Group.schedule.name + ">[^/]+))?"),
OPTIONAL_STATUS("(?:\\s+c/(?<" + Group.status.name + ">[^/]+))?"),
Expand Down
31 changes: 24 additions & 7 deletions src/main/java/seedu/taskman/model/event/Activity.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public enum ActivityType {EVENT, TASK}
private MutableTagsEvent activity;
private ActivityType type;

public Activity(Event event){
public Activity(Event event) {
if (event.getClass().getName().equals(Task.class.getName())) {
activity = event;
type = ActivityType.TASK;
Expand All @@ -47,11 +47,11 @@ public Activity(Activity source) {
break;
}
case EVENT: {
this.activity = new Event((ReadOnlyEvent) source.activity);
this.activity = new Event(source.activity);
break;
}
default: {
this.activity = new Event((ReadOnlyEvent) source.activity);
this.activity = new Event(source.activity);
}
}
type = source.getType();
Expand All @@ -68,8 +68,8 @@ public Optional<ReadOnlyTask> getTask() {
return Optional.of((ReadOnlyTask) activity);
}

public Optional<ReadOnlyEvent> getEvent(){
if(type != ActivityType.EVENT){
public Optional<ReadOnlyEvent> getEvent() {
if (type != ActivityType.EVENT) {
return Optional.empty();
}
return Optional.of((ReadOnlyEvent) activity);
Expand Down Expand Up @@ -206,11 +206,28 @@ public static PanelType fromString(String str) {
}
}

public String getName(){
/**
* Returns the String which will compile into a Pattern that can differentiate the different panel types, excluding the ALL type
*/
public static String getPatternString() {
StringBuilder builder = new StringBuilder();
for (PanelType panelType : PanelType.values()) {
//skip if panelType is ALL
if (!panelType.equals(ALL)) {
if (builder.length() != 0) {
builder.append('|');
}
builder.append("(" + panelType.getString() + ")");
}
}
return builder.toString();
}

public String getName() {
return name;
}

public String getString(){
public String getString() {
return string;
}

Expand Down
Loading

0 comments on commit 14921dd

Please sign in to comment.