diff --git a/src/main/java/seedu/notor/commons/core/Messages.java b/src/main/java/seedu/notor/commons/core/Messages.java index e2d48ab1d3d..959a2921ae8 100644 --- a/src/main/java/seedu/notor/commons/core/Messages.java +++ b/src/main/java/seedu/notor/commons/core/Messages.java @@ -6,11 +6,13 @@ public class Messages { public static final String MESSAGE_UNKNOWN_COMMAND = "Unknown command"; + public static final String MESSAGE_UNEXPECTED_ERROR = "Unexpected error!"; public static final String MESSAGE_INVALID_COMMAND_FORMAT = "Invalid command format! \n%1$s"; public static final String MESSAGE_INVALID_PERSON_DISPLAYED_INDEX = "The person index provided is invalid"; public static final String MESSAGE_INVALID_GROUP_DISPLAYED_INDEX = "The group index provided is invalid"; public static final String MESSAGE_PERSONS_LISTED_OVERVIEW = "%1$d persons listed!"; public static final String MESSAGE_GROUPS_LISTED_OVERVIEW = "%1$d groups listed!"; - public static final String MESSAGE_GROUPS_NOT_LISTED = "Groups are not listed."; - + public static final String MESSAGE_GROUPS_OR_SUBGROUP_NOT_LISTED = "Groups or SubGroups are not listed. " + + "Please switch to Group or SubGroup view"; + public static final String MESSAGE_GROUPS_NOT_LISTED = "Groups are not listed. Please switch to Group view"; } diff --git a/src/main/java/seedu/notor/logic/commands/ClearNoteCommand.java b/src/main/java/seedu/notor/logic/commands/ClearNoteCommand.java index 3bf42dbc9ad..0c9935d969d 100644 --- a/src/main/java/seedu/notor/logic/commands/ClearNoteCommand.java +++ b/src/main/java/seedu/notor/logic/commands/ClearNoteCommand.java @@ -1,14 +1,18 @@ package seedu.notor.logic.commands; +import java.util.Arrays; +import java.util.List; + import seedu.notor.model.Model; import seedu.notor.ui.WarningWindow; /** - * Terminates the program. + * Clears general note. */ public class ClearNoteCommand implements Command { - + // Keep this around for command description usage. public static final String COMMAND_WORD = "clearnote"; + public static final List COMMAND_WORDS = Arrays.asList("clearnote", "cn"); public static final String MESSAGE_CLEAR_NOTE_SUCCESS = "Cleared general note."; public static final String MESSAGE_CLEAR_NOTE_CANCEL = "Clearing of general note has been cancelled."; public static final String CONFIRMATION_MESSAGE = "Do you want to proceed with clearing general note?"; diff --git a/src/main/java/seedu/notor/logic/commands/NoteCommand.java b/src/main/java/seedu/notor/logic/commands/NoteCommand.java index 00db90f71bc..b452e928f0d 100644 --- a/src/main/java/seedu/notor/logic/commands/NoteCommand.java +++ b/src/main/java/seedu/notor/logic/commands/NoteCommand.java @@ -2,6 +2,9 @@ import static java.util.Objects.requireNonNull; +import java.util.Arrays; +import java.util.List; + import seedu.notor.model.Model; @@ -10,6 +13,7 @@ */ public class NoteCommand implements Command { public static final String COMMAND_WORD = "note"; + public static final List COMMAND_WORDS = Arrays.asList("note", "n"); public static final String MESSAGE_SUCCESS = "Opened General Note."; diff --git a/src/main/java/seedu/notor/logic/commands/group/GroupClearNoteCommand.java b/src/main/java/seedu/notor/logic/commands/group/GroupClearNoteCommand.java index d87b450c11d..bab5a3c842d 100644 --- a/src/main/java/seedu/notor/logic/commands/group/GroupClearNoteCommand.java +++ b/src/main/java/seedu/notor/logic/commands/group/GroupClearNoteCommand.java @@ -2,9 +2,11 @@ import static seedu.notor.commons.util.CollectionUtil.requireAllNonNull; +import java.util.Arrays; +import java.util.List; + import seedu.notor.commons.core.index.Index; import seedu.notor.logic.commands.CommandResult; -import seedu.notor.logic.commands.person.PersonCommand; import seedu.notor.logic.executors.exceptions.ExecuteException; import seedu.notor.logic.executors.group.GroupClearNoteExecutor; import seedu.notor.logic.executors.group.GroupExecutor; @@ -14,15 +16,16 @@ */ public class GroupClearNoteCommand extends GroupCommand { public static final String COMMAND_WORD = "clearnote"; + public static final List COMMAND_WORDS = Arrays.asList("clearnote", "cn"); private static final String COMMAND_DESCRIPTION = ": Clears the notes of the group identified by the index number used in the current group listing.\n"; - public static final String MESSAGE_USAGE = PersonCommand.COMMAND_WORD + " INDEX " + COMMAND_WORD + public static final String MESSAGE_USAGE = GroupCommand.COMMAND_WORD + " INDEX /" + COMMAND_WORD + COMMAND_DESCRIPTION + "Parameters: none" + "Example: " - + PersonCommand.COMMAND_WORD + " 1 " + COMMAND_WORD; + + GroupCommand.COMMAND_WORD + " 1 /" + COMMAND_WORD; private final GroupExecutor executor; diff --git a/src/main/java/seedu/notor/logic/commands/group/GroupCommand.java b/src/main/java/seedu/notor/logic/commands/group/GroupCommand.java index 22922ace657..e9956676da4 100644 --- a/src/main/java/seedu/notor/logic/commands/group/GroupCommand.java +++ b/src/main/java/seedu/notor/logic/commands/group/GroupCommand.java @@ -8,7 +8,6 @@ public abstract class GroupCommand extends TargetedCommand { public static final String MESSAGE_USAGE = "Please use the help command to find out how to use the bot."; - public static final String COMMAND_WORD = "group"; public static final List COMMAND_WORDS = Arrays.asList("group", "g"); protected final Index index; diff --git a/src/main/java/seedu/notor/logic/commands/group/GroupDeleteCommand.java b/src/main/java/seedu/notor/logic/commands/group/GroupDeleteCommand.java index c19b98ec346..cecc40264e1 100644 --- a/src/main/java/seedu/notor/logic/commands/group/GroupDeleteCommand.java +++ b/src/main/java/seedu/notor/logic/commands/group/GroupDeleteCommand.java @@ -2,6 +2,9 @@ import static java.util.Objects.requireNonNull; +import java.util.Arrays; +import java.util.List; + import seedu.notor.commons.core.index.Index; import seedu.notor.logic.commands.CommandResult; import seedu.notor.logic.executors.exceptions.ExecuteException; @@ -13,15 +16,16 @@ public class GroupDeleteCommand extends GroupCommand { public static final String COMMAND_WORD = "delete"; + public static final List COMMAND_WORDS = Arrays.asList("delete", "d"); private static final String COMMAND_DESCRIPTION = ": Deletes the group identified by the index number used in the displayed group list.\n"; - public static final String MESSAGE_USAGE = GroupCommand.COMMAND_WORD + " INDEX " + COMMAND_WORD + public static final String MESSAGE_USAGE = GroupCommand.COMMAND_WORD + " INDEX /" + COMMAND_WORD + COMMAND_DESCRIPTION + "Parameters: none" + "Example: " - + GroupCommand.COMMAND_WORD + " 1 " + COMMAND_WORD; + + GroupCommand.COMMAND_WORD + " 1 /" + COMMAND_WORD; private final GroupDeleteExecutor executor; diff --git a/src/main/java/seedu/notor/logic/commands/group/GroupNoteCommand.java b/src/main/java/seedu/notor/logic/commands/group/GroupNoteCommand.java index 95296099c35..568a5d6a3b5 100644 --- a/src/main/java/seedu/notor/logic/commands/group/GroupNoteCommand.java +++ b/src/main/java/seedu/notor/logic/commands/group/GroupNoteCommand.java @@ -2,9 +2,11 @@ import static seedu.notor.commons.util.CollectionUtil.requireAllNonNull; +import java.util.Arrays; +import java.util.List; + import seedu.notor.commons.core.index.Index; import seedu.notor.logic.commands.CommandResult; -import seedu.notor.logic.commands.person.PersonCommand; import seedu.notor.logic.executors.exceptions.ExecuteException; import seedu.notor.logic.executors.group.GroupExecutor; import seedu.notor.logic.executors.group.GroupNoteExecutor; @@ -14,15 +16,16 @@ */ public class GroupNoteCommand extends GroupCommand { public static final String COMMAND_WORD = "note"; + public static final List COMMAND_WORDS = Arrays.asList("note", "n"); private static final String COMMAND_DESCRIPTION = ": Edits the notes of the group identified by the index number used in the current group listing.\n"; - public static final String MESSAGE_USAGE = PersonCommand.COMMAND_WORD + " INDEX " + COMMAND_WORD + public static final String MESSAGE_USAGE = GroupCommand.COMMAND_WORD + " INDEX /" + COMMAND_WORD + COMMAND_DESCRIPTION + "Parameters: none" + "Example: " - + PersonCommand.COMMAND_WORD + " 1 " + COMMAND_WORD; + + GroupCommand.COMMAND_WORD + " 1 /" + COMMAND_WORD; private final GroupExecutor executor; diff --git a/src/main/java/seedu/notor/logic/commands/person/PersonClearNoteCommand.java b/src/main/java/seedu/notor/logic/commands/person/PersonClearNoteCommand.java index 6c553381418..fbc4e1e2ed5 100644 --- a/src/main/java/seedu/notor/logic/commands/person/PersonClearNoteCommand.java +++ b/src/main/java/seedu/notor/logic/commands/person/PersonClearNoteCommand.java @@ -2,6 +2,9 @@ import static java.util.Objects.requireNonNull; +import java.util.Arrays; +import java.util.List; + import seedu.notor.commons.core.index.Index; import seedu.notor.logic.commands.CommandResult; import seedu.notor.logic.executors.exceptions.ExecuteException; @@ -12,17 +15,16 @@ * Clears the Note of the person by the given index. */ public class PersonClearNoteCommand extends PersonCommand { - public static final String COMMAND_WORD = "clearnote"; - + public static final List COMMAND_WORDS = Arrays.asList("clearnote", "cn"); private static final String COMMAND_DESCRIPTION = ": Clears the note of a person in notor.\n"; - public static final String MESSAGE_USAGE = PersonCommand.COMMAND_WORD + " INDEX " + COMMAND_WORD + public static final String MESSAGE_USAGE = PersonCommand.COMMAND_WORD + " INDEX /" + COMMAND_WORD + COMMAND_DESCRIPTION + "Parameters: none" + "Example: " - + PersonCommand.COMMAND_WORD + " 1 " + COMMAND_WORD; + + PersonCommand.COMMAND_WORD + " 1 /" + COMMAND_WORD; private final PersonExecutor executor; @@ -56,5 +58,4 @@ public boolean equals(Object other) { PersonClearNoteCommand e = (PersonClearNoteCommand) other; return executor.equals(e.executor); } - } diff --git a/src/main/java/seedu/notor/logic/executors/group/GroupClearNoteExecutor.java b/src/main/java/seedu/notor/logic/executors/group/GroupClearNoteExecutor.java index 6dfb43f7d39..c0e00aea439 100644 --- a/src/main/java/seedu/notor/logic/executors/group/GroupClearNoteExecutor.java +++ b/src/main/java/seedu/notor/logic/executors/group/GroupClearNoteExecutor.java @@ -8,8 +8,6 @@ import seedu.notor.logic.executors.exceptions.ExecuteException; import seedu.notor.model.common.Note; import seedu.notor.model.group.Group; -import seedu.notor.model.group.SubGroup; -import seedu.notor.model.group.SuperGroup; import seedu.notor.ui.WarningWindow; /** @@ -34,23 +32,18 @@ public GroupClearNoteExecutor(Index index) { @Override public CommandResult execute() throws ExecuteException { - // TODO: To update after list is done. - if (true) { - SuperGroup superGroup = super.getGroup(); - WarningWindow warningWindow = new WarningWindow(String.format(CONFIRMATION_MESSAGE, - superGroup.getName())); - warningWindow.show(); - if (warningWindow.canContinue()) { - superGroup.setNote(Note.EMPTY_NOTE); - return new CommandResult(String.format(MESSAGE_CLEAR_GROUP_NOTE_SUCCESS, superGroup)); + Group group = super.getGroup(); + WarningWindow warningWindow = new WarningWindow(String.format(CONFIRMATION_MESSAGE, group)); + warningWindow.show(); + // TODO: To update the if true after list is done. it is suppose to check person view. + if (warningWindow.canContinue()) { + if (true) { + group.setNote(Note.EMPTY_NOTE); + return new CommandResult(String.format(MESSAGE_CLEAR_GROUP_NOTE_SUCCESS, group)); } - return new CommandResult(String.format(MESSAGE_CLEAR_GROUP_NOTE_CANCEL, superGroup)); - } else if (model.isSubGroupView()) { - SubGroup subGroup = super.getSubGroup(); - return new CommandResult(generateSuccessMessage(subGroup), false, true, false, subGroup); - } else { - throw new ExecuteException(Messages.MESSAGE_GROUPS_NOT_LISTED); + throw new ExecuteException(Messages.MESSAGE_GROUPS_OR_SUBGROUP_NOT_LISTED); } + return new CommandResult(MESSAGE_CLEAR_GROUP_NOTE_CANCEL); } /** diff --git a/src/main/java/seedu/notor/logic/executors/group/GroupDeleteExecutor.java b/src/main/java/seedu/notor/logic/executors/group/GroupDeleteExecutor.java index 667a3b5f55d..40cd6d1ec5a 100644 --- a/src/main/java/seedu/notor/logic/executors/group/GroupDeleteExecutor.java +++ b/src/main/java/seedu/notor/logic/executors/group/GroupDeleteExecutor.java @@ -4,11 +4,16 @@ import seedu.notor.commons.core.index.Index; import seedu.notor.logic.commands.CommandResult; import seedu.notor.logic.executors.exceptions.ExecuteException; +import seedu.notor.model.group.Group; import seedu.notor.model.group.SubGroup; import seedu.notor.model.group.SuperGroup; +import seedu.notor.ui.WarningWindow; public class GroupDeleteExecutor extends GroupExecutor { public static final String MESSAGE_DELETE_GROUP_SUCCESS = "Deleted Group: %1$s"; + public static final String MESSAGE_DELETE_GROUP_CANCEL = "Deleting of Group: %1$s has been cancelled."; + public static final String CONFIRMATION_MESSAGE = "Do you want to proceed with deleting of Group: %1$s?"; + public GroupDeleteExecutor(Index index) { super(index); @@ -16,17 +21,23 @@ public GroupDeleteExecutor(Index index) { @Override public CommandResult execute() throws ExecuteException { - // TODO: To update after list is done. - if (true) { - SuperGroup deletedGroup = super.getGroup(); - model.deleteSuperGroup(deletedGroup); - return new CommandResult(String.format(MESSAGE_DELETE_GROUP_SUCCESS, deletedGroup)); - } else if (model.isSubGroupView()) { - SubGroup deletedSubGroup = super.getSubGroup(); - model.deleteSubGroup(deletedSubGroup); - return new CommandResult(String.format(MESSAGE_DELETE_GROUP_SUCCESS, deletedSubGroup)); - } else { - throw new ExecuteException(Messages.MESSAGE_GROUPS_NOT_LISTED); + Group deletedGroup = super.getGroup(); + WarningWindow warningWindow = new WarningWindow(String.format(CONFIRMATION_MESSAGE, deletedGroup)); + warningWindow.show(); + if (warningWindow.canContinue()) { + // TODO: To update the if true after list is done. it is suppose to check person view. + if (true) { + if (deletedGroup instanceof SuperGroup) { + model.deleteSuperGroup((SuperGroup) deletedGroup); + } else if (deletedGroup instanceof SubGroup) { + model.deleteSubGroup((SubGroup) deletedGroup); + } else { + throw new ExecuteException(Messages.MESSAGE_UNEXPECTED_ERROR); + } + return new CommandResult(String.format(MESSAGE_DELETE_GROUP_SUCCESS, deletedGroup)); + } + throw new ExecuteException(Messages.MESSAGE_GROUPS_OR_SUBGROUP_NOT_LISTED); } + return new CommandResult(String.format(MESSAGE_DELETE_GROUP_CANCEL, deletedGroup)); } } diff --git a/src/main/java/seedu/notor/logic/executors/group/GroupExecutor.java b/src/main/java/seedu/notor/logic/executors/group/GroupExecutor.java index 91abb60f3a7..476bd3ec801 100644 --- a/src/main/java/seedu/notor/logic/executors/group/GroupExecutor.java +++ b/src/main/java/seedu/notor/logic/executors/group/GroupExecutor.java @@ -6,8 +6,7 @@ import seedu.notor.commons.core.index.Index; import seedu.notor.logic.executors.Executor; import seedu.notor.logic.executors.exceptions.ExecuteException; -import seedu.notor.model.group.SubGroup; -import seedu.notor.model.group.SuperGroup; +import seedu.notor.model.group.Group; public abstract class GroupExecutor extends Executor { protected final Index index; @@ -16,18 +15,8 @@ public GroupExecutor(Index index) { this.index = index; } - protected SuperGroup getGroup() throws ExecuteException { - List lastShownList = model.getFilteredGroupList(); - - if (index.getZeroBased() >= lastShownList.size()) { - throw new ExecuteException(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); - } - - return lastShownList.get(index.getZeroBased()); - } - - protected SubGroup getSubGroup() throws ExecuteException { - List lastShownList = model.getFilteredSubGroupList(); + protected Group getGroup() throws ExecuteException { + List lastShownList = model.getFilteredGroupList(); if (index.getZeroBased() >= lastShownList.size()) { throw new ExecuteException(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); diff --git a/src/main/java/seedu/notor/logic/executors/group/GroupNoteExecutor.java b/src/main/java/seedu/notor/logic/executors/group/GroupNoteExecutor.java index 6463812900b..0f71520dddd 100644 --- a/src/main/java/seedu/notor/logic/executors/group/GroupNoteExecutor.java +++ b/src/main/java/seedu/notor/logic/executors/group/GroupNoteExecutor.java @@ -8,8 +8,6 @@ import seedu.notor.logic.executors.exceptions.ExecuteException; import seedu.notor.logic.executors.person.PersonNoteExecutor; import seedu.notor.model.group.Group; -import seedu.notor.model.group.SubGroup; -import seedu.notor.model.group.SuperGroup; /** * Executor for a GroupNoteCommand. @@ -31,16 +29,12 @@ public GroupNoteExecutor(Index index) { @Override public CommandResult execute() throws ExecuteException { - // TODO: To update after list is done. + // TODO: To update the if true after list is done. it is suppose to check person view. if (true) { - SuperGroup superGroup = super.getGroup(); - return new CommandResult(generateSuccessMessage(superGroup), false, true, false, superGroup); - } else if (model.isSubGroupView()) { - SubGroup subGroup = super.getSubGroup(); - return new CommandResult(generateSuccessMessage(subGroup), false, true, false, subGroup); - } else { - throw new ExecuteException(Messages.MESSAGE_GROUPS_NOT_LISTED); + Group group = super.getGroup(); + return new CommandResult(generateSuccessMessage(group), false, true, false, group); } + throw new ExecuteException(Messages.MESSAGE_GROUPS_OR_SUBGROUP_NOT_LISTED); } /** diff --git a/src/main/java/seedu/notor/logic/executors/group/SubGroupCreateExecutor.java b/src/main/java/seedu/notor/logic/executors/group/SubGroupCreateExecutor.java index 8622a02ec70..dee1a72c985 100644 --- a/src/main/java/seedu/notor/logic/executors/group/SubGroupCreateExecutor.java +++ b/src/main/java/seedu/notor/logic/executors/group/SubGroupCreateExecutor.java @@ -1,9 +1,11 @@ package seedu.notor.logic.executors.group; +import seedu.notor.commons.core.Messages; import seedu.notor.commons.core.index.Index; import seedu.notor.logic.commands.CommandResult; import seedu.notor.logic.executors.exceptions.ExecuteException; import seedu.notor.model.exceptions.DuplicateItemException; +import seedu.notor.model.group.Group; import seedu.notor.model.group.SubGroup; import seedu.notor.model.group.SuperGroup; @@ -27,14 +29,20 @@ public SubGroupCreateExecutor(Index index, SubGroup subGroup) { @Override public CommandResult execute() throws ExecuteException { try { if (model.getFilteredGroupList().size() > index.getOneBased()) { - SuperGroup superGroup = model.getFilteredGroupList().get(index.getZeroBased()); - superGroup.addSubGroup(subGroup); - subGroup.setParent(superGroup); + Group group = model.getFilteredGroupList().get(index.getZeroBased()); + // TODO: Guard clause for if group is a SubGroup instead. + // Make it return its own type of error. + if (group instanceof SuperGroup) { + SuperGroup superGroup = (SuperGroup) group; + superGroup.addSubGroup(subGroup); + subGroup.setParent(superGroup); + return new CommandResult(String.format(MESSAGE_SUCCESS, subGroup)); + } + throw new ExecuteException(Messages.MESSAGE_GROUPS_NOT_LISTED); } else { // TODO: stub error message, this is supposed to be for when index is out of bounds. throw new ExecuteException(""); } - return new CommandResult(String.format(MESSAGE_SUCCESS, subGroup)); } catch (DuplicateItemException e) { throw new ExecuteException(MESSAGE_DUPLICATE_GROUP); } diff --git a/src/main/java/seedu/notor/logic/executors/person/PersonAddGroupExecutor.java b/src/main/java/seedu/notor/logic/executors/person/PersonAddGroupExecutor.java index d5162a8ba48..e1e1ca22911 100644 --- a/src/main/java/seedu/notor/logic/executors/person/PersonAddGroupExecutor.java +++ b/src/main/java/seedu/notor/logic/executors/person/PersonAddGroupExecutor.java @@ -14,6 +14,7 @@ public class PersonAddGroupExecutor extends PersonExecutor { public static final String MESSAGE_SUCCESS = "Added person to %s"; public static final String MESSAGE_DUPLICATE_GROUP = "This person is already in the group"; + public static final String MESSAGE_GROUP_NOT_FOUND = "The group inputted is not found."; private final String groupName; @@ -33,6 +34,9 @@ public CommandResult execute() throws ExecuteException { try { Person person = super.getPerson(); Group group = model.findGroup(groupName); + if (group == null) { + throw new ExecuteException(MESSAGE_GROUP_NOT_FOUND); + } if (groupName.contains("_")) { person.addSubGroup((SubGroup) group); } else { diff --git a/src/main/java/seedu/notor/logic/parser/NotorParser.java b/src/main/java/seedu/notor/logic/parser/NotorParser.java index bf876d309af..6a944592a98 100644 --- a/src/main/java/seedu/notor/logic/parser/NotorParser.java +++ b/src/main/java/seedu/notor/logic/parser/NotorParser.java @@ -7,13 +7,19 @@ import java.util.regex.Pattern; import seedu.notor.logic.commands.ClearCommand; +import seedu.notor.logic.commands.ClearNoteCommand; import seedu.notor.logic.commands.Command; import seedu.notor.logic.commands.ExitCommand; import seedu.notor.logic.commands.HelpCommand; +import seedu.notor.logic.commands.NoteCommand; +import seedu.notor.logic.commands.group.GroupClearNoteCommand; import seedu.notor.logic.commands.group.GroupCommand; +import seedu.notor.logic.commands.group.GroupDeleteCommand; +import seedu.notor.logic.commands.group.GroupNoteCommand; import seedu.notor.logic.commands.group.SubGroupCreateCommand; import seedu.notor.logic.commands.group.SuperGroupCreateCommand; import seedu.notor.logic.commands.person.PersonAddGroupCommand; +import seedu.notor.logic.commands.person.PersonClearNoteCommand; import seedu.notor.logic.commands.person.PersonCommand; import seedu.notor.logic.commands.person.PersonCreateCommand; import seedu.notor.logic.commands.person.PersonDeleteCommand; @@ -21,9 +27,13 @@ import seedu.notor.logic.commands.person.PersonNoteCommand; import seedu.notor.logic.commands.person.PersonRemoveGroupCommand; import seedu.notor.logic.parser.exceptions.ParseException; +import seedu.notor.logic.parser.group.GroupClearNoteCommandParser; +import seedu.notor.logic.parser.group.GroupDeleteCommandParser; +import seedu.notor.logic.parser.group.GroupNoteCommandParser; import seedu.notor.logic.parser.group.SubGroupCreateCommandParser; import seedu.notor.logic.parser.group.SuperGroupCreateCommandParser; import seedu.notor.logic.parser.person.PersonAddGroupCommandParser; +import seedu.notor.logic.parser.person.PersonClearNoteCommandParser; import seedu.notor.logic.parser.person.PersonCreateCommandParser; import seedu.notor.logic.parser.person.PersonDeleteCommandParser; import seedu.notor.logic.parser.person.PersonEditCommandParser; @@ -77,6 +87,12 @@ public Command parseCommand(String userInput) throws ParseException { if (ClearCommand.COMMAND_WORDS.contains(commandWord)) { return new ClearCommand(); } + if (NoteCommand.COMMAND_WORDS.contains(commandWord)) { + return new NoteCommand(); + } + if (ClearNoteCommand.COMMAND_WORDS.contains(commandWord)) { + return new ClearNoteCommand(); + } throw new ParseException(MESSAGE_UNKNOWN_COMMAND); } @@ -113,6 +129,9 @@ public Command parseCommand(String userInput) throws ParseException { if (PersonNoteCommand.COMMAND_WORDS.contains(subCommandWord)) { return new PersonNoteCommandParser(index).parse(); } + if (PersonClearNoteCommand.COMMAND_WORDS.contains(subCommandWord)) { + return new PersonClearNoteCommandParser(index).parse(); + } if (PersonAddGroupCommand.COMMAND_WORDS.contains(subCommandWord)) { return new PersonAddGroupCommandParser(index, arguments).parse(); } @@ -121,9 +140,18 @@ public Command parseCommand(String userInput) throws ParseException { } } if (GroupCommand.COMMAND_WORDS.contains(commandWord)) { - if (subCommandWord.equals(SubGroupCreateCommand.COMMAND_WORD)) { + if (SubGroupCreateCommand.COMMAND_WORDS.contains(subCommandWord)) { return new SubGroupCreateCommandParser(index, arguments).parse(); } + if (GroupDeleteCommand.COMMAND_WORDS.contains(subCommandWord)) { + return new GroupDeleteCommandParser(index).parse(); + } + if (GroupNoteCommand.COMMAND_WORDS.contains(subCommandWord)) { + return new GroupNoteCommandParser(index).parse(); + } + if (GroupClearNoteCommand.COMMAND_WORDS.contains(subCommandWord)) { + return new GroupClearNoteCommandParser(index).parse(); + } } throw new ParseException(MESSAGE_UNKNOWN_COMMAND); } diff --git a/src/main/java/seedu/notor/model/Model.java b/src/main/java/seedu/notor/model/Model.java index 6ad0c9968d0..0bd8887f1e8 100644 --- a/src/main/java/seedu/notor/model/Model.java +++ b/src/main/java/seedu/notor/model/Model.java @@ -126,7 +126,7 @@ public interface Model { /** * Returns an unmodifiable view of the filtered group list */ - ObservableList getFilteredGroupList(); + ObservableList getFilteredGroupList(); /** * Updates the filter of the filtered group list to filter by the given {@code predicate}. @@ -135,24 +135,8 @@ public interface Model { */ void updateFilteredGroupList(Predicate predicate); - /** - * Returns an unmodifiable view of the filtered subgroup list - */ - ObservableList getFilteredSubGroupList(); - - /** - * Updates the filter of the filtered sybgroup list to filter by the given {@code predicate}. - * - * @throws NullPointerException if {@code predicate} is null. - */ - void updateFilteredSubGroupList(Predicate predicate); - void deleteSubGroup(SubGroup subGroup); //=========== View Check ============================================================= boolean isPersonView(); - - boolean isGroupView(); - - boolean isSubGroupView(); } diff --git a/src/main/java/seedu/notor/model/ModelManager.java b/src/main/java/seedu/notor/model/ModelManager.java index 52ae38b83a4..a9b9d5300c1 100644 --- a/src/main/java/seedu/notor/model/ModelManager.java +++ b/src/main/java/seedu/notor/model/ModelManager.java @@ -27,14 +27,8 @@ public class ModelManager implements Model { private final Notor notor; private final UserPrefs userPrefs; private final FilteredList filteredPersons; - private final FilteredList filteredGroups; + private final FilteredList filteredGroups; private boolean isPersonView = true; - private boolean isGroupView = false; - private boolean isSubGroupView = false; - /** - * Represents the current subGroups shown in the UI. It is null when not shown. - */ - private final FilteredList filteredSubGroups = null; /** * Initializes a ModelManager with the given addressBook and userPrefs. @@ -190,7 +184,7 @@ public void updateFilteredPersonList(Predicate predicate) { } @Override - public ObservableList getFilteredGroupList() { + public ObservableList getFilteredGroupList() { return filteredGroups; } @@ -200,33 +194,12 @@ public void updateFilteredGroupList(Predicate predicate) { filteredGroups.setPredicate(predicate); } - @Override - public ObservableList getFilteredSubGroupList() { - return filteredSubGroups; - } - - @Override - public void updateFilteredSubGroupList(Predicate predicate) { - requireNonNull(predicate); - filteredSubGroups.setPredicate(predicate); - } - //=========== View Check ============================================================= @Override public boolean isPersonView() { return isPersonView; } - @Override - public boolean isGroupView() { - return isGroupView; - } - - @Override - public boolean isSubGroupView() { - return isSubGroupView; - } - @Override public boolean equals(Object obj) { // short circuit if same object diff --git a/src/test/java/seedu/notor/logic/commands/PersonCreateCommandTest.java b/src/test/java/seedu/notor/logic/commands/PersonCreateCommandTest.java index aec08f75aa8..afade8e045d 100644 --- a/src/test/java/seedu/notor/logic/commands/PersonCreateCommandTest.java +++ b/src/test/java/seedu/notor/logic/commands/PersonCreateCommandTest.java @@ -205,16 +205,6 @@ public void updateFilteredGroupList(Predicate predicate) { } - @Override - public ObservableList getFilteredSubGroupList() { - return null; - } - - @Override - public void updateFilteredSubGroupList(Predicate predicate) { - - } - @Override public void deleteSubGroup(SubGroup subGroup) { @@ -224,16 +214,6 @@ public void deleteSubGroup(SubGroup subGroup) { public boolean isPersonView() { return false; } - - @Override - public boolean isGroupView() { - return false; - } - - @Override - public boolean isSubGroupView() { - return false; - } } /**