From c585ad78e6ca2bcea6abe627466ac79257fe2741 Mon Sep 17 00:00:00 2001 From: Win Lynn Date: Mon, 8 Nov 2021 01:44:18 +0800 Subject: [PATCH 01/14] Rename listPanelPlaceholder --- src/main/java/seedu/address/ui/MainWindow.java | 17 +++++++++-------- src/main/resources/view/MainWindow.fxml | 2 +- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/main/java/seedu/address/ui/MainWindow.java b/src/main/java/seedu/address/ui/MainWindow.java index e16304d49d4..472778cb898 100644 --- a/src/main/java/seedu/address/ui/MainWindow.java +++ b/src/main/java/seedu/address/ui/MainWindow.java @@ -53,7 +53,7 @@ public class MainWindow extends UiPart { private MenuItem helpMenuItem; @FXML - private StackPane studentListPanelPlaceholder; + private StackPane listPanelPlaceholder; @FXML private ScrollPane terminalScrollPane; @@ -128,7 +128,7 @@ private void setAccelerator(MenuItem menuItem, KeyCombination keyCombination) { */ void fillInnerParts() { studentListPanel = new StudentListPanel(logic.getFilteredStudentList()); - studentListPanelPlaceholder.getChildren().add(studentListPanel.getRoot()); + listPanelPlaceholder.getChildren().add(studentListPanel.getRoot()); listName.setText(STUDENTS_LIST_NAME); @@ -139,18 +139,21 @@ void fillInnerParts() { commandBoxPlaceholder.getChildren().add(commandBox.getRoot()); } + /** + * Update the data lists. + */ void updateInnerParts() { if (logic.getDisplayType().equals(STUDENTS)) { studentListPanel = new StudentListPanel(logic.getFilteredStudentList()); - studentListPanelPlaceholder.getChildren().add(studentListPanel.getRoot()); + listPanelPlaceholder.getChildren().add(studentListPanel.getRoot()); listName.setText(STUDENTS_LIST_NAME); } else if (logic.getDisplayType().equals(TASKS)) { taskListPanel = new TaskListPanel(logic.getFilteredTaskList()); - studentListPanelPlaceholder.getChildren().add(taskListPanel.getRoot()); + listPanelPlaceholder.getChildren().add(taskListPanel.getRoot()); listName.setText(TASKS_LIST_NAME); } else if (logic.getDisplayType().equals(GROUPS)) { groupListPanel = new GroupListPanel(logic.getFilteredGroupList()); - studentListPanelPlaceholder.getChildren().add(groupListPanel.getRoot()); + listPanelPlaceholder.getChildren().add(groupListPanel.getRoot()); listName.setText(GROUPS_LIST_NAME); } } @@ -212,9 +215,7 @@ private CommandResult executeCommand(String commandText) throws CommandException if (commandResult.isShowHelp()) { handleHelp(); - } - - if (commandResult.isExit()) { + } else if (commandResult.isExit()) { handleExit(); } diff --git a/src/main/resources/view/MainWindow.fxml b/src/main/resources/view/MainWindow.fxml index ecca6f7ffd5..4dcc1423bc7 100644 --- a/src/main/resources/view/MainWindow.fxml +++ b/src/main/resources/view/MainWindow.fxml @@ -51,7 +51,7 @@ - + From 778b559f317e29a851c3ea10a1e1365a9dfdc96a Mon Sep 17 00:00:00 2001 From: Win Lynn Date: Mon, 8 Nov 2021 02:43:13 +0800 Subject: [PATCH 02/14] edit updateInnerParts method --- .../java/seedu/address/ui/MainWindow.java | 40 ++++++++++++------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/src/main/java/seedu/address/ui/MainWindow.java b/src/main/java/seedu/address/ui/MainWindow.java index 472778cb898..b31d89ae213 100644 --- a/src/main/java/seedu/address/ui/MainWindow.java +++ b/src/main/java/seedu/address/ui/MainWindow.java @@ -1,8 +1,6 @@ package seedu.address.ui; -import static seedu.address.model.Model.DisplayType.GROUPS; import static seedu.address.model.Model.DisplayType.STUDENTS; -import static seedu.address.model.Model.DisplayType.TASKS; import java.util.logging.Logger; @@ -23,6 +21,7 @@ import seedu.address.logic.commands.CommandResult; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.logic.parser.exceptions.ParseException; +import seedu.address.model.Model; /** * The Main Window. Provides the basic application layout containing @@ -44,6 +43,7 @@ public class MainWindow extends UiPart { private StudentListPanel studentListPanel; private TaskListPanel taskListPanel; private GroupListPanel groupListPanel; + private Model.DisplayType currentDisplay; private final HelpWindow helpWindow; @FXML @@ -129,6 +129,7 @@ private void setAccelerator(MenuItem menuItem, KeyCombination keyCombination) { void fillInnerParts() { studentListPanel = new StudentListPanel(logic.getFilteredStudentList()); listPanelPlaceholder.getChildren().add(studentListPanel.getRoot()); + currentDisplay = STUDENTS; listName.setText(STUDENTS_LIST_NAME); @@ -143,18 +144,26 @@ void fillInnerParts() { * Update the data lists. */ void updateInnerParts() { - if (logic.getDisplayType().equals(STUDENTS)) { - studentListPanel = new StudentListPanel(logic.getFilteredStudentList()); - listPanelPlaceholder.getChildren().add(studentListPanel.getRoot()); - listName.setText(STUDENTS_LIST_NAME); - } else if (logic.getDisplayType().equals(TASKS)) { - taskListPanel = new TaskListPanel(logic.getFilteredTaskList()); - listPanelPlaceholder.getChildren().add(taskListPanel.getRoot()); - listName.setText(TASKS_LIST_NAME); - } else if (logic.getDisplayType().equals(GROUPS)) { - groupListPanel = new GroupListPanel(logic.getFilteredGroupList()); - listPanelPlaceholder.getChildren().add(groupListPanel.getRoot()); - listName.setText(GROUPS_LIST_NAME); + Model.DisplayType type = logic.getDisplayType(); + if (currentDisplay != type) { + switch (type) { + case STUDENTS: + studentListPanel = new StudentListPanel(logic.getFilteredStudentList()); + listPanelPlaceholder.getChildren().add(studentListPanel.getRoot()); + listName.setText(STUDENTS_LIST_NAME); + break; + case TASKS: + taskListPanel = new TaskListPanel(logic.getFilteredTaskList()); + listPanelPlaceholder.getChildren().add(taskListPanel.getRoot()); + listName.setText(TASKS_LIST_NAME); + break; + case GROUPS: + groupListPanel = new GroupListPanel(logic.getFilteredGroupList()); + listPanelPlaceholder.getChildren().add(groupListPanel.getRoot()); + listName.setText(GROUPS_LIST_NAME); + break; + } + currentDisplay = type; } } @@ -217,9 +226,10 @@ private CommandResult executeCommand(String commandText) throws CommandException handleHelp(); } else if (commandResult.isExit()) { handleExit(); + } else { + updateInnerParts(); } - updateInnerParts(); terminalContainer.getChildren().add( new TerminalBox(commandText, commandResult.getFeedbackToUser())); return commandResult; From 4af5cf15585324ff9df068792400a2e1b66a79b1 Mon Sep 17 00:00:00 2001 From: Win Lynn Date: Mon, 8 Nov 2021 03:24:16 +0800 Subject: [PATCH 03/14] optimise list methods --- .../seedu/address/model/ModelManager.java | 4 +-- .../java/seedu/address/ui/GroupListPanel.java | 9 ++++- .../java/seedu/address/ui/MainWindow.java | 36 ++++++++++--------- .../seedu/address/ui/StudentListPanel.java | 7 ++++ .../java/seedu/address/ui/TaskListPanel.java | 9 ++++- src/main/resources/view/MainWindow.fxml | 2 +- 6 files changed, 46 insertions(+), 21 deletions(-) diff --git a/src/main/java/seedu/address/model/ModelManager.java b/src/main/java/seedu/address/model/ModelManager.java index f3ef685cbcf..7df6fa2e119 100644 --- a/src/main/java/seedu/address/model/ModelManager.java +++ b/src/main/java/seedu/address/model/ModelManager.java @@ -171,7 +171,7 @@ public void markStudentAttendance(Student target, int week) { requireAllNonNull(target, week); Student newStudent = target.clone(); newStudent.toggleAttendance(week); - updateGroup(target, newStudent); + setStudent(target, newStudent); } @Override @@ -185,7 +185,7 @@ public void markStudentParticipation(Student target, int week) { requireAllNonNull(target, week); Student newStudent = target.clone(); newStudent.toggleParticipation(week); - updateGroup(target, newStudent); + setStudent(target, newStudent); } @Override diff --git a/src/main/java/seedu/address/ui/GroupListPanel.java b/src/main/java/seedu/address/ui/GroupListPanel.java index 95fab5c9835..cb5e0da3490 100644 --- a/src/main/java/seedu/address/ui/GroupListPanel.java +++ b/src/main/java/seedu/address/ui/GroupListPanel.java @@ -29,10 +29,17 @@ public GroupListPanel(ObservableList groupList) { groupListView.setCellFactory(listView -> new GroupListViewCell()); } + /** + * Returns the group list region. + */ + public Region getRegion() { + return groupListView; + } + /** * Custom {@code ListCell} that displays the graphics of a {@code Group} using a {@code GroupCard}. */ - class GroupListViewCell extends ListCell { + static class GroupListViewCell extends ListCell { @Override protected void updateItem(Group group, boolean empty) { super.updateItem(group, empty); diff --git a/src/main/java/seedu/address/ui/MainWindow.java b/src/main/java/seedu/address/ui/MainWindow.java index b31d89ae213..8177c12864f 100644 --- a/src/main/java/seedu/address/ui/MainWindow.java +++ b/src/main/java/seedu/address/ui/MainWindow.java @@ -40,9 +40,9 @@ public class MainWindow extends UiPart { private final Logic logic; // Independent Ui parts residing in this Ui container - private StudentListPanel studentListPanel; - private TaskListPanel taskListPanel; - private GroupListPanel groupListPanel; + private final StudentListPanel studentListPanel; + private final TaskListPanel taskListPanel; + private final GroupListPanel groupListPanel; private Model.DisplayType currentDisplay; private final HelpWindow helpWindow; @@ -62,7 +62,7 @@ public class MainWindow extends UiPart { private VBox terminalContainer; @FXML - private StackPane statusbarPlaceholder; + private StackPane statusBarPlaceholder; @FXML private Label listName; @@ -83,6 +83,12 @@ public MainWindow(Stage primaryStage, Logic logic) { setAccelerators(); helpWindow = new HelpWindow(); + studentListPanel = new StudentListPanel(logic.getFilteredStudentList()); + groupListPanel = new GroupListPanel(logic.getFilteredGroupList()); + taskListPanel = new TaskListPanel(logic.getFilteredTaskList()); + listPanelPlaceholder.getChildren().add(groupListPanel.getRegion()); + listPanelPlaceholder.getChildren().add(taskListPanel.getRegion()); + listPanelPlaceholder.getChildren().add(studentListPanel.getRegion()); } public Stage getPrimaryStage() { @@ -127,14 +133,12 @@ private void setAccelerator(MenuItem menuItem, KeyCombination keyCombination) { * Fills up all the placeholders of this window. */ void fillInnerParts() { - studentListPanel = new StudentListPanel(logic.getFilteredStudentList()); - listPanelPlaceholder.getChildren().add(studentListPanel.getRoot()); currentDisplay = STUDENTS; listName.setText(STUDENTS_LIST_NAME); StatusBarFooter statusBarFooter = new StatusBarFooter(logic.getAddressBookFilePath()); - statusbarPlaceholder.getChildren().add(statusBarFooter.getRoot()); + statusBarPlaceholder.getChildren().add(statusBarFooter.getRoot()); CommandBox commandBox = new CommandBox(this::executeCommand); commandBoxPlaceholder.getChildren().add(commandBox.getRoot()); @@ -148,20 +152,20 @@ void updateInnerParts() { if (currentDisplay != type) { switch (type) { case STUDENTS: - studentListPanel = new StudentListPanel(logic.getFilteredStudentList()); - listPanelPlaceholder.getChildren().add(studentListPanel.getRoot()); + listPanelPlaceholder.getChildren().remove(studentListPanel.getRegion()); + listPanelPlaceholder.getChildren().add(studentListPanel.getRegion()); listName.setText(STUDENTS_LIST_NAME); break; - case TASKS: - taskListPanel = new TaskListPanel(logic.getFilteredTaskList()); - listPanelPlaceholder.getChildren().add(taskListPanel.getRoot()); - listName.setText(TASKS_LIST_NAME); - break; case GROUPS: - groupListPanel = new GroupListPanel(logic.getFilteredGroupList()); - listPanelPlaceholder.getChildren().add(groupListPanel.getRoot()); + listPanelPlaceholder.getChildren().remove(groupListPanel.getRegion()); + listPanelPlaceholder.getChildren().add(groupListPanel.getRegion()); listName.setText(GROUPS_LIST_NAME); break; + case TASKS: + listPanelPlaceholder.getChildren().remove(taskListPanel.getRegion()); + listPanelPlaceholder.getChildren().add(taskListPanel.getRegion()); + listName.setText(TASKS_LIST_NAME); + break; } currentDisplay = type; } diff --git a/src/main/java/seedu/address/ui/StudentListPanel.java b/src/main/java/seedu/address/ui/StudentListPanel.java index f1e6a281bb7..8e5387bdcc2 100644 --- a/src/main/java/seedu/address/ui/StudentListPanel.java +++ b/src/main/java/seedu/address/ui/StudentListPanel.java @@ -29,6 +29,13 @@ public StudentListPanel(ObservableList studentList) { studentListView.setCellFactory(listView -> new StudentListViewCell()); } + /** + * Returns the student list region. + */ + public Region getRegion() { + return studentListView; + } + /** * Custom {@code ListCell} that displays the graphics of a {@code Student} using a {@code StudentCard}. */ diff --git a/src/main/java/seedu/address/ui/TaskListPanel.java b/src/main/java/seedu/address/ui/TaskListPanel.java index 62e95047843..5c2e72aa08b 100644 --- a/src/main/java/seedu/address/ui/TaskListPanel.java +++ b/src/main/java/seedu/address/ui/TaskListPanel.java @@ -32,10 +32,17 @@ public TaskListPanel(ObservableList taskList) { taskListView.setCellFactory(listView -> new TaskListViewCell()); } + /** + * Returns the task list region. + */ + public Region getRegion() { + return taskListView; + } + /** * Custom {@code ListCell} that displays the graphics of a {@code Student} using a {@code StudentCard}. */ - class TaskListViewCell extends ListCell { + static class TaskListViewCell extends ListCell { @Override protected void updateItem(Task task, boolean empty) { super.updateItem(task, empty); diff --git a/src/main/resources/view/MainWindow.fxml b/src/main/resources/view/MainWindow.fxml index 4dcc1423bc7..7a7400c2d93 100644 --- a/src/main/resources/view/MainWindow.fxml +++ b/src/main/resources/view/MainWindow.fxml @@ -70,7 +70,7 @@ - + From 802a5e2075abcdd61078e88584ebe2f8c4a1c7a9 Mon Sep 17 00:00:00 2001 From: Win Lynn Date: Mon, 8 Nov 2021 03:30:15 +0800 Subject: [PATCH 04/14] fix style violations --- .../java/seedu/address/ui/MainWindow.java | 32 ++++++++++--------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/src/main/java/seedu/address/ui/MainWindow.java b/src/main/java/seedu/address/ui/MainWindow.java index 8177c12864f..3f72e368420 100644 --- a/src/main/java/seedu/address/ui/MainWindow.java +++ b/src/main/java/seedu/address/ui/MainWindow.java @@ -151,21 +151,23 @@ void updateInnerParts() { Model.DisplayType type = logic.getDisplayType(); if (currentDisplay != type) { switch (type) { - case STUDENTS: - listPanelPlaceholder.getChildren().remove(studentListPanel.getRegion()); - listPanelPlaceholder.getChildren().add(studentListPanel.getRegion()); - listName.setText(STUDENTS_LIST_NAME); - break; - case GROUPS: - listPanelPlaceholder.getChildren().remove(groupListPanel.getRegion()); - listPanelPlaceholder.getChildren().add(groupListPanel.getRegion()); - listName.setText(GROUPS_LIST_NAME); - break; - case TASKS: - listPanelPlaceholder.getChildren().remove(taskListPanel.getRegion()); - listPanelPlaceholder.getChildren().add(taskListPanel.getRegion()); - listName.setText(TASKS_LIST_NAME); - break; + case STUDENTS: + listPanelPlaceholder.getChildren().remove(studentListPanel.getRegion()); + listPanelPlaceholder.getChildren().add(studentListPanel.getRegion()); + listName.setText(STUDENTS_LIST_NAME); + break; + case GROUPS: + listPanelPlaceholder.getChildren().remove(groupListPanel.getRegion()); + listPanelPlaceholder.getChildren().add(groupListPanel.getRegion()); + listName.setText(GROUPS_LIST_NAME); + break; + case TASKS: + listPanelPlaceholder.getChildren().remove(taskListPanel.getRegion()); + listPanelPlaceholder.getChildren().add(taskListPanel.getRegion()); + listName.setText(TASKS_LIST_NAME); + break; + default: + break; } currentDisplay = type; } From a7692de9ced089b0bd0e514c9ed4010f46a4b10d Mon Sep 17 00:00:00 2001 From: Win Lynn Date: Mon, 8 Nov 2021 11:25:14 +0800 Subject: [PATCH 05/14] Fix bug for addMember --- .../java/seedu/address/model/AddressBook.java | 1 - .../seedu/address/model/ModelManager.java | 4 +- .../java/seedu/address/model/group/Group.java | 55 ++++++------------- .../seedu/address/model/group/GroupName.java | 2 +- .../address/model/group/UniqueGroupList.java | 2 +- .../seedu/address/model/student/Student.java | 52 +++--------------- .../java/seedu/address/model/task/Task.java | 9 ++- 7 files changed, 35 insertions(+), 90 deletions(-) diff --git a/src/main/java/seedu/address/model/AddressBook.java b/src/main/java/seedu/address/model/AddressBook.java index 9fabb96976a..51f49b3cc0a 100644 --- a/src/main/java/seedu/address/model/AddressBook.java +++ b/src/main/java/seedu/address/model/AddressBook.java @@ -246,7 +246,6 @@ public void addGroup(Group g) { */ public void setGroup(Group target, Group editedGroup) { requireNonNull(editedGroup); - groups.setGroup(target, editedGroup); } diff --git a/src/main/java/seedu/address/model/ModelManager.java b/src/main/java/seedu/address/model/ModelManager.java index 7df6fa2e119..26eec48b77f 100644 --- a/src/main/java/seedu/address/model/ModelManager.java +++ b/src/main/java/seedu/address/model/ModelManager.java @@ -198,8 +198,10 @@ public String getStudentParticipation(Student target, int week) { public void addMember(Student student, Group group) { requireAllNonNull(student, group); Student updatedStudent = new Student(student, group.getName()); - group.addMember(updatedStudent); + Group newGroup = group.clone(); + newGroup.addMember(updatedStudent); addressBook.setStudent(student, updatedStudent); + addressBook.setGroup(group, newGroup); } @Override diff --git a/src/main/java/seedu/address/model/group/Group.java b/src/main/java/seedu/address/model/group/Group.java index 0df3c61ccfb..a984b961941 100644 --- a/src/main/java/seedu/address/model/group/Group.java +++ b/src/main/java/seedu/address/model/group/Group.java @@ -3,6 +3,7 @@ import static java.util.Objects.requireNonNull; import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; +import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; import java.util.List; @@ -35,22 +36,9 @@ public class Group { public Group(GroupName name, Members members, LinkYear year, RepoName repoName, Set tags) { requireNonNull(name); this.name = name; - if (members != null) { - this.members = members; - } else { - this.members = new Members(); - } - if (year != null) { - this.year = year; - } else { - this.year = new LinkYear(); - } - if (repoName != null) { - this.repoName = repoName; - } else { - this.repoName = new RepoName(); - } - + this.members = Objects.requireNonNullElseGet(members, Members::new); + this.year = Objects.requireNonNullElseGet(year, LinkYear::new); + this.repoName = Objects.requireNonNullElseGet(repoName, RepoName::new); this.tags.addAll(tags); } @@ -58,12 +46,7 @@ public Group(GroupName name, Members members, LinkYear year, RepoName repoName, * Constructor for a new Group object given only name and tags */ public Group(GroupName name, Set tags) { - requireAllNonNull(name); - this.name = name; - this.members = new Members(); - this.tags.addAll(tags); - this.year = new LinkYear(); - this.repoName = new RepoName(); + this(name, new Members(), new LinkYear(), new RepoName(), tags); } public GroupName getName() { @@ -113,7 +96,7 @@ public void removeAllMembers() { } /** - * Returns the formatted Github link + * Returns the formatted GitHub link */ public String getGroupGithubLink() { if (!year.isNull() && !repoName.isNull()) { @@ -123,20 +106,6 @@ public String getGroupGithubLink() { } } - /** - * Returns the formatted Github link with given inputs - * @param year A valid year to parse - * @param repoName A valid repoName to parse - */ - public String getGroupGithubLink(LinkYear year, RepoName repoName) { - if (!year.isNull() && !repoName.isNull()) { - return String.format(new GroupGithub(year, repoName).toString(), getName()); - } else { - return "-"; - } - } - - /** * Returns an immutable tag set, which throws {@code UnsupportedOperationException} * if modification is attempted. @@ -192,7 +161,7 @@ public String toString() { .append("; Members: ") .append(getMembers()) .append("; Github: ") - .append(getGroupGithubLink());; + .append(getGroupGithubLink()); Set tags = getTags(); if (!tags.isEmpty()) { @@ -203,6 +172,16 @@ public String toString() { return builder.toString(); } + public Group clone() { + return new Group( + new GroupName(name.name), + new Members(new ArrayList<>(getMembersList())), + new LinkYear(year.year), + new RepoName(repoName.repoName), + new HashSet<>(tags) + ); + } + /** * Represents a Group's name in tApp. * Guarantees: immutable; diff --git a/src/main/java/seedu/address/model/group/GroupName.java b/src/main/java/seedu/address/model/group/GroupName.java index bd1d214df0c..5b4b09dc99e 100644 --- a/src/main/java/seedu/address/model/group/GroupName.java +++ b/src/main/java/seedu/address/model/group/GroupName.java @@ -37,7 +37,7 @@ public GroupName() { } public boolean isNull () { - return name == null ? true : false; + return name == null; } /** diff --git a/src/main/java/seedu/address/model/group/UniqueGroupList.java b/src/main/java/seedu/address/model/group/UniqueGroupList.java index 218b168fe09..1a5c5313962 100644 --- a/src/main/java/seedu/address/model/group/UniqueGroupList.java +++ b/src/main/java/seedu/address/model/group/UniqueGroupList.java @@ -122,7 +122,7 @@ public void removeStudentFromGroup(Student student, Group group) { throw new GroupNotFoundException(); } - Group updatedGroup = group; + Group updatedGroup = group.clone(); updatedGroup.removeMember(student); if (!group.isSameGroup(updatedGroup) && contains(updatedGroup)) { diff --git a/src/main/java/seedu/address/model/student/Student.java b/src/main/java/seedu/address/model/student/Student.java index e36e3958373..9f00a3d62e3 100644 --- a/src/main/java/seedu/address/model/student/Student.java +++ b/src/main/java/seedu/address/model/student/Student.java @@ -36,24 +36,8 @@ public class Student { */ public Student(Name name, Email email, StudentNumber studentNumber, UserName userName, RepoName repoName, Set tags) { - requireAllNonNull(name, email, studentNumber, tags); - this.name = name; - this.email = email; - this.studentNumber = studentNumber; - this.tags.addAll(tags); - this.attendance = new Attendance(); - this.participation = new Participation(); - if (userName != null) { - this.userName = userName; - } else { - this.userName = new UserName(); - } - if (repoName != null) { - this.repoName = repoName; - } else { - this.repoName = new RepoName(); - } - this.groupName = new GroupName(); + this(name, email, studentNumber, userName, repoName, tags, + new Attendance(), new Participation(), new GroupName()); } /** @@ -62,23 +46,15 @@ public Student(Name name, Email email, StudentNumber studentNumber, UserName use public Student(Name name, Email email, StudentNumber studentNumber, UserName userName, RepoName repoName, Set tags, Attendance attendance, Participation participation, GroupName groupName) { - requireAllNonNull(name, email, studentNumber, tags, attendance); + requireAllNonNull(name, email, studentNumber, tags, attendance, participation); this.name = name; this.email = email; this.studentNumber = studentNumber; this.tags.addAll(tags); this.attendance = attendance; this.participation = participation; - if (userName != null) { - this.userName = userName; - } else { - this.userName = new UserName(); - } - if (repoName != null) { - this.repoName = repoName; - } else { - this.repoName = new RepoName(); - } + this.userName = Objects.requireNonNullElseGet(userName, UserName::new); + this.repoName = Objects.requireNonNullElseGet(repoName, RepoName::new); this.groupName = groupName; } @@ -87,16 +63,8 @@ public Student(Name name, Email email, StudentNumber studentNumber, UserName use */ public Student(Student student, GroupName groupName) { - requireAllNonNull(student, groupName); - this.name = student.getName(); - this.email = student.getEmail(); - this.studentNumber = student.getStudentNumber(); - this.userName = student.getUserName(); - this.repoName = student.getRepoName(); - this.tags.addAll(student.getTags()); - this.attendance = student.getAttendance(); - this.participation = student.getParticipation(); - this.groupName = groupName; + this(student.name, student.email, student.studentNumber, student.userName, student.repoName, student.tags, + student.getAttendance(), student.getParticipation(), groupName); } public Name getName() { @@ -187,9 +155,7 @@ public boolean hasGroupName() { * @return a cloned Student with the exact same data fields as the original. */ public Student clone() { - Student clone = new Student(name, email, studentNumber, userName, repoName, tags, attendance, - participation, groupName); - return clone; + return new Student(name, email, studentNumber, userName, repoName, tags, attendance, participation, groupName); } /** @@ -243,7 +209,7 @@ public String toString() { } /** - * Represents a Student's github ip link in tApp. + * Represents a Student's GitHub ip link in tApp. * Guarantees: immutable; */ public static class GithubLink { diff --git a/src/main/java/seedu/address/model/task/Task.java b/src/main/java/seedu/address/model/task/Task.java index 99e05b38c4a..336c95d4d4b 100644 --- a/src/main/java/seedu/address/model/task/Task.java +++ b/src/main/java/seedu/address/model/task/Task.java @@ -1,5 +1,7 @@ package seedu.address.model.task; +import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; + import java.time.LocalDate; import java.util.Collections; import java.util.HashSet; @@ -34,6 +36,7 @@ public enum Priority { * @param priority A valid priority for the Task. */ public Task(TaskName name, Set tags, boolean isDone, Description description, Priority priority) { + requireAllNonNull(name, priority); this.name = name; this.tags.addAll(tags); this.isDone = isDone; @@ -50,11 +53,7 @@ public Task(TaskName name, Set tags, boolean isDone, Description descriptio * @param priority A valid Priority. */ public Task(TaskName name, Set tags, Description description, Priority priority) { - this.name = name; - this.tags.addAll(tags); - this.isDone = false; - this.description = description; - this.priority = priority; + this(name, tags, false, description, priority); } public TaskName getName() { From 8747ccb3cee45fcc41163d0062764c410f294fd0 Mon Sep 17 00:00:00 2001 From: Win Lynn Date: Mon, 8 Nov 2021 11:30:11 +0800 Subject: [PATCH 06/14] Add javadocs --- src/main/java/seedu/address/model/group/Group.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/seedu/address/model/group/Group.java b/src/main/java/seedu/address/model/group/Group.java index a984b961941..fb2bd6d8f0c 100644 --- a/src/main/java/seedu/address/model/group/Group.java +++ b/src/main/java/seedu/address/model/group/Group.java @@ -172,6 +172,11 @@ public String toString() { return builder.toString(); } + /** + * Makes a shallow copy of a group. + * + * @return a cloned Group with the exact same data fields as the original. + */ public Group clone() { return new Group( new GroupName(name.name), From 271fba39f9cc53a28ee63dc4e95775c91e9b964e Mon Sep 17 00:00:00 2001 From: Win Lynn Date: Mon, 8 Nov 2021 12:33:34 +0800 Subject: [PATCH 07/14] Fix editStudent bug --- src/main/java/seedu/address/model/group/Members.java | 9 ++++----- src/main/java/seedu/address/ui/GroupCard.java | 6 ++---- .../java/seedu/address/storage/JsonAdaptedGroupTest.java | 2 +- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/main/java/seedu/address/model/group/Members.java b/src/main/java/seedu/address/model/group/Members.java index 16828fc4ad9..d2608227d38 100644 --- a/src/main/java/seedu/address/model/group/Members.java +++ b/src/main/java/seedu/address/model/group/Members.java @@ -2,24 +2,23 @@ import java.util.ArrayList; +import javafx.collections.FXCollections; +import javafx.collections.ObservableList; import seedu.address.model.student.Student; public class Members { - public final ArrayList studentList; + public final ObservableList studentList = FXCollections.observableArrayList(); /** * Constructs a {@code Members}. */ - public Members() { - studentList = new ArrayList<>(); - } + public Members() { } /** * Constructs a existing {@code Members}. */ public Members(ArrayList studentList) { - this.studentList = new ArrayList<>(); this.studentList.addAll(studentList); } diff --git a/src/main/java/seedu/address/ui/GroupCard.java b/src/main/java/seedu/address/ui/GroupCard.java index 714a20314d4..a4afcf1075e 100644 --- a/src/main/java/seedu/address/ui/GroupCard.java +++ b/src/main/java/seedu/address/ui/GroupCard.java @@ -2,7 +2,6 @@ import java.util.Comparator; -import javafx.collections.FXCollections; import javafx.fxml.FXML; import javafx.scene.control.Label; import javafx.scene.layout.FlowPane; @@ -12,7 +11,7 @@ import seedu.address.model.group.Group; /** - * An UI component that displays information of a {@code Group}. + * A UI component that displays information of a {@code Group}. */ public class GroupCard extends UiPart { @@ -51,8 +50,7 @@ public GroupCard(Group group, int displayedIndex) { id.setText(displayedIndex + ". "); name.setText(group.getName().name); link.setText("Github: " + group.getGroupGithubLink()); - memberListPanel = new MemberListPanel( - FXCollections.observableArrayList(group.getMembers().studentList)); + memberListPanel = new MemberListPanel(group.getMembers().studentList); memberListPanelPlaceholder.getChildren().add(memberListPanel.getRoot()); diff --git a/src/test/java/seedu/address/storage/JsonAdaptedGroupTest.java b/src/test/java/seedu/address/storage/JsonAdaptedGroupTest.java index aa1dfc9a89e..44193e00bb0 100644 --- a/src/test/java/seedu/address/storage/JsonAdaptedGroupTest.java +++ b/src/test/java/seedu/address/storage/JsonAdaptedGroupTest.java @@ -32,7 +32,7 @@ public class JsonAdaptedGroupTest { private static final List VALID_TAGS = VALID_TAGS_SET.stream() .map(JsonAdaptedTag::new) .collect(Collectors.toList()); - private static final ArrayList VALID_MEMBER_ARRAY = GROUP1.getMembers().studentList; + private static final ArrayList VALID_MEMBER_ARRAY = new ArrayList<>(GROUP1.getMembers().studentList); private static final ArrayList VALID_MEMBERS = new ArrayList<>(VALID_MEMBER_ARRAY.stream() .map(JsonAdaptedStudent::new) .collect(Collectors.toList())); From a2e70c613d7f2d9ed59bb413ee2b84d760dbc8a9 Mon Sep 17 00:00:00 2001 From: Win Lynn Date: Mon, 8 Nov 2021 13:06:22 +0800 Subject: [PATCH 08/14] Fix addMember bug for new groups --- src/main/java/seedu/address/model/ModelManager.java | 1 + src/main/java/seedu/address/model/group/Group.java | 8 +------- src/main/java/seedu/address/model/group/Members.java | 4 ++-- 3 files changed, 4 insertions(+), 9 deletions(-) diff --git a/src/main/java/seedu/address/model/ModelManager.java b/src/main/java/seedu/address/model/ModelManager.java index 26eec48b77f..4765ebff5fd 100644 --- a/src/main/java/seedu/address/model/ModelManager.java +++ b/src/main/java/seedu/address/model/ModelManager.java @@ -259,6 +259,7 @@ public void deleteGroup(Group target) { List students = target.getMembersList(); addressBook.clearGroupFromStudents(students); addressBook.deleteGroup(target); + displayType = GROUPS; } @Override diff --git a/src/main/java/seedu/address/model/group/Group.java b/src/main/java/seedu/address/model/group/Group.java index fb2bd6d8f0c..be8337a0423 100644 --- a/src/main/java/seedu/address/model/group/Group.java +++ b/src/main/java/seedu/address/model/group/Group.java @@ -178,13 +178,7 @@ public String toString() { * @return a cloned Group with the exact same data fields as the original. */ public Group clone() { - return new Group( - new GroupName(name.name), - new Members(new ArrayList<>(getMembersList())), - new LinkYear(year.year), - new RepoName(repoName.repoName), - new HashSet<>(tags) - ); + return new Group(name, new Members(getMembersList()), year, repoName, new HashSet<>(tags)); } /** diff --git a/src/main/java/seedu/address/model/group/Members.java b/src/main/java/seedu/address/model/group/Members.java index d2608227d38..640283934f4 100644 --- a/src/main/java/seedu/address/model/group/Members.java +++ b/src/main/java/seedu/address/model/group/Members.java @@ -1,6 +1,6 @@ package seedu.address.model.group; -import java.util.ArrayList; +import java.util.List; import javafx.collections.FXCollections; import javafx.collections.ObservableList; @@ -18,7 +18,7 @@ public Members() { } /** * Constructs a existing {@code Members}. */ - public Members(ArrayList studentList) { + public Members(List studentList) { this.studentList.addAll(studentList); } From 9b0ddf13222385dfa222d16ab2e63beaa659b21c Mon Sep 17 00:00:00 2001 From: Win Lynn Date: Mon, 8 Nov 2021 17:52:38 +0800 Subject: [PATCH 09/14] Edit regex for Tag and Student Name --- src/main/java/seedu/address/model/group/Group.java | 1 - src/main/java/seedu/address/model/student/Name.java | 2 +- src/main/java/seedu/address/model/tag/Tag.java | 5 +++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/seedu/address/model/group/Group.java b/src/main/java/seedu/address/model/group/Group.java index be8337a0423..8378463fd7d 100644 --- a/src/main/java/seedu/address/model/group/Group.java +++ b/src/main/java/seedu/address/model/group/Group.java @@ -3,7 +3,6 @@ import static java.util.Objects.requireNonNull; import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; -import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; import java.util.List; diff --git a/src/main/java/seedu/address/model/student/Name.java b/src/main/java/seedu/address/model/student/Name.java index 70e2dd2f64b..05d66bdd835 100644 --- a/src/main/java/seedu/address/model/student/Name.java +++ b/src/main/java/seedu/address/model/student/Name.java @@ -16,7 +16,7 @@ public class Name { * The first character of the address must not be a whitespace, * otherwise " " (a blank string) becomes a valid input. */ - public static final String VALIDATION_REGEX = "[a-zA-Z][a-zA-Z ]+"; + public static final String VALIDATION_REGEX = "[a-zA-Z][a-zA-Z ]*"; public final String fullName; diff --git a/src/main/java/seedu/address/model/tag/Tag.java b/src/main/java/seedu/address/model/tag/Tag.java index f5805dedfe7..973f1bb7a5f 100644 --- a/src/main/java/seedu/address/model/tag/Tag.java +++ b/src/main/java/seedu/address/model/tag/Tag.java @@ -9,8 +9,9 @@ */ public class Tag { - public static final String MESSAGE_CONSTRAINTS = "Tags names should be alphanumeric with no spaces."; - public static final String VALIDATION_REGEX = "\\p{Alnum}+"; + public static final String MESSAGE_CONSTRAINTS + = "Tags names should be alphanumeric, contain no spaces, and must be between 1 to 20 characters long."; + public static final String VALIDATION_REGEX = "^[a-zA-Z0-9]{1,20}$"; public final String tagName; From 2368ca8e9ce8e1fe225cc50422ece9e6901f9a8d Mon Sep 17 00:00:00 2001 From: Win Lynn Date: Mon, 8 Nov 2021 17:59:35 +0800 Subject: [PATCH 10/14] Fix style violations --- src/main/java/seedu/address/model/tag/Tag.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/address/model/tag/Tag.java b/src/main/java/seedu/address/model/tag/Tag.java index 973f1bb7a5f..2a741b6f1a2 100644 --- a/src/main/java/seedu/address/model/tag/Tag.java +++ b/src/main/java/seedu/address/model/tag/Tag.java @@ -9,8 +9,8 @@ */ public class Tag { - public static final String MESSAGE_CONSTRAINTS - = "Tags names should be alphanumeric, contain no spaces, and must be between 1 to 20 characters long."; + public static final String MESSAGE_CONSTRAINTS = + "Tags names should be alphanumeric, contain no spaces, and must be between 1 to 20 characters long."; public static final String VALIDATION_REGEX = "^[a-zA-Z0-9]{1,20}$"; public final String tagName; From 12db5435983826b22f63a242a9092b8fe8f86be9 Mon Sep 17 00:00:00 2001 From: Win Lynn Date: Mon, 8 Nov 2021 18:06:42 +0800 Subject: [PATCH 11/14] Fix MarkTaskDoneCommand bug for multiple indexes --- .../seedu/address/logic/commands/MarkTaskDoneCommand.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/seedu/address/logic/commands/MarkTaskDoneCommand.java b/src/main/java/seedu/address/logic/commands/MarkTaskDoneCommand.java index 51acb51ab85..20c29f13d84 100644 --- a/src/main/java/seedu/address/logic/commands/MarkTaskDoneCommand.java +++ b/src/main/java/seedu/address/logic/commands/MarkTaskDoneCommand.java @@ -39,6 +39,12 @@ public CommandResult execute(Model model) throws CommandException { List savedStateList = new ArrayList<>(model.getFilteredTaskList()); StringBuilder result = new StringBuilder(); + for (Index targetIndex : targetIndexList) { + if (targetIndex.getZeroBased() >= savedStateList.size()) { + throw new CommandException(Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX); + } + } + for (Index targetIndex : targetIndexList) { if (targetIndex.getZeroBased() >= savedStateList.size()) { throw new CommandException(Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX); From 43d6edba24898056c1fb1eddbffd35ddfa4ee1e2 Mon Sep 17 00:00:00 2001 From: Win Lynn Date: Mon, 8 Nov 2021 18:21:50 +0800 Subject: [PATCH 12/14] Update Task diagram --- docs/diagrams/LogicClassDiagram.puml | 2 +- docs/diagrams/TaskClassDiagram.puml | 2 +- docs/images/LogicClassDiagram.png | Bin 51184 -> 33097 bytes docs/images/TaskClassDiagram.png | Bin 17012 -> 17807 bytes 4 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/diagrams/LogicClassDiagram.puml b/docs/diagrams/LogicClassDiagram.puml index 6d14b17b361..319df41227a 100644 --- a/docs/diagrams/LogicClassDiagram.puml +++ b/docs/diagrams/LogicClassDiagram.puml @@ -9,7 +9,7 @@ package Logic { Class AddressBookParser Class XYZCommand Class CommandResult -Class "{abstract}\nCommand" as Command +abstract Class "{abstract}\nCommand" as Command Interface Logic <> diff --git a/docs/diagrams/TaskClassDiagram.puml b/docs/diagrams/TaskClassDiagram.puml index 67f374ed013..a922c751cc0 100644 --- a/docs/diagrams/TaskClassDiagram.puml +++ b/docs/diagrams/TaskClassDiagram.puml @@ -5,7 +5,7 @@ skinparam arrowColor MODEL_COLOR skinparam classBackgroundColor MODEL_COLOR Package Task <> { -abstract Class Task +abstract Class "{abstract}\nTask" as Task Class TaskName Class Description Class TaskDate diff --git a/docs/images/LogicClassDiagram.png b/docs/images/LogicClassDiagram.png index c3028aa1cda3412b3199c703398ab5051c27a538..545d825f612533529b9da80b7ff688ae14bb1783 100644 GIT binary patch literal 33097 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 F{y+bh(|rH{ literal 51184 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

$bc@V4?8LI1rvSad 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 OCnKpKQ7Hb(>wf`Ou@sO1 diff --git a/docs/images/TaskClassDiagram.png b/docs/images/TaskClassDiagram.png index 6a865413999f6ed0bb0fe7803878dd4b2dea5311..4c893a74f2772220664f8785a83fbd5e505bd63b 100644 GIT binary patch literal 17807 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 ^@}I3zeB2xx8>?UN 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 literal 17012 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 From 36ce971af8e3193b5b65e846104d8483ccba788f Mon Sep 17 00:00:00 2001 From: Win Lynn Date: Mon, 8 Nov 2021 18:49:02 +0800 Subject: [PATCH 13/14] Update Logic diagram --- docs/images/LogicClassDiagram.png | Bin 36804 -> 33556 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/LogicClassDiagram.png b/docs/images/LogicClassDiagram.png index fcff3fa45229fcff80ed261c4c8021fd8b4c6cb6..30167a63ee32d446a3f8dbc9b74be517e47d5e64 100644 GIT binary patch literal 33556 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 P{!QwI-18z)gMj}7(-!qy literal 36804 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 From a68e909c1adee08f2b8132f7af3bf38e872db95c Mon Sep 17 00:00:00 2001 From: Win Lynn Date: Mon, 8 Nov 2021 18:50:22 +0800 Subject: [PATCH 14/14] Update Raveen's PPP --- docs/team/itsraveen.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/team/itsraveen.md b/docs/team/itsraveen.md index a7b217f97cd..010f1674eab 100644 --- a/docs/team/itsraveen.md +++ b/docs/team/itsraveen.md @@ -5,6 +5,8 @@ title: Raveen's Project Portfolio Page ### Project: tApp +tApp is a desktop app for managing tutorial groups and personal tasks, optimized for use via a Command Line Interface (CLI). It has a GUI created with JavaFX. It is written in Java, and has about 15 kLoC. + Given below are my contributions to the project. * **Code contributed:** [RepoSense link](https://nus-cs2103-ay2122s1.github.io/tp-dashboard/?search=raveen)