From f4c3cdbf065ffffe74040840cdd0d175e7273005 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 16 Feb 2022 15:56:26 +0800 Subject: [PATCH 001/455] Add product name to user guide --- docs/UserGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 3716f3ca8a4..d4abee7780f 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -1,6 +1,6 @@ --- layout: page -title: User Guide +title: User Guide for Coach2K22 --- AddressBook Level 3 (AB3) is a **desktop app for managing contacts, optimized for use via a Command Line Interface** (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, AB3 can get your contact management tasks done faster than traditional GUI apps. From dfe52b4c6d7d574444c9e257ee6667253d348e5c Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 16 Feb 2022 17:37:20 +0800 Subject: [PATCH 002/455] Revert user guide to initial version --- docs/UserGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index d4abee7780f..3716f3ca8a4 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -1,6 +1,6 @@ --- layout: page -title: User Guide for Coach2K22 +title: User Guide --- AddressBook Level 3 (AB3) is a **desktop app for managing contacts, optimized for use via a Command Line Interface** (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, AB3 can get your contact management tasks done faster than traditional GUI apps. From dd227c51fa5901e2d5c260ef70e208a39784bedf Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 16 Feb 2022 17:50:38 +0800 Subject: [PATCH 003/455] Add dummy commit --- docs/UserGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 3716f3ca8a4..d4abee7780f 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -1,6 +1,6 @@ --- layout: page -title: User Guide +title: User Guide for Coach2K22 --- AddressBook Level 3 (AB3) is a **desktop app for managing contacts, optimized for use via a Command Line Interface** (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, AB3 can get your contact management tasks done faster than traditional GUI apps. From 18364ed0df3d6fb08452bec65e3cc634421b645b Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 16 Feb 2022 18:08:42 +0800 Subject: [PATCH 004/455] Add Codecov badge to user guide --- docs/UserGuide.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index d4abee7780f..74b37c0e278 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -2,6 +2,7 @@ layout: page title: User Guide for Coach2K22 --- +[![codecov](https://codecov.io/gh/AY2122S2-CS2103T-W14-2/tp/branch/master/graph/badge.svg?token=N3IGRH3TN0)](https://codecov.io/gh/AY2122S2-CS2103T-W14-2/tp) AddressBook Level 3 (AB3) is a **desktop app for managing contacts, optimized for use via a Command Line Interface** (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, AB3 can get your contact management tasks done faster than traditional GUI apps. From 81da6aefc3e6b5cb8842fb6a053efb54ad3124a8 Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Fri, 18 Feb 2022 17:59:19 +0800 Subject: [PATCH 005/455] Update meta data in `/docs` --- docs/Gemfile | 2 +- docs/_config.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/Gemfile b/docs/Gemfile index 999a7099d8d..f3648431048 100644 --- a/docs/Gemfile +++ b/docs/Gemfile @@ -2,7 +2,7 @@ source "https://rubygems.org" -git_source(:github) {|repo_name| "https://github.com/#{repo_name}" } +git_source(:github) {"https://github.com/AY2122S2-CS2103T-W14-2/tp"} gem 'jekyll' gem 'github-pages', group: :jekyll_plugins diff --git a/docs/_config.yml b/docs/_config.yml index 6bd245d8f4e..a25da783525 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -1,4 +1,4 @@ -title: "AB-3" +title: "Coach2K22" theme: minima header_pages: @@ -8,7 +8,7 @@ header_pages: markdown: kramdown -repository: "se-edu/addressbook-level3" +repository: "AY2122S2-CS2103T-W14-2/tp" github_icon: "images/github-icon.png" plugins: From 079cfbe1409d2dfa16c9b953aa1361af83b23fde Mon Sep 17 00:00:00 2001 From: Rye-Catcher Date: Fri, 18 Feb 2022 19:42:13 +0800 Subject: [PATCH 006/455] Update User stories and Non-Functional Requirements in `DeveloperGuide.md` for v1.1 --- docs/DeveloperGuide.md | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 46eae8ee565..86e58fc866b 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -270,16 +270,19 @@ _{Explain here how the data archiving feature will be implemented}_ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unlikely to have) - `*` -| Priority | As a …​ | I want to …​ | So that I can…​ | -| -------- | ------------------------------------------ | ------------------------------ | ---------------------------------------------------------------------- | -| `* * *` | new user | see usage instructions | refer to instructions when I forget how to use the App | -| `* * *` | user | add a new person | | -| `* * *` | user | delete a person | remove entries that I no longer need | -| `* * *` | user | find a person by name | locate details of persons without having to go through the entire list | -| `* *` | user | hide private contact details | minimize chance of someone else seeing them by accident | -| `*` | user with many persons in the address book | sort persons by name | locate a person easily | +| Priority | As a …​ | I want to …​ | So that I can…​ | +|----------|--------------------------|-----------------------------------------------------------------|---------------------------------------------------------| +| `* * *` | forgetful coach | enter team-specific or player note | look up these information | +| `* * *` | coach | delete team-specific or player note | keep these information relevant and up-to-date | +| `* * *` | forgetful coach | remember the names of players on my team | look up them in case I forget | +| `* * *` | disorganized | add and tag new roles/teams to a contact | easily retrieve relevant information | +| `* * *` | coach | easily retrieve contact information of relevant parties | quickly broadcast information to them | +| `* * *` | organized coach | view players by their strengths and weaknesses | make informed decision on choosing the best person | +| `* *` | lazy and forgetful coach | view a list of help commands and their descriptions | easily recall how to do a specific task | +| `*` | strategic coach | change the position of players (x-y coordinate) during the game | ensure my team works together | +| `*` | coach | drag and drop a player into a calendar | plan scheduled events for them according to their needs | + -*{More to be added}* ### Use cases @@ -312,11 +315,14 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli ### Non-Functional Requirements -1. Should work on any _mainstream OS_ as long as it has Java `11` or above installed. -2. Should be able to hold up to 1000 persons without a noticeable sluggishness in performance for typical usage. -3. A user with above average typing speed for regular English text (i.e. not code, not system admin commands) should be able to accomplish most of the tasks faster using commands than using the mouse. +1. Should work on any _mainstream OS_ as long as it has Java `11` or above installed. +2. Should be able to hold up to 1000 persons without a noticeable sluggishness in performance for typical usage. +3. Should be able to hold up to 100 teams without a noticeable sluggishness in performance for typical usage. +4. Should be able to hold up to 50 tags without a noticeable sluggishness in performance for typical usage. +5. Should be portable so moving from one OS to another OS will not create problems. +6. Should warn the user when attempting to delete a contact. +7. A user with above average typing speed for regular English text (i.e. not code, not system admin commands) should be able to accomplish most of the tasks faster using commands than using the mouse. -*{More to be added}* ### Glossary From 959ef3f5da469ad24fedf99f3d08de8d8fc77b3e Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Tue, 22 Feb 2022 00:20:08 +0800 Subject: [PATCH 007/455] Update Product Scope and Glossary of Developer Guide for V1.1 --- docs/DeveloperGuide.md | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 46eae8ee565..b43e0f0dd1a 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -255,15 +255,20 @@ _{Explain here how the data archiving feature will be implemented}_ ### Product scope -**Target user profile**: +**Target user profile**: -* has a need to manage a significant number of contacts +* is a coach managing a team of players +* has a need to manage a significant number of players * prefer desktop apps over other types * can type fast * prefers typing to mouse interactions * is reasonably comfortable using CLI apps +* needs to keep track of administrative tasks +* can help enhance decision-making during games instantaneously + +**Value proposition**: helps busy sports coaches organise their overwhelming lists of contacts and messy weekly +schedules, and provides them with a platform to visualise defensive and offensive plays as the game unfolds -**Value proposition**: manage contacts faster than a typical mouse/GUI driven app ### User stories @@ -322,7 +327,11 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli * **Mainstream OS**: Windows, Linux, Unix, OS-X * **Private contact detail**: A contact detail that is not meant to be shared with others +* **Time-clash**: An error where the user attempts to schedule an event at the same time as another +* **Switchover**: The action of switching a player for another on a given field +* **Liability-Potential** The statistics of a player's overall penalties and injuries across games +*{More to be added}* -------------------------------------------------------------------------------------------------------------------- ## **Appendix: Instructions for manual testing** From 4c99736395a7af26ad947cf77b07e66024251048 Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Tue, 22 Feb 2022 00:58:29 +0800 Subject: [PATCH 008/455] Update AboutUs.md and add skeletal PPP for AAlghrairy --- docs/AboutUs.md | 10 +++++----- docs/images/aalghrairy.png | Bin 0 -> 28848 bytes docs/team/aalghrairy.md | 25 +++++++++++++++++++++++++ 3 files changed, 30 insertions(+), 5 deletions(-) create mode 100644 docs/images/aalghrairy.png create mode 100644 docs/team/aalghrairy.md diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 1c9514e966a..f55918492a1 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -29,14 +29,14 @@ You can reach us at the email `seer[at]comp.nus.edu.sg` * Role: Team Lead * Responsibilities: UI -### Johnny Doe +### Abdulelah Faisal S Al Ghrairy - + -[[github](http://github.com/johndoe)] [[portfolio](team/johndoe.md)] +[[github](http://github.com/aalghrairy)] [[portfolio](team/aalghrairy.md)] -* Role: Developer -* Responsibilities: Data +* Role: Deliverables and Deadline +* Responsibilities: Ensure project deliverables are done on time and in the right format ### Jean Doe diff --git a/docs/images/aalghrairy.png b/docs/images/aalghrairy.png new file mode 100644 index 0000000000000000000000000000000000000000..9af2b291a67c9c082041b55b4241cfdf9003b9f0 GIT binary patch literal 28848 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 literal 0 HcmV?d00001 diff --git a/docs/team/aalghrairy.md b/docs/team/aalghrairy.md new file mode 100644 index 00000000000..a4b14828c49 --- /dev/null +++ b/docs/team/aalghrairy.md @@ -0,0 +1,25 @@ +### Project: Coach2K22 + +#### Overview: +Our product helps busy sports coaches organise their overwhelming lists of contacts and messy weekly +schedules. It also provides them with a platform to visualise defensive and offensive plays as the game unfolds. + +#### Summary of Contributions: + +* **Code contributed**: [RepoSense link]( +https://nus-cs2103-ay2122s2.github.io/tp-dashboard/?search=aalghrairy&breakdown=true) +* **Enhancements Implemented:** + * _to be added soon_ +* **Contributions to the UG:** + * _to be added soon_ +* **Contributions to the DG:** + * Added the Product Scope and Glossary sections +* **Contributions to team-based tasks**: + * Maintaining the issue tracker +* **Review/mentoring contributions**: + * _to be added soon_ +* **Contributions beyond the project team:** + * Evidence of helping others: + * _to be added soon_ + * Evidence of technical leadership + * _to be added soon_ From e9978e3414bc35d94990411f611fa3e4eec0b036 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 23 Feb 2022 00:54:27 +0800 Subject: [PATCH 009/455] Update AboutUs page and add personal skeletal PPP --- docs/AboutUs.md | 13 +++++++------ docs/images/simjunheng.png | Bin 0 -> 10270 bytes docs/team/simjunheng.md | 21 +++++++++++++++++++++ 3 files changed, 28 insertions(+), 6 deletions(-) create mode 100644 docs/images/simjunheng.png create mode 100644 docs/team/simjunheng.md diff --git a/docs/AboutUs.md b/docs/AboutUs.md index f55918492a1..57aa3616f6b 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -38,15 +38,16 @@ You can reach us at the email `seer[at]comp.nus.edu.sg` * Role: Deliverables and Deadline * Responsibilities: Ensure project deliverables are done on time and in the right format -### Jean Doe +### Sim Jun Heng - + -[[github](http://github.com/johndoe)] -[[portfolio](team/johndoe.md)] +[[github](http://github.com/simjunheng)] +[[portfolio](team/simjunheng.md)] -* Role: Developer -* Responsibilities: Dev Ops + Threading +* Role: Documentation and Integration +* Responsibilities: In charge of versioning, repository maintenance, and code integration. Assist and ensure +that all documentations are in-order. ### James Doe diff --git a/docs/images/simjunheng.png b/docs/images/simjunheng.png new file mode 100644 index 0000000000000000000000000000000000000000..346bcffddd3ea203f9fc0eebb69593fd4b2978c5 GIT binary patch literal 10270 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 Date: Wed, 23 Feb 2022 01:02:45 +0800 Subject: [PATCH 010/455] Amend markdown according to checkstyle --- docs/team/simjunheng.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/team/simjunheng.md b/docs/team/simjunheng.md index 642e4ed8561..27d927a9ba1 100644 --- a/docs/team/simjunheng.md +++ b/docs/team/simjunheng.md @@ -16,6 +16,6 @@ schedules. It also provides them with a platform to visualise defensive and offe * **Contributions to team-based tasks** * _to be added soon_ * **Review/mentoring contributions** - * _to be added soon_ + * _to be added soon_ * **Contributions beyond the project team** - * _to be added soon_ \ No newline at end of file + * _to be added soon_ \ No newline at end of file From 8382335e86e541f7ed25d12d5cd3a4e4e7919060 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 23 Feb 2022 01:05:08 +0800 Subject: [PATCH 011/455] Add new line ot comply with codecov check --- docs/team/simjunheng.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/team/simjunheng.md b/docs/team/simjunheng.md index 27d927a9ba1..e757c98668f 100644 --- a/docs/team/simjunheng.md +++ b/docs/team/simjunheng.md @@ -18,4 +18,5 @@ schedules. It also provides them with a platform to visualise defensive and offe * **Review/mentoring contributions** * _to be added soon_ * **Contributions beyond the project team** - * _to be added soon_ \ No newline at end of file + * _to be added soon_ + \ No newline at end of file From f772e91e189b6851434834f664f1a31e09150934 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 23 Feb 2022 01:09:17 +0800 Subject: [PATCH 012/455] Amend markdown according to checkstyle --- docs/team/simjunheng.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/team/simjunheng.md b/docs/team/simjunheng.md index e757c98668f..08fa0907089 100644 --- a/docs/team/simjunheng.md +++ b/docs/team/simjunheng.md @@ -19,4 +19,3 @@ schedules. It also provides them with a platform to visualise defensive and offe * _to be added soon_ * **Contributions beyond the project team** * _to be added soon_ - \ No newline at end of file From dc525d2f395710d09846c8345f0ac7493b9294fb Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 23 Feb 2022 20:54:31 +0800 Subject: [PATCH 013/455] Upload UI-mockup of intended final product --- docs/images/Ui.png | Bin 14607 -> 76099 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/Ui.png b/docs/images/Ui.png index 5bd77847aa2429edac366ebe3e00650b6dd909d8..4c103c3b96cc2fa9b7e04e6da3b469f86d194f96 100644 GIT binary patch literal 76099 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 RAXge19gVx{rMDi1{6Bg4z)AoB From 9b23bde459a0bfabd2f9dbc823d32409c87d0e35 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 23 Feb 2022 21:32:51 +0800 Subject: [PATCH 014/455] Add use case for filter feature in developer guide --- docs/DeveloperGuide.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index ead0672df1e..8bf10291559 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -318,6 +318,25 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli *{More to be added}* +**Use case: Filter persons by tag** + +**MSS** + +1. User requests to list persons with a specific tag description +2. AddressBook shows a list of filtered persons + + Use case ends. + +**Extensions** + +* 1a. The given tag description cannot be found in AddressBook. + + * 1a1. AddressBook shows an error message and an empty list. + + Use case ends. + +*{More to be added}* + ### Non-Functional Requirements 1. Should work on any _mainstream OS_ as long as it has Java `11` or above installed. From b7cad15796440f1b02c0f2c738e0759f7f4fd66b Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Fri, 25 Feb 2022 15:34:30 +0800 Subject: [PATCH 015/455] Add use cases for note function and replace references to AB3 --- docs/DeveloperGuide.md | 79 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 71 insertions(+), 8 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 8bf10291559..4e6559c655e 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -291,16 +291,16 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli ### Use cases -(For all use cases below, the **System** is the `AddressBook` and the **Actor** is the `user`, unless specified otherwise) +(For all use cases below, the **System** is `Coach2K22` and the **Actor** is the `user`, unless specified otherwise) **Use case: Delete a person** **MSS** 1. User requests to list persons -2. AddressBook shows a list of persons +2. Coach2K22 shows a list of persons 3. User requests to delete a specific person in the list -4. AddressBook deletes the person +4. Coach2K22 deletes the person Use case ends. @@ -312,26 +312,89 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli * 3a. The given index is invalid. - * 3a1. AddressBook shows an error message. + * 3a1. Coach2K22 shows an error message. Use case resumes at step 2. -*{More to be added}* + +**Use case: Add a note to a person** + +**MSS** + +1. User requests to add a note to a person +2. Coach2K22 shows the new details of the person + + Use case ends. + +**Extensions** + +* 1a. The list is empty. + + * 1a1. Coach2K22 shows an error message. + + Use case ends. + +* 1b. The given list index cannot be found in Coach2K22. + + * 1b1. Coach2K22 shows an error message. + + Use case resumes at step 1. + +* 1c. The note provided is an empty string. + + * 1c1. Coach2K22 shows an error message. + + Use case resumes at step 1. + +**Use case: Delete a note from a person** + +**MSS** + +1. User requests to delete a note for a person +2. Coach2K22 shows the new details of the person + + Use case ends. + +**Extensions** + +* 1a. The list is empty. + + * 1a1. Coach2K22 shows an error message. + + Use case ends. + +* 1b. The given list index is invalid. + + * 1b1. Coach2K22 shows an error message. + + Use case resumes at step 1. + +* 1c. Notes have not been assigned to the person. + + * 1c1. Coach2K22 shows an error message. + + Use case resumes at step 1. + +* 1d. The given note index is invalid. + + * 1d1. Coach2K22 shows an error message. + + Use case resumes at step 1. **Use case: Filter persons by tag** **MSS** 1. User requests to list persons with a specific tag description -2. AddressBook shows a list of filtered persons +2. Coach2K22 shows a list of filtered persons Use case ends. **Extensions** -* 1a. The given tag description cannot be found in AddressBook. +* 1a. The given tag description cannot be found in Coach2K22. - * 1a1. AddressBook shows an error message and an empty list. + * 1a1. Coach2K22 shows an error message and an empty list. Use case ends. From dd764e416558f3a60171988539130422fdd92e36 Mon Sep 17 00:00:00 2001 From: juayhee Date: Fri, 25 Feb 2022 21:30:04 +0800 Subject: [PATCH 016/455] Update AboutUs.md --- docs/AboutUs.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 57aa3616f6b..ea2201d486b 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -19,15 +19,16 @@ You can reach us at the email `seer[at]comp.nus.edu.sg` * Role: Project Advisor -### Jane Doe +### Tan Juay Hee -[[github](http://github.com/johndoe)] +[[github](http://github.com/juayhee)] [[portfolio](team/johndoe.md)] -* Role: Team Lead -* Responsibilities: UI +* Role: Code Quality and Testing +* Responsibilities: Ensures the testing of the project is done properly and on time; looks +after code quality and ensures adherence to coding standards. ### Abdulelah Faisal S Al Ghrairy From 3c59baa70649f4cbb3269e14a3b7f40b7c50a735 Mon Sep 17 00:00:00 2001 From: juayhee Date: Fri, 25 Feb 2022 21:31:53 +0800 Subject: [PATCH 017/455] Update portfolio --- docs/AboutUs.md | 2 +- docs/team/juayhee.md | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 docs/team/juayhee.md diff --git a/docs/AboutUs.md b/docs/AboutUs.md index ea2201d486b..29010cd7ebf 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -24,7 +24,7 @@ You can reach us at the email `seer[at]comp.nus.edu.sg` [[github](http://github.com/juayhee)] -[[portfolio](team/johndoe.md)] +[[portfolio](team/juayhee.md)] * Role: Code Quality and Testing * Responsibilities: Ensures the testing of the project is done properly and on time; looks diff --git a/docs/team/juayhee.md b/docs/team/juayhee.md new file mode 100644 index 00000000000..e0b6bf0df12 --- /dev/null +++ b/docs/team/juayhee.md @@ -0,0 +1,21 @@ +### Project: Coach2K22 + +#### Overview +Our product helps busy sports coaches organise their overwhelming lists of contacts and messy weekly +schedules. It also provides them with a platform to visualise defensive and offensive plays as the game unfolds. + +#### Summary of Contributions +* **Code contributed**: [RepoSense link]( + https://nus-cs2103-ay2122s2.github.io/tp-dashboard/?search=juayhee&breakdown=true) +* **Enhancement implemented** + * _to be added soon_ +* **Contributions to the UG** + * _to be added soon_ +* **Contributions to the DG** + * _to be added soon_ +* **Contributions to team-based tasks** + * _to be added soon_ +* **Review/mentoring contributions** + * _to be added soon_ +* **Contributions beyond the project team** + * _to be added soon_ From e4dd8edf85e3b1eaaf3bf5d21d25ae50915d58da Mon Sep 17 00:00:00 2001 From: juayhee Date: Fri, 25 Feb 2022 21:43:45 +0800 Subject: [PATCH 018/455] Update README * Update content * Update build status badge link --- README.md | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 13f5c77403f..f2587cd0e2c 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,12 @@ -[![CI Status](https://github.com/se-edu/addressbook-level3/workflows/Java%20CI/badge.svg)](https://github.com/se-edu/addressbook-level3/actions) +[![CI Status](https://github.com/se-edu/addressbook-level3/workflows/Java%20CI/badge.svg)](https://github.com/AY2122S2-CS2103T-W14-2/tp) ![Ui](docs/images/Ui.png) -* This is **a sample project for Software Engineering (SE) students**.
+* **Coach2K22** is a contact management appllication that helps busy sports coaches organise their overwhelming lists of contacts and messy weekly schedules. it also provides them with a platform to visualise defensive and offensive plays as the game unfolds.
+ Example usages: - * as a starting point of a course project (as opposed to writing everything from scratch) - * as a case study -* The project simulates an ongoing software project for a desktop application (called _AddressBook_) used for managing contact details. - * It is **written in OOP fashion**. It provides a **reasonably well-written** code base **bigger** (around 6 KLoC) than what students usually write in beginner-level SE modules, without being overwhelmingly big. - * It comes with a **reasonable level of user and developer documentation**. -* It is named `AddressBook Level 3` (`AB3` for short) because it was initially created as a part of a series of `AddressBook` projects (`Level 1`, `Level 2`, `Level 3` ...). -* For the detailed documentation of this project, see the **[Address Book Product Website](https://se-education.org/addressbook-level3)**. -* This project is a **part of the se-education.org** initiative. If you would like to contribute code to this project, see [se-education.org](https://se-education.org#https://se-education.org/#contributing) for more info. + * as a contact management utility for his players and relevant contacts + * as a visualiser for real-time play to aid decision making on the fly + * as an organisation tool for teams and organisations + +* This project is based on the AddressBook-Level3 project created by the [SE-EDU initiative](https://se-education.org). \ No newline at end of file From 0092e548b3529bc0ce44ac4da2a023403c3dcaf6 Mon Sep 17 00:00:00 2001 From: juayhee Date: Fri, 25 Feb 2022 21:59:39 +0800 Subject: [PATCH 019/455] Add newline --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f2587cd0e2c..a8dbe7b378a 100644 --- a/README.md +++ b/README.md @@ -9,4 +9,5 @@ * as a visualiser for real-time play to aid decision making on the fly * as an organisation tool for teams and organisations -* This project is based on the AddressBook-Level3 project created by the [SE-EDU initiative](https://se-education.org). \ No newline at end of file +* This project is based on the AddressBook-Level3 project created by the [SE-EDU initiative](https://se-education.org).\ + From 9e9729694c3a2d536d31b8543d24ff99681f29cc Mon Sep 17 00:00:00 2001 From: juayhee Date: Fri, 25 Feb 2022 22:20:35 +0800 Subject: [PATCH 020/455] Update README * Add features list --- README.md | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a8dbe7b378a..6f66395891c 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ ![Ui](docs/images/Ui.png) +# Coach2K22 + * **Coach2K22** is a contact management appllication that helps busy sports coaches organise their overwhelming lists of contacts and messy weekly schedules. it also provides them with a platform to visualise defensive and offensive plays as the game unfolds.
Example usages: @@ -9,5 +11,20 @@ * as a visualiser for real-time play to aid decision making on the fly * as an organisation tool for teams and organisations -* This project is based on the AddressBook-Level3 project created by the [SE-EDU initiative](https://se-education.org).\ +## Features + +- Full contact management + - List all your contacts + - Add, delete and edit them + - Add notes to contacts + +- Tags + - Add tags to your contacts + - Filter and search for them based on tags for quick organisation + +- Built-in user manual + +* This project is based on the AddressBook-Level3 project created by the [SE-EDU initiative](https://se-education.org). + + From 10a7d7c5dafaf0ed1c0db458300dfe5b74acb243 Mon Sep 17 00:00:00 2001 From: Pragya Date: Fri, 25 Feb 2022 22:25:40 +0800 Subject: [PATCH 021/455] Update project user guide with contents of the draft user guide --- docs/UserGuide.md | 140 ++++++++++++++++++++++------------------------ 1 file changed, 68 insertions(+), 72 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 74b37c0e278..cdda581e636 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -4,7 +4,9 @@ title: User Guide for Coach2K22 --- [![codecov](https://codecov.io/gh/AY2122S2-CS2103T-W14-2/tp/branch/master/graph/badge.svg?token=N3IGRH3TN0)](https://codecov.io/gh/AY2122S2-CS2103T-W14-2/tp) -AddressBook Level 3 (AB3) is a **desktop app for managing contacts, optimized for use via a Command Line Interface** (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, AB3 can get your contact management tasks done faster than traditional GUI apps. +#User Guide for Coach2K22 + +Coach2K22 is a desktop app that helps busy sports coaches **organise their overwhelming lists of contacts and messy weekly schedules.** It also provides them with a **platform to visualise defensive and offensive plays** as the game unfolds * Table of Contents {:toc} @@ -22,17 +24,15 @@ AddressBook Level 3 (AB3) is a **desktop app for managing contacts, optimized fo 1. Double-click the file to start the app. The GUI similar to the below should appear in a few seconds. Note how the app contains some sample data.
![Ui](images/Ui.png) -1. Type the command in the command box and press Enter to execute it. e.g. typing **`help`** and pressing Enter will open the help window.
+1. Type the command in the command box and press Enter to execute it. e.g. typing **`help`** and pressing Enter will list all the possible commands.
Some example commands you can try: * **`list`** : Lists all contacts. - * **`add`**`n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01` : Adds a contact named `John Doe` to the Address Book. + * **`add`**`n/John Doe p/98765432 e/johnd@example.com` : Adds a contact named `John Doe`. * **`delete`**`3` : Deletes the 3rd contact shown in the current list. - * **`clear`** : Deletes all contacts. - * **`exit`** : Exits the app. 1. Refer to the [Features](#features) below for details of each command. @@ -65,129 +65,125 @@ AddressBook Level 3 (AB3) is a **desktop app for managing contacts, optimized fo -### Viewing help : `help` -Shows a message explaning how to access the help page. +### Listing all contacts : `list` -![help message](images/helpMessage.png) +Shows a list of all persons in our contact list. -Format: `help` +Format: `list` ### Adding a person: `add` -Adds a person to the address book. +Adds a person to our contact list. -Format: `add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]…​` +Format: `add n/NAME p/PHONE_NUMBER e/EMAIL [t/TAG_NAME]…​`
:bulb: **Tip:** A person can have any number of tags (including 0)
Examples: -* `add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01` -* `add n/Betsy Crowe t/friend e/betsycrowe@example.com a/Newgate Prison p/1234567 t/criminal` +* `add n/Johnson p/83918273 e/johnson@gmail.com t/Hustlers` -### Listing all persons : `list` -Shows a list of all persons in the address book. +### Deleting a person: `del` -Format: `list` +Delete a person from our contact list. + +Format: `del INDEX` + +Examples: +* `del 1` deletes the first person in the contact list. -### Editing a person : `edit` -Edits an existing person in the address book. +### Adding a tag : `tag-add` -Format: `edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG]…​` +Add tags to a selected person from our contact list. -* Edits the person at the specified `INDEX`. The index refers to the index number shown in the displayed person list. The index **must be a positive integer** 1, 2, 3, …​ -* At least one of the optional fields must be provided. -* Existing values will be updated to the input values. -* When editing tags, the existing tags of the person will be removed i.e adding of tags is not cumulative. -* You can remove all the person’s tags by typing `t/` without - specifying any tags after it. +Format: `tag-add INDEX TAG_NAME` Examples: -* `edit 1 p/91234567 e/johndoe@example.com` Edits the phone number and email address of the 1st person to be `91234567` and `johndoe@example.com` respectively. -* `edit 2 n/Betsy Crower t/` Edits the name of the 2nd person to be `Betsy Crower` and clears all existing tags. +* `tag-add 1 Public Relations` adds the tag `Public Relations` to the first person in the contact list. -### Locating persons by name: `find` -Finds persons whose names contain any of the given keywords. +### Deleting a tag : `tag-del` -Format: `find KEYWORD [MORE_KEYWORDS]` +Add tags to a selected person from our contact list. -* The search is case-insensitive. e.g `hans` will match `Hans` -* The order of the keywords does not matter. e.g. `Hans Bo` will match `Bo Hans` -* Only the name is searched. -* Only full words will be matched e.g. `Han` will not match `Hans` -* Persons matching at least one keyword will be returned (i.e. `OR` search). - e.g. `Hans Bo` will return `Hans Gruber`, `Bo Yang` +Format: `tag-del INDEX TAG_INDEX` Examples: -* `find John` returns `john` and `John Doe` -* `find alex david` returns `Alex Yeoh`, `David Li`
- ![result for 'find alex david'](images/findAlexDavidResult.png) +* `tag-del 1 1` deletes the first tag from the first person in the contact list. -### Deleting a person : `delete` -Deletes the specified person from the address book. +### Locating persons by keyword : `find` -Format: `delete INDEX` +Find persons matching any of the given keywords from our contact list. -* Deletes the person at the specified `INDEX`. -* The index refers to the index number shown in the displayed person list. -* The index **must be a positive integer** 1, 2, 3, …​ +Format: `find KEYWORD [MORE_KEYWORDS]` Examples: -* `list` followed by `delete 2` deletes the 2nd person in the address book. -* `find Betsy` followed by `delete 1` deletes the 1st person in the results of the `find` command. +* `find n/Alan t/team1` -### Clearing all entries : `clear` -Clears all entries from the address book. +### Adding a note : `note-add` -Format: `clear` +Add a note to a selected person from our contact list. -### Exiting the program : `exit` +Format: `note-add INDEX NOTE_DESCRIPTION` -Exits the program. +Examples: +* `note-add 1 Surgery Scheduled for tomorrow` adds the note "Surgery Scheduled for tomorrow" to the 1st person in the contact list. -Format: `exit` -### Saving the data +### Deleting a note : `note-del` + +Delete the note to a selected person from our contact list. -AddressBook data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually. +Format: `note-del INDEX NOTE_INDEX` + +* Deletes the person at the specified `INDEX`. +* The index refers to the index number shown in the displayed person list. +* The index **must be a positive integer** 1, 2, 3, …​ -### Editing the data file +Examples: +* `note-del 1 1` deletes the first note from the first person in the contact list. -AddressBook data are saved as a JSON file `[JAR file location]/data/addressbook.json`. Advanced users are welcome to update data directly by editing that data file. -
:exclamation: **Caution:** -If your changes to the data file makes its format invalid, AddressBook will discard all data and start with an empty data file at the next run. -
+### Listing all the commands : `help` -### Archiving data files `[coming in v2.0]` +Show a list of all the commands with their respective format and a short description of what they do. -_Details coming soon ..._ +Format: `help` + + +### Exiting the program : `exit` + +Exits the program. + +Format: `exit` -------------------------------------------------------------------------------------------------------------------- ## FAQ **Q**: How do I transfer my data to another Computer?
-**A**: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous AddressBook home folder. +**A**: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous Coach2k22 home folder. -------------------------------------------------------------------------------------------------------------------- ## Command summary -Action | Format, Examples ---------|------------------ -**Add** | `add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]…​`
e.g., `add n/James Ho p/22224444 e/jamesho@example.com a/123, Clementi Rd, 1234665 t/friend t/colleague` -**Clear** | `clear` -**Delete** | `delete INDEX`
e.g., `delete 3` -**Edit** | `edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG]…​`
e.g.,`edit 2 n/James Lee e/jameslee@example.com` -**Find** | `find KEYWORD [MORE_KEYWORDS]`
e.g., `find James Jake` -**List** | `list` -**Help** | `help` +| Action | Format, Examples | +|--------------|--------------------------------------------------------------------------------------------------------------------| +| **List** | `list` | +| **Add** | `add n/NAME p/PHONE_NUMBER e/EMAIL [t/TAG]…​`
e.g., `add n/Johnson p/83918273 e/johnson@gmail.com t/Hustlers` | +| **Del** | `del INDEX`
e.g., `del 1` | +| **tag-add** | `tag-add INDEX TAG_NAME`
e.g., `tag-add 1 Public Relations` | +| **tag-del** | `tag-del INDEX TAG_INDEX`
e.g., `tag-del 1 1` | +| **Find** | `find KEYWORD [MORE_KEYWORDS]`
e.g., `find n/Alan t/team1` | +| **note-add** | `note-add INDEX NOTE_DESCRIPTION`
e.g., `note-add 1 Surgery Scheduled for tomorrow` | +| **note-del** | `note-del INDEX NOTE_INDEX`
e.g., `note-del 1 1` | +| **Help** | `help` | +| **Exit** | `exit` | From bd27cd5de8c0cd95ab0e77e5393a687247166b03 Mon Sep 17 00:00:00 2001 From: juayhee Date: Fri, 25 Feb 2022 22:57:09 +0800 Subject: [PATCH 022/455] Update README --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 6f66395891c..6c90f14b5f7 100644 --- a/README.md +++ b/README.md @@ -17,8 +17,6 @@ - List all your contacts - Add, delete and edit them - Add notes to contacts - -- Tags - Add tags to your contacts - Filter and search for them based on tags for quick organisation From 9ad05f582d64de3abe7519805ac9509d50a93f59 Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Sun, 27 Feb 2022 06:02:42 +0800 Subject: [PATCH 023/455] Update Xiaoteng's info in AboutUs page and add a personal skeletal PPP --- docs/AboutUs.md | 14 ++++++++------ docs/images/rye-catcher.png | Bin 0 -> 55869 bytes docs/team/rye-catcher.md | 21 +++++++++++++++++++++ 3 files changed, 29 insertions(+), 6 deletions(-) create mode 100644 docs/images/rye-catcher.png create mode 100644 docs/team/rye-catcher.md diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 57aa3616f6b..3cd195d2ad9 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -49,12 +49,14 @@ You can reach us at the email `seer[at]comp.nus.edu.sg` * Responsibilities: In charge of versioning, repository maintenance, and code integration. Assist and ensure that all documentations are in-order. -### James Doe +### Lyu Xiaoteng - + -[[github](http://github.com/johndoe)] -[[portfolio](team/johndoe.md)] +[[github](https://github.com/Rye-Catcher)] +[[portfolio](team/rye-catcher.md)] +[[blog](https://x1a0teng.page/posts/about/)] -* Role: Developer -* Responsibilities: UI +* Role: Documentation and Integration +* Responsibilities: Ensure project documentation in good quality +and various parts of codes can be integrated to create a whole. diff --git a/docs/images/rye-catcher.png b/docs/images/rye-catcher.png new file mode 100644 index 0000000000000000000000000000000000000000..02335f237b28f15d436f5a33708979992bb2e2f5 GIT binary patch literal 55869 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 literal 0 HcmV?d00001 diff --git a/docs/team/rye-catcher.md b/docs/team/rye-catcher.md new file mode 100644 index 00000000000..a0acccd6703 --- /dev/null +++ b/docs/team/rye-catcher.md @@ -0,0 +1,21 @@ +### Project: Coach2K22 + +#### Overview +Our product helps busy sports coaches organise their overwhelming lists of contacts and messy weekly +schedules. It also provides them with a platform to visualise defensive and offensive plays as the game unfolds. + +#### Summary of Contributions +* **Code contributed**: [RepoSense link]( + https://nus-cs2103-ay2122s2.github.io/tp-dashboard/?search=rye-catcher&breakdown=true&sort=groupTitle&sortWithin=title&since=2022-02-18&timeframe=commit&mergegroup=&groupSelect=groupByRepos&checkedFileTypes=docs~functional-code~test-code~other) +* **Enhancement implemented** + * _to be added soon_ +* **Contributions to the UG** + * _to be added soon_ +* **Contributions to the DG** + * _to be added soon_ +* **Contributions to team-based tasks** + * _to be added soon_ +* **Review/mentoring contributions** + * _to be added soon_ +* **Contributions beyond the project team** + * _to be added soon_ From 00ca2e304898501f38154e892e7d19a15aa25eeb Mon Sep 17 00:00:00 2001 From: juayhee Date: Mon, 28 Feb 2022 20:34:57 +0800 Subject: [PATCH 024/455] Merge branch 'master' of https://github.com/AY2122S2-CS2103T-W14-2/tp into Week7-JuayHee --- docs/AboutUs.md | 14 ++-- docs/DeveloperGuide.md | 79 +++++++++++++++++--- docs/UserGuide.md | 140 ++++++++++++++++++------------------ docs/images/rye-catcher.png | Bin 0 -> 55869 bytes docs/team/rye-catcher.md | 21 ++++++ 5 files changed, 168 insertions(+), 86 deletions(-) create mode 100644 docs/images/rye-catcher.png create mode 100644 docs/team/rye-catcher.md diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 29010cd7ebf..7730370aae7 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -50,12 +50,14 @@ after code quality and ensures adherence to coding standards. * Responsibilities: In charge of versioning, repository maintenance, and code integration. Assist and ensure that all documentations are in-order. -### James Doe +### Lyu Xiaoteng - + -[[github](http://github.com/johndoe)] -[[portfolio](team/johndoe.md)] +[[github](https://github.com/Rye-Catcher)] +[[portfolio](team/rye-catcher.md)] +[[blog](https://x1a0teng.page/posts/about/)] -* Role: Developer -* Responsibilities: UI +* Role: Documentation and Integration +* Responsibilities: Ensure project documentation in good quality +and various parts of codes can be integrated to create a whole. diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 8bf10291559..4e6559c655e 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -291,16 +291,16 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli ### Use cases -(For all use cases below, the **System** is the `AddressBook` and the **Actor** is the `user`, unless specified otherwise) +(For all use cases below, the **System** is `Coach2K22` and the **Actor** is the `user`, unless specified otherwise) **Use case: Delete a person** **MSS** 1. User requests to list persons -2. AddressBook shows a list of persons +2. Coach2K22 shows a list of persons 3. User requests to delete a specific person in the list -4. AddressBook deletes the person +4. Coach2K22 deletes the person Use case ends. @@ -312,26 +312,89 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli * 3a. The given index is invalid. - * 3a1. AddressBook shows an error message. + * 3a1. Coach2K22 shows an error message. Use case resumes at step 2. -*{More to be added}* + +**Use case: Add a note to a person** + +**MSS** + +1. User requests to add a note to a person +2. Coach2K22 shows the new details of the person + + Use case ends. + +**Extensions** + +* 1a. The list is empty. + + * 1a1. Coach2K22 shows an error message. + + Use case ends. + +* 1b. The given list index cannot be found in Coach2K22. + + * 1b1. Coach2K22 shows an error message. + + Use case resumes at step 1. + +* 1c. The note provided is an empty string. + + * 1c1. Coach2K22 shows an error message. + + Use case resumes at step 1. + +**Use case: Delete a note from a person** + +**MSS** + +1. User requests to delete a note for a person +2. Coach2K22 shows the new details of the person + + Use case ends. + +**Extensions** + +* 1a. The list is empty. + + * 1a1. Coach2K22 shows an error message. + + Use case ends. + +* 1b. The given list index is invalid. + + * 1b1. Coach2K22 shows an error message. + + Use case resumes at step 1. + +* 1c. Notes have not been assigned to the person. + + * 1c1. Coach2K22 shows an error message. + + Use case resumes at step 1. + +* 1d. The given note index is invalid. + + * 1d1. Coach2K22 shows an error message. + + Use case resumes at step 1. **Use case: Filter persons by tag** **MSS** 1. User requests to list persons with a specific tag description -2. AddressBook shows a list of filtered persons +2. Coach2K22 shows a list of filtered persons Use case ends. **Extensions** -* 1a. The given tag description cannot be found in AddressBook. +* 1a. The given tag description cannot be found in Coach2K22. - * 1a1. AddressBook shows an error message and an empty list. + * 1a1. Coach2K22 shows an error message and an empty list. Use case ends. diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 74b37c0e278..cdda581e636 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -4,7 +4,9 @@ title: User Guide for Coach2K22 --- [![codecov](https://codecov.io/gh/AY2122S2-CS2103T-W14-2/tp/branch/master/graph/badge.svg?token=N3IGRH3TN0)](https://codecov.io/gh/AY2122S2-CS2103T-W14-2/tp) -AddressBook Level 3 (AB3) is a **desktop app for managing contacts, optimized for use via a Command Line Interface** (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, AB3 can get your contact management tasks done faster than traditional GUI apps. +#User Guide for Coach2K22 + +Coach2K22 is a desktop app that helps busy sports coaches **organise their overwhelming lists of contacts and messy weekly schedules.** It also provides them with a **platform to visualise defensive and offensive plays** as the game unfolds * Table of Contents {:toc} @@ -22,17 +24,15 @@ AddressBook Level 3 (AB3) is a **desktop app for managing contacts, optimized fo 1. Double-click the file to start the app. The GUI similar to the below should appear in a few seconds. Note how the app contains some sample data.
![Ui](images/Ui.png) -1. Type the command in the command box and press Enter to execute it. e.g. typing **`help`** and pressing Enter will open the help window.
+1. Type the command in the command box and press Enter to execute it. e.g. typing **`help`** and pressing Enter will list all the possible commands.
Some example commands you can try: * **`list`** : Lists all contacts. - * **`add`**`n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01` : Adds a contact named `John Doe` to the Address Book. + * **`add`**`n/John Doe p/98765432 e/johnd@example.com` : Adds a contact named `John Doe`. * **`delete`**`3` : Deletes the 3rd contact shown in the current list. - * **`clear`** : Deletes all contacts. - * **`exit`** : Exits the app. 1. Refer to the [Features](#features) below for details of each command. @@ -65,129 +65,125 @@ AddressBook Level 3 (AB3) is a **desktop app for managing contacts, optimized fo -### Viewing help : `help` -Shows a message explaning how to access the help page. +### Listing all contacts : `list` -![help message](images/helpMessage.png) +Shows a list of all persons in our contact list. -Format: `help` +Format: `list` ### Adding a person: `add` -Adds a person to the address book. +Adds a person to our contact list. -Format: `add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]…​` +Format: `add n/NAME p/PHONE_NUMBER e/EMAIL [t/TAG_NAME]…​`
:bulb: **Tip:** A person can have any number of tags (including 0)
Examples: -* `add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01` -* `add n/Betsy Crowe t/friend e/betsycrowe@example.com a/Newgate Prison p/1234567 t/criminal` +* `add n/Johnson p/83918273 e/johnson@gmail.com t/Hustlers` -### Listing all persons : `list` -Shows a list of all persons in the address book. +### Deleting a person: `del` -Format: `list` +Delete a person from our contact list. + +Format: `del INDEX` + +Examples: +* `del 1` deletes the first person in the contact list. -### Editing a person : `edit` -Edits an existing person in the address book. +### Adding a tag : `tag-add` -Format: `edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG]…​` +Add tags to a selected person from our contact list. -* Edits the person at the specified `INDEX`. The index refers to the index number shown in the displayed person list. The index **must be a positive integer** 1, 2, 3, …​ -* At least one of the optional fields must be provided. -* Existing values will be updated to the input values. -* When editing tags, the existing tags of the person will be removed i.e adding of tags is not cumulative. -* You can remove all the person’s tags by typing `t/` without - specifying any tags after it. +Format: `tag-add INDEX TAG_NAME` Examples: -* `edit 1 p/91234567 e/johndoe@example.com` Edits the phone number and email address of the 1st person to be `91234567` and `johndoe@example.com` respectively. -* `edit 2 n/Betsy Crower t/` Edits the name of the 2nd person to be `Betsy Crower` and clears all existing tags. +* `tag-add 1 Public Relations` adds the tag `Public Relations` to the first person in the contact list. -### Locating persons by name: `find` -Finds persons whose names contain any of the given keywords. +### Deleting a tag : `tag-del` -Format: `find KEYWORD [MORE_KEYWORDS]` +Add tags to a selected person from our contact list. -* The search is case-insensitive. e.g `hans` will match `Hans` -* The order of the keywords does not matter. e.g. `Hans Bo` will match `Bo Hans` -* Only the name is searched. -* Only full words will be matched e.g. `Han` will not match `Hans` -* Persons matching at least one keyword will be returned (i.e. `OR` search). - e.g. `Hans Bo` will return `Hans Gruber`, `Bo Yang` +Format: `tag-del INDEX TAG_INDEX` Examples: -* `find John` returns `john` and `John Doe` -* `find alex david` returns `Alex Yeoh`, `David Li`
- ![result for 'find alex david'](images/findAlexDavidResult.png) +* `tag-del 1 1` deletes the first tag from the first person in the contact list. -### Deleting a person : `delete` -Deletes the specified person from the address book. +### Locating persons by keyword : `find` -Format: `delete INDEX` +Find persons matching any of the given keywords from our contact list. -* Deletes the person at the specified `INDEX`. -* The index refers to the index number shown in the displayed person list. -* The index **must be a positive integer** 1, 2, 3, …​ +Format: `find KEYWORD [MORE_KEYWORDS]` Examples: -* `list` followed by `delete 2` deletes the 2nd person in the address book. -* `find Betsy` followed by `delete 1` deletes the 1st person in the results of the `find` command. +* `find n/Alan t/team1` -### Clearing all entries : `clear` -Clears all entries from the address book. +### Adding a note : `note-add` -Format: `clear` +Add a note to a selected person from our contact list. -### Exiting the program : `exit` +Format: `note-add INDEX NOTE_DESCRIPTION` -Exits the program. +Examples: +* `note-add 1 Surgery Scheduled for tomorrow` adds the note "Surgery Scheduled for tomorrow" to the 1st person in the contact list. -Format: `exit` -### Saving the data +### Deleting a note : `note-del` + +Delete the note to a selected person from our contact list. -AddressBook data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually. +Format: `note-del INDEX NOTE_INDEX` + +* Deletes the person at the specified `INDEX`. +* The index refers to the index number shown in the displayed person list. +* The index **must be a positive integer** 1, 2, 3, …​ -### Editing the data file +Examples: +* `note-del 1 1` deletes the first note from the first person in the contact list. -AddressBook data are saved as a JSON file `[JAR file location]/data/addressbook.json`. Advanced users are welcome to update data directly by editing that data file. -
:exclamation: **Caution:** -If your changes to the data file makes its format invalid, AddressBook will discard all data and start with an empty data file at the next run. -
+### Listing all the commands : `help` -### Archiving data files `[coming in v2.0]` +Show a list of all the commands with their respective format and a short description of what they do. -_Details coming soon ..._ +Format: `help` + + +### Exiting the program : `exit` + +Exits the program. + +Format: `exit` -------------------------------------------------------------------------------------------------------------------- ## FAQ **Q**: How do I transfer my data to another Computer?
-**A**: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous AddressBook home folder. +**A**: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous Coach2k22 home folder. -------------------------------------------------------------------------------------------------------------------- ## Command summary -Action | Format, Examples ---------|------------------ -**Add** | `add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]…​`
e.g., `add n/James Ho p/22224444 e/jamesho@example.com a/123, Clementi Rd, 1234665 t/friend t/colleague` -**Clear** | `clear` -**Delete** | `delete INDEX`
e.g., `delete 3` -**Edit** | `edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG]…​`
e.g.,`edit 2 n/James Lee e/jameslee@example.com` -**Find** | `find KEYWORD [MORE_KEYWORDS]`
e.g., `find James Jake` -**List** | `list` -**Help** | `help` +| Action | Format, Examples | +|--------------|--------------------------------------------------------------------------------------------------------------------| +| **List** | `list` | +| **Add** | `add n/NAME p/PHONE_NUMBER e/EMAIL [t/TAG]…​`
e.g., `add n/Johnson p/83918273 e/johnson@gmail.com t/Hustlers` | +| **Del** | `del INDEX`
e.g., `del 1` | +| **tag-add** | `tag-add INDEX TAG_NAME`
e.g., `tag-add 1 Public Relations` | +| **tag-del** | `tag-del INDEX TAG_INDEX`
e.g., `tag-del 1 1` | +| **Find** | `find KEYWORD [MORE_KEYWORDS]`
e.g., `find n/Alan t/team1` | +| **note-add** | `note-add INDEX NOTE_DESCRIPTION`
e.g., `note-add 1 Surgery Scheduled for tomorrow` | +| **note-del** | `note-del INDEX NOTE_INDEX`
e.g., `note-del 1 1` | +| **Help** | `help` | +| **Exit** | `exit` | diff --git a/docs/images/rye-catcher.png b/docs/images/rye-catcher.png new file mode 100644 index 0000000000000000000000000000000000000000..02335f237b28f15d436f5a33708979992bb2e2f5 GIT binary patch literal 55869 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 literal 0 HcmV?d00001 diff --git a/docs/team/rye-catcher.md b/docs/team/rye-catcher.md new file mode 100644 index 00000000000..a0acccd6703 --- /dev/null +++ b/docs/team/rye-catcher.md @@ -0,0 +1,21 @@ +### Project: Coach2K22 + +#### Overview +Our product helps busy sports coaches organise their overwhelming lists of contacts and messy weekly +schedules. It also provides them with a platform to visualise defensive and offensive plays as the game unfolds. + +#### Summary of Contributions +* **Code contributed**: [RepoSense link]( + https://nus-cs2103-ay2122s2.github.io/tp-dashboard/?search=rye-catcher&breakdown=true&sort=groupTitle&sortWithin=title&since=2022-02-18&timeframe=commit&mergegroup=&groupSelect=groupByRepos&checkedFileTypes=docs~functional-code~test-code~other) +* **Enhancement implemented** + * _to be added soon_ +* **Contributions to the UG** + * _to be added soon_ +* **Contributions to the DG** + * _to be added soon_ +* **Contributions to team-based tasks** + * _to be added soon_ +* **Review/mentoring contributions** + * _to be added soon_ +* **Contributions beyond the project team** + * _to be added soon_ From e884647ab2a66314cb7e66019ed999bb18905a0b Mon Sep 17 00:00:00 2001 From: juayhee Date: Mon, 28 Feb 2022 20:37:41 +0800 Subject: [PATCH 025/455] Add juayhee.png --- docs/images/juayhee.png | Bin 0 -> 201166 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/images/juayhee.png diff --git a/docs/images/juayhee.png b/docs/images/juayhee.png new file mode 100644 index 0000000000000000000000000000000000000000..43d58ffb25ead3fe8d6ddc8195c4bafbb0fa0b0a GIT binary patch literal 201166 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½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 z zeG=yh(H^-cN5|4^osx69jiDGF$)8A7C)>~{-*YB5>$y}4QT1<^)DY%$IoNs38d-1ReD8xPE=ub{q#Sn_IkFKx4 z53O4&xi@FQ3#|x|D}M?_b=!EYg34nS$}{7Tq!lTs+zqHO*PZ~Iq(^LXakG`}!+bTy zuIX-~L%BtTY7tD+HaTj8DLYh7F=AilCLKAhs_0VHqFCENt2DWVBPOXb5jSlHug$#=SdGf?u@pHlwkj4YRIKRi*~Irw$IZE(dgZX@trun`tA=e`)xf5%u zb^qzwfKbo@P4YA9rp6D=Xz57;67|AYYj=31yb9ezD3->jdJy^R9Pmu)&ek zuWxNct&=p%7EeSz9c)g~no{Yg>QnVX`pN|hkwWeEWT#_Vk{1W}0hCUNJa4U3iQz3Z z-#5!tgV!!SofloYpgU;EU_K;ZzJB+Ls-Yhy6TYxEl}y$_vUGJ6$gI-7j|f=f@NwV91(5k(fw6C21;?=_pV|=$*C! zYF`8_E@Y{Zv!u%*BVTe{>S?K;ZPww|wYlVI(SlFc2|>iX;X6C%*4 z$(*GlV<1rYzUH*$S!eyR{+G!`XNTKuPgQpM6uD)?Ws&czWb+;LRNvK8ot9zMPU=)M zbi*Br&l8bdulk&-=5y9@;+M~)M$!HdK+>IN_~Frw$il-Bq|(worq-Vt5*x+>F9&;n zF*Ll4=W?1duzBK=t%RVgYYV=Tj0R7eN-obQJ6FvnAtXk@i<_SPl-0UUy zAW^~2zpXhgNy2b71<1T6TkZ;*x-&-Pu`|so!p%-?;URBcj?IR<*12-BZOv&=%!-Wl zoE9YBu*Mse$O!y2TaJXRt2N@^t_dn=Lgn%33W2gOLC_2Q*-QWRS}t9x0Ynja0cf@P z2cL{?Au7ILqMFoQ8A|u{X?W*r<6p3r_SDNNfn0|HiRECR87HhmJNHrammBO64Pgy` z12`y<11nCvtjBNnxb^;|%$L~~KH0Uhekn8F{2CEse|>Fj?1_lqf`B7KYO-QA@eH4{ zPX1hcZujd1ue}qZQVr#jBo=l7+Oz7P6(IU>pbyX>GjG$%c&O6)66||}Atx7^ThkmG z?e*wtKXJEY@{nn5|N012`q$aG*xg9P_IT;(LkxYA<=oOo86ykty5Y#=b3I|#^R!Q~ zZhz+Nb{kt28uXyrwU4vzIkmy%a!uN~%iD$da<3OPSENWbN_M*C`-KW6OJp&MyD)yR)S`!9ix+xS6`r^+IP|wB#@)jpsd)Fc&nB0jNSZ~F-;7bHjgv2Aziyx%8 zlGPN`M{;R3n~^!VaZXy;HXIxma6|-x3nQj^CwMb5SD~l+N2D2is>(2&PQTn~=!QP% zp&=+|9@gwp%YT*-=6$48Rjc)j(H;)KX^X}nlH3KK0@gqVRb6IQ9@hVJ#L8fY-T1UeHylw%61{7bLIiS%31yE2O}^^~C_&d)C_3>48^S`KG?M zUjGWFy&vi zlRv`nt((bst&-^RL*SLg>tCH~_S`Y4W#bo+{p??IIA%`%u;RJcZlk!sq70{r;o=^n zyX@bxT&ekL2dTjE1-+oqyIN!hSQz3h!+C&u@SLHNbIm?aHu1@~GZ@yu7Ny@RCViH} z>Rkxqd&J>> zsX%#CD$qopbXqs#;{asXrO9O!33$Rg;Gc?^(WaPp$9apNhU*yz+a>xqMn(+`DHc3B z3JJe*84x{7d3v4Ev;uQiLF_GnA92)kBmK(h*hTHdU6#%~;9J?Wc#)RC<%wy_#(^ML zw_;lO)&FT>Xr_8p8W5YF%U@coBc(hvuMHJ7U`%AE(1?@fsBpOM(uPbmK0AxNGy zne4q!@f~pfxPD;2u<89co7@#x)_C53@v%a(>t&7q@f2bhF(;`&ZqvBE=Y>T@WtN|? zxP#PvFvSpFJdH`l(YcVuBsX6Gk zF}?ux6r>mOlnLzJuaOdFYo?klRBlc5niS8Bmjgx9Zy%JCs!a(VJilQ#Rd&@}G0P_w zgl@ThsQ2@Z{BsaU&?hN0A8OQK93F8*H_pVCCR-0tW0h0#sWiN5e$7lZa-1i|5^z-r zOpVz_Ws4*|h#TH?DKr8dms$;AUocA2hE=KsvHy_{vX&`WSn!*@zRcb*pdZ=?=JqF+ zRLm0&-Oc17Bh!U*NyMLo!9G$@2#u4I{4*~jca3n`#UdwHSFUASQ7Q1b-jlA8T4{5w z0>thPfutSCsW3mO>&|(n}~>F5GY%V`g_#c_2yeI!B!v< z8{20-INc9#wNWwfZ$3JzW5ZtMiD+cfPI`GC8?^Qqjgy-Xhn3O;9O?Ow#YZH+ku z4*)!7)`@Y2-OHYU+OK_cVBYUpunjor%-={SqH0&=gr$RG%)sGo-yzgq2cSjxZ*0C- zuoYxn;)go>t6&H?BV};u#gC_#UwkhJO(1sY42jYBo)ePefFf`)mMJ*Dhp8(}sGmgJ z?`SR=QYC3Qpi75jjvA^aqvk8yHW4rL9k7)rX|wMIsSeKt*Z(aDzULGl{t1so$!x!2 zr~c%h7YjKO5d+%!{Q-&=Cc~xvemoE%4<$_cx(Qc7!Fkl@`9w=Fww zG+1J9LK@_cbu1>gs|YkKgysubLmbuif6w1^%E~TFMW?M$EPquqZ8h13u=1>Hl_%Uy zz+nICc0ry`NZkD$S&S01hc|C)p=q$wiNDmM$gi%0Xcth4ri(o!Z5AG0L8C!bE6yn! z^MHXx^UqOTY0srSeMni?<-)Uf<Ie{Wq$-p&$* zYRJ^hDhHb`Qmw4LZ+h;a68i|Se`kHat+(AhW;L`RBI!eniYHF1-myxaJIX=HOEREm zAa$n(#a0PO0UX~)j~oXQ28$8{6!Ogn%04vO$ORvWqX2VAcRvw3*u|-2rccGL`5Wt2 zS*E2E#AT&IOl@+d1t*HE=|pnuc);9fjk6@UZxtD(X#CNqxP2K*o_l3va%pCrN$G(p3B=dg&#;K{&x3XV zrO{$6tDA7ZFw?N&amg>Rc01#x;NaCGR=~Zds7d*pyj88)JPK*iV-Q>v%|WzFGRg_|QW=E4-S_7?~n8&4X}%D!sj z)XMUAgLrX`$Z2hqXa#lbP=ZEdaY>v!j)}H!L@JWelMJvo^_LOGE0;QqrPEvmNAc=) z$@)aa+*y|a|4pB#E0PLCgt?X;Hp3FBsA%kD23fKC&E+&5dt(Oo{XC+!|K#H1)%3bk zSI^}?Jpew{ROWzU$DIvV^9S(OiUZ0tZ@I(zN2A?FFt30s(5$N`Cp*yG4-q3Vjiusj%1;?Tf=C_zw>VPL_bp47{br=+ZxGE?#;^M zHM_B>FgmS&&v#9FIs?~anmSoaSQEm?%EHy|{fp^b6!URuK84a&HPjI7(qt>q0EOJp8Gbk%NZl*_f4yFb4HA7njCS?!Ax?GKx$Kx=H8WH7O zDb!W*AF6q6|4#KYLiKENG7GF8c=@X#ZPe{Fz@_|@1ZzmC33!*{M_VV-ZDBS-pl2E9 z{u?J!-tqmnyC}=tZ_+<01|Jl3bW;r~=(u&|t7|H#$HOkZhqqmCnx`@aAQKjx0a$eS z8~+|3I(Z)6v*N#*M?@T7NzC`jLY6w8I7WXQKi*HYD2k?bLnY*RQrwV70l63_IlKpol{QT^M7#D-&iYhsG-!RhHbSaFS0dZ}7WKvIyrdBOmju{h&P|W!}6pbZ}NN4?0$QpQEagU5f&eN+j^6=1D+y;R_(&j2e-}xI?RI4awD@nXM3XY5#8<-D%0%erV9VJ_(|TRQI8^xbA`hqAKL-h+(4sN0N#4)-*4m#;tG@Q+MKrCw|EL1wdZX>NC#Yz)_g0%AQzC8QXmczl__$fIl@zeCG@;bA=`r&(Hi6t34ZQBsbkTrOD z%jmXGyQrZFzymI3El9k*`j=9UQdpXwt#@KeCvEp%sY>yLMb^%?lG!KF>NL0$<|8Rd zy(|KbXSEpeR5TBD)QT7!5`U-_3WiweDi8IP_B_OnwNUSSC5WJ!TcP*1^C^A~yp?T; zITr_FF!bQ((`W<&zbw9MdYI8=F^%+V1WTPt=$WD^zC)sj7{>1Z6vo8-^0lefR9Wz} z=cwc~*NWD@1 zm!*YPpo{BDf(4;o%UB#9m!)WmuLEyv=GaF&x@_sd!PSE)(Yar4vRq4K>pvQvjxl9p zT;-(fHF>2IF)b|vVJKY0GUW8kw7%QPjb-x(m0QbZvqXCpl?8NGi@~4P@iCX*1O)`XERh_%VNqr*q;wpLCM4DG-7B z{@V5#wRXp#KiMR!$DE}%xc6Jscc{%rE>=cc9sVd>pQSUmO;;~opZ#QC#D+w3tTJ`; zla9{ttFtv`K0ZeEP`N{PU6FLpAb+S@gL!3scf~8h!7s|q5uNr*sc;VC>g5uw9oz7> zf}tgLr7kFv{M;34!*xXa3$h~LwF9WLwA!t zjmYfPw07)JN_U#0k4wTuAEq@R+H06r&d9im_inO{xu+LqFtcgg};u~!vMu$-64PGNVh%-w_xQ0G(4` z%vwS{{NlEU2QxVp^H5??lr~I^x!_Y?(U31L!JDX47Uhu_1cR%g+>+^D%)z5&*-*3j zkMRjIxM?DnnLX0W9gDZ|Oh^dvNddRaF@nn*j0ei#`ZIU)E692WDg};FRTE!9MKd0; zy15>yE2YnQNiSk$1wUQT7e=}+!r!oW_!P(M5Z9M@Abo=rh~KSXtS`gm{153JTqS_4 zHYWAWIlJZ0h4+H>C7Yc$qQS@Wk6f2)yw9#=V4uU1v-+*n+wJ@&GfJ|{1@0z7|A_Lc zG^0nx#kHserT%cOq-eRCi6y(dPE| zF#9OSv&TwLu_2G0rm`?~wsRtMhs%ibRXEkX#sP?XTsuRf$&NyPlO8V$H@)L08%i2G`x2TnIWGvae-FT1mqwlM1?>Ko4l zMKj{fW5kpfjNs*LvcZw>WHR(;@(>fM>-e}X%#v6?H*s@-w5E#Q#jbi$bbD#r47>0? zqPsfWFck9fXoJFOtZX!BK;?C{9l{lKMg0fL{1RMh<;oe5jFMSMH1|-*dSZxK7w2rs zrx^-VT#1hl{P~6bj7|f--D>g)1pzRefn>ZXNpT>p8$NY%RHGlh5~l#WAOfL^X?jQz z3t-(GglDk)UQmhw2B3W{PA4~!76R2TtF+AiI=;D6=UUSM=cbi@v6iw|7c=*k#jJao zRzsUkk0Tcm9%w>pEFJfrc#|72Aq^XLyyIfV)R+~l)M+}o<={-G#>~l09!V13QcjGM zHlbWe=_fr28t4>jK-zP{`d=*o#0XJ8sCN89Q{?#|MJ(1sZXP=>BiykiX1j*#pB_D8 z(}Jb5a#<7bbdQ@*kR@dKE9GD?i$;kINAu#j5zrm~00-Cpe4XsLqB0UkGh|F^9fP)o zZ1s-v?;Rxuf^*C;sYvM)leVv%0HuuiX)51D4i(7c1f(7Ln`CHn!xQ*GZa84m#D};> zS-$^L@Tu@*MEBZu^~KG4E9;7#S#Q7`y7Is9VA*_bYyx+E+^&6kB}?4LqpG+cUu%$R zs9?4EVA3t5^Gr^s~yz3kc1LR^2-~3Y`fFh9FZwc<;?~48Q$Vg+w|VWfI{D% zF<0t<%7~WVrSJL!j;ft=>Dl1|txh-7-aKn1pe4JM1%7m{ze8FxE_C>p)9Q6+_5Q+- ztocMTT^Zv}z}UcQMx{N*SXr6Kuw%L_5QzN?chc0t0&nSTCH!ba87m^k!mfBXG#;+Q z>x-)cp6CUOMyfIA_;0fPlKarDtM~U)dyLU@aQ;Y`&Ky#{*3V}62>JTz=>vc9`6w>0 zw%)(U=vKu7mG6fgp9py}7&VeK&2U?FQDO#XgwlqN3>&@`mz_mj>DBeBuUil~LffuV zfS>~A@kwL!ar=S@XP*rX@GZq2m)_1kSg@lGlrUzL zrG92L#@Ed|1V2lmcA3kQGzxT%vTnW0vPs5vA6WOT=s`U`q>GR2QvU@ z!M8m9dTiM;B`vRB)J2=tC;^8X3P`;ae%D8(Tf{$$g}88z{PulgbUYR$916%XA)-({tt=dA0BPIY}(tp0XsN!6I8@4AybChfwC3 zeWZFQfQE?cwK{UeJj&%Fx*ZSYatYJZTf|M5ZAeaZ@qS{-A{O*HsqQ*S8zZB`@H=g^ zYl$Rb+QApRE%LKGySzqnNGwyRAECo@n}Zn?twOIFHpzppGham1Ra+OCL>~U)U3k+k zybG`W(I3GtzUNo5V`|Hl{-=G(!zPd?IUafZ0ABstAH~d`Sv>vQZo%A{CA|NGAHjkB zUqd*#Q^-ImbvzuF`r#CaPp_yBVp?n#;Eu;RH{UN%N zNdMthb$#w>e-FE41Sx>)DW6{b_vb zZMTUR4YwRtiiOMj5BM^N9pilxLK}-?yl$m*?@8U;J52&(7j^Km147|Hxx# z)YoL}l2bc_x&yf)PLoFmM&GxCAzM+$0fQ$N11N zDzp&^GE@uPVyA3A%$iq-z9E+Bp}w7nq8fCN^)xB&NDyc|fkkQqPG#9vNNtKzR z8cYhNI@oBvT}YT;Tt%dMDVC#ssRqY;2RRRO{ufsynYKV-kQD9&v|(3dxU|Lw#D?Z` z`e^wwrfUR@krqjY{bRC)CVCzwTU{vx;$;@exl!pIAyvz;!a#PP=YqT>lj_I_YPF^$ z8PU=>u6SipvG03eyg%yjLIg`!xwcs)S6g%E+~$~)5+rko0Nfb zH84SZqs_MAxH6bjOphLBv6H@YmZ(a=sMyVTF9s5o`8w%uMBI3v31fOlPQy4G`<`>b zv3k1w6lkF!+g6F5GLseUTHS71YX#X8;tFq~wjX-^t9vfH%KWTvslwwjsnB91Wc5ew zN4+K*8MdGdcN4nGn33dF805v?#&JV=?{hh2R}(o9?u5@<9jd@hJyF~jdMVm$o#hG` z8yyvc%l(H=3GWkB^Kg<(*4+~H&no2dSXo*X(?+)B78e)AQlFa^r)Q?IQm^5+e&aXf zJ^OE|gYWxy--CC)>5VAaL~_Z&CXgp7KJj;V;DLwk$DjShA7ktEHvIbUe-KH#gXN_~ zX-|+WH`RgZu}fg%XeR?c28<1L%pGjOY*?|oGPWuK;V}iM-wt1;FxFn$|Ds(oIUjKRZv>Ou-tAbY46&rRMAhKc*f3VDv5nomr zJ&GnNLQDf$ty?Sx{bf?zcRn;UiYSWZYgVtE%yK$i^}IdECPa^e4e-(G#4`TNiiP6N zN~J2cIJHI{qoXD4+%|!83u{wp?Gst+zf0M-Cmq($X@f zrzW&zj3+zWrDjQbC>L`0(~tcL?)cLE_~`%qb=%~znnFNdx#W5> zx|)cF!xwHjQS3~=RkpEil_RuiU#YQio~9BoZMs2`9tJ8XL;7!2B-sTY``Z@9bujI> zxy)j_=C2HJxw6Fefg{v9uNoYM~StQ8}t=al|w-r}>&h+F5?+ zV|Z+|pVZ8rl_Kr);i2FarOIVXEHAB6y6rYls+2H3K8~sJD)#Q2!S<;w*tKIPuD<4K z9|FpppP?e||$ zVOl)-VL6Z|8BU#>!(V^)Z}A;3coC+?CvnHU_h4~p6$g(zfe(D>L-4&^zn`9JH93=p zOuOn4R#!Imxfg0V2DpO@cm)$=wNWB>6H>DgJF2RoU@!B4$)N%!$#aB2G0Y*)Wk`9| ze`l2;^fTAG>Rz}6u7UR1U|@H@&T=7RcIaJn+aMWk&fN$FFCInqyp1WV!6Yz<%q)4* z%Jqx&7lZaDgS^RLLK%E5;L4GY*=(WA%7eSyY24YY%jQDG$9Sj|^H{2{04WEz;i?7xZugCjzv|TNpCyTR^et* z6b4#b{jaqyLEm`6{YZ>^Y<(q4tKf2!ReI(zMoM{%7E7oUX-Se(3zL{kc=hXgGQpDz zTuDBT4$iLj*HTx&O5N?c1LL*XMjOf`34EQaPjkg@j+OP5@d_JB5q$#M8CYiJ(>|S7 z;tbl_?@`_dXM;mA$;sHCI0IHF=C+Fs7W?fnwz8nCR%pc{O7lc*CN$@M@$t>$)a!DQ zE95UoHoUL-8LQXg^e-65YxI*TtEishyj&47y3%H%*(7(fJK9x%IuRLB4nvF%4@;ur z>e_m}uKAoyPiML4WiIl?itrolZd+bMyWT+D?x5G|B5k*M@=_(z9ic;KgnSXhxjfdE zS8&^{x8b?BJO_XMiNC_pqsOqawuYgh5tN3i*tTa6hR4PcCn=hZCK`>Jcx8=_jbm|T z9nD4u@BZ-bh#kGfr2+4)Z~3{Op@zx+yuP_$TY=$joy${}p8?U<_Uw+^# z`25{>iHNS&X!OZbY5%0keni_+={An5SE6PcigN?qe>dZ#vKf$pTodKe?GmDy?Gj+5 z5@2Syj4B0pfh#*7XvvYw2SWUkl%+S8BhxsU@Ezt#-UMD(tCJ;p=t&)DVW3G0vAlls z^`J05`v+J5gP(8kAUa7ohGTL18VoZ~;5rxjTVY@tYfvm`xDxXmW-kZ^T3T!uxrU%0 zNDRQnZ~_MQdYDn_ej>`$V1Y4BRJ+vO{`ur&&8{m%dlH+ZkqRHd+ax(Lsqnv6@=Kdc z4^-rf1vwM)ES&ht6>`!F3-twv*vAKfOj%{JbTE)}Z?w8tTdiZQRztnrlyeZ@v^YUA z2r)cd60T)+Z5??E4>Pr^zT0YJ*HwG5W7l5%`A0v7(^FrMH$m4kS%{N-Z#V0=^TY-F&Ay=C{6+D~m z7WN-Hgi5K5{Rbbzjn`aJx7G^5%yY@7q8E2i2@=c>6;Um4r?@LqHEf|2vQ@-Y5agVR~Y+bS~&rEjRH?CvwYyWA|1V&FEDSeaJUt1X0F7#ZuwrP9tZ zuT4Ei|HsxJk>&B30E}Uy>}2N!1IK%5%dZvbYRXM<9!wr4IkECEIu|}4--~9miTU~S zICJKVY%%1BH5Ye{jw+6XfxTQQ%kSFxr8RUr5oRVPWZ!wt2UgdYF+4Gfom;oz!7tt= zT*%(Nd$DbLtGr$&ytRcToIPy$Fg%+8|S?%~9-lc*GmlH6G#E}c1v=K2y|`3FJoBl$%JRW}RF-%QNU}|g(8)<>Mw6{oc`$VpgE%S&IkOy2Cx3VUP2l?_Tbm1>KL>xaR=;Q2CE;FSOzUfUA(W zK8B_93pjb|B;sC#2OoJ<+FN_KZ@c^h!KI1FvQ^(iFhJ0&i0fNd8+G|3zIOL+IU%mM z_|zA^fH%M6ofw%Im)3;%Bgte=tn5UD5LU*8jJ1|MTo-y``P z#)gV0aa7px#TJF$RkG)sf!kH?t7`d_w-I=u5`m)??;BUp8(f3o9yX@G^nDXm1v&CK zM~GtJ0t%;pzTQ9;W~vY9rA(r&7)T!G{u__k;57Qm>46rM;Udg=UrhK9w!h4T)u6&% zMwZD<$uw41wf1yXW{$=E8a*aFBYGUryBIUZ{?wPeCZk75l`&(S^+k@H#G+7B{IF!8 zB8BU#6f8dj$sBP$P6!5QaZR)Uk0(?I59adkoVrjy(8TnBM4LDAy{ zPmH+P6^%!|(ZSUC5L)C&dL0okCYg_$pZ#>Kt*v5dX$h@*6We#}P$Sbxf<4=J;(-Sr zkjk5Cc_x}ITee6=)Qx%=86A=R{*~bo-0_tMaP97$*gidd>HeW##;`4{Zz8B7=gL#! z-28d$+Plo#7V(sy7ngN$`4uk^$U~UpbFo%lmP@G#EF+pUm8Gec3@4)! z(m<=vQ`22$)R+IFIFhNkL^LJpHdYu6+`PY-Dn^lLFboG`1dt|q@c;j2?@ePYOV9JL z=d5>MYOmgBdb&9ahZHH35oJr1DUp`7#I~#?mSHP~ksvmV_($Lv2m-`_0z0;WAdY?* zNMJj0ByX~8S&?l~q9jYSLQ~v^`wVBFp6;&huD$Ml&l)_>_kH)Csu?1GqUo7oeS@0r zuBvlfb%@UMZA(u&+OzrNY#o0-gVQ_Sa zpva_!cInaujE;_wPG-2jx2vIjx7EUQG(j>;@q3^BtnSbH+PdB^GZGE zz5Dm@-p3!q_QuA$_3AMG&Dihm-x5r$$eXwp)(P-8gbihkQLEwQu+u z@?Ls{nF~omD>QD2Wx1U5l+M74%yX;tW&GdG^E>fHSG6=cUDR7m@j*z&Pi5U z`54pbL=x`q937{Ift%OF*$C$zw9ggyBug-#=4y|zokS!SFN2$x*=Ptq&2e#K9doKc zrye#}dV>8%aTk8GhLimRw0bL8UFmDKH+<H!JV1)vB7ZzVPZ^QhHQ>^EAKgYQ1Pu8e z0h31r6ZCAQ!uf+6kXQK)aFu}XpSr#(hr_qY#ItjcvKp+tMb~S2T$mQmf;nz05!i$i zSZ2EsW_%-`!$E-0o+m2LQyrkYe>-u&>V0%Uw|YFcs&kQQGVxV)MD}}2!lRORX)J*Y z&3={@Q1v_m89jyzm~s#-+4qaKA?W2Es)EdCi5^G(MLvtCciK)Rxruixjij1Y^p!Q=_aNA}fs4z2L`jq`#{z%5$p)O62nAW%{|FoD4Ll;i7IAKj`+TPs4b1%P)VUpqxe((eDhL8Qb zZ6)Uk_Hq5bfj0fxfp4lv>WHiR~xJvipVEB~%0i7H&yt!iSaBE3)%V5|x% zo<(nYm2-F3&svIs){*vHSFy}JL9#VJA{3#>7V{i;?u)82H?tno9`hF3X57hZ@Xo{% z7y(VH|9Wg;<+-X6DJN6fBnr`NG%*;m%BZVd#rK;?koJ1|{r-ZWN~s*ql32}@g;7tY zze_~Zufka8hP7A$pBo>dzc_F=24R^11npKAlko&W&Bw-t3mA?kxc103RT}$;2WT~$ zntvP<;!9K+tMH8tox|W{ph}AgXFi+a-tGbXS_AKY&yDYdaPUrA=P=%fy;xbWEzoK- zu-fV3o8NpEgYgI-|HQ|!wz7hWg?5$}_s_uONM){_;#n14e(>`ws|3j9#g%16K177W z2%(TYf#x17?HDV)mVy$EnHXrO(PVn{R_ff&U8>UQiy&)TS8mRtfM1xvDq%(jGPhqo zBQa84r`Y9|A@9!LbJ||o9hb-wa~~9!l|am}x;m4n8c3Z*R-Hv)Rb@R~o2S}3bIZx9 zRPTXa3)dQR(kc}#F5lcpBWFTWrqs%^_?`^5s=8ib7}|sps9G`H8mm^!p?YZMBFQ|} zI4G_+P-`}j6se9EQXPOvF0zWglsCys1#bpz4%AtFunKY4#h;OhZW72$pbb{KaTKH5 z?TW0*OUsfmSoF1O4b*sEOmJB$KN-KEjqY5WB6U3T3>Q}WG8XGJ+q%A!;}iW|NVL$* zjM$EIL;T5fVx;P4GxO(UhWT)SU;3qA!Eb-znRmlS{#~`s6UakchG&oo!prsC%P-+e zUwZ~W`N#hRE?>HYXPlb{UANstr&-gygOV44O$zMUdyCc)PVJPdGXvKGS$uz?DOfHoPtVL3P9=*s z`I)ZSK1Y@<8Q8G)vT-e1JeLS>HXl?8iusv#UbXV5wztkcf3+3nez!V!hMk{O6G?gI zIlPL7mzhnOM4DT_@+%Fq5)3VG#TZ^KiHnlHG-xl%h49|PUsOOO{;@s8 z;LKpmYDmtICDB(SC6QLEweVo)7p-#n{A=s$dY`nqT^T_!A=XJ8jRUN#chTWS1BUHC zXO)s=XvP7$tp@t-4x04_l5~oClhE%L_U_+Do~1b2Ka>dQm8(~D-IP>WTVGowkK^NG z-Jf2+r@=eFw{>A#_u$^nZT!n${iOA^KVNT`b)G;T(sJAjhr-%BKEmF?K7Q-h_5kkcq9&pXZ4C@Yd5UPTnKy7R9t7qqLyzG~aZB@R|yP9c{+H-=08 zBG6V5R5;UuswRl)klU@Z6^3_4FwwP(zTM+t6G>td0&Im+O-RnCU80n-6t@tz+L@}A#>VcI5E2yl*Y&f=pjERy9Ut=oZ5=lpB zFZHS1T!+VEMWSHtDnBve>qfq&=A&K@tte-yc}T&EM^?f$^qXz8!v?x>13qEjK7_m) zOeaJM;Ob*n>tn%*84x(-cA9?z{@9+rlu36_ZkcY8OA+X2= zi6Zj>EemX|t)kOvq1Wx=)myLOOV2z5k2rl|@mXOIgHN#uwx7x+o7^qeYu8#xnpFS2 zB=Yfb?Pg7=t9sx|7*S{%E8$*NB+{#E8N?(=VrL^}XDZ_<+e>;g3tCq-RV$^c*%QtL z>%d!nugbk}kI&CSmfr*sbrv0U3N=OuFjsL^8-1R0PR<>IQ9~;Wq2ip z+E|8BAE_nDN2K#~L55UP)74l}%T=U43{y^SR%{E3dtZzx}`b9Xz;o z8yj02Sm|^%+YsrD-V;_N(6ifG6&!5YXs}-O`Y0D)MHONzh^Y-`1z8FnN#_a}hM!Vc z^i=qUxd5;v3z`BYH)tJJ8GH<@k2h&mpKTYpz*cQHxq$1W>Z{~BRCfPkZN>*f`UN~Ln0`6AIRwXaGmV9CivVNJgL#c>0qb9*1; ztDXZ%j*O7pVkx8I?$H7k&DSC;q<=+%Vqx{sm}t7a7UtOuySw*K$=^F@F*gcFM@QP> zSE0PzFi_Z%Z6<#4TAHnv{L<^zD}{+>b+v~ms-fPD5k@82{RV>Am-h!v!}z_`UQ>ir zZczH2CK|Did_ENsb+y|P5{-ZYN}OES-o}Fm4{&mHf_AHgix)1S+v#FDnW&|HAP=js^pK^56YC{KSv`m_FS5w{N3!VOy|960e-H zu7lEY(7EI<_!Z41b4`l@u$3!OD@b3&@Q0FVuQ6dn0m53iQ1Ue-MQt z`cy74RmC9B&O6Q~98?ktDuZ^HbXZ+ZrgI^n9OAfx`3IJ z!TOH4S&W0=s%1n86H5wZHRAl)r_eC0bMO8=G+V~rmtG?Lz0Gb9|I`2avu{${p09_o&J)N(TJmsk z>}fkVeSPOH{^$?=kOb-e&;RQm;nACqqaDWh@CQDKUcawIpa4vBA+{P88ct4B&|Aos z1fdBSi}{6>Qm1`L9+YU*O4MUt1haOtVdT~+$L{6uLo03WE#Dre<^|3^7H@2C6=$l3 zvmWEsnL#zdoRt$}%Sfg$$?!1@_DUpijM;Q1iIz^M zjz%p;yVXO@t7E0vMYq*KRCNnnzpZj;)I!_=EVHL$v zF%}jYOSbZjYmZ<&nc%Pet-p;Q{=_G+v9^J-q`puSgQKHGatNL5hU?k8oodBH0~II2 zKrJ6LSl5mZ1)8BRe~&hyo$}E(jAn(P#k=A(k72RncY=w<5^dyv8(1#hL>8nv%Q*G3 zMN+}yx|W0b<)4DI+DgSCnNUd-E+|*Ygr|TDXJ#bTss)wm<7{%Po;z$Ciz0?gU9Ma^ zX9i!%x))}K<61-23aG3kC&wY-_v?b%o|dks*%N~(pNo&L`hnCf+&9#Qp}@hxA?9hS zwi8>O4Bl>zm0Q?xmYG%;huW~!0$Jt`}o3FzKkFF_{Xui zxgpr%4}Aak;g^5q|Hkp*37XxmNff?mFD-WMG7>LN85!kg1Gh!WFsiLI>*%vD-E5#) zi%^dvL<(}&djgg)c$VRQN_M1z%EFs-C*JI_XLs?ZhTJgvSf!OM5wa%;7RO)0a;tL= zH`mB?-Di?#!otigzZ>+XlD-RY{&6brC8~>gfZ;-;e6`I%DK&S)f zkaDIKr?y=j$}p_V3!6Zf_llbg17WtaBK{dhnyDnxkun5GBC!arAkcz4dotdc?CEXJ z;XUsa&y_#p@fwY$DgqGl?CC4qSx)=V}I!TWIM{B^S-B_ z#uvW&RSf1S>b06ziL6la?og2({Es)MtgN)_Sm)?~Z zBKT6aq0-D&Ly ztLSxCGz;M|S65f8?|F)qUKf|IUPMl5lXeTeeitZG*=^i}p~7H*zCT3AAS=%~26H^qt~vWt|Pms3_wu2FSi0%G>r;X@h=MLjBDu z0M9!;=Xf(jmTSFL$$f5}<$P3=t%Kg4O@t=ko58Q7s`Bg%P{91Y+AUTRMP40jZ&7JB ztceJyIe@)~j?wNCl{BcVDcFJt$(aw|CuE}&pPRD^4aDZIGnh9zhK=sQ45#^fVW4V* zRRK>ruGg`-xoKGZaje9_-_`xG=OND*zE2trwV_C0Ehy9&HqdPMk@3A&3$al-4pCVb zFJ4r;i_#~2F(c1YGHJCt==M6Oi4Y6%n;yCT2->YWUVrsfeC3(1==@fV;=j*Lq=LzH?FD4JlT6h|kCfbEF zFz)Z|%RhneUP?i*@6BBpRY{~Z)i) zKtILmt{5!2fLIOMZ^k5F7%_1mEKRRM9F@|l>Yn9O;7t+{6Cv9@i{Hi4g4QL7vZ}dd zlZ$6{v0RWhtt+E=Tm4?u#qirzB2~>R?~F{0t3=$uzFM)k0e_W`Qf+~`B;pdjyi1gr za&a|ILyb)U*CfgdFlS;4iO?(LlONE>qbx9^)OwlOKweW7;sue&gb4@bNlH97n(dZh zwWo8<(J0kUjWa&a?(VJvGnwHAt~)atTea9+M?l$<1{%!{VHFq*MyR)12;!RFs}2fH zE(t{yd#kJ1x^O{3J+8;t+}e^bV!zj?J}|boHnFj>DOnWqOVmzPE2)#x1rT zwDX+L#rpl5Kl?x9)4%pRcdQHc=LYz>nRO*rvP4wDGu|J(R<-_8D_5e+E>NUIhUEyF z4Ko+9p7yks<wfJ8>od!#5leND+qFM)_?y)4IcJkj}cXFnZ}RWa}$@Xs`zDp(H& z$7pxEO5nWJ3iO)4q>?ZxLJ#vfTS-l<^m}U0HS!dr;Y9NiroKkIg-e|#vaCd!%(1t( zk9u4~x6{M!(E!^QF5uqIjsy~k{^RS>?=}$EIw)@6#?I~w;vL2HNbNIiAVMP^ntMQ} z+d;3}5exqC@Cci0>#Bx+{uloxe)M}jf+#rO55Lvxe2D&#mm6AVMXp4$zPgG_S1#jY zKlq37(|`8Q;M%pT_}9PoYuLZHi%z>Ol2<9lcPY&v&+W*`Os<$6!2){)<)qkNSfbZt z1rlJj)e`Q$wBFr;0`VJVL8?Lj+qIG;&mJsgHWn?bio|(!E#*PHQ;vzg6&1uHLA?>t z<*K5y+F4Z%FuD8%W=`NxQ7-vaIUcAajI-x>mfKO5IF(G@V;2x*H;3_0&zu|-*s$q6 z#p96G9xEl-#8iP<2ln1bdDm0=K;&8Je$SYAFuY`(6x;9jg4*8>P-Pe_#CW!SUE895e3$6cQ6=^F`g%w2x*p@jS^o+%TYPlKTtws z70#i$Q|crKhO+R((HNJnUc!ybm){K`;hnV3hv*M`G2k(IgcV-GhoAlce*6bNf!(7M z{O|wp=P*1TqS0+*!XaZ|cq2v@-L#B+4#O)|f*U+XRz95pK<U z;;C?kA&yE5=`4A#+O83DI5&f0k3l3a7c&_LD>g!bb2BK%lHu--W2FHN(u|TVyuR{u z;&PRR8`M`}wbk?GGZ>}WQo%E@Ugf401>GrDG=k#{KmD-(xhBG z9+j4s<7se!Z3Gc>nUncB&FubXk@Kz&8C35Q~aW6;iXHLQRF^O4u*Pv zvEoQr-EuzS8C@+?(K%YByO(ggSJ-BVlFZFb0x=NzY2l=$rD zKld(;5O42woIn zbbb{cVWrTHxX4YiDRTpL#llk85aDvGR4lZSy&qL%mz!DmXJp%#+FDDAmnB)RT<}L+ z2R9*%_+3u+OzRLVwp&B3qo=$XCeKKb#!`t z^V-wjd^A$QKx7)*RRwE{zax?{%I)-r`kOh;GE`XEs=gh0E`kB@PBBva$WMfAUY_ zsVAPq&i(r;`TO0jWZ4;zGRm!5X%jlcsSRW~5~wI(u>s;28RCGNNw5Y*f#kN0X;GEY zzFcqQJeYO1@;HT1vWPOn$?(dQC5n?=r9&8x*VRa#i4HD?l(K~JU2 z*-)irRc!@U8U6CSP@EJuxZ|_!Vi%7J`w^73KJMJ22I{8NxSC)RH!n9NqS5g z5?Cxu3lm<1UT<9qEzR@{$eFl!t)bc7lQhV{&STL= z!giU=p9;=J8YluYe@Xc|arV+|BBWZc=VQ(pO&BSeu(d?~$80juy=gS+3*;HU&-Pq0 zpJH=!9gjS6L#n=Ht6#Zr(Yzn1Dy=G`gLGmT^h{)QMyyA*Mf;69TKszMg_m)AZ~q+~ z8{UcQJb}E0tF!}GxETYHI?jUCvTzv`?%uzLiC7|o`FSTb>B zG=%a?^}r*mVPt$iOmJcFklP)JX)%K|hsXh%UWl3(BC7ee;wUBU?vPWc^!v|>5T50A z;7r@d5ay`V3e1ySL)R=fcCESPE)-sYLQ22vp@(|zBuj-f%GB2JRiTuG85O<~PEptd zQ|21prgnDVl17y&Uu|*Wj2FpLXDe6?!c8*7srKEHj97}-v3z`{9zWYdCZT1EbI2-^ zE$+BpMb5=k5+eTS8u&VMn9lpnb#SW=VlgcNO(U6UW05j)y}WpA2wFU-C55`y}up z>2T?sLyKC2Cl%hwWR7~hrQtkvt>R7txyN%&O(OR_NwYJEOXRZx3?L(3LXNDcl9}cy zOh!Zbqet4z3=WPE#tmG$cm;k!1>#I_b8<=At)@_eIp-qI^^rq#R?oD? zKKsm9-bK;kow3eQSa0F-95mHiwyNChLxV|}O5~}>Zfci$cXvdmJ|$)FrQyR2l=+8#SJdoB1GvBg+)S`hRnHvOI9_XP7~M5Gc$#X1dBxs z$wF4V4IV2pZzsYq{la=%7$j0zQ3f{9+`uZ<=61f|SvN!9ejgHjENq`&$MW*UkXenc z(hQwp(N8>8!C-Cc$}qx>p_Uu+8@9E#;JmnmvLs5v&PVdaah5z5>+j)iRO#*!WC})L zgQ;RpL!g}mNOcI$N|6bW%xj~_tDC4w(f}fSbG#xqZOc5<>lw-SgRJa6CZin5bO^f1 z<`M0UYnp-ZdFr*Mf`1sLg4GU3Lp8s~*96KKo}B2MgU}aKyk=px$NL9J ziVU4*OT+9&qh*qPnk#76>P80MIT{iU%*~8%_1IW#aQ?z;C3$dkcz|>=LA%pMt6s-3 zCE|7OLL43KDcP-WY>6{-ynliNZ=#KoXMOKk^)P`L5l6F0xWBur*4z5pnr0zqc|Pas z_kW#NAP;Hfwqihawg3+?TLAQFh+@3>%Bz^AIey|#{t0~M_dbIs-}eNrUAd%kUozj6 zfuD|1Sw)xqPEcwg~ zgt=2s(^5PHNArjkLSxMdlFrLp8v~t_761m>Cod|_3#gY%< z6$b6YHcgV`$V+cA6kq5$l^h_Kngh(H$>O=Q)XZ$o&P}TDVxTf)cf?8rdVVi0u^ z>0XzKUISN!0n1rSQRb&K!<=>((NJ@?rb;96uK5tFoq+eX#5@r^!c-xAZup364I!^e z+b*2U<_M!m_lg>7Y)hqiDZxx~L`D=nObqmvqnRM6VRda2wYY_yojn|!j1aea$ZHWM zOpdzlX}f68vO^JWEVMCowTHFb(IR=-Fhrm=8svxF&QyJUlpr zm*oh`0vpu08qM&;6Hnps_dbOznPD;+ATJWEt@iN9BbSkkCYqacx;+ihp;ynB?+G^^ zg!8gWSzlR^rwC^`vfn*lZ|OQuAP;Gkwo1U6c?0{>uid?izxFr&I)3JF{0#oPzxP zbr%k6D(EdM6BlGltH7K2Y$Y*xdq}bpSz!Vz#a&Acha;0vD09Nr2>biFX~VEpGf(E2 zr*n&dvR>Z|xFi5tNq9p@EYz|hLWwC!Ng^rCKwdKfb4SaIe>V&FW@aKgYo7+^9>5H{)}4vt1s>>nIs zmS<>p`g%Q?EF{8Ni-j1JPd^Q@3d4zEWkA72-Y-@jWW+n8s%)MjjO*yFtReCOA*)zr zZ>+9jJe=!2!T~*JB|%W&@c03S;}aBVD)QqrnHhdmt)Wd5C0B?9>yUUDM;M%(h*;b0 zcQK`X?)iF4*Le%;A*{S8-e42U#BpzTPlH01{cGE6_{aa?@8N6Td=7v8fBf6{Z~p3k zh2Qz~r-fc2`*$Hn{wA{Mg(bEHw#taZ08IuDn05}^SaKY!Fua*4f-{Cpiy&${P_Df~ zmUJ?is#@~GOu;eBlf@vp%-smzAaNuBD1d4vv=RN-1>_BlPE(O&8ji+cO?`Bq=N)=W z$SwQgBpNcgSlJiD1+hk147z2e;k#$|L>>(1f_I~^e&kGa4wjqer!~29+rM8LS}hfJ z=^>sAt+gDKJEplQQX(_(XL8AXJr6Hm5L-CdFI!QGY=ZgPu;oMX!LrCK2PQCjR0^Cm zkD3nYui-$5Re~8gqk+c8A9&5xr2_YN^0jWHaLr0h%hIq&bu$xz%78fFm?K<7eAr|{hU z^AX5fzRnZKLs{iw{*hY!qi(Au)QV?^rQKE=zxlhL!Du$Y-~T^;9-sT-m$lRX!yo-9 z{^>9N;wd?fQ)D{Z(&EqJ$P>?lK_Vt{OQ!u3p*GM_EAsMx*= z7oH%7x5C-Y!W!60vO9zqe`Z>MOW6|6I>b?7ASEk1G)c2sxyUj}+9iFIFcIom3WZ6uB1uFXzrNwh!>91*MO#><38wPUT zFD5ebO6b?Y(>^{v(#FSBWQD1seP0qPs!BQ?T)O0As4B+8@Z=CjyT`b&bwLSK)k|JV zK#~7mp-*~IU~qgadG~Iot@afEJUkkqx!p4DEgEfwG^{ce39Fv-_13QQ1oF_9k zE{D}rQk8q2HL+3{3krSM8PH~f3DPVTF@U zzDahRyC_{I8$h?^q6gt%;va#=Pn+9{BemSauA-J6l#G^IClvI zLPp$dEH*Q|2dtb@2j8_CZ~T6@(L}$O;$U=wy}kR`>aXD9#wK=d-Nn;SK80I%@8a;a z*YWs!Zs>k)ZLH(?l~>X1c9hHplQG`+{_n!eFTbWLXKQOy)ezbBL~gNlM&ZTt_13QQ z1o9A;>oge#x~G9JnZcYXuzkfrIX^_-_5P>j3G%sTzKT!$z(?_Ozy0s=rQiKD)*rpT z_|Rg(c2@VpKvZ+u)s|=kY@Pe4M z%|7zX!*pg`%U8{jGh%pim!c$pOAT`YMywK0< zl(mo&Z6<#R+V9r<5NT;th*>dEI8U6I+_O7vSUs@dlp7)W7EyK9LwKx(momBVn4xWN z@!D+`KE)$3ZLGp14~q@Oe+sdIM24TQTNOg6P<1IcKt1UyeB2#Xx=dE~k_ zOGn2ih_W2*l`e{l7x2pM*Yz0Axz^fECC$OfKpJt|m#?Vp#%qcLqfEWl?&vk(28KiR z{B7{r{!Uxx3FILy?VxS&uUXMJu0~wL#m!A6ldZLN{L-&}QadaLyHEe_?*grk5`gox zMpYEhi4bZ>&fru-lX!gwHQ#a%3d0>?yF!{-R`r#Q9TK*>dn7?3&D{ zYRzaKAkw4RjS^;*V<{~nq8tNsX?ESxbIlUOai|YHgA#k{49u~}V43&}H7oGPb_9o{ zOau%_M2*dmAP;h#M>lGr%oANdjkDanlWta8pvHlAVF;V01raz%?P4}#@0$>2{FiSM zsbol$P)wW500@?h@)Aq05*~}(m0T9A<+92NtUgs?&}+1J(DPN<@SN2G^iAvP z?%jRt?e1fH`y$eLhMfmHn3Xx!*EW$Q8SdPBRf&*X4BoT5_jfTFj&b$sCG=KSad3Q$ zmtMJpc``fUnwN*iM=d(GsHn(sz87k450ljCWd%{>hUt3!hz@pJ?s`70_4XmuJ=y}+>VI28Ity?W2=h`HmHr$c5Q!!XYPmkZ64 z8yIRC;_%=YlbLa_W3QY+%*dJ>x;uFso<)__vlBu{E zhIC#iK}Hcd98=WeI(GLD@WQLF;?c{O(d^c7ckdpKCo`;Vtc!VmXJ<#d{#LVvTHKIR zAlIWeu46Wz;)R!A!O6gwE>ZRNa5TZZc!1tys^K-0)Y{q_hI6vEYq)cNR~2TX-PU#0 zYE1>|2M_jColx}fKYaFc*xlX7%^NpWsg36;`u(2f6M1GhFN8&}uC0oHqJ$Y3GNGG; zsD&l{E&~)Gq`X!X(#qmIhv+ab3ef1ca55jNt+uhYp#(S@O{A;UY}Qp-%w;guQANwv zEn8@;c$=NJ{!PX@KMFkN`Fd;Dxt#k$SPR!bJIHncDzYEGd;9zNy{~)~U-|mi@R$Dl ze}RpaHT?W9{Bt}wIuMJOa99pw4LsG(G1x9Dt>1bHtaTgcwv6{j-8Y;MwnPj<$?n2^ z!y_T$iE`R=TAn7kBvTG2Bgt#f7lHx2D3@~Ms$R-`v9p)bt%L-PZ-&TcOiW&}@H%G| zMMx)6T0B9|RtTZ3AUp--RJ-HQH!>HD3gkM-$6`L$FkNIeS^EYCdF5Hj5go;dFdDrm z-x3*1s|f~4zGPN&%(qDcXLY|Ux+}NBj)hg?&7`k_1=QIkZ)aAe_Ld!Am!1I@=$-|k zf^5PzR%iyj!|B9aM-J@l?;~o}yg9~X)oI&WY-I^e{dvzNNipHsQi2X!9Co*dmG0mBW(z#A|Ot6 zwXffL9UJQxaOu(|?CtI0o6mj=&1M^~y><&*8(Y}EbP?m>aN%2C&Ql{XL&m)4>l{&O z?K!AAt1hCym`5f483q{7CSty)MIyPK{rw{$#x~bhaC|(#c$x?ha55T5oblvjB0z}H zUTG>=GG9klPHg|~+`ETA_QM~?_Uh`pI(EFxR&ri}JcQ+2WmPSkJbVSm6nE%87{_?@ z%0+zaBmcFeO#ar-{#||8sHl7Q&K=2mNE;AU84f!KNHeq|pk51%!Yv26zCm`Cg=u@` z4!#=(8bAx_Q$XB;Nt$9j840CCb00E)b1MVS0kjepE0DZY+o<#d4R@6oJhS^ZVurcg z@=D|XDmzjqY&e^y;$^T6Vx&(3B}L~^!JW172r)bo8fq~}N{XDp+iD^ueu`!o3(}j4 zjSmgN#Wd%APCbNvxr8WNhW$b@*H%e9E^M3XwAqw}7JJ64#BetpTB|&z3T*f&mgJZj ztuC5;g)l>TCXu!W1;07r%RwZd1eyEmYpWWdKiD;d(OP8Y8QfvBT|*y@(Ri$2Pp7|B zdQwAe3PO9%Y&QxrnTV`OrwGDsbVQ1%_ zDoE<4t*x!#kw>oM-p*a@KiI`eC4 z$efG0&&@{DKz!-1PIT62Dkv{2NhT^L$=Q62?%I|(9h30@tvV~8sS$s)0-f>tnvh?# z=B2dz;lY6t356e@{pNGHb@v{=>&9c>0TJZwv(77!hp-mO1C|JAce>n3udS@0QLC%f z#9;fyuYMJG?%l?>UVI*3|JL&gM&we6F|FOdfvggHADSjTI?WI(^%yPU`vtFztbCK% z8FI%*6czRM*d92U&vAG%RY0SS=yWn$*xVWvldq&9Oi@uvZUljqk++6YCfPXAL^oK5 zcH#`gM%T$-7(y{wI_Y`W@-SAV5Q$I_Svw~(k|4&ZP@y_EJOfF;b8Zua3Q%13ZWErLqtUD> z;m_x(W*kpE`2<>>CjR|z|37%?`PWb)M!VfdYqg6;t1f$5Cb#3ki7E}XR2S+6O9_4h zwVi3k<*q}?J_laC^*S1@7Lxf~oR7_oHSFBJk8wK3(O@VdBBDUtmHRt87#to;=KX!| zd!IlWJGbx30r4k){71g6lJxod|9vIr3FIL!7pM~3gJ-b(>T}O(hsPlFZ!F8S+hBFgbPP(0ssKy=rNR=Gns7zRSX&nlcAdIpt z^F|;K4(m^Dm3^fPW`kX6p|*|}6WDoCY3C=78xq?4PrWIp-DPzb_1vt`jLLAK1R^4& z)Q1a9DCZ)_Rx_NZZw6IwnE>aKXfO0ytLHpjMCM+p*H^;du7| zUw-Dx`1*6tOKxU18>8Fqs-<{*bc|lRt#%d@yty}t&Yek)*G>pJ?P^(3?jIf)n_>8Z z3^S=6pPXQAeO;5LoxAt3KOUmiY@!y{kmMOoMkDbxDU8QWF{FcKC`(#VzEcx{p#$*iP$;OUsD z#21a+iE9IqEzU0nZTfWLH zAp=tGgNca8S8~cSG@5m6Z*A-Kq0KCbpG+|1x?H(@37`DrC-LjQ_Um}>cRh_i`V)T? zgYhw*f8}L7_uPw^PbX?KwYn=(#hngMq*B0p%__>Bv$@ZOZMmh!tuaZpfx3VHfv)4` zV>j^1tFMYN&so^s;UV@0Lj?2yiR-w0^@@T1hN0N!)Cwa9=IH1E`E0I4{oeOIjVG@^ z`W+cd9>O|LAP;jT*7CHj03I#^82_zSRp4VV8sk5F;Te&+*qi>=*S;=`Q{T#zTjZ>j z@cAZfFF7$ z0k&-jr&aY6cxcFqG)5^g!kGzvvenJe;9xh77qf=>JX26qSBS!fR!%;(GYHeh$~ACj zB@&3M5eNpXo%<{o>CYGUz&Pv4AA}MjFv*V962jiixnfHmc7F#lWH18wf!~8w& z_@yCbt2!ncJ{1|-&gaB&EabB>pD$Wkp11U3A(NXs{aP)O;Gi?s;`b@i%tc11(^BF!woB3QJqcpa3x5s5ZS(QkJ!8H{l6!7i>`yCQVe{_Y+w zUAQQC=<_eVg8N59`Gs^=x@h-$m``TX>*DLqns4XMZN2gR(#!!Ld+a(s{Jy8ZGXu(7 zzs`r~4{McH9wQ3ti@=mvZbxqAzbB)a5GEh}-jCo5U->e=`RsG>3G;RRW2e=`V7zDyk4ZfA23*(Af^=n(g5;uFSJ_T97O!V>x1@G%&CC^teaE@K0m$w6>7 znCR3zy!)E8;oYf5(#WK@M z65R{--x+)e%Os4G=pI&TxuuFR!E`$v?Xooh_dNxlmwCHYnzgb0|TcHjQeCH=yPDC^W}5mDX-QL7SbuEI5kN zGV%>6lnT78_B=m@m#3-(ro$07w>Ge~v0;8bH;Inr5nrpT7cMDLt!-@JV}Ilm`2LT6 z6rcLkZ{gM}ui?0NgzMKX36lH5ORwO;{XNWwQ~czA`k&zH)e9IN9q9ecO^JJdyP-Na zJxprJWG0Tt=H{04v|f7o6+H6jql@a!T$itz80BMzCnJFhSlJvN9b#>DRX~xW!$W;e zh7?;oM`69C>%0PaNXxVQ4Vg&grvJ~NJhM_Dz8&_mBDjCBkH7d={t6Bs>jAcVE!lq3^oK5ld0Hw^ac9ioEm`I4p@&LfzL?)69MY?yQDfB*BJ|Dq za5u~IXx3`z@G&ID(UZYKVGY-#kU~ftg{nrlGj28Ox<*Q15OVC>gek&c6d2x$T?*tC z|8lljT2`QsyKs{8D1In~U7NJ#NvhzZxlv}k;I+h>4$XkxRuxhwCPO_pEj%WQPxl>*u3VdI12Oc((pgzT_Qs*)5hYwf(e`fP-I8WLHIqsZYVKf z6=7ew#O~7hyu5F$h(sEdM2el$l*S5|QZWpq46bYaRcT_eVo7Wj#XvtAPZk8oK-Gy! zh@5p00oCu&X10m7l^*&lJ-xOv7~}EhiGn%@`e7{;A7nZjW9QxuPEJm6_s)H_R6p{O z4`F|Q*T|kU8^%n`^Ks*`8$x9L^I!ZW?B3tQqmN#-2|hIjX0C#>dSLuMoea4-kYQE5 zhWT`gjm=H$?LEMFG{WIElm6tyUkk*m#W;izKPBuolMqdwZs}bzuwN{|CPN zJ0^}iQ_IBfBR4V5mvS?DA+KGOea=2t~5i4NE6Bu zt(uR`ep4=lf?5_v;We!J76lb5Y1PE;t)W4eLM983zSV3;1!hhlxGJO~YvfT1`7R*x zlmJX{HUrzho@**&pUFxN@68>3mg#4l36yH_1gGp|9sJXwoNBg}#{ikK z_2HR$2<1G;f)*yriYRIjOxY4vXlf0mx-~=`aiGmfi`s6UNd_XIdx1>|CV8+OB@&?p z0vLTPSOTSypv-Kd3OVV9+MflWifP;qpuac0y%^D4UMa;kjf94i5%+`K1@IyK`49({{Im%NH-9 z-|JyA9O2+_7aN=F_{jHu2zT%8;9Ji>FB<_~o14ox^#N{Pcs~hz;QNaxvE4g&C0WAz zmE|Te(iexY?B2>c9=-V<931Q`Nicbs_rHNiA0Hm+@2pCnfAv-TsXzAP3$p0>`h8vJ zEv$#Vyvp#F0WGj>X;>uC!SM;c^p!88wz{GObNSLmtgiO(+0TDTfkpy?nQ@_W_MdV# zR4d8^Gy#K%{FzUX&mr!_B%fn8Gs!_x?_q4(SPX7aZ2@o9=9}(l!Z)$TY&@?1cAso~Opo#9La> zvIS_)!61i zeCXzl@8q!ZmaX#y@-|qdV`As|f|<_ma<}=77hc9c{0BdW@A=4g6GEpK>3=Y=}5AvfmnX`<}B(G*wY<1Ox#i ze^Rfv7k=()1x3aqgn=zAOfaq2Oh2Ceo`5cb49aY+HJU(NLqcYEJzf|PF@a6zWUkMo z7|hm9lGLovI(OD%RYa7l5Y(1Z>9N^G4@N`83`SO&m@N|`dxn@v{S`@y>6nt=*7I94 zCNm>apFJ}uD&A)Y&8>RG152NEH&|cn_=&WFA!AMx1D_=dF0*qLwq446V!Ss(!&4zw z!aawnYDmO1RgY;&8Wb8|F^Wk#GpEqcWNXXgI@FzcReYhVa!SVw8RwzdsUaei8Ae$+ z_Gvqt$vd5TWR4=SveGk32oldErzpXEQli!CGOeRkZ>oh>q(UE5c zC)l}j2ajC8j_>~N@7DEgY^>qcS6{&wKmP?>zH}KI+nY#chWBBRVKu`}7py$Oa5NCI zZk*Uz35}-eO;tGG_{KL>@%mYTd-v|3vA(9^{9tfm?_-Y1Xdn$S&WPCFV)AAc_PH;A z<2-@9Me96)Jmlq)hk{YXsEB`3zT>a_4}T3G`M!_f%Ec{A(>ZQjzmCs;@yp_PXg9f# zWQPJlL#n$5#wtP`N6&dG4g@l`n{tG)r%I$&H!Tm}auHZP2wIz(UcRwug^YZp0cC%W z{dl$+pjL=|3+09EO4-^<4JF&SpIfWlD9S9NtAIxrJ{Tcgi9R-CK}OjMBj>vrS({$p zS74aaK#Bp9a|a@~0wWdA9Y6h2IK$yim%DlnQ|X~Sna-r(%UwBlxlAHW+bW`6s$^p* zd%_?ZIWw(dp`@!;mNo5iXe791E=PBrn#!q&={s@V9wv^*qIU`)~pPt2?zE~G~&9r7*s9r zatk6L1u%{lu8Z8=*C-E?&lSAsn8+Z_d%&5AtdH4t8&0ry^rG~ssGY@RefiQAOxrE& z?(PZxP3SFWC68RahSy)ejh&slD6+ZQWUH%dy6@R^rew{eAr^fYqu1`D9?@>s$7ndw z93+`e@z~WzFd8Meb>~F{R;ileqBOo5Mge;DrtaC%(V@5}l9-QUe9wnJgy&v<8TXHl zuzk)4`F&sK3FIL!$C>r)ptibx`PV;%ANqqI!pDE`2k^;H{RUQheQa%Q8KqZ?2r`Uc z<1onGX0sNe7JEYd)B;Lyr|?r>yZN#fU^JZxUr(32=^TQia-gXsqnW@&!98K`-!leP z^7&T3Ig>0(=$W^TdgA9Gs*y{2E>l0FGS-GU4c~EGSca76vU@+63ITlHseEzw1+QBIXwwdMBHKdlV7XPy# z34#ss)C}O+h7(_giOt&fQd5kBC|yfo?(57Zc?MDj-kREuxja{VOS05(9Y#K$?~^hx zRaRly@uodj%Iz<2M2PFL>~Oi=X!ZM8;gG&o!*n*&HTHUa$;-rY28@yN{?cYR3bDDl zj?rLwZ3LN@B6OzYxXf7o?tpQLXUA|+HE|bl%z`!y>1V6Reve=4oo8A`O{@E zu!Kdb^b3*o~&v~i2Msb`Qzuw<1Jd}3FK|C94coaabgXf zu3x)`CvRMrC&Lp@Jb{1p%fEtKckUQbz|;gY29HcGcb4d6%>V!(07*naRH4*tiS{8E z;b@v-mQ6KK9gQ+f+1oF3%+d_g=}1F#+N%b>_2l+zdYmgLh^lC67;ShG3_vN_)!fA@ zuEmD0Q6$EcNoXhzls(kM>W1W1g0PUKu1|L=WdW-lRXFo2UjudyMUB^!@i^!23|To0 z=L#G|O`%Mblvri88Z`xPX=GXN54DCQv}lNpMs_~e?45)|BkfVZuSIIb2ybOdH|^|2 z1aw+hHppg{*P_bAdbiNf$~P*OYRAlzsRRbS&|g^Gy4Dx}jDiv!`n~gfJR=9gb0VK6 zt~)lnfzV17*|yO-;E z1EFbrE1&M{an-W2>b8+kNt_K73WD6JbLY(&ix4^@ztvD@`-E+-!02@)3?9WCMQ)yt zNopZ zDU2bKW=$3Ab#+5>B1aGQgwo@49USh7^fw+1kx(;hZ38dA@S={BQoG6v z&|h7Vef})QO^LP-ln+PlaJ` z(_dWrOvy~Hc&_#dJhpH$Db6;65S=hqH9)c*ci8o?0Z$Sr9vH4dXIJY76_OpSrEIPi zn`h-esNlifY=YbhD+b01MA}kNRgk7rlzD{FECB(TEQ4|@kuEuw*tB3GzXn+j6{%^v zQQfwfsr6PUsTd1cnNUr~c3|$~WIEPtgai7Z3^dR2Ed18AymHHB@pVtdiy+q}HyUDv z#1U=M^vvs1NTbWNs~G4wC!+sG!v#>@gP>H9g@tO9>ltb8kxJi-JQgF1Pp*iEF-ex> zbj%HDlFyeW#)m#vkI%xM{lwgGC85Cnm9O#4wA^%Up^>vMrnWt5)Q^p4dCj!T$X;*6 z=(QS3Y;1{bukUMa!5PRSYdwJ?D0Y~68Lq$Q5sXhpXs@oK^bOp0V{;8&X}CEQH>@=p zvY8bOotuFq!RJ9Q7M z4PR&#wv!mpI46h$gTP|aksu-!cT1!1#41N%t5I<_Y z5W4AwN^+b6q@MBq5DVVpY+;TvEk)Fu6*Mc#F`P{?rCpyFNLqeW41_Avv?uZrlPKx4 zHPldBO*`}HOfX?zwzZkEb6o@u4@c=tJ9_drit!8$&LAkd=oJVHgLq?!6K18*N~IKK zVMGZDQpk-XpHrGG`1mle3dFPyu8UyF`@#D#%~Nw;s?>71Ft*6wplYq=0yUW}k(tlg z39HC?VZjNAOvMtI#9#QKDh&o+Xtoh*z%E)$V9;7h_Pp+_FyD(JBbkz90yi|gP@<2T zd6k)3nM6l1Vdk>zHEljZYdfumxEcNzpGPwa(QVbyTW#U$wMVehY-4L{h9{nWFSbQS z3@|w{?Z@HaF%ISr(Ce?jZ`TCPu3K3bwz9|`XVt&~KNB|Rbc9(8L0B5`%fbGks%y@z z4i6777#yp)%Vfym`)oYXJVh7^@Y|KK0^5Wex!OZdBg|L@_0Hy@K!L$lq)*T4FlNjiMoLOMHN z9E-t`!HEOjwQfzg`(C4oUbl%_4DBr0@0TDUeK@2a582C7VO0SotZAS-EvA@RgqTYl zOZk;Ty?8x$A%#GBfcw7Tk>q6tF9YJha7+>o|OSNIqvRzf|UVn7sH5yPkCBsU_6G=$1$xip_bSj$`|23ZzX%+gmYE4Nm>d6C(c zn+a;ftguZ7NP}Nq49Ol zy^B1wn=Nc~S8%s=h@-uMY4ZifFNS=TgUQ4I37WB5Y+giL-c{_LoJdaRJb}D5>pX!x zgym2=s3Z=YnukEc;AXv!lkpgz{LSCQlQ(Wku6%8M14k!^n5x%q2FHc%AypM*DIrqk zDQ;ffQj5h;=Gf@fP-kB|%`g}lMl|D~`um(mn9aI&!?2u`utx6@3q7^7frbCKWojGq zC)3W6tcn-t_qa>UeIsEq=MGa@DbS3iw4ebmJ6PJyBtR)AM$-tgH!B4C0 zNNAx+8e=q{V>Hh&psU_ENA5?cw<5F~v4-w><|~ML8n%bJ4%2F@87ITMRD$yNJ=f>qr_aLy)>XdV$(zM{D??mKOGltLW z<{&vw1dE*{Q_X2OqwxK?xzF542-@tSMerFN4q4#{h!Cn;^t{}H5=zuK`=RT1EoE_wT1PJ zZL5-rZ#=)@5~An|rP<-z-FLZ2iJo@7o|S-iOE6h`4DR{^2eEZfTsv1$dxmWzvfzo@ z((K#EX0wT{mXCC;CrjRg(G;V3is5_&&x>To%2rWoz1&@rRpPaLN)5>+v^cl3Cukt< zm&RQ%rL4MV^qk}cZ++znDk~VgIg}=`k?o??TR?+drKZ+mVR#sEJydIMFdU)o1?V(F zfd+cbnj~b5pNg;HK8gC`yOd^bqV^Rl4c`C-`1%XFOC}5FAekZjQRXDn{K&i)xT~jT zmAEF2x@oboZC8)QXg?Y-aYf?xjHh!P4^MD-bb{k)hH0ANcreBAXo?9RUuziHEXkX- z2rKIwX5(OC&ASiw@NZtag;6#|hD`U>(X$;(?C^>IqhuadAvIMOiGqms>I)AIbnHa4=gjQGiF* zyGj5j^9(zOC$eMZaJJWOsn>7J0_}0+B$()28C-Lv(*lE&F=lL!)Qzzg&udD_eF+UV zO|?;&nL)00-yCxV^P12@rEPEV+DX(ef&io8RAx@}{#a?$vAVS;O{%s$QOv9;$erD8 zZY0`^46`iP^|BI666fEZ3MAoi6ObjSd4Xw{!Q2;it=K-~U5mpQb!wEQMpnI*8U$0C z&Co>$mo8kv)oZb?e060-k}-lk6U_!s^9Qy$Dbo1*?FZP~JHl{0#o^E-o}=CS28C5? zquHTKZU>#!J}yE#01;Ea_=VrYZ~yl1$V}_fm2Eun#0@<4#0`At1MkNNKkz|3cH^?< zS>_>g)bkX3yCeCyb6yt|C008t2xKKt7^g(a)evS*Ro=rxeDDJwKpX$Hjh5T5%V0`cKoL647VaM$NFBA`uH#G3d`bObexO+1v&|sKZpLClQu9Qx zRa$@!j!3%dh|x}u2a)Q?ux87E%C4Ca?DI>PB(P+qSR$SKyZwtL>-neJaE@^292GF~m0izWwv!rnNyY8fVJow$sgiq+>Two7V>J+%c3CMdgpp0@`yra!t5|Kfafd_M z>0HT_vw`_ESK^SV5s_dX(CTzl(QtsxnUQ2g*rtOSQV{J`*grjKV5uHMEp8ypa~uvw zQU%!BT-EC#Ju%P2;CO`H{XKNn`gq@aZ(yU@M?J{l=SEM8GVhbwK*>xA+kzCFn^$Rl z?^Bm(Ei9YzD4Nw|K;j!BqPQLcJ!ELqn#Ky4^QpMhS3+oT!uw@fUK66<_7CLkQATVr zrYIw7R`oPr+3xj`rkm2ZDs3`|{20xZE=I!v?(gl%36TEguf2E|&wTSm?Cjsg(eV)d z)m60mD`+%2xNxD4?J~F3U53wn_KWz`ul+k!PpfOIxOwwBKJkf<<41q^hw$Df9|6nI zZl{eho#142A|&F`$q2|}>7sGgHP{;%m%~;QSFc``jLQApU1@W@aO)KSKlmLQLEidx zonEX(fmu{&%916@4iYCw;s~)}NC@B{u;BoPVaHBv7zko0iyTRY z4cl^%&5&$K78OZRNRbjHaha8~^=!R&S6A2e_U&%L_nmWJy>2r3%QNnY>yV9^sjhnO zzWZLC-}(K%Z724ydHSsICl+0~BW!G7bz@!c8X|klnn&2)N!T?py1kdf*%!xDkYZYXjKEs6GP=SxKXKdM_(VWRVC##6Bcru=f z?Zpuo+lPPm-}!NDv`e`4`s*0>hx&PlX=K=2qB5u1g2HVCc&W(F#y=}lHn@SJQafTy zl<#7UeN7Ufv9!r_?JP#b!01SzM8?P*3aYg_YW0Q$c(r;--4&-|v}33KgyPN<8(SK0 zvOCz>*;T>K#d<|$u*Wz&*hi&S#$-IlcV2lzpP`^$z}fSU;)#!)!RLSEC-9g4au2UO z|2+Pu|KS(#FaFQp!^XKs)RibgH_OdJA#q`;T0w9k!}Z&{_|-3e4PX2-Uqop>#KrXu ztgo#ZBhVz4MG4&#h-b~MPZ>YAckkXsyWPg47azfUZ@(+nf>$_Br}&`OaRGUVmO0tF zGX5jowL2I{RJCeT*sk8Zj;9`fT%!PXDEtKq7qnT|Viv$=r-RqO{Sqdbj}xma7#tj^ zV<9*>i)RunYJ4+`Eb}T`0N{!8E@GRI$KrC-iNFHrd2Wd!XI*P4pBM`f$L4~2#+QC^ zI%Whf$8Pkw;s&4kmWrC%u0&YO(a1^##=&Hmun6Q9Ajno5f4%oYYoyY zQ9)e@uZuP%Dzg3pC!!6E3McP*z+9LRNfaaULeyGi)M`}>$3s!RgMb$60~r*uaOA#T z#CO;&a70w9#2EBO>Hxw@sB0t9V1K`h>3C*FQ|l-3@z4Gce(|$EgdhI7pTW=n{r?q% zUKayU1y9O&{=S<+K+m;mqpFT4C=~I|oA2P>)!Qhx>8&-C;UWuf;+n37pJfsqXq$58 z%o+V|MDa{{>;e4yy2a!5{;uN!@(`>n|HM1a5sh~~N4;8=?-4f{juoi9tyOBca_y=S z)M<>BF2*UD&EMd-;qn`=;oxA5TD6WTshq9>=i|tXY_xgP_9JtS9AnL+EFNnahhVXi zDP9;FaUe%M40lq7d5m#vl6DAmTx(sT*jEeWleNTCxH9Ig-x#gV zDR`s!(vuDO5WQ{}eo!(&QgWR#n9^j@$Au>!$Fomd#H-JL9hE{!mh&onwi6TGH^Y7R z*K{J8waaG>cXSWr7;JOf_4B%)E}WRMcI(tjRlE};i|r_jIuDK)9Yzh8P%M@dQ%qyZ zPIDE*USDIn>2QpzqajvT+qiJ?5%i`*%tr&o2)nLHqNG6~$3(oZdwY9E&7P$KvUN4= z3~8Yb|;~RMTsVCu#BW!MMq2T_1 zlT?n^zq)l?KpukS;QkMMWL;m&96Q;~k};s;!5H;wO5}j)C4_gCJ!_3j}l-wpR4FiX}#?lF_|II6Nm*-n}|R*{DFGM>mP!QeVOmqS`(2>+~EmYxPph0&sFhSKZRA zAR2GIUc=_ulUQ3_muT>vci$4mc71yr=P#Va*5)Qs5fmKsx;n**HJe;hpZ-_|1wv2fl#dZ-t_$U7)zVVH(;Y)vb8U67P^*Vw2`Qo$1@mUtn z^|@kaQ*wb_#_8U4y zr&8Hy3{-4f)Q7YaNs!X2Bl8TS$UA!c<&F8fafqBco2pn$XOYbOXiK83^;qDCtWz>g zU{al4=?Xh1xR1n`4@xN=nPTO{7)KGx(*nAEYA{lDTh)TeaW|W5hS155EYb4otVNmB3+sP6AjuG4%O_Oz@$reCL@TjWT8>K|Tqify@uNTX6Bv)X=nuw-Ck$YUQLdE{PiGj|Q@w;@RDLVt!+IQnk`jw`EzIqI$}VI#AsM^-rw#{jyrJNI3yGEN2V(vM47 z+pTV(?7*}@b!B5r2KlD zVDU4L;k7rf;PMWwIaahub`Sf8;l<~U47*Edhn_KxG{Icv+7nwm$YzrZfQp;Feygid z*Cqy*(cwTH78yu${aiFjF^f%?CX4tuw&s+nik%~&r6Vi-fE^S8cjl*W?~3AEdixqS zF298{FTR9NeCjhecj*$o_)~ut2Rpa%us-gPz)pKP%_Y_9@si}9*t6fyMtI`%G~lE_Orx-`{;#p z=+097(F-rZjT14ue&qAtkL^2maP!WN4m^kbt|-~1iuv5X`JGqs$Rii9xwekAP6rpx zp0=K0$LoVw#|7jeS^25Ipv^U(hg*wxg5|!CANk=Q#ozp|{~9j8@GV??;wcm>HT@#5 zG%5=6QMDkzP0M!LPXy+dl)|&jGaHf~(RCIhsrxKd?EF1vbmgwHv`!z7X7XAp6w6W$ z%aYtV5+9n8RVpeaBWAgQj{8$1(4)VV1#?*(WivvIA~8a_q!>$qI3AB=c@jmwid{xW z6~`6uoTgJ5_tDye$bPPSS?)xZnOQkb!?9STkfqc{s+uCLj-}wElx1iY3#f#lJhy13 z<=Fry&l*drD3(eF*pD)N@}p1T;2W=De>BFd;9;7?$_|(4QI4`1MuU+xn>5!rx7Ovb zV?xCcFJVN)1!9|r!ck5lBgsTv)NF1@6|^*;#R;bKRAVNCo*A1Iy%%19d1{zhe6Rh~ zRZ5>%FqqnSmRh0Z0KLHo*RNm4E8l(@7oT_n&-}pm<1;_{!}t&W!heR>UVafTef4X2 z;f3$u{HfC@)tF0v4`JxaMb|aKEqcEMY6qdn1A{>qE6uiY*~inFm|K<+E(@N5=PVqX zUGInp!BHlCt*TWY|NKk8gJEwV9OIqqw^402@WX%nv-rC|`;XCDU)5)ZuFOHjWX137 z9qP3|`}9XpEtSx&)li_xrNp?$qpbIPd4K({{a1h0<_8_Gf8B4!_h1&qi;;_?oQ!Y3 z{4(Bs;oGv_Adu)&AXo^^XlXiA=dii9g5KUf4)=F4=*Ll#m|8W3f1@VDAdr*iuY znbm2-G_!bamZV&cXESZS9`P75jHYv)gkxr1xQ6lKxhaZ;0JT~P%~nGeEX=hy><#c0);O7)T+7keOk4<(rVZ zWcKLU3=fV<81H*)w}%7i1S$&RV!SLQH2?r007*naRCmGe3$q0EVt`h?sLnyI=Z>|G z_dSi&`17PymkLD`ixu?=jb<5@Vg+wqxrJ%s>pFcq5@Sbj{=ym5ybQhl{Y4D$0#D+Y z%9=zjx~a@UAhMG8FiU`09Bb1jDIrSDD3CDAcy7G7!b(w0ywIloQ8}+LDw`P8Np>ryYv#G%)vBeTDpUKx9{P-mtMxz@4T*@@<%T{iKm`<2IJuXw{CCi zvlr7+KDGs#j=r-9!{Jy$RI2Pnrr>8oiHU}4?gT!%-GL%$)5#FO`K2%8?l3_RdJF0~ zi*A$}3-?N^jrQs)KL5#&;_JWnbtF7+lwADS4}L$s`nzAlU^Yji*3{>Fb$Aq7d1y(PW7N(@f>wR7G;|}B@S20mWl!DGQq2u{EN)Y>qF9!CB*aL$m@yS#01kx zq)ZBSNBn-b5Ng)XlPotT>Mw{+u)|`ZpmssVgwn1=2y4Ewy^$C;)q|ZBizGK=Zq`(B z)Adz0E{<_5CVjNXqTr|KGy^jlgYn{0VUfMPr^3PK2|Q!f;$@j$Ba7mtN6+Ei+dFvq z?b|4|JGw53EaN$LclU6*c0wEJGM;3DsLWVUqpQ^57O9b~AdV7Q!jET`s!XesuxQ4J z9PbS$dheR`+G0G$SIw@KK)LC7%r%cEBb>c(ULw+4w{BzeL>bju730xZ1)vc6n8pz% zEY2Y@i3qQ~`Wjw){SExyZ~P9P`(q!+ z!b)h_Kc{wS?;Z-(8ZKOXOhtz@?OC@gtSGY~Sfoiyj0#6TQ>#{V&u6_ZUU=bE^ynm= z7{TPFk3Nabt##ac{W_c$q(><+sgNLkJkx!yS1MAl=Lwo{j+s~=#5yh@5An)12l?t$ z>-h1{ejcCs7r%ku{`FtQ*S`4&c=_d*vAMRYDARp+h*7VHk{{r|_&a|SYo|}5y?zFN z@u&U@uKwX~q1q^!1o9*o_Bpa|ciqr}jv?p5yM%MFVlvrg?asGN+{(XhL4(*$d+CRSQy^!B^PwbpS^ zbPVRB>noU$rH~j8PyIek4nri4C$FYwFI~W^*KTX<#)2tkmmer^URLYGQ8>P{V@TwO zg8Xz$V1+d#@bvmrq3i-a_|aPw!`tS&fP3Vw$-$eS=@!Z`}84%hp8#se(rza`+0q@>-xMY+oqWLu;S1ebF5XpIi+RTyM$7* z+bumBn#s>=`?hu6#B|mR2Cw8!gxU^jF=ZR`5qE2#kD+R#NVX5D>+Ul#H(72D zqaRS)%RXLka@a=)_`x(dldRnTbvk|eg$nhwD`)rE)@-QbFPlOoQSrrz^=$kH1+JHlj&)Y&T&y;3?N+LNGzWay~ z0Sq$2F>^Rm7WeMxlLGC~a9=j$9V#a?!gRrw#CNN%XOH|fql@?{x`!jlCb6bijL&;( z7*0rp{}ObUtLM1oDJRiwZF^vQ2t4FjI!%R|q=mY#{uwgZ^nT4wBXWrhYUWF9=ifip zB;-9p!^ZAaII`DSMloctR}sY~`s7-Gv4}6d!zoBijkaXbC3h>EdK_wIKG8 zU=_<8a;=l4HRE5G53tNh(*JVZ8%o=hll&4phG#4@_}sQ^wJ)nvvJQ4kZ+IudYMcWpy8^@ps8BZc)3U9umde>XSABlLNE zE_L>zn~>_9Mw(XY!Q!RZ=y1(aak!nG7{PW%JerlGWo53LaY%&zC7wzU$S!%Ni&9HA zlnq+j`nLF)orC}*aS3~3(&oD+)gUSIR{p)BOEs$VXwrW<5#nO6&Um&di^H|wPI;u}jfRXvS&F36~b#nT9${tOv5=V{Y`(+P`!_IhB zYXMG8z2IVpH(t9R8I(W9XuI6w#zuyj&p^8-)u9dAIok==`S0m%uyLHW=?{g*Bs_V# z=4VvoWc$@rn$<#sRl8if!10pdl)qoT1)LiB8)hPmghA+assof~6KWm*T~^fsDOh06 z_{6_GN9DD#F=Kz9<>Xr7a>1A&IXOF(bN}YkHFvl%C6wF!EtAOBZ^&3B9n zVuxCkuZW7gTClf1invLmW0N-As-_onK4FI*_Dn44l3FZ|7uCnkCU`qkXSfQBpil>13E@#8630}U)v*L@G+ee7|I9PQ zg>lDS^W=~z`Q9sE1z7heKEd$wckhfE8fB}4^d?;X`h&`@Ua2q0va>^a_xxvW|N48y z_h0|8bbZ+N^(8+l_xor9s8QifarjdCJ&pKDA$85QU#DU{6Is)?`h1j7`<*4@PU}}n zwT=OiRnr3iaQBoRU&J~7Pp@@ihT$?=<3cvWfl*E`0^Blt|2z#pW~MxCWHpP2h1E7* z*o7sS$7%q9V3LRZ1*gGJQeHN~xG&T$!goU4e{UI2i_tmPrap-6(e3OeiC$Hr!%cMh z;pjAn$rn{mXtqx!hK}yKZ*)VwfR_XQn=T%Yx4e$_wlndHCRiII&toi9LTBRZ_pUzS zWLFJ(lBELgpm*poe@U6fCU2r<;SI|7+d8fS)P6vEqIkj~VL*ctPjQE5=shM@E({#R zKsc~tUk_)h);KxMx3iJaiRizHqgif9iW({fYACPqd?@Gl4f&riSv2iD@vDsFv zw$I+QOE!{AP8W^nf=lDLcq&=l_=~#4!0M9BH*CA~IYh451Zxm3>9lRRjk(A=S=QPi z$=}AYwrxJYX`*njE|*W;*eNbf($z34<7;M02M;~UH%k>Wd0||vLQ*$!v(Phj?hRzL z15T8Ru}~2xqfL$++C@x)N>1%qM1^~~Y zIQut&oI@jwWu~js(_fNP+6%q*EQR_4hke%3Q&~N7c;7kN7lG5o7DCj*sG-hsm7=(6 zxMQ#@b@OeLB-=ViM6rOtFlnDGfSznQ0R#v^&Z(1V} z^4+U@=%dXIy;t!=Gwk#sDrx+y`E3TzpvU0-3$Mc(MCEl!l<{-pgwGQe!zR9%6FzpYo=uCW_n`Ue`&6Mh>?ajUECUeg9h4FhT*LG+zTr{ zhg*HOgdUiYo6Wu|a(7VoFRl zFEqKCPun{R8>O1?A*)Tu)iqOtcVc+ykZ;}JjiW%QaH2C1Wps@$wM0ZKa4m6;K|Xu> z&|FHtv<2q7c#Y9Zul8&)MsWn2@h2wh8Ac_&)@I7-K+2V5e1u>a<@$0+a1?o`>8P~O z@l5~o4xVtbZQ#KqvFqu{>i7K3SISo&1#MY~m*1Yr?{aG24M%})K67#-N3&L67T#4wQgmI$0fqZ!xHJ0_Y_)j?w2B0|^K- z1OioI>tue)>D1>p2(VS={2;p|S%0dh2u#nQuWTN1HOkcy_U=KfFI@v_rK?@6ufsLl zvxiDq+Q)gM@DZ=5V~LDJz*_ZQhu1x=tyBh&e=qbtx0yA08$<`M2WzcSHVx61WZu{a zt=&0qwyblNG)SSwcT#r2)*mrTn3r!n)QV_|vkqwt2lVTG8?+^I{oS zK>`h6iBmMs!y@9Y-tnIdxuMfx*R(@7v<;c68MYtHgV$Wq+z3kwX6$Oe2iTaAHvw*T zlB#L?9~;n>_ks@;{^1v=J9W!aTkJg0mJBEQHb6mTUT8cFS0>t0OP|_j#u!XwVAP{W zbqQ+|95(-*GiLuLhji+M)QV>Zjhg^5FLQH|q zUo)6qVr0srJj(-iscqcYpPU#lu|^VoyL!_`0pC*~wwZOG5%8pUS(ng4OJJW^h8F^O zP9Y6#iH6^}|MFLrb20@N+_)~ zS!2g;vTZHm#xX08cGF5(v>7U?Hd$>oKs^eU6&XlhF5HLS-Z= z$UV1b-skZgA7e%yf*oF9Ixc8CA~xQp9Zc@q-KWY^oi2Oe`VfTeW&s|1C-AF>AFPK4 zs77wu_NrWPqnmdyul|QSjAzA-dr8ZyTb^h23S3(4K`=qxrv&@|^AuCl5|T=MTI^hr z0zz-i{La>>+uLFu`o$%#60~Y2;mU=iHt>s-6^3<{(Can7Y@{Cf$60NwYvCTEhZ2UP z;tKojQUB=lxYToJ{)_TGcLDzc5PEGjaj`IDNGL^f_aOO z>zB3%wLyru_|(q25diu0Lcu(mR$`P^qOy^&G?_7d3_{lvo%^86F%GVrslm|HozJvQ z#2X^MDnMM(sx}pY$?-U%|9yYQ*5>|sP97(G=j-xr0Yv45^G6DX`|9zx(QXgyMJi#C zk@9=vP6$1-_g%9SR;9N5Y+n~g^FN~XgN3q=FMZVttTM|k`miJCO55S2*2CbbN}NNx6SbzApI#s%kx9bvze~ZExw~x z545WDDS-y|aul8COx@Xn?rcCBd@|B z_HXNHoM+qYl@Tn!5{}PITta%SyihZk8htB1Dgtb=j@9t)2W75Q@(C?z0C@I`zLtTy zbkVs052)YGsDOWDcYYwdV!`o#8I9}69Mw`IIpf#ML++bg+e^6NK-77A`0Eh#4Gagh zkF5#zg(g*81QpQr3pEgt(VM!~Bt#uEAu|ewF}MmF0PO4`S^`TGSW#M@<$Ti%g+I6r z+4g{PTxqX9Vj@<7-@IwLyAApTre|m1g|lO~#)ObWvnRFSUyMW+eDOz17Hc$BkxE;>I`sr_4R`2=>R7RuARrNe4n&AB1IZa!cE`onBB$CRliBo zwumzKk91v(Q%$&dbF_E^;L-6)zjJgzfAG2Wf546`>JDtJW^G7a?h}m9ON+eQA%37#74LD-sc)n`UM8}R%-}}n!MG1yOs)Mm-FjJN|0-5sE>1|JbKu^m8 z{z$lw6A!$HE$Z0GmI-U_??^{jD_e`q8A&w9o3lVHd;~b5d*FnX#;;j_oM(`*E7GnF zfxG>=k@F#jR9B*WHjyTPA`4$bjFt6YHBdAK8{=fq-Vpt?3?WySV9InK7ms5{)-!78 zeH3Fv{yrqApInk1mAM$3@|IW=g<2R+Mnk9_kCFP-u31w;fS2WCRZ1~?5|wb~!5m`=#@#d~Y>L(3>zA|G3C5pLjfFY89VkASc4y(Mt1BCa(qQ$8fyLC-o%ZKUvoH z%#v3pF0p?SM{$ckp$Jhcab~*0WcT>4=-0{;2qt!ML@9O%Jk#`_UF{dvT;ux5&>&4J zp8G5${5A9T4|&^CeF)^=ZH4`H9P=&GvjDYja}4S&@pKL&(ND34I$V}LtiKIE=ijMcxc=R16TyXo?htw%9Bb?h&Rq&@(|BY zLma3cazFs!5R5f$q@5FOl~{&gea!z1%tEqSz{Kox|Hm|%U>qYK(}!=TZYi$zb;F9I z=OHKDSgt=R8>EG-R;f8z$qNR%!p_;i&76HLp8E7^9BneRSeM)uH1(>wNZ8*a%5m(N zr(G$ILgstM?{m1&S@7)lc4D2Sudl%cqlB%JtKGlV&xg9#gHSiih zjPk88- zG5WQHE)MRGZYd(K35>b%4iA?03g*OK7&hO^JxW;icQ%?ZAIv?6nc`k`3!3+eVACJp&&mf#8%=(e2o-VmNTy%wBE2wixz=emME_6@ zodbQEO0ylK?}B*Pf+jU~i276erRegB$!KvPW)}>xK;m7yQP;dY_9D88{BREec5zuu z_HFR&yGVoBRS~jU4X|{>iqw>g)P_p-@@tee;q$Q1WrbACNQBcxh9@+|4I~yCNePVy zEm*fJQ%#PNs&t)a6FxC!J1{+8*W78FYxwSSQbw!Bh_fp+df#Fs{P!W_U{TK+_UF%^ zR#nw`D}sHE1`j-017rh`vKcEb+lM=cS3(wOY%RqJ`W7}UYR7wAenU&__L2;4C*#0Q z#l8Q3`VAlEl26XTBEDy^PcBwMNpYDz<72_9J0DAUySuFdl%$qtEqD2>;8@=z3KU~qj6Qra$PqS~hLxk>l%k$1yU!Es6Z0>9LC&D2L8U%& z1M4z_^vmhz(?VsvP+Q({g#)V#>5`s?`GGr+bn21H$GEytpT63p2n_EMqJO?;Kl$7+ zg)?G)Vt2l^dB!rHv)*$yQezbHX-=Bp>@OoTB1S5aR`u5OBlGWh6{G1jiLUzy-|tz( zI)&P!)OA}rFQPKGZEH-r)Nq{L%l$G89O%A-dIP$B``})VQZ+ov+r~7KLrKXzN3I`C zxMLG7Cl;%+p#ICIaE_`?1u6Q6G9qO9SL0MacGYmz3hp_63_C*St3G674IINtG+(NvA zA$X@?c$qylQXS{Oi0>wLF7O|4OTp#eE=y=@thRRQ*^&0ZQoogaCddIWRB-W+GSecUPfUIkn5E1t{_H-4>PiJ3TX+wCo-&>}X z@9f?tnd9oNMYqJyZZj6kCI$9&mW09|f=@h-VtC|>VC^A|Y=q;L-t3OMYZV?hhb5}W zz9;9Tc@#XUaZ{t|w6R{kCuBDleTQg@-dvbmb$)|Q?3yL<-e%qW;`*b^3YwpYCt6Tu zdiq#x%m&zVMrvvk{|Lo5!wozE`xTb%fTzE+`k&)>j7;45=W(fT<3}mre&VcBMn{oo z6scp)Ok6WJ5V9jnsTf+Kw;U%cTBdt&%vHK(z|K7Sk^OdedOh-{31lDs9gvSX0gpMGKbT$5%X{CHyMr<>%s8_XB)fI~O!_nOv z&)t5lOTHZ-_fI!(S=}jHv9tEkG!t!X6YGXMs9|Y*Uyk2mdudE)j2?uGI#GDbhxs+5 zr!QvYWhN`gMX&cK;Zh+=nl8wlADLiVdzkOi;s_u2>(AP?I9nbW`{MdPoolBi`?YcM zRiS;bw}o7d$L7h1)#D|Exl^>GmfGJB$_6paFDqk%h`8Qkw;L&dMg|3WOuI=|;`0g2 z!-D5}-9~&kAImq6O)Q^j4L&T7h5Iy#XU4^_XNal3)7Zq&$FBS87 zjDIFT05VO<^nYS~Mr4nR$P?DE%0}C+=_V9a@ zQ~pm2;E9_nKga*CTZL=X3~#`Q!_Oh1h8oz#oT_B>9p6e)df9c*h#9~r+?zVWvD2kj z!QGcvAR#W%l*OoJ_^0x(!v-|asj^_mCz1SjiWXK(_yxBKwAaN#VDUlVixgs1+kJjC zr7v$^w-rFt>k?;n6*kLDU$?}AN5;kwOAu14#{Z;0w8I^@@Z1uMQ4(&fQ+~Fc{3@)h zdV*f6ymwgXx=m$aYI@&o_|K#)XubQZfca-jmA~<$kcdQ7Er+!f2Q_S&D4B7)fLV8` z<&2JZx)1b%M|@|`CCWXq(MNi=uG>t$afb{-C_O*NB5x(9>B;Wu9fXTfy@!pMrqxQM zjqOL_^|4?Z=vdTefTC_xy=dOVB_7Ai)%6HMzAD97z&j_Gic}!PQkrMVjEV-x2vUOu9{L)j>a`fb^mHH8pYphv^al001*vSj;})B;KfcK@aM= zsd{a{q#WfkVG6;)4#FJXEuTW23Lb^pI?k57@0`|_;NJ0zhf_Pjj1j%-oLIB z$JIcQdg!XS*D&j;iq-Y5Ys~|mwq_-^X)xwgAQ9OMh9MPfjdbIuqK0=cT!AzYHBx<} z%1-59j$Mlus#qCRu{-&sxS7Pb3j4XQZ!Z(rlcBz-ym|1{L=fu6L{&Rq-W$hL_TrsQ z`O{@%^7ko-xiqiC@(q6&6L-M`kX`42`UikG-_h6}yyaL<3{bS7jg;2Tb|%RngS*<&>AF$ zi1%XN`+Tq>ngm_nS1<)0u$!80X5y@K^oyx#)F*+thkbh)BJlJ|iku(S3PlIVqRnr& zsc0P5b&lf63fp`AUOn3V|5GEP9(#}ea=|d}(2M%W_IrO7ICBAjQ=FDHr4Wcy|I9&f zhf&Pwb90D7r|}^jmbLQ@*Uejki%7{s&8F*&X~BUhrszs(%~&^g3K~j^(N1s|SBF0} zvfc|=J!3_;*o{l^e-$C_@4%e^+=uiR9{PsTp4&MqAX7fMq#^6(v6SjDY_2|1X`6(V=YwWkCChG&S;0$kfhghdaL@i$oyq4V;WLP-sg~ z!6O`$$D|b+f1j{1QeCOWT=vYKu1HavrH?Q3!yqS2j#2@acT4#v&QvV|)55|ggUDk#!6z14I^umxt0T5_n>C)>Ry6kx(rq^l&zk#kRbvhBFklolvo(G1 z%i1O4UrEJ}nMB8sO7REL<1wbf!f&D{k+2GdJ$^2wMRUo!wY7&vUMxZ#Y<9g1h3J|e z%T*6f%Ecm3d;Kub108?qcb`@Q6RI+gkV#Jb}q3t?B3$DvF*+TU7)pHxU zXaqwx6C~(&NWSb;BPg$5mv4p?{O3Uh0#l#qnmKP3=(Sf=`=OTdN~rSha=M~)`WVf0 z09{E|x=cgC1j;3H47AMyno|1PnRqHi9v^C;+ihgoag-k%_lV^#N3*l9{+NDHr)j=j zU@A0Z7Q92KsI>H)RMrAfE{RdDi^065E>SiThhdN^zt-LnbW^R~U)cuVED4QE`~SC? zdm^SyZLf8LAw1_spc%2&W`?!^BH|^!Rn^C+u_Wy!6!yinUJFpfx%VC{@*8pZvxJcU zBaK0;Cy^X(#MSUpb1vM|r#|B6Cg33l$D*PmNM`a-o2UX~mzjs}nRa9Ls>am%CguG( zc;^q4lUOy5N=xq?9>5rZvw~@H5y_#t2u8Ku+!kE0H{ptjd3_X`wq9CH_0V=$2sNK9 zN+pr5GQ&O`es@&b;}ay$DgBszmv0|o1g`8#fg>Ye<3m-g(t@M8CY{^{O_lCU$xMI@ zY7Sp1_SlHf*~w6yPOr=>=PEp|UI@Uo9_lPO;(D!aC}}lokmWKL3(0+|jQ!)s)U%{^ zCk4+3nI9Y@_ZyqCmF}^(T%6rTo};H%h|>+p4wU$)l9U!Lrbom$BumpCJT>c|Re#6K zMOK;v@+EWTZ1fkQtuc>6g?EX>U7M^T_jV#`S?BU4p=*M?mkk^5xacxG%KY-R;Eu4{ zhA@D@IZ;iw_MZ?Mb$*UYE)#7bu7oQ=qF6Q(W$=P9cJTm)-U(p^UdIR0oQP1W%Ydqwi*EVlD#G`O%VQL0 zr>nhD=c|yY^Y#9QHPSF^ySDJQZ~Uu@%P#7m+MQxt?*vkW9~JSf(>*PREDoxV!%;(5 zy1$_(WUCoTC!2yKdM#PiOJO$AHoZg$>~3Bu?8E%6;NtnMS_N(bBnN$I=J5l}9^XuE6z9ATl%HqkJ)`Xg{9RN&RdW@ z1{M)716mh*qp%}n;|m# z2ei7oU97s0b%XZDP3yglgdpm{?Ux&60hX9FSd1jRY9@soH~K1he(jnPAWgBPAgQnV zWd{R&zo^8N$i9iiw#ME2{Hxy*liYYhR)HSfN@QYY-GI`>mK$LB4}AwoKZLgz()z1cr{Wr#Mo! zt}d%R8SlHcYC^cU)G}UiySpsy@c;6_BCg;!Go3pQ72AF21tQ3ec-eoGZw<_^Ng5HX&o-m zaW$lsrqHvcfcGn4yb}$(1z}C63#{Oki+_GkJp^{yOMj||au(%4huDpc=bOz6aa%H? zw@hK})zY>;hLBegzjvaIpr6)=>BRvoE@!lurCpw96mRplZO><4aSberQRM7q9aHz} z?Ro=#28=xN#rJ*a0Kw+@#sHn~jqPV+U8zfd*j}L##Yqb^T|8q}_?){v6Yf_1{(&RJ z14R82l7sn0A3{mn^|Xh(?(=s1(Eq-ZhVdxHHEd3NMq=dJ5c>X7@@A_4?!lF!;bMXk z(L%E!1GMi3mc(*=?a-jxjHJ!&+uK7TCUxtF-w zygP}=_f~hWvE}TPMKuFRtvDCu;uPxpH+VpqqaEdT4MwAlQ`MH=Hfn~K2Heo z^Ey=-P&F{IFk(~bYayErfB_GBE5}aYWW_bNM+lXQfE=KMhiYzKV&#Mp$`^NKCo{W^f?)5ccYe~QDsNCK;!4;3=JyHSN zU&;D-_h+m9*A5+_69!(NtbOo$hXx;%t#i_k_B`GER3_MQ5GSzJ7i=W1CVF8}h8nmy zthuD(Ao0^di>hoJPno-GF|c_6IDJkTf2Igx0x-w~Z}SO0*jUfWvLRR<9Ml^ei2lKV zT~eE&02`ZKtG+f8r^(|G)4tuCz<=N2wGj&PMLZ27!>@I`H2b|-z6Iw1nDcYVb{K_DwXrpD2iZ-=Z$9Kz*MBd&3y%!Og%h`!7no_6n`RY#LJ=ihz+R)#&LoDxT}z&DL} ztN|P2hdJs%%MRxlbdWzaVd3V0Ql<9HZ;Has#OXHGLQV&f3$=>xyLh;tAhG^^Rr5OMM!qg^=k3oletYL{LT?AVP`5*kiDOf^ zN9rctd-uf7K*s}Iw41}xBT#OeF=w$(>PxzkG=S4$9>tZ{%zH}WxIt?}%=a{T_O3)Z zH}v|%<>9K)P~3q-tV*$`3%g&Q#2Dmj*v-d6dj9@DI%(ZEIK*Guq`XQQv%V)l%L~@` zvS24{(BZxt*|^C`=0xjbLp%t;Cw+d$46ZEqgPHpgk#Yt91j0eJFukFHcGS5w;0(p`eMN&81wm zlUleP7aBYnO)rvARlZN6AA#ql=D)tLn--fQO_AMjQ`ka9=P3-xhex;1CZ^D2K{z## z|Gs-C!2jX%J5tB%G){6x#iF3lH;gXPR|L^0vNtd*`QiDI3ue(?i|6d7wqok59D`%l zIcpNn7El7Ab3FK4$xPQz-s;V}ahAWN-ozTZqZ$X(bd)57wA)N{FPR< z!g!0j*+YO5R@urXUv!Nr$Ib!8k8Y=vdp6UcI6=bO`o|ygr1JvYcJ&!O9K}h^PPpj8 z*du{Mtoc^c;fS!r3E!*%@ZVCK$*qU;akia6_1Yh60zEejw7(1z(M0mR5*+sWiAD3_ zd`m>5K;F;`Y{i?%8Su&2eu`OndTJA$#y=iMM|qQBOOL&@?R@>NNb75+Ot9-5k?k$) zbC_APJ>C30OW&IOH^~irc=~8bk9i-L`ky>gnG~4HN(Ef=?mfje+Zt!XS7zhquMD0Gi=eQxOzAYGR4YFp4F?Cr*5VA zv^_u=A3FV?-7hmcZ(Ez{1izK7L+;M>?c4+&cHd8Px2I)D2dwVlEoNj%b#j=E!cohe z^(&J{7CRfm4g3womEhE;jNQ*aw6o73XQrdOIbE(=qqgX;lHN`+@x~N%98l)l3L|~; zYkDvrAHw@TQaIcQI8&Ez5tf=?2L`jqGpI}hztj4wT;_~zsBY(QP)CPj!zkiXhQW2` zd>c_b-6^&qdudOd%a6xJz&sJx`5jRQ~6wSVkro-^_OjcSY z!Q$C$EZWj^Dkfn+dNPfXvp|6MegV_x^RKXFL=zb=811cI z1^agqnP_Ki@kIl%8^r9ylEtOa7#-zqSz@&lMcw_uc z_=K2vd-_qyuHmROOr(4^%R^*uYPL3oVrPBi=YTk?35$#-TQ^!%vqt4twG+PKWU>iMkIOlz zhA6EgxaPIH(b3Y|5O~($g>rvJx;Zp3v4!_OHL(Sb!gIQZv^Ke4(~x@JfTi$LB+E_0 zA1zL-zTdaKGg%QvdZF|1&RIo;g<*`@_TG6 zzf$@R8h(5hkz${uc;HrbTY^t#gnIYC?-!DlSj>VHvEQ(lldT5KFM({P6v}KMYC)AQ zogn&9W9;32_Qd8gT#m6?M6YT-6$(?dYP1{!wa@}2W@I5vh5YWXZJM6M*JYOv6b7)= zuW&uwfA}z%(?EEj9=Fl9-1qC4JSF(}zla=`nY2#ZAD(m?sbu2G(ds=hlZ`Pq6umP0 zw9|hc(J$Gm+n0cID%MK3SId&{@8J((A^4wVB4|0Oa^egcqe^l-6t|%jb*J~2N8a~r z^zc?cMy6%koOW^TlZB{N{@PMkaxu__iwuWy2u*Bq^*LqS0@f?IvgyI`)ouKD*dgCF zlB=qzC(;%uRv7ZU*7F!|#!V3Rt~zkUK^RUSgS{VMXw-s!vx#jhv5_c!X%#%UgEYBa z^HguNg;p$_=dBRY`IJvt<^6+ea(adDxCout#`D{qF6QZ~^e0x<4pxBR2AsjA3zH4+>_4p?=&tkW=etZtoHV><+ zyYT@~^bDQs^|$r+|36tZq&Zp6U9~1-F-jWySZlj$;Xgv@JTve;;t3Jk)^nSluz5W+ zdV>DSv)xwY{b(Dp{{Q$>fM*n$z=2`rAEN1sIG=Z2BRpmn{*t>6!vbSozdHFJ+00vBy3QTQCI0Di=o5HRShMF?}Fb#W9mH zNmm3YjDbJyb`rfv-HX+>Bi-Ca;MFdev>4hDDEuXl>f0np{9uQW^z0KFX?d-~r*=7M z-RKBaIu)L;Cl(3GXc?42%ZS_*s=Tm7uO80_9%mXa_HG56yeF~P#pho*jW|xX_SUO& zIwj?~cRZGu>3D^|0gbi9f}Fc$zS2cpkaLS%vZ%$y+(z3D;dF=>o3t;476jWR62Ro- z9wdtB)LkD0^>4roxWgDCAWEw8`=#5V~v)vJL?ObL$^OIn3Sxx%iGLl$7qfP>I2<(u}C9{eHO?i*aa=F2K|>FzP10|rGvO)Qn6r`EWrxJP;!*f zVq2B2SY~vBE7*AEy}jDsa!Ku5EZFBu6b`*D|B9Dp#I~%YlUpmCk1N&zu;)UqT9u2`vqL__2ZvW?2yrj zuFx24z0YInXg_IrrjBo&9BL}8R&<5Ao1%_)@>Vp8pE%>P`wts%R)z6R_6_h>^v7Qi z(o4|gW5eZy2B@-)xiYunbrYg78ad4jXs#vKg${LQ$HwMd`CHyS*_D5v_9-W0B@)V5 z8rDqBMA5!Usxa&UzNFKLNO?Ic^L+p%9^#(hzt_TFi^$^uz5XsUSJp$bB9Avm=W#`D z56^p{ZoZiHb(r<`zcK1XOj@S82T6qqWCnZ%08+edcFAQ>z>2Zx=LGV~wN;?w)x#wn{5b2W`sKJzuS*vq)j&QO%$^AZEjD1C)) z)pj3nCOz){pSbO+EfxqPKDK8ua{o>9F)VR0uXL4d0y~IWl;x*lDo*ioy31t-AYHBd z_){(c8N;&e3_>sXj!+)0p5TBuI1;V@ybgPsl9l#g=}$C}h(?1FVb%QpOlM(PPYbxa zmVODAud?W22e!`J_ZwoX?gx4{v4-?_h#ZS?=Z@`mjcD8(2}#45!@NKGn$AnAa_t2S zadBX@G{Ba~7O2XM)SZiExn3?BtUnQb@cQ@5Y*W1=UMTn0BdaiR3ga)ZN^p?AVFlCIOiwk}+;ib&UNv}H9_@}BH_V1u94%(&GgV!O-|SrwxVf&0T& zSb%CLOtRijMu?P`sg<(P49i(>F7GsIrd5M6{++Tk^}`OlX_YH>(LNf3OwY2o_-rId zOr)T(b?Ji^9+8os1?>z1X|(5jK|~oc8Zb9#Rp}r``-6hIWwf{ttYc4Br{ieM@|cx5 z0>Sd2uqCS?6HH^r+BhfP#Bmc5kg!Z4{_>CJKwVEmY>h4H*k)cX+brb)>AD1%*I)_o zUn`?Qx+M#sb`tAfVi|d#qB00~8HS^7xS6XPri+Ceu_aqMlRMx1^VmyLBJ!tJf!NA_ zAczD4im8ROtn4=XqNq-;!P8*DYdqM2i{pCsH^rg(?o1HYvjl zIRds8%>sWb+YOOQA>>IDiB-97usT=A^RrO>@AltAt;^y{0?lJc9nK)?bwd{T?lRaD zvkwE;nkm!5;!2HTx$v^@vh28?vN#T>pdVm*OS9K!%e;nzW6L3M#h#&OajszPh>N|` z_R%w*|1T3uGEOs8N84}rkY26cuVMSq0lBc#Y;jNt2>Rj|m$}Oq4HK&r$iZ_&oYKtG znEin@5_Z)}qT+pXC_7Vsh}E>wA7QKkN9eJcEI{Me)}5^bxg*x>(XR(Hj+n6Y_{DGS zvfJc2ilIaG$IOZa^g<|_?%}4;_VhzCtBD?Es)qW_Eh|_DfdxoTG1eh9ag?#+4s8nX zUgPX3P!+#jx!t>?M3olA;f{9?TvV&G*K>yUdeDodr?+qTINWyp%zO(_0Prt^$%5Nz=Ak?G&d2`HIp71)9yCU=QmM zSJcAJ&j0QjS*p~kh;F~&>d+ldVZH7-H{l@tUI?fSe{ua&YOdsA}md)7hTd4$# z0g=3_0kX^=zh8xZdw^vpha>;WDk~Efch-X|^5a6CX&(0zY~4Zgn;HwC>)2!p`-pDZ z;(U}u@rhD1^B3wG=5on6%#Mgx_`PcRkE!*=p303hXD^H3W`>jxMe-Q0224kPj>8b; zaRM@(v4LQftYL0G3-@hr2FIOCO;ipG{n~)S$l!=u&N#L`R43#Zdbm7GBo5yGK3ox% z!@zt;)Q;3(KNTX8s1q|DjS^$WV(k``*q7qENayPvrcHNw?uj6+GEJrRXuJb<-P3ZO zdjt1~L&p${I(o&}`V||i8_7PQRr1+`*ax)S@bX)O8rm?eGCfSe_%);%N;wQmnPdiY zw)ul7DIhLgopp4AsG6H^yI$|zMOTET+!#wJ9RiH9=yi1B7nhgQ^q%MLDpSt>&zDc# zWG`Qn36F=Le>m&=T}{;Srov|VfD;noYTHllT8RJMp_b(n4@ni0 z`&NVStT4`*C@Yu0`z5QA7YCZ8wn;oBL~MjAnjiLd2-aWP9eRLLR~`jlP4-7Y7b7II zDo}>fh}yoq?r+*?@6+|L zK_&Yy!4$R+$egpxXFL&NOz;EvCNZk3t$9ksI;dlM4 zFcTiOC({u8D)&W55;M;mg1^Pmk-nHxtgVdUxcYLAQ-rI_amx8r5mQ_Pb}5cjge9jn zIz!Q)HF8d!0Q~z+NlMabU9wSJCp&DW26(aVK%#W=>RCb|3pvusU3~p0@gniQ8G3a{ zA1i7*@Bs07W>ZK}g(vU!$?xk=9oyqj37 z;Cj;{njL49Dn-JV@Q=!^K4Ue(wlo`8z+7MDv9RMS#3k?%*eu|dvvh^K^^#x`k)C@pfEklUU_AZadvq^Vj2)+gTG#Y(`vZ0D_giXnE*e!6LlZ_GrMcl@D0v98&C7OuyBaSl~R;+42FE_=wr zTPieCD*C?E^$>)Zk=_5SfZ3(jvtY`;g#d<1UBf;4bpUmitb^Y4+ZH>;H1}T{w%ZWI zb2}`R`=+h^+0Q(UMw8=`^=wJbn}`#nrY#R_Bl#V za$qr`a_hUqsM0JIbL7y1rb0&7{%H<#1_cQ&)KJJ-m{2?_M~JsG*f0Sl)c#ST$^&d} zt?=<5)bDc*pd7Bg1jh*_kY;glwTB__h!5N|p$O~zr;Wly_fXG7Oyk=DF)=HAT#L#L zfMVT5xTx)9P~9+~VKr%|=wStPpGnE|C+EQAMBdY&e^`Fy6Souu?9nj84lBCS-<10A zTUG>*K>qExyxFz-ymvpbiwJ4!{{!wo5x)Vxeii_N@1l;!38sUQIu&*~qVTe-DFm2K z#+Z*MMzcgp^?a^>@Avwc@_s}qO63BIm6Grr>VIYj_Yl^bXg&6n@m4b*Vs+t+B|Z+5 z`e4>^0r`-wI59a2^VwLCawRAuNSy_E?b=gcX8h6h@5_Z@Ioa;PO&?1|BQGM0sM_3K z-o}R-0Nx4*J!`6HjLA*0u(*Q8RDmfrIj)jlM}9(Ge*Qea!m;8=j$JtSW-M=|Sb>*$ zG7HSS*c7qATV%NB#W2sf;JlyA9Vc@Z;=$a^k$90pm24T~>DTBxrV2DtE=aiow^&4X zJVHE=aX^7wuaA}0Rk5>tuY&T*25OBJjE6lWg(6DzCW?V?l=JKmvJ_j*RXlzE!vDkG zo5jkOrRhQ6o_7rAoH)}R^JZ37b!AmoSGDb~c6)?wH*VBI76|cRCL@qB4+x8Ac;}rL zo_OX35J-Sz$$+rHn6}!qEe~B?^N_=x&lKaH(f9pp?bs*s7We^I=D8WGbX7OcJttzv zjyUUI|Nl)m%o1F@zD7Jb#_Z%AVbP*3Yge4zJ*!(~v1<@XO^O_PLlrdH(=>rxd1<>( z_LnT_#p>$%(>Gs#?CfjwFik7>Ty`mEXJ>ki6!(os6?qJ+l%!ip7IoOp|dY|Efr|VW&A!9=g$ESwQUc9lAJd z%PI*S_ENVcB4kD-4z~b)s{vIf;TtzyZeB)djb#hM^gE8ER;wl2;1Z9CbI7o84H~3~ zrc7}AV1&_wb2T@!(|dUKlkXy)Um+c*63PW_gG1)6BpH78;whdj3gk@JTP?9!E>u9c zxxS?@8F1x_w@3mv9D@* zaT(K#qbGi5sFjhcu(D2Sf&MHwENES4AyO<PJMm-w|We_8Cj7ysnD zc<;~sHo|=Tsb64!(AhJv{@Jg62XaSOsuNp;ci;O8;xyOh*hYb)(r&@*#%U{t#bSsH z+)Aw58F58!JQcW1ZH>cRVxA>GS#}5iaI8hcL$ZOa(rok5`7s-&6%N^2{yJihwK&k; z?8-|N)mqfj>2xF`mxQ=W*a_>Pb1hQ@Lzm9y#f?ybZIo7MiG_`f1gWYv(H(44EGz4B zhsT`28PXadC-ovq5=vr4#kp<0nYR z6C|T4(!={m4vrA#2_~~cq|*_Ky2L0?@%8uK#RvEAVVs2srz7Qk_>(;bn;;JZfyQ%g zL?>+vS!02$^ZB}n2l%m;ZXt`QB7H02IB1;?=mzcp& z#abN%yDD1c*Tg}ZQlBC3h75PO;OLO<%7wbJ5Ti81WHgZzz@PYyKZW+{rD)P${>|Un zj<1Gd*qy)c*FU?p??CSGVi9@o-S;p#Ji)5GL`pq0Pp-qUlshGGGi=;T-R(U5*Zd5< z$0Ay<^0rOcZ|r^q<$kh%3_1P^!KS?l2G3!qk z#hJXu-hc1_$KxEoPXK+nL~%U_p(QcY28n%@GsMhCxrzbpU3}5(oDfnBDdH(;O^NTK zZT)>@ZhAf%i-kovD9NKOaRJup8138Jz*~_`MmbvEyC}rHM-TD(^=pwAUcPvte>>d~!oF7hw-LzF9T!NkI{N_@hktE4P8i-uXF!eU`x@$YG%_1WlrU?$dZ@7k;=UrP_ysaOJNrMmzxA2Uh{`>t8(d3Y? zAb`36zAk2moE#h?WS&S1`Am^v!zz@!89Fz)H(iH+?&1FjuD~%j1!;nkucxk%@!A-6 z)NafZP4bjYz(^AeP+0UOF2HCC<>SWJcFHR;uvQcmg_aH zE-x|V_0n8&l&jNdUGUb`)upUbW+w+&uc;WnMi(~D+NQ;9WKOxnOgQF> zmi6+-s^!+pYrVd@!DM=b@if8Zyuq)0`%fSljqvK9d&xWZ}2 z6LqSbifVC<&DE9IRjX=+(RhkDm>_B0}bsIFt45PU3h5CV7v&hJLeR+Z7lSBO0@BS_}*BAKdkA8+f`>*`vPygcXi^nf~ z?F+~qT|80VEEah3}|)^Mxrg&namv%D!M=FiL}!JQLT^_^&B(d~hT~!p7&9IC`?K%N4%e z>lorW{yBWdWJ1CS4X7$_-Rzy&;eo=gS`O-oeYBAk8OP{SN74njna^dpemLd?%;>dX zQgB&=|Ko=Fe7!<`aL@zC6x*$e4Z_kQbfd`xhvyG9&dJHn8jW!A(N7Q*1%B;Ueic9b z(U0-+g_&b^!S=p~(QR5av%(3;^W<+Vwy5tS&4t)Tg2S)paprUqX+NH9JBya(M$Y?3 zO$zUSnrFIx)~$FH>ovg9bGf0bqpEJO-YoI(;X^EzOBG{kLTKkgt%u%=(Cp>e-4szM z1JLDiX`NIQ^~ErAAzkcPm>(nEhq^qd;LOVsr(ZtD!DNho{6GHpc=+vK$K>9_Tfeyb z@zrOu_66jQE`rXF&hO*u^(8jzIhvprb0(;}p3xLK8gJP9Sl#Xxh8wV7y=V}(>AQXn z!Ekt|-odF~r}oB<`k~wCeOD4Y7g*{u7=#o!)v-i>4x=gR0%^kB@I=-cvD32z9v=xL zLF)^J6x@T?wd=9v$8PFGU>%MMM-*EZNvQO)9Xq` z!bv2spB(^cxQ7R)DxBQ##|Kkfynctj!p9#!#kc?LZzE%%)QhM1 z^?&29_BrqvjzRar!C&~=7mz!==xg-+#S1ZDvh+Yo>^KWF*62<0f&jxUzZ-NS!}ar2 zyL~~~(TNPZ0KZXjo*oT&F#g|%_Iv$N#5%ZjotdqG#`E6QvO6PNCdQRqkv!e@>KzZi`)Y&PKs?1GS`Rme8tg$IqHZE#tRbKXh zcH~Sb>ujuRnNrgbU!z>SKwCb+^xzaF9cq(6-dex(!B=p6KEn@x_+yOHyf1uYC;2hf zu+w7hN2syiMwp7XO&2ZMkqZ(>_YR#yv)7q$ti+qmF&OPy%1wj&XAcE(-(1Y`=<#EL z=+)&VW~A6K+DHXAY3n9>!#A?$dh^Cv5+0dT@1v1x4H*c9Qv^b**xuTLD^y*9suWzyBoOn8c1%N6gS{* z;0&zi3rr?5boP~Qg)mKJ<0$362Of;yVmY!vcR!aX@X7E2S#VHDSvL+`wo%Bi*sZ7hv1%uSO(oA=5##*&t}^rUJlBte31*+}2e@L^l`T+V-L zRcqFbc4FtU^1I&By}{M;=!Yb_@nQAA0wyX`IJs( z_+IeD4inkJvg z$lg1qMpkjEqV`w+qyHGeW{r=(_kH~GZ~sf5{)OF-uRgQ2FCcex5ompKaDb0rJjd+h z7$1N450U3~3iao)&MA;XH^v%{K0Ld~1Fb_GL(9393@Nb(`;2vsN zpx|^Fz}7w;F2jQ-eVl+aG$Qi+0>Xa|zSW`VM5EQdwo7`g$V(fCE6JQeh1 ziS@#0!R3ZFD23B&bO+$>ZuzWTLOebz3n zu5eKlI6Xa=sI%>2%;$?fJH>wR1vp;&dG(yOYG5d{$e!aphibRW@=P z4)P3t`nUf%JU+jNKlq#f1FkL?7#*G7`i1pT1^e~ctbGBwqbqk=()PK5Hj@Hv!hYTlRYutyO!W6pvbkT&x<}y)Q=onhc zICm+6(23ph+#45B8;9GpL$b2iMaA0u6Xl85Ah#>X!|!K=j_*Eh`44lq8<@#ypv z@7zDb;p|X8O$&}`oQRMoTc6F|Ia;wlxcbhiljg%RLn@w_+Y)hW8>3G71ue-lc~aF1 za;lLhk^GtJHpE9i`3OII{u8VhYk6NCAB=H!Fv8(zJIJs8czfoy)PdjVn0?S0oOQB-U9#R^mLqFu+JUx%isFBJlvS!(=a#R&;S6aSV=-Tf!b@wH>&q);kxxzzG%j5(E>YK+u#xFxiuqz8 zOLi6{jv`4ySS*Zb#qNddHfFe2#irLP@&1;r9S)S=;s^n0WQFLXkDg+)n&bY-3C>Su z_}=gTA9(iNALH?#`tyA!wr5>^KGwc~+|k7m)~l;4ZNB5fLlq02l)JjUHMa7pY+gth z?%*Q3BdYEVK3PNY;I8&!_;dd8Lg$^;v_m$Q`5xKm%)FDVrgUbt64}p|V(kRmcv}{i z&TKwtu|6->`02AtJbQgbq!@LSV^yv3{MiM5{Ol5^AHKx9_YUw&@7%|1c7VmrT$oTl zo^#jh)%E??+`rS_#D@}9b&GYo)=2JPlnIR9@cNP%lS#@5D?EE~g^yl;f*=0$6MXOc zAK~?a85Xo$iEuO-;q)-WJLfZe`N4f0j&od87qUesh&?%;$=aPp^kOUB+-O4&xv7RV zlGqjK-eET+Sxh2BpLy?JkeWMoJ`w+f!bIq0RR(mn9U;zQcL0bCvycH}s6xfD)+o2F zfX_o62MYji|M|W9c>e6U>1LW*#d>jbgUw?wZuy+6V?fBjG5{x`nWXW;KegP)JJ zFCce#rJ_v6I53yu=mIz^f% z0@>GHgFpPoe}o@>^bFtq@h5nFeWMW*ag*^R!^mZyu$#JAY;ZGwipv*seDI|QDk!v3 zCotZ*43lnZ_oJN$c>VIV!1{cg3e(YbI1n1{PBmbMWR@j<%xKqMA*xt(BZ2n}+hQy( zU4>f*m{UYZ8guDbPA4ZPhEG(LiXwA9Buq>b1v<@_*Ld*wK32;Giq%R6jH4`7VQ8vC zN`}e_l~^|Fuf(}BdZCwqiiE5W~?;2FpKpeGp81~8p+RTMfz-#Afc^o z6LH5xU3OTOHJI}>iAUN!nB@^QiAG{I@rkgJ{)%fVyb3{17$-xwJ+MrOD!Boa5!U5C$HYIMZ=NOG* zTrC#bV3mO~=ms@j`5u?hjZKw=ae zDUC-5xV*en-Z{sL`8dZoj_~s3Q*1VK0p<#FYRr9^1<j9%P2iv<9lvAd!~yHN}Up zf}qbzRm*-xrPBFxag4@yfbTikT$!*MYEL%kHXWu>C$q^%-~1Y)qay+9KaXy{U!Tp| z7mz!;yh40D8sUSleI5Vz-};|0n@(hu*GjS7_8a>!lc5)G-D*$blBB3%ritv-C&vCW7#Dn7_OtXoYP{LiDks#}0-CEQwyBQd5bxf9h^jHGcW$I+YtmpGCvwV_{xIm&3GnffEEXee zv1pN{4T88NijGaO5apLe|JlVH%VL9u^j{Yj?B6>T;?96{-D7UXZVc#)yU&g{i~2y~ z#!vxJrnzB}WZWzre3?^{lVMeC)DiJDjq*_WAZMrNDk2=U9Ue|}UlbPQXy5D-r_+h9 zP2;f9s5i@0QE=bmi!>Ql{CW~5y~4g1KXQCUrkkT6fBgI@zVp5BVsm|iM`vHhy?bXk zx_=)<7wFLBN3h{A`(wX8v$ZcEcYGZm9pSzAe~E_Wkok3J;Q6pP41w>V+wHI`*`@kw z?BrNgLxCE6r_x!ZZ95o+g-#@>U+loFm`=!0zp-wS(h4((cRb6oDDR#LXxKu5|+Otkxh9JHW*Dq#H$seaDvwtukdod5R;4d zD|H(&oC`8>0b)UoFq=-c=)*44Z`z^aU|TdULnL$#w*uE0tVLo%8|mJ~aU)xjgM%Xh z<$OQcnG~h{eO;L5HH`s~-ffZWm5Ih{Z(FQbuu!N_o8 z76dmz9}gM~##zEM2F7`Qg&LzQ!ZSI?To{PAJ#qJscH^_Nb0lP&wqQpi4>rxwIuwyca!A9f%duX^fvizzswt<%xUKH6~Pqi45V46vL=<1t-$$OsU*)6Er{((=t&0XZ_79-O0%#tf)=V^r>R-_UtQg( zXz=+-+2#GdxVVsTkPI@p1UQ`y3l9s0SCikuw(45%rHKr4T^HZeOe3ubtE(Gb|M8;- zxO{zqAOGlQy2d0Q;oHCdX8`8TkB&aY9t`#)tk1>T7mz!=S{dK1aCviud@@49`8`=Z zWUzE?kCO~pRqbG;b&I7nC@Q`nP~G0_7%lo@(>W=JtVTSYvfDo2n{40xBK{GCzPPlC zXJr-#L}xW&88;+uHasQA&hrY+n!}cqg*KjHHi(KwY=X6VOF8zo^;;VaQ=@aEW_LiQ z6m`*ofd39{5@ExZs9IzBvet=SqD3`9kv6}?c}VfOvne(}ZHocM*HyOG z4JCm9c%AIk*%b<#ViDse$dkJwb_>Hb;wF*kjibC&HYx>b7LFjq;mHZI!!gnzwqh5w z{i&UsXk97(4+p0+EH9qp#ScHkgGUc=bUZ~+vfzzzxwz5>%Opku^hn$P z@$~sKr9&pkSf3>pk2p=m{$dgFigb>v4)nUmip=$P@w^x1rnbo8w#E5_`xflQLZ3wV z%2&UJ@%R|CgF}3Hd4+e+pUD0mgTnEq+z($k_Qm5DyY`vrcX+Xzpay{>80Jd|8X!Jl zf4i;cz}7RUdqXCA|91pP0-NI-7;nGq-kfi@qtJgh4y=!C#G($y`Dtl$>N=N@*lCOv zxK5>Y3Ty9=6)04w6HADNgd-1bIFVzJ?LL1G?u%8Hn8(#%bmtw3hp*3mo;lrg*-fRH zXj{u7X{`L1@Ub!d1vAN;uGto(#$}DG186WxM@rC3M=54!Gh|02q(jR>7 zYswMVn69mH|M(DD(_oT~Fgra}uEsdev~ly#bUf92mW{H$7{{)QvToz{M%j0ggZH~} z;ZQ!?9b%p}hKD#S7{iRrQFyc7$e@$g%i=-coP~&EE4~j*LAbBBji?%FZ zE7(}d;T@*&VR0!?l~n6zgMSN@zb;^%*b}W?I->>?Wak*`Pye~!#Q4E|96fwbS?+Zo z2@u@=JP+2saC|mvUqJ5g+LRSOdiGQ&#KWVbZJ-c0P?uw^jT^zOIr?w|_N(g?{#uzJ z8gnXm%7XNziZ-Pes*L83dw#>)e@|g@d6&Vbt}b89B5v zKO!={gf9;L=w{Gy`CRp(%WycbZrRd`tqbDoi)%>cF2i}=E; z_|>k(rY^-On@tXJa(0aIY%BrbTy#?Q2 zXJ+V&uRN&`XiP+`!qbASh#cx`979beQ`BuKoA-?OENqor$j2z$;ey==A8W#*Klsd$ zhAodQ5-Av0yxG`$$5CKoSPemWc2w-f)*KJc?%~YYwzrNs82p^E)qZ_;YhOU_@FG6& z?xTkqm0Vpckfmeuk8;1bhD`)LD++JGJ^V?1YnHez5^Z}s|6_Lzb3Ou3hjn8rx!vxV zHx4&Cjx!zy;;7>}UFPK`}Q5FgJ|M&anM!)uJ3 z#Y*UCwvZ`hrVI?30!r-YepUr4RDlTH>*vqdCTzT?h|aO?Myw@*%JhTcsEWB8-0Zn2 zd(39JTMn{J>S}ZE3kuXgSJ4<$9d`yK!CCRN~*x$LG zWJ&%#r6r0})mNL+j3k{tL-!`Id&BJcu5Hw1z$HVjWpR?@?Ci|ta?o=uk(~_byCfL+ zx6L0uXya~{^7h$b*Xp~#&2lAGy7yv>!q6FGhPvqboj5{0oRx8*Uqeec6O}}~B_j-H; zJ-+a!$Hd^oDPzLUL~cW!$?#_b=M-$+QD|eVVeUxSiLpez1mglZ+Da1oM2XQWg}A)3 zOtIH{eQ{LcH+ufPbJS%e*GeQ3A#|H(?;f|aqq!Bq@!F>u&lW1u;LJ5 zmLNNvV6j>X&}I>WdvCn{g8$Er-FIKZ4slyhI?G834V=!$mY-2GdxNHqtCg%u)S)`O zg2st_FDN7==nvOXbWTrG4ixcy!lUTiHu$5iWVKnLZVHVm#R_!Aj^FQ{jg#Jyw{$e~ zPDF)-xhPC_ER7O;@80?L^ELR)VDR7j_1Uj|0lC8~>NkK8Cl4Q5#x?EG6Wbg-;JUl~ zh)40E^dE}Co|@Zrel+F(gtt!denS&x(A2kz(k`~rw!^Qt{rNF)nd_a4y5*mK>vP}B zaaNodt(1FsBbj6^x7;YBpdv)b(={v(*KeMF)AKps!bn(PSj<>#A~O_BU92kUxEyC0 zo6J%L)v*Pw9Cn$`%bXRd;hp_`=M>>xS&8k&$B#o|M*&t#i?N*?OpuLJY#jagoyYH} zT3=keKH~#8;#@mTJk(L%&e(<(#22= z$$MB9W{n>@AfFN=jVYrPho@&MxOE#NOVVDX8V(O0djrMK)!G-3JHDJpD+v1VB)J~L9)qK)`Ft)Mz;DW>GYvFj#z^;Rv0TgdDoF!vvJ~@q zVnW~rc6EhnU5MEgGvTl4R9sGG$I_wr5the)hWAnTy*09e*l@196pl4u#Lf6vWbfVF zsCe=8Kg!3_x_H2xx(`pI_V?CwMcc!{>(>|hJI7jltv5Fpas%c~2?j-OIA&9Ullp&~ zxlj7GazdI8ub(}~Xf#DWI}^y??BwtN({>*F4&@iO_66h)FP_joe(?hDJ${Vyd-t#? z)@bWkg2I6FZ2j_fJ&TFs8R<88LX|$k@POe4eoL=$E42^a-E-%iRnN^)6c<}HY)J5ww5vjy++EjSD9%Nr2@I~U&w(dHSyG?vI z?soX67ZY~f?XlF)8E5(DzC8-F)3IlI?TQV1EQBnm%BaNlIwA~<&#vFskZsmKZfD_9 zk;XBR3WYEL_qwOkgMMS?i8=~X1g){PT4(V-JW(q(j~x$z4zR28Rc)P~W~+HvZ&mjC=MKM|mYihcj%hZt(19KXPP=?dSG(QvavdUIX&k ztbGBw!;729`SGz%u#@S`X3I$+m9>~Qj;&PJRsSNj@eelI&e@D`tk8zHb3BGr*eyW5 zWpUXiww=9u){Xz3;m_=jueM!>ea&|-!+E}nm#k0RH#uA+a+~;YGyRkpa`-%s1Yp-{ zqp@f}2{sC`jmRQuF%l}hE7xV2=^|W5#Gf;!Rf3!A>)ytL-3muQ6e^Nc^y0+}Y>Jgm z)mfehz@|mYM)(JPu&$-M;P;LNa$9U~7$rzYV-&?kIq#$KNZ1HpKsL%%`1m;f{kcs~ zHrn3q2k?i-ohA z*SOT-90Jy36MLdV-wAR|Ryo~_7dWzz!BNXuR1^7?S+4!j^Z@fZ=!-|c`aG0wUno9D zYhOU__@bwg{j!B)f$URe>${eWwqN)a=3{O{|q-#pWzPN#&P`Vott9q zoMFu{xIsRORn(#Z-q5%l3;(^Mr_zrs&vmla=&6pRk66sFMUPFTV(&x*AOYazt5>M% z5|g8uHfx^txyfo=BukG>36tz%__)b9N9UY_iD#vGru%`N`|MBmkpTDY_14Zzv2*5| z6hTti9kL_pTC7WR%jLE5S~3Tud(SGqMs`Ev(YQYl)WSTBsU?AA8Y5=N6wMT!c+r0r zhI$?rvD)81SC9p+H>D`Ri)YWVsB1j=@|W$seS#V-hy zq9-O6Pk=lfwr#Jg2%N|dZ@@bI>TOEefhcisx*ryf-EPFM-2xK0%yIws?bs>0#U2X0 zG2jm1KUAIDII9&n9yra2J=X2wGqh9Tzxe{if=i=AW^hO;Pp_-Sm{?(CAzF0fWw2D( zhI$_2C%&`dCR@0%jXDR{NpS;A#d0#ADHepa#zCbqn#x+;2lLu_0w-v#tdA(gt5+9h zao^gwjIp{5m>P}8Qel%~tiP9)@;prUvhD7C!S^;LeknhrXWVTq_2rn${F2gGQQj|% z9SH4ls37Op`1%O8`;DGm6d#LU7t6|Z76p?VT{LhjY^v#tt*864w++>ySR`#loXB+~ zbW6Uueu>M)2GQ*NmR(Ix+ubow+ymvGkG1#0y2C3_@KB7)`2x>hJh!>D(``_AWDrqH0U>Wp9kSLtf9W68|0?r4R$BH-GTq!DB5~*adYvkn?~1Q zorf2@`AyJ|p7{09F^;+}a`e*bmQkdE$sDaD68)(Q2+eXnaI{^!7P6fZQF;aT5+r63 z?yOjmT;!){D%P@tA0Z#*I69nSJmzRA*QQLDS%TZ7xRRm84&?Oov6b|x`beY zFlv;!@$%J$$PTCHX9y8tz2FACGy(vz2wr0nlXoi&gJcL6CBJd&bvr+@Ax7ehir%x< ztW_F~fh-C@BP?0abQ+tn@qF~?p^6Bx5slSUkW*nb6bbTkFq!1~`ec-=P%f@-Fq%#< z8IQzxgS!U4)<}6IxpMENdyf;W*M;o-L%JqY3&M26_ut3a$w~h?@}W_IdyRXb{PVZ= z1>}w|j#!HIMlq%|qI>z_#~P)CN{36aE*6e)Wu8ZVGxnD2Lp6HmT2jA34*}|348(uE z&m3{9+fhS@PI271;rLMerpM!k7n}A%lv$@C5KVU{^vb8*g%TOI>K1A}cBJBhL5JfD zjhJT643aLh8Yi(JI$@iSja5-?EmcsVyQJSHM%vPS+sS^HRFn5O3Xr9dtnInsjYm^V z4~~olI@zb= z93?5hs~ABYqh7VLl2`Y{*9znKU+q-pgV4!Z_ND_(qzkz}2q%Rq;v_RAGQTOhhK&b&W=2b%QpP z3eYBFoZf%eu6yuV^7s5UA$;$;`*~UW5!PFN}FcW*@<%KpzDF+ z))^lTJ)>-OTO7i9R}B*igB|+}?08M>7MSh0%02qdzuBfA=)_u6Pao}>zK8f6JaNrrKnVKmAGg!2#o&P_gcf<2zdI~V2KHg@tg zfZtwgo@F=~PcWMvV4UR|sqr*Thg!zOj$FnFH{D~$s$zlS*QW;u0>yJ@i_UI<3@~<) z5ANSr2YK=8wQ^A|E-$fImAG22G!kR>3mIHI6o{7XtXcRzX=Eg)UKjkuqB^jl(S0Kh z!7fkt(QqGTy7P6D;l<*>?cn(MNL?#$GYc-guZI3&!iAz(qq)F^R8>v`!++;>`(m$n zT?thq+0}^6L|L@mlyY?N(Td?He6o(ico+6Dh zskh6GOY-ydS%(Yomo{*AC&Lpy{8`X3vCwUE*N1D!dTMusUVioCtvI@+(deCk$rS1a zl;Fw$Vt-8@)K>OJ-*tqyidp9p5oHHYU_CU3kuQSmW@6_b#Z!OcV^cHpz49H1FKX06 zZSIEMieS!o}4~6_k9GD6&^LLc`3pwD8$LROR;y*{z5D5z{r zbx-XhfpdHBVzK1N3gc_^EH%A<6tX5cBD(vs=r}V+#n{H7I+@jaMY1`HO@qnwRPVvy zQ`D=@cgI%y?&I^b_66iESnMdCJbHwC4g%ad@Nje6Y0HqJsyat3zA z4woVJQB)`(5!_|on@i$`b< zmc3Hnv%rXT+`D&A->1xu(F6yRBaPN*%|fQxXq2iz+bFa`Oi`d{&W3;Sy%K9otSS?E zvT#Svt|fNwab!kjdfzzqQb1KvAU&R{I~=Zk=EvuM?F-0Tun78Q2MHd(`@T~XJ1h3c z9A&-Nlby_4Ilyw>FJM;q=^JRZfu#j{fc8xVVyoxa3I|)qXp*m#8#Q6j@eI2Nk9Bb4 z;k;cNiOcf#3?dKW4-1&@Ms_=sZs07e?04ZA6_&MSwvWdnv8w1MD_n!_v@ol7YGxQY zODu_Ts_`IEkz=iv%q4EVfsJEqgaeHUH;WRL7-AjD#eoWq+-s*dSY2IWlur;(COAAg zRH`3e1@VaSWP+v(G=jT#eovjw&1#9`li4k0KE1Q}x@N~m5(2J^3X2uh@2L_H`MmN$ z3)Z4=$8N;M`_5!UxU6($x>HD*hq-d}`I+Dt&66N}m&(Fl6cuK(BTOd;`ftYnqT4dL z8Yc!^t`|sXHy@`ea-AZ9a}_5xsHHl|%(^0Wj1-2}B{nO2%ruM8#$!a|*{3|O`o9l; zMfcsu=WFc?$Xl@dFWc$aIjYuvN!Q9;i1o|MR6A|LP3sCuq%nrn=-sD*ZTrjCqJ39u zv8!~x_1{L@>DfSyFJ=K}<(r-vT( z&SS z(O;vY$9pjz#qN+{_nBP=J04|v1f8%M=`|uKT#6kSM|`xXrxr!`UJl8T3Ioq2Rb?rT zQJk8UeNF?%2tgZ24C*@*7OLrFicPga8V6{y31*W6_j&4>=5Jj4;_>-f`vUS7EoN>r zu8DJVp6WSbsJ#)QvsgEJuk(0vTz&$;;ZDr0*-?aIJNY#nSM7EL+-yA9sLxtGAu21 zkddnt%CT^yF`76Mj?j!7-8(tc*7kasyCUrbwF@PU8Ld0xiMe9e(FNd^&wO#VUi6nD zHZskoh*~=IE>W&qeCInq#&^5#VU%S!Iyu3~`8iJRonl2nA2;Ul2#1F=9L!E|eYL<* z7~`61chY93Q!EM-{c&?If)F?Br3xH7&A3a@6uh=TtSUMzTO4qt14A9w!bhAK2&>f+ zBaYW{ZsdiL0hTKj{>FuoogAOw)vK4fhRJkf_VOL1VrT1W0aSsyH~t&nr`2j<%&W-f zewcoQlwFBk8?)bGkz`bFg&G%&Ys?(A+ZT_0r*SvdzJR<%>*0e(c<|nP*pye|<5z0~ zGot{vXs&+Dqbv;SD8k#pQ9VcvQ>1yzAF%z+qUpL;8vka_C2A)JvJOqxv`W7 z&%GP%@N540dygm5d!6#!;&Ckkgd)kH3oVC&b{RA@3=+g~BNkIr+vC+it%734h5naZ&iyLj`?Q&xs6ASEoqw!Vh?8;drB<^#@jR9k68<*NbSQ zWMp_vtkZx|qswxQVs(S(FJI#N;u6;{PcWK}5gkr(cJB;};7S`dNx6*1O_NZ?ZnIwE zXgWss=sv!Gd8PYF<`hR~Xv|}aubG9CfIr`lk`^q!83(oi03ZNKL_t(!Q&Hn0O-rbP zqE4@C)tP2>f}EqUx{@_JagJiM!t-Y<5f0duuz0SQB{q`+lj#`iS8EdnvS`x!#F<6< zoDv=u_lr{AqnU8RMJZ z{tf(}f8)Q=#wT_Yf|$75 zh&@fmkl>Gb?O`~vu&pGOyY9VvXE;4M!~BMft+np!(b18>bzxk!F~Qi`dMkY|TIAuw ziyaLIvz(XCvFCWuU^aah=E76<>+Y?60eK6S-_Th!KKS}K@xT4I{}qzsSOH7|MO*7A zcyi~-)${aQ4?=faTauo38#n=Ai(BrhyDQxB!19|#;B3^_MbY~p5tqry03w?w{`5z0 zIJWX`w<>^S8#!T~v;=jBRhO70dz5M;NH~hCOEgFkq=}T+bx~O7(*zO$nyYNwTiw^i2H7aZVRE4RBE`9*7BiNWcoI+g zGHFc4m>i`@CI=dEF$?47^(&xQ;_&Pg<)%cjSfdVG%Oz0CD&=$U z_;z`B-CYZn;rFOOB39SbcRp09ho(GeB4FKCDCReP?gmW~hsKIw6CmkQ1T_KtSY1f8 zPO!d7kW(iT2B?-x939Qnd5tGy=`5Z;eX5Qi%tuI@7}=P1?ju}&@>BfL4}OS8i?#C1 zGEg=hs)F4wr3!EU~IBG{4z+f;Bs`a^1TC7-R{v%|giEsec4sRpE4U^(9Q)s)5c87Tt z4M$4qSj=W(S4=omlXuQGo+tC#8zzQ9Z)XuW^FFWZu#;%pvvDHFxQd+PY*QPS!eAqw z*6XsR&%8PYb|ZF*_T#Fs-1eI^Z8OmuCQHD5vH0uo%_v>!0eF1sP7V{f^>1*G>&%XBu3g}@W z;P_;{UMc)%a;;77F9sa~>jH*_% zc8z?vsW@zd*%(dLx^%!+V-fF8Yc}WG;^vEDC!wHOuj5 zSwrxz-$)4;c+qUgGxhC7Tr<(M1f4;xxPgw7> z&tB_V`?ap6lnjMAftQZ3<$Vk*@Nr}LeDFwKl8IZm2wnKIra;nS>CU2jK}?K%e7p&7 zLG^%+?P7FAULpm%98xqiv(G$9)8g`~aZ$R`9#QqS28Z&uTAzI&DH|s8 z78>UFZRKbC*fcmNj=6Yp9biPXKA~af;?hTcXd*sRcB>qh5r6GX7~WuG@* z2yvNzrVH?F_o`bh2v;g!b1O5)xsR8?3tVW5SF3--S*5usWaW!2hKxfZhXM73UEwQNA&xJ9Cmv`kNmbW5{ZQ)?bM0jW> z;L_92tKZJ8>3`_gy68ttDt*DFStd^1UlX5s;VYS`wec*(2_L$4QC}E}ej_L??{yc9 z;j0&ZJ5N49rxHk#8SVeP(Ijm=c6Uua66iAxRF}$G7+3=?E?@NyQyydu8|3o0VJ zrD>?tes7H${R2-6(_*YVfRi%i=0bAEvv@ z649!JEbpR(%g&}4eQ3J&eN){*=Vh!RQaTFc)K9j(Zv}JuxRJDdQ zbF%<$I=R|0=CaeuSM}Wfnxa7tkVRv$v&yX8t^T|e zPT-4k$YY5sR2hq~ah4T;1wW2?tXhctr`flT>l7Mu%D*l5;AkR|Yv8NDlz_Qy2u}Ph zwz_*C>=P?-F8-l*Axk1JO67SoL^x*otpu+p3+7hQ>dhvY%)Etr;U)T~?6n#$gBTT< zsi~adgV>T|T6yknX+-#x*!TpnR)&T(H+QS%gg<~DJ_RU>+8kVbe92QUBaAtfRO%6{ zjp&FY4$W7povWjh@!|ps;elo{PPS1U$mPFZg=|Shf%!F^(dN1)JQ;;-!&Ia;HigG2 zr^YbR_vKrLu|iXR-H9Ho@{&?>a@l}w?}{UCT+(69;HY?wr-iv8TssaP>>sjcY(el^ zRt0Jyu%fw@pPV@V{CuzeEB8a9N=GOS-+6L;p9oD3g8cbfm;w6_rul(=buKde7*Q7R zVy(a4;`MFZG2%y^J7IlfZ%XN|`hqH<33Mhi%V-)+u-ew3SdQRvj~qv+G9|ti3?eAm z>ClN-Sf?qF{6KDD%dqdpw>-TSrKPKHbZRXy)|We|I`3X#cEp9$cUbNVzF*RJIv85T z#gQ3`9(^llL>G4$K-7{t$yC>5`P?s)8sG+7nly%umq6p|@sIRj1C8;<)t~CwvFnsD8pN0DZj$D*yP z6!*Taf%gBdf!%_oy;T3p<=bxm2k*4$lGZA@P!fK|XWWL07P^x4rOSL%>KB|ga~|8D zjR8*;B%j+&6zJ5rkDLo7mLZZ7?FGji)8rZq-5YOGjP&q!j-)(|OBA?tm6+#IHs>i~ zz2g3eC3V*bP1W4s5eKtFCZ?v#YGjA}dO)b!ocHI=n`$5u%b#lM zToELQQjTn(`B73|HPa3Tg+vI8*GMzAzfs>SV>c>E`JF~eewF86Z83BPyA)A$n4xT< zTuogJmt+hNSVPgCvhDJ$+Z>bHLY&fPyso82X8{GR2jto_`0+7D$AJjT^2!(>fdo&C z1)47nKy*n5k)=<7h|@{*n}S3R=deQv{orfdR?*Sx<6G}-wIRylQ(`IM-s3rZ*XJSQ zK3?xXdAd~0uk|-ZIeS|Vqa9s&10%U_F!x_mJ%YT0wSN0}9zaiOc0PIHWv$LVI{mJW zJSG4Reg;yT(}r#swsgMoj=Dm&RK1#?B*&C1V^jfX);6+2%la(^%5+!B$N#LP&wBVN zQdkd7AFn=R>_BL^tx5_pZt?VoVmkA=m|gCXUqfaoBUZns&d8T;B_5*)|NW*ha!Zl= z>;2!`7e(Vaks_$=e{<#iTLd@R7vv`6W|S4IS{)^R8~ z?q1+CNFs)>oDfy2M4#L86Ifll&CBcJAybZ2ww9D;h6Xr7n+;Z+x!!+%02qEAwcb1= zDl+kM4|Dds&;w>-$*DGMHPW(kNyb&oOM5*Y0hNaUyFtreF2(|UbN7Tx_9jx>Pc#~k$` zX}yg)AfcPb&Pwb!5S}8cx-)!IN!isNm3)cTjIQmB4UbE^SB|am3N_Qjnr3;mU2UX!Vgc|}#Q_F+{;>N=llpitBircmq5AGNY#%n6 zY^_)@mCR%oHL2oa*~`Vpu5GcOKBH(}Nks)G&VyG4KLnrqkq^~DHri9EZ5>@hVS?{J z_J08q6GhR_;bwa85rEwbzP;@R5zTD8+=;4=*yJkLihqnxt-8B1ZAvg(ba#uKN3&Bv zT27dRc-$C0kiQ~!g(DZu$4zofRMoUNWmP1T*Ob(rDx3T_)X)JT-dnKj*>rbDVn2Z6jYSE5+PS95 zGf2nPV7;3rB}~OC@xsm?0%ETw#Xf+1Sfy7l{&uAHf~(`+Ii3R}j@hFrH16b+^GDQ7lX8VX zx-#HuIEuTUUu?(ME8(R1>$LL1>1p~&lcuJoNzd%n&_)dR(i*1V*YMpI)|^Xmw(yoe z5==Cj;q9iVG-W`Y#&N%hNL7J}mO25qe6+8E6w3;gC54zSu=^KFGf9&~LN~8?YW?as zR&uvQPb>`c+%2;N!_$yW?Eh=NL@jG>f3kdR7(U~_?OeaxtvYHJ&*;H;p=6sFJ1|#S zXY=?{JjP$0kB|@;JwfFYh8e#C&X+mcI(k53r{&D)n3^k9%RK#PLmX4^t0rc-^_^>Zm17nSRY3a<0P-wHu&c>h z5dytFADD?v%1_cxu9c&;#HTzOO14J=<4}z-tU8WRl-`>EA1CbfxA#{k-do9Fr%-wE^Ql5{I!fE z@kT=ym-c3ulG&?%Xs()~^R~INY2u}bNFDbTU>~)N3{Ffqg^oDHU6tBWoOoJJ-aeerjnT|;pd;~ry0)1Y<{8BK ziJjq5gcQ&_nk9)W$q@+Oda~)>tu$lDvAdJBf~4=^@ZJzc(RPBdlkW)ga1^$=)HN%3 z6~ICV5S0Nl4XIC|>Q_io#T+Qo>=+Ew;qK2}r7O_vi$Xja%mwURV=*RV0!Hi;m?N^E zG>!{gV^q$jK0RnCF$WM;gFM#iNR=eMGegEUJvX91EV?2a(9c32`As0i_hs(J5HeTRb0jF=u-*bll>-E(Too|i7emv*C z-9KMlzt3>-@GLM^Cym{?vJ_IrvV&(2b>jb>?o+hpn#NtLf#{aO@4*u;lV8S4AO>=| z9;qD3pXgearx6^J)EU2;x%d)-Xp>K}Y z5*Z_zK&qf|>NbFdR2+arR-9oHNF%ZXTdEJHt8$HAbe4Z4Zy*D8AhCm+ZoT@n|JlFm z7>bNU(46C{oXI8(268j;ITGvFM-fvnQ<)sa9- zFWCfWAq1*C1wus;@m#7&E!Jd!!*-7UQU%DD{%xCHab_gy>iqA#?HzJ{^uArcbv`S8 zEN%Dw^5*6M_or<Xe$qO6WiV*zL%TI?qXb!%r(J3+CBtq$H;8+MI^Tl2COD zM9U9MJ#{>fRykDMComgl6_)2UX`j->SXDr)Ey=e0T1IzFsWN^8V!ci@5@?c|7e;Mh zE{)``)Mi&a5fJE#(8OPKtW+YvGlj&S762fS7VO_sN4biH*kH_ z#F%3O8tcbML>Eb^(v1b_EoJts7d0sFsyG$=sA8`TTe$LyVf1}DU!Pgq;=7&xufmK< z-4^S)D`wo+^gn0ZqwM|c-9I^iRL75eSTW^EDp*YqgWp zqLZz@e8gEUDxdbm!?b2;2i+EvP>67P6VGo`WR36WHuq=%w$7g-fO zpvtVfbi*T&tTU8iLQ6CqCIj=diSidYmHwUp$#7a%&ZdxfP9Ny+CVD3FwcH~n1uABs zzirS8V9LE+hPMAI(mh_XrZe$;xcJeP8sU7_Dl)f(LOnorLEZ23uAP!cv80?#GX!}v z=(y4Ot#6-zgi~y~W>Z4zOl425cHgVHXo`Gq-kph;>#R1y_42)A-R2Xi=P=3?oMQ0( zu=j4+vDqNM8sX&NmiLD!We0||_qsXf2@anD9xB2>MyS8nu-9=6W~cBI%3uGT4*2sQ zYdy3$&_akfVg`Vb80pfzJaN?T*or1{B~5&%@uhF=Yv||GNqrFS(l zCJ+tWq2u`YsfoNg>1NYPDyFi)K;30C7*^|rcl9o;80F$_eMDvimZi}m6XF_u%HgYl zZDh=hMd#VZJsCGKn140Z^MR1#^8Pnl%RMK(u@0MS?nDkRksA`XABj(nH#hvY9I`NI zOFecZyfM^nbP7H`cE^gRjz+KFAlio)RQ?WW^iRi(>*iks6=|sbvGlxfBjhh`vv2CZ zcRe5W_cQ??WNJXG!`1?m6vr4ZNI*`SapQdJk47C6g3pRArXZz(0X)kc8%(@l3gk@> zeS1lh*F0ZL>B+3vcuX%h-eK8jhhcf0O8>?FvHlRhdg!7?J`5zCv{1F{7{0?zJyh9t zVH^L0j+Z1&$_Js4YrLz8vQ&h8@3|rlt64s&-xl?-2HF>8oBDEM(s>^2H;XjsPUtCG z^i}Ypqj5CWdVfyvh(iF#AEOLYP?^{7FEg22#dIpm;H2)7&3xHvQcD4#Gz z&v649-veGE+cbmTy*ihAAYOv1q;qz+|5f_q6Lx!ra1pMr2DYFjgh*blW%aoeAW2`@=w5n8#?$ zAQ?VO<<rK&O+gp>kn#R|wD{S9YFAMW_an&=I~+q?&$zimLbaMq%~mfkGHcX1 zDMl{=iRsXL)V{nSkFuc%RJb7pVf;mqScj&1=~3++(I%IX7kDe|4SO?+&a*0_Ixd+Bi^gy$JoM5SA@&BxYFS*ax!@V$_#5swdj$dj@FdJ{`_2hYrqP%&^IBh^h=4GtQ4%K{ z&x-&e?+vTxLGSgMO-f|w(7pCP19%=fZw!x0MmU?R`BdsagTcZ5Ivgnle};$8+OvxD zGbU%NF;#Q;d&3-S`91d^-No{z!7FJ$meEU2pwUI|Ux!ccG)A}(0BrCPXtk-8^IX{3 z@E8HU8(E{%rL&8wju6NVA#pAeq`Mhn*xL7W#qqJr`+N84AA^LyQBAi%rx>O2`zDBa z1Ev+KHc=fWdHbOuLqQTdj>XOgL}b!x65uwHS2hY458`_m8Yf*XZY^WRC1;5v`w&Lp zQK+&-O*|C=HELMFv`ErfB-edGef$6Zfv0j}4X}h)|4FoE&iyjNu}T_7^lQ{UFH$J> z%Y#k*|5*TDUX(K~jzws5-7)R7FSC}mDDz}81-7vZ^w`H}0UM`gS2BVatC2ZaEMsBQ z{C%KC3<^Xj%AlE=r*nUu>cgj9oSk`Q3iXB9d*?hi=>+@WHZPTVolSbRX%^qs)o_hsB|Q6 ztrOps7cx@WeVybK;8{2Xq$k52X6R;~rgN+WD)eQqE@A1D?h-;|yYipMgu^`)S4e9~ zsQ~F=N4TmFT~<6MO$97?R#1Z#P*>CHWOqxZOsWpV+#*$qIJIh0yx!BDxp2?HljBt2 z`Qr4xk0Ox(b5t*o*aRMM?yo$}MWdTRfJrLL!Dz zn? zd-Pu7!ir{w&`g5U`mDn+;XhB-7RSb*r~(*DX1FFT4yf_E!H(*>T_RckT4qBBH2`)( zCj+NeePy1F{iey-JU=+t?#C?+P2=g>y4nEZqyh*_c*Rt`nKhejqoi!I?dJIbU0hw~ zBMe|q3&bVHkDC9Zog{{22=^U?eC&s1Z7_R#h_-Y5PS zR%A6z5V{e3X@J0Kv%aHGW`DvQ{HOhIN6@~V*jq18Knf`6OX~<`j|iASATq~uR_mvv zZDZqozj>`s&fUk$*^Lr9XLBJA>bT^;;6F^$hg5tn`r{=RwygL4=tFi|^^op{l;_=g zNIlbPuDhz@;>TkCM$GcGhtk=_Bd#_Y{DDQnACMsS1P+pM)2`67NXRYG&sq4VGA0Kc z@L?m$;qi`FE!$`WA{n7}BRxBqsXLGiv@9QZbXB-PO?}W`UE2U& zzFq_CD*hN0zLE}#V-i_Z)yhJSJh3UP*S5M}N@^MY0X~1$JstJ8m|Oa;IK){B98W*> zygXK=bg&~!k&r;6_w8_D)T#FW^_Sk2si>nh|4zvjp>MuNbHS8GhHd&o!h{VRqQSh1 zhzwFhrIH<3IkN2F=bkgoe@~#=>rmZ1!}Gd{NuMcv=B}|=>Avmzbk#W1{#51QyX|1T zaJ&6kP1rX!8?lm6s&lL~IWk3YMbq4>N;TOy5H^mE47S&3d$cTV*Od;JMvgX;Zm!u* z&WrAyEXc{)(EzdqJuo#oZzA@XRH+>_%`|!v43HO(&j$2zzn{nC?zC_{9F@bstJ2eD zDG7}zkjSH}!dF1#^Go5P-H*Bks57+ON0hb6;}&8v!4=Bnt^mjLnNiJ{(_#NPyF^Qh z)=Q&c?dc7VHRLsGV4Cl9vgw%M<`lhA+aW-O{Yd~l>ge;3xoH^hOb{|7?ZQl`+Cx0h zsut2bHkOX09(aB=A)kBMhWXc3o>@Iy(h;T2o@k^+!0PE$#9k@EdEPV) zfeA7(W#;g3h^v&NR4O}^B_+{Z_mXlixR$ibo1bSFoUx}^42dVuog5;XT6Jl1BTMgi zgJWLm$fb7sMG}($-ep}(Lt}@TD&>gq9plLQBzD}0@K29<0eb|gH2gs}%%uh|x#c1p zi9A<)jK06zu^|eP^*Yu)k8-ZDmfgbvoH+NjZY^y|Y}Y?-DJr#Mnvlijjijk3$PRC3 zV?PC**TGzr+XONZz4F3kfw1PoMeld|zZHh};Lga5J*S_ggwKLZx41vB;H{B{keN00 z!xGPClh^v3Lz-v)2-)5EoV^J&2ey7HE{3WF<(hRJ9I-AlPuN=5VQW~Z(y{g_6u#l| zF#Dz@;dhc^BR`@X71{PErgK>9M@DQ;VF)oE(6uutzHHgfy0R=-=lt;_e;rh9AugzN z!hZ(EqLDI$D5WB2=o5E#-$1@hN;_n)3sV9H*1$n2{|i~*)j_bu8s z90WsG!gkN&uxSNSTKKsyrdS~&Z_@Pzg@90Ps-Mca+G$DpLoZwunCXG4KAQ>>5JggC z^vs5B;mZPlE$G;-pZ@7ysP`U09S|5=YHHs4`d<^8^zz1gdR?{gTu^Juk!QQ-kmjxq zWpBLMZ2+^ut1zmHn)317G;ZHx!6FdTe7!h=_46)fR{c|>WO6cXGEGY8c*|Ee8?UBPOvPB*O)$ z^`y7Rvwm%Pks&1fDEmJ%7^yqkrG4a*-?={>DvmUn8{P;o5i#cR;28>Ci3n(tJD|%- zEYj7YuBMwtYYHxuUbxLHw-#H3in?jp`l^mLFX}B(Nk@($k-v3P8nPo z;nW31Gd6btBq&t$;kEGd(zTS^mT=(_O^5p#0ZcQhyXqIe(VuJKs0PbCkfFo!^XC4z z%QKTqM2V}J*pWNZ{@Jeu-W4A7u^)KQAkK*)ZYGV z{ou&)-j#lE=ndAe0UIo16ej#j1$&g_P$k6Gi=s&V&OW*JS8ilCvfUtun}>#zQ6$ZR zH&M=?jxQf4pTuIwc3#9n@@(ys18Rc9$<=~IS}!?7SZ+XhKqz9q*$R}bqhDXxbk#q< z5@UpvPxgw zwyValb%Vb@B1K%= zGrv0x9`s(V(#`L>6lsmzzMJ%bl>G94<;i8)r>qW$ZO&Tx473e)@SN)pZ*~M_OZkNw z>>bF82**qN`7G9s-ydm>czDJXN?}z3jE7SZvuBbE$zlhvC(fhR9muNc^eEqyIrkz| z_?EGwWmpl|7*scYS!At3r98>X6>ZwXpIlkTgqe9OeYID<4=14GwBY3E6eS?m~``!O5(^7x32MzD={GLS)USlITxW_>-|_o?eiyS` zY2;ndbixUxb0Vh=W1_MBib6&yxq%v-v!>3EU+kG($jT*@;8~ev>fYt`Gw7K@V@LSp zM6HvP^3Kl}GmWNHDQ@=D=>)dK;R8A7g+`8Hj4XzCBt)C08&$&Dt&vCq@})qwdQTitxNi zBxnVRnXq3MYB*5wLvm_pR*0$kG1r5OpJ(KwJz1(?Qn21)Wh$izo*ngIXUw$hbi>W zr;x5T$)v?qZroT|{P zkY-8)q7A>r#K!7l#6Ti&=-ss^?@cSGM&@=ngNY2zEH&VHi$7t}B1tKxr)ipLg1Sib zgSdAyvz}(H%1j*CB}{l|KkRN0frbXNp3lEOu&|=3NZ4483Mvc?zH8D+SbuG(#%7o! zgD^bK{c{x(GK&n69HAf|eqG*IL6nrMZhb>C3rSs3mpI=7C8hhcyWVrzc?}vpI?vI% z2mks2QR{u%Z#|zVnXR?EA&P#0C|daNJpt1WMg5}#e;r5krldbb@?2|OijFAfvUc9? z^Vw;9DClZiJ`(hoNzM}E|9(^V#MAcaLac|Xn>h;%mHk0(N*P)%BxgUe=D;Ok0U%1q zIG}{?5gtaJ+md0Db$yJFM}9l{y>bk7g6M^+c8EMOSN{AV#o?d%VH;qpShyAIws`o7 z63r>T*2Qteoq3L}yte?u%m@N@Sr%i!ViZ=EXld*%;mL_+KLcJ0e#LLn#|lrzL` z&kRUvV0Pl^w4A??#ndr{1G;WEuhX&OygjBQweEq-d(^MrKU+W1svDn-{Tj-xC2H*9cCkETGvUrTmUdYgkcE(`{=9o{fPj5rD%2qLp(eHlY)Yb`{ z#(HXk9wtC>F68_#+-uocM__9K59Xt_GTE4u&Plmb1`JrC)(y5e#b~5*8az}qTJD|; zI}Y)Xz)<=s)g{nRI;HaU*ADB~fD#OH_kQQipI>p)+k8*Y|HbLGs$LuXobdUC^@s13 z2?_Zr4MiEvO3)XUf1>L>x1%PmIqiQA$%NaV)XFv|wt5<2RlSS8Le?In$%nIp@mYG(=6sW3zEDQ+DV; z;vPSLO0Vd|QgDshOdSjdEbJ>Gu$!|2u*SBwRZ^`| zx)tu`bw`4)TO#7{NBy@ zMj)I3Jvr60sPfalMPX>RkjW3f{)ZcvPow78$M}OOCCwiiMVHxqFeTR%_`qDKlm&V~5^!-|hCHIhY(eKQlfV8Sk}d>=@A=eM(}`C&1JrmUPly zNxGAFI4;FOxCa8pvQ@PAG>Fv$7`~nW#FDpnN*9B~6pVreU;V#M{1RsId`u z<|DgNVF>EmR)m{1P;8}ml9a@^ap%5qek$!#q)*Epvr@o{G*Kd~nDpN@sUy}7?j1sf zMAe?zRm<~lQ6M~uR4i`&0V^|ZxmDQXftq74Kx%;?>j~puCHU;Ugc|7 z7p__toP~*?{TL8RG3Lt|b@^)n2=+Y{DewqlMehA+z;|@Mz|Kf?{}`!Rxfm)t;m#ze zXN>hTVnFu_*A}5LS~{&Zp}jL&mxcL*luCd4m8*MjXIb1G1E*G3wbvi{ya>7Y`j@$izf$qxQ1_Lax&u}LmE-C zr@B!fb$0f#wG?vL*Ex0I&Q+T3mAY%x<*Qr2%P(wVx(Gi$ZoG}$2D zqH8|W=8A9{%@(Dp?pCQ9G)&ed3V+V>Uvc#1($=tW;d^hzEedcWI^kzfu z5~dj2x-igzkw~cfTv6#)fH)LAhZbBdEnY$YUz5udHUDKO&8{I`YNvyRbEq}NNa|pv zDnet-pKF!cayP4k1 z_+wR%ok*E;$BrTXT5z6rIin;T*l}hH8dKyinqZeWN{@PSWsjr2Z9P$me#mxXEXczQ z*~|AQxfmXM4-?aUPF9UMV`VTe=#9p2)nsqV-B+*HawVLercNf1A?Usete~?uL>5EF&i^E& z!R;N8h44XQTBLxk#}_Q5eb;m8c{Cktq%@&L75A#ig=yR&lbk$B+v2wr;%GC*+h#P4 zZklBWppfABXU@U~TdP>exQW&sD5jI{p}XHzsYW-L&U`H(VL96jwu_Ci&k>KxvXu$& zU=HEXtj8>k;40w>C{?W@m7P6jHme9?QkrgWcQs(}(Tu`-S>rKI5VL{{^R!zfheW6~ zp)4r0jre&}FWyYyQTwWTxV@V=HaK{JY|iOzJkM+EKkV zWl7&^$>@CJhsMiO2+D?{ANQ1u5U_KpG8GtE5PZ@4u7vX*HYa5^M{>wx3&-O-^SFW2 ziGH#iB1e(4^)7;d4J#yo8wcd0uU=-Aqi_m*R|>|qK`9#F8)c#h&jFbTvj7l^=kuB) z=>6C#eALbOhY}KJ&kT05L;|aSc zL!~ccX>9%honD)&e~zUjxM=LYrgYwB|GCtLjN zJxjodznn%-(9R-R-07h8N@&0z`#BZ@CpjkmGusmhy!w=>)LGdCt#H;)AG*!5A@`I4 zvTzoMVt!;ivddkvmB%w5ymr(kPi+g9##lXOT+aksUHa2p0`|Ih-asq^gbF`dztsOB zFrBq3REb{^eP2f+<5F+>gs84n3{O*uf)$AAV$pNP!-ol08Glx%_rguyvEuog_%{q} z{-Pepg9|f%pA=b;YB>B;@Zz!lPfbCiD?zf1-Tw>oOUoH9>a24`DFX^Q#?;toT{=&F zrd54@&m3T7B*ffBI#*wrp6%Jt&8ZvDW)ZDU+z(WUVSL9BNw#Q|h^@0#h#V-2O0&&C zpZQtbypjqpL~!n%iJ2%D7xv6432Z>Ik(a26eJzNSV%L@4aA7URNVn!yF;-PJ!eP#b&6{r)%!F*-CB_%5KVeoii6Uugp54&gOwB=oj@9rdzT2FQi~AM} zlURUpW}Yi%oN?wkOY4G9Qtj@K_#(QlwOj|KepOACk*}||aw=( zg2o5WjoheMyqsB>DJRo|56kFWSpV)~k1b}0&1wl@VXNpK zej=Es4Ua{qTlh4pjNLhg8xu(+#e*imnfi^mgxMm6rQM4$$8DIfA0jVMj^fR<=`!6= zsn@E5RYJi26&efU*Qn8|U_Y;jpeYoXTu?&A+qTHT!xu)ldR86nkHI8b6|wNC$Qw>C z!YIO}dG(Y3I@q~US{*yz8=GMLmtx{A}8pMGy`$Ju6b? zT5yrfMjB3*XpU=t=r~ZI?fgIoe|lCsh)fgnvS#KLF@Zb*ox%hin$g(!H-qT6OThbw zR5ZrwFj2q`KFie{N{fn|Jj!zA|IY$csfh|Op8nNR+k=TcuOyX!-+FW8@qOL)wvOh2jc*z-1 zL-(dx_V`sBl|x-n6P+z}Pk*68k$|2zS%iVfL7L;rUl57xLsm}mO)m78$py52u=bl3 zT5d5!6+I*IO*!jW{18pp=6oAkx<;4(8hgV^cyniB;VuYUfke6_tM-M*?*D?KjUY99 zOFSj@FJVJ%A(z^X3HkZm7EgY<2VNY>(DOQ_lHZVxjQ*t%Hly+)5#4uIvZS=r?O}TZX zdO2TEiZKC&BZ`K_s6aEbJ#9(Zk&*PEJF{;mQZ;m|*nEMtN@b$NX%=rk?n# z%!Xo2Y^aJ>JAqWP&JRj&JSSmLW7H_Y)=8&*vIYbkHaoK{*vR)wh0pw1Bf}#knTQ?h z&g_-`PbXL!Pc73LjC7;DP1k<#rC_D1CrITfF1zd2&?1;EVMY0KX3C#RAQ0JG`exd? zBtP<}!vHLV_KX<0#VQtP{MY_fYPnu z{LaV$HLLp^i{DtN*4K2yHRA_f3_e#A;MBNJphsP3IsPcf+V&C+K?v$LdCClQDXA6Y0+Mhvc(E50|Swq5hDncP;0f) zIU)$^-xa)STo@y6o;fGrr^Hn)e+0P(M*MdPjW)b3{;&4_KXDGJ_IXYC@+w6!0`vAG z|G-*t6Uh8apKEv&wwO!j-eKM@4JGBp)R`{&+>Wfi`c%Kwio-`V&lyftT#|Qz#x^)# z&g~@073tqA|MvVE8oEcI{({<5!A}slN#(3oN%ARZK8lq6BZ2NgY(5e=&DHC`l5;W; zkBP@oJ1jCTum3*fdt?Ed|uE54FE7l zHa(O7>xzk=4}O09^4OL24=8R%oSLqe5W#&-i!ItPaiNFUbCcXnGO?7;XHKZK7#cv_ z3|Is0nVlU~j>xTLC6M&9MJOZEI(pJ)vz0xNk3$=*rqU9vCV0;@FJrRx{I-#O62tng z_4l@&fk)?9ekU8R-j9`gc-#6y9bGK`%L-y{IC@SMfzHz){jMgXDB{~5-8a$2cA+gNC5rf~ zPDod|KO0g85{vNc$HG|_zy5#lF+sBlEU(C}~`7j-#s&2+Y&BcKBa8{=Y=8`S9k?Co)? zDj2~>IJwPsPi})$Ftef)7kKpds#{MbRaschO@M=WM6|4ga`@|!BQ=er#GF^UNIq0eNzeK&@& zRefIsfq3Hr!hAF?>df4n$8R7~u&cD2nlbCkt(!rVS4^@bR{AO+@zw?7Upg%QYX6QI z;ZyHlX1=?Y>%QKXVgJBhz`vFCt)Z!P#$EmGM|Y+2ob+DLtK0w8LFUV)xzE@i$Gz|R z4X4od@PoU-e}fMY#!j`Xpv_mVr(IDZiP`b?%s9H7jq68L>zD!>;^XlcKe1C#7MCG| z)V*>e-Ppw?fu!X*tCljOl6Y>Z0-CDl&q4Sgll%nFwJJx^R>E~IL`g3nGE%b3baO3B zizetp)PiP;`FhQ-9I9xiH@=))Kn|rE_~hdPGR2@0hhrF#q4Nx^ZNfz=q4AQG{Qm%( zKxDt`dLnKdD{&>Ghm*W`ZjSh5`7_SGO4Cz8P^rqRG8~VjTMMOVN7&ig#`k>hU&n)w ze*-@Bp-&kG}f`Z zwI|e2->;}*VU*ui)T@n8I2Jq0wqLgkgE>hnf2v6_y24i|I?x+0>9HKqaAad|h-M>Z zK~f-mtWV+4I88Pa4-2bk6_zG58!Tp&@|l$v0?YZf=ynPa9@GDajvFzrhq(t0Vk?oO z9@`meZI0qG#W7faol&53aif=F3J1QUa#@UC#244ySe`Y-n-#4gF&!5_uGg#bqExH3 zBGf9>*MzpC=?{lu`uM{?@}qDYm+&t?@Vf}n#@-7r;ln@ocX936Uq>{#Gk+7^qsti$ z^ApBh-|H{Le5u9R`_KIJKgJWk|3R#uJu8&YN>Ig@zVJM}JjC+i5~5@*0C27|C1kVa zrl!GUo4yMR9G5YT-n`A`Xy=TZ;$qa=u&v4U|4lb_1H4bQB&KNCk7?{j>_}K!KVrsZ zipuLs4u>6w3sWqtV#pPkpeCzRnHD-L%2!od=>j+=5&$Mgky*k{!IO?kf!q9;{#HT{ z)euD6GUnf&i^XLup)mmB2^?Mo+u-vYX=f1ingjtXJ#EQPl8yVx`<;&Q-wT-{}SN;ZSL5lDFo_8Y~^$^rrSUj_gZ~X4>$Ku)> z=I^3=YxU+G$b1!xC*mLbzy2OR_wf&6X=MeGSa3u*>7L+t?+De4DUChyfzg9UV{pO^cUW zSb^^z=$XlzKZk{qZw z>iavLjxvAD6!C!e@)K?QuCN(hC|w7YS{2u?Ud6>r=kSZa`ZL(?CwTv_{t+fwfKl%l zcb>n25C7~x#-M9=BH4^P^L)KJm-qL7@E`mybm^Y|eDB>w77mm8KJ=kq!V@3=6)dl= zD8s)rlN0RW{t52f+QG{5iky543w0I>?M`ddeVN`gjJ{$z-f?C&;nV27rYkYs0!kaR z-O-eGhFGhFlQUsH5ZP4E-MrN5dXjCFU^*s67uz0xI9k|NTRG=7U4y?c~ z{o1KYw9?U;rozAi4JE%af*k*7HHe)T;74d`)-e^J%wQDpV^?(QG!9{v^-PtktDJM%pR4(QG0JD{@E>#eJ>{ zh`JvG&b#tG20P-*-RU&(Ge7$Q{M1i>01sZ;z&qc13G0g<;&Frl-;pK}`?B?rLwR&?J?>)2z;~}2>?8otu-+Ui#-*^VYh}j-BblMB3Hfv}v zEs5D7|4@vU34PTQi*arz9Jg?4A}8G(R`JkAhsIuAzoca>!2r94wrapy1K^rYz!VXb zx(-tiiV!Fb^iCD+Q_B>^Xv(E1py+&D&C1G)SX$F{xUL>WIa9Mn73J>9xGvY3BHWlg z)n>?RB9Eg#&K<3Vr=^N6c&VjxDQL+SQNYG~iXy4ICu&bZon1m=gGR$%f1* z2}1eV&|2j?zU{qu=GkZQxz9a~Pd$<2?Qgk^wS@rP{XIPYg)gGLx`g{)yMXS|4jR=6 zZv7k%50|mfXy5B^!&lXs7m#~k(TnN#Kk=LRjbHvLjE;`r*L_qv3#euu8np&|1`Ubp zYY)BN32L>v{ClEVJTw3_8==ArP{h*~3h+#wyz^3*0c+zl8)T}ZV$J`VL_9-l<;GVY zdD+*oI}DrttKxHuL@F%+K|v{2RwSysF!$oyfmBjZrbR6mn|c(Hw)V)%Seh7JMyi$G z(7EHD_NH=51*DAsm@Z_h%y$ZEWG>!bJ{t8#p%>wU&^_15m~9w1sFgk*>lp zzXX7nD&wM7t0-KGF22=JNB}{#D#nfMZul4lbIhVI6K7%qq~``oa7drAm}!Y2-t&#` z!12KWwswy3iO*ieH@*8cSZN2?xp@Uo|B;Vsy@NBCAHkhF&tS>%u(49Z?cEVpTI=`v zTk=)2<{jM$~n_9O_Un@MRg;AUcf;=7L4)}(Sch?7Vhfobuc=E{1773vL-KZ*w*ynw}} zCMHRaFFt#dD2=2tZr-?t7r*!f(zJ(qV+qfE@e4?keVkvbV{fo^3h7|Jz8=@SfV|39 zu7U0S?jC;ZCw>6$`+xpd)awm&mN$^+u6QY>%(>81&cowlY;A3!-y4WiF1ru2@fj?D zzb0e|rApF017f?Db|TkW3eP%a!`l4K$F@C**+fkz0;@>a*Kn-hC-XVunMIIV#z(HQ zHE~X1OtB#FByAMpMy+m(3X8>pk$bv$PA%!}`!&}!G+>)7pu~;wjD@^(6B-9GY%!zP zFgYKFJ(lQ##Lj?S-EcT4G$6uC%kx6KNO7X8J0!`8CvT3UNm|m!nT#C;Ag8}o63aD6 z-wiYfFJi?wExI%n#~T+B!%{4rY4>D`8MPyoN*#|p@(`96+E`s!z`^bbu3Xth=r)jy za%|qZgO{Fv28#o^5Z&SMUVpoO-LLrw>+5`RJk>qfM}O4A z@!=MZ_jmC83tzxzKJy7UNscoY?#Com0Y_xqa6-dVcTLkQm4;;Pgy%*+n3lvzcL0Q8Raus>gv>P0C&MM zTvbSQ`jZN8%2f!KQ`n2-2)v5IFC2ww2!7$_T3ezp52GV7>og{q{ao#C#3llm*D0`Y zAH%3JRw=4;A;#ee&LP(drrN&dGJJ`N)3->+pI39WI&3NwF&&umP8t);FyI5bo4>xv?(D0Yg)cDPOeSNKY z0r@&ygYgM&Z{Ec2_I14Y(o@*pxecTfM3XTF$46p0QV$zwtaOx@Q=$Ti@>E%{^Ayga zpfWcy8H>~#A)40A}y?+6gP8vDpKey$vIU9AVvepbpFQIP?l zUL)5NPL+}amWrU+T+6A6PDz>10wfkJR_9@sQItDY{<`bCsE}Tq>U*$oBZY~CimD8S zM{!(K7gI%FazX0sXsW(E4>HYI=V&{V^0}lCa>QUXl(aD&~-p(3x7 z?Gyl0968DqL(5pP_3AC0JAV$hceYT0kM6-3S8wj(oo~8`!6?GP^*gw8<#}9w3&qJ4OGHKeC#9t1`C}};hpdKP9!+O*6taswwCYpxAxcFnir6-lhy4XVr%CnKJ(e% z$F&!}h}=yD!|;WM*+6f9g2UZI#3_YjVUZnfbP+sNE8nR|EWC${N6G9pAJeAJ^TlR(Js%bj%$wx5p;h}+nVDUN2G z1ufDHG+=JVR(6NR><{8kVYMO(@<6k%Y!yF?z0@CW^fHbL#m=N)b7`~1L~COBlOndo z0@hya2t}LM7{^1j+ikR(EqPosK2tXXv6N@Aw)H2)&&!Ad*0`l zeF03BBHIAmsXi?$%kC%|7qj$ne;}HIjHZ7MX|%cC6ulx3LpEomsMaf}*BWx#WzNK1 z;=bH`?cL)YSSM^V2C?-SHUo-t`pn5^H)o;an$E?1KPknYP;Pn630XnR__pY}WlCn3`vPQ)$8!R`fc%%EUi=l1jVhRO+E@V>i zK5a3j(UCaF5Jw}lTWuL#N@Q-kEn}hac!+V72&;|^Df4UA;N3~tq@r36vDj*0FPfm!_OQ3RkE>fJc*E=?-yne1KZLivF;NT5W<$mmeaH4Bg!WeDuTr4y}z(t_XC@YKzO~(2ZV{pZx zHV~CF=l5mcT}DZyAZy<%c{~+%F*BN(u_)md?M#J=Ha=sDf+-Ak@h}AdR%c?59xz#Y(6-9uMTiuk1`x_;ArAb1qB}jTP0FKsk#C ze{Pc9p5`)k3bbbyzt8nDG#V`n$5KRwG*-2dP= zqq9-PFu8@}evZB24xD@ut#A?b%G@;LYiZ33$k))Kk>O{a{C)iPhu)8)-P>5`EaBYR z1vz0JA9j%>LwSE@xi4Qk8Vp6d!A(Vhu3DGjYx-vv>%SqJ=)%H+j7N5NcMwTHkpfI5 z-lI@@v)CBskg_xJ0uK}(L{X|Rg50u17h#?w_gHMkuFl!en`9X)m@2!c`5v-dwdtFj zjN){j>Z}f{TS<(@Lj%=$p5N8^r1{-Ix4~q}c#NSK&yK=o>Akk*q^#*EgXONF)ut+K z&@ipc|IzP@ONsra8W?sUF2B~9j<2MMGe*b7M$ z0TgR}Upa_1yE%VKnK(b5gwT zeLsr5qfIP!S~z#+ys(WQr;*nT^#^MJHEdG_r82RS(@kqO}p378FY5DLj~@!{ElIi;HUk z;Io$Rv$)8#3s9X!F5<;hg*!R3GkE*!4bEV@@P^thqii>Fs$RtE2+ZfpK3jIt%eA*u zR!U&B#f4@ZB=^LBv#?k>>*jGeK9s`eD5#&WAy55joFem7(KfgU$6&msFXBYE(Bx!s zi~u=CqrM^wxGq|)w!Ys~zK?~3IL@HoMc8g2cPgmWE7}nt5lqFn0;Iawxt7g}W7*9Z z9f>NqiunaGiu5FZT`-;~k{I1?ua8?>$9Ti~GD7B{OvdQ-yJ&aTkmj-Eq>SSXmmYl- z-IGH+|MXL+-`+$PG>|>+VQKjiD*g)A&pNn%{W;wF+|#&xxr=jWUJG>AvD-hut=;R` zx_uShoh>QE=P#W{XXQLxe+7ZpK|Ki2sn0u>Kg~5SAb(El>1UqC^DjMxe)k4$-MNa} z*RG;kYhZn29e(Z!7eCdbnM4AIQlv;EPn%ngn`bcb-SUPvk)&okQWD%541p(KSEuqR z0h_DGT+nQ#OgY_V%A<)jf{)W^)p5LkC>w{Xi<4}7nc4t7XEy0i%*@klhVpA~w3sOz z`o!x_oo{Wnk~5ODENlfr9W=U9sm9c^F25!d0t0hU&lr8A`OmKoov*T9$G zB|=8N7it=^kIC54URs{G8VH8wHIPpdq?4!^kBVDw=3r^#9KQ9hd@r6@{U|n{e+q}2 zcd*l3f}4d{Td$)Yv~cOtgL3WLo11b^7cN}FTIV6GJ@N>;8v(9;d4gv@|7m>W~7lkXl^ z*~{MOVXV=)A&!m#4k(E**IfBIdR9EHj1e8EP%5ayfZVt5Yg5T-Rtv16PaJJL9O3BT z2nPp;lIzZ{iw7VkC_eP?dH8{cJoK=zzKVLYE%*+T8H2Ef{he)WtZksVw1oa-jDy`> z<=>TiXtX-0RGQM+EHA8x^8U{4JGgV_Hgb0Y_#<>$YdCY^8}ZoN-;Jg77qD~C#TP&O zNBH8GK8l+!ehEu{jK^Mg9*3y|H}U3R{GaTK<^|-dT%*Ytx3+HL>Ps)+>b0A=c;UiV zyuj_v+xV@2|66$Kg)iZWCqIh4J5OPE>k97NyoH0qu8M|D63N0AEA+xKHdk*vM~w@R zGDcMw4Q|}r;5l<9@TpI_vOO9{SDC*ja&2z(jap4i65~k(vmY9kkeDU95TiYwJjJ$L zGi}5V%FBcvy1R2M`UKj5JI4FURT&pEn|?O+d2+0RP^RqSlsWrph2pfYHTQ2$#HWp= z^0Gb2%jB@zAD2gNHWRCSPxdIw2F?xG&Mv_#6(@7gMMveiGJf$jP;MU62>FaJm>M_o z)ISmWvdsG{75RM-S7fa+_hs{rG>ut}AS?W^C?uZ`g(xr7g^yp={jXLs5ai`7z03ZNK zL_t)*L#Mr@x<)5Qz1l#pdxY_@kJds*SYjjr497z;gQRo7!qSQmlBs=KY%O7VeGS9@ z04K-C*xTP14V2^e(Qd3`ef@E~;cah4>&yyzM?<8?18iQqiCddj@VZA<&}f{){>ccn zVD1Y1C$ysZ2b`^RqZ8cNx`Eff?omvl5qiBoHn(pJ)pDWJ zh95eZBz>$b*D&lJVSDE}T)A>pG8qUiBAXyfc&b#J0$pEuzH|LhHWZ!|75#PsN3e~2 zCO1NuOJwdCnkAH|kJo1h5z@LlOC+#JVox(jVUZCZTMJ#{QCdP-HQE~&^V026IevdrpxP5OGB?Qj;HvsFsqo!0S7VN zceTxn=}@38?zu4&8{_w~t1#E37?2%l7RB;4>;M)P78Mqwg`d1F7J^EnA@|Vj^{~)x zi-~5$1BMO&b23*pacE2nM*Xk7yG*BII#;6|Vz(S?PccWk7PH`WPrA5v?H0b_J#WF< z`Z`9g!nQbOqfc3*))qF|{{A)^oet`iD(<`gK^z_J3jt&}>EUE}f=+!y-UHY7_pr9U zf(IXb7>7suI6OHL%5a*FF^LDbboRCIv5s$e(|>~pEOP?}+T~p&0Qs5+Yu!34Oknd#?;qMa1SF~QQHtK>=aAag-I20@Lw<;Qq zB!iudFOE5hWe^OHq%dTt*Xp`kRTN)?so1Zf{QMlZ7 zfJz%rG)EJ$%voAmMth-y=dV12)yW3VoZG;YTXzsA6d^VxZ81+q0=Tytivq&$?eC(& z_}!2;Di?9_?0Fm=9>7h3TiegW$zH;_jn`mx`StkbztqMjTfc)lSDwSL*T?Vv_J^_k zwk^E-8~-v!?HDiJdI~2=h(@*oFKr{p8)(;?LK>N`SGMLOtgo;*78=JB^!g{bdhK~U z`MHmxR!vZ^@{Kb@8V@lZ3~_SQ#nIjYwzu|i{n~B3_~LckzO{w@?E`7GCzF91cSsme zE?5Uohp86EC53sNW+J(s9zkedC;`m#Viv8&DUJriGbIpn%zRz}<5C2&v^X)!SS5=j z_S87gI<7DAscEJ#5YKmIoCT9xUz*}G;r*tUh`AC|e z?N;nL2r8kRBM6f7TI?juc#&UA`ZckWOnb4gV-=i%g(!^$A0w?fa0BT^68XK#;RGCU zrt&lOwVjG6;FT9j5pqRxg(CpI3K3Juive;&fykA^fT?iOJ+hl~9Jv?fksKW!V|Qm; zMx?xEOi?Rx^!h`by}XLozWy;8&w4>kx>@6CRpjxY;dwhT!x30kT$5?K!OSh5*3HA?n zFzNSkaC8K(Ud4qoj{wdXJ1<>9bhw2qx&zPMfm_efj}nX~Ifmmza_3*JTWx;TV+z1uT>&Ej;}JM0VxD)8sLT5U^8n5udc%l z==k_piUdbe*+iQQYUd{4eHU#AKcudy&ClAe%UGfk`xm=lVLo9RhUogUNV; zX1gjs=c*GbOZLeG^;Q#&PE*)khS5dbs&28pl zb_eTgXK;LYjF=Gvd)ruET}RkxVtHu=(axX<9FzOg1caBaUcuQj7xC}|kK&~(U&h|f zRh;y9v9W#zZ+_F;asQ(Of>h&rC3b8|{&LWv)m}CP1Hkr~!ffS1cPg=?`)`8(tiCrH@0MZ%c z`n0W7e(WydJd?yY-&3276d}=mWC%26mL0`(%#!NJQ@418^8DV6R=835(kBGdLgOgR z!<;_N2qJY2<(DT&Ws=B*aDHv*%Dw?|QBUC3#jiG9tojfqVN$SnmrEPy>O<+?*}a(PLR$k7zT zy6V-ct?vmf)^r8zLX6$J(Yer)rJ)t*Mr*>KF=K1FMoEm&bx;X>`Pzk6N3JtY z2Q*biP*XJEszlh@bm&CvZiMZ{LSpjeWt;c6R3?mG2a5|UIN0BnYqPM@>b}`*$>*bZgd`n`iDcks2wmWXXP**G z=;FnT_=dmmO}M&n^&>8*uuuzJMfxE-;BlO4z_RH#?HYeuD|#aUV7#^^e02S z_R)v&x;MTH-Q2<6PJ%Pd=8U7ly}n+xBP<2(WyQt>Ya`<4Z|`m5gTL`p_;%xe~}Mn*~G_9{L_Nuz%Q>&>|L8^cccu{7g`tdXR=(h}N%8WK5S3)d9$IWDl zrEr8yZ?+N&r2jA16Cl!W<@8S=Jy&BZs)&<(s_3?j?bMo%g^Ws=ExuD^I~Y-3F5o?N z;xyDlvFT0$Vl|^z8yU^|+Re7ILxJj!C_ZmB8dzFsVf*GTTJ5IV^z?Ho1LyX}ZkDaN zkPVz)uha5!Yjk9~fHL4-E+nSgDt8d}W82hR``Y$>m`(#FI&m4-xeK?kY)%RaE<>Q$ zLFoCpxxOh_{JDgB6DQov&5GZvk|5Ip`{?z0GS1@f6$?cr@U$nH8f|ji!&~llPq4ha zEC9IV*;lJrT|a}AmIQ&1cBca;^pK6mQmpC3Ogsx#G34)_>PD2<&lD4L|4Jwr%Kyi* zS!Zw)NVgcr6I~ds&QA0}xpX8M85x-)9WW`mA&Y08U~lsl>YWHnEBE8E$KHtj-8J_o#P>#nw8S^+hC$Oh??ucr?Vx$w?uOL1`ougzTU_7dv-05v2*%&#a;nN220yHXi&9M+b;v z7n`>aaQo)3<5M61|L~soemma&#_tgf^vN$ifeRZCqtog9iSA!tPwQ1xK)BI==)=E+ z&wl#fBJ4C!Z?*&kqiUM~WSXcq#@cEdON$NUkvjR0qoH6GF1hRZ$QZK9>4l#c-=$Q2 zOkD*XT}gg)nI)0Bh(@tQesZ&g1$HaJZC2!m+g(s>zD@;KsF9Z0JXt()6&uP^V{GL{ z*sLLSGWO)nLkh7OtC*7!Hz?Vx`~Z`90>@`eIeCNPSHgYCC$v zL6Nb}Vq*>-j-{k`PVo&LLJVssF3g zs+f#V(5O{#+&@Nh;RuV1%hLJtJu*s;&~CM)DBjt;g?@5^&e0ywsG!lP37}qYbr2TG)ao)u9&`tw^UE;b2Zv(o8xE>r z0~ase2j8!v>Q)dx^)!wTcaWzs_HOOt*M9y3SX}P z-HTDYC+ymqSnRaXJ?^5_ZW-&nyUYyj=Vt@xX1O|wH8-C>1^Xy>HEGFBxBOUT%*C-h zob3BEolCh0lyxFy?4x`Q^Y~Q_cuPY>c^uqv+g|;{kn0t=;k!;{n06p7{ zAT7pOj-}l(#l`MY`8k>*#^Xr=@FxbR$&G?OmBJ$DCKrNL0FnGYcRDTU6h@N-7cV^| z%6ebpI?YB?y-rz%TBRZdZfAE3cdp$)v(>?H94oACp z5Rb=*;}Q0@ckwGf_p|u@%OAt{eDB}H+u!y!d8cpfUB!!6t|JT@IJ>%^6R+r?3b{(+{D`Yd3ER?r^u5WX`pOC_ofhY0#AKPH7)zNtaha@W&XR@78pOgESKxH6>8srM6E!2w95u?a zMlmK|dYYT(6gWyTa~9T%rr68Tif~w#;^vR>PAZ=k?UQ7I*`%2sOH65{ zW)m(0@Z8vrj*hXkyol6I<(^#ShK?+YuzqO)hsRx^Th{9p!GD}nQUz^b+uYa7;SKiv z*c(=E=`QRp;557hr4f~Royw01y+PafM7hh!N}@*dI=L3x%G~EfN8dVHAZhNcs&yN7 z*CHUhe$L$Z_!vfUKI=C{O79r8S}dJ}jE`azVN~Y&>JTxOO{~|iD4@Jrliw+_v-tHa zLNJW3OlPlTiO^(Wkp^;0cVqj2WixTZxiq9SQ5^FmKb{CCq3)TluL9V`9*1U;)R>62 zA{0ceR;$RE_RF9D9F{jOp;B8!-|r!D6^Wu6)KP1-BztCMWmU$3Cr3v(xOGQZkPDYr z;W>z0>)6}6g`M3y5~7nv1Nmh;bACfMNEQ}#stUxw z%}c!EM9z-H)t*FrlMCgRCU=nnz7_cA>H?tYvQA+Kr~&wt$}BlyL2q>YoDl$)Sw>T! z*DbQPodOI|K2m&$gmW`9LngC@xP`0PS8=4S%{RnoG_yI|C;QxTeYLw5lkveKYDRhG zP1h8U;*{^HO>aDjMX)BqLqZm*vK(JpYhr160VgM2v|AgZ4arLPW8ag#>6Y;Yqc^Y% zNqID63V~g4?AO_T9(D%-%#Qx-4h7a|tPI$nra!T96Z5%p*CiT=B#};}qBnXze;Wg_ zAJcQEuMs;H(*+m?76pX-nJ38@omNM69>RulmAEicB1DEYQIA1=gmUn$V_|U#5p^QE zyEKK3c_SQ`vJ2wp%}>jWK*zcm*fudmQRktB-BmQfWH^%dvRLWJ?-Z#ai5z~+SXM^5 z1rA5n9*rZbSXo)Ycrd``<}K8kJ*+G*Bi!A=a56@_6(HbiLGQNyK%RFm?P6>5CfX}Y zSY6!^TN2+7m6(!UT$Tw9KN~ASrYY{j(O66z*>UiBknkc7!k$vxlkAcunfP|eVUk1` ze}Vum>Ol>a^#JKO#$#`OJ2uW=z_VZY3=Zzx#{SM8d`>x12Ty+T5Aek2K8-iO{TaOL zKYK443(J@cCvYYc)Yx@p$5`7~K;`@b(wN0Q$HfQQBE&s9zKPo}4bkh4Q3)D&{p;Rz z>PYo#b^VzZ5S|8p?_C!hQTj!p)+c;+lFUc7|Yy!LH)_@T#@5?U{|lQ(Z&!4seR zIIh0}%;d*jO-q|T(s-k|9lf9Z5XQ>?q^_)ei52Xy@q`;J6_c+X$~I)yvX zG+d4&pf?|zS(RDtuQ)|Bff<+BRB#d&Pj+SYrd<9QT4TZv#1l}mhn3YONk8Os4tPx@ zLKi)EVGYkbbpIL{!0^0Ubo-x7u}(B$hwd) zTZ7KM)ylN%2y}5VEGnL?mjY#T5^&QK##S!H9lp|an9(LjI--2f6{9fK_hU9(oAT^v z8xy-&dOFL5pXYs!hC}J1c)UrNlkT86C_x{FLU9LH8#W6Tv6xD|2{%r$xY)t=-VxT< z)@6Lv>vplRa$W^u)mzxz*+<3q(Wq6$Nb>k_7q_>s;_~G>s{R6!>JY=B>cr(>cLs5ENWx^n}+^8TO3;?fe9msha1eirNJ)-mjzpyCFY zI0<^go@jZNIxPf21q&+`oIATJ8T}JP=pWt2&dv$?-4Pyo;8A%^zLwXYSpj+C%b&&1 z{^UQxWO#&nvxXq3VsrBZx3{0iC!hQn-u(Ex@XmLBi=0wE`-M;8nJ<3|li`VghIAOM zH&>C0_4OE0k|B*Iie8#zh{&3f5s)Wfb`)jBEZ+;1v0$LBLHLU=9mqs6M-pwbtxmWq z5;hYnhD_4wAOUL*yfo8v;Iv>J$wU1fp_`UW{*2`~@t)B2CDCp~x+I?yJS6nV zqMDc;-DHBrXft~_BhHs2NO?a0*b^{*xJPGQC68rW!7n! zi8>mb6?daWpEzJ7fTm~QkZreK@y-L+kNi&3X52cba}VUR|M9rbk?6n5uljwY03 znr^P*mPG;Oc$kd)SXf%a&cPv~C|5*)fx?YABWt$Wf+uzRUHJ{+hD+RSvEN0vzlXKX z0^FS9%f3tw0{-m1Tz&>l;7ia|8fRh!bJFX{&qqSl(o_l`uNjR;sD^}>DhpnC;N%PY8f>jvKO=C|O&gAd@he(i%eIXMRU!=i)1c#LuP z1P6ylNIm7AeR6z)3lBVqvuDq6#(@w%CV3`@>Vv~A839+TA=;f~tSw#w&_Fjn#R&V3JOAr1h?7)9I>rbSB@J+F^zl-hdEdig_*4CAqE4z+pg7>}uC-CWy|ArW+ zEi9~xN;}S!IbfA8pcNm_J^L9v^W109XtrcGsnz&HUB`s<+9(o6RGvgavrPpuaFEav z1S(!t(z{bdqm|7C>U70fYwS%=nUbMR{yg6l8l;|X#OefSFbCHF;Evwpa}-8_vSCyx=bWxiRdKx2f%x0@Sm0+EoVQpl07pS`(WECbqrR&;XXHLRqqc&qb z`G4)MTdmhH7!5=b%yEIEyE{)tVw}snICo(gFFd;`dH{(VwVz*UjAxd;c{^4nICQ~Q zEaTHv=yo@7+V$2OpAiz@{| zHm}iWrhxKbqkit}8hUbwSzB9^4rDm&7n%3Iy41XT6&{AEv#Np^= z)u^GhvLx>xzHbDmj^m<}wT%%?r(rr9-gBthGK-(M_1cG;YgN@a*GnqMmUh6;k4i0-Kc>f1}9524`C3HHAvgO`)@wNCb|Es@- zlio3Y_=mn9gX0}6udT~3Fk@Lc-w(Y|ZSG>t(2z}wZvu=g!?T`qRcD z_U2fg$Ey#Wf-}#}LPiDpdZHrMVn?&ekB6een2sFECva%-qWEq}l}w8_v>A`UdgI%` zwR9s#Qj9Zj8hJcNy=Pu}^oW+6Mdk?ANzkgvy73NCW1nzCOo&_G@U5#mvvgrotLB z05@leftA3pSnGBaDZ`A&_@1a#LiM#ew27aOB;%!0m|ZIEi2A*+(9J-`k3+ZwtaaBz zypdhYM91lx`!ofPBQSfpmJJN=*?`kxXOhr9B~~4(AvM6FJe$LgtEjx@_f6>%M_684 zk&gfNwHI;mHLpid4P>OnUsi{2>xzr8S(R=ntW*WNFt7ix+eep*^0hPQv@QvD(9e6~ z^5D3x7VTzmeOF9Bb2)UX*I>{eVlq*Or*XfB&cdQ03ZNKL_t)TO2%OoZlj@C znH+I>u{cYRRKpHtJeuI7*T>G`O#;1ouEh2k?|fs-p)!j# zawt+HOB5-Jlqd<^GK_Ac4cHAB@Pqwkz-_?(0e+$d84b5zY`@rm|AE~=!!HKx2cu!h z-GYYJ(3Ci-Sj8GLD>EW8raRv=8Efsm&-w1nD7PgKA%vKf8FBBqXV}BqYpu-=>D_m~ zDnI||L;3SR{}U#>1MWrX)5_(+$xyCuSMsxu|4@#mk0g$2xw@RmWCEv*u}mlb|1!P) zA0?2Vee{9+qkr_DNY-rRJlPXa{q{`-F_|J8r_C$d<8kG-We!F;*o$pB*qcHzXz zd6R*)qB9D>M9Z5BSdgZLvLK@hYVXEwzvXAEC!KbVIJNMyJB31=ps1>K1WFzY**NTH4U ze&PyQNu8Qo?P?HI`z8kTK{&*2PSp+BT5c_Zjs^dAcz7U}mzVP5@{-p8|Lt%Xejm>d zF6C%)#AgJ<-hQ6Tcru~*lk+sAWhcFq0U1>Ga zZa`phl*($cF$dwu6!F`a;sa-qe6gfmjt0%pwpz&K$TRBgvu>li&R6T8Sx0cCgB?w~`MA z?2<0e&KN^5tiQav;`vA7&!Sicy^On3qRD~udwuGg0J#lDBe{NZDMeh!06W;Ln%4%m z&v-PD>lYUkYL2IeGG8s3)Ils5O~+D3m8@pB(myje9b`n#=n?d5?3ei;Huz)B0Zqw3W-- z?;J}bbGcsL%3po>6S+QLOFkS^n*s}_|1ZD(##Sajdhdtw5C60OKnDF-j!$1yqXg?G4Ndc6UMe!$g9Ap~5*RjI6FB}y_<=#T_#rMAu{IFqQ&r$;&EZNRYI5gc-Z z0acfF<2Sm0nwWhoNu|q{Dx>7a?cNNt5J81*%b0xV=URlY1K5X4_E(yQKNrGSo(QB( z3{9JqNYS;byC~J(+c)cZDr*9Tb2z}=uZ-_fV$;BnONyEnR`S;jkKF@9VbDe$nEw%$ z0V8_3B>ci%QEjEJ+8D5EFzmdb$z5TrI%)m6;$@?{PK(dTJUD{JGjo?1V~f;Os%!2kcJ4^?~}%x(#e*@5V0+XnXH#Or-Hr#6)5c4xqu3D4$+^-fEaXjECYi+Br)xWcd`E2 z9LlO}UWh*y9N%WEtS-QDfQFD{bQxNAE|AEeTRA>CkZ=Fyx8?BOE7CMu z*{s^t{E1}!o=lD&NStG6K9WyA{y@@1V)7ngC>%b{^>{L3 zM|1Y{X=I0K_ixPEtX5Eq2bB+0fYdamz0hQW9Kwg8M&j5=6{#SQ&`62xZW?q7I+JPuU)PNZU{v+HY~=s38|em0-W*p@kQux%~{fTIv>_-~w*tc;m8;JtnC-U)wR z8Cq&HgZGS+oPnDOXtUwmWe%}gBeINh4rGTA@IjvJF-jle#c^}I0 zkyPti9z6hVK#{+=FV~B$WW9tP7nqTHj(dETFw42Tn6ntnvzVgY%h_C(=P%@wpT93( z`RZ#DOHYOrD9$O`n+yiBSZ>WgR5&DG84bR&WDGZeqoX6vnc_T`10?sNq-D&-#hGkY z3wiYDk(?YK%kA}z46%S~wUqvNL`D~`&9=IgxED*W9&nDc0UNAQ!VD4^9J)dBL8k&Y zi1YKOQp;K%yz)p^i$t>cp+utzA$uh-%o!&^2D)CpkjZFFNFQC;d^VHOU?Nwe3wi$h zsbsxWifSo~RU;TJJ$-sD*Tc2+MwtxyDc4PmhFkgEgNG6ccEBv;w%N+fEhG_ZsW&}& z_X}VCo1}pD>#yB`{PcsL$Upp@|5%QuBguMWd)Sr!8pZYy)9p3U>WLN~+KsdiEVkpN zF(I!yQZFeEBu!}7!VrzJmTFs(3WkFQQ}s}y7|J>wF(@M3a_0tsxT%|VkB0sA& zXpU55>{P9A>a(CH4>WfP*)(EVhj2%rD!BwGA)MqpsC5~Ses0*9BY8w7s1k#9Lg8Ha zwcm}rbi7e`-eWUeOzsS_(Vl@|Y}b;y1A{2WqrP2}K!;*G)DMrxa&dko%h^&6r(@H- z)a?evkRt0}`-!AY4*uF^_i`6p74Iq0!|N0N-Cgf1cX*10iF)T=2_P{qF7UGq9yFco z*j|}+bM6A*pDhc9ou0(pu06H=^}yNDC2$r(Z9*XcO>s~9219)Fck{%&ulnr_WYF)) z(fB~A;1ImxJyF!z`)s*dzzPi9gJ$@M>suRSh@i?@N|20whC>2CQ_&m|>kA<6yS~2S zTG`p`R%x@Qof4b#;XVer;`3j8Q-1BYzAODn&WalaVU|zjy&wKSZZ0n6;pZOlemOpR zBp-b6Q$j-zup1;fkgCD1kqeRsa2z*R7qk^AHzb{b&OQEg$U!^gX z=eM(4)w3kJA^{ZIn%4Lkj~hEsCS$DpjbuDIVq8knh%+Q~8CNeZS<5YH|56B4{D3Iw z_?!3G2_fF$+1=bO_&iIbOTCcjBD!rGgpBhKy;&^mDv=OisRE4(W}n(AuE>@I@`6D> zSX#V}5Q82Z$nnvA8H^`t`_n|U!U6P$8A+07wt_g8xPj8MC)=u_!*<(*n!K-28s9_y?!Ej zKa-C?e8zp-FzfUCAljQBgo#h?2>R{yZt6DZ#e2qz`>d;`*>%^IpkvujIxlsNfr!qb zrtlm&?4(2N&Y;rQ)ozWwrgUd56yi8;XBP;*-i^4omA@w*eu(8*{hM9{1r=C52vi6t zeH+q)*nmxz8+H|$=`s?Ue&QQf5S@oFhT?mVRYyQpp(XX{;bA-9A#7=T^<%T4ce6$@ zUoJvym}ivA5<>@qV1#P_`sPMfi-oJq z7?}C9=rGfqeq<#5pmW@;)m9#6nCKAmlzZE82J$2&JjJ*Jct6c#FdPvE>}7o>tnGHC z$V_5VfhK0M^4P+{xGKp+rOv0{m!soD+SEr4pvp{(Y>W&BC`c1RTSzJbM5l>4Yr#AT zhyf_mtD=zk2AY%`NwQK-P6zU0aV{Tx@}U&#TBcyb{;R+K??YHm&Y#Hd{OA7>hos}7 z3UWdSnkT#1NU`mdpqNb{LEr*G;8WTbzNAigK@;2897kGdB~gz89<=GTDE5pK4$3bE z@4C#dCIweYRlHW*xYq1I6rpgVPE{9#d#9;Q=qS9FL+daW+OS zi1rlOVKUkc!cp6`;lBYP5c6GCk_^(Fpc~m72Z843Xeg)mkGaY>9}Q*L@3!ylxYd4! zyX{Mfsp&q;KC>zmK1x6g2wzL?NLKp^Vn4CDerSJIvj6jW%aTf{RX|1VFjs8WCiuCn zX^ebW9o{?q@6`9MgQhyrgw@NL7-X$BG@&Fb0O2-BT3>+Mo{n1mpn(D5v`S$+#8Nq?W1^G2iF#M?~h^5 zxCQG|EoBgZk!-+#tDtZz=ePWSH+6g9rMLH1+A-=47MxrlCdJq zBRM&|Cw(wh*K4`Gxt6Njs8tKd63s@gZVT#4(&13%Th;d@gWPt|)V!vk4qwfmi!>W~ z_4u*8dU(R;|NT!tkhmJi@xd|U*|0yjyOaM{bs%^Me*DwFl>hp_`A;Fck?HurYzlNy z5d}gt+G})?k_`sgIYhcXwYKePtfmXqYG5Ony1{A-#)oRFLP0V$HfvfqQ<&2zmA722 zWOj2ci`lKVYPHQ%DqYIdn56>#JK@d^)r+8grLYP660q}v@0UuoEo^un?*!s_ZwGeh ztNqa8e4o+f{}y^U!2%qgZ#d{_fCw}silb-b_~U`QIJ+T@u}9rP!mdRO zO57i)hyVMMR>V57)bu)0Ks63O%YFy8-`(uI=3d7Zb|(9ClIRW-$S~OyW>L~JWq1^R zChJ51CHY>OhWGfkJ5Kw_p#^#*6u8_bYAD6mJvf-!{3GQ#hGhx9k+eBOYt$jy*@dO) zn+92**I>gfnH#a~~!*gN~TOGO`G`hVKaF?#GE%ZIAn)4pa5AY4A0#x{s zLB{R*vCoDe`?X*Es{GQgeUotUc2n?~?)N8h`TVK;^oKu|*T49-jHgFbZbK;e$wwc_ z@xA*pJ$OXMR*4F|+{*RUwX7F2g{^BLH6L9CD*w^sfDly18PJ-?Le+V(<>zAX4D?T! zwPNs(>wtR}F2xP#&#B(CAPWoz6PeAgWHDRt-i8ipHq!*aeJG48HOUHa3b?tMNd>0| zX=If5^cumfxbamB75D3uq$@{!p5VBF8ChL!sH>^!h@CCR0D!fM4QDhcrr=rt%Okx1 zVlih?4Noq3dJW-1fMR=H%5X4}K@Z)KLdXg&Mznfat(UUil=Qj7`{7)Sha-|5&aTd7 zv7Jejm-5QNsT@v+QuP*6q_zC$z4s-K5*ZDKVS4z#?m&L@{!iqe{Ez>=Jo)HH((h-y z=x81Fd8&<0Yn8X{2!KvtU6dT|5l@76BGTY4wtpFTJiKm{tx_>rs1cNQa2bM89?ND^ zNwHZ=xv>Gg(F^f=WR+A6FE$@uXVI7|Y|VDK24<8(XB1qvIEdSFOt)HV|n$pd-7L5 zeV>pQv?N&E!vV8VmYaZ4CPC-%Qa56s1rN`D7a@UmLxS#Xe-Ivii|o>I!^9A(#qa9U z9J&gVoHMC7BQVoM|9b`jpN(KhZLFuh%`xzMqsfG@43*gi7vbGdE#n)r51eTgw5nyX&_CrSOy~ud@fOP^eybI^@Jd0nn$v6;!$%?mlXJePZ? zk0r?tB}tIbD>A(hZ&sl6BC)1gh@hLE4o9?4IlnmPxkr-C$0LQFS=>Ubc}?*%3ftvE zw=v=xES3u?Hs=&QkH!Q3F5s+t_fF;0^0{o9N^)FVpb1IL7zXDH2n_jr$Bk6QO3t3E zn>CtE%sV#gtvrABLSB3Gb(v1bl4LqB%@dIVORmT;%h`b;n9taC6nu?gI+Xsj$D}_R zO*lsbNx@eWTi9b##YzS)8G~rD(fvhqBB){(1aK}s?_bkq2H|RuOyxUY{RPgie)Qpw zrCAT;?blw{=jN`&@#)#8@<0Et|5*O$_x~5^<&li0BVwdbTrwzQu-%vwY^17WF<~EA z2dEa%!dHgrMz*TdwH)BZlgkom(PgkV$Ew)dlhWLobh zV|X=*c0bYHFxGsziOjk8F4Sc(NZmpd3) z`^iIE2-KjvmUOqPbJ_Q83cteF3_oL-6q-HuR+x-DG5Ts+AB?xj)oj}RenTLQi=q`3 zN+4jAJ774~brcK)u0z5g9nS`tO=cg0`3S4T@u>C58jpvZMZk~{l{5z1p?DTw+eUG7 zFsd+IMKv4Iu|Yc8FglO`ilYb*3#x8!S>+OPO=7b>sbx9W#6ij~#Je=+EVcXBPo{Id zST|S}>$!}_xtzQLaoa|%Q}Ujqg+{Y{G++SxM z#*?w+{k|021@B30E z_ADRE;o&oR{q#-w%Ioj&^ZoqtiClfU%-RHk_VlOk{iXcTAO4>Fi$DI~q^@zJrnF!# zOJf9CH-R?IEj`Mz+IjdmFb;<1`v!nL8mnb34KZYW)IRL9_TC>@KEQS(Iev>j1Dnl) zpzjZmi=fDz?)4=Feb|-ifi+0Iw;U+6MGyZy{0@V)ed3n_po_jZBsG>z6$B^$3dMfx z)NHF-?XJ32-HIlgfDLq4@C)Ic$ZR&k#No#i!ZP)q6Yc(BnikzX4T2a30)hi1(d%cd zXrpG=+)zJzAz43?H{X6NfBMINMVJE>QZI8W6n$`$xP#xq*9e1qtlV%4OC{d@tRd9s zzY|`636jWu;@F3`?mB-Vd>I9MNF;#3*!>1pAfVDN&8B2)P|3gw9#1H!`ti_``ny;% z_(BBe*GaV=5m{FFJp^lD&|KXLT5PHM1N;ocxqvtm+o6tv%%QbZa8gRE9poc6m z{O@EuW|H)`Eh-+v`>}&d~qx1 zPd=6Pa4h*~L?&6@OXUdNhB*c3d@ADoaC`fLIumG0xNf_F71x~Ww2^Rt=*;JZ989JZ znQm$&8)@NC(02{<4__VN1ub8U1)?S%=8hl zv6gsKnw3KoXa)B1?J!70d&`8F1gfI*zA{#nzlJW1Qqfm!Vki&xUfo8vew4yP^T>+Y zYAoVBr7%o646OUX&cF7Ryc#T(iRBypd@uDrgreG!h(rtyHj7}(+g{+@4~Q=ZU;WNf zz$nE_vxZPy7k-5SRjd0(a^3?eqMvF7W=mfGzWFLO`!w7Ja8@Jt?jOmcNB88T51*+a zAXs*Q98m=~FI$P|9cIRgb!|e$h%Tj`JY=u4@U9>{?(qHzg>rXw9ey8$_m#9WouvJD z?^46W5<+9>wlQ2rm&RpA<{O27!+?`B607ii*SWKT7@{&*>Y(`3(2hsw+u39tzaS5Fd?!J#d{z#6Fj_I0#<3PekSBPss6}o64 zb#Z-7bOQ#KwFP-yiluik&NHsz1~a2dXNIH6ST--NXc{>h^^_IILU_y>#Hh{&*;>t4lJYlsKVlCeVR_nU&%>uZ0B(;58(E+YLSf$uUD2Z1_{WW@<05ISO{#5(UbjYtsaU5HYdajW zg2EUa+2*?@P*;bTb67Ppb6SuH_bqq=39Bl+NlLwiCPejf(uYC4n^bR+#Ht?0JM_|A z2l92*b_Jngw++5#58;U;4A44^)W8S`A+e+sCWA0I;X5OQr+9cByyjh6js34M*d;XG zi&S_Ci<$am3aso=UF&dHc%uf7Db0%%0?=I)TXv#@Uiwn97o#K_uRzArF>zj0M1y|D zE)3U!t8eAyZlI}~HhGXX-@Huy-Tw*`YDmTXte<@u?%VzM@V&xwwLhrOZ6?yfcfRw) zSb7NXY2f`O_B+Ym7DS(|l(vw|i=bBY$FWh(3K|TZB#Gn@27}u|79eL-wM@nn5-`F! zP8>K;H+yz1jSE+U!i(ze?S`{OJlD(RmL5+S1jDkNGmo;A#d0Of*@Et}^Vz%&m?$or zKsN#w66m*IdiV44-M{^-G8p9T`NbeNC+w5SAO7y|$>GtdeB~G4mCNgE8Y^ONIW!ut zy!tsA^v5z^Udhe%1u4Fu#$XN$_z2W;Wy2{{jX*p-K9#`)8w>l4N6W&rrCPt?)X4GRu*_}B<4wksbOabv}a001BWNklPQ1u;fU3jkd=OE#H z$iMcXvi(F6{%#X2f%5YnCVL4w96an=6g6#9*&1EfI~g^n+_umu9@vS&R$LH)BE!bl(CVhU570${ zQj6z>5FGaWZ%R^t(T%`e7VIm`3l_6E1$vx2O4Bm1S}L{ZU=l^=Fa6rrcs_>^?WvxSd!oP^>2KCQ*EP)l)%a=z^2_MrsANg zyD1EFZFeFtAa+$<=&2OxlV;2J;w}lqC3lkvs+PFnz6zy^)NBz$EPB5xjEsUvmQ`(P zb-I4U%-ZY-aNz=L>UwWb8##-}C~hI8HJlmnv+zVEd{83`{+?pdT(silV6VG6FfGwgpI_ zJ*#Y9fKFI?{MQ+U2pAXVP*ZJAN++pdG-nCJaICRN3TAV%ky*Ybbs}YH>KY@kxem|#m$WN5m1sx z+<&6#_loRKyJRz(XMLm(UqANJi2F#UE+%gF_(uyVl?;Rj%2P7F(?-dx7 zvC^sIERi}==o@n-oEt2^!n2V_3HQSzmg%+9=Z37!IM!{D_;;|%(u{?GSN(nsTooXD#LR!}avhfzR6{ z=ummT4Emra5CS8O9@n$nGS)T5HbvY#I-WxF1mmx&6$AP3I^^9uk6oHQb+*lsM zS=v&?_N#Di46EvPn^_w$AfN*;n)EUV4fUqrz|}m1P>F)W4ho&yKSWlgCbm<90lzG0 z+0X=575lS>Xm21L-7x@nril-{+?pW{2G5ooTj5_AXyTntN`GA+ay6;@tmG&`_3WNW z;Vj5s+mqP-5IHvCqz4o3F~7q=FvRaeY+nQ6F09thOJY^T0_VpUhPs3}C9$PJ-8x+j zwl%du{XrtHzx7zQ<(Abfl8RPlFZRt@77$2d5JeS0OwfXW@#aHa zKqRU^5>~KKAp7E}*?gu+%8msUHlUi2R1)4dUj4eUqj$Gp7;QJI8Nsy$)QX=2asXPd z7F7E0Okh=KThbbx+6|8&heR=$WHLFLNS^mw1||Zi!?RJG%Dtl#8Kk*<KC5_=Q*^rr?TCyO=Bx^5xnu=lj#9xd48S`jt=DuU;F}x`&TcnSkQt%Le|=# zM@SM(HZq}j9GMm*9_L^`GZ^yO*&3wPIF-9;NXA&r=KSn{#qe5Z&!5vqUTO5Ttmg|k zd-^HuV3xDFRO>BubgKfyixuxXoJYiVu4Vx7VzH2`>nn{(fn|^1^EfVaqIuS%+2q#D zAyXzoW!LgvKoJx{G;4lSQB$_I2GVL9G?PjbEaho5Xd<&!*nf; zOFq;~Ei(gCM+PPv3lvGW@fK5x3%2`JYWPNoL~Yb-7%n!>=+a=uwVa7nPmvCw-5Mku z7>5Bfe6X5eW1XMC@ZVYyUR+5~@VCK=PQj)*39H~8T5QyMs@TqxT?{--0Q^e>h{FtYA)rvO7i*~@=If8N>nK!j0sk^e5E6Ch!13aYjmASe7d1Ooy^b6HEcV;KI6q@@gf=FP zQabSZUiw39WR#R$AyAk3&8@8Fpd_z#xBIpt{Ir-|Q-1><%i&}y)wYy5jyKS`;eB}> zmUG!`mZS|I9E|1o_=rHynm<#jP<%O)#q|sM_-F4+@}2K~{rhFHjyNnf->9f{Hjiwd zc+(9zNzu~_iur2NJ}?GBah_2TC*(ZAs^zxL&ok){b5)3&KrHr-qR|}_uy;T*BA9^| zInfyj*4BDpWKg5NA|}?C$4Q%vs-|wcrI5uH2KBHK4FgXdXh2xCWw6yY&4F}*LOU?+ zC>m?uB?xLe?`s}c9Ma3(uw2M4^M@=9Tw%2xCY0{yqJZgA8AI-~1%vxRRsS5f2_y-2 zdeid^GbY99h}q8+tpJ!2hf*LcB|{^|gMk0C%+ZHJD!o z3#I&+N-H}00mT=UDHP_!y0P48GEo9U)DZ91;dId=17Hd9Sj=qEkJXbym`GDIR%Aks zqMgo&RWEEhpxXe`3ilAY#7)Tngi4+E?JND?H51F0IC*U|u-N8&er#w?P`!WcTVIuL zfA5>p8)QZbSTV4HBmxo+1dQ+f_@@-a9p8T_@4f$X8BM10;Pjq6{rLydALR1*wZ{lD z^8C}E6Qf6R#rqY@LKe3x>Xp(|*Fk`8n!vGGw(Qgfm~+HKLR1*SgZVX?OnHoIx4v#? zj4QJo(dWD-d<9k$G#|tMkc0tzzXd!?su(`5|GU#o@jcuDn;9S~ggu2al_yM~ba*!P`oms;i2&Qa7_1V=jt2 zu(BY_%b=W(v?$()V2#hiiy}j)Sa}8xVA);G=>ypgU)UiItRiG?B-V1 z^K1Hz)gT7^%6Go@{i4`LQ5%T7vK31n(gr3qM$}ycs49F}zkVmd0~-^*pztR4YF+VQ zwDClpDzh;U1z%pNyLN(0oRrm~Sb4-%kA%?cqz$x*RlMy(BfE2k5U%Nl$x#dO_`io% zCSo|e`f)|NjS%jdanzn{A^o>wa!7#Xdq9dkf#4k3kL?d_9bWJjHpKS#@%gYr3Ae@h zb+X!@HYVLh-p^L0$HB%xooDRAJ>H!pfrfxwa|{{FQu@7t;pr9c4SgF|B}d8z<9ghT z*zEc9IS0asjY?Wb`1cY(f=yt*;%j4NuXDQVD@+3Wuv3^s!y+KON1{N9e^*Bl`LNs0 zgEI{iV={U7(o$&yim*bsM$xr>OZ;9Oz zDwK^(W$yQr!!hhkOib%DIejiu!jNg6TbE~xt^mI*H)?yn-4IIJn9gKr5VSjNhn=CG zOWm*-=aqc#x4tW1e)k=+@MwMH=cCcJ1(WGLdGAMmNj=Hm`TPHtL~&1KtNTx`FD_|u za(Mg-pS>5)o)B_^J|c}0S#L|Zo&%$=q{R7xNEpvaop7B%lO{4fI+j6xNMgWZdC3HV zVL4UT&~X$chv>9Z!jPXG^M-K^*#JcnU?gDymGQjbwR&X3DOm?y9pH7W`o(Ke$qp-- z;m{z(8IKJy6A7D&cR1@#r+ivOos>8>2EyMm;p-0S~I5w_y&YUZu1kq}lX3Bm3MlcJvbdBi0s)`^nUF1Vly-yyPedMkD&zO_xc5A%qzm%HiENdCT~CLB z6RuOx=RM~2(n=UQ9@u}}z~>49hI*)o47?KFPE}zu^WF2Ng&W|hQqnw?lY58K%ap;V zu%#7VY0~*~<(Yi+(Z}-Q{8H{exF>_@n1q;{`8DSu5pDVsYFSXR&$)+v%l8=%29h)h z>BaQ(DlyBrk!o8}G`Lyc%0_g!d^m-;a3r(YjV0im&n|X!z@!n+=<$Ijn>FWqN`r>o z3g%I~hwFy(B~V$xZaO(QFmg>SC-;uHlfB7wCW<9n+y|7#@(i;J2tn=K19AdfHW`g% z0v$=LyY$iJ*S@6Nh#H{NUOm5%7tfx_3iF-CTxZGi1+`e?p}H_*6Q$5C;8xC_eJI89 zmhbcQ*(a)UAC1Z8J3l{@)n-N-F7_~`al?^8v0c#`28N7C*cgegp!3v~_S5(ND4^Xzwc``2PW8B0(AHNgU@ zyUvfB6*{x8XZtj~yFiCs2mWc!(rRZyP&8BDk?3~7)Sy>Xd)7VpvjoNT5Po73le!5e z)#Pv@^^%3{UO3)YBMvvc(PIo>$*^D8KrzeVcwxgnDg2E8=!6BkA{3dHUfK zIe&T~U-;4&WsBPc!or95<@&{Qxw*QPM{m7N_-1x{F0-3UiWuQ0i-H8m17;3YT=5yt zW9-z}GEQJCVXr@wlha3%L<7P(u>HWG8-8Td$y8>GnOt37YCvAD85}`Q5L?H~<28~F z2KCql!gwbtV{n=+tY5H>q6Zsy7$QR3fsQ;&IWL6I6^H?}Rj~p$HXTkxH|~_P54*CY|m8UZ=NM-2N* zkbIYGU4Et-kVMgfrecg-TVe+xO4m4SE{Z#2+7)nXgVfVV!U)lh3mmg6@&T~Q0jX%U3v|)&jjBV6Ew2I9hdnc^oLk@o9 zxxtuMtac)`(*T@?0h8wshd^qZ-zc&XnhuKd&BzAYhm68bCQck$Nx0ptvpSFLyPKPY zpTQGgIFJtK9nqd$h6ng?8Br5hwBvlmakP^F#Y`$aV9*l2b>iLCI)ul!KR@WcqMd8# z$K@R%JF-}5s?LOiD=60%!%4XD#MgBd;b%pAeDA?MDYqi$XD?{8pbMvVMUpMU%DR)3 zI-I8K=I(IIjrRnWVb^t6vS{zi&(Mp69a=co64Oj{M2p=HE-{L^bL=~_$&UB$j?9{< zD#9I^smH@voUN0z-%HpHq9RO&pm=n1#S_ms62%~5K!;k`H2q-Z-sZ~78A_7n)pei?hHCY3%aV&&^ z%gvTUY&RQ?lMZUF}Rh|^f#@|6Uh&2cD}sta1H5um5|bn=M@4&nrse+y3?l? zIuH|%Ew&sqv&b-^FAX#^{dcg}pnF-)S2Dxi`MTu&$bu)bof9gw6GAPqD}qaR*X&N3 z4r_Mt=CBgC5%)LQ069Fu>(KC@oyr1T%puQa58UOa5qY zuGMOiKEoJszuSv~z2@Qh4_R*Up8m!IMo141J5B%hjm?I9C9HRG&bkU&TNo$u~U94f|*B?!E zbGca-VYd#7Mo?rcQ&JO2*l6Nd0_LF6XHRuau}X3E{LxbAQa-~upcW)=%x!|8O=YEJxd?qh@G;Ss6q zNOo9c1(+`8JSJ`0%*Tz5B3R=Te)!Nty;*?gD!cS4)T0-+nb04#dT<^w{j$-R`6f znyKE*>Im$CJ8IRu9zXYkCoA}7m--n+i6y$GrNOqpXPt{C!OjQ~e~#@Y3?Ue4mEqQ| znm$4kTGaj@UNxe_m#=>P4JnFRwrhx!^fP-!UhlEtqR1VI zJ7?ZDIoNmj6(-~GXC+`>dDk0KaGQV^9~J`pU*YeB_9U6jHhfl6*lrvImeklMX)FYdw)SD9y-DzY<$HrMOLP5|Yw zxvprD28cYP@@uCAEuj*pI2a964$_J^N*B+s8eD_ z89qBK?s4oVC#U94&?DOm=f1H8bAB%|0OQ)=GmM9FcyjD_C#~n0gCvh8pPH8kq=F(A2wCHJ!Msy;EWh+9kmdP zzbas>$eBrd-G>MAHV8Tt6N(e%<-q9bP5tkN-yi|71B$vq?M@|%K*)B|t93UfE{K<+ zsKrec-7%o;f@hzd7JgM(#2p;7+l|GfzG{%JIrIj5qyct|84KK{p?8TZDWZyd3%p}f z_=+xet!g`j%)$icm8Vy|-pPfqS(sqLog5x0HHe4ijcNl!S7CP?4V3G&nr^y)+(LtO zBkh=|=@K;(G?wzb{^oso^Q{MReRa#MfcvmAA1p4y+4I>7p&iZRrWFypckA5_Znr4t zEc?TxPzRcz{drtChYIgcoChC(i@8|0+7Yvh;6OCkgPsQVI*~CFyK54+=h7=%BoiGn ztEI;Ed?rP$ifP*Hi+%1-=RFzp1{4Y6{Pp@hiXAa`XrKnK8~ONW@5z&oKBP{miM2?C zfRo*U8L-}R<6%!m(+PDmWv$}CO;vC>PlyLIAK3HTj11QdqC5z4k^JB`aC~x1$P7u! zNQ_n(cU@&^Dm5`L|R-`_c=tOloXP^p`%WpbpC9%Oc?Y^zM z$TDZ(bc_PWvvo6F+|q8tWEDalel%5}3-F*44pPGh5nq6?(hL|P-m_?Z@1tlJlDG@* z&?{FF9#CeJVvYO9DS-_HhIN3n@V=j=HQ-VvqvGj&pyd0g7DE4w|1Duqmg#5cM0v5X ztK_9wL73#dvUP~W8Ah(O4T%C_Al5YsxkQ3nP^>YFfu1^SLyMP;BUl0;$l_x#ypcSB=% zPx*Zl+V<~5ie4SdPT|x!^Lkak4ff9L!;S5byeL{IE4FzE0?67{7<3fgs=cory23Ly zU~th+2!Vye?x^O_9UI{W{Q+%ZPEZ|V=XnyzU_4?lLnVsW0PBWxEBH4J`%1&cJi;t> z8qPc_S>CSbaTG;41Ab#dKr$O+rLS{6k0iQsz#SW!yJkl`V=@@^Wpp@b3lH3vsB96O z9LmdRT-fOx&|y7z<)MrYrW7_lKRcIkHk2*>t`<6P=%q5TB~cif!>t*fQEO_aw7^1@ z&E;)Kw6)0WX3qDnAb6Hcj!s`8q=tPTppd&K6$4|`5I#GE1}BQ-?CBF(Eobb~a1E)) zK?i~kJc_tUaJgMG(86{EbEDA#3>^<;2DN@!$!c~>C*0Vq`B_{eb`+J2`h7xPaLXMY z9Z-*fnHJ!)jImZ@?v39J001BWNkl*BDUo5Fw%x>6Wot_?((S|t) zW*Yd$Obi7_4odTMOws`MyJMhFL3h8;W7-&kFyyi`(RqhKt5^!h*E1J!p93|fS5aTu zpuP7SH@rENVUk#e^nhg#ViE^tcUl$VB=|#@1pBZf8_;xGlU?!GZV)pcBCFccJ+r@;HZ@dGW z`NNhtRSYYmC2b=8u0=+f3ek9@CaIl+T@hQfXX+Qu13b9(Z5hqLEXLgpK+J2)6G|wi z>~tl*@ThEqwFknUK{QUmA;fYpRaJS}2_VDawI_EkD)75EH`ns;@u7V6-8Z?D8iJ+D zRsx6Bc&K&R?ULH|W@mO0b{b*lRheCX=-TWR)qZyp?ntPOm!BK#)EFaYwbq>+U}5#G z!fyiRoPUPG2ncTHUIuplIM2`nh(SvZTR1lF1wc%wOide4@164ZR||X=B=#PYI571I zlSpoUb+(fO^C|c_VMAh3u_{N0fp1t-AOXP+oX=C17}PAP1wpX@CRSbUB+Br473s(# zYX4EOnm;}~W-<%)P2n?-&j#3yx(p1SXXlg}o2iG`4UgOPmc9E+R60 zi0rbE#NY+G@FKCGT2DPtb*~-51pdGN?JF;}N>C9asApW4yMrh1YAV8qI1ET#@JJNq zsyA)B*d0f;a}HX8n^n+?^(&+Uo_9=ZY8+2xSbqnfH0_+EQs^r3&!~IZ6IbyD9#SM8 zUK(j zosQ)A=zu~kRj~T?Q#ETyy5OKbia9htfBsCq_06x#qsOOmadn}>QS%Io_Sj-|U|SLn zv7N0_w8OpKb+(~zRd|nulwD5*UJ&$bf3_#2$~upbt@jeF)~F5l(3YI#_B#H>LAZVU zYXAlSB!OeY1Ir~!t5qvF!_Qza3ePB1>!>(yE-!WS-Qkp700!z6Dfo#LRYV%>x~OEa zE_h$Dx?FB#yU=A$g>_nK>kv_j=J%QcGANAK+qG`*1Wg2rV`##no#jAnL8!%GX%YZ+ zrj4^gCWi`FAqXqHS#xfK|3$#m7ywmvEWQ3%CX-`%bnk(@^5CJ24iDt@H{Xz~-;+(b z()mE%qa_J~96l2U&4gjjm@ixxBcPPtVS%H;JuVrG?DF0Sg}_N+b{NAqV^iReXtfsRMDP zNw2v*5>RVm@rL_X_$-vH_|sl4hY#;bl*jC5z;29U?cigQRSF8U`FEHb;-0|!&*nTv z=r#tuJ|U>ZLY;y^3_yZ8fBr&xQ6`7OG0zDQrNrPtZHO zBZ`__%7XOz#tam9V$w?w2p?Er<7^-6orl{6gqn=Hg-mY3s6rR)*huwe^X-Ov%Hoir zRN6pQ-9!DsbvRA^XmsG~43KE2szk*SRni>~=hS4Hil8E zIbyJIC~j=17`L!Z6buGQ0F{^j zU21mdrO_*E_wBN;(%!oTxq1n_fr z4Qdudjrr-Zh(s4X?#bk6#2`tZCM#^Z=eaR*MofkCi_0r{e)&TF`9J@C`SA~b$SQm| znh10kYc7J@nghasBmr!>gj+AVH+oxDu+UF4FNrrBVF@`YYNDilmypF}X zAoR=P9Q!~vTb^q`hzRJPo;_#68`5TeL=6k{GhmfXj@4?OCX2Qv*f~69S=oHC=A2_R z7_svLER6ro67}%HHNxxiJ}gR7acSaMlyV6I!Q~6SKR1gS;pO=Fkk2hUnz_#5aNY5{ zh-_^FMds)K6z%?dfm=JBw$2^on35R zTWxn749mmcaad?=zDIt~#pVeWx(J|aNP{_wGX~QDj`MCNvvZppMZIsUnE?%OMr2|` zk`LVB038x$A%tqS?R8SvVL;dli3Qimp+|=^aJ^9B53v_K%jD+rny(KA5^!p~_QI-j zc+9z{7AdL_?Gn};*r2=Man4QEjLLSk+LFCPxU^PC&4>N95m#JaC2dkyqC`i%uPKU~ zPLJs!b#ZY)ShH_Qm;tTSrAV-=U#~U_1*K{~{`GJCBD;yRPoK-r{_3a1?;-f3P}g?b z;4>Uf4+y_;J?+V{93CE!R*X3i<_H+dyXqbA6|@T*XhXOgrl{o`YgjsL~ za`F7R%x|uUG+>_b`0-=f)xbXsV8w7S4C2De#kM>0BH-gZaUfona(Q)0AF{;O3S?F| z<$x!PO*`*EFkjrxc|Q&Yy_Pu%IJ(!%2+b{KGv0?F8O(2HOiVuIcepyH?S%=z!erqG z>u?i2jcAuqThKLixD7oSj1kab_W{f@ilv9wDQi=Y$F`s(YFRrW>{Rav@uXEHi|y}l zPoFR#X@y)HY?B6oRe~UQd5vqA>66c_w#KL6v^PAO*b2pU`C;M zIcq?9adsxNt7r0W{Jme5IB(=;u^?vL>v71MitpfMsy&K4HG_CN=fWwDkVWP#F>AK6tK26~(;uv0Ol$7}*g z27`Vqt@4E5m}t^z?MRq_l?H>6WaFM}nsxgO;dN^&@(Vr}Fg0veg=`__gfV7<{ThdI zJU)`N24P^RaGJfgKRf=s^0|c4d^RV#1DD=s&pwsqMhhiebIgDMT}Gv@%UImb$Owb4 z83+{=6hh}=t2TT_i1$EJM#pq^e#ZG)FYQxL6xsI57B%^$Z+z+db-8IL4IU`Hs#x2w zaC(3>kqXg(G6(2~EiD3FtS-9CnEJYHZOf-(uL&C6i$5n6raCVW?r9SNXdvn=Swf*GcL_ z8yoesX+6I*Nm}ADwo-FPkVbIV_t>>`_wFK0s`Z{raL5u0yM``_#;p#6yUoo!%|Byz z&UcfLzjtY-aBkfYo5C6}9e*Ef`L?iNmC9m0lkxO`78~>1x%B!vb8sC`nsgLEF*+&X zkvf(a7tiHe-}|c6NhE*z&wfC5QDoFf381@>t{wXvKa$qebAPVG4x_EWvQFje-HFkE zQ-l4~wnv=|T1d?H{wHxaXL9mIY0yO!h+zF%w;p0nqmFcTh(yE!DAHuWjxbe=k$6v- zIGN~xT{{6^Q>;pOTsO{C(ngOr%jN#*sgWfzrH!Vk(ctSAN=4=F>z+9~LZAlC%2yW|b}O5WZFdFhEvnk>a7i%WlfVN>C-~i>9`$0Zsk1DDu z?dF-NqNas(oZ_0cYzS#tP9AWgC~BcKPZaxXCI4M2gKd_8M8GQ36x%JXUaRH2gLGkM z*HMo<*eEpb(+4B5i&?dBR9H=i^NYr)*S-@%yCO|eXiImm2hXf)o`gb(r=K5{}6%bN5^Xo*lQ{^%#~ z$#4Cg-;_5#|B75+1FKGV5@R<9QN|m1%?*{$`fu(7_exoc!Ch4j$ zNNivURR_$#`5Az=8-r)-7EV&5(u7sv@zEiZIg)~yGpvXzstfb6!XUZF4R}4>YrfsI z1s!eKji&7HLHaQ|hq`IkEBGB;1*;vhwo`9N<;UlS{l#e1lY`@_l=W8Ktdp$0Ur_`u zAXuz)7CF0}6T&(;KHxEa{p;__SKj$D%?B|X!F*#l>IEwIn$I|djkuRaOh9wq!w>_e zd7syIdUQzE8J->7pIGmTT_(kPAtg;v6RucBaj=H_EIO{moCbv$xI-NVH{j==d?Fuz z{Bsu3!(pHI>#*NzH~RT=>7q?KE*sgRFujyQ#!AJ;CdNp)?hNeM_pzL<=tEXDvGg$u z8Rc?v|CkWi8qa=Yg{%$lTSsS0oci2X5}R*f!5!-bXDVr|f6Ze$DSq<+MJo6}G+QQXfvol8w7Ul)Od_60LcHFg4NoZTVw_05v7$KI`FRFpa?3jir%lc~T7}(p zvu*|MNlYP_mxtW-j#4{r+gz;8*WrT96Sz(FWGE_@R)C#tHt(& zm&)D%WPpbmEE#Bt2K@=ejt2(=nI4R|HdMP8wCyGBF>r(Cy-Zm@Ncuf=l?cW?`N>~= zC~;lLzyBZpeXirhJQkQdK3C7HcJbv>v2C49rDtkq_#YvNVI~kR!NNCSsB5(IfKqbB zzu|4fwEeg#>|X zPwVcoV1j`*NA(Wotp@v;jV`KkT}t?DAh1Lx{zcWiEquj5K-w@k*mX|ax<~r&MtY;Z zWc`dk?d&&T>Ldanff{U!6}q|U9bP;=m%sRH{`<)Ka^)rKUL>f84}f4 zte3J_ToV#rEUsj>xFJ-CWC^T)G#E1oH&CSywL3r(MDnPyb+ue`m=0T$(Qv|lUvF1x z)`{8Fa=}4%f*@H|(vLG)E!K3f-2m=N)qBq&VegJZ%NoBwC_6xs*+PpmP@5lHW`yh0 z)as7~JAUYKC=Ek5KY+!ID%q)6Pa_V${h16mm5QC;c2-C;#I?*p9KgVyvB->LW5WWl z!h*gn1)n3>&Ex#Fh(%I$B%?^_Z zME6O@J3>3c8WvbRI964sn$?G9yHkC4?4!7~^w@`XIz57SZK+W})r?G+!YG81Hs&i9 z(3=_997-}HyAUGNV3~JVKOvaj4jkg=tF3y|?%3SJiaS{hr`OLM8G%46M|kgmRn@os z2nzG$?a;lccd4p=ZV-4|x7fpDF7eT8+i-sZ_9%b(%U@8thph%_&d6+5(F?55Q7w7( z-mJFrr+@rM^6l?^UB3A%UzMj%pRiL2eb{j94$l#`L2-ia&(@h%cCFEkfUED7Q>zp+ zfP!ubu^&aZR+R$YYM5lUx_5%&H66nD@&OkL;dM}c-`vcoPpFv825k_-IWMVc=rNJe zh_9~fxwCsvn$|4SKMQ})#grBVi#?OmD4>AXZP!)1gQ;vwZ0S3sZ`5M3CGB{%(K!I- z0+;6(9B8NhjP~+25P$j0@5pO!z9B#Oiyz2~XJ>Nn^i+;d@7cL5Xe*BEU3)hc$8vpn zL)s||AOzm&Sh7Kna8R1*d56Agb-Pee;Nn)dDN5bWr7BxtjpI2wKH?fzbZ{ty5xn3U z3@8vZ*>0bB+!b%q1#&`Z<{&_;dOXW%Pk|5#I{I3>2E;OSP-hqC4Df)W@H~zOBN>gY z5J}VwGn{>fP<1OzMKW6H9vQqZK9g=-%niESSn|<0kHmpF7@*Jd^A~zQ*g5kVa1s>t zIQ;Qs)apr)5aHw;qXOjEqA{L3hDoT-ku0~R4D(c`i9}@3+EAa+HWrha~feW8AO{j6- z*haUIdaB16^ElPvwwn({d)kP&HK=p!veVaiGHKeq=drS)U_0GUNVQ}z;|}Km7w}X# zH}G5P_aw;^F474_ri~44p~3}Ra&S78`w#EQe11*58~54S#kGtNkL2|?Uz6GVy8T>@ ziOF0r=Sf7DcBPW^V)^95XY&4!ekT9!zxQvGZG;=s*(CV9Bm(3)JE`GlAW;?*BEv8d z4-J9~#8u$e!!v3O13dU2jYl#)KH}^yG6O(m59yAIG|kO^MOtQ_UvFjkDP&gBZanFB zp>q$v?l$+tj`N_4plrW1{FP$ubZ|WAEIg@|tOBuOb;$Qb=QA7+xhx3J4?YJvp&{(s zvxJ`sgH`IPqFNJ|sNx^V6`FwYa3X06CX&uQ02e`XQyWIWE&~Y#^S3ksB59x1$tGzl z&UC?Pnsn6g7Se3V4SBm?8_?3>aVpcJ5n-^!a!r3JFtYGGf={z5wsJkY;!X@uFTW#SeD@b5=|^(){7fRKqbb6a(+&Vl7f)Yae#@ zMBK67?~i0zZgmM%mecNhb#=oz#kN^WFNO+y%x7j!-NcG;4(2nf)rNDOD2w>#UYfJR z!fV9zjM^~4V7XN-Ws8=0G3tZ>o+1fsBWJ6Fznnd-!WcN%xNa%6YL(LMtf(r*yfr}y+kG&D z0Jq>K!)MI0B^FHt(Ivzw>rdT(s*H{O_@itk=)9+r;|;Y6O!k)&x8p zz#}L(XeT3H>NYpERmt2;35;~TAvAarmgmyF4<3dj0ku#kD1+mX4%JOI`P+P>J~)vCA3sTY;?)>1(s`!9E4R zM!9vXowrWO zNVgu0NJ&Qb!}uB}ERd3bJmWy+xCD0UiqScLjWKrQTZxw^igKiP0Fk;!Dp zBF$&O4#$#~o+TE$%-}X6Y+}?f?nbVRUtAgULI;(dS~@n{kd9H)!7b@dl3-$Cm90yi zYFDh<9KVD{>#Hb>4dIVEO}mRYq;8*X$Uy;KH$*gwZIKq6!^%w&iF%MEFPP%qLz4j2fX zASyDzU>GvPD%y`7?eodW5r?AJ*Vpa!^)7-CSzx*1_Ywj=s=z<^gMTLf`oH-d`P>^1 zX$a^ug?1hmwD2S`Bx#$Bd|twHY1LO%maVss&((0Bpt!)0Gc004GKXq03_fr}$hv7C zti+gQy3V=e(2<{opHsca60_k>NrP|9B0`6t{@(ZU?#b=^Mnq- zwX))e;P9LouA{1HP*XNbyrV=<10Sf`u+&C*ERF82fYt)T_1)@RS~D~M?{HSowaj>M zp}bS3k6-lA<0>3zD|E1-4kHxYg*pU(827soPjI0kxe08)y`xYIl-jCbhd-3BUPoOQ z=%a^yn+uqjE>^FYel0Egi=*KKsr5k zI2iE;1@8iDF#rG{07*naR1=TK4rW`1?kbXTzZ(p;it1V^emHW}AZu&+A3QuIe1|}G zeSO2@e)8n0y#4kU}urU!5D9jzQ;KHD?hRbi!_8 zGM=b&EoMF(yeGOZBU9lOj&o=`vfZSVi-;_+M&^a(^NGGa)S%PmHoNiTQN~}NgLA0R zF$2Mdz0!)0rZiK*w4>wi!k!vf&<%wwLrvm3*~iZDrrh6NDQ%!73B)ypW@}V#8yQb? z=}m@KWt)kq2>q6*i^(!7$dLfzUdniKb#^5mfBcdB`Jerf%x^E{@bFk3J$y{`^xlI9 zWcqBHg)-#;qlm6^y*kH+!fUy{Jd^c$Mu=DdU5%%t2lx7^6iqBW!kCJHEaq$8JFCr{ zpX2E8l%E&G1hPZTb$q#;5&Y&HZ?)Cp0s1aFja2ro;MfG;ElJ#sZS1-<_m@mmzd;a{XY*rg~oCCnb63KkF;Ljs2L}?=x zsJHn*B!aVXmbXF8gPsmwt5!R~V3Xx${3mP`-K4M!{BcWbgKD3cYNrKHoL6%aBrtE4GA|rGvJzmzE(RJC%SBMq7bfBduO!H<3lb zLlhbAY|Cs|wQCoGYQwEw{9KB38j^6vqmH$m!J$&+5@s7f8fhRz^Ya+mrhA`6(WNvy z6}pbaiUN+cniyvf*4RF(XQaI^f0h>gQgSS06o;+3nIa z5V4#;KbNAZ3Yj7X+ZJlaI!);polO`Zs zM8@c%fUiXrcDuN)Aj=4$gvNPdTCDEA-L>C|t;2?a;dC;V(P2;LAJ=p3;)bd|_hGMh z4q2?v&uqSsx8D4`+&{j@d*){!ye~if$$RqgM<3C$1V3MtOMc!X?Cpqh9^>)xu~hYz zbYZ}xBsEmJDHHeA>G3h`N#@+6q3k$ZtF!axvL!>YW-!-oSa>bjvE^#{4)|{gE0o(S zS<#HJ$6^cT@?d(xViq&Mem>%NFCP-h^Lq-8$($$9x2h)F&}sYb9PNs3%ozZ=0lnZo zRqA!RfBHc0*Pgoe;`0O6^ujxY`#si#`Xeur#EdR=_mHl#C~TP&Hzn3O*axh+HHA6h zIKpTH9_MPao$vZ|+Wy@R;^m1eIG$uj>C6&qFEVgthlhLm0h*l9^ef*zny=Sv!=XEBw zb~^E%8#^L2LL&$SNe~1niUJ9d1VxIHI0`i*X>3hdU;N2G!hdC4uCmKk&3L9Xlq`v| z#3(TX1WDxF>GsVhpR<$edDdF*-nTW)>H^W|d&1uPec!d7^@N6z)-cX|lVqj=2DMZ` z54l<6D|a%*$=lE#J36-X+S$zD=2=$q@Z*nizEWT|GM}@J|KR-(eo}Eu;QGe&>%qFZ+kLWqY(udj}T>ve+m!djpAY^z4BN zAvTj-wJz{Syd09F7+6%@-= zUKnM%Fv3P8rJN@`v>lNB@Wx@5+!F;IuB{y;{#+^LJ(VsJ<_cG5$LBWiwLu$h)r02< z84tb@paXXxmr@3!p=^x$L9B?^ zJUBcI-vd>)`hTrhpu(r>&h6XM>ut#1eGkZ^PdqM9KlPL{lsdSt+fIG21q zry#nAHN0BOPA^q zOX+sC(ox=hW!^{T6~v3^8%u2!n6Y$}c_;a7rIC#IJE*ccdQi~8)^rImhGP(LS*1g> zM&pZf)=@{H$|`NB9<}LZtxdYoF(fvtNrOAA9~!Q>jm)LCajtD#ft@K7$1e1%?7gax z630P(EawJs%4|{1g+n&?GR$0Aub69LRe7fKi7eqY0gME;l)C74IJ{GHLWQsJz5L*; zE$&zSSaqS}us}vU`Uf9``ga4y-QGYPUh!+Bo6tZt4=&VfK^Uw~sl<+0B&?=0ZUpx~ z^q^dO{On7@-e~$xF>EN$W4%bK?;Kuw7WpHH6SBvxz6P~|M(sG zjn6$N&wb_@xqa)Vj9^wb+LR6y+`T^MG{~EVIIGK{rc#lm){YCG8)7tE15{YKS#l`x zpn;aU3=_)ej*M_66j%vj(xQ|Q6+RP}N~KtP!b;s{Pf;B1E1;w{G#3V&wvl@`?_D1L z8x9j50!1EF|8670Eb+XQ)lvtYZ6&|IhaXIY!z?@Aiz#R6Kl( zaS(2TJ-9XC|HpNUljz)9E-c5rz9-tbYB^R=2en!Tb|Sh6d{?juD}!XQW+7^X<|VEZ zMlDRv#x#S(8b!uQhBbtAO4#C?%mL)3*eS0?o>p}Wriub|q*9RD=#FY+=n#!- zA;5k@LKpCBAMW@D%MC86sfO11idE`Z(0ILCPg*e-Q(8?V`o7LAYM-tyN^Dg0RS308 zs21;pL85N{Etto!-?k2<-4-T>U)IidZ*?yIeX(I_N*$bDH&x&mH}p?`ZU3C@EEK=d z&PPYP?+*c}ht6nA(lkH^`YR4>p0HWf;S<_xYn6|x+%2$a=bf*@a21uJzaLs>Y0Zf; zs??JJ=eenyUt@}-Dh%kA(wo$kJovyv(i?5cVwKZo8=LdV>4`k`)Kl{4^~b2~5VQH9 z>+4EY(a>z@pDlPG_cwadAN1taU%n=bvorbqKmKhwIXmTsR9lybO=>`uZ%3`KvyN=^ z2h7YywT@~Og$RfX1J_d+9E4&ARXO83B_(9RKp(mYgOan%IAEoN+;nRzffK}^vP#_+I{JdQA zwY7t(Wja~X!ylEGnl#pAoUECurdAEqoWqueU1cL^40KLsfziqa*$=QEujS-;EDt~Y zfZYG!WjQ=LkogLV)lybvDaU7L^2tv;!+WR-XdP0o$=@$&K!-4#{vacP1D^xvB!kTTUn|%s&RQxjT?`A#!+pCLeroliSP2#-M2^ubDHK3nlwMkBg`O?P|GQvQ0foG<0*U|$Ajh*FQD6*Jd#ar)v@licSt8<7MbuU;CKI~!;(DPQ z%B!4KE1=bG411(E!+NL2VbSjqxrwa^X@r7xOE_JIeMZcR#I2HiM&>sE=LPZ5giNc57W2LBky7QOLe|Ax;r185{Otc)S5>rLEW?1y7Xhe+`ljkL#mzhR zV4^w*{bG~MyX`f+jLuFcp}Gc!*R_f|7Bv`*5}mK$&tq;#3U6rW%=v&4bS~gycS&nY zxv`;xX@>;0G2zOxwSE4A{oDPKTxBW$UDLs~JxE&>-?O2+#>u{3 zu0ytjZ#+H>Z@j)7BTu+l;?K9XN31sVx+dX`3A z910svCy=C}eMWVLdkV(@&lYe>s}~V8f?F1=aiCq(&ZQRFzr8OPukOhge*1Is z(;vPp`Mi)Js-Z;91Usg*r3S|ajJ|2oD$?lC+F838s}rh!?1#>U2V~;kGj?~|@_fgt zMw&ftz8q58T+83%-nkZCdb#Lgy4tGhUuQA!9ip>!t)`H|p>toA^|ct0r5T9h^R@lX zK$(tAK<4k;=KTBT$7f+a4*z>$mAY8ALt%8=G89e3=X1^NDJ|fuj_&b=t86}rZDd`_ z=4Ma!?%$N|a3G6iLHm?WcOWN6V;P^#35WLjT~@u@Tf1`i&Y}G3l~?8Tkri28uen+|+eQHoZdtR(&RLGwk9LZvG#^MRkEQa2$dFu50QowHwR{NVH z&T|Jnoi`OlTf{3mM*;NJ>G6+NiB%f{9w=M?U6 zUDFa~!LAImzPLJ{B@TBrAlob02S`3L=mFm z=Qwa!IrFuu0I#qjs%y0yCY)w&yHeQ!w+`>$-thf`=-@n3Hj6*Gx*W6_da>;Er;}C<3!L(Cs=2GY+Rdl8bR16_2gDu^j!K=|InD#Y;{AMGS5N?y_ zDmaA#84vX7>4`jW|9$en0}nEsXSFOOsuC6*lf_h?f8o>YGO!>RyP3pBY1WOeDw|E0 zdES7};=cU1|N8fGa`vJ8#sBihQbQFHs|9r^J68pkP{+O}g8e*MtXpd0JLiL? zHtG%i)*ROZ9Om{WzUeCtZT}vtQXHGJ;-!(q!0j>g1|>Gl!e$#>OwFvWeN+8)S;^C4 zL;sw#Jqweey#)qwz^+A=+N{oT%~A{00to>w#HmILM^c&1wuc}YHVao$im*zvS*W?F zrL`$&XJafNk`nmo&&A;?p&{nR3^1q;!1;R8vNJ~Qfy+Fg{+sA{KH>=OP+fAn*8?HpO?wmoQFdDkZnUZ zUNDfhn{{Q_8_KXZ;Lsg&5-e1BB4L4!2C$6S5TJLk-3FWo!@SsL8tAb68adRX3vu1N zf6KX`O>OskkByzNti5g+d}0mJ{gwegJ}1nq3tt$tWyPt3)nt3ei zWx-A7y?5W1_uqe4Di~wp8A`jdT-Wl!odYVzPtRsDpBM7zlh@_hPk%~2{;_9dZ?q$C zzWN4py8$fZRym)wUqSpYO$70ES0NR?ujsq|pJIvmJ~$`yR?jFv-7z^};eNa38jqBbT*`r~*)J0h^eoHpIA^hsu@ zN*SLXOE)pQlSE`y6|$^y>PfJ7l%;nM-UX_EA37i~+91F^y?e|J!Dr}*hg76=FCMHpPGhQxW|NYlzqk z6&otA|1Qk-S{XRC>0Xp7n=r&D3T&uG<@~Q*f8$^z>3QZc)wZ><&Xk+31GsgrxhkU# z#qU$gM^QVCmgPiL|EpHEGL<8V5Sc#w~l&prDoZtSO^MRq&kpvA_gRON0kx=Rh- zLZy4-gG2ejkN#Pnd;TMG;nE&GmOuqpI7nN3*Lg&(C}Yq(F(+umm)c$90AuH~29%ab zZ!k3CKtn3PM$qeM>YzUlPAcI2(hIKLj)@Sfmd}?TI%QQhg;~hJX}J7ioj)z+&4jYF z>RLC)W)9-diF+LB;Ju-4HduTape(gbX~eqv>}Pfen%K0|>N?n~xL2Jk;GNwQ9Oi0+ z9a9dXPmYe|<~}qQHPa1GPbQMa9XUKWB@9VlH_V$BGg8BE+_))|v!&d=bs%rP{w4>s z7cXB@O1}tQan+2n$07!dr<3DjS%djBoymH!(oQL_WieCFD^~j`5=Ds}yW2Z*VQ-JH zIQESP9=Jvs!E6lM_JzS*;va{KlJ_`nWvtUD!Vh2;3YVT_Y!+(e4 zsTvGq`j6`wZ5ymfGH814Vo7+J+qbF3=QB$!7 zkzm-Eor>!%e%E|rmcg4vD^9K8h^|^ruIm%dDZnk*pEOLv_}!wz7pV&h8|{XvELUr* zT-HIt-wYHTTC!BaG!8lqnl`q0_D&P_O%`-Qbwt&``ph~Q>^pp&G@>#+N$Y#We06)Q z6D(i2S+~dtSdhB0C{DUs&AFkd3vnUK^*kuBsnIbXs74IgbYSPPdpEwc1GVzaL#r|M zmon4It`0i^Gvd#2nCE8L=o>MHytqHGYDYx{%=`oloT`$Gd%N=36OYo*X+BrD5yGlB zUVoQ|%x6FMSvfe_x8Sfu<60Si8*#Q(n_?ReFYPF{M;ylgcP;=Z~M4LqvBj z*Zi5Sovmh5Z&}ZHLE#%G7Bkf2fVeVV!;YxV3P4mw-!?xWyc24(TcUf!r6pZ`jW%tp z9R6HcgqaAgwOhC3Cerftlv-8}Q4_!>Wz7RQF*_O0ok+}e6?z62P2w5Bf5Rr_X^1{( z_rk#`)7sIcEvjeD%3a;8ZAOOmz#=jZzhjF{aB_M~t;Y7|E(6Ejdh-o=__1rUyLUleef2f@#V>v-FaPW%dHXS_dp5RPL*MMeA|=Io$wIV3`jZ*kbs; zq&7=Tx;UOW(5ZFaSdm$%D*A$Bb1<^j`JCSaod`8UxjIRE#qU-*401}-0IO>9qq%j& zDK#q4cXVO7V$lm^Gg)B`8h?&CY7t2`7|MiJE-}A9XO;cF40;`QL+GyY^RwAF?7toW zs2Zm@d?w$^+cTTE6@5+Z%5qM+F5qzxaHg|KEB8nRn)tmj7?N(BvWqpF4%Lg56apnk<+oTNn?^?wO>D6et@w%v*S8Rc6>QdTXK}n?5 z4jh_+f%iK@NhReWgNkvv$YpbLC{KUvDVaSG_Odl7Q)5YnRod^X0W&slNgzTZpGh^RZk<^Zh; zHnYWip+7a!H|1j=`#9I+t(&)He0-vr6|v9}mbx!V$*_VeuBZHQ-I*J}k_Lw(Zv0q( zfaOpWVOv?2x$IoJNcNdK34j2D1N88&CLH3Mj?gt==8zYhV`$b&Ng-)jtKJLO0dp8g zsk<#ZA;0!|pH|dSI0PLBpDKljaYz>sULtfYatPEncMYP-D3n~wbh(x;x>7=oIs!lk z09F_dP*uX5)^%xgC6@_yVoz#BzAFuN#Ws(EtD- z07*naR1|%B)JCgJ6bD)3vg&v;8AhOqiNZs1r2acxNDj+@NrO!=i-`$( z3&qOHF#XJIO2oQ|s?~)!*2>PpD#l({9ad3-R6*ZRw^%?mHz+cvBnlgHmMR_7lNGgF zh|Na24vRiZZDEp)Zo3>58Dy=#Zru;P%%(O4)hk!`dcxw< zxldx@LWRO7t&9t61;c~L*9`L^O?@oQSrkkdJdA*|a8IvXxkRgSD3FhiPT0}lM;G&n zeCdmy=jTM_rupAP{x?;|clfNK5?aj{(u-5Myt6B-RW3jH!OQaY8?Vam{oz;S>U~!k z7XXM1*9-%3zh88jjvLcCKV0zL@jcZatH(luMMRdULb_6o0a;5ePobXsZ1wy6@A!OR zOJPRiPOA~`L7xXcI#qNubrDG??aSu&7N6tu-Lh`XiTjj61w0-TlEO2A#SL8muBnHN zRmR})Lyz}AxD%v7q0uu&^ z^Z7K`&fs|vKP+v%)u1C4NL$oQ6RgFxi8tG`LEo$k7Q=CX5BuFdpKlh}Sx=%`*Ae{$ zxxaQzyF}D+gy`V3GYdQztEywXTd8ZxE?T3sW zG>zT~n<1iW@vN}(D{JPeCrM%g(3z#pDnSGBz%e(YstgwmxGxreLC3FJ8`?soYe7!r zN2eksqDnjJb&o-NgsuRKs1OUBDg^h{=I9_`@I5K_)?=HeT zG!pxF^E^sw2Ib@D5J}qajtFOA*yX}Ai5lUdLm%i=5bU3%6}ujI=wLWb`+FF(rM2d` zL)nWeY^^j)P5m2i$fkqsLolYU<$!qyYX4T75_vIW`W+SnUITgz9Q>GjJo3mj9?{rsc(FKl|&l4|6?p%Y_0S*B1*%V{u_!F=B-Vo14+rwv=TmfBTKUlXO_gXTJEH zOisqq&0^_bBR7k4RP>(l;d%_e1{#;#P}SWUWi=ttMYvI zLmGz3C7Fue+3;Bronx$*Gtt=a>R;)S^!hDz4I~N?p`u={7F03gP;DD(l|P4?;Q`MlcKrBGg;uYqELpttI+B90(H%&}nNku|>CGIl zlwQ9h+xKlqf3r*5qas>Mr-vLFsKzUqQmnb;^Nr-l+c$4hJ$`(6q8NTv$!o8^D!=^Y z>oPf=$lbelWj>op5A(mpgr6-Vtk&fk8yKssvY8SJ3f!ZMmo8{Ggw7pq(DMa{ylXm2 zC`%C=`g}2yE}(KSkFr!QUfh-WY%0^UQ(ij{ZX#?~gMkE=QO(!s(A3mL%!;~@tW_vI z7S9RO3ISP_6)D5`J8)odEf8q2kRjk;CHt?V+4y0eoS2W=YRN-V%7L4b-p6pA{6ShW{`hH9&!5j zqL5dhyR|0UIcyb~@nT`EVrU6j>D1>IY^Z!KiBC6a&C&=7a_jsYWQCK+1(9*0 zOeK18S*H{m+~etSe12*lrk5ehBQgpzZUCY?(fSj=&K0sicc8;GJMEi3$v(4MzCtv~M&XLX_upufHHQ2m9Ku8K3Q;x>Yl7DKKv%zD^lGD4iRi@Z0px+ z^F3>38-7iFu258sx;shr@1P21n4P)fx}A<5kbTXEw?TDV)T*>fwP;87$eQ^rm1L=! z@!^?P$g?Dbiq}glkSk%uy_DH>7G@oFYxd*asoVAt{){?$7_oD*ZXH?oG@I}Lw zS+A>`Ww0-53QdHPUA(+2yBD^3z~kC7oit1MOu)sJ%Kmjp2n3O{fV1!3xhvPMJuEN2 z_@azPLsC``4v+MDlPWzkKVI*c_6luC6 zv~rOVk&@sP60?X=`gRd4mDv48Vm2{4)4~=7cyN3+;UFE?2g#5Luk$JQF+kA{_3Ax9 z+Xa6VaHPQioIqp0$g<&U#)XsegCd>1s5KaeRTrFsYE-{5@xTOwM6}4Jo)xorkI6u( z!u$dY+Aokp1Xz@n;p$xuWg0$nk>_F4V#{c)H7y3>^TvnHt9LDdm{%4c9IE zEwsUxPpsp^XTErOk2V@Hlhkw$20tLYmNMe%;NprRXE9gREuJyvqPJs2&E1(pTUVl+ znP6#)v6CrW$!vwlZO*IUHKpVax00`dsL|OsfP4z;yb1Lcnmxiy^STP=g`OeqaH2=+ z`iuuZLyH!>FYfE+{$EMzDVM0L5?Mkzo+zeIHNMSpFj&U5PPp;)d7xMTu%#?Ua_!NJ zG8m{0KZ;ERAmOkt%O&S&&K4`pFAo0%wHu!q!}h#d%cp<+*J+0N&O7f&z9^&*)|Igq zE3+CB7#~7P5Gi^A)*PN49@y)p9G{$Wjbp8#Yne{QgiYg+)zcw)0_zJ|BxR*}C^NHz zp^XRhGnHj()GF_T#GUX?QPMgd`wrgE9(-5Df4+&>`Z0advJ>5x86b<^~(tfCz0E7fVu0jUj4g zB0#VpEF7r^njJa}z!zwrYmGhhK?|$9sxt4a^ZC}P4SI3oN7z8I(bGt=rok8>426+U z88xgB70(pZ9MFRkwzXxS=hGl?*k*?=1m=N^N)@_A z>VQuG1uF5NVhdZ@HL0Zl8w!G>`GRJIILwBdeTv-f-nc2d+nchzJ>mhu3O!9_XLnD2 z`jeOBnP)#D&wS$7x^j0DjbIwRNk3oi<6aRa3Fyu zqh*r?M4NOI44R{E#UD_59ytEaw^tlKvHXw~pBZ=9#j^lN5hjC-+=VC&9V4D0DMKe) zwXE?S&ki(RX~u5ugVo^lk*+N`!}d(6kDo(?FAiT62K>yiB>3-`hx9j?b55NSv_%nS zPK9jl4CLu&o{$HxU6zeuheU>2*0kKwm$!ucJa7GOiT${6jQoY?o5<_Md6@{*?qFj>whyR9x#r0R3^D#3c z$Ar$xYucH_3^Aiemtu6{w^uh^h3I=5J&C%REb~=3uyuCeP-w>P3SFenIdOj%t98&g z^*TLGGK7r~Y|(8lT1RRRgJ-Bt^mT_>A2=WpA8hssuE)ulbdyXv<^+vPiB^f;tmF#)$A8pN&zNX-8meZMy6Pk% zX(a!3Fg}cp&IkqYoE=5M%A(0AX$#xj+sfa=Hvm^42h9nEn`x`tstj&YR+I9&^U&%l zj_xUo6}_QSvuwwp4@2H0ZL~Vg{6#k{ZDAww^y^wXI$C*0E)Mnh;l|G^Ha42msN2J7 zYBjKFbTbZsvA{;7Ep}T+@H(nRE?vH&$%RKpa`VFv2wfoe`{?9EUU>0~tRB%lj>l(V zbHFpSv%SNv5#5a%&_!fP0m{1h{s;2yzyF5(=9iz92e02RXD4HgXC*|n<~4Kj2W&$& zM_Zh6Wh6Uv&6Z@SmhJq`pv%@4wiH>HoP}$_NY>q5&UiGkASTp8{YIP`+*cbTQJsMS zpWsmQ5H>M0O5cFot|VNNU#or^X+OPXPc_5B=V=a++hC+@S0xfEg zewWyKtt|Ff1G+kVue7gu?C9h$&%~kH>uY|B-*X&5>-AKgc=CQ3Z6i5vD3`BXk9mDzrg)!zdL`}?gr(`~c!`N9^qa>%ym9Th2Pblz1s9TQ3#!D_QEy|y*7f9Q_l-_ zl8I`&CQ~^*I%G3}xhg2kFmg;h(+Ncf+<3*I2yq_0KJ=uBqD5v4oKrwUPpnjfllKwW_W? zM5?lfRoNqQFIV3dX~%ReC5QRlu;?5Yj!a;sblaM*A4Tc;)V4SZc_G&fX_ua1i9 z(vCf3jfSSNGEs%SX3A(w>7H6>Oz`+N5aZ3w3U<3tNr> zyDhwCYIv&Ccl{u7wuNhPFysb3GM_D^$~CW<8&9O9gf&}WwW=3sJGGwI0!1toa;a98 zOire(i24}xp_7YaZWLFqUZz(TqHpIAFJ`bH*_5CD^cQmNk%#3o&;N!T-aX*Mj!JzF z%k9ZTdK&{7ZH=S@bIdZQpB7#x9dtFl@CPr;o3H(g{O+H=D1)sb2i{oR5CBHDsir1K zBjkq&-$9S&jZu;r^*drk3XK2`2V5I9C)AAqU7+IPYpRtKkBLRWKym9J%orT)R2Erg zX`fN(j9oY2m8&Y#m*HS{mt4)T7ecLWITHsKjA%#NgD z7#daIwFCy1vNeUGLhsBH3-fZ=MrTf1I4#zNOy&!jVwm3T5Q>8r7Yc#ZV$Duk!gSWGbuKOosh|vJ<-<&Ohl?FrRW}g%|?rwxpyPBA#mu{L>bTvQfJ? zwls}cx>k{Atwe*^BF*lchOqX2S$g1PJL6Bln=;a>EIOY`k+$1Uus)$ z9NxtxH*Z2?*Z^7%ygE0C>C@tLM*O)C?77hKJt`u{l2=w`1Yx1lSR0j}vJ`v+<^hEh z9E%J;S9)$n$CCa$k{83ygf6krZz#j240;S)Lv$`;@v&8%b0JaNfvCqMrk!(X4#q1w zsiyW>qH}C2yf4~wJQUc3^bl!Z{2!do_ONA>|&My{CT#L{X0kU z-n%#D%{ShW7r*)iu71_IRQHrQ1M@PB*^q+q$ z+ZPl0^yfbzWtI@-s3|nt*c{6C))q^Zgn};p@0>qb0ia}zN@rMU zMgiU7;UU|2cl-q$2nSg2dYx`dZapZ#=4|XiLQA8dx(|`2{gvE=Fo$VtH8`JIt$EO+ ztBlC%S=jy1wS#+%BV@)+WzJZJ)SRo8QL5P-YpB4{#l%^#>cQcG&jUp^2h)Tsv39%Q z_A1P_M5fQ28!0N_#d0Q(J^6raU)bcoLp+Gr@Aq`h1GH4M*9WvA|sF3+;!H$)J*N*N{t5WwY><74h$o$}% zG8Y3d_>PVbm6~1%ug}?H&OLxb?X)W=ho{W@C}Go|D+4jo`cR@=nO00rJR5T}rwUGngHy-35WGf9J#~qZ92Y~Q7jsS(imnq_^}5a zpPs5Fs3;j9jD280q$5>dFcP0S5_5QzH&7J144ib1?Ix*KpoDNNjN!M7n7-@r># zHhXp42&poyrjt0Fy4uoq&dp~0U~^mesAcED_MOm!o6dn%He`j4@GZ9yNDS`Kfnu*E z=F>&ZfPK?}5VEUlSr#i9FXw!SJ7)b|hC?hh5m{rWu`=6m*92g5iOr>#k&{srzI&S# z;FYUaA~6-tC5Nb}o&YD|p?7L4STpXZ>m8#X+>W{D+>8p%$c`iW=o}o}mBALAS^Ea{ z)$-CyFSC;T#Iv8IO~wBHzKqAGvc0`2Z@=-HZ0+vImwxxFa{Km8cB;&k$a6WO*f64U zm{oJE&k(c~qyCUx$S+@dPk#LU@5)D>dqgf?y~smoWzV!)O*F}Yv=#Zd<=g$;5mDE_1jcT~E zjwH9PrI~FdrgdQeR+5pv%&Cme5lVID1^k6IuENRAIa?mrjgXlJ{g9}gd)F!MQO#!q zogL-}xK7uvKO|e*14hj*XKUHpyvV{1G|HWwZN3I(UT$L_Q`54ft<8P+-7gP6{Fv+? z9LbM=^iw&zdn{R`Zrk|Wglg^iBol~E2n8+Nm+Pe!CmljI6$jk94zS+bQf9SWwiMRF zZUvtS_k0OovbyH;1vm}Yh`K2h40+MWmCaC66C5k;Ixv^ZI%F@B`G#j76mVqHgQT&< z{hN}yoHE^Wz|IHP;p&yEnh^tmaDTw-yFD1u{niD5>=x)&P?8!&Fj20+F$nYCc>_e@%?e+X!vMU@h&0bcTT*7q1N(FG_Rx4Q*OPQa|<><~4 zpQA?}d5EwUD5AYMlDFP?T^@Y+K6&DaC;5HQ=P#%F#F!^#em;=Hk) zFJ!e}U#UM=uft+WyG{uKQp(~nm3VB7$V7#J2yg0j21+4My0q|MkpmOWq-zkcsZ4929wu)ajPH)HySxjcKp3FH1K&N#5scX`^&{IP}blp)-eFeP5syLSMWK0r* z7BV$c^&~H31{1>dTCQHYD33pWT^@VvQLd+3ckb{xMgf_ZOEprZn6by-X>6lrK#@^m ziIQt}R-L5Jc?;n4H3}qBSqCA*<>cg)uZx)(S#;}_^t(N-4|FUbXH@1)3}eQ|6RtkD z{yD=nD);g6G08Z6YA_OZm^d()1A;wtwIWTK#SW;t$T?rkd0^pM(`>P>HM^!(0z)ZU z?0^B8TQNc?4{pGKH~I5thN{%6;Yih<<>G}s*#JEnOC7XYocV>?!uu=^*GTh9o4Ky< z5A1@2DXnVd(yZnz3(w2`;l8Yjm2}fs_HW$aUJMAhJLnKzjx{APvVw!xfo$%xRCYRo^{xk4)oc81HVvPPcX1pz8;`#S7s&Z1)Pz zTOgtY6&5O9Pli(qm7YBXmiT8uno^fn9dAe?p?yfzpoytk=amUM#kj0;lntn@fo)cYBGCVwY2C3nM; zibFPyMJXFOpfW3MX9)Ro(vDIt%r{G+M%CRonIz59@R=4oR8h;QwFsGgaVDwYnyWQzKe2pHf1%8&yG$~S%DiI zaN~Qpu_b8DfLhK@Pnhq0dU7mpzw;&`8Pyade2%^1_r$|Btw?GXWYlEkN|mlGde==f zJBiY+kwNZ4%)Pxm`#zczufAW2^t%I@0j{emYKqp3`<+^hw$fJeHd`Z^~pmA@hoJ-h3ULd-0j@tf}2fL|9RERvx5Ral6M% z1fL5X;cTJsCg|~m1p#yCYZgMx@HYa2?^SWjdDmyXE>j4Fq$4jl`0!kcW)Cgb3L{56 zh!F@kmSKO$g9g`&BY@caws0~XIIavTY+BQ^ zIVo}M8d8Nd$hjU2Wsa_-)06%tDiq}`BV-<-K&f>aUEqKT#8IYkkSgHov3YZ`Dh6At zlbKJGJCHVF8B}lhMk@SLhJl+n3Oj?E4w5d2a<#S}KWZ5gnaQFw@E8t0gX3a}El<14 z4H`@dR7uo>P(2Ns4B&%NXdgKXF;Ap(!oFJ5$#8ge$#huqef8^}byxrZAOJ~3K~$k% zHoi`U@BqY*xMjC)J}y98X}CYBl=?p&%B=wYHfyS>LR4P@m<4bFW)r2cM?8fMp9@%Z z^B^Vx{s@~7IyY1BA`0{H;7pEgAIRR`mRx$^3WsrvMZs(TlYjmfNs?Ng`S?f3C^X)byYAA;_`hv za{20(^pg%LpM_P+Fb34ut_byEbHV=6?IF)wgO!-gF&vT-`rf;ni$?4fqi{f3V`$DWqe%Q2y9kq5v=%^yoqA~ZzU@97*QqwVJZa;>@ zaE!it_mJzDMv8S4CPv~zq}DIRdPO&2{C|W|>FlrIn(vryXueueeP66rWDSldQx-g+ zm3LYW%}P(-Anb-cs+09u9F(>fu<)h_Av7atuugH`DttGRb;!0`((Z-M#n{hm^x#nt z%Cbvao>(r#j>I|Nb?wDTWljsFELT%GIXV<6;n7yeo&5t9L3TQdd{8TtVP>V>2bJ29 z>Mg(+7z{d+f?@`Z2mPW-$z@Hse3_v_uFR~kkm-0vj8$E8HTrgAqfg#H63I}_;)bW) zM7pECY+c$Vs|H6iU<|}PE@^tVV%wzi0#!)HQV=7B^#~KqdI_t3SR=IIAm)3d8VrPr zLl>`!x!^Ihn9^Yq-xXbgGmDfxlX1X}!FC**sIb<7wBoTf7nN_`ZY_a}-c7r-eu%SD zI=xu3UM7RSIvk@qhus73n?2wjck8NXY*^SFMo7a0-#=FPqAHf8J>zHA`AVt3$RIC- zRh{}CsnC!jEzEziNcAx=iZoqF8*;iA%JR>Fe_zhm#Nt((P;k(w29K`vPXi06Z3k_# zU&5InOjHRro25*S7jo^|1M>xGX@h_wSB}W zgv3DrjSdPWL^qqtKD?HAr5js8qzpiA8u*?#uq{o}sk`dDt6hFXlvZa^DC}k&6sskU zXRWCB*}UZk=K6@d5h-S!z*xdsSuR$jw@#-k+1$zGfk$@vov|tE{3T{3jkS&MIG<0< zQCV$#;9^@Nws$@!Tn*?FGZ0)axDlM4jtL>+IWJp|v8A~y#1zHCff}|uCyfpZHaop8 zXQ5;y#))igj0h9a|EkxM89w)7Nf@*y)5uaHVcUVZ6y_9Qo6)MImL;x-&HGBXK{un; z5;KxW*`zV)x;dXa463U*;q@-e{hNM)e30}2pTq3{RQz6-#kW#o6-LFH+TGdKg9U1P zgE~9VdSuWajilcj(pybCS7o1}Q1)4hYm*S`o1zfnOsp~ix7Z%%6kel(lf@IUYgJWK zWHZ-TIusMDOGeb~$?@@6*7I2i8lkjY5hwm#U z{wII-$E>`-s=@%Of}=Cw%R+~!urV)-%CLQrix)35vw3`cCV%&T|0hWYwY>247v$*h zFgTHtj9{2HDr9N7l@?Vyjj^%K(GF~=`7Cx1a9H5k;eQ)!7{$B_YvmAOU3#1hW|u8(fWV#2bOi6jeqjwG>c|o#4X|^(`^Z`k` zzQps-@vKnvYuy`lSUn8$YZD{qq07~u%LpUm(7?L!l8KNZhv!2Q81e-LS4af=G+(I%9=BdS$_S>vYnAgJkdWB^a5UY~FUiv|7O{$QA67MvQvPm~vtS zqrJ6;wa|(|v1k?JH86ob6qy-1R;)-dv{ZAkoELZif!fA^Ln7EEI1b92kg6by7+IwD zBbZ&R*F^~X4>s#@%!-SLa-p3Etxl?j3hM@Ev@u7vLYZ@sIUbD`*Ku(-Ib^nk(UUV; zl4l$)<7e|?Z39;e3W{_Q_{QbbWoZr9sRzhQdMIHLptZ;Sq(QSCFiMBqF=9j-9Dk)X zPZ4COh_dwRO7Z*;Z{C!{!`t%c<5y(w$^~{MYRw(Vtq=F*d*At; zM1A|!cjO(2yj45zU z62ek;m$@mb+v?hKZo~%kb-0hNF(Pb{FR8~`EO9`b($o)K#Be8*oh#d_`ARaGPnT4O zXK9}n>iE(WzFEXGs%;j8^Eo@kUZyrdufO)1eE8u_89~|34Y%O^LP!*hNs~IVA~cqy zE3$WSo2qSSoj{1dbFE!e!C5L^1NR@-6GLWDY@tGTMkLk~2IahVW*i8itv>&S(W2*M zcWHH~&eP~w3UlH2Ya}K}q}HSpHw7jd{!*Wr(dLlr5q@?!cqY@iZscVxi|Im%Kv+*Z zo16y$#F^Xu@_X%FA%1QNs~udUjiI>|EX;4O%e@y3)5d7XIT7R!IrUeAkOksQP1hE& zKnhL?Aqd+%_hKuofGlae?-E+5L<`Q-;}g=o(Q!gTK!`hYGeu)YIeoJh&)8L3n6~;3 zw-h?yiPVvEGFcc^H)hw7kRRXUCIU*^*4Bn)WPsXMv%>(xC4s08u$H>M$;t649XzE) z71eo2Z9`yfoxC0Q%?qyucU$=DlfQ4QlLn)2!scUA>v}eHufwo?#oU3F!ZDFL-9~|d zQy62(X>gGS@EF%+$*9m(h=L{Ux!>i6!kAoiB2^vSWzh_H7CXa}MCU0zK6trNrc13r z`u(7{@xUM$tI^Jy&_pDAfCKxPc`vDWN{73N4UIcGjB6!GwiV{Y?>hsw_Gul-$;VtQ{>7EYAVZso>}eYx+xt8)FxM~GFU8k_;KeA*L4sfQw>F?(+dTo*OJ?*M`Jq5$;f#+v~eYqxb;TJd^lOk2o-k9p7x6X@uct z!QYy@O%X5su?&jLmuAc-Aws#L7OLPn;U>dQbWQyXU=+}Gu_n-spbOf(Jd~@~F0*4; z&1bTLje3;H_;f+ighvZ_r>lma+gyvs2m7+Ow<{m{=+mUa-np|c@4xpUnTpw$z+y;K8ooJ+oIWl%~gLLB9vd;50*8mPTd``S4J|~I~%!=S{tvsH}UR$k-K#h-0 zs0fmM>R-ngqQ>19Il9fa8MI$VveVf={C>F3tQgm879KzT(U0ZYL-)!5@aKQZ zBIDNW+w$QDx1}gz`Qi6}#+1O{{eyoahlh8Jfmhhjwihfaut9{3@KU=xwEVNlT>j?& z{7X65e?$K8FaAIl`Is!3ENvobBO?XyKD2Tj+B8Rr45GA+3Yf9yrr_DqO!z1ap_{1W zI9#j1aGE-dH6EmD{kSvB)6-P|Kf2VI3> zwOAx-VR{N&Tj2AAu1dAL0RnO9@;09%bmf2{7xN{Dw}s7908yz1Npme~o6%r{MM@>s z!)SY3o_^*doEzM}eT#qp%B8EJGmDwwUy`0r!c44QUA(q{;ns82IzW>%91+sOvv%d` zMa$FB>jrn;!=poPZYX+DG2hw0qjMEH3rjeVi>S!iNC;e8K}4!D0_gj+N`u|`96*0oMFqi9n1D6-hF|H623 zJm#~7XB~$v?h)LF*SW%Zs@=*c$o9g;p>GcN=kq{T2+;=4x|Jx*iuo*>uvI5VB9qCK zbah_;qGa|6Ufb7QTnDGmD$GC}(qc#toE@#&fdT`jdHCmYnYZ}m>PbSyE;20gLgwSK z^wU)K*iuGh(O^x%N}`Td9Q1a(iS!3Una&n+cmJ3ln%M)9x0n^}$$JApT|ExVuxEDr zxL5#9RtlY9DB4qqB2qmY7nKJK0dB&kO768`nLfbuVRpx8wzQte)WOwRM@?KT0ScP) z%@%6Q08c0FWQ6S@s&F2XfYf-iyc5VY#SDiv^&1%Qsj3~Ee&3mDqv04rt8dEb@u~dg3(rfp*OC3(cQpne>&e;4T>j>-{#t(hH$Ef3^`$S%o!dvUUKMh5 za7%aVOa^dP#`J?~o59IFM+k_HoFnH=XR9>Y$ zH||KPMMJEjQpq$ULGmEt^Fgm}G^x#+k|6B#E+K9Cn-Ma@sxs>e_mlHLFLyci1VV?w zR;yJ@gA#{Xjvq2=EuV7(gpjX<8^l^^&nkpXIWL$_7u;-I2)SV1NX}t7=Prmw1!Ogw zi{$7&3OWEh{qbvbQ=a3`@`d8zOC?1p#ar`pJfutw{g$NMLQoo8RO>H(@d{aUyPI27 zes6A!WM^+zRoE7n00-(`26}s?Y|k{6$!aF2XD8fCinXBxQp#|9C?}_<9Dr}{?vj19 zkqwxefx$KOF<4(HN>TYApNwU?T9D9z&H&IeD62Ksn8+$u(hQAHZLW&ki*=E!h1eHo5&hOf^J{#-r1*md~7+fyEYy$)yr7|3C$z(idv0p@$j6opS7+T<#LY7^# z(^0#eHMKOLKI2}nUv9;0W9=rMWLhbVyDkgfTZ{{^Zrk35SZ@ULbT}twolzN;bYOWE zW)~9a$qW}>WDkRK3l6gu#wv=7;wFn16*@T37_`);uVBVQCs8&6e4FBmo8c+^=Vvos z;5N0>dYOjxKaEj^46gN3Tf88&$IjOeQuRN)&rFT+8_MOsR{J5(=WkV_wUU zdCiV0SlnATW_T$c5>#E42i_aY%+naX@?h3;bY4x4Rv+w-#d={6h(>C*aHR42k*ZnpZ~&d@%yc3ONJ+5R)YgdYy-^+yUYj`&ADRI|Ub|kI$6U+85TTpCd`PpJhaQ7_YeQL4i+MSIv<8VJq&T=#sLAaqS4(|sI z-5;VjJX82JXL4ms*9XAQ%Vl8$>YUW-{$?Z(KXpwmUB1W}8LE5l@KKqbolXgNptEA4M&zNsx*8MH?t^Z)_IBfL9vu7D(NTH z%|^1CE+tl(S zH{q;IbK)B_RHt^=K}O*)I^5P#6tj!5F2!Arom^l;+B`rOT74;{48AW2LU9EwRFexj zoeFWXl3BWmMTlx90AMYsi80iYNH+|%&WL$aIa9If1+dZC$q6rH+Q|Yo*)U>skti2h zMSPLjAN!yj?Gz}r1+i3XJBNQ>Wm*f8*2($4_%LH zT?QKi6_Bjz91IEKo_sOVCQ)x`D!5_{pi!O zu{)5vcki&}hv(1r>rcoJzW)RGCCHb)@_A}T7=E(}bvlxwh3nXk#P%CcOpKY3X?{f;2Np;|$ezMyywuZsb?FrIkM z>xfNR2^ck9o?ms6?{emCILTGG6F=NkzyqFU$rfu~0JV5kv>{ot|v%Zjr`c zBiaG8PlKe%q$`A-a&5LGAU1S|JquLQJaw)7O8y4THecn^>-0lGt25lGRQUql`37(6 zkXfuiM7%^!=3kfV%TbBk_9Jv4tHp{A09YSqXA?aj);fnlhwNsf(8J)qf&z@|xVf=O zf=E@E5gYnlI0;xfB(yh}xu`y);7khdyR);)ITv!}0dt`{0z}*;T%}%V2m-@_!sj8? zw9;-@=c_SXLXya=nHn3XpiDQ5d3LARui-Lm3ju%6Y2Y-r)poqGUh*l-4)+2O~U3B6q947vgw_1>@Ek%PO(a{nXu zk@|;WGht2~AoH0V?;px!v0`lLlaD`R0HAhTM4PNAf%W{`Z&}0Yx&iWHNeE^|J|VLJkOHefa+S^6p#jNh&D| zJ%~Y}G27nVBmtr{S8A#eP>Bl;xSk9V6FnNr+2mA?PmgIe4>+#FfTkfWcQm&>kulto zu@;anSmqRqmOx3)P9+EQi((6+NC=*nYj$QJ0n|oJaHj^3mvHeY#(8*sWOocUHnm$y zET244vr%|!%}>Ydj(3LJbREXNhZ(R7IlW7sz~2p+hNmE2^Cp2dM?M z5jc2oU@BBmgqY0O4o5MI2Zuf+u!G#=t1!>0%7(rsqQj<`>ChkFODpL{v*Xo?=9H+W z2uzXHbS$TL_hmHPBz;r$2l^RS^SK<}-Iq7td7HDP&wT3B^2j5PvZ{OUz4zp;H(!^2 z){%E!dz+Q+pZ@v3mFfDJ7%wU<=pOXoUaNk`DoC-+8p5xM274VGAIV?-Z~wc*>0EyQ zKm4JbogQ<8z_1pD&uC*)$q|zoD?;GJ-B?|DsZTJXz{;rA_@0~>S!At0J09laepA{7 z>iXb;j(LYfLAXl|kI{V_1Hf8sPppG*O+sY{_F_J_ERU|i3TDA!uW@fq4~;`D?J}w~ z>%UxAECMM=8xCoqv&uDu>C*k1@{v#enq0kbMYdp(VG*zRUK@h}b2C=d1uWI2!mbS< z8_X(k$ZzlL$n&539G}0t2S>8Me-P#dxYl?^8QW_l1c_a*RBm zK7%7|Kfw3L>kmz{;S9>yLhxqvvRm;!VP8~HWFeh?N>-Osw0-`Cus3Yjc)nrPgY|cM zc4jQn$b_LQb|UC9+-nerOy8K3xmg93_B>R$Rw(|unxjtZ9V*eQK)leeREPIqBLO17 z!2!Pm{@is=Fhz~oMgj_|)f0*uf;hI#WNjEQ#7k;Whz|prC)hPS4lMHn56a%&w(RU| zGUFI;jn$2bWfXa)K>riAOJ~3K~y4{JIS)nN|d&ZxyE8S zF^DH6`2qKeOp#7khMSvwPwjwW)r_>RRbY7GAm&C>aUhG%adWG0i!&p9fGAQx2=m!g z4#&4;`@)`l_4j_C9UY=iZ@hO?4iAoKW%Bc%y)4(SKP6xPoLbAyg@Uqj z3GEJ9i7>VVe6(C^w-Kp!zIsU$2t`G>Slgs=M+!glFkR^eh5wI&hh~GP$9jNljO4=3u3Wl!k!F~M3G09~ zpvyz&5v@xOyQ3Bh2*cXC)M(}y8XF=|+8u+20D;JOx>TF`K!8bQYkSk&ClWpn)9D#I zcCFsaP#F0k12)tGj5N#}E1h%l5KodYA4|;D7z+?NN5er+vo%UBwjd~lQ6j!Ot{)tx z@eF{Cg*gbWt)_6QjtABzp!F)LB{iD17C4@j9|WGFNrOsy$Ypb5iymhur(?3vhKy#8 zSVYZ1UC!6+6!0CfH|QRs^Be6slqpM{U8YH!V8`LRfaS`fMl9g2jzTw$;swv)vMM>p z0$m>H1P>}$uDI4hJya@UW07cNA)&yk(F@=~K0%26D(40Od?fB>ObN%A#z_hF>76@A zym3i40SLr}F&&=~yXHW$tV52+(eVj=t*{wFPmRS2Ilac_YUq24)-}N^9C8+~JAz)iSTH{Z;<0agpB0Ea`x z{o$TTQJyO0lWxXV9kwQ2Gf9j}vB7_;ZklGcs6%h9ma*8?syws2c7>GcNbO3{{kg^f z6*zM22g6>dOg$LJIsdRx(FUp!syVc$0?Nt`0O4zk4Ic5pV*#Sl1!Dx5IOhw{sH6!+ zh04ULd60MqTbnIQNXpAn8P5v2dFz;M``+Gw7%w7Azu1v>>^#y%(#zVTYycpHfK)0k0(9qI!_&n*K;Q&E# zu5G^0h|=BwUX;i1+vJFze*0k6)LMe&PvsSSRBd zy`8`agdf_@?k2l%VCZ;VbS18*p&weD$c-B})L*Hp<&~FyZn-w9^w#9jgt4u8oy+nJ zmNW_ztMyz>=o{pmJkrB;c6uZw=A)cb#nRo_md&jTBngPwbYKR8qSX%wF#NDb&@H*j z17wZviqCy%YJP0igm>E}r%i!{P7SjoFtO53W=5MYt*8qr)dzOcU`6Ye^Ys@=;%ztL%Df8kni>5#kvq>vX@!miv@QiEX zX~AbKAyqJa5K#ziQwp9k zjJAvvvLUm{s*E_+L_wx~tty^C-nJ7WKv$72P$1O_&E$THKNti`l8_U%WlQkL!Rh{ivd=JD^}@@+EJrHE=uzva(tNZR7VF> zbY_jCu(^mcWL%M3lxAX>^BVZTvvxa^$njCrnAi~0Rlpcpk@bKZnF^SdsZ%9M!YO+ zK*qXhqU#4dwK0&5QJ;(_{6fKqU$8ytbdg!dky!YO_a`Wbg;W~jR zgTm^<-UZEknU4+gj~gGVG?L!-2D`LOGTFa#i)4$`l0z{^K=A?si{E=(cjm{m4I^tU zobX+9W`=jvh96cVn0cUBAc>)w1G>80jzoS&Rr=@Wl09>yedF~PE$EEI2kStwzOWAX zY$SS6JDUz&H`mol9ktNV9db1J4tCF@7RX23oR$ad<2O;;B+w-rN>1ml^xa$Nlp80F9JyG z<0-ugLMwQvO) z+?L(|agJSD6rUoOxYs3I(#GSR!9wUImUGoJHhQp|kVTNepfOW*`(V&z1@4edp9XL9 z;7$oObZm)bj@?s9sguz4t{a88tBD7jgzqir7$h8Q40GEysgdMJ9{$R8j)`g^ENy_`E(^mckjyK!6}vL-CoR! z^T7x2m&*@6Kz9jjE~t1m2HWxv-~5i$St9@8fBp+uz<_f$r&V~f;A_inUpIqfqvDdv znx^vhTQ}ry{_}s5haP`Op7_M$a&~mYMJ}Sw0lqk#ant^HhXN&%uwnRy?blan+J(*R zG;%<*AO_)Jag1GI%hU`$b+GFP0teP4E2u}2Myj57R`pp6KVw~nwNh8QM$qjPAVvUk zg9Zs2t%Y{4v&ES#=Vx+!c*<_^b1!^U9)9wz=&R@TWpoeJwl> z*l=(-y!G}w++#q&zVH4^9OzD=0pXHRMs2y`b&LvJuNosYu<^UVB!9icPcSe#* zU*?lDKAW(UpD(6d-(czay}+6UCJzRjvnp{7VaZaUP#O$nEeYecp*6zVUl&SBsquUR z&4`qVr_9cxiK{TyBKHp4Oi>^X;WQD&GM>f+DWl5II1QH-}d^z2GPnue5@BO<6u<1fkCV=pG}ed}7^zA*(LKH7%R) zJk+_WCTwg`TA>4}%@#f*c`1X;h&C-b$wz(DH^t6-*H9ewox+7uhY%8S{^tvsPjfDm zd_E6s1vgYlJL+hAcyJ=?Yb(+lv{bBC<;0iQS9`KD=$U9Mlfmk`JbJn%TTh<_PPkXX zOK!3&cH>Z~0C!yC%F5iBGhijMVNn!9c$7_~*sNCPdC)@uFI?u8i&gGo4_M4=CsI9$ zdG-6C6K{n74Hb-;8R|i*e-@jcMtfcT47i{=44}yfg@8>)?3Swk(yS~fqYSt;7V;W1 zy8B`1?#X(!c`(797c7wue9GMT3*+`B~j%6|%%GbZ~hP?UKRUTYf(g~_^i3$xln=d%8z*<~g z?aSurHOAZGdxBlJz5R?vhL}g*zI98+M?;MrE)){YEW@O2j>urW=^Rtxlf+Sns+4xO z#rR^le~*uc=B<}6!?0Ry9;mu!>#)BmC`G*Ocub88Fnb6_*?FP6U+CetBq=ON_toL` z(tpe$VHRL?!O->uR`p&OBMtwrOY_Obn={7R|4FN&Z0TzA3P}R zxSHov4q7(XH{|4aE>9k9%f*+@N^RUUBoeOn+p@X7DlH5QvziqyUikjb5w!yCZriA9 z@pHeJM{R*q?Y8E4K!oVVU_6Mh7|7R;=)r}>MjP*{F#2#2Hkw}&UOD=3i!T;z9-~Jx zZ=nHKi1}58Lj^AYOr|so6xYIn_Qn28X)^#|nW)&tKVyR6|lBuP>p;AsP-(`jrzsW-Op6$r~ z4xCi`GFab~@pLR#uU(QazVRv-_??OX0dO5v&_@_-D?X zwr)D58$m(y#f6+cy}^SVKlAb7iM;d9+w#uW-ew}-!v|Xw!}(_gT!UxO?YH?X7a-wa zA7Hj;79P0RFf&{o^rY8ck^RFxdHC=?huB!dt#*&yG&BuhaRm*G!H7EJr~=%IKU>V^ zG6!48-Us8mJ@6~hHMlf4t%Kc=e$9o$KTXj@$`&o(f& zYKz;Y7aJ^BhT}jZC-lrr`^btwo&QEW+m_Z=k-_#jk??&Wyu`f^Dly@?3NsFEJC=+b z46AdkAWJ$%&S>2+na)}5(OSEexyW5m{8)-3}-6@ZkfQEcWHh*$e#I zpqak+?mN4xuwfR@&g%T(HGIy?j zv%9^0^PYVC@h{|^Z+}%zom-b;K9kHs(v&MtlA|TCf&HYHALcT+l(43xA@FO`aD%sy zXUAIwSvP{cn!lV1su@=1fKtZCC=5it_}0q^lb}@zp%TK^5ks>utD2iRBVbv#Qo;UEYwxz)xpSLy zlyeu)%4@H`Bo{7UknMv*Mh)xb+6`J6=%#w0)6QW5Kcmj8iX)q0ikTIr>{JnNeLOst zGR7bmdsAe*nDe6OwB2-Y#Dm+Nl@U^ge|I}7)?F|!Cy^MWpF&+4SYemC50n?POhM(P zW=5zLu^%cyxaLOFF=t6F>eoR0NjbLzscK~ZwV3ero9(u_3oKq+5cSySjd1Gg{oO&3BVI(v6w1bC04knDwnJyg(_+qDq<)LEea}k_}{n&!r2)V+NG&g z`Be~lv673`exo*<5N}6SNNn74Gqa-&MOB50gfH80NzV*u+D=d~SruW}Mvp2UPLbIs zRLqD#*M#SR!*gLKYVHgyzDLxtRIRhyOa zf;JqHvBT6t9J&_{-YxmfE%9{_EaB_a_Dc^M395PE?${`J2ktDp-1z&lyL&8$heJX( z8=I%)*`qCaw!KR#HlAUpmonWDe{Qg{A;0{GU(4f1Pvwt){9{$-4u=%3CP@^4BtOJ; zR-ryaybL!C1c2CAKIXbcmwUXDapO@A3mfX1UxjcEYE5}FJ=Or~@=gyuBnkkqZ>O9T| ztOaKkNV9zU_$h6R?%ld0H$S~27tddil}?wj#q4tJ89=v`m?N?84Y3FS*C4=Y8Je)Q z{y>Hh%vA~5N;5NO3@kzm+tREL%_m}km@nAP7o}2cN5h%Yf1_pMp^9`>Z&Bn$m|1vN zST{^ZdC+F6^Cvk=;+vNRuWUL_l;52=lXo~=%GUD^e$6-99)2~ zlSjbb`l+?>j`1}?4aPb1^y$-(8G}DhXsgv>0Si;fs*G5e`Q?J=03j~c*V1jeUd})y z3hRy?hG#GN+#^{Mek##$cusunaDzlYC8;k zLV}xodNPsSt$lL8FTZ@Av|e@ziO`3o#X}2}R?VxxuZQ;@%E8WVaE?{6ohqfNosTP4 zLOj@jmn*2F)I)<^@WY@5)Tq&n^u{Dn!$9X!N1_x?u)lKCd^l6Z;RNqMU^!BdATXz` z1FKn+5ITH?gB*iWrArDgE>v?umRS}Kc2Zrl7Q2zb>VOnj+Mo1SbZ&wR+OovmMj!lc zXOP6ST$xG^DlbVn>Y0VjKs$;wG0u2o%KVfwDzvGloY(3s(<@oB$FOhEf_~9ctJ~)!|XV3C7`q|(9tz3BNqI~y< z-zO&?!`9KsgqSVXOVn_@U8W4iHV`c3(XIQkyZy1e@%1lAlEv&Q+>szqJ58kMb2|4F z19<_(KoT0%I!8=TjvyTzYLq2CIo2?4L+dcje>X-Il%GA?-${(;+jm zYm3m;=iy;)ne;n776P|!-jFL-F3S&o|9di;&*aXXhjMZ_lr>U+dt8?wH{bxG7%)xc z_(Ts{`n558C1vM<3wm{9U8+nZ?RMnpqo;DPv&Uz{xZV<;;yIq5) zbykE+guzZUQasXv#h6zld<1JEhs)g?E(%V@Wua`imcc^UkDA%8bHjt(T^XV1Xtjck z&hGA(X(guAdf}4833BHA`4BKhf&{WQkfSml^4&1Mz1IuuMl=CM8F6jFKMR)zvfedO za-s!c*5EnX9IJYa#0qQw#~RqtGrxS@ohmYLzI z12M&r79I#lKGx_%2$vEYBEr{b!MH*QZSrX;X_XMth@$0&5Y=q)te;P2GC3a0xznfR z(uH$8gr}3CQbIFr>k&Z<1_y3ij-ok&cq67LZI2RmIPXymH429E9TW)-QORm28hHRWUEeE>?)XxB~b-QjaQ2eqi z7A3`M5UL#<9?OjnK9);YF3W{07v<=1-!64a3M^F%P}qU(??`nziX%5KU+*pgHPku; zhp?1}-dWD8%ub#24M3C_tm6WwjY*8 zVJLWX#CMc4e*`mzmh{?CKo7~NT;JSe*ivcpD5nbZ;>b1pt+b+7J@V%KMd&P2OQfjb zE#}FH{*K+LmKiNk!oB8RbK2@5&U>iyr9i`Vzb@?{4v!9G|LA~rQ1AuwJqD-ZgX1Hn zcY-K@?+c;f5$2$ip^Rp;U{)DfM8=GonuMNkn3v)MqF_>H+F`Ix!MUW}_&Cftou!5g zMiG~Y=hNECDlc`{8by}mic6!inI@TksS2Z^iNamL?yV}9fl^}p=cQWN)6gJV%eh&p zY_t$|9=LV@Vb}&gosG>6iK>|1SZN#wyKz)m-A>9jyEj;u;n9TArGwSgWkyGohQVvV zcP&Sn>e?u>p;AVClNFH-vDj54npv@OYK?>J(%^)awRT|XFqb6HLnY`Hpeu?sJGc&B zFi~K{WDRCbqQ-cUvLsMBKn#aN2`>!46t7gvi_}_J;;o6%a9gSss z`-vQEZOM2#lGXJ!`X!CVur3+NBA?2IOXq1DgY|a*!2^EXD_5?_)2C15(~oY*SHAis zsp^G{;AC2s<|tZ*q(Ohr`gzpuAJyCKPd}q4*&AQ^BHx?G7sO^-S)1c-b7rCT{}GvM z4o`_$=rmL2ykNnzc9_dy&eXDC`1wk;oQPxdV@p*Sh$?eg+|*%?vV`Sw4mD#lLUk`V z(ul+Sr;^ER%+x=;gWjN))8{fvywqHu-NQrKIou%uVQ1%1W}}*VuFMLy*l=^&xTG5w0CvntbQr#z?e9EL+Q#ZE&GkV$N8e+f6xm{qQo%V6En8?gl7~OzkY>VnD$ItD%9uq7ya)5T zGVi&RXYl^vzD4=wgu;MqAib3`0$Z2(KAvyn#gZ2_Vi2o88~py<&cwu=7AkulJ|1vW z+uF=PISa-NX|99A)E-D!<6t8Z-Vwe>X% zaOx26MEk=8zcM$zbRnGqlav>60wm8c_d2`JXX(lc7R=t>K0TC>tB*nH6hp}ferp51 z%Ud@;BctjI?|eme4|hphR8?-Nne9cqp_U*fbo__QnzE4H=!#nq7ba2QlATT>I>-2&I zx)ZD$>|g9@#8*Q}jeU`lys|(>v$Q~k1u3Q%GlBAW?@0Q+6^#kT0k?=`F;XK@G89-I&zOD3f&COZ*xGm?Eb)clfdAzoaa-f2(ephCN z765&CO+~im@$;CAMKDyYOA%4|Gm1h%1eHDGPbnRSaV9? z2{!2Iye3z}N2CL)`D-O>Ya4`_T1JvlpTg+5Vz7C(MP}fsXhy>KdNLcza5^IXg!NS# z%;il2bud6);9@XW`2|QCxR5a$tW-Fyj*qCw7C7+g%5KYwL#WtVLo6WtzGf;fRpE*g zR9bcl)f0Ad3^FO&FS-GRh34mwL7NO-|2jI>I5UhsM6h0aFkIuI*{@3EgRiswQ% z%8jHNARiL5K8=8iutUWMYX7K-+O!*vceSS+ePH)JyYu8CpWe`rHen4@E z04RguCJHiqT;Sx}45irby#rFk`7_Lw_YX47jZZ$KWy$%A7v$wDm*v{^>)i7Q z2Rq!`XW`Uh=8BkLu%sxK0?R@fk+ludH5W%&nkZ%v&<4@%`1nvx4v+Oxu1edp6_xbt zh!G|>9@#U9mx-!OjkHU_k|N2btJNk3zd2vb!@KdluX`~K?>iKgvCaoD(*p|>un&qV zASR68C9Sr$S!6;#KDc$@-=k5^q7A`R`v?00ZBQ*-WN=%>PRETAF&D(%qC50_7HGvz zior$1Aiuh@XbYWP<7-6{g)7*>_QvLKQX;6rDNqm=h{YksaZKLOvWSzuWu;HF`NI zv4C(m~R&4I2yAhGVj#9*~X+tS7xSR*bN7`(+TvzLg7sZtc#(0tV9Srj#V z@BMpGy;|1+rtrn(igeFICq`OYG-Rt4jMQ+@qtYntKoDbIDcb{f@?CZ?k>#bJion5( zia=Q;!pjCM6GB*~?gfDXLpaWfjG@D4Wu1X4tToS?DRJ{@n0w&wKttje1N@FSnKN1{ zJ+?v?e$sH{EyD#H-eIB)AylaNKF%h>V&wX$NL6_ zpEo0A`0S(%+CX7tZPDEf;jqg-6%M#wi(La5$dG-tHcMeq7kcM@O=~ zwIx?xxx%$}cyOp+XX1d1aRQbqQ@iB%gfrA=zFpz4nqE@9#;+Le!KjQCShO z^gM@Xyfld};L3|w?3@GrncXxHzY?l!8 zEs$6^o=C6Lr@`gvjdhvLNAgd<`n6oU_651}>MOFde?H)XDu}SOnXHT~|U?z3l2D#Lzq-w{4%WBSCBK1AX&Hh6I`>v*K zN@*#Bn*T8m0?#INTQ{iK{(OUjc##JI9+L|Jg<+3{kgmv*Ha#t}P%9DoX6dXJXB>(` z%q3XNp`fT00>ezAu9YF>aRiKy?)3wVT3asB>5WYuV==i!-gFaEbCk z7XJD4vo5A0qamt1O+!-^wn9=muvcz1m{1tt0ndjZtG}wY&KN|JZp*xd5!JC|P56eu z#gRcTlZ8VBeoAl_Mz(mTzd}41ml+OtR**=BliC!;by(nNkAYexi7)&mOR2etn(v?@ zX+UFpftUM+T2fL|!Wm%7=n^UkXQ9i%u?iGn4C-;A;?fv=_+FbdQ%`{8%qEUxe>jxK z54Yv6V^&WIzYT?B7|_Tft~W{7j12` z9e4d@;Q*sUFo7Bed^6tG_fQzNhySirXpjxaf=iYbgGkDcvt5B zoKH3V@!A(J%hl^I$?g+`av|+`Iok&Y!zT*8u1=1}iI4#ih)P8848w%_q@8_|J}FL2dFQ znya=EeiOMss(Op&}^}2j)ObKn9pjwD_(oXWC^J%$Jx8cFoSK*B;2ArCmM_ zayMLLAqo1uAu70RP}$?6@d6i&IK2pFj3uU)qfplfEogK8e38v<9m+)U=(-UXb83;H z8Zv}_!Ln8jHDBy(mtAa5bJWO^X_cjjGd_-V-^XgyR)t}<4~Q%CqW3AjS2#@;RxLhU zOHDyp*$kjk{m5({e5Am*S?%`a@#AN*zjrL1RzFbbq#>a33yQ21heKe`VGw0z3@RTK zAq$;tp&fP{cp_k)28L>9;hl&N7<~Zjha};cbcxye=C2zDigAEjB7Qcn{P1V6C{Rh1 zmd%X|57it#*O@bCIc!3=;eJP;Vlw{LtlPy>5@7=YO$#oC2@UH~+1xmz?3to)e?40) zLVTCBVlv%Y#@BDl`uYZ+8ajs3hRI$H=L=P311iI>ezzYEHD72=_{FU#a1ltA+CoY# zd@Qq^2DP;5b$b5_TjtvGLLpw-M0+<#;$7@R(u&X?vLo)@eIUcxk-Yt-x8=;m^Yqdp z4YPp2@kG{FJ92j8EEvBsJUEn-gJbm)OIvbye8_4EDR_iCE!tB%iJEg8Er7T%sWx96 zjpWuxAIg=h-;lSz`L1klZA(;JM_?DQ=XUtzS=M!^M4cR^CWiW=ibiDZ^DMW>{I2GK z{uzhvx3YD)jK;01BCORVjksLCqg<2yXmOvDIJ?0> zrJEn!kmLO$**J5SkqR7c6ROGhuI7Y^YgW@p+rztWC7EnLeImd4&9B+1;rG7qg)hpr z>#sAn1qBN(0EP@DYOac5Iz9{7N6d-go=w8VTAS%5FId}8fTS^0KRG<&j0F2=LhVF@ z08v)b>kky&$l8q8#yk<1ND?ixZD@OhPSe~0f<3!k%1fxc4wt;IO^4TdPQAAG*yA~; zmklBhQq!WrZU=`v_JkX8qC-;6n7Vyq9io5);mBQlm5950p1=%`_L-n1AI8?^h-SwnFY+5$%zhaVmu&RZBIs*zlWoA~a{+pLJ_<<#gvUi_yG zh|2_YDK8S!tMG@ZOf;wTTvV&`(=3W;|Wj0?( zwWKaHa6c-;-;IKmf_5ChiD7>YDjr=_+2OQ^>9RVviwQVymmW1aTi1<^O+9>w4_C~l zt{bg&#}+ZODN>C>Ma$Y9^mU$r?xI%KmWl^wjltm3oRSN~hOAK4!pyB~RMcw6vS@T+ ze&|((J1ec1hw^N}uMM&U-XnB6aki|sRpq`=YxiK=E+6e=HyW=9f~)Gx_mf{iUp*UuW(}Oo&Hw5$HJt`*?VnWto{LswZ2V zEDy!fY%*L+;~k!FR2Qs=c~qT;sU{l4U{0?x%hZQuJ;HZU9ZSlAZf>hZgpkQ;rj8l0C@J)+NK;G z9LmR^+>qC=T_YU%cR&9}xpU{feC?}Wq`W_U@p=cwxrHN)n!j zm`xHd4=Bg8lxrG_`JJavq)O^=@ZnkEl8VfY7Tq`Kq!}O{sOv{#6<}gLNkoza4m!SX z6kP7M+(0^-7jih$;-$q8i%%=cbp4mSpz$*z?sbH9NXoAIOTl6upHHFWf-$?uT2VG; zNrO8Fd8(> z+5nGKmYo92n6`1dE8?AFWemlN^|Qlix1OuAoN2}*3Y1yrBOy^NQXbOFw%g~Az7rttBjWBbCb!5Y(IM} zJCC_h^4CNu?%9-TDe$Y4|n9YwPf@iphr zrq4x^SPRj}p(OG7vobsVbJgBqyUT=#tn>y_%qpoD#=@#J;DFSzs9pvgIh4`FZT$=5 z5W@_F8?#XB3f^jEWsa6*utJWB_jTE79vu%^J=fvuq|b@2LVFon%*b*uB5Uz#il16( z%Y1D#ajP_Znw)#kep3Q{7J0h}mx4Q5;=pt)vN^b~qh*kkKR9Jy#Rh{Y#;^K^D8Ne$ z=La>f)X(C^jbcWOpyYLXngK5svhSRJ$3xLo>48=@3?S!WQP%OYYN{$#q-w`8XP7@b zMKIN%ezijq|GRHyY`G2H@xQyBb{PKp1>S6Necn_oY7QzMAers$J^AQ2zm@6aALaVn zKawxK{|(vNdcq8RcBa;;E=)L9d)k{-Z>@$8mMVo?VQqWSQk#Xl+m`4cGkR{lKRz3*I>AN=sktX_Ba4k&^Hl*H;2TBW!} zW%Jo{8?wH(MiPhWm0DCp14Bo#fx_YD=bzEf4VUMGho8%P?|oU`efP_J|DS($j}8F% z`)AIak&72E(W4H+wuL#wV*Ra(c|$WCxRK2mDt@ih&XvTv zJFtMJ2644aMC|!0%1T<2Xe6-a;^z+8CY;)IQC6aZz88ECoFiQ0qOdDAdplMu{<7A~ zhGw*88Kkx;x>qsNL<%aHlMY4U62#Xe6UyK@y5qJD(l%lb1L9)g&$GzYD-Y+#geiy% zJ%?fq?1~zhBo1d|-QWyR4Or(n=V;7|uzyo?O4fgzEL8`C$>y`dFEI1KN~57HGrLO( zVJBXly(mQS3q==hrqD>O+>ih&U1x7~$}aX^k$G4%vImG1oZ@U$U+oqw z=X$E9j*C1G!|gz;ja7t6i4%lZMg#Qsf(!vz2PjYhx5U_5iNNY!$1@V(#Cd=+pg-1-yv)p%fNB%Cu9IQ6xQz@g9 zsXV#+Q10HmDV?Mx?|l6o%lbfGiV_5}xKIm+Jg0y(gEJ|ry;?V@GYH)Y6&qA9JUy(* zqKXnzGA9zvTXOgIJ^95i{vQ$9lb`Gt;T*nFI)pq=33KW|{6uz$Z`cL!6t+kAM0N zdGnpi(&@Dn@|>w*>Tq}{$HTGgZtY4zT5cq#)>mY6V@1~228?W7S?x261I)pGrz`hA ze;|hk`?M;-0r}g1z9CPZJe6zLuFBfly4=2ZSB_6k=;956!pi2V^ja;MAB`CU3+)pM zz!`j-a)ov(tHuH4K*WFp36L&qOroqMkM7@>c`*|FHq1>6Q5re|s3H&>vNqTM)DF=J zL~^2}6TEYDofsPxxz01SOVnahq9p~|FZvhhyiQE;fikJ_?JhMG^i#{!Y!L4Q^nTTz zB|NAdl~@@J6gfav$?BTqrk}#x00mTr`Py_&X9}P(oJk<*v5KS##5S@7ag3%|=@%gL>^JpjBG>hth$JqQ1IB~x_ zkeKP1k#nGx>z_B;d}$1~n-yhbn;f?yEH-c>BiIDm1>9=*n$U!31Z2X6hud&xdxt+% z$Eshi%$h6!|DKNTYQVeE=ctV+s970J#%fyvp`aPt;rk&Z1qDF|gX+#e+U>qtYUfIc zQ)^=#S|e8=F}v-s(QDPL5SKNGLGy!LRbBDt#m_&two{DnjzKzT#sm2BfNF=l;)$tK z!Bp$DX__{gp2%PT^?7Ddrlrw=7gmkOyj&drEi4(Z+aIWttsO*+8D`%5ls_Aukq_1Y zL)4aOP?@J!Mw{;SK=Y%GL@TpQi!6w!f{nd3?v@2J?__Cb2aE7k0xQHkQi!0i7!*mbp z4qp#3ux*RDt*BZ~EYJtOX)9_;Ps*phx5DN^nBP>3QVyT&$?Y4r;1ibQARr+@XI zB~8tLh{I+Z0`mY;^>S*ufzmDj40p>g=aAmH>prfTGDnMkiyrd+(tPPPgTM`!7G0x8J!+i1FxX#2FRV6!N-LMB-9MF((Z^ zpO?Jw`W&RU4028g9pQgJxc5jt`j?MrcX9EhO*wb|lH+V>E!T$l`$0DdP%CU7xpeXItnujg|$$K;Y?WDJjK6ruz$#}LsLx7WYzr{zG{e+ z0MbE;SR5I}KKfUA^g0JA81RM|>)K|UV!0RIi8KesFBX{|5s;Z@6k7pvJ#M#PDZkFo zQI$U9>V(-*VHWdPXZ_U`Ikj<$?+~2>Oj6N>@!i3$1zGnCyFG@LmU?kvpyBo5G(YJRl4VT4Acne&>H($IZ0>AcZWm0pz^ zA6|vO-(W=e#o>7e&B03Z7V?*c2iohkcrfAOL0bb2E$oodeIkDu)fF~wO^^Bm!x*yw zcQjvG^WtK=NyTIxXmn6cK z18{gG%c`2tQL2Kt$Q)5CZ{cL=b;JjkL^2tU0>cAQn>Z9sU<$~{(ku*06@E}A783zu z99V$cQcDC}E@Dj~T+)C6DflzN=JQrm-v?w(d6B#HVHK6_k#~;tkE?8D-ZL2Pk{jyM% zFfKw|G(}#7O4C0l{wxBk9^KiNTOWTSWqCu+U3yP`|4)Cy{DXz%LU;tU7eE}C#$2!} zu8QK|vh1Ch!>hFwJ?y>`weFx6eg_MJqU85v6mho`A_q{Yby2XTnY4Os z?WAo#VV1Ct84MUqU~wXX7KWd3W~?S>vuS8nVe1y_8+wR2sO3|Ihf;H^;2Jb1=%`Yg z7!3!D17zywS#vh#a8GK2W9$PA_-Rszxr@hqCxDtV77}W<8fgJ*0b@itY*vE5li8V9 z+qvqO3}P4X*%#Bfl$a-Vx{`B-ve5T|vxgU8A;-rfwTGH7c$VO@r`?dzw{eO4B@%QV zJ_bnQ;6fh6)KuAL62qc~7iJlJ2%kTTlYoW*TCFYKmTR{3AeAV2PL22??iDpm$AaIA zW$FSWM}%b7>&jqlm7X>b+tg_1Yt3T7A$fSXueK(69q7K!I`C<~UL0m4&V`qNZ?_D;$cdt_GDm99N?#34bTRvxVASNaO4H0mlP# zuEM^Zon2X!L;2>nUzM+Y^SlFx3;#-NkWBZSPzFsdp09lp)VDR zvR7VtRX+achWy>%|6H!T{)&98_m1rJQsbJ3$0Mf2CUF{^ z3v{kE;W|RGuJH7N=m+Pogxcfhq!Q}RTgqe(J(Ngf_CisxG0|B_)$kXqjb_e^bzaK& z_(bBRiQCeB(TB%z!<}`>+b%+-RG3j&Nt3t2oNe2|#PHPmnraJlEHA^uAuAN-q?^{H z`A?wBnwr|JKDbG3z>Gt#&HQ4vGUi?7>Pn@=;d^3WxUz<-NZYi8L#39nZ(^$y5-w;A zv)Ec!%c|QSnAvlMhv@$uRR~@OB0-OaLmuYClbMVTP(dj);e2dOPZP3VJZd+xs{Q`TUUM9W^=h5}>Wv z#DkuB;s=GU_nKXbCiGQ0XNy&otB_bh<__6A`Hb@gbUy6p=Tklt*r6W}k7$uU+~1LN zFRjQIzI;^%5cAftOh*$QG^62&-|PJO^IY$MPGZYjM{#lC!UcBk(A^|So0r?p)~?*W zb6fA@hL9~`s$NZe&2_KS95 zrhW2)J-+T^9Dav;dorDjxK}wte9rEsk(_ClziXG=uv3es$mU5d>_ZC}DDGRZADpr4es<;Lqn~Z!!+rD;R%b%@n2)Yj@ga`m!+RPEGJ&=I% zWHz{T7E4aQB!%GN{>>#qFb=l>}0f9u=wt?ztCo^9>Qg9nc}M+8}Bcl%g&_l~%x+sxSSlYt3*ADzhP z@L2ABep_0dj8^nnM?LAJfoN1_3$qOSip}P{B4&pUWQvL%Iw#n{n;N{iXIxg`1?P0C z#TwP~m^t#kQHUjpm6Gd%=E%gs%}&~j9>Ue;4iGmENinfqUM)C(!GW7bdXN$xCrYB( zAFxYdhEiS_+p!yT8HCD-{#256T87qS3gwkcKR%oXZl{9JIx9=*udOhX9Y3?qIW(%8 zS}tg9;QHV;I7TJ+KU)~Q?9}ntE!)dDh$3UtyA_R`ndKNGC9#G?qQW9J61Cakv`)kL z^&Exin!nt@3b6{HIe78|0Bvj%*K~<+yiFM>=1fXKO)N+IW0{;xxtYCCyF?B;R3N<(w z4Jzs@2x9@?#OI7`SSy_Av|0T@tqr^tE%bCT;S)SOJZ8m-pBt}qZ3ThLMDMvVHu zJ6XoOh3)MF+1=h@ZuzU%UX@F)zQSOCFsNFISFNMve zddk=_`eSAAY#2UPUfm_ZA=+mzk2mgejSreTDOvch3wB)5L z=Lm~V#xvR7Ig$BH2fm~UXDL09P)y(=fqO9yB3wof9zKxOHCV8plZOu<%O{_FW-$r5 zT)1>jHcy|H-Ms_OS@1k}5B7-w^t&zT_tX{$UlY$5e{bv2HZwfXjYkj;X0_&rJ2$`} z61Rufu(PhLtqo*-eT6^k!Ttf~s3px;jnopkt|&JAey&4YgGS@V3|HYO%e@sP^(hp`GYGxkz#?wDvAclLMGSget)v7E6iA6|2)u9#+J3@c?E z#Zh9ZV;X`ovx>TI48=5cu%!bm2J&khC~!?YRMl{(6>?QBt+zdSj6qY4*jNVBxWxdg zzzIc>3g4-_C?K85Y#QQz05{ZTfQQ4^t>k?O?ZY;;fzjZds8$m~sPyAlQw`CHI2{SBfj;| zzmvRpfYl~{{L`PvTi?7+PcB`Dk&!c;2D(f$Ow5F?3KkJ{xIANnN16xY@&Ii7xk$eT zBaTPMw9BA22y>UHmW_=Sxp?ustgLLxlSj{FfA@e;2J!JUm90I6`z~C(z{43XyMt~| zhQqPMlF6WVPCotgb1Cwf{P~~%sa(E%Np5^{gPqGOuUuwFji_H*!ualot?u4^z&T1pQ&Y9e@p)#TI-BAf`$uHC&el(z(r&_BW5uk+RjAwzRz%pd(2;>< zM~vRHjBK6zJVdis)C8oep7(mHEfUw6M4bPj=uA`VT8zvf5q}1yclj)o+yiBW{L?`R5 zBqdJQ9GpKlP^a)m*)vS2i=3?#NjFYp4Xlh_M{TI1nk}5tDo2vTge&pMe$zZL3KfLi zWqJT*NWMcr`J96!vW+Gqy>X$!#`mz{`g6JoY+_i2V4|8vq$OhEtJ+%Or>q+rk3Ulc z3zh_y=|IY$UuMCttD-eWZiDUl_=FtoR+btJk#loHlQ2iMnRQKYHw%}N!)yM(d4W}> zj7BHyCiK#PYI&5l-xk& zOzL7nN-YjS%n$HPH&3rfE;E@GdGLLLhIs;2FV-cT3)Tjje}W1Q)o)qJox6AC=0~5% zgS!ZwLQqsoe*71ICaY(Aw2WuPTE&DgJ)zONF51`Q`&nc%Ek|(4St?#x>HqeCqCje} z%at$&l;(7IP}_{k7(eitLZ^EE@@d&TzbYrgL%I3sZ96#2VCjv{MBmd;&Ye4}5LTYc z>e>pw-+%kR|C+&2P?5j&)@$NKB7+G$CDb&ZhD@OUVT(U|)b@693Zx^~|$ zJsxmof!bReGtJqD?DjFV&I=vRFDCRkLv@`-=8|j|GkSV-n;`p?RUKfqCdq`w5d@te z*x-_|8D_blm$T$i&d(3;uH48ySU2r{FHqb4Jxr|wf#?#Sp@U1d6lVCWbXORC;Dc+Q zw*qykn1ep1;VLcx(6TXe#yjBb)>xpG8|9&Zk7DVAQjB1)(U^v_IM<=iDW-ENrVDA~ z;>ag7DFqblL;n{WhUKMS8+%ndGZxl>zm*5C?IH$9IjL*QOo-;>J~Gi4h)Jzf4+v~H z-pX;!Hd}=^+A*+dz`=~cYd)o=cwm`W^la2HhHHEywK!lRS7}73T2u7WwnZ|Umwly> z6Dw;#1F;V6aH;iIdeZK7X!3^EJ%(FwHD#5brJX>x1XRMG-8QVq5{qtD11gwHRk>+a z-xxH{=Q`ZR=c0ieXuB|WOEr&NX|@xi*v6sFbRi{LWYrKT?wVywAF{yIu#Kecsb!Hc zr(t0>@(X?r&?m)kb?*T1_xvJjTH3o!i~8}DjY45*N8+)+{`(Ii}YoB45{}CzNEot}Fm=m5ySmU5kK79OG zKK-ZP$aMZpYB`X>$|d=uKm8M_%CSTR4h_F7mzg$h5a`b>CS})Slr?)tyEC(QdEps5 zNy06291|~@u~P7Trdcg#&i3S$*Iy+Y3l`|GX0Od^M-O5ZwI1y4>s%2Pe5b{#9=RS^ zHyi64^636Uxqt7T2E(nc$o9@Q4J`3&hQ~(?Dr-@Aso_>QC^26`F8ORSr^g*;GPtax zSkH;r5=^5PD9TuaxOhOb21L|bTa(_(K!!)ha(Hl{Gl&3yP8)iBg;Y{ik4H*5 z=iD$b?$lg132p;=9wn9-No6|-E?B!rEuH2>ac~)6ZW<{2=F^9Fh%o^!o;`Mx8WCMP zj$>V#n4<#%tBQq2Yqv5Do*NH`JYOJMtSv^lDver?^FPncrFV(`_*!ft4hoxoFf%;ylV@j!oOEn2X@G- zdK<8nY7*M4=Cp@!sm?;X?Zk+w49+DaeDL$fLVYWOrv*zV`n6vVQ8c?C)yMO^pKt&u=PO9ti>GrmK_Q?&o_0b2CGgEO}UVHm} zdGCi`m+kGxcH#Tb(K-pc&}finpDk$|G6@BViB{7R1(?Mv)zU7NrX#j)YM~Gi7su<@ zH)ut&(p#6EXG3->SYz-AgVqDE&B$B`6e`w&CgkQM z@pE%pT<#O|!2%r`pRYGicVU0e9*xX7G$3Jtj_!oBKRP+IvH&Nc`v)XQ6*|rdb}b|R zyg-x0&QM1#s=5w?b&@~IJV3tB*YVMF>(Nz zn?Jv9+>C?7Zm&gF)=IA>tAiem+Hkv%PsYsf@WTp_MIEeDmWQ3#&58=AGVz|enpTXy zT;vnFih`*z8qWFe*v!IEjl!81DqVI#RU&Qp=a)17T{`1-RrQ**)L9p74_rE^a&uR) zVs-%+VPLPu(Pub6E`?K1wDw?wQ6saM+o9&exsEZW zj4S{lW2&qIhay*sA6kEZ=3#Sp&OC4_l&ZuR;gvq#PRo zu2wiQ(tiVMEv*xECf|Hk%II(^v*B27-+m~kU%DvY{Qmng86C39Bvlcx02CrMI!P-y zVAxnxWGzj`BVyVs1F*3Q4o0c4Z-{0|STLG5V{M~KX7fruzx_;p`}1GRWamIqLC3Kp z-~EFh$oVU0Wq5Qz7hB-}I`pnWAd{vIrbdY_Z8K`(CE{a|FX7c*X_?tB3|mr+mC~t+ zml(|Ea_+*W^w+!6TU(Xcyp-LoJr)k*@j}+uPVoT6VZ#cx)uLA#M0|ilKKtZTHhDdU z7UlAVFJ6_?XEx;E;Do7<&?;eWxPP!G)9IL95@Ly|J-~rQn~t6gdU%$Z-2D8u>>TV% zzcZlH9YsuH2aQ{_IF(e3ghUqeoVDxev!~_UnN!q~!G6BoQO`C&IteRt5I7rupdgN5g4*rLh;|@q6@_Cljz;OA+B&5lQc zV6PRJJUT#I$no*f(zdu%wPw!n{-p(Ta|p}~j#fto%x8~n2-oH?70OUla;SWiMi@)R zwlxhYU|N}&y|F`i-i`Q8KAX$v^e4(+aZN%{QD4fFj00Re$!|kRc(}j>}*6qsr`WpZD{@$J)x@|MDiy; zs_|VIoL0HbgF#>ZEae5}or@W9xH(>rVP?o0F>4p%$W_A@-@jI}T$H8dIz(0tCYDJJ z2(GkY-Ez1t7PNyl{zx7_d?6BS#e?mV}=1sp2YMVa}#i3-7qE~Y0JGkJM!y)_)vcH_x~gXhRHIPG~19r`K$jy zCX10wCo|D45plD}Mke3|P?ljH!VaaOV&}luE(%>0Og0Dv zvCp17ekzmEf;t*n*&w$)0u;LvLYz<-bUKl&t)7xQpFfrlKm1VE)=o!U*l}^u0>4mebB9qQGxqbY-Wif&#Dm)A z0qoVv7Zrh@2cBb9NUxnNne1>?J&(A!)Ulte9!3vl2OU zW}&QJc6ynXK?&~jAUNz!%~~n54#tZLx@sfBxz(}@aGBHO2RbiI%dLsct1w)c4L`%@ znQBWiR8xJvM1ksX!8XrkB`##bb?Cge=6nGrI;575 zS%N_p2GI~>%|{cN98dYb;~JM$o14PzM*O9EWq|*!7lS&Iq8-QPM>rEIAHp350eCKi zQ*(82UD0L%Ei5iVd_7>b97NlD10@)L9~;dL5cxSQBLVM|j=E{9VQg51&*ToH%~Um$`@NUDIH1mIlrq~UTPrmvyFUa3?_wyX5=5=pvkIUGWVFqC3g z$-@WtWo4}^U-`zna&mGgv*}3VO978q3~Xtv9L5QgJtSnrP~jV+s?F%BMVclK*oCIM zxs^|rrOS8IZpo8pJMzn4{*!!m^CMl$av+ypd0qbC&;C&Mc6Ue*rq-qQoN2cSw`}c1 ztvI}30|RglXaPQN@IabPdBLfjwr+GyLDbv^{QKO+Q_@@S$RwYzBENq9n%uknP`0*r zX={)72#O^#;&H&Ktwlnz!=pzJ`Tf_{*HxjOC319pEc=JYRK~w_`LfKWxoq$5FntH? z(h3J%rSBBoHfZr6$((!XoUE>$lE3@gf0U#Bec8a*YsEVM0Lq z)K*Ow(_nQFSPvF-qS23FPk}jN)tK9`gT{GkV@=TLR1Dm&XnR5iS4U~c?I6gB2@Uy6 zitMoTMa@*QGGbdUi%RlI&USOLi0I&pOCGryWmSfu;)F`^*^)XME9-*R45F6d__G}{ z$6{GqJH_YendImyw3AQ_7l~-7&{Ti3%$>mRp?mQ~>55i=-l%$%GAgz(6gL)GhH%vl zzo6!V^ylp<8@fFzR-Cgo`}%OFP}?Z6qSI>hRf9RjOzSYX!`#+N;S_!>7uqW|h6a zb0SY4J(b=F+_RcO18Bsui zMWz|?OIC~K%G9*xK{tSXfNp2T7=(iQo{4D5*)n>B^b&t1??mrAQKa z?Tu>;*82FPPqFOyd7;wB{6Zm%39Mk zJ(K7~&u^|%{XdG^*shl}`MoyoBAAs05!O2SL7 zAd~|yJdy*RqohhmUc{R0aFCx!+KOfM%o<4&FcFjp9h1f((;WbF33LRVjI1-YoL|yq zvqpNL3iV3S^Q~fG1S)gYAOktnOh~#?b45iobX~5jt@7MBJUn25hKm-&0>*K{?gcEf zTE)f4&BrB)IUb4-c*Y^fN*RHX?Ncc7ojzLz=xT{TnBcJ2vp*YKA*_CUdA_jJOFhK# zvtd8s001BWNklk!3Wv+GqSK#uWMl$2Tf{m$`4gqF6FDax;6w2Jp_$ivhIb&H|GchVYRMFZDuO#;5t1Mf0QTtaJ^9Vw|5k2&deh)B90teo@BZlb=s? zF{mV1#7i3q|2H?V+1C)ipPQWpt5NlEi<2l68Rsqxnhd$;-=pM4P$8!dSwi9g>o=(&s zj?i%uoP!;@CUX-J#57|S5)p6?xNCEZuvQx8C+IlH60{RSs_iU4r zA2;%3UYv3G`*H>uyXdMkZ#y%qtZQSV`avFY#xr8R>I+piDpN770eO%14ND6{QJfhq z7X)nDv1F38Z3Z%#$!s*?Egd%&)4w(UXj){1d58UA-hN?GQ&>eca?Ig8AdkpA|C{Mv zHB%O2W`f|w_yL=_9eHD5%xq}0s!z>QI}c+w37^yHeuQdjO-W2T3H7ser4`$JI+7T8 zCp65Xv5byq#6Ro0dd?)#mEl;dySuyO>+?`aV0%8%tm$r#hbpRNu(Px}E&`kdl`%16 z3=vB;R&yqg!*IS>JdrUoiXZbwYCR~O`BqtSTWqn#ByKkHQ-njzjrC$7 zzAK;p^GC9~vj+=BnJk7<)+h4&fBMJryX)u+c32<&oz1~af7A& zjMRsK1xKw^B`3!xG>d%s^>x`i*XN;u3CpERFUhrQuSpW6^3iW@NSE`*6pKPu`zzAT zy0QmB;o(r;`^J0n_Sh#jte`A&e~;A{$`MSOi&R%-{4+oFi=^090R8&113uRG_`=ZRJuSttU0!#KrI ztRn<;N1T@G=R}j&%#{FI8$z1#5|YtWy@;KW2iv%LUTTSPzW85cet30O%ksbb8gPQe zi)+FcH)cem@kI9a_T}Ulxf4e+SYMOx{`()%ZUX``%pTIXlnz)?i3%}&^Pu&|VG+Ya z%Pm!EEt1kqE5wLiWJ)3RfuVn%)l;VkY2NzirhNR{4=9iY#Bu^Bg2kSE;|D*Kzxppf zmMTr;>Gr->ZcYqIHBql{&V8(xh-3N~{4W-@jE{1XPFC02^7b83v++u(7u!d`EyTwW$^E8_DRfXmDfEuc#gVptc^jA7E8II-e|Mu^QEa*X2n=xk; z5CCb+(RhK>Vug@q;H<2wD>W>EVAy!DcOu>1Dk-?M;Wr4ZvM#MOJRbg7IKcsWQ_|Sdpw+;FvdX_QR3o9)iRKTXs>YuIJsqEyV!04WU}qNgf2@X@m`iSK zY)UI@2VXfoD^sH!tMdlub7qN@SyH86tYoagjCQVTftE9v3mMUb1d&=DIoK7NSDzPJ z_?*n?Fn4emvNCDV&N=tS@&eq8>$%NVUSwM}yO3aO;u=6p6m{)b^5wTK{vSoLh+?bo zfw5yTV!`=g=R-iR&UM4Z9H?RObXHd6-1*beX}3&V)6)D1OXE8^I+kDl{8us=OB2`1>6GqNA|Iq}55p`DJNp zQ_OHMoABsKZ;N%{nP~_WD2%z^){fC9mf_$Q^s(A*WLnww2Oa5wmgiplElo{Cm=toj zbud*2nytbZaR}9SA0^K+hzK|Yz{Xnsqxz%7Hl5m@ z7hzVRMT6!$pupOC_Lwu2OD|uRv!^f73ItWNfMR>`WqI?fmt;IEG~eO3P9 z=l>wXgF_x5fS~Y>5uf_4?|y^(@y74|g&s;Tzw#>SyZD7%5WrMVo;;Q-S6=3l|f%tH~Mn*&FeBA&*ig^KI6NgA75~%jY4jBRjKe;DhW_)ZSKxZ zxQgq>ObF9P-cZz#3j|0fGVd$fdzA&*p_oMR#vC7Nl7tj<%wO7U;>c-}4%8pl@5qx!yD~hQ(P4OWGLxf2ShF8UUJRw(spREX*5ti!Uzhj4^OkI$ z@5=((p-R8!bTMV;asKjox&GD{t zA$z;W^4I_MXR@)jDsigDq}0E(te9#T@{y5-p|MkDVikjRP8hT&2o z6_@!g$laj5kag?rkS`NGcQ`j~Qp5;4yi{zSgmotk7X+Wx;QO`HmXz~~1R3o_V?HbF z%k8aaWMx60k<$U9V3CNup3`|kf1a`~EX!YKXC6)M`%S6q3C~LJOq@K_w61BMvF@4Y zqFgXtTiA=0hD%LPhP3c0&2+T1gi3V1aeF!It;`pzxtF3wmXFUt{;j>%{5SPjg`d$& zAu#rbb|CpYs!GMeQOR^WZMLkq)et7+@gmJ(3#(=e5Q6Xsm)Rx z{#$@O;DEY;cuq4+(|^#${{MYlS#uoMbw0h#zF-CzfFLPSq!wG0A}eJ%l`1EBNL3#5 zkYA)9lb1Xtl`6YjaoLI`FN!3~q9jV9NI_h%5CDO}Ho&aio%+6WPtV0jWt3E+Kmar7 zzJ2dG-}#n_a}^%5YBYyo#f~jELd8mIYcS;;;^bn?gG<~4gg@heF&h$8ev^p}wbNoS ztBYukpBnww4k};YVV}#=xihIPaCf4sLO0OP0*si)3->qGb@JM4FUz&7J$dlWSDd4)UtcH8v$eS= z%e^%gNl%_Urg9w53RUAJ^_<$-d@4`3x0z>w!VtFbNum+aHO31h(&={P&9{Cczx&O* z^1&b8mltlnP(+|A#XBnYh51Hh#YkA#h|~5449a$0TD_Vy8!NK4vBM1;0@*2x9_<1- zpOd`kMs&s&7xpDSictuXJ-F20Uu<6qWKI&&&OKJcMJ8#6g=mmOkX&TBw?ebXF*D>7 z>8^CB%K(f7Bm~;D!+xLd8+sWSPijs7Ql=l)q*g6!ENonodbP>Z5yGO9 zv(&(yMB9vNYdX@+lLIQ?ote&1U{Ho38R){;(9tHMTF?qsAsaY^iZ8S&_+fUSy5Gm0 z=xF`%x|rMK?lp0(rfy@Vt#cm9c%m~JZn|QY=!%`9+W@OQivtpyd5C^b%{bgG5 zW3A89`8>cr{1iA;cT9_vxvhdfP!HT8!i^yg9CV`e#Y#1i7j9f9Z~x1?_h`v24(15M z64`Kg&@ja1T!_~3+If>vCfZfI0Q}-0VU>lsk{f)}He)j8eFD7Ef4)cU&mBDnQeJb%hmvL^x$)8!x%1{tsdpk-S}n`#Z{3uuSC^&Tu1Oijp8Tat&e1uiCmIH< z*qA_#y?Xtc{QW=vgPaX795(gz&U0ai9pyVF(<)t6p zk?z{MeEaY*e-4;gSm!9{&^6-qz!U5Fb>kHx0* zU;g*6cmP!_oGqL~js9HCphxT;SN>6OEQUL31Gk@E~y?Ch|L8n|+|T!#z|BclEl%&s$#Z%F6PJ z`t`+;bUF7@&p_zTa0rv}RIM`B`sCo4EGiUM`V0=$#e$@rltsD0zozHV;43L2GeXZR zEO5>mN)(8S&ojcixXu9y2p4qwo$^ov$pU7Qxtmvzo|4UTMy$J8EZBX4r#*}Io&uK= z%fAl;=f9x|#sf5AhA=~1H6^IVmV&_ClHdH#3Dx5pv^%CIk z+Z>W2ZWD(G&NlG-AzqBjN`1qIjX4TlZ*(ytJ_}X}AP#&3{vPjVG#=nQS3}72At|1$ zqTR+j#>VIJf~j>-_?>eS9CGY@FhH!7nbIbKW=fdw4<|Y11?^_X4Q^rjmeb0jl<0xR z-rsFnmIuHMH^>N?1zE%!Say_I(-`C~$i;5BRX*a)g776~$mfeKt-81B#P>lfx`Qw* zJgI6)@Sr-QAsMZOW zVXi|5X?^%PPjlF^iaui&92jJS4VFY@>0Vi*HMtI0Qz_x_0VHvuW|SjpT5DPrBEZ<<3vvlI~MnLweIjK^Mk~(H1c|(p4 zY=xRJ(R?^7@aX+>HkNz#im`$ouqe3DVdH0)5m5G%H?HvjA^Qj$UaF@qD5F+gUs51D zScnw{JcCMQW&)JpebsEp3)j|N^{=!)oQxaad@G-Q@`XgX!bw5+eHddA+Gsck%Q69Q zLjYeT7+#f2Qc2Kt;IOK>f$o%8EX)iowh~7I60|FLSM?fTi4m(6y{S22y(G~L z1s}G-LdWljq3d8YRm?NX3y8?x2e56!OcN3VR85V~TZod0{R)Rr7ZR0weq=spJohpw z%pxIjtgqNDaLi`RWz;VQtZSK#A*`CY`AB+c(fU=6!FPeN^z!*b&3xXp-aT9 zRJ0qy1NOp8*Enzb;^TYJpy@D@EHcf5Aq+}jk{xmRb zWoSu}89isPDY2se{D4%XSD z&@cY$mr{;29>ETdIG*bY{QIO7cNZ+@qM6avK;r}f@0Imya^=Qt+1cHbryCm#_JZo# za?Q~-!NFljZ$2G(TjBz|3M~4X59_|IBfqKF*tq>`t4ypqT9fWi5IDck?Vpn7i6PrLc z^Q@Q_g?{GvfRB;$%&L=K922g>^?>s@*jVQ995|TFr|sIaxG1BzOk|qhOFsJ&xUoRa zjuh)91XcL;AFsWWrqh5*&RJSi%-Dz-bsI|Its)LTv{nZfr`2r9%4$#B(Ihc=;~QWr(MFl^s&`l3pRHASo0Xwi-uGn-PB=zt0c0O*5B zNI^~L2I8o8Xr{+X-VH>-beLFZPvGF98g1-R0fB}*9cx6ag}{&t?KbU2N-F(y024VM zre>=y&83zLc2Th&TmDL|5Z{f)v%>r7;GoanwOT7Xft2yJ)qD>d8ru3GQ^kM4s-sdY zC?fz^8>&@H;HnmN7iI48Odl*uN3@Q^uD_)*`W;A6_*Bia)Tx>UBv-GglGiC-jdU=7 z2-Gl;S|QIW+OM`22YD1l=8E0g5YivKUs^YT7Bkb44l&`(3_V3sjpXH5Zp-7xPvr5& z21Q|7E6r%7CDNI6nS1slhBI?|9cdtDqPh>b^0mBGm|Ekp=UyKH{UiRglh0sPL@paMG#BGB!pJMw(@xnoQzJr@=QFlFTZ2wak$ zLoBR&ow(#wc0Hn%c3@qI$Kd-Rm^^Tf$U4u07u0QE~KASdcywzSeF9N%p;8F4&B z8X>*Kro2B8d11gk9E{{_bk6-VBpY$!T)5+c*%>$!QVoqt9SLR*sae3B-%Z(jx90$_ zt3G1NG=tMP4%sr@Dx$)Kllwst*p?Lob^CdjIyMiDn3GB7uwU`#K%BdA47L@dOg<^_qp1AC} z6~2nOA?6%D>eqy-1Wq+I4~P=kO{fx_I7d>eUh?AM@hf=_(Ouh%D!?|&$aOuyl`*(v z8$Ov9f#3(5eFjsqP(p&9H@7g+_ zhezK&l2Z(xk;{QK?_9NMYzX&+B+_AX7+xwSc$hc~9G8(@%u9V_!|y(VOWKCa*$O!w z#!R!t<4E&^@LuDJI&A}z)C9)7ux1B4t>r%MEET3xQugLYu&dLJ&>8 zk`Pvc1_MZ3T#n@H&%c(>KmD9-qM3Zz$!b-MIb#ZE3o)ysz-YAinmCjy@(s`uR?5Vm z<4F0na0f+2jG?Mk`F?j(P}OjNAZ*6jY7d8_OF6;t1wuFuZZLzti}>xlnaHoAS@AfC+OovIO;715XV zYJ-P6HaiUZ4Yu;zd0U{UB=dZ(SHa*E3)7$x!>Mf+vWOvP3w(LQLGgKbTO|z23JVcr z=*`HiLgYfndU8;pc5dI#TV7;+%olE648Q~LKwI1#Lh}nsl^lSepIMMexmA-l-gr}v z4*K%dy}MGaHt2OGe6UqNgWm&{JRXA4`GxDCoM0{2b&g@}8CCw8cLR8eqBV!LDH*e4o@#Bv^ zk)nt}Qqu!FOr(3duERa@RHaE9foWZu{#al13 z;yoQ`46VimOy%(KR36^HFT>Mwri9YpDoTp14vIiy4V%K6Yc{L0dbPu1;oV=oN4N_` zV&LpbLdUE!uRJLT5%XtT>Ccg}fe6)>bq3O`$&Ht8QizCsAYVpzX0e@tD79J|;& zD`o}-?bYl_@_8I`me0v0{)ew|Fwv-OiUxayZXdyzGXfo3)TX1}s#D{EP6K{egn82$ z_cyq0!;lrKf}QPMz9;yal_K-z%2@0|Q675%Sr%uF|2I;LzoFZJ+d4R(;%l=JA^a8> z&Jj9jpC1B6vE~w67vW{`2Iq@in*TY!>knKW6rM@O|3*4{3{z8B@<~mZXoiOiZlmz4 zvBWm}MU;(Y!?%Nvy{ zQm>a}G8+(n!DfjEYQ|uf`8>$?_#yurm}H>#%R?7{W#S}!4hsjLXV!u122`{tYONAg zWjaDT9ZEStpixPtnnj2y=&9?NsRlfIV6DqIwp6=2{^OEJy~Aq$(1YXa(djCcYpn^ z{Kvolr+oDOpJjA1md!`ovbptGO2GWjPsrylRcmtX>J7q?2uedL-^yx7R#%s#UaqsN zJvi#i*AF)2=x89zy;WJg)+77o{B$5|D=SiM#H61i2PHr%;VhTEz2~yKb0nKj_hsY3 zx70}BaMi*vVYkC94M0vX)l4EO0lvn1tR&LxF3VS6Jd~~P9usyF&vM3seSBXfyGI4g zG*ioYJY!fFV90@BLk1f<^Wj)>uX{h}|qr^;@=o;?I7u<`YZoS@O{dbJZ~0A|nM%ohz>jWN}T|xhDoa+iTeY z~$5a$wMSxszsFfV`Owe@$V(-BFM*rZVDViUuK1YWDd-SEiGlp%!q)~HYbjCNW>jb}O~jBl_cnXOQx$8i6o;hp=0^o<$~Ir$ebWwZ-#t~l zA$M3P-BTB-sU(4DA*sv+iRy}~W`yctBo6nTn=|@ceZSjLF{{o{LdQSP7Y;gqJ!Cjn`%S@vdxq{gt#^%Y{7;bsc#|R|6ItSXYP?J-^U37^~&FMIMt1 zou#C@o(;~)Drz?C3{T6oMb_(qcbuzvBJLM9OB^cOPqyX$m-i*i5_$G?M?U)C|41&Gw2{VyMo`MA2;ldD(O*%_Um zUpUJk#q+`NIzAf8=H_#G{N1+fJl&DO`H4EIBq zZFsWF|NiDrG98V`aI+7CO7&hyF;B2f*Zk8E$^=*B65u@u2dgDnS?&aO)nZo zG{>M^&Hd3(H`~zdpz#I0;%18`3Z6N*%02=og&?E`inQq8QMT!vbGhL!4C0GU?5}(T z&S4|-Jj~|LT%;+iI1DQ_iQc@k`p#rL4)lu^N5l=p4?sJv_QHvay;Ti|&J$Fn4EvC% z63cS0@^5mbgU7oo?7H(Q*O`F3}D}X~PRpRjw5#qXGv#*hwIVc9+HnYHMVquwkrY#bK zyl}%1u7r@CD(HKX%EjcI%(pxZ+`%yB;bd^s(9!v{Js!EvZr<8wE*8|jem0vM-Yp&; z{=H%HS~#yv%GL6v2i0ucjpaoXI2u{bikX)!#QA&4zIRyJ|8s+KCXlj#(O$-I?F-bs z8{H0sZ~CBya{INHrM=XZkKX@4vTQ=}SEwUbr6Y!_JjPGKEDw+cGHoU%28^61m_<3` z8aw;-3rCBF146}_O5#vL#4|dRz*TTn&|^{cCy^YT_6ds(Pe*dNw=V~K`}`iY_nFD{ zo7eds;D)=pw#@m-^TPvaE;UJOZ#Uay8iL@#YaWGidUhd$!I196M@K_>w6P`Mefxwi zycDSd`mL56Wi@w2i&8!r8OszswHX0?MGaFeqjT?rFE`}=7vD&y({g&Fu(#7phG8;Ib%Sj2x~q+L#E1+G(ZNzrtjRK2}9G-yDBxT zry!D}!$S_x>7+cG6rD45Ux9jG*+HPJ&%h1ZrPzP$0JI_tU#~INsmtm~F8xl%(j;Ml zg_E1bVc&o%9S4r{{W1t}k%cBdF!u<8d5E5P!qD6qDCT)q6r%7XjPpD#{96Ds3HkB? zD=CCGsWo#>nrns@iQ_K%4G`z2P5~~wqYGJEUFAZ(m`(T~;~}~joJ%^%T*yyYSOM!H z=xqYt22qH)LKg>#!9J=+M6u$*p5#>HHo*PwRA{-tw7q&nkZCcDG8qmPnc9U1nhBD^er3RgV=byhmimGs%w|f^s31E6jBm7I!HilKTmv<{n{&AF z{S|j$;}C`(1&a)J_t@Nq!^0R;Xx%~duzhF0t4I8+A8l;i}s>lLm8U~^C)_Qc^Jv=;+$ygb18N&=+M-qh& z^33Go>_Ym7aJ)TY9Bi%LV1-|A*3}UicIeZYw2^I(2v-bKC6gu-1J@*qX437p$g;{~ zkxr}4nat>7D7S9klHS@11!z~UuXB?)-0KrI%4WG79QS2^??7KG4`pxnKpsEdlJoN+ zH^Ou_q^LKF%z{OWjTyqr5Vb&PE@l83PzM|`@Rd^?*i5dh_h_~9+1-0mtHmx7+23Gv zR%#w_fs1`6jg|v%y4R68Sz_lBQP)|kSJ{bhmMOWMotq3-N=^r`*#Jr#i z9Cg>svKAcLWSCdMs;hv9+BKVAU zE1p$<&aPES61s1tEJ7zP>KUG5I1usd=`%Pj6yV0jvKU)@jdl3C=EQqOLf)r>*us5V z^FFxmVvhwOD4SlI_Y|Gjg6EZ87kfQR3Jr?ztGp;6L`ZTbjJY;!@Cfqx@mm(cF4NP?NcH0NSoYP8siM9!-T3xU2n^#<|8+*uoN zLlhlG=9ehF87%@}vj93FQ^U-oE7G3>Toor!lvMc8G?$xfPmfOqw53j}4VmSkoQ+jY zPO%#vA{+)$S%R5^CGug>`p>d}w9{(Rl2WTJlN>|6Lxwa-P=U|2%z`NemT5lKP1QMp z((D0w=Q)ootu`By$4bSVxV!?TODj7}JA}v$U>8D{ zLhUACXU|0+c{VFq>S&|!_gEylxKkE4nZzzVru@sl{i|#~*^-OnGbz=} z>Sq$tYLP{tFHX@4MRM+0uI=jXec zYko4|bs3yq@IIl7-s|@j>U@5}^?%eqqfsJYm-F8Pp z<0y8l#}>&el^Se<*5v(<{w#y@v8=S0Np&u{@mJ)WrF}>{bRkhV=yJDqBS)V{=15$w z(k8#M)Zv_=+gYYBT`n>A6GFRT;MV+Tlc}4RHzRR&h|^xl@PqdBJD! zm$Dv#_B14<`712 Date: Mon, 28 Feb 2022 20:39:09 +0800 Subject: [PATCH 026/455] Add juayhee.png --- docs/images/juayhee.png | Bin 0 -> 201166 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/images/juayhee.png diff --git a/docs/images/juayhee.png b/docs/images/juayhee.png new file mode 100644 index 0000000000000000000000000000000000000000..43d58ffb25ead3fe8d6ddc8195c4bafbb0fa0b0a GIT binary patch literal 201166 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½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 z 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 Date: Mon, 28 Feb 2022 20:40:07 +0800 Subject: [PATCH 027/455] Update AboutUs filepath for Juay Hee's picture --- docs/AboutUs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 29010cd7ebf..16de0744e35 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -21,7 +21,7 @@ You can reach us at the email `seer[at]comp.nus.edu.sg` ### Tan Juay Hee - + [[github](http://github.com/juayhee)] [[portfolio](team/juayhee.md)] From 5b1df018c857963c1f0a85f9bdd32f8858e7edf4 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 2 Mar 2022 03:07:31 +0800 Subject: [PATCH 028/455] Amend FindCommand to support find by tag FindCommand is amended to extend the current functionality of the find command - allowing users to also find by tags. Add TagContainsKeywordsPredicate and TagContainsKeywordsPredicateTest to support the extension of the current functionality. Amend the following classes: FindCommand, FindCommandParser to include the use of TagContainsKeywordPredicate. Amend other dependent classes to accommodate the amendments. --- .../address/logic/commands/FindCommand.java | 33 +++++--- .../logic/parser/FindCommandParser.java | 28 ++++++- .../address/logic/parser/ParserUtil.java | 14 ++++ .../person/NameContainsKeywordsPredicate.java | 6 +- .../tag/TagContainsKeywordsPredicate.java | 33 ++++++++ .../logic/commands/CommandTestUtil.java | 3 +- .../logic/commands/FindCommandTest.java | 61 ++++++++++----- .../logic/parser/AddressBookParserTest.java | 13 +++- .../logic/parser/FindCommandParserTest.java | 13 +++- .../address/logic/parser/ParserUtilTest.java | 30 +++++-- .../seedu/address/model/ModelManagerTest.java | 4 +- .../NameContainsKeywordsPredicateTest.java | 20 ++--- .../tag/TagContainsKeywordsPredicateTest.java | 78 +++++++++++++++++++ 13 files changed, 276 insertions(+), 60 deletions(-) create mode 100644 src/main/java/seedu/address/model/tag/TagContainsKeywordsPredicate.java create mode 100644 src/test/java/seedu/address/model/tag/TagContainsKeywordsPredicateTest.java diff --git a/src/main/java/seedu/address/logic/commands/FindCommand.java b/src/main/java/seedu/address/logic/commands/FindCommand.java index d6b19b0a0de..6834c704d02 100644 --- a/src/main/java/seedu/address/logic/commands/FindCommand.java +++ b/src/main/java/seedu/address/logic/commands/FindCommand.java @@ -1,10 +1,13 @@ package seedu.address.logic.commands; import static java.util.Objects.requireNonNull; +import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; +import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; import seedu.address.commons.core.Messages; import seedu.address.model.Model; import seedu.address.model.person.NameContainsKeywordsPredicate; +import seedu.address.model.tag.TagContainsKeywordsPredicate; /** * Finds and lists all persons in address book whose name contains any of the argument keywords. @@ -14,21 +17,30 @@ public class FindCommand extends Command { public static final String COMMAND_WORD = "find"; - public static final String MESSAGE_USAGE = COMMAND_WORD + ": Finds all persons whose names contain any of " + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Finds all persons whose names or tags contain any of " + "the specified keywords (case-insensitive) and displays them as a list with index numbers.\n" - + "Parameters: KEYWORD [MORE_KEYWORDS]...\n" - + "Example: " + COMMAND_WORD + " alice bob charlie"; - - private final NameContainsKeywordsPredicate predicate; - - public FindCommand(NameContainsKeywordsPredicate predicate) { - this.predicate = predicate; + + "Parameters: " + + "[" + PREFIX_NAME + "NAME]... " + + "[" + PREFIX_TAG + "TAG]...\n" + + "Example: " + COMMAND_WORD + " " + PREFIX_NAME + "Alex " + PREFIX_NAME + "Charlotte " + + PREFIX_TAG + "friends"; + + private final NameContainsKeywordsPredicate namePredicate; + private final TagContainsKeywordsPredicate tagPredicate; + + /** + * Initialises new object using {@code namePredicate} and {@code tagPredicate} + */ + public FindCommand(NameContainsKeywordsPredicate namePredicate, TagContainsKeywordsPredicate tagPredicate) { + this.namePredicate = namePredicate; + this.tagPredicate = tagPredicate; } @Override public CommandResult execute(Model model) { requireNonNull(model); - model.updateFilteredPersonList(predicate); + model.updateFilteredPersonList(namePredicate.or(tagPredicate)); return new CommandResult( String.format(Messages.MESSAGE_PERSONS_LISTED_OVERVIEW, model.getFilteredPersonList().size())); } @@ -37,6 +49,7 @@ public CommandResult execute(Model model) { public boolean equals(Object other) { return other == this // short circuit if same object || (other instanceof FindCommand // instanceof handles nulls - && predicate.equals(((FindCommand) other).predicate)); // state check + && namePredicate.equals(((FindCommand) other).namePredicate) + && tagPredicate.equals(((FindCommand) other).tagPredicate)); // state check } } diff --git a/src/main/java/seedu/address/logic/parser/FindCommandParser.java b/src/main/java/seedu/address/logic/parser/FindCommandParser.java index 4fb71f23103..ce49527f774 100644 --- a/src/main/java/seedu/address/logic/parser/FindCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/FindCommandParser.java @@ -1,12 +1,19 @@ package seedu.address.logic.parser; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; +import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; -import java.util.Arrays; +import java.util.List; +import java.util.Set; +import java.util.stream.Stream; import seedu.address.logic.commands.FindCommand; import seedu.address.logic.parser.exceptions.ParseException; +import seedu.address.model.person.Name; import seedu.address.model.person.NameContainsKeywordsPredicate; +import seedu.address.model.tag.Tag; +import seedu.address.model.tag.TagContainsKeywordsPredicate; /** * Parses input arguments and creates a new FindCommand object @@ -20,14 +27,27 @@ public class FindCommandParser implements Parser { */ public FindCommand parse(String args) throws ParseException { String trimmedArgs = args.trim(); - if (trimmedArgs.isEmpty()) { + ArgumentMultimap argMultimap = + ArgumentTokenizer.tokenize(args, PREFIX_NAME, PREFIX_TAG); + + if ((!arePrefixesPresent(argMultimap, PREFIX_NAME) && !arePrefixesPresent(argMultimap, PREFIX_TAG)) + || trimmedArgs.isEmpty()) { throw new ParseException( String.format(MESSAGE_INVALID_COMMAND_FORMAT, FindCommand.MESSAGE_USAGE)); } - String[] nameKeywords = trimmedArgs.split("\\s+"); + List nameKeywords = ParserUtil.parseNames(argMultimap.getAllValues(PREFIX_NAME)); + Set tagKeywords = ParserUtil.parseTags(argMultimap.getAllValues(PREFIX_TAG)); - return new FindCommand(new NameContainsKeywordsPredicate(Arrays.asList(nameKeywords))); + return new FindCommand(new NameContainsKeywordsPredicate(nameKeywords), + new TagContainsKeywordsPredicate(tagKeywords)); } + /** + * Returns true if none of the prefixes contains empty {@code Optional} values in the given + * {@code ArgumentMultimap}. + */ + private static boolean arePrefixesPresent(ArgumentMultimap argumentMultimap, Prefix... prefixes) { + return Stream.of(prefixes).allMatch(prefix -> argumentMultimap.getValue(prefix).isPresent()); + } } diff --git a/src/main/java/seedu/address/logic/parser/ParserUtil.java b/src/main/java/seedu/address/logic/parser/ParserUtil.java index b117acb9c55..8b8233902bd 100644 --- a/src/main/java/seedu/address/logic/parser/ParserUtil.java +++ b/src/main/java/seedu/address/logic/parser/ParserUtil.java @@ -2,8 +2,10 @@ import static java.util.Objects.requireNonNull; +import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; +import java.util.List; import java.util.Set; import seedu.address.commons.core.index.Index; @@ -50,6 +52,18 @@ public static Name parseName(String name) throws ParseException { return new Name(trimmedName); } + /** + * Parses {@code Collection names} into a {@code List}. + */ + public static List parseNames(Collection names) throws ParseException { + requireNonNull(names); + final List nameList = new ArrayList<>(); + for (String name : names) { + nameList.add(parseName(name)); + } + return nameList; + } + /** * Parses a {@code String phone} into a {@code Phone}. * Leading and trailing whitespaces will be trimmed. diff --git a/src/main/java/seedu/address/model/person/NameContainsKeywordsPredicate.java b/src/main/java/seedu/address/model/person/NameContainsKeywordsPredicate.java index c9b5868427c..b5775069c49 100644 --- a/src/main/java/seedu/address/model/person/NameContainsKeywordsPredicate.java +++ b/src/main/java/seedu/address/model/person/NameContainsKeywordsPredicate.java @@ -9,16 +9,16 @@ * Tests that a {@code Person}'s {@code Name} matches any of the keywords given. */ public class NameContainsKeywordsPredicate implements Predicate { - private final List keywords; + private final List keywords; - public NameContainsKeywordsPredicate(List keywords) { + public NameContainsKeywordsPredicate(List keywords) { this.keywords = keywords; } @Override public boolean test(Person person) { return keywords.stream() - .anyMatch(keyword -> StringUtil.containsWordIgnoreCase(person.getName().fullName, keyword)); + .anyMatch(keyword -> StringUtil.containsWordIgnoreCase(person.getName().fullName, keyword.fullName)); } @Override diff --git a/src/main/java/seedu/address/model/tag/TagContainsKeywordsPredicate.java b/src/main/java/seedu/address/model/tag/TagContainsKeywordsPredicate.java new file mode 100644 index 00000000000..4b43c1d2d86 --- /dev/null +++ b/src/main/java/seedu/address/model/tag/TagContainsKeywordsPredicate.java @@ -0,0 +1,33 @@ +package seedu.address.model.tag; + +import java.util.Set; +import java.util.function.Predicate; + +import seedu.address.commons.util.StringUtil; +import seedu.address.model.person.Person; + +/** + * Tests that a {@code Person}'s {@code Name} matches any of the keywords given. + */ +public class TagContainsKeywordsPredicate implements Predicate { + private final Set keywords; + + public TagContainsKeywordsPredicate(Set keywords) { + this.keywords = keywords; + } + + @Override + public boolean test(Person person) { + return keywords.stream() + .anyMatch(keyword -> person.getTags().stream() + .anyMatch(tag -> StringUtil.containsWordIgnoreCase(tag.tagName, keyword.tagName))); + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof TagContainsKeywordsPredicate // instanceof handles nulls + && keywords.equals(((TagContainsKeywordsPredicate) other).keywords)); // state check + } + +} diff --git a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java b/src/test/java/seedu/address/logic/commands/CommandTestUtil.java index 643a1d08069..73696b940f1 100644 --- a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java +++ b/src/test/java/seedu/address/logic/commands/CommandTestUtil.java @@ -17,6 +17,7 @@ import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.AddressBook; import seedu.address.model.Model; +import seedu.address.model.person.Name; import seedu.address.model.person.NameContainsKeywordsPredicate; import seedu.address.model.person.Person; import seedu.address.testutil.EditPersonDescriptorBuilder; @@ -120,7 +121,7 @@ public static void showPersonAtIndex(Model model, Index targetIndex) { Person person = model.getFilteredPersonList().get(targetIndex.getZeroBased()); final String[] splitName = person.getName().fullName.split("\\s+"); - model.updateFilteredPersonList(new NameContainsKeywordsPredicate(Arrays.asList(splitName[0]))); + model.updateFilteredPersonList(new NameContainsKeywordsPredicate(Arrays.asList(new Name(splitName[0])))); assertEquals(1, model.getFilteredPersonList().size()); } diff --git a/src/test/java/seedu/address/logic/commands/FindCommandTest.java b/src/test/java/seedu/address/logic/commands/FindCommandTest.java index 9b15db28bbb..c2f13d78054 100644 --- a/src/test/java/seedu/address/logic/commands/FindCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/FindCommandTest.java @@ -5,20 +5,25 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import static seedu.address.commons.core.Messages.MESSAGE_PERSONS_LISTED_OVERVIEW; import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; -import static seedu.address.testutil.TypicalPersons.CARL; -import static seedu.address.testutil.TypicalPersons.ELLE; -import static seedu.address.testutil.TypicalPersons.FIONA; +import static seedu.address.testutil.TypicalPersons.ALICE; +import static seedu.address.testutil.TypicalPersons.BENSON; +import static seedu.address.testutil.TypicalPersons.DANIEL; import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; import java.util.Arrays; import java.util.Collections; +import java.util.HashSet; +import java.util.List; import org.junit.jupiter.api.Test; import seedu.address.model.Model; import seedu.address.model.ModelManager; import seedu.address.model.UserPrefs; +import seedu.address.model.person.Name; import seedu.address.model.person.NameContainsKeywordsPredicate; +import seedu.address.model.tag.Tag; +import seedu.address.model.tag.TagContainsKeywordsPredicate; /** * Contains integration tests (interaction with the Model) for {@code FindCommand}. @@ -30,18 +35,22 @@ public class FindCommandTest { @Test public void equals() { NameContainsKeywordsPredicate firstPredicate = - new NameContainsKeywordsPredicate(Collections.singletonList("first")); + new NameContainsKeywordsPredicate(Collections.singletonList(new Name("first"))); NameContainsKeywordsPredicate secondPredicate = - new NameContainsKeywordsPredicate(Collections.singletonList("second")); + new NameContainsKeywordsPredicate(Collections.singletonList(new Name("second"))); + TagContainsKeywordsPredicate thirdPredicate = + new TagContainsKeywordsPredicate(Collections.singleton(new Tag("third"))); + TagContainsKeywordsPredicate fourthPredicate = + new TagContainsKeywordsPredicate(Collections.singleton(new Tag("fourth"))); - FindCommand findFirstCommand = new FindCommand(firstPredicate); - FindCommand findSecondCommand = new FindCommand(secondPredicate); + FindCommand findFirstCommand = new FindCommand(firstPredicate, thirdPredicate); + FindCommand findSecondCommand = new FindCommand(secondPredicate, fourthPredicate); // same object -> returns true assertTrue(findFirstCommand.equals(findFirstCommand)); // same values -> returns true - FindCommand findFirstCommandCopy = new FindCommand(firstPredicate); + FindCommand findFirstCommandCopy = new FindCommand(firstPredicate, thirdPredicate); assertTrue(findFirstCommand.equals(findFirstCommandCopy)); // different types -> returns false @@ -55,29 +64,41 @@ public void equals() { } @Test - public void execute_zeroKeywords_noPersonFound() { + public void execute_zeroKeywords_noPersonAndTagFound() { + List nameList = Arrays.asList(); + HashSet tagSet = new HashSet<>(); String expectedMessage = String.format(MESSAGE_PERSONS_LISTED_OVERVIEW, 0); - NameContainsKeywordsPredicate predicate = preparePredicate(" "); - FindCommand command = new FindCommand(predicate); - expectedModel.updateFilteredPersonList(predicate); + NameContainsKeywordsPredicate namePredicate = prepareNamePredicate(nameList); + TagContainsKeywordsPredicate tagPredicate = prepareTagPredicate(tagSet); + FindCommand command = new FindCommand(namePredicate, tagPredicate); + expectedModel.updateFilteredPersonList(namePredicate.or(tagPredicate)); assertCommandSuccess(command, model, expectedMessage, expectedModel); assertEquals(Collections.emptyList(), model.getFilteredPersonList()); } @Test - public void execute_multipleKeywords_multiplePersonsFound() { + public void execute_multipleKeywords_multiplePersonsAndTagsFound() { + List nameList = Arrays.asList(new Name("Alice"), new Name("Bob")); + HashSet tagSet = new HashSet(Arrays.asList(new Tag("friends"), new Tag("neighbours"))); String expectedMessage = String.format(MESSAGE_PERSONS_LISTED_OVERVIEW, 3); - NameContainsKeywordsPredicate predicate = preparePredicate("Kurz Elle Kunz"); - FindCommand command = new FindCommand(predicate); - expectedModel.updateFilteredPersonList(predicate); + NameContainsKeywordsPredicate namePredicate = prepareNamePredicate(nameList); + TagContainsKeywordsPredicate tagPredicate = prepareTagPredicate(tagSet); + FindCommand command = new FindCommand(namePredicate, tagPredicate); + expectedModel.updateFilteredPersonList(namePredicate.or(tagPredicate)); assertCommandSuccess(command, model, expectedMessage, expectedModel); - assertEquals(Arrays.asList(CARL, ELLE, FIONA), model.getFilteredPersonList()); + assertEquals(Arrays.asList(ALICE, BENSON, DANIEL), model.getFilteredPersonList()); } /** - * Parses {@code userInput} into a {@code NameContainsKeywordsPredicate}. + * Creates a {@code NameContainsKeywordsPredicate} using {@code nameList}. */ - private NameContainsKeywordsPredicate preparePredicate(String userInput) { - return new NameContainsKeywordsPredicate(Arrays.asList(userInput.split("\\s+"))); + private NameContainsKeywordsPredicate prepareNamePredicate(List nameList) { + return new NameContainsKeywordsPredicate(nameList); + } + /** + * Creates a {@code TagContainsKeywordsPredicate} using {@code tagSet}. + */ + private TagContainsKeywordsPredicate prepareTagPredicate(HashSet tagSet) { + return new TagContainsKeywordsPredicate(tagSet); } } diff --git a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java index d9659205b57..2808d53d667 100644 --- a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java +++ b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java @@ -8,8 +8,8 @@ import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; import java.util.Arrays; +import java.util.HashSet; import java.util.List; -import java.util.stream.Collectors; import org.junit.jupiter.api.Test; @@ -23,8 +23,11 @@ import seedu.address.logic.commands.HelpCommand; import seedu.address.logic.commands.ListCommand; import seedu.address.logic.parser.exceptions.ParseException; +import seedu.address.model.person.Name; import seedu.address.model.person.NameContainsKeywordsPredicate; import seedu.address.model.person.Person; +import seedu.address.model.tag.Tag; +import seedu.address.model.tag.TagContainsKeywordsPredicate; import seedu.address.testutil.EditPersonDescriptorBuilder; import seedu.address.testutil.PersonBuilder; import seedu.address.testutil.PersonUtil; @@ -70,10 +73,12 @@ public void parseCommand_exit() throws Exception { @Test public void parseCommand_find() throws Exception { - List keywords = Arrays.asList("foo", "bar", "baz"); + List nameList = Arrays.asList(new Name("foo"), new Name("bar"), new Name("baz")); + HashSet tagSet = new HashSet(Arrays.asList(new Tag("friends"), new Tag("colleagues"))); FindCommand command = (FindCommand) parser.parseCommand( - FindCommand.COMMAND_WORD + " " + keywords.stream().collect(Collectors.joining(" "))); - assertEquals(new FindCommand(new NameContainsKeywordsPredicate(keywords)), command); + FindCommand.COMMAND_WORD + " " + "n/foo n/bar n/baz t/friends t/colleagues"); + assertEquals(new FindCommand(new NameContainsKeywordsPredicate(nameList), + new TagContainsKeywordsPredicate(tagSet)), command); } @Test diff --git a/src/test/java/seedu/address/logic/parser/FindCommandParserTest.java b/src/test/java/seedu/address/logic/parser/FindCommandParserTest.java index 70f4f0e79c4..b717c7e2b4b 100644 --- a/src/test/java/seedu/address/logic/parser/FindCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/FindCommandParserTest.java @@ -5,11 +5,16 @@ import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; import java.util.Arrays; +import java.util.HashSet; +import java.util.List; import org.junit.jupiter.api.Test; import seedu.address.logic.commands.FindCommand; +import seedu.address.model.person.Name; import seedu.address.model.person.NameContainsKeywordsPredicate; +import seedu.address.model.tag.Tag; +import seedu.address.model.tag.TagContainsKeywordsPredicate; public class FindCommandParserTest { @@ -22,13 +27,15 @@ public void parse_emptyArg_throwsParseException() { @Test public void parse_validArgs_returnsFindCommand() { + List nameList = Arrays.asList(new Name("Alex"), new Name("Bob")); + HashSet tagSet = new HashSet<>(Arrays.asList(new Tag("friends"), new Tag("neighbours"))); // no leading and trailing whitespaces FindCommand expectedFindCommand = - new FindCommand(new NameContainsKeywordsPredicate(Arrays.asList("Alice", "Bob"))); - assertParseSuccess(parser, "Alice Bob", expectedFindCommand); + new FindCommand(new NameContainsKeywordsPredicate(nameList), new TagContainsKeywordsPredicate(tagSet)); + assertParseSuccess(parser, " n/Alex n/Bob t/friends t/neighbours", expectedFindCommand); // multiple whitespaces between keywords - assertParseSuccess(parser, " \n Alice \n \t Bob \t", expectedFindCommand); + assertParseSuccess(parser, " n/Alex n/Bob t/friends t/neighbours ", expectedFindCommand); } } diff --git a/src/test/java/seedu/address/logic/parser/ParserUtilTest.java b/src/test/java/seedu/address/logic/parser/ParserUtilTest.java index 4256788b1a7..dd8e3384369 100644 --- a/src/test/java/seedu/address/logic/parser/ParserUtilTest.java +++ b/src/test/java/seedu/address/logic/parser/ParserUtilTest.java @@ -9,6 +9,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.HashSet; +import java.util.List; import java.util.Set; import org.junit.jupiter.api.Test; @@ -27,7 +28,8 @@ public class ParserUtilTest { private static final String INVALID_EMAIL = "example.com"; private static final String INVALID_TAG = "#friend"; - private static final String VALID_NAME = "Rachel Walker"; + private static final String VALID_NAME_1 = "Alex Yeoh"; + private static final String VALID_NAME_2 = "Rachel Walker"; private static final String VALID_PHONE = "123456"; private static final String VALID_ADDRESS = "123 Main Street #0505"; private static final String VALID_EMAIL = "rachel@example.com"; @@ -68,17 +70,35 @@ public void parseName_invalidValue_throwsParseException() { @Test public void parseName_validValueWithoutWhitespace_returnsName() throws Exception { - Name expectedName = new Name(VALID_NAME); - assertEquals(expectedName, ParserUtil.parseName(VALID_NAME)); + Name expectedName = new Name(VALID_NAME_1); + assertEquals(expectedName, ParserUtil.parseName(VALID_NAME_1)); } @Test public void parseName_validValueWithWhitespace_returnsTrimmedName() throws Exception { - String nameWithWhitespace = WHITESPACE + VALID_NAME + WHITESPACE; - Name expectedName = new Name(VALID_NAME); + String nameWithWhitespace = WHITESPACE + VALID_NAME_1 + WHITESPACE; + Name expectedName = new Name(VALID_NAME_1); assertEquals(expectedName, ParserUtil.parseName(nameWithWhitespace)); } + @Test + public void parseNames_collectionWithInvalidNames_throwsParseException() { + assertThrows(ParseException.class, () -> ParserUtil.parseNames(Arrays.asList(VALID_NAME_1, INVALID_NAME))); + } + + @Test + public void parseNames_emptyCollection_returnsEmptySet() throws Exception { + assertTrue(ParserUtil.parseNames(Collections.emptyList()).isEmpty()); + } + + @Test + public void parseNames_collectionWithValidNames_returnsNameList() throws Exception { + List actualNameList = ParserUtil.parseNames(Arrays.asList(VALID_NAME_1, VALID_NAME_2)); + List expectedNameList = Arrays.asList(new Name(VALID_NAME_1), new Name(VALID_NAME_2)); + + assertEquals(expectedNameList, actualNameList); + } + @Test public void parsePhone_null_throwsNullPointerException() { assertThrows(NullPointerException.class, () -> ParserUtil.parsePhone((String) null)); diff --git a/src/test/java/seedu/address/model/ModelManagerTest.java b/src/test/java/seedu/address/model/ModelManagerTest.java index 2cf1418d116..a1be45449c6 100644 --- a/src/test/java/seedu/address/model/ModelManagerTest.java +++ b/src/test/java/seedu/address/model/ModelManagerTest.java @@ -15,6 +15,7 @@ import org.junit.jupiter.api.Test; import seedu.address.commons.core.GuiSettings; +import seedu.address.model.person.Name; import seedu.address.model.person.NameContainsKeywordsPredicate; import seedu.address.testutil.AddressBookBuilder; @@ -118,7 +119,8 @@ public void equals() { // different filteredList -> returns false String[] keywords = ALICE.getName().fullName.split("\\s+"); - modelManager.updateFilteredPersonList(new NameContainsKeywordsPredicate(Arrays.asList(keywords))); + + modelManager.updateFilteredPersonList(new NameContainsKeywordsPredicate(Arrays.asList(new Name(keywords[0])))); assertFalse(modelManager.equals(new ModelManager(addressBook, userPrefs))); // resets modelManager to initial state for upcoming tests diff --git a/src/test/java/seedu/address/model/person/NameContainsKeywordsPredicateTest.java b/src/test/java/seedu/address/model/person/NameContainsKeywordsPredicateTest.java index f136664e017..07e274b75cf 100644 --- a/src/test/java/seedu/address/model/person/NameContainsKeywordsPredicateTest.java +++ b/src/test/java/seedu/address/model/person/NameContainsKeywordsPredicateTest.java @@ -15,8 +15,8 @@ public class NameContainsKeywordsPredicateTest { @Test public void equals() { - List firstPredicateKeywordList = Collections.singletonList("first"); - List secondPredicateKeywordList = Arrays.asList("first", "second"); + List firstPredicateKeywordList = Collections.singletonList(new Name("first")); + List secondPredicateKeywordList = Arrays.asList(new Name("first"), new Name("second")); NameContainsKeywordsPredicate firstPredicate = new NameContainsKeywordsPredicate(firstPredicateKeywordList); NameContainsKeywordsPredicate secondPredicate = new NameContainsKeywordsPredicate(secondPredicateKeywordList); @@ -41,19 +41,20 @@ public void equals() { @Test public void test_nameContainsKeywords_returnsTrue() { // One keyword - NameContainsKeywordsPredicate predicate = new NameContainsKeywordsPredicate(Collections.singletonList("Alice")); + NameContainsKeywordsPredicate predicate = + new NameContainsKeywordsPredicate(Collections.singletonList(new Name("Alice"))); assertTrue(predicate.test(new PersonBuilder().withName("Alice Bob").build())); // Multiple keywords - predicate = new NameContainsKeywordsPredicate(Arrays.asList("Alice", "Bob")); + predicate = new NameContainsKeywordsPredicate(Arrays.asList(new Name("Alice"), new Name("Bob"))); assertTrue(predicate.test(new PersonBuilder().withName("Alice Bob").build())); // Only one matching keyword - predicate = new NameContainsKeywordsPredicate(Arrays.asList("Bob", "Carol")); + predicate = new NameContainsKeywordsPredicate(Arrays.asList(new Name("Bob"), new Name("Carol"))); assertTrue(predicate.test(new PersonBuilder().withName("Alice Carol").build())); // Mixed-case keywords - predicate = new NameContainsKeywordsPredicate(Arrays.asList("aLIce", "bOB")); + predicate = new NameContainsKeywordsPredicate(Arrays.asList(new Name("aLIce"), new Name("bOB"))); assertTrue(predicate.test(new PersonBuilder().withName("Alice Bob").build())); } @@ -64,11 +65,12 @@ public void test_nameDoesNotContainKeywords_returnsFalse() { assertFalse(predicate.test(new PersonBuilder().withName("Alice").build())); // Non-matching keyword - predicate = new NameContainsKeywordsPredicate(Arrays.asList("Carol")); + predicate = new NameContainsKeywordsPredicate(Arrays.asList(new Name("Carol"))); assertFalse(predicate.test(new PersonBuilder().withName("Alice Bob").build())); - // Keywords match phone, email and address, but does not match name - predicate = new NameContainsKeywordsPredicate(Arrays.asList("12345", "alice@email.com", "Main", "Street")); + // Keywords match phone, and address, but does not match name + predicate = new NameContainsKeywordsPredicate( + Arrays.asList(new Name("12345"), new Name("Main"), new Name("Street"))); assertFalse(predicate.test(new PersonBuilder().withName("Alice").withPhone("12345") .withEmail("alice@email.com").withAddress("Main Street").build())); } diff --git a/src/test/java/seedu/address/model/tag/TagContainsKeywordsPredicateTest.java b/src/test/java/seedu/address/model/tag/TagContainsKeywordsPredicateTest.java new file mode 100644 index 00000000000..2bc02a1454b --- /dev/null +++ b/src/test/java/seedu/address/model/tag/TagContainsKeywordsPredicateTest.java @@ -0,0 +1,78 @@ +package seedu.address.model.tag; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.Arrays; +import java.util.Collections; +import java.util.HashSet; + +import org.junit.jupiter.api.Test; + +import seedu.address.testutil.PersonBuilder; + +public class TagContainsKeywordsPredicateTest { + + @Test + public void equals() { + HashSet firstPredicateKeywordList = new HashSet<>(Collections.singletonList(new Tag("first"))); + HashSet secondPredicateKeywordList = new HashSet<>(Arrays.asList(new Tag("first"), new Tag("second"))); + + TagContainsKeywordsPredicate firstPredicate = new TagContainsKeywordsPredicate(firstPredicateKeywordList); + TagContainsKeywordsPredicate secondPredicate = new TagContainsKeywordsPredicate(secondPredicateKeywordList); + + // same object -> returns true + assertTrue(firstPredicate.equals(firstPredicate)); + + // same values -> returns true + TagContainsKeywordsPredicate firstPredicateCopy = new TagContainsKeywordsPredicate(firstPredicateKeywordList); + assertTrue(firstPredicate.equals(firstPredicateCopy)); + + // different types -> returns false + assertFalse(firstPredicate.equals(1)); + + // null -> returns false + assertFalse(firstPredicate.equals(null)); + + // different person -> returns false + assertFalse(firstPredicate.equals(secondPredicate)); + } + + @Test + public void test_tagContainsKeywords_returnsTrue() { + // One keyword + TagContainsKeywordsPredicate predicate = + new TagContainsKeywordsPredicate(new HashSet<>(Collections.singletonList(new Tag("Alice")))); + assertTrue(predicate.test(new PersonBuilder().withTags("Alice", "Bob").build())); + + // Multiple keywords + predicate = new TagContainsKeywordsPredicate(new HashSet<>(Arrays.asList(new Tag("Alice"), new Tag("Bob")))); + assertTrue(predicate.test(new PersonBuilder().withTags("Alice", "Bob").build())); + + // Only one matching keyword + predicate = new TagContainsKeywordsPredicate(new HashSet<>(Arrays.asList(new Tag("Bob"), new Tag("Carol")))); + assertTrue(predicate.test(new PersonBuilder().withTags("Alice", "Carol").build())); + + // Mixed-case keywords + predicate = new TagContainsKeywordsPredicate(new HashSet<>(Arrays.asList(new Tag("aLIce"), new Tag("bOB")))); + assertTrue(predicate.test(new PersonBuilder().withTags("Alice", "Bob").build())); + } + + @Test + public void test_nameDoesNotContainKeywords_returnsFalse() { + // Zero keywords + TagContainsKeywordsPredicate predicate = + new TagContainsKeywordsPredicate(new HashSet<>(Collections.emptyList())); + assertFalse(predicate.test(new PersonBuilder().withTags("Alice").build())); + + // Non-matching keyword + predicate = new TagContainsKeywordsPredicate(new HashSet<>(Arrays.asList(new Tag("Carol")))); + assertFalse(predicate.test(new PersonBuilder().withTags("Alice", "Bob").build())); + + // Keywords match phone, and address, but does not match name + predicate = new TagContainsKeywordsPredicate( + new HashSet<>(Arrays.asList(new Tag("12345"), new Tag("Main"), new Tag("Street")))); + assertFalse(predicate.test(new PersonBuilder().withName("Alice").withPhone("12345") + .withEmail("alice@email.com").withAddress("Main Street").build())); + } +} From df947944a9f99fc3aa24b324d36648bc52057745 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 2 Mar 2022 03:25:43 +0800 Subject: [PATCH 029/455] Amend UserGuide.md::find to reflect changes in FindCommand --- docs/UserGuide.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index cdda581e636..fb6a042756b 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -121,10 +121,12 @@ Examples: Find persons matching any of the given keywords from our contact list. -Format: `find KEYWORD [MORE_KEYWORDS]` +Format: `find [n/NAME]... [t/TAG]...` + +* One of the optional items e.g. `[n/NAME]` must be present for the command to work. Examples: -* `find n/Alan t/team1` +* `find n/Alex n/Charlotte t/team1 t/team2` ### Adding a note : `note-add` @@ -180,10 +182,10 @@ Format: `exit` | **List** | `list` | | **Add** | `add n/NAME p/PHONE_NUMBER e/EMAIL [t/TAG]…​`
e.g., `add n/Johnson p/83918273 e/johnson@gmail.com t/Hustlers` | | **Del** | `del INDEX`
e.g., `del 1` | -| **tag-add** | `tag-add INDEX TAG_NAME`
e.g., `tag-add 1 Public Relations` | -| **tag-del** | `tag-del INDEX TAG_INDEX`
e.g., `tag-del 1 1` | -| **Find** | `find KEYWORD [MORE_KEYWORDS]`
e.g., `find n/Alan t/team1` | -| **note-add** | `note-add INDEX NOTE_DESCRIPTION`
e.g., `note-add 1 Surgery Scheduled for tomorrow` | -| **note-del** | `note-del INDEX NOTE_INDEX`
e.g., `note-del 1 1` | +| **Add Tag** | `tag-add INDEX TAG_NAME`
e.g., `tag-add 1 Public Relations` | +| **Del Tag** | `tag-del INDEX TAG_INDEX`
e.g., `tag-del 1 1` | +| **Find** | `find [n/NAME]... [t/TAG]...`
e.g., `find n/Alex n/Charlotte t/team1 t/team2` | +| **Add Note** | `note-add INDEX NOTE_DESCRIPTION`
e.g., `note-add 1 Surgery Scheduled for tomorrow` | +| **Del Note** | `note-del INDEX NOTE_INDEX`
e.g., `note-del 1 1` | | **Help** | `help` | | **Exit** | `exit` | From edb88374d9dd6aca1fd81eb9539bfd36657a7215 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 2 Mar 2022 03:41:45 +0800 Subject: [PATCH 030/455] Amend use cases (find) in DeveloperGuide.md to reflect changes in FindCommand --- docs/DeveloperGuide.md | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 4e6559c655e..bc60711ff4f 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -381,23 +381,35 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli Use case resumes at step 1. -**Use case: Filter persons by tag** +**Use case: Find persons by name and/or tag** **MSS** -1. User requests to list persons with a specific tag description +1. User requests to list persons with a specific name and/or tag 2. Coach2K22 shows a list of filtered persons Use case ends. **Extensions** -* 1a. The given tag description cannot be found in Coach2K22. +* 1a. The given name and tag keywords cannot be found in Coach2K22. - * 1a1. Coach2K22 shows an error message and an empty list. + * 1a1. Coach2K22 shows an empty list. Use case ends. + +* 1b. The keyword provided does not indicate any prefix e.g. `n/` or `t/`. + * 1a1. Coach2K22 shows an error message. + + Use case ends. + +* 1c. No keywords are provided. + + * 1a1. Coach2K22 shows an error message. + + Use case ends. + *{More to be added}* ### Non-Functional Requirements From 348a1683fff0237d4e59f4d32d6d2a24b5634266 Mon Sep 17 00:00:00 2001 From: Pragya Date: Wed, 2 Mar 2022 06:20:11 +0800 Subject: [PATCH 031/455] 1. Removed remaining references to 'Addressbook' 2. Modified 'Find' command 2.1 Initially was going to edit it as Abdul had suggested, but upon rereading the 'notes about command format' section I think this version follows those guidelines better --- docs/UserGuide.md | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index cdda581e636..006cf338409 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -17,9 +17,9 @@ Coach2K22 is a desktop app that helps busy sports coaches **organise their overw 1. Ensure you have Java `11` or above installed in your Computer. -1. Download the latest `addressbook.jar` from [here](https://github.com/se-edu/addressbook-level3/releases). +1. Download the latest '.jar' file. -1. Copy the file to the folder you want to use as the _home folder_ for your AddressBook. +1. Copy the file to the folder you want to use as the _home folder_ for your copy of Coach2k22. 1. Double-click the file to start the app. The GUI similar to the below should appear in a few seconds. Note how the app contains some sample data.
![Ui](images/Ui.png) @@ -119,12 +119,15 @@ Examples: ### Locating persons by keyword : `find` -Find persons matching any of the given keywords from our contact list. +Find persons matching any of the given keywords from our contact list. +Users can choose to find by `NAME`(s), `TAG`(s), or both. -Format: `find KEYWORD [MORE_KEYWORDS]` +Format: `find [n/NAME]…​ [t/TAG]…​` Examples: * `find n/Alan t/team1` +* `find n/Alan` +* `find t/team1` ### Adding a note : `note-add` @@ -182,7 +185,7 @@ Format: `exit` | **Del** | `del INDEX`
e.g., `del 1` | | **tag-add** | `tag-add INDEX TAG_NAME`
e.g., `tag-add 1 Public Relations` | | **tag-del** | `tag-del INDEX TAG_INDEX`
e.g., `tag-del 1 1` | -| **Find** | `find KEYWORD [MORE_KEYWORDS]`
e.g., `find n/Alan t/team1` | +| **Find** | `find [n/NAME]…​ [t/TAG]…​`
e.g., `find n/Alan t/team1`; `find n/Alan`; `find t/team1` | | **note-add** | `note-add INDEX NOTE_DESCRIPTION`
e.g., `note-add 1 Surgery Scheduled for tomorrow` | | **note-del** | `note-del INDEX NOTE_INDEX`
e.g., `note-del 1 1` | | **Help** | `help` | From 20f23e4c25d495b28d102fa69788b5cdf7ebcbae Mon Sep 17 00:00:00 2001 From: Pragya Date: Wed, 2 Mar 2022 08:55:10 +0800 Subject: [PATCH 032/455] Update AboutUs.md and add skeletal PPP for Pragya Jha --- docs/AboutUs.md | 12 ++++++------ docs/images/PrgJ.png | Bin 0 -> 737094 bytes docs/team/PrgJ.md | 21 +++++++++++++++++++++ 3 files changed, 27 insertions(+), 6 deletions(-) create mode 100644 docs/images/PrgJ.png create mode 100644 docs/team/PrgJ.md diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 57aa3616f6b..47d3fa676b5 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -49,12 +49,12 @@ You can reach us at the email `seer[at]comp.nus.edu.sg` * Responsibilities: In charge of versioning, repository maintenance, and code integration. Assist and ensure that all documentations are in-order. -### James Doe +### Pragya Jha - + -[[github](http://github.com/johndoe)] -[[portfolio](team/johndoe.md)] +[[github](http://github.com/PrgJ)] +[[portfolio](team/PrgJ.md)] -* Role: Developer -* Responsibilities: UI +* Role: Scheduling and tracking +* Responsibilities: In charge of defining, assigning, and tracking project tasks. diff --git a/docs/images/PrgJ.png b/docs/images/PrgJ.png new file mode 100644 index 0000000000000000000000000000000000000000..eb00fc2ec81e11d0a17f4e711f28adcc96549888 GIT binary patch literal 737094 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%0Dr zLc1|wbNdkseeV;17v`8I>J(Mqr?@(O3cWlxWeRlhI?d~fLR~4>X%gJCZ}eJ6XP&N{ ztISJ>4jUR4(Db~n48IJCEOweFPL5~1YMD$MH)meSl}q04yCh(3%6Y^;&e?VzBs{)r zyDI*P1o}t#5giP0P??0iKvY{rhZ|>C1*V}8V}W4Ln*Y{8eYE7o@&|x)va}jaFHYcf6fv^Yw$Kfj#in)3F~fE?X{EBfxi#G!Z>-#|h>p z@Z)urncvY_{E(1tAp4?$;pR*VCO51N(;5YA;{^?YJf|wh>5N~Tou=D$iP4U%iK}Lf zH;w(2;Km!$gGJ$hBoD;SXVwhvRWCzj*bzg~eJ6^SiR5i9g>7tq&7*dT-v%E=7wI2w z{e=+Wb9fTijz@Ie0`t4b1l94`7kZ6fez$2$LAE8bGORjeJcf9USma@vZd;27K|;*7 z0&N#_4z0eY)mgW;3Jd<1p!*jJ6U11P`g-(q&xDEDJ=x58a2ZZ!BvXQ4O$4**Mhfr{ zS$PV6`J5maBp1rmb!OhL#aIH6O^{p|UT3R)aZ2Y$)UWB@6|dpeAE ziQC0RxvKv#HjV-WItzazM%DkC7Ob7*95Qdssyt1g5OUgf`%~`&MlC*H9)Tu5myin| zAOjY1;|up*68Ac9jOmE!EXWekj^~{aVGm z{8`2E+l1CW0UycRttCH=%Ph4Y{}_80SHCTXD?YohKf=KQH(+BQS~Dz_r>iRB))xTO zn2wPQpMm+^o#c=id8}-|Bc*A4`Ve1~@aJ2ere=W0W-!3fK|btyvfR(@^cZ23DGE^o zot(zxL$rD^Xj`(54}(keN2S@P@@-|hK;L!`>X*ct?q(u$aJG2xJT;R<9n?Yy0E}BX zq>DA!n@`gcnOS@U0Wlibv0{K&Z>MA}z>CdW69I6jTnac>6@NuqFh+&(u}Mk~So0D6 z4u#ZQOR!QXFa7JB+=s+2XGjS!_ygb2o9j!8PPE_sHOQQM@xU{r0*iJ5r-Lr+rSi&` z<1hR=aXPHbKD9%n1U%?QSyq{zo7*G8OH_G}brbwa##zHjy?@!pzCah`@TGSecR*ze z&H+adl@^bzY^H#�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�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 l1B1&m_e4N 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,$vy1T108mq74TL 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%0DED12t!PaqWrvA4%(b?r*hfpAB7l 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%0Aj+ho$GJP!`^wEoKB`)9`Cu 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

    &}hTk6Rf?Lv)a0 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 z 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�+6dgAQz2ioG#~VFOezcT*VYIdbH{)Rd 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%0DCf4SGzy8i{^S(uWl<>ZUWqaxFSy^ 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⁢@#+!XI;U_;Ud0OUI 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 Z=$F9=6F-xJ$2@>?>1i2j;xruY{|BUR5>WsE literal 0 HcmV?d00001 diff --git a/docs/team/PrgJ.md b/docs/team/PrgJ.md new file mode 100644 index 00000000000..9bfb3966bad --- /dev/null +++ b/docs/team/PrgJ.md @@ -0,0 +1,21 @@ +### Project: Coach2K22 + +#### Overview +Our product helps busy sports coaches organise their overwhelming lists of contacts and messy weekly +schedules. It also provides them with a platform to visualise defensive and offensive plays as the game unfolds. + +#### Summary of Contributions +* **Code contributed**: [RepoSense link]( + https://nus-cs2103-ay2122s2.github.io/tp-dashboard/?search=PrgJ&breakdown=true) +* **Enhancement implemented** + * _to be added soon_ +* **Contributions to the UG** + * _to be added soon_ +* **Contributions to the DG** + * _to be added soon_ +* **Contributions to team-based tasks** + * _to be added soon_ +* **Review/mentoring contributions** + * _to be added soon_ +* **Contributions beyond the project team** + * _to be added soon_ From 4286633fabc002d5e976d1bafb773c38ced8a59c Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 2 Mar 2022 11:51:14 +0800 Subject: [PATCH 033/455] Resolve conflicts in UserGuide.md --- docs/UserGuide.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index fb6a042756b..e5bb6dc1348 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -121,12 +121,15 @@ Examples: Find persons matching any of the given keywords from our contact list. -Format: `find [n/NAME]... [t/TAG]...` +Format: `Format: `find [n/NAME]…​ [t/TAG]…​`` * One of the optional items e.g. `[n/NAME]` must be present for the command to work. Examples: * `find n/Alex n/Charlotte t/team1 t/team2` +* `find n/Alan t/team1` +* `find n/Alan` +* `find t/team1` ### Adding a note : `note-add` From cdffc647788b567e7dbd459b22c18a4ecbed9bb5 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 2 Mar 2022 11:54:33 +0800 Subject: [PATCH 034/455] Resolve conflicts from UserGuide.md --- docs/UserGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index e5bb6dc1348..3f4a9bcef4e 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -121,7 +121,7 @@ Examples: Find persons matching any of the given keywords from our contact list. -Format: `Format: `find [n/NAME]…​ [t/TAG]…​`` +Format: `find [n/NAME]…​ [t/TAG]…​` * One of the optional items e.g. `[n/NAME]` must be present for the command to work. From dba5472288869d74708f8a3f55d4fb7e2d7fda90 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 2 Mar 2022 12:06:43 +0800 Subject: [PATCH 035/455] Resolve conflicts in UserGuide.md --- docs/UserGuide.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 3f4a9bcef4e..b18f50ac0a3 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -120,16 +120,17 @@ Examples: ### Locating persons by keyword : `find` Find persons matching any of the given keywords from our contact list. +Users can choose to find by `NAME`(s), `TAG`(s), or both. Format: `find [n/NAME]…​ [t/TAG]…​` * One of the optional items e.g. `[n/NAME]` must be present for the command to work. Examples: -* `find n/Alex n/Charlotte t/team1 t/team2` * `find n/Alan t/team1` * `find n/Alan` * `find t/team1` +* `find n/Alex n/Charlotte t/team1 t/team2` ### Adding a note : `note-add` @@ -187,7 +188,7 @@ Format: `exit` | **Del** | `del INDEX`
    e.g., `del 1` | | **Add Tag** | `tag-add INDEX TAG_NAME`
    e.g., `tag-add 1 Public Relations` | | **Del Tag** | `tag-del INDEX TAG_INDEX`
    e.g., `tag-del 1 1` | -| **Find** | `find [n/NAME]... [t/TAG]...`
    e.g., `find n/Alex n/Charlotte t/team1 t/team2` | +| **Find** | `find [n/NAME]…​ [t/TAG]…​`
    e.g., `find n/Alex n/Charlotte t/team1 t/team2` | | **Add Note** | `note-add INDEX NOTE_DESCRIPTION`
    e.g., `note-add 1 Surgery Scheduled for tomorrow` | | **Del Note** | `note-del INDEX NOTE_INDEX`
    e.g., `note-del 1 1` | | **Help** | `help` | From b1e229aabe730d1f07a9d5673357b2f119761d5a Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 2 Mar 2022 12:18:12 +0800 Subject: [PATCH 036/455] Resolve conflict in Developer.md --- docs/DeveloperGuide.md | 93 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 46eae8ee565..7772ac759fe 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -308,6 +308,99 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli Use case resumes at step 2. +**Use case: Add a note to a person** + +**MSS** + +1. User requests to add a note to a person +2. Coach2K22 shows the new details of the person + + Use case ends. + +**Extensions** + +* 1a. The list is empty. + + * 1a1. Coach2K22 shows an error message. + + Use case ends. + +* 1b. The given list index cannot be found in Coach2K22. + + * 1b1. Coach2K22 shows an error message. + + Use case resumes at step 1. + +* 1c. The note provided is an empty string. + + * 1c1. Coach2K22 shows an error message. + + Use case resumes at step 1. + +**Use case: Delete a note from a person** + +**MSS** + +1. User requests to delete a note for a person +2. Coach2K22 shows the new details of the person + + Use case ends. + +**Extensions** + +* 1a. The list is empty. + + * 1a1. Coach2K22 shows an error message. + + Use case ends. + +* 1b. The given list index is invalid. + + * 1b1. Coach2K22 shows an error message. + + Use case resumes at step 1. + +* 1c. Notes have not been assigned to the person. + + * 1c1. Coach2K22 shows an error message. + + Use case resumes at step 1. + +* 1d. The given note index is invalid. + + * 1d1. Coach2K22 shows an error message. + + Use case resumes at step 1. + +**Use case: Find persons by name and/or tag** + +**MSS** + +1. User requests to list persons with a specific name and/or tag +2. Coach2K22 shows a list of filtered persons + + Use case ends. + +**Extensions** + +* 1a. The given name and tag keywords cannot be found in Coach2K22. + + * 1a1. Coach2K22 shows an empty list. + + Use case ends. + +* 1b. The keyword provided does not indicate any prefix e.g. `n/` or `t/`. + + * 1a1. Coach2K22 shows an error message. + + Use case ends. + +* 1c. No keywords are provided. + + * 1a1. Coach2K22 shows an error message. + + Use case ends. + *{More to be added}* ### Non-Functional Requirements From 0644614615bd734b58bd93b39c4b663f94557a38 Mon Sep 17 00:00:00 2001 From: Lyu Xiaoteng <35390703+Rye-Catcher@users.noreply.github.com> Date: Wed, 2 Mar 2022 13:09:34 +0800 Subject: [PATCH 037/455] Revert "Update AboutUs.md and add skeletal PPP for Pragya Jha" --- docs/AboutUs.md | 29 ++++++++++++++--------------- docs/images/PrgJ.png | Bin 737094 -> 0 bytes docs/team/PrgJ.md | 21 --------------------- 3 files changed, 14 insertions(+), 36 deletions(-) delete mode 100644 docs/images/PrgJ.png delete mode 100644 docs/team/PrgJ.md diff --git a/docs/AboutUs.md b/docs/AboutUs.md index a7292fa4d56..eadc54c1365 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -9,17 +9,15 @@ You can reach us at the email `seer[at]comp.nus.edu.sg` ## Project team -### Lyu Xiaoteng +### John Doe - + -[[github](https://github.com/Rye-Catcher)] -[[portfolio](team/rye-catcher.md)] -[[blog](https://x1a0teng.page/posts/about/)] +[[homepage](http://www.comp.nus.edu.sg/~damithch)] +[[github](https://github.com/johndoe)] +[[portfolio](team/johndoe.md)] -* Role: Documentation and Integration -* Responsibilities: Ensure project documentation in good quality -and various parts of codes can be integrated to create a whole. +* Role: Project Advisor ### Tan Juay Hee @@ -52,13 +50,14 @@ after code quality and ensures adherence to coding standards. * Responsibilities: In charge of versioning, repository maintenance, and code integration. Assist and ensure that all documentations are in-order. +### Lyu Xiaoteng -### Pragya Jha - - + -[[github](http://github.com/PrgJ)] -[[portfolio](team/PrgJ.md)] +[[github](https://github.com/Rye-Catcher)] +[[portfolio](team/rye-catcher.md)] +[[blog](https://x1a0teng.page/posts/about/)] -* Role: Scheduling and tracking -* Responsibilities: In charge of defining, assigning, and tracking project tasks. +* Role: Documentation and Integration +* Responsibilities: Ensure project documentation in good quality +and various parts of codes can be integrated to create a whole. diff --git a/docs/images/PrgJ.png b/docs/images/PrgJ.png deleted file mode 100644 index eb00fc2ec81e11d0a17f4e711f28adcc96549888..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 737094 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%0Dr zLc1|wbNdkseeV;17v`8I>J(Mqr?@(O3cWlxWeRlhI?d~fLR~4>X%gJCZ}eJ6XP&N{ ztISJ>4jUR4(Db~n48IJCEOweFPL5~1YMD$MH)meSl}q04yCh(3%6Y^;&e?VzBs{)r zyDI*P1o}t#5giP0P??0iKvY{rhZ|>C1*V}8V}W4Ln*Y{8eYE7o@&|x)va}jaFHYcf6fv^Yw$Kfj#in)3F~fE?X{EBfxi#G!Z>-#|h>p z@Z)urncvY_{E(1tAp4?$;pR*VCO51N(;5YA;{^?YJf|wh>5N~Tou=D$iP4U%iK}Lf zH;w(2;Km!$gGJ$hBoD;SXVwhvRWCzj*bzg~eJ6^SiR5i9g>7tq&7*dT-v%E=7wI2w z{e=+Wb9fTijz@Ie0`t4b1l94`7kZ6fez$2$LAE8bGORjeJcf9USma@vZd;27K|;*7 z0&N#_4z0eY)mgW;3Jd<1p!*jJ6U11P`g-(q&xDEDJ=x58a2ZZ!BvXQ4O$4**Mhfr{ zS$PV6`J5maBp1rmb!OhL#aIH6O^{p|UT3R)aZ2Y$)UWB@6|dpeAE ziQC0RxvKv#HjV-WItzazM%DkC7Ob7*95Qdssyt1g5OUgf`%~`&MlC*H9)Tu5myin| zAOjY1;|up*68Ac9jOmE!EXWekj^~{aVGm z{8`2E+l1CW0UycRttCH=%Ph4Y{}_80SHCTXD?YohKf=KQH(+BQS~Dz_r>iRB))xTO zn2wPQpMm+^o#c=id8}-|Bc*A4`Ve1~@aJ2ere=W0W-!3fK|btyvfR(@^cZ23DGE^o zot(zxL$rD^Xj`(54}(keN2S@P@@-|hK;L!`>X*ct?q(u$aJG2xJT;R<9n?Yy0E}BX zq>DA!n@`gcnOS@U0Wlibv0{K&Z>MA}z>CdW69I6jTnac>6@NuqFh+&(u}Mk~So0D6 z4u#ZQOR!QXFa7JB+=s+2XGjS!_ygb2o9j!8PPE_sHOQQM@xU{r0*iJ5r-Lr+rSi&` z<1hR=aXPHbKD9%n1U%?QSyq{zo7*G8OH_G}brbwa##zHjy?@!pzCah`@TGSecR*ze z&H+adl@^bzY^H#�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�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 l1B1&m_e4N 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,$vy1T108mq74TL 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%0DED12t!PaqWrvA4%(b?r*hfpAB7l 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%0Aj+ho$GJP!`^wEoKB`)9`Cu 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

      &}hTk6Rf?Lv)a0 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 z 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�+6dgAQz2ioG#~VFOezcT*VYIdbH{)Rd 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%0DCf4SGzy8i{^S(uWl<>ZUWqaxFSy^ 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⁢@#+!XI;U_;Ud0OUI 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 Z=$F9=6F-xJ$2@>?>1i2j;xruY{|BUR5>WsE diff --git a/docs/team/PrgJ.md b/docs/team/PrgJ.md deleted file mode 100644 index 9bfb3966bad..00000000000 --- a/docs/team/PrgJ.md +++ /dev/null @@ -1,21 +0,0 @@ -### Project: Coach2K22 - -#### Overview -Our product helps busy sports coaches organise their overwhelming lists of contacts and messy weekly -schedules. It also provides them with a platform to visualise defensive and offensive plays as the game unfolds. - -#### Summary of Contributions -* **Code contributed**: [RepoSense link]( - https://nus-cs2103-ay2122s2.github.io/tp-dashboard/?search=PrgJ&breakdown=true) -* **Enhancement implemented** - * _to be added soon_ -* **Contributions to the UG** - * _to be added soon_ -* **Contributions to the DG** - * _to be added soon_ -* **Contributions to team-based tasks** - * _to be added soon_ -* **Review/mentoring contributions** - * _to be added soon_ -* **Contributions beyond the project team** - * _to be added soon_ From 3243ac137119a142df488a1eb960138f12f86d8c Mon Sep 17 00:00:00 2001 From: Pragya Date: Wed, 2 Mar 2022 13:49:46 +0800 Subject: [PATCH 038/455] Update AboutUs.md and add skeletal PPP page for Pragya Jha --- docs/AboutUs.md | 13 +++++++------ docs/images/prgj.png | Bin 0 -> 718874 bytes docs/team/prgj.md | 21 +++++++++++++++++++++ 3 files changed, 28 insertions(+), 6 deletions(-) create mode 100644 docs/images/prgj.png create mode 100644 docs/team/prgj.md diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 57aa3616f6b..1412bd43b13 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -49,12 +49,13 @@ You can reach us at the email `seer[at]comp.nus.edu.sg` * Responsibilities: In charge of versioning, repository maintenance, and code integration. Assist and ensure that all documentations are in-order. -### James Doe +### Pragya Jha - + -[[github](http://github.com/johndoe)] -[[portfolio](team/johndoe.md)] +[[github](http://github.com/prgj)] +[[portfolio](team/prgj.md)] + +* Role: Scheduling and tracking +* Responsibilities: In charge of defining, assigning, adn tracking project tasks. -* Role: Developer -* Responsibilities: UI diff --git a/docs/images/prgj.png b/docs/images/prgj.png new file mode 100644 index 0000000000000000000000000000000000000000..96acb3f20c3d62ef91491686958878e559872651 GIT binary patch literal 718874 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 zÐ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

      Q`{yp%lpOXBg^VY4*d^CDJp&WhWxsi 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

      %U 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

      Camk$O&>GL%AW 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 DOGF9Sy@shAmE^?KShaR{)hc8X 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 literal 0 HcmV?d00001 diff --git a/docs/team/prgj.md b/docs/team/prgj.md new file mode 100644 index 00000000000..d11fefddf93 --- /dev/null +++ b/docs/team/prgj.md @@ -0,0 +1,21 @@ +### Project: Coach2K22 + +#### Overview +Our product helps busy sports coaches organise their overwhelming lists of contacts and messy weekly +schedules. It also provides them with a platform to visualise defensive and offensive plays as the game unfolds. + +#### Summary of Contributions +* **Code contributed**: [RepoSense link]( + https://nus-cs2103-ay2122s2.github.io/tp-dashboard/?search=prgj&breakdown=true) +* **Enhancement implemented** + * _to be added soon_ +* **Contributions to the UG** + * _to be added soon_ +* **Contributions to the DG** + * _to be added soon_ +* **Contributions to team-based tasks** + * _to be added soon_ +* **Review/mentoring contributions** + * _to be added soon_ +* **Contributions beyond the project team** + * _to be added soon_ From 161295ecffe97d30cded6d4075db7b4ddea87348 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Thu, 3 Mar 2022 18:34:17 +0800 Subject: [PATCH 039/455] Add "add person" use case --- docs/DeveloperGuide.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 4e6559c655e..2b4d9cbd5fb 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -293,6 +293,29 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli (For all use cases below, the **System** is `Coach2K22` and the **Actor** is the `user`, unless specified otherwise) +**Use case: Add a person** + +**MSS** + +1. User requests to add a new person in the list +2. Coach2K22 shows a list with the newly added person + + Use case ends. + +**Extensions** + +* 1a. The parameters supplied by the user is invalid. + + * 1a1. Coach2K22 shows an error message. + + Use case ends. + +* 1b. Compulsory parameters not supplied by the user. + + * 1b1. Coach2K22 shows an error message. + + Use case ends. + **Use case: Delete a person** **MSS** From be8da531b427bdb8fc7d992065efdc040323a7af Mon Sep 17 00:00:00 2001 From: juayhee Date: Thu, 3 Mar 2022 18:48:41 +0800 Subject: [PATCH 040/455] Update DeveloperGuide.md with use case: add a tag to a person --- docs/DeveloperGuide.md | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 4e6559c655e..20d5ba6eab1 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -398,6 +398,39 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli Use case ends. +**Use case: Add a tag to a person** + +**MSS** +1. User requests to list persons +2. Coach2K22 shows a list of persons +3. User requests to list tags +4. Coach2k22 shows a list of existing tags +5. User requests to attach an existing tag to a person +6. Coach2k22 shows the new details of the person + + Use case ends. + +**Extensions** + +* 1a. The persons list is empty + + Use case ends. + +* 3a. The tags list is empty + + * 3a1. Coach2K22 provides information on how to add new tags + + Use case ends. + +* 5a. User specified a tag that does not exist in the current list + + * 5a1. Coach2K22 shows an error message + * 5a2. Coach2K22 asks if the user intends to create a new tag + * 5a3. User confirms + * 5a4. Coach2K22 creates a new tag and attaches it to the person + + Use case resumes at step 6. + *{More to be added}* ### Non-Functional Requirements From 82b264813f37300a7c963565432fd59a3fa7976e Mon Sep 17 00:00:00 2001 From: juayhee Date: Thu, 3 Mar 2022 18:55:18 +0800 Subject: [PATCH 041/455] Formatting --- docs/DeveloperGuide.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 20d5ba6eab1..d9a017cd2a2 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -401,6 +401,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli **Use case: Add a tag to a person** **MSS** + 1. User requests to list persons 2. Coach2K22 shows a list of persons 3. User requests to list tags From b4579e08f3d1ee8288e060d5f9d61fa3d82fb50d Mon Sep 17 00:00:00 2001 From: juayhee Date: Thu, 3 Mar 2022 20:33:35 +0800 Subject: [PATCH 042/455] Update use case: add tag to a person --- docs/DeveloperGuide.md | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index d9a017cd2a2..ecbee881bfa 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -404,8 +404,6 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli 1. User requests to list persons 2. Coach2K22 shows a list of persons -3. User requests to list tags -4. Coach2k22 shows a list of existing tags 5. User requests to attach an existing tag to a person 6. Coach2k22 shows the new details of the person @@ -417,20 +415,6 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli Use case ends. -* 3a. The tags list is empty - - * 3a1. Coach2K22 provides information on how to add new tags - - Use case ends. - -* 5a. User specified a tag that does not exist in the current list - - * 5a1. Coach2K22 shows an error message - * 5a2. Coach2K22 asks if the user intends to create a new tag - * 5a3. User confirms - * 5a4. Coach2K22 creates a new tag and attaches it to the person - - Use case resumes at step 6. *{More to be added}* From 08cf60ecde86bbadb63034c3a265414c51197d7f Mon Sep 17 00:00:00 2001 From: juayhee Date: Thu, 3 Mar 2022 21:30:53 +0800 Subject: [PATCH 043/455] Fix numbering and wording --- docs/DeveloperGuide.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index ecbee881bfa..7fdae65d5a3 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -404,8 +404,8 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli 1. User requests to list persons 2. Coach2K22 shows a list of persons -5. User requests to attach an existing tag to a person -6. Coach2k22 shows the new details of the person +3. User requests to attach a new tag to a person +4. Coach2k22 shows the new details of the person Use case ends. From 79f04145c7fb57ac6aaab077dc2d75faf8313e5f Mon Sep 17 00:00:00 2001 From: Pragya Date: Thu, 3 Mar 2022 22:11:54 +0800 Subject: [PATCH 044/455] 1. Delete tag from person use-case is added 1.1 formatted to ensure consistency with the other use-cases --- docs/DeveloperGuide.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 7fdae65d5a3..fd5cc16b499 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -415,6 +415,37 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli Use case ends. +**Use case: Delete a tag from a person** + +**MSS** + +1. User requests to list persons +2. Coach2K22 shows a list of persons +3. User requests to remove an existing tag from a person +4. Coach2k22 shows the updated details of the person + + Use case ends. + +**Extensions** + +* 1a. The persons list is empty. + + * 1a1. Coach2K22 shows an error message. + * 1a2. Coach2k22 returns an empty list. + + Use case ends. + +* 3a. The tag requested to remove does not exist for the person. + + * 3a1. Coach2K22 shows an error message. + + Use case ends. + +* 3b. No argument for tag removal is provided. + + * 3b1. Coach2K22 shows an error message. + + Use case ends. *{More to be added}* From 98e10e11c8f86532f69f55322a947fa9096a0001 Mon Sep 17 00:00:00 2001 From: Pragya Date: Thu, 3 Mar 2022 22:36:46 +0800 Subject: [PATCH 045/455] made changes to a use-case extension --- docs/DeveloperGuide.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index fd5cc16b499..3032804ac64 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -428,10 +428,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli **Extensions** -* 1a. The persons list is empty. - - * 1a1. Coach2K22 shows an error message. - * 1a2. Coach2k22 returns an empty list. +* 2a. The list is empty. Use case ends. From 5d1927ec070dac90c8fc28d10a3f05f332ede0c9 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Fri, 4 Mar 2022 11:06:54 +0800 Subject: [PATCH 046/455] Edit DeveloperGuide.md to fix formatting errors --- docs/DeveloperGuide.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index f420402937a..d4c038b38e1 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -434,9 +434,9 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli **Extensions** -* 1a. The persons list is empty +* 2a. The list is empty - Use case ends. + Use case ends. **Use case: Delete a tag from a person** @@ -453,7 +453,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli * 2a. The list is empty. - Use case ends. + Use case ends. * 3a. The tag requested to remove does not exist for the person. From 911ad7f821f6ed26b9346ff174f91b42b45c5a10 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Tue, 8 Mar 2022 20:17:49 +0800 Subject: [PATCH 047/455] Add tab pane into GUI --- src/main/resources/view/DarkTheme.css | 33 ++++++++++++++++ src/main/resources/view/MainWindow.fxml | 52 +++++++++++++++++-------- 2 files changed, 69 insertions(+), 16 deletions(-) diff --git a/src/main/resources/view/DarkTheme.css b/src/main/resources/view/DarkTheme.css index 36e6b001cd8..e944f6a16d6 100644 --- a/src/main/resources/view/DarkTheme.css +++ b/src/main/resources/view/DarkTheme.css @@ -31,6 +31,9 @@ .tab-pane { -fx-padding: 0 0 0 1; + -fx-background-color: derive(#1d1d1d, 20%); + -fx-border-color: derive(#1d1d1d, 10%); + -fx-border-top-width: 1px; } .tab-pane .tab-header-area { @@ -39,6 +42,36 @@ -fx-max-height: 0; } +.tab-pane .tab-header-area .tab-header-background { + -fx-background-color: #696969; +} + +.tab { + -fx-background-insets: 0 1 0 1; + -fx-background-color: #D3D3D3; +} + +.tab .tab-label { + -fx-alignment: center; + -fx-font-family: "Segoe UI Bold"; + -fx-font-size: 13; + -fx-text-fill: #000000; +} + +.tab:selected { + -fx-background-insets: 0 1 0 1; + -fx-background-color: derive(#1d1d1d, 20%); +} + +.tab:selected .focus-indicator { + -fx-border-color: transparent; +} + +.tab:selected .tab-label { + -fx-font-family: "Segoe UI Bold"; + -fx-text-fill: #ffffff; +} + .table-view { -fx-base: #1d1d1d; -fx-control-inner-background: #1d1d1d; diff --git a/src/main/resources/view/MainWindow.fxml b/src/main/resources/view/MainWindow.fxml index a431648f6c0..498595cce5a 100644 --- a/src/main/resources/view/MainWindow.fxml +++ b/src/main/resources/view/MainWindow.fxml @@ -6,13 +6,15 @@ - + + + + - + @@ -33,27 +35,45 @@ - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + From bed8dea118a4f5aada0066caca0f08e37401a26f Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 9 Mar 2022 01:35:52 +0800 Subject: [PATCH 048/455] Add classes and tests relating to Task --- .../java/seedu/address/model/task/Date.java | 69 ++++++++++ .../seedu/address/model/task/EndTime.java | 60 +++++++++ .../java/seedu/address/model/task/Name.java | 57 +++++++++ .../seedu/address/model/task/StartTime.java | 60 +++++++++ .../java/seedu/address/model/task/Task.java | 119 ++++++++++++++++++ .../exceptions/DuplicateTaskException.java | 12 ++ .../exceptions/TaskNotFoundException.java | 8 ++ .../seedu/address/model/task/DateTest.java | 40 ++++++ .../seedu/address/model/task/NameTest.java | 39 ++++++ .../address/model/task/StartEndTimeTest.java | 55 ++++++++ .../seedu/address/model/task/TaskTest.java | 85 +++++++++++++ .../seedu/address/testutil/TaskBuilder.java | 92 ++++++++++++++ .../seedu/address/testutil/TypicalTasks.java | 26 ++++ 13 files changed, 722 insertions(+) create mode 100644 src/main/java/seedu/address/model/task/Date.java create mode 100644 src/main/java/seedu/address/model/task/EndTime.java create mode 100644 src/main/java/seedu/address/model/task/Name.java create mode 100644 src/main/java/seedu/address/model/task/StartTime.java create mode 100644 src/main/java/seedu/address/model/task/Task.java create mode 100644 src/main/java/seedu/address/model/task/exceptions/DuplicateTaskException.java create mode 100644 src/main/java/seedu/address/model/task/exceptions/TaskNotFoundException.java create mode 100644 src/test/java/seedu/address/model/task/DateTest.java create mode 100644 src/test/java/seedu/address/model/task/NameTest.java create mode 100644 src/test/java/seedu/address/model/task/StartEndTimeTest.java create mode 100644 src/test/java/seedu/address/model/task/TaskTest.java create mode 100644 src/test/java/seedu/address/testutil/TaskBuilder.java create mode 100644 src/test/java/seedu/address/testutil/TypicalTasks.java diff --git a/src/main/java/seedu/address/model/task/Date.java b/src/main/java/seedu/address/model/task/Date.java new file mode 100644 index 00000000000..cb390b918d4 --- /dev/null +++ b/src/main/java/seedu/address/model/task/Date.java @@ -0,0 +1,69 @@ +package seedu.address.model.task; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.time.format.DateTimeParseException; +import java.time.format.ResolverStyle; + +import static java.util.Objects.requireNonNull; +import static seedu.address.commons.util.AppUtil.checkArgument; + +/** + * Represents a Task's date in the schedule book. + * Guarantees: immutable; is valid as declared in {@link #isValidDate(String)} + */ +public class Date { + public static final String MESSAGE_CONSTRAINTS = "Date should be in the following format DD-MM-YYYY " + + "and adhere to the following constraints: \n" + + "1. YYYY should be a 4-digit numeric \n" + + "2. MM should be a 2-digit numeric ranging from 01 to 12 \n" + + "3. DD should be a 2-digit numeric, " + + "however the range of this numeric depends on the month and year " + + "e.g. 2020-02-29 is valid as it is a leap year while 2021-02-29 is invalid"; + + public final String value; + + /** + * Constructs a {@code Date}. + * + * @param date A valid date. + */ + public Date(String date) { + requireNonNull(date); + checkArgument(isValidDate(date), MESSAGE_CONSTRAINTS); + value = date; + } + + /** + * Returns true if the given date is valid. + */ + public static boolean isValidDate(String date) { + try { + DateTimeFormatter customFormat = DateTimeFormatter + .ofPattern("dd-MM-uuuu").withResolverStyle(ResolverStyle.STRICT); + LocalDate.parse(date, customFormat); + } catch (DateTimeParseException ex) { + return false; + } + return true; + } + + @Override + public String toString() { + return value; + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof Date // instanceof handles nulls + && value.equals(((Date) other).value)); // state check + + } + + @Override + public int hashCode() { + return value.hashCode(); + } +} + diff --git a/src/main/java/seedu/address/model/task/EndTime.java b/src/main/java/seedu/address/model/task/EndTime.java new file mode 100644 index 00000000000..0ccccafae85 --- /dev/null +++ b/src/main/java/seedu/address/model/task/EndTime.java @@ -0,0 +1,60 @@ +package seedu.address.model.task; + +import java.time.LocalTime; +import java.time.format.DateTimeFormatter; +import java.time.format.DateTimeParseException; +import java.time.format.ResolverStyle; + +import static java.util.Objects.requireNonNull; +import static seedu.address.commons.util.AppUtil.checkArgument; + +/** + * Represents a Task's start time in the schedule book. + * Guarantees: immutable; is valid as declared in {@link #isValidEndTime(String)} + */ +public class EndTime { + public static final String MESSAGE_CONSTRAINTS = "The start time should be in the following format HH:MM " + + "and adhere to the following constraints: \n" + + "1. HH should be a 2-digit numeric in the range of 00 to 23 \n" + + "2. MM should be a 2-digit numeric in the range of 00 to 59"; + + public final String value; + + /** + * Constructs a {@code EndTime}. + * + * @param time A valid EndTime. + */ + public EndTime(String time) { + requireNonNull(time); + checkArgument(isValidEndTime(time), MESSAGE_CONSTRAINTS); + value = time; + } + + /** + * Returns true if the given time is valid. + */ + public static boolean isValidEndTime(String time) { + try { + DateTimeFormatter customFormat = DateTimeFormatter + .ofPattern("HH:mm").withResolverStyle(ResolverStyle.STRICT); + LocalTime.parse(time, customFormat); + } catch (DateTimeParseException ex) { + return false; + } + return true; + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof EndTime // instanceof handles nulls + && value.equals(((EndTime) other).value)); // state check + } + + @Override + public int hashCode() { + return value.hashCode(); + } +} + diff --git a/src/main/java/seedu/address/model/task/Name.java b/src/main/java/seedu/address/model/task/Name.java new file mode 100644 index 00000000000..b5584d705b1 --- /dev/null +++ b/src/main/java/seedu/address/model/task/Name.java @@ -0,0 +1,57 @@ +package seedu.address.model.task; + +import static java.util.Objects.requireNonNull; +import static seedu.address.commons.util.AppUtil.checkArgument; + +/** + * Represents a Task's name in the schedule book. + * Guarantees: immutable; is valid as declared in {@link #isValidName(String)} + */ +public class Name { + public static final String MESSAGE_CONSTRAINTS = + "Names should only contain alphanumeric characters and spaces, and it should not be blank"; + + /* + * 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 = "[\\p{Alnum}][\\p{Alnum} ]*"; + + public final String fullName; + + /** + * Constructs a {@code Name}. + * + * @param name A valid name. + */ + public Name(String name) { + requireNonNull(name); + checkArgument(isValidName(name), MESSAGE_CONSTRAINTS); + fullName = name; + } + + /** + * Returns true if a given string is a valid name. + */ + public static boolean isValidName(String test) { + return test.matches(VALIDATION_REGEX); + } + + + @Override + public String toString() { + return fullName; + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof Name // instanceof handles nulls + && fullName.equals(((Name) other).fullName)); // state check + } + + @Override + public int hashCode() { + return fullName.hashCode(); + } +} diff --git a/src/main/java/seedu/address/model/task/StartTime.java b/src/main/java/seedu/address/model/task/StartTime.java new file mode 100644 index 00000000000..0bd317d0f7a --- /dev/null +++ b/src/main/java/seedu/address/model/task/StartTime.java @@ -0,0 +1,60 @@ +package seedu.address.model.task; + +import java.time.LocalTime; +import java.time.format.DateTimeFormatter; +import java.time.format.DateTimeParseException; +import java.time.format.ResolverStyle; + +import static java.util.Objects.requireNonNull; +import static seedu.address.commons.util.AppUtil.checkArgument; + +/** + * Represents a Task's start time in the schedule book. + * Guarantees: immutable; is valid as declared in {@link #isValidStartTime(String)} + */ +public class StartTime { + public static final String MESSAGE_CONSTRAINTS = "The start time should be in the following format HH:MM " + + "and adhere to the following constraints: \n" + + "1. HH should be a 2-digit numeric in the range of 00 to 23 \n" + + "2. MM should be a 2-digit numeric in the range of 00 to 59"; + + public final String value; + + /** + * Constructs a {@code StartTime}. + * + * @param time A valid StartTime. + */ + public StartTime(String time) { + requireNonNull(time); + checkArgument(isValidStartTime(time), MESSAGE_CONSTRAINTS); + value = time; + } + + /** + * Returns true if the given time is valid. + */ + public static boolean isValidStartTime(String time) { + try { + DateTimeFormatter customFormat = DateTimeFormatter + .ofPattern("HH:mm").withResolverStyle(ResolverStyle.STRICT); + LocalTime.parse(time, customFormat); + } catch (DateTimeParseException ex) { + return false; + } + return true; + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof StartTime // instanceof handles nulls + && value.equals(((StartTime) other).value)); // state check + + } + + @Override + public int hashCode() { + return value.hashCode(); + } +} diff --git a/src/main/java/seedu/address/model/task/Task.java b/src/main/java/seedu/address/model/task/Task.java new file mode 100644 index 00000000000..f326b393a57 --- /dev/null +++ b/src/main/java/seedu/address/model/task/Task.java @@ -0,0 +1,119 @@ +package seedu.address.model.task; + +import seedu.address.model.tag.Tag; + +import java.util.Collections; +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; + +public class Task { + + //Identity fields + private final Name name; + private final Date date; + private final StartTime startTime; + private final EndTime endTime; + + //Data fields + private final Set tags = new HashSet<>(); + + /** + * Every field must be present and not null. + */ + public Task(Name name, Date date, StartTime startTime, EndTime endTime, Set tags) { + requireAllNonNull(name, date, startTime, endTime, tags); + this.name = name; + this.date = date; + this.startTime = startTime; + this.endTime = endTime; + this.tags.addAll(tags); + } + + //Getters + public Name getName() { + return name; + } + + public Date getDate() { + return date; + } + + public StartTime getStartTime() { + return startTime; + } + + public EndTime getEndTime() { + return endTime; + } + + /** + * Returns an immutable tag set, which throws {@code UnsupportedOperationException} + * if modification is attempted. + */ + public Set getTags() { + return Collections.unmodifiableSet(tags); + } + + /** + * Returns true if both tasks have the same name. + * This defines a weaker notion of equality between two tasks. + */ + public boolean isSameTask(Task otherTask) { + if (otherTask == this) { + return true; + } + + return otherTask != null + && otherTask.getName().equals(getName()); + } + + /** + * Returns true if both tasks have the same identity and data fields. + * This defines a stronger notion of equality between two tasks. + */ + @Override + public boolean equals(Object other) { + if (other == this) { + return true; + } + + if (!(other instanceof Task)) { + return false; + } + + Task otherTask = (Task) other; + return otherTask.getName().equals(getName()) + && otherTask.getDate().equals(getDate()) + && otherTask.getStartTime().equals(getStartTime()) + && otherTask.getEndTime().equals(getEndTime()) + && otherTask.getTags().equals(getTags()); + } + + @Override + public int hashCode() { + // use this method for custom fields hashing instead of implementing your own + return Objects.hash(name, date, startTime, endTime, tags); + } + + @Override + public String toString() { + final StringBuilder builder = new StringBuilder(); + builder.append(getName()) + .append("; Date: ") + .append(getDate()) + .append("; Start Time: ") + .append(getStartTime()) + .append("; End Time: ") + .append(getEndTime()); + + Set tags = getTags(); + if (!tags.isEmpty()) { + builder.append("; Tags: "); + tags.forEach(builder::append); + } + return builder.toString(); + } +} diff --git a/src/main/java/seedu/address/model/task/exceptions/DuplicateTaskException.java b/src/main/java/seedu/address/model/task/exceptions/DuplicateTaskException.java new file mode 100644 index 00000000000..00dd4a63c4b --- /dev/null +++ b/src/main/java/seedu/address/model/task/exceptions/DuplicateTaskException.java @@ -0,0 +1,12 @@ +package seedu.address.model.task.exceptions; + +/** + * Indicates that the operation will result in duplicate Tasks (Tasks are consider duplicates if they + * have the same identity). + */ +public class DuplicateTaskException extends RuntimeException { + public DuplicateTaskException() { + super("Operation would result in duplicate persons"); + } +} + diff --git a/src/main/java/seedu/address/model/task/exceptions/TaskNotFoundException.java b/src/main/java/seedu/address/model/task/exceptions/TaskNotFoundException.java new file mode 100644 index 00000000000..305f190f79e --- /dev/null +++ b/src/main/java/seedu/address/model/task/exceptions/TaskNotFoundException.java @@ -0,0 +1,8 @@ +package seedu.address.model.task.exceptions; + +/** + * Indicates that the operation is unable to find the specified task. + */ +public class TaskNotFoundException extends RuntimeException { +} + diff --git a/src/test/java/seedu/address/model/task/DateTest.java b/src/test/java/seedu/address/model/task/DateTest.java new file mode 100644 index 00000000000..656add5a72f --- /dev/null +++ b/src/test/java/seedu/address/model/task/DateTest.java @@ -0,0 +1,40 @@ +package seedu.address.model.task; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static seedu.address.testutil.Assert.assertThrows; + +public class DateTest { + @Test + public void constructor_null_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> new Date(null)); + } + + @Test + public void constructor_invalidDate_throwsIllegalArgumentException() { + String invalidDate = ""; + assertThrows(IllegalArgumentException.class, () -> new Date(invalidDate)); + } + + @Test + public void isValidDate() { + // null date + assertThrows(NullPointerException.class, () -> Date.isValidDate(null)); + + //invalid date + assertFalse(Date.isValidDate("")); // empty string + assertFalse(Date.isValidDate(" ")); // spaces only + assertFalse(Date.isValidDate("29-02-2021")); // non-leap year + assertFalse(Date.isValidDate("28-02-22")); // 2 digits year format + assertFalse(Date.isValidDate("28-2-2022")); // 1 digit month format + assertFalse(Date.isValidDate("8-02-2022")); // 1 digit day format + assertFalse(Date.isValidDate("32-01-2022")); // invalid day range + assertFalse(Date.isValidDate("04-14-2022")); // invalid month range + + //valid date + assertTrue(Date.isValidDate("29-02-2020")); // leap year + assertTrue(Date.isValidDate("20-03-2021")); //valid day, month, and year + } +} diff --git a/src/test/java/seedu/address/model/task/NameTest.java b/src/test/java/seedu/address/model/task/NameTest.java new file mode 100644 index 00000000000..1480ded6d9c --- /dev/null +++ b/src/test/java/seedu/address/model/task/NameTest.java @@ -0,0 +1,39 @@ +package seedu.address.model.task; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static seedu.address.testutil.Assert.assertThrows; + +public class NameTest { + @Test + public void constructor_null_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> new Name(null)); + } + + @Test + public void constructor_invalidName_throwsIllegalArgumentException() { + String invalidName = ""; + assertThrows(IllegalArgumentException.class, () -> new Name(invalidName)); + } + + @Test + public void isValidName() { + // null name + assertThrows(NullPointerException.class, () -> Name.isValidName(null)); + + // invalid name + assertFalse(Name.isValidName("")); // empty string + assertFalse(Name.isValidName(" ")); // spaces only + assertFalse(Name.isValidName("^")); // only non-alphanumeric characters + assertFalse(Name.isValidName("meeting*")); // contains non-alphanumeric characters + + // valid name + assertTrue(Name.isValidName("shareholder meeting")); // alphabets only + assertTrue(Name.isValidName("12345")); // numbers only + assertTrue(Name.isValidName("meeting the 2nd")); // alphanumeric characters + assertTrue(Name.isValidName("Meeting")); // with capital letters + assertTrue(Name.isValidName("Followup Meeting with ShareHolder 2nd Time")); // long names + } +} diff --git a/src/test/java/seedu/address/model/task/StartEndTimeTest.java b/src/test/java/seedu/address/model/task/StartEndTimeTest.java new file mode 100644 index 00000000000..78b7a4c5ff9 --- /dev/null +++ b/src/test/java/seedu/address/model/task/StartEndTimeTest.java @@ -0,0 +1,55 @@ +package seedu.address.model.task; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static seedu.address.testutil.Assert.assertThrows; + +public class StartEndTimeTest { + @Test + public void constructor_null_throwsNullPointerException() { + //Start Time + assertThrows(NullPointerException.class, () -> new StartTime(null)); + //End Time + assertThrows(NullPointerException.class, () -> new EndTime(null)); + } + + @Test + public void constructor_invalidTime_throwsIllegalArgumentException() { + String invalidTime = ""; + //Start Time + assertThrows(IllegalArgumentException.class, () -> new StartTime(invalidTime)); + //End Time + assertThrows(IllegalArgumentException.class, () -> new EndTime(invalidTime)); + } + + @Test + public void isValidStartEndTime() { + // null time + assertThrows(NullPointerException.class, () -> StartTime.isValidStartTime(null)); + assertThrows(NullPointerException.class, () -> EndTime.isValidEndTime(null)); + + // invalid time + // start time + assertFalse(StartTime.isValidStartTime("")); // empty string + assertFalse(StartTime.isValidStartTime(" ")); // spaces only + assertFalse(StartTime.isValidStartTime("2:00")); // 1 digit hour format + assertFalse(StartTime.isValidStartTime("02:3")); // 1 digit minute format + assertFalse(StartTime.isValidStartTime("25:00")); // invalid hour range + assertFalse(StartTime.isValidStartTime("00:60")); // invalid minute range + // end time + assertFalse(EndTime.isValidEndTime("")); // empty string + assertFalse(EndTime.isValidEndTime(" ")); // spaces only + assertFalse(EndTime.isValidEndTime("2:00")); // 1 digit hour format + assertFalse(EndTime.isValidEndTime("02:3")); // 1 digit minute format + assertFalse(EndTime.isValidEndTime("25:00")); // invalid hour range + assertFalse(EndTime.isValidEndTime("00:60")); // invalid minute range + + //valid time + //start time + assertTrue(StartTime.isValidStartTime("02:00")); // valid hour and minute format + //end time + assertTrue(EndTime.isValidEndTime("02:00")); // valid hour and minute format + } +} diff --git a/src/test/java/seedu/address/model/task/TaskTest.java b/src/test/java/seedu/address/model/task/TaskTest.java new file mode 100644 index 00000000000..2e4a5bde218 --- /dev/null +++ b/src/test/java/seedu/address/model/task/TaskTest.java @@ -0,0 +1,85 @@ +package seedu.address.model.task; + +import org.junit.jupiter.api.Test; +import seedu.address.testutil.TaskBuilder; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static seedu.address.testutil.Assert.assertThrows; +import static seedu.address.testutil.TypicalTasks.FIRST_TASK; +import static seedu.address.testutil.TypicalTasks.SECOND_TASK; + +public class TaskTest { + @Test + public void asObservableList_modifyList_throwsUnsupportedOperationException() { + Task task = new TaskBuilder().build(); + assertThrows(UnsupportedOperationException.class, () -> task.getTags().remove(0)); + } + + @Test + public void isSameTask() { + //same object -> returns true + assertTrue(FIRST_TASK.isSameTask(FIRST_TASK)); + + //null -> returns false + assertFalse(FIRST_TASK.isSameTask(null)); + + // same name, all other attributes different -> returns true + Task editedFirstTask = new TaskBuilder().withName("Meeting").withDate("09-01-2011") + .withStartTime("00:00").withEndTime("01:00").withTags("hello").build(); + assertTrue(FIRST_TASK.isSameTask(editedFirstTask)); + + // different name, all other attributes same -> returns false + editedFirstTask= new TaskBuilder().withName("Swimming").withDate("09-10-2022") + .withStartTime("09:00").withEndTime("10:00") + .withTags("friends", "colleagues").build(); + assertFalse(FIRST_TASK.isSameTask(editedFirstTask)); + + // name with trailing spaces, all other attributes same -> returns false + editedFirstTask= new TaskBuilder().withName("Meeting ").withDate("09-10-2022") + .withStartTime("09:00").withEndTime("10:00") + .withTags("friends", "colleagues").build(); + assertFalse(FIRST_TASK.isSameTask(editedFirstTask)); + } + + @Test + public void equals() { + // same values -> returns true + Task firstTaskCopy = new TaskBuilder().withName("Meeting").withDate("09-10-2022") + .withStartTime("09:00").withEndTime("10:00") + .withTags("friends", "colleagues").build(); + assertTrue(FIRST_TASK.equals(firstTaskCopy)); + + // same object -> returns true + assertTrue(FIRST_TASK.equals(FIRST_TASK)); + + // null -> returns false + assertFalse(FIRST_TASK.equals(null)); + + // different type -> returns false + assertFalse(FIRST_TASK.equals(5)); + + // different task -> returns false + assertFalse(FIRST_TASK.equals(SECOND_TASK)); + + // different name -> returns false + Task editedFirstTask = new TaskBuilder(firstTaskCopy).withName("Swimming").build(); + assertFalse(FIRST_TASK.equals(editedFirstTask)); + + // different date -> returns false + editedFirstTask = new TaskBuilder(firstTaskCopy).withDate("01-10-2022").build(); + assertFalse(FIRST_TASK.equals(editedFirstTask)); + + // different start time -> returns false + editedFirstTask = new TaskBuilder(firstTaskCopy).withStartTime("22:00").build(); + assertFalse(FIRST_TASK.equals(editedFirstTask)); + + // different end time -> returns false + editedFirstTask = new TaskBuilder(firstTaskCopy).withEndTime("23:00").build(); + assertFalse(FIRST_TASK.equals(editedFirstTask)); + + // different tags -> returns false + editedFirstTask = new TaskBuilder(firstTaskCopy).withTags("neighbours").build(); + assertFalse(FIRST_TASK.equals(editedFirstTask)); + } +} diff --git a/src/test/java/seedu/address/testutil/TaskBuilder.java b/src/test/java/seedu/address/testutil/TaskBuilder.java new file mode 100644 index 00000000000..b0c0fd6909e --- /dev/null +++ b/src/test/java/seedu/address/testutil/TaskBuilder.java @@ -0,0 +1,92 @@ +package seedu.address.testutil; + +import seedu.address.model.person.Person; +import seedu.address.model.tag.Tag; +import seedu.address.model.task.*; +import seedu.address.model.util.SampleDataUtil; + +import java.util.HashSet; +import java.util.Set; + +public class TaskBuilder { + public static final String DEFAULT_NAME = "Meeting"; + public static final String DEFAULT_DATE = "09-10-2022"; + public static final String DEFAULT_START_TIME = "08:00"; + public static final String DEFAULT_END_TIME = "12:00"; + + private Name name; + private Date date; + private StartTime startTime; + private EndTime endTime; + private Set tags; + + /** + * Creates a {@code TaskBuilder} with the default details. + */ + public TaskBuilder() { + this.name = new Name(DEFAULT_NAME); + this.date = new Date(DEFAULT_DATE); + this.startTime = new StartTime(DEFAULT_START_TIME); + this.endTime = new EndTime(DEFAULT_END_TIME); + this.tags = new HashSet<>(); + } + + /** + * Creates a {@code TaskBuilder} with the data of {@code taskToCopy}. + */ + public TaskBuilder(Task taskToCopy) { + this.name = taskToCopy.getName(); + this.date = taskToCopy.getDate(); + this.startTime = taskToCopy.getStartTime(); + this.endTime = taskToCopy.getEndTime(); + this.tags = taskToCopy.getTags(); + } + + /** + * Sets the {@code Name} of the {@code Task} that we are building. + */ + public TaskBuilder withName(String name) { + this.name = new Name(name); + return this; + } + + /** + * Sets the {@code Date} of the {@code Task} that we are building. + */ + public TaskBuilder withDate(String date) { + this.date = new Date(date); + return this; + } + + /** + * Sets the {@code StartTime} of the {@code Task} that we are building. + */ + public TaskBuilder withStartTime(String startTime) { + this.startTime = new StartTime(startTime); + return this; + } + + /** + * Sets the {@code EndTime} of the {@code Task} that we are building. + */ + public TaskBuilder withEndTime(String endTime) { + this.endTime = new EndTime(endTime); + return this; + } + + /** + * Parses the {@code tags} into a {@code Set} and set it to the {@code Task} that we are building. + */ + public TaskBuilder withTags(String ... tags) { + this.tags = SampleDataUtil.getTagSet(tags); + return this; + } + + /** + * Creates {@code Task} and returns it. + */ + public Task build() { + return new Task(name, date, startTime, endTime, tags); + } +} + diff --git a/src/test/java/seedu/address/testutil/TypicalTasks.java b/src/test/java/seedu/address/testutil/TypicalTasks.java new file mode 100644 index 00000000000..5eb78f7a847 --- /dev/null +++ b/src/test/java/seedu/address/testutil/TypicalTasks.java @@ -0,0 +1,26 @@ +package seedu.address.testutil; + +import seedu.address.model.AddressBook; +import seedu.address.model.person.Person; +import seedu.address.model.task.Task; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +/** + * A utility class containing a list of {@code Task} objects to be used in tests. + */ +public class TypicalTasks { + public static final Task FIRST_TASK = new TaskBuilder().withName("Meeting").withDate("09-10-2022") + .withStartTime("09:00").withEndTime("10:00") + .withTags("friends", "colleagues").build(); + public static final Task SECOND_TASK = new TaskBuilder().withName("Training").withDate("29-02-2020") + .withStartTime("14:00").withEndTime("16:00") + .withTags("colleagues").build(); + public static final Task THIRD_TASK = new TaskBuilder().withName("Shareholder Meeting").withDate("29-02-2020") + .withStartTime("14:00").withEndTime("16:00") + .withTags("colleagues").build(); + + private TypicalTasks() {} // prevents instantiation +} From e94ed9f9ae29641be78863238a2520912ea48575 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Thu, 10 Mar 2022 15:10:19 +0800 Subject: [PATCH 049/455] Amend Find use case in DG --- docs/DeveloperGuide.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 5ed579d6078..aad71bfeb8a 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -404,11 +404,11 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli Use case resumes at step 1. -**Use case: Find persons by name and/or tag** +**Use case: Find persons by name or tag** **MSS** -1. User requests to list persons with a specific name and/or tag +1. User requests to list persons with a specific name or tag 2. Coach2K22 shows a list of filtered persons Use case ends. @@ -421,18 +421,24 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli Use case ends. -* 1b. The keyword provided does not indicate any prefix e.g. `n/` or `t/`. +* 1b. The keyword provided is not indicated by a prefix e.g. `n/` or `t/`. * 1b1. Coach2K22 shows an error message. Use case ends. -* 1c. No keywords are provided. +* 1c. No keywords are provided after the `find` command. * 1c1. Coach2K22 shows an error message. Use case ends. +* 1d. Missing keyword after a prefix is given e.g. `n/` or `t/`. + + * 1d1. Coach2K22 shows an error message. + + Use case ends. + **Use case: Add a tag to a person** **MSS** From dbb899d29eedb338cea0ec9f871dd23f7ea9f159 Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Thu, 10 Mar 2022 20:06:20 +0800 Subject: [PATCH 050/455] Add Note, AddNoteCommand and AddNoteCommandParser classes --- .../logic/commands/AddNoteCommand.java | 59 +++++++++++++++++++ .../logic/parser/AddNoteCommandParser.java | 31 ++++++++++ .../logic/parser/AddressBookParser.java | 4 ++ .../address/logic/parser/ParserUtil.java | 16 +++++ .../java/seedu/address/model/note/Note.java | 54 +++++++++++++++++ 5 files changed, 164 insertions(+) create mode 100644 src/main/java/seedu/address/logic/commands/AddNoteCommand.java create mode 100644 src/main/java/seedu/address/logic/parser/AddNoteCommandParser.java create mode 100644 src/main/java/seedu/address/model/note/Note.java diff --git a/src/main/java/seedu/address/logic/commands/AddNoteCommand.java b/src/main/java/seedu/address/logic/commands/AddNoteCommand.java new file mode 100644 index 00000000000..f5190c87906 --- /dev/null +++ b/src/main/java/seedu/address/logic/commands/AddNoteCommand.java @@ -0,0 +1,59 @@ +package seedu.address.logic.commands; + +import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; + +import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.exceptions.CommandException; +import seedu.address.model.Model; +import seedu.address.model.note.Note; + +/** + * Adds a note to a person in the address book. + */ +public class AddNoteCommand extends Command { + private final Index index; + private final Note note; + + public static final String COMMAND_WORD = "note-add"; + + public static final String MESSAGE_USAGE = COMMAND_WORD + ": Add a note to a selected person from our contact list. " + + "Parameters: " + + "INDEX (must be a positive integer) " + + "NOTE_DESCRIPTION (must be non-empty)\n" + + "Example: " + COMMAND_WORD + " " + + "1" + + "Surgery Scheduled for tomorrow"; + + public static final String MESSAGE_NOT_IMPLEMENTED_YET = + "AddNote command not implemented yet"; + + public static final String MESSAGE_SUCCESS = "New note added: %1$s"; + public static final String MESSAGE_DUPLICATE_PERSON = "This person already exists in the address book"; + + public static final String MESSAGE_ARGUMENTS = "Index: %1$d, Remark: %2$s"; + + /** + * @param index of the person in the filtered person list to add the note + * @param note of the person to be added + */ + public AddNoteCommand(Index index, Note note) { + requireAllNonNull(index, note); + + this.index = index; + this.note = note; + } + + @Override + public CommandResult execute(Model model) throws CommandException{ + throw new CommandException( + String.format(MESSAGE_ARGUMENTS, index.getOneBased(), note)); + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof AddNoteCommand // instanceof handles nulls + && (index.equals(((AddNoteCommand) other).index) + && note.equals(((AddNoteCommand) other).note))); + } +} diff --git a/src/main/java/seedu/address/logic/parser/AddNoteCommandParser.java b/src/main/java/seedu/address/logic/parser/AddNoteCommandParser.java new file mode 100644 index 00000000000..880d7665634 --- /dev/null +++ b/src/main/java/seedu/address/logic/parser/AddNoteCommandParser.java @@ -0,0 +1,31 @@ +package seedu.address.logic.parser; + +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; + +import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.AddNoteCommand; +import seedu.address.logic.commands.DeleteCommand; +import seedu.address.logic.parser.exceptions.ParseException; +import seedu.address.model.note.Note; + +/** + * Parses input arguments and creates a new {@code AddNoteCommand} object + */ +public class AddNoteCommandParser implements Parser { + /** + * Parses the given {@code String} of arguments in the context of the {@code AddNoteCommand} + * and returns a {@code AddNoteCommand} object for execution. + * @throws ParseException if the user input does not conform the expected format + */ + public AddNoteCommand parse(String args) throws ParseException { + try { + String[] splitArgs = args.trim().split("\\s+", 2); + Index index = ParserUtil.parseIndex(splitArgs[0]); + Note note = ParserUtil.parseNote(splitArgs[1]); + return new AddNoteCommand(index, note); + } catch (ParseException pe) { + throw new ParseException( + String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteCommand.MESSAGE_USAGE), pe); + } + } +} diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index 1e466792b46..877797edc26 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -7,6 +7,7 @@ import java.util.regex.Pattern; import seedu.address.logic.commands.AddCommand; +import seedu.address.logic.commands.AddNoteCommand; import seedu.address.logic.commands.ClearCommand; import seedu.address.logic.commands.Command; import seedu.address.logic.commands.DeleteCommand; @@ -62,6 +63,9 @@ public Command parseCommand(String userInput) throws ParseException { case ListCommand.COMMAND_WORD: return new ListCommand(); + case AddNoteCommand.COMMAND_WORD: + return new AddNoteCommandParser().parse(arguments); + case ExitCommand.COMMAND_WORD: return new ExitCommand(); diff --git a/src/main/java/seedu/address/logic/parser/ParserUtil.java b/src/main/java/seedu/address/logic/parser/ParserUtil.java index b117acb9c55..3a489db3673 100644 --- a/src/main/java/seedu/address/logic/parser/ParserUtil.java +++ b/src/main/java/seedu/address/logic/parser/ParserUtil.java @@ -9,6 +9,7 @@ import seedu.address.commons.core.index.Index; import seedu.address.commons.util.StringUtil; import seedu.address.logic.parser.exceptions.ParseException; +import seedu.address.model.note.Note; import seedu.address.model.person.Address; import seedu.address.model.person.Email; import seedu.address.model.person.Name; @@ -121,4 +122,19 @@ public static Set parseTags(Collection tags) throws ParseException } return tagSet; } + + /** + * Parses a {@code String note} into a {@code Note}. + * Leading and trailing whitespaces will be trimmed. + * + * @throws ParseException if the given {@code note} is invalid. + */ + public static Note parseNote(String note) throws ParseException { + requireNonNull(note); + String trimmedNote = note.trim(); + if (!Note.isValidNote(trimmedNote)) { + throw new ParseException(Tag.MESSAGE_CONSTRAINTS); + } + return new Note(trimmedNote); + } } diff --git a/src/main/java/seedu/address/model/note/Note.java b/src/main/java/seedu/address/model/note/Note.java new file mode 100644 index 00000000000..eea754f1180 --- /dev/null +++ b/src/main/java/seedu/address/model/note/Note.java @@ -0,0 +1,54 @@ +package seedu.address.model.note; + +import static java.util.Objects.requireNonNull; +import static seedu.address.commons.util.AppUtil.checkArgument; + +/** + * Represents a Note in the address book. + * Guarantees: immutable; name is valid as declared in {@link #isValidNote(String)} + */ +public class Note { + + public static final String MESSAGE_CONSTRAINTS = "Notes should be a String"; + public static final String VALIDATION_REGEX = "\\p{Print}+"; // printable + + public final String note; + + /** + * Constructs a {@code Note}. + * + * @param note A valid note string. + */ + public Note(String note) { + requireNonNull(note); + checkArgument(isValidNote(note), MESSAGE_CONSTRAINTS); + this.note = note; + } + + /** + * Returns true if a given string is a valid note. + */ + public static boolean isValidNote(String test) { + return test.matches(VALIDATION_REGEX); + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof Note // instanceof handles nulls + && note.equals(((Note) other).note)); // state check + } + + @Override + public int hashCode() { + return note.hashCode(); + } + + /** + * Format state as text for viewing. + */ + public String toString() { + return '[' + note + ']'; + } + +} From e620b11b06c3fe6c13ee6464ddf420acc6c0bb2a Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Thu, 10 Mar 2022 21:32:43 +0800 Subject: [PATCH 051/455] Add integration for AddNoteCommand --- docs/Gemfile | 2 + docs/Gemfile.lock | 229 +++++++++++------- .../logic/commands/AddNoteCommand.java | 37 ++- .../address/logic/commands/EditCommand.java | 28 ++- .../logic/parser/AddCommandParser.java | 6 +- .../seedu/address/model/person/Person.java | 26 +- .../address/model/util/SampleDataUtil.java | 23 +- .../address/storage/JsonAdaptedNote.java | 48 ++++ .../address/storage/JsonAdaptedPerson.java | 20 +- .../java/seedu/address/ui/PersonCard.java | 6 + src/main/resources/view/PersonListCard.fxml | 1 + .../duplicatePersonAddressBook.json | 6 +- .../typicalPersonsAddressBook.json | 21 +- .../logic/commands/EditCommandTest.java | 2 +- .../storage/JsonAdaptedPersonTest.java | 22 +- .../seedu/address/testutil/PersonBuilder.java | 17 +- .../address/testutil/TypicalPersons.java | 9 +- 17 files changed, 365 insertions(+), 138 deletions(-) create mode 100644 src/main/java/seedu/address/storage/JsonAdaptedNote.java diff --git a/docs/Gemfile b/docs/Gemfile index f3648431048..5d8f4e09290 100644 --- a/docs/Gemfile +++ b/docs/Gemfile @@ -7,3 +7,5 @@ git_source(:github) {"https://github.com/AY2122S2-CS2103T-W14-2/tp"} gem 'jekyll' gem 'github-pages', group: :jekyll_plugins gem 'wdm', '~> 0.1.0' if Gem.win_platform? + +gem "webrick", "~> 1.7" diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock index 323803b44ce..600a2e8b37d 100644 --- a/docs/Gemfile.lock +++ b/docs/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - activesupport (6.0.3.1) + activesupport (6.0.4.6) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 0.7, < 2) minitest (~> 5.1) @@ -16,86 +16,109 @@ GEM colorator (1.1.0) commonmarker (0.17.13) ruby-enum (~> 0.5) - concurrent-ruby (1.1.6) - dnsruby (1.61.3) - addressable (~> 2.5) - em-websocket (0.5.1) + concurrent-ruby (1.1.9) + dnsruby (1.61.9) + simpleidn (~> 0.1) + em-websocket (0.5.3) eventmachine (>= 0.12.9) - http_parser.rb (~> 0.6.0) - ethon (0.12.0) - ffi (>= 1.3.0) + http_parser.rb (~> 0) + ethon (0.15.0) + ffi (>= 1.15.0) eventmachine (1.2.7) eventmachine (1.2.7-x64-mingw32) - execjs (2.7.0) - faraday (1.0.1) + execjs (2.8.1) + faraday (1.10.0) + faraday-em_http (~> 1.0) + faraday-em_synchrony (~> 1.0) + faraday-excon (~> 1.1) + faraday-httpclient (~> 1.0) + faraday-multipart (~> 1.0) + faraday-net_http (~> 1.0) + faraday-net_http_persistent (~> 1.0) + faraday-patron (~> 1.0) + faraday-rack (~> 1.0) + faraday-retry (~> 1.0) + ruby2_keywords (>= 0.0.4) + faraday-em_http (1.0.0) + faraday-em_synchrony (1.0.0) + faraday-excon (1.1.0) + faraday-httpclient (1.0.1) + faraday-multipart (1.0.3) multipart-post (>= 1.2, < 3) - ffi (1.12.2) - ffi (1.12.2-x64-mingw32) + faraday-net_http (1.0.1) + faraday-net_http_persistent (1.2.0) + faraday-patron (1.0.0) + faraday-rack (1.0.0) + faraday-retry (1.0.3) + ffi (1.15.5) + ffi (1.15.5-x64-mingw32) forwardable-extended (2.6.0) gemoji (3.0.1) - github-pages (204) - github-pages-health-check (= 1.16.1) - jekyll (= 3.8.5) + github-pages (223) + github-pages-health-check (= 1.17.9) + jekyll (= 3.9.0) jekyll-avatar (= 0.7.0) jekyll-coffeescript (= 1.1.1) jekyll-commonmark-ghpages (= 0.1.6) jekyll-default-layout (= 0.1.4) - jekyll-feed (= 0.13.0) + jekyll-feed (= 0.15.1) jekyll-gist (= 1.5.0) jekyll-github-metadata (= 2.13.0) - jekyll-mentions (= 1.5.1) + jekyll-include-cache (= 0.2.1) + jekyll-mentions (= 1.6.0) jekyll-optional-front-matter (= 0.3.2) jekyll-paginate (= 1.1.0) jekyll-readme-index (= 0.3.0) - jekyll-redirect-from (= 0.15.0) + jekyll-redirect-from (= 0.16.0) jekyll-relative-links (= 0.6.1) - jekyll-remote-theme (= 0.4.1) + jekyll-remote-theme (= 0.4.3) jekyll-sass-converter (= 1.5.2) - jekyll-seo-tag (= 2.6.1) + jekyll-seo-tag (= 2.7.1) jekyll-sitemap (= 1.4.0) jekyll-swiss (= 1.0.0) - jekyll-theme-architect (= 0.1.1) - jekyll-theme-cayman (= 0.1.1) - jekyll-theme-dinky (= 0.1.1) - jekyll-theme-hacker (= 0.1.1) - jekyll-theme-leap-day (= 0.1.1) - jekyll-theme-merlot (= 0.1.1) - jekyll-theme-midnight (= 0.1.1) - jekyll-theme-minimal (= 0.1.1) - jekyll-theme-modernist (= 0.1.1) - jekyll-theme-primer (= 0.5.4) - jekyll-theme-slate (= 0.1.1) - jekyll-theme-tactile (= 0.1.1) - jekyll-theme-time-machine (= 0.1.1) + jekyll-theme-architect (= 0.2.0) + jekyll-theme-cayman (= 0.2.0) + jekyll-theme-dinky (= 0.2.0) + jekyll-theme-hacker (= 0.2.0) + jekyll-theme-leap-day (= 0.2.0) + jekyll-theme-merlot (= 0.2.0) + jekyll-theme-midnight (= 0.2.0) + jekyll-theme-minimal (= 0.2.0) + jekyll-theme-modernist (= 0.2.0) + jekyll-theme-primer (= 0.6.0) + jekyll-theme-slate (= 0.2.0) + jekyll-theme-tactile (= 0.2.0) + jekyll-theme-time-machine (= 0.2.0) jekyll-titles-from-headings (= 0.5.3) - jemoji (= 0.11.1) - kramdown (= 1.17.0) + jemoji (= 0.12.0) + kramdown (= 2.3.1) + kramdown-parser-gfm (= 1.1.0) liquid (= 4.0.3) mercenary (~> 0.3) minima (= 2.5.1) - nokogiri (>= 1.10.4, < 2.0) - rouge (= 3.13.0) + nokogiri (>= 1.12.5, < 2.0) + rouge (= 3.26.0) terminal-table (~> 1.4) - github-pages-health-check (1.16.1) + github-pages-health-check (1.17.9) addressable (~> 2.3) dnsruby (~> 1.60) octokit (~> 4.0) - public_suffix (~> 3.0) + public_suffix (>= 3.0, < 5.0) typhoeus (~> 1.3) - html-pipeline (2.12.3) + html-pipeline (2.14.0) activesupport (>= 2) nokogiri (>= 1.4) - http_parser.rb (0.6.0) + http_parser.rb (0.8.0) i18n (0.9.5) concurrent-ruby (~> 1.0) - jekyll (3.8.5) + jekyll (3.9.0) addressable (~> 2.4) colorator (~> 1.0) em-websocket (~> 0.5) i18n (~> 0.7) jekyll-sass-converter (~> 1.0) jekyll-watch (~> 2.0) - kramdown (~> 1.14) + kramdown (>= 1.17, < 3) liquid (~> 4.0) mercenary (~> 0.3.3) pathutil (~> 0.9) @@ -115,14 +138,16 @@ GEM rouge (>= 2.0, < 4.0) jekyll-default-layout (0.1.4) jekyll (~> 3.0) - jekyll-feed (0.13.0) + jekyll-feed (0.15.1) jekyll (>= 3.7, < 5.0) jekyll-gist (1.5.0) octokit (~> 4.2) jekyll-github-metadata (2.13.0) jekyll (>= 3.4, < 5.0) octokit (~> 4.0, != 4.4.0) - jekyll-mentions (1.5.1) + jekyll-include-cache (0.2.1) + jekyll (>= 3.7, < 5.0) + jekyll-mentions (1.6.0) html-pipeline (~> 2.3) jekyll (>= 3.7, < 5.0) jekyll-optional-front-matter (0.3.2) @@ -130,101 +155,107 @@ GEM jekyll-paginate (1.1.0) jekyll-readme-index (0.3.0) jekyll (>= 3.0, < 5.0) - jekyll-redirect-from (0.15.0) + jekyll-redirect-from (0.16.0) jekyll (>= 3.3, < 5.0) jekyll-relative-links (0.6.1) jekyll (>= 3.3, < 5.0) - jekyll-remote-theme (0.4.1) + jekyll-remote-theme (0.4.3) addressable (~> 2.0) jekyll (>= 3.5, < 5.0) - rubyzip (>= 1.3.0) + jekyll-sass-converter (>= 1.0, <= 3.0.0, != 2.0.0) + rubyzip (>= 1.3.0, < 3.0) jekyll-sass-converter (1.5.2) sass (~> 3.4) - jekyll-seo-tag (2.6.1) - jekyll (>= 3.3, < 5.0) + jekyll-seo-tag (2.7.1) + jekyll (>= 3.8, < 5.0) jekyll-sitemap (1.4.0) jekyll (>= 3.7, < 5.0) jekyll-swiss (1.0.0) - jekyll-theme-architect (0.1.1) - jekyll (~> 3.5) + jekyll-theme-architect (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-cayman (0.1.1) - jekyll (~> 3.5) + jekyll-theme-cayman (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-dinky (0.1.1) - jekyll (~> 3.5) + jekyll-theme-dinky (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-hacker (0.1.1) - jekyll (~> 3.5) + jekyll-theme-hacker (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-leap-day (0.1.1) - jekyll (~> 3.5) + jekyll-theme-leap-day (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-merlot (0.1.1) - jekyll (~> 3.5) + jekyll-theme-merlot (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-midnight (0.1.1) - jekyll (~> 3.5) + jekyll-theme-midnight (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-minimal (0.1.1) - jekyll (~> 3.5) + jekyll-theme-minimal (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-modernist (0.1.1) - jekyll (~> 3.5) + jekyll-theme-modernist (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-primer (0.5.4) + jekyll-theme-primer (0.6.0) jekyll (> 3.5, < 5.0) jekyll-github-metadata (~> 2.9) jekyll-seo-tag (~> 2.0) - jekyll-theme-slate (0.1.1) - jekyll (~> 3.5) + jekyll-theme-slate (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-tactile (0.1.1) - jekyll (~> 3.5) + jekyll-theme-tactile (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-time-machine (0.1.1) - jekyll (~> 3.5) + jekyll-theme-time-machine (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) jekyll-titles-from-headings (0.5.3) jekyll (>= 3.3, < 5.0) jekyll-watch (2.2.1) listen (~> 3.0) - jemoji (0.11.1) + jemoji (0.12.0) gemoji (~> 3.0) html-pipeline (~> 2.2) jekyll (>= 3.0, < 5.0) - kramdown (1.17.0) + kramdown (2.3.1) + rexml + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) liquid (4.0.3) - listen (3.2.1) + listen (3.7.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) mercenary (0.3.6) - mini_portile2 (2.6.1) + mini_portile2 (2.8.0) minima (2.5.1) jekyll (>= 3.5, < 5.0) jekyll-feed (~> 0.9) jekyll-seo-tag (~> 2.1) - minitest (5.14.1) + minitest (5.15.0) multipart-post (2.1.1) - nokogiri (1.12.5) - mini_portile2 (~> 2.6.1) + nokogiri (1.13.3) + mini_portile2 (~> 2.8.0) racc (~> 1.4) - nokogiri (1.12.5-x64-mingw32) + nokogiri (1.13.3-x64-mingw32) racc (~> 1.4) - octokit (4.18.0) + octokit (4.22.0) faraday (>= 0.9) sawyer (~> 0.8.0, >= 0.5.3) pathutil (0.16.2) forwardable-extended (~> 2.6) - public_suffix (3.1.1) - racc (1.5.2) - rb-fsevent (0.10.4) + public_suffix (4.0.6) + racc (1.6.0) + rb-fsevent (0.11.1) rb-inotify (0.10.1) ffi (~> 1.0) - rouge (3.13.0) - ruby-enum (0.8.0) + rexml (3.2.5) + rouge (3.26.0) + ruby-enum (0.9.0) i18n - rubyzip (2.3.0) + ruby2_keywords (0.0.5) + rubyzip (2.3.2) safe_yaml (1.0.5) sass (3.7.4) sass-listen (~> 4.0.0) @@ -234,15 +265,23 @@ GEM sawyer (0.8.2) addressable (>= 2.3.5) faraday (> 0.8, < 2.0) + simpleidn (0.2.1) + unf (~> 0.1.4) terminal-table (1.8.0) unicode-display_width (~> 1.1, >= 1.1.1) thread_safe (0.3.6) typhoeus (1.4.0) ethon (>= 0.9.0) - tzinfo (1.2.7) + tzinfo (1.2.9) thread_safe (~> 0.1) - unicode-display_width (1.7.0) - zeitwerk (2.3.0) + unf (0.1.4) + unf_ext + unf_ext (0.0.8) + unf_ext (0.0.8-x64-mingw32) + unicode-display_width (1.8.0) + wdm (0.1.1) + webrick (1.7.0) + zeitwerk (2.5.4) PLATFORMS ruby @@ -251,6 +290,8 @@ PLATFORMS DEPENDENCIES github-pages jekyll + wdm (~> 0.1.0) + webrick (~> 1.7) BUNDLED WITH - 2.1.4 + 2.3.7 diff --git a/src/main/java/seedu/address/logic/commands/AddNoteCommand.java b/src/main/java/seedu/address/logic/commands/AddNoteCommand.java index f5190c87906..4c8d9c00a37 100644 --- a/src/main/java/seedu/address/logic/commands/AddNoteCommand.java +++ b/src/main/java/seedu/address/logic/commands/AddNoteCommand.java @@ -1,11 +1,17 @@ package seedu.address.logic.commands; import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; +import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; +import java.util.ArrayList; +import java.util.List; + +import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; import seedu.address.model.note.Note; +import seedu.address.model.person.Person; /** * Adds a note to a person in the address book. @@ -28,7 +34,6 @@ public class AddNoteCommand extends Command { "AddNote command not implemented yet"; public static final String MESSAGE_SUCCESS = "New note added: %1$s"; - public static final String MESSAGE_DUPLICATE_PERSON = "This person already exists in the address book"; public static final String MESSAGE_ARGUMENTS = "Index: %1$d, Remark: %2$s"; @@ -44,9 +49,33 @@ public AddNoteCommand(Index index, Note note) { } @Override - public CommandResult execute(Model model) throws CommandException{ - throw new CommandException( - String.format(MESSAGE_ARGUMENTS, index.getOneBased(), note)); + public CommandResult execute(Model model) throws CommandException { + List lastShownList = model.getFilteredPersonList(); + + if (index.getZeroBased() >= lastShownList.size()) { + throw new CommandException(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + } + + Person personToEdit = lastShownList.get(index.getZeroBased()); + List newNotes = new ArrayList<>(personToEdit.getNotes()); + newNotes.add(note); + + Person editedPerson = new Person( + personToEdit.getName(), personToEdit.getPhone(), personToEdit.getEmail(), + personToEdit.getAddress(), personToEdit.getTags(), newNotes); + + model.setPerson(personToEdit, editedPerson); + model.updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); + + return new CommandResult(generateSuccessMessage(editedPerson)); + } + + /** + * Generates a command execution success message + * {@code personToEdit}. + */ + private String generateSuccessMessage(Person personToEdit) { + return String.format(MESSAGE_SUCCESS, personToEdit); } @Override diff --git a/src/main/java/seedu/address/logic/commands/EditCommand.java b/src/main/java/seedu/address/logic/commands/EditCommand.java index 7e36114902f..e9b9595e13d 100644 --- a/src/main/java/seedu/address/logic/commands/EditCommand.java +++ b/src/main/java/seedu/address/logic/commands/EditCommand.java @@ -8,6 +8,7 @@ import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; +import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; import java.util.List; @@ -19,6 +20,7 @@ import seedu.address.commons.util.CollectionUtil; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; +import seedu.address.model.note.Note; import seedu.address.model.person.Address; import seedu.address.model.person.Email; import seedu.address.model.person.Name; @@ -98,8 +100,8 @@ private static Person createEditedPerson(Person personToEdit, EditPersonDescript Email updatedEmail = editPersonDescriptor.getEmail().orElse(personToEdit.getEmail()); Address updatedAddress = editPersonDescriptor.getAddress().orElse(personToEdit.getAddress()); Set updatedTags = editPersonDescriptor.getTags().orElse(personToEdit.getTags()); - - return new Person(updatedName, updatedPhone, updatedEmail, updatedAddress, updatedTags); + List updatedNotes = editPersonDescriptor.getNotes().orElse(personToEdit.getNotes()); + return new Person(updatedName, updatedPhone, updatedEmail, updatedAddress, updatedTags, updatedNotes); } @Override @@ -130,6 +132,7 @@ public static class EditPersonDescriptor { private Email email; private Address address; private Set tags; + private List notes; public EditPersonDescriptor() {} @@ -143,6 +146,7 @@ public EditPersonDescriptor(EditPersonDescriptor toCopy) { setEmail(toCopy.email); setAddress(toCopy.address); setTags(toCopy.tags); + setNotes(toCopy.notes); } /** @@ -201,6 +205,23 @@ public Optional> getTags() { return (tags != null) ? Optional.of(Collections.unmodifiableSet(tags)) : Optional.empty(); } + /** + * Sets {@code notes} to this object's {@code notes}. + * A defensive copy of {@code notes} is used internally. + */ + public void setNotes(List notes) { + this.notes = (notes != null) ? new ArrayList<>(notes) : null; + } + + /** + * Returns an unmodifiable note list, which throws {@code UnsupportedOperationException} + * if modification is attempted. + * Returns {@code Optional#empty()} if {@code notes} is null. + */ + public Optional> getNotes() { + return (notes != null) ? Optional.of(Collections.unmodifiableList(notes)) : Optional.empty(); + } + @Override public boolean equals(Object other) { // short circuit if same object @@ -220,7 +241,8 @@ public boolean equals(Object other) { && getPhone().equals(e.getPhone()) && getEmail().equals(e.getEmail()) && getAddress().equals(e.getAddress()) - && getTags().equals(e.getTags()); + && getTags().equals(e.getTags()) + && getNotes().equals(e.getNotes()); } } } diff --git a/src/main/java/seedu/address/logic/parser/AddCommandParser.java b/src/main/java/seedu/address/logic/parser/AddCommandParser.java index 3b8bfa035e8..3058678e253 100644 --- a/src/main/java/seedu/address/logic/parser/AddCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/AddCommandParser.java @@ -7,11 +7,14 @@ import static seedu.address.logic.parser.CliSyntax.PREFIX_PHONE; import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; +import java.util.ArrayList; +import java.util.List; import java.util.Set; import java.util.stream.Stream; import seedu.address.logic.commands.AddCommand; import seedu.address.logic.parser.exceptions.ParseException; +import seedu.address.model.note.Note; import seedu.address.model.person.Address; import seedu.address.model.person.Email; import seedu.address.model.person.Name; @@ -43,8 +46,9 @@ public AddCommand parse(String args) throws ParseException { Email email = ParserUtil.parseEmail(argMultimap.getValue(PREFIX_EMAIL).get()); Address address = ParserUtil.parseAddress(argMultimap.getValue(PREFIX_ADDRESS).get()); Set tagList = ParserUtil.parseTags(argMultimap.getAllValues(PREFIX_TAG)); + List noteList = new ArrayList<>(); - Person person = new Person(name, phone, email, address, tagList); + Person person = new Person(name, phone, email, address, tagList, noteList); return new AddCommand(person); } diff --git a/src/main/java/seedu/address/model/person/Person.java b/src/main/java/seedu/address/model/person/Person.java index 8ff1d83fe89..3bf5549e666 100644 --- a/src/main/java/seedu/address/model/person/Person.java +++ b/src/main/java/seedu/address/model/person/Person.java @@ -2,11 +2,14 @@ import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; +import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; +import java.util.List; import java.util.Objects; import java.util.Set; +import seedu.address.model.note.Note; import seedu.address.model.tag.Tag; /** @@ -23,17 +26,19 @@ public class Person { // Data fields private final Address address; private final Set tags = new HashSet<>(); + private final List notes = new ArrayList<>(); /** * Every field must be present and not null. */ - public Person(Name name, Phone phone, Email email, Address address, Set tags) { + public Person(Name name, Phone phone, Email email, Address address, Set tags, List notes) { requireAllNonNull(name, phone, email, address, tags); this.name = name; this.phone = phone; this.email = email; this.address = address; this.tags.addAll(tags); + this.notes.addAll(notes); } public Name getName() { @@ -60,6 +65,14 @@ public Set getTags() { return Collections.unmodifiableSet(tags); } + /** + * Returns an immutable note list, which throws {@code UnsupportedOperationException} + * if modification is attempted. + */ + public List getNotes() { + return Collections.unmodifiableList(notes); + } + /** * Returns true if both persons have the same name. * This defines a weaker notion of equality between two persons. @@ -92,13 +105,14 @@ public boolean equals(Object other) { && otherPerson.getPhone().equals(getPhone()) && otherPerson.getEmail().equals(getEmail()) && otherPerson.getAddress().equals(getAddress()) - && otherPerson.getTags().equals(getTags()); + && otherPerson.getTags().equals(getTags()) + && otherPerson.getNotes().equals(getNotes()); } @Override public int hashCode() { // use this method for custom fields hashing instead of implementing your own - return Objects.hash(name, phone, email, address, tags); + return Objects.hash(name, phone, email, address, tags, notes); } @Override @@ -117,6 +131,12 @@ public String toString() { builder.append("; Tags: "); tags.forEach(builder::append); } + + List notes = getNotes(); + if (!notes.isEmpty()) { + builder.append("; Note: "); + notes.forEach(builder::append); + } return builder.toString(); } diff --git a/src/main/java/seedu/address/model/util/SampleDataUtil.java b/src/main/java/seedu/address/model/util/SampleDataUtil.java index 1806da4facf..e68d8202ed1 100644 --- a/src/main/java/seedu/address/model/util/SampleDataUtil.java +++ b/src/main/java/seedu/address/model/util/SampleDataUtil.java @@ -1,11 +1,13 @@ package seedu.address.model.util; import java.util.Arrays; +import java.util.List; import java.util.Set; import java.util.stream.Collectors; import seedu.address.model.AddressBook; import seedu.address.model.ReadOnlyAddressBook; +import seedu.address.model.note.Note; import seedu.address.model.person.Address; import seedu.address.model.person.Email; import seedu.address.model.person.Name; @@ -21,22 +23,22 @@ public static Person[] getSamplePersons() { return new Person[] { new Person(new Name("Alex Yeoh"), new Phone("87438807"), new Email("alexyeoh@example.com"), new Address("Blk 30 Geylang Street 29, #06-40"), - getTagSet("friends")), + getTagSet("friends"), getNoteList("likes bing chilling")), new Person(new Name("Bernice Yu"), new Phone("99272758"), new Email("berniceyu@example.com"), new Address("Blk 30 Lorong 3 Serangoon Gardens, #07-18"), - getTagSet("colleagues", "friends")), + getTagSet("colleagues", "friends"), getNoteList("surgery scheduled today")), new Person(new Name("Charlotte Oliveiro"), new Phone("93210283"), new Email("charlotte@example.com"), new Address("Blk 11 Ang Mo Kio Street 74, #11-04"), - getTagSet("neighbours")), + getTagSet("neighbours"), getNoteList("birthday next Monday")), new Person(new Name("David Li"), new Phone("91031282"), new Email("lidavid@example.com"), new Address("Blk 436 Serangoon Gardens Street 26, #16-43"), - getTagSet("family")), + getTagSet("family"), getNoteList("buy a new phone")), new Person(new Name("Irfan Ibrahim"), new Phone("92492021"), new Email("irfan@example.com"), new Address("Blk 47 Tampines Street 20, #17-35"), - getTagSet("classmates")), + getTagSet("classmates"), getNoteList("play games together tonight")), new Person(new Name("Roy Balakrishnan"), new Phone("92624417"), new Email("royb@example.com"), new Address("Blk 45 Aljunied Street 85, #11-31"), - getTagSet("colleagues")) + getTagSet("colleagues"), getNoteList("meeting with him this Sunday")) }; } @@ -57,4 +59,13 @@ public static Set getTagSet(String... strings) { .collect(Collectors.toSet()); } + /** + * Returns a note list containing the list of strings given. + */ + public static List getNoteList(String... strings) { + return Arrays.stream(strings) + .map(Note::new) + .collect(Collectors.toList()); + } + } diff --git a/src/main/java/seedu/address/storage/JsonAdaptedNote.java b/src/main/java/seedu/address/storage/JsonAdaptedNote.java new file mode 100644 index 00000000000..90acfa62863 --- /dev/null +++ b/src/main/java/seedu/address/storage/JsonAdaptedNote.java @@ -0,0 +1,48 @@ +package seedu.address.storage; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +import seedu.address.commons.exceptions.IllegalValueException; +import seedu.address.model.note.Note; + +/** + * Jackson-friendly version of {@link Note}. + */ +class JsonAdaptedNote { + + private final String note; + + /** + * Constructs a {@code JsonAdaptedNote} with the given {@code note}. + */ + @JsonCreator + public JsonAdaptedNote(String note) { + this.note = note; + } + + /** + * Converts a given {@code Note} into this class for Jackson use. + */ + public JsonAdaptedNote(Note source) { + note = source.note; + } + + @JsonValue + public String getNote() { + return note; + } + + /** + * Converts this Jackson-friendly adapted note object into the model's {@code Note} object. + * + * @throws IllegalValueException if there were any data constraints violated in the adapted note. + */ + public Note toModelType() throws IllegalValueException { + if (!Note.isValidNote(note)) { + throw new IllegalValueException(Note.MESSAGE_CONSTRAINTS); + } + return new Note(note); + } + +} \ No newline at end of file diff --git a/src/main/java/seedu/address/storage/JsonAdaptedPerson.java b/src/main/java/seedu/address/storage/JsonAdaptedPerson.java index a6321cec2ea..7b6b5b5992d 100644 --- a/src/main/java/seedu/address/storage/JsonAdaptedPerson.java +++ b/src/main/java/seedu/address/storage/JsonAdaptedPerson.java @@ -8,8 +8,10 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonAppend; import seedu.address.commons.exceptions.IllegalValueException; +import seedu.address.model.note.Note; import seedu.address.model.person.Address; import seedu.address.model.person.Email; import seedu.address.model.person.Name; @@ -29,14 +31,15 @@ class JsonAdaptedPerson { private final String email; private final String address; private final List tagged = new ArrayList<>(); - + private final List notes = new ArrayList<>(); /** * Constructs a {@code JsonAdaptedPerson} with the given person details. */ @JsonCreator public JsonAdaptedPerson(@JsonProperty("name") String name, @JsonProperty("phone") String phone, @JsonProperty("email") String email, @JsonProperty("address") String address, - @JsonProperty("tagged") List tagged) { + @JsonProperty("tagged") List tagged, + @JsonProperty("notes") List notes) { this.name = name; this.phone = phone; this.email = email; @@ -44,6 +47,9 @@ public JsonAdaptedPerson(@JsonProperty("name") String name, @JsonProperty("phone if (tagged != null) { this.tagged.addAll(tagged); } + if (notes != null) { + this.notes.addAll(notes); + } } /** @@ -57,6 +63,9 @@ public JsonAdaptedPerson(Person source) { tagged.addAll(source.getTags().stream() .map(JsonAdaptedTag::new) .collect(Collectors.toList())); + notes.addAll(source.getNotes().stream() + .map(JsonAdaptedNote::new) + .collect(Collectors.toList())); } /** @@ -66,9 +75,13 @@ public JsonAdaptedPerson(Person source) { */ public Person toModelType() throws IllegalValueException { final List personTags = new ArrayList<>(); + final List personNotes = new ArrayList<>(); for (JsonAdaptedTag tag : tagged) { personTags.add(tag.toModelType()); } + for (JsonAdaptedNote note : notes) { + personNotes.add(note.toModelType()); + } if (name == null) { throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Name.class.getSimpleName())); @@ -103,7 +116,8 @@ public Person toModelType() throws IllegalValueException { final Address modelAddress = new Address(address); final Set modelTags = new HashSet<>(personTags); - return new Person(modelName, modelPhone, modelEmail, modelAddress, modelTags); + final List modelNotes = new ArrayList<>(personNotes); + return new Person(modelName, modelPhone, modelEmail, modelAddress, modelTags, modelNotes); } } diff --git a/src/main/java/seedu/address/ui/PersonCard.java b/src/main/java/seedu/address/ui/PersonCard.java index 7fc927bc5d9..a2374681d23 100644 --- a/src/main/java/seedu/address/ui/PersonCard.java +++ b/src/main/java/seedu/address/ui/PersonCard.java @@ -1,6 +1,7 @@ package seedu.address.ui; import java.util.Comparator; +import java.util.stream.Collectors; import javafx.fxml.FXML; import javafx.scene.control.Label; @@ -40,6 +41,8 @@ public class PersonCard extends UiPart { private Label email; @FXML private FlowPane tags; + @FXML + private Label notes; /** * Creates a {@code PersonCode} with the given {@code Person} and index to display. @@ -55,6 +58,9 @@ public PersonCard(Person person, int displayedIndex) { person.getTags().stream() .sorted(Comparator.comparing(tag -> tag.tagName)) .forEach(tag -> tags.getChildren().add(new Label(tag.tagName))); + notes.setText(person.getNotes() + .stream().map(Object::toString) + .collect(Collectors.joining("\n"))); } @Override diff --git a/src/main/resources/view/PersonListCard.fxml b/src/main/resources/view/PersonListCard.fxml index f08ea32ad55..217429b5d53 100644 --- a/src/main/resources/view/PersonListCard.fxml +++ b/src/main/resources/view/PersonListCard.fxml @@ -31,6 +31,7 @@ - + From 21c4763d09fcc1b0adf352aa432807f3b669451c Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Mon, 14 Mar 2022 01:04:21 +0800 Subject: [PATCH 062/455] Implement note-del feature --- .../seedu/address/commons/core/Messages.java | 1 + .../logic/commands/DeleteNoteCommand.java | 93 +++++++++++++++++++ .../logic/parser/AddressBookParser.java | 4 + .../logic/parser/DeleteNoteCommandParser.java | 30 ++++++ .../address/logic/parser/ParserUtil.java | 15 +++ .../logic/commands/DeleteNoteCommandTest.java | 64 +++++++++++++ .../parser/DeleteNoteCommandParserTest.java | 30 ++++++ .../address/testutil/TypicalIndexes.java | 1 + 8 files changed, 238 insertions(+) create mode 100644 src/main/java/seedu/address/logic/commands/DeleteNoteCommand.java create mode 100644 src/main/java/seedu/address/logic/parser/DeleteNoteCommandParser.java create mode 100644 src/test/java/seedu/address/logic/commands/DeleteNoteCommandTest.java create mode 100644 src/test/java/seedu/address/logic/parser/DeleteNoteCommandParserTest.java diff --git a/src/main/java/seedu/address/commons/core/Messages.java b/src/main/java/seedu/address/commons/core/Messages.java index 1deb3a1e469..97c067aa205 100644 --- a/src/main/java/seedu/address/commons/core/Messages.java +++ b/src/main/java/seedu/address/commons/core/Messages.java @@ -8,6 +8,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_PERSON_DISPLAYED_INDEX = "The person index provided is invalid"; + public static final String MESSAGE_INVALID_NOTE_DISPLAYED_INDEX = "The note index provided is invalid"; public static final String MESSAGE_PERSONS_LISTED_OVERVIEW = "%1$d persons listed!"; } diff --git a/src/main/java/seedu/address/logic/commands/DeleteNoteCommand.java b/src/main/java/seedu/address/logic/commands/DeleteNoteCommand.java new file mode 100644 index 00000000000..5571333d88a --- /dev/null +++ b/src/main/java/seedu/address/logic/commands/DeleteNoteCommand.java @@ -0,0 +1,93 @@ +package seedu.address.logic.commands; + +import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; +import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; + +import java.util.ArrayList; +import java.util.List; + +import seedu.address.commons.core.Messages; +import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.exceptions.CommandException; +import seedu.address.model.Model; +import seedu.address.model.note.Note; +import seedu.address.model.person.Person; + +/** + * Delete a note from a person in the address book + */ +public class DeleteNoteCommand extends Command { + public static final String COMMAND_WORD = "note-del"; + + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Delete a note from the note-list of selected person from our contact list. " + + "Parameters: " + + "INDEX (must be a positive integer) " + + "NOTE-INDEX (must be a positive)\n" + + "Example: " + COMMAND_WORD + " " + + "1 " + + "2"; + + public static final String MESSAGE_NOT_IMPLEMENTED_YET = + "DeleteNote command not implemented yet"; + + public static final String MESSAGE_SUCCESS = "Note has been deleted: %1$s"; + + public static final String MESSAGE_ARGUMENTS = "Index: %1$d, Index: %2$d"; + + private final Index index; + private final Index noteIndex; + + /** + * Constructor of DeleteNoteCommand class + * @param index index of the person in the filtered person list + * @param noteIndex index of the note from the person's note-list to be deleted + */ + public DeleteNoteCommand(Index index, Index noteIndex) { + requireAllNonNull(index, noteIndex); + this.index = index; + this.noteIndex = noteIndex; + } + + @Override + public CommandResult execute(Model model) throws CommandException { + List lastShownList = model.getFilteredPersonList(); + + if (index.getZeroBased() >= lastShownList.size()) { + throw new CommandException(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + } + + Person personToEdit = lastShownList.get(index.getZeroBased()); + List newNotes = new ArrayList<>(personToEdit.getNotes()); + + if (noteIndex.getZeroBased() >= newNotes.size()) { + throw new CommandException(Messages.MESSAGE_INVALID_NOTE_DISPLAYED_INDEX); + } + newNotes.remove(noteIndex.getZeroBased()); + + Person editedPerson = new Person( + personToEdit.getName(), personToEdit.getPhone(), personToEdit.getEmail(), + personToEdit.getAddress(), personToEdit.getTags(), newNotes); + + model.setPerson(personToEdit, editedPerson); + model.updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); + + return new CommandResult(generateSuccessMessage(editedPerson)); + } + + /** + * Generates a command execution success message + * {@code personToEdit}. + */ + private String generateSuccessMessage(Person personToEdit) { + return String.format(MESSAGE_SUCCESS, personToEdit); + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof DeleteNoteCommand // instanceof handles nulls + && (index.equals(((DeleteNoteCommand) other).index) + && noteIndex.equals(((DeleteNoteCommand) other).noteIndex))); + } +} diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index 877797edc26..5dc922009a5 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -11,6 +11,7 @@ import seedu.address.logic.commands.ClearCommand; import seedu.address.logic.commands.Command; import seedu.address.logic.commands.DeleteCommand; +import seedu.address.logic.commands.DeleteNoteCommand; import seedu.address.logic.commands.EditCommand; import seedu.address.logic.commands.ExitCommand; import seedu.address.logic.commands.FindCommand; @@ -66,6 +67,9 @@ public Command parseCommand(String userInput) throws ParseException { case AddNoteCommand.COMMAND_WORD: return new AddNoteCommandParser().parse(arguments); + case DeleteNoteCommand.COMMAND_WORD: + return new DeleteNoteCommandParser().parse(arguments); + case ExitCommand.COMMAND_WORD: return new ExitCommand(); diff --git a/src/main/java/seedu/address/logic/parser/DeleteNoteCommandParser.java b/src/main/java/seedu/address/logic/parser/DeleteNoteCommandParser.java new file mode 100644 index 00000000000..7e6bd9753d0 --- /dev/null +++ b/src/main/java/seedu/address/logic/parser/DeleteNoteCommandParser.java @@ -0,0 +1,30 @@ +package seedu.address.logic.parser; + +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; + +import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.DeleteNoteCommand; +import seedu.address.logic.parser.exceptions.ParseException; + +/** + * Parses input arguments and creates a new {@code DeleteNoteCommand} object + */ +public class DeleteNoteCommandParser implements Parser { + /** + * Parses the given {@code String} of arguments in the context of the {@code DeleteNoteCommand} + * and returns a {@code DeleteNoteCommand} object for execution. + * @throws ParseException if the user input does not conform the expected format + */ + @Override + public DeleteNoteCommand parse(String args) throws ParseException { + try { + String[] splitArgs = args.trim().split("\\s+", 2); + Index index = ParserUtil.parseIndex(splitArgs[0]); + Index noteIndex = ParserUtil.parseNoteIndex(splitArgs[1]); + return new DeleteNoteCommand(index, noteIndex); + } catch (ParseException | IndexOutOfBoundsException pe) { + throw new ParseException( + String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteNoteCommand.MESSAGE_USAGE), pe); + } + } +} diff --git a/src/main/java/seedu/address/logic/parser/ParserUtil.java b/src/main/java/seedu/address/logic/parser/ParserUtil.java index f3699c7e730..5b593ff9e03 100644 --- a/src/main/java/seedu/address/logic/parser/ParserUtil.java +++ b/src/main/java/seedu/address/logic/parser/ParserUtil.java @@ -23,6 +23,8 @@ public class ParserUtil { public static final String MESSAGE_INVALID_INDEX = "Index is not a non-zero unsigned integer."; + public static final String MESSAGE_INVALID_NOTE_INDEX = "Note index is not a non-zero unsigned integer."; + /** * Parses {@code oneBasedIndex} into an {@code Index} and returns it. Leading and trailing whitespaces will be * trimmed. @@ -36,6 +38,19 @@ public static Index parseIndex(String oneBasedIndex) throws ParseException { return Index.fromOneBased(Integer.parseInt(trimmedIndex)); } + /** + * Parses {@code oneBasedIndex} into an {@code Index} and returns it. Leading and trailing whitespaces will be + * trimmed. + * @throws ParseException if the specified index is invalid (not non-zero unsigned integer). + */ + public static Index parseNoteIndex(String oneBasedIndex) throws ParseException { + String trimmedIndex = oneBasedIndex.trim(); + if (!StringUtil.isNonZeroUnsignedInteger(trimmedIndex)) { + throw new ParseException(MESSAGE_INVALID_NOTE_INDEX); + } + return Index.fromOneBased(Integer.parseInt(trimmedIndex)); + } + /** * Parses a {@code String name} into a {@code Name}. * Leading and trailing whitespaces will be trimmed. diff --git a/src/test/java/seedu/address/logic/commands/DeleteNoteCommandTest.java b/src/test/java/seedu/address/logic/commands/DeleteNoteCommandTest.java new file mode 100644 index 00000000000..dc2fa13f5a3 --- /dev/null +++ b/src/test/java/seedu/address/logic/commands/DeleteNoteCommandTest.java @@ -0,0 +1,64 @@ +package seedu.address.logic.commands; + +import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; +import static seedu.address.testutil.Assert.assertThrows; +import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_PERSON; +import static seedu.address.testutil.TypicalIndexes.NOTE_INDEX_SECOND_PERSON; +import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.jupiter.api.Test; + +import seedu.address.commons.core.Messages; +import seedu.address.commons.core.index.Index; +import seedu.address.model.Model; +import seedu.address.model.ModelManager; +import seedu.address.model.UserPrefs; +import seedu.address.model.note.Note; +import seedu.address.model.person.Person; + +/** + * Contains integration tests (interaction with the Model) for + * {@code DeleteNoteCommand}. + */ +public class DeleteNoteCommandTest { + + private final Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + + @Test + public void constructor_nullIndex_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> new DeleteNoteCommand(null, null)); + } + + @Test + public void execute_validNoteIndexUnfilteredList_success() throws Exception { + Person personToDeleteNoteFrom = model.getFilteredPersonList().get(INDEX_SECOND_PERSON.getZeroBased()); + List newNotes = new ArrayList<>(personToDeleteNoteFrom.getNotes()); + newNotes.remove(NOTE_INDEX_SECOND_PERSON.getZeroBased()); + Person personWithModifiedNote = new Person(personToDeleteNoteFrom.getName(), personToDeleteNoteFrom.getPhone(), + personToDeleteNoteFrom.getEmail(), personToDeleteNoteFrom.getAddress(), + personToDeleteNoteFrom.getTags(), newNotes); + + DeleteNoteCommand deleteNoteCommand = new DeleteNoteCommand(INDEX_SECOND_PERSON, NOTE_INDEX_SECOND_PERSON); + + String expectedMessage = String.format(DeleteNoteCommand.MESSAGE_SUCCESS, personWithModifiedNote); + + ModelManager expectedModel = new ModelManager(model.getAddressBook(), + model.getTaskBook(), new UserPrefs()); + deleteNoteCommand.execute(expectedModel); + assertCommandSuccess(deleteNoteCommand, model, expectedMessage, expectedModel); + } + + @Test + public void execute_invalidNoteIndexUnfilteredList_throwsCommandException() { + Index outOfBoundNoteIndex = Index.fromOneBased(model.getFilteredPersonList().get( + INDEX_SECOND_PERSON.getZeroBased()).getNotes().size() + 1); + DeleteNoteCommand deleteNoteCommand = new DeleteNoteCommand(INDEX_SECOND_PERSON, outOfBoundNoteIndex); + + assertCommandFailure(deleteNoteCommand, model, Messages.MESSAGE_INVALID_NOTE_DISPLAYED_INDEX); + } +} diff --git a/src/test/java/seedu/address/logic/parser/DeleteNoteCommandParserTest.java b/src/test/java/seedu/address/logic/parser/DeleteNoteCommandParserTest.java new file mode 100644 index 00000000000..256853c41a4 --- /dev/null +++ b/src/test/java/seedu/address/logic/parser/DeleteNoteCommandParserTest.java @@ -0,0 +1,30 @@ +package seedu.address.logic.parser; + +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; +import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; +import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_PERSON; +import static seedu.address.testutil.TypicalIndexes.NOTE_INDEX_SECOND_PERSON; + +import org.junit.jupiter.api.Test; + +import seedu.address.logic.commands.DeleteNoteCommand; + +/** + * Contains tests for + * {@code DeleteNoteCommandParser}. + */ +public class DeleteNoteCommandParserTest { + private DeleteNoteCommandParser parser = new DeleteNoteCommandParser(); + + @Test + public void parse_validArgs_returnsDeleteCommand() { + assertParseSuccess(parser, "2 1", new DeleteNoteCommand(INDEX_SECOND_PERSON, NOTE_INDEX_SECOND_PERSON)); + } + + @Test + public void parse_invalidArgs_throwsParseException() { + assertParseFailure(parser, "2", String.format(MESSAGE_INVALID_COMMAND_FORMAT, + DeleteNoteCommand.MESSAGE_USAGE)); + } +} diff --git a/src/test/java/seedu/address/testutil/TypicalIndexes.java b/src/test/java/seedu/address/testutil/TypicalIndexes.java index 1e613937657..ad5cd56e818 100644 --- a/src/test/java/seedu/address/testutil/TypicalIndexes.java +++ b/src/test/java/seedu/address/testutil/TypicalIndexes.java @@ -9,4 +9,5 @@ public class TypicalIndexes { public static final Index INDEX_FIRST_PERSON = Index.fromOneBased(1); public static final Index INDEX_SECOND_PERSON = Index.fromOneBased(2); public static final Index INDEX_THIRD_PERSON = Index.fromOneBased(3); + public static final Index NOTE_INDEX_SECOND_PERSON = Index.fromOneBased(1); } From 9a3ba2884819070d8e31faa176c98afc2c1495d9 Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Mon, 14 Mar 2022 01:40:07 +0800 Subject: [PATCH 063/455] Implements fxml files for TaskCard and TaskPanel --- src/main/resources/view/TaskCard.fxml | 39 ++++++++++++++++++++++++++ src/main/resources/view/TaskPanel.fxml | 8 ++++++ 2 files changed, 47 insertions(+) create mode 100644 src/main/resources/view/TaskCard.fxml create mode 100644 src/main/resources/view/TaskPanel.fxml diff --git a/src/main/resources/view/TaskCard.fxml b/src/main/resources/view/TaskCard.fxml new file mode 100644 index 00000000000..b233bf9ec63 --- /dev/null +++ b/src/main/resources/view/TaskCard.fxml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/view/TaskPanel.fxml b/src/main/resources/view/TaskPanel.fxml new file mode 100644 index 00000000000..096ccf83953 --- /dev/null +++ b/src/main/resources/view/TaskPanel.fxml @@ -0,0 +1,8 @@ + + + + + + + + From 4d5f1e337fe9f5cbb3739e957d711ec48854192f Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Mon, 14 Mar 2022 01:43:45 +0800 Subject: [PATCH 064/455] Modify name of TaskPanel.fxml to TaskListPanel.fxml --- src/main/resources/view/{TaskPanel.fxml => TaskListPanel.fxml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/main/resources/view/{TaskPanel.fxml => TaskListPanel.fxml} (100%) diff --git a/src/main/resources/view/TaskPanel.fxml b/src/main/resources/view/TaskListPanel.fxml similarity index 100% rename from src/main/resources/view/TaskPanel.fxml rename to src/main/resources/view/TaskListPanel.fxml From 12c1a2031a8fb5494902e7e033e3f1cdc335cb86 Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Mon, 14 Mar 2022 02:38:05 +0800 Subject: [PATCH 065/455] Update the display of Notes in error messages and GUI to an indexed way --- .../logic/commands/AddNoteCommand.java | 2 +- .../java/seedu/address/model/note/Note.java | 2 +- .../seedu/address/model/person/Person.java | 7 ++++--- .../seedu/address/model/util/ListUtil.java | 21 +++++++++++++++++++ .../java/seedu/address/ui/PersonCard.java | 5 +++-- 5 files changed, 30 insertions(+), 7 deletions(-) create mode 100644 src/main/java/seedu/address/model/util/ListUtil.java diff --git a/src/main/java/seedu/address/logic/commands/AddNoteCommand.java b/src/main/java/seedu/address/logic/commands/AddNoteCommand.java index 526d621391b..87ba2019fc3 100644 --- a/src/main/java/seedu/address/logic/commands/AddNoteCommand.java +++ b/src/main/java/seedu/address/logic/commands/AddNoteCommand.java @@ -33,7 +33,7 @@ public class AddNoteCommand extends Command { public static final String MESSAGE_SUCCESS = "New note added: %1$s"; - public static final String MESSAGE_ARGUMENTS = "Index: %1$d, Remark: %2$s"; + public static final String MESSAGE_ARGUMENTS = "Index: %1$d, Note: %2$s"; private final Index index; private final Note note; diff --git a/src/main/java/seedu/address/model/note/Note.java b/src/main/java/seedu/address/model/note/Note.java index ce73264c1ac..79f5c543d9b 100644 --- a/src/main/java/seedu/address/model/note/Note.java +++ b/src/main/java/seedu/address/model/note/Note.java @@ -49,7 +49,7 @@ public int hashCode() { * Format state as text for viewing. */ public String toString() { - return '[' + note + ']'; + return note; } } diff --git a/src/main/java/seedu/address/model/person/Person.java b/src/main/java/seedu/address/model/person/Person.java index 3054c75e48c..02d6b7f11f9 100644 --- a/src/main/java/seedu/address/model/person/Person.java +++ b/src/main/java/seedu/address/model/person/Person.java @@ -12,6 +12,7 @@ import seedu.address.model.name.Name; import seedu.address.model.note.Note; import seedu.address.model.tag.Tag; +import seedu.address.model.util.ListUtil; /** * Represents a Person in the address book. @@ -135,10 +136,10 @@ public String toString() { List notes = getNotes(); if (!notes.isEmpty()) { - builder.append("; Note: "); - notes.forEach(builder::append); + builder.append("; Notes: "); + ListUtil.toIndexedStringList(notes) + .forEach(builder::append); } return builder.toString(); } - } diff --git a/src/main/java/seedu/address/model/util/ListUtil.java b/src/main/java/seedu/address/model/util/ListUtil.java new file mode 100644 index 00000000000..4e486890ce0 --- /dev/null +++ b/src/main/java/seedu/address/model/util/ListUtil.java @@ -0,0 +1,21 @@ +package seedu.address.model.util; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * Contains utility methods for converting a list of Object to a list of String. + */ +public class ListUtil { + /** + * Convert a list of Object to a list of indexed String + * @param lst the list of Object + * @param the Object type, must have a meaningful @code{toString} method + * @return the list of String with each element indexed + */ + public static List toIndexedStringList(List lst) { + return lst.stream() + .map(obj -> (lst.indexOf(obj) + 1) + ". " + obj.toString() + " ") + .collect(Collectors.toList()); + } +} diff --git a/src/main/java/seedu/address/ui/PersonCard.java b/src/main/java/seedu/address/ui/PersonCard.java index a2374681d23..7ab155aeacb 100644 --- a/src/main/java/seedu/address/ui/PersonCard.java +++ b/src/main/java/seedu/address/ui/PersonCard.java @@ -9,6 +9,7 @@ import javafx.scene.layout.HBox; import javafx.scene.layout.Region; import seedu.address.model.person.Person; +import seedu.address.model.util.ListUtil; /** * An UI component that displays information of a {@code Person}. @@ -58,8 +59,8 @@ public PersonCard(Person person, int displayedIndex) { person.getTags().stream() .sorted(Comparator.comparing(tag -> tag.tagName)) .forEach(tag -> tags.getChildren().add(new Label(tag.tagName))); - notes.setText(person.getNotes() - .stream().map(Object::toString) + notes.setText(ListUtil.toIndexedStringList(person.getNotes()) + .stream() .collect(Collectors.joining("\n"))); } From 75fab96543e28fd99d7c825f31e9fb5c1fe2e9da Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Mon, 14 Mar 2022 02:55:37 +0800 Subject: [PATCH 066/455] Add classes for TaskCard and TaskListPanel --- .../java/seedu/address/model/task/Task.java | 8 +++ src/main/java/seedu/address/ui/TaskCard.java | 66 +++++++++++++++++++ .../java/seedu/address/ui/TaskListPanel.java | 49 ++++++++++++++ 3 files changed, 123 insertions(+) create mode 100644 src/main/java/seedu/address/ui/TaskCard.java create mode 100644 src/main/java/seedu/address/ui/TaskListPanel.java diff --git a/src/main/java/seedu/address/model/task/Task.java b/src/main/java/seedu/address/model/task/Task.java index e9b7ce86e8c..d58c7c5ba03 100644 --- a/src/main/java/seedu/address/model/task/Task.java +++ b/src/main/java/seedu/address/model/task/Task.java @@ -50,6 +50,14 @@ public EndTime getEndTime() { return endTime; } + /** + * Returns the start and end time values joined together for Task Card label + * @return appended values of start and end time + */ + public String appendStartAndEndTime() { + return startTime.value + " - " + endTime.value; + } + /** * Returns an immutable tag set, which throws {@code UnsupportedOperationException} * if modification is attempted. diff --git a/src/main/java/seedu/address/ui/TaskCard.java b/src/main/java/seedu/address/ui/TaskCard.java new file mode 100644 index 00000000000..3e931954000 --- /dev/null +++ b/src/main/java/seedu/address/ui/TaskCard.java @@ -0,0 +1,66 @@ +package seedu.address.ui; + +import java.util.Comparator; + +import javafx.fxml.FXML; +import javafx.scene.control.Label; +import javafx.scene.layout.FlowPane; +import javafx.scene.layout.HBox; +import javafx.scene.layout.Region; +import seedu.address.model.task.Task; + +/** + * An UI component that displays information of a {@code Task}. + */ +public class TaskCard extends UiPart { + + private static final String FXML = "TaskCard.fxml"; + + public final Task task; + + @FXML + private HBox cardPane; + @FXML + private Label name; + @FXML + private Label id; + @FXML + private Label date; + @FXML + private Label time; + @FXML + private FlowPane tags; + + /** + * Creates a {@code TaskCode} with the given {@code Task} and index to display. + */ + public TaskCard(Task task, int displayedIndex) { + super(FXML); + this.task = task; + id.setText(displayedIndex + ". "); + name.setText(task.getName().fullName); + date.setText(task.getDate().value); + time.setText(task.appendStartAndEndTime()); + task.getTags().stream() + .sorted(Comparator.comparing(tag -> tag.tagName)) + .forEach(tag -> tags.getChildren().add(new Label(tag.tagName))); + } + + @Override + public boolean equals(Object other) { + // short circuit if same object + if (other == this) { + return true; + } + + // instanceof handles nulls + if (!(other instanceof TaskCard)) { + return false; + } + + // state check + TaskCard card = (TaskCard) other; + return id.getText().equals(card.id.getText()) + && task.equals(card.task); + } +} diff --git a/src/main/java/seedu/address/ui/TaskListPanel.java b/src/main/java/seedu/address/ui/TaskListPanel.java new file mode 100644 index 00000000000..8cc91e33d90 --- /dev/null +++ b/src/main/java/seedu/address/ui/TaskListPanel.java @@ -0,0 +1,49 @@ +package seedu.address.ui; + +import java.util.logging.Logger; + +import javafx.collections.ObservableList; +import javafx.fxml.FXML; +import javafx.scene.control.ListCell; +import javafx.scene.control.ListView; +import javafx.scene.layout.Region; +import seedu.address.commons.core.LogsCenter; +import seedu.address.model.task.Task; + +/** + * Panel containing the list of tasks. + */ +public class TaskListPanel extends UiPart { + private static final String FXML = "TaskListPanel.fxml"; + private final Logger logger = LogsCenter.getLogger(TaskListPanel.class); + + @FXML + private ListView taskListView; + + /** + * Creates a {@code TaskListPanel} with the given {@code ObservableList}. + */ + public TaskListPanel(ObservableList taskList) { + super(FXML); + taskListView.setItems(taskList); + taskListView.setCellFactory(listView -> new TaskListViewCell()); + } + + /** + * Custom {@code ListCell} that displays the graphics of a {@code Task} using a {@code TaskCard}. + */ + class TaskListViewCell extends ListCell { + @Override + protected void updateItem(Task task, boolean empty) { + super.updateItem(task, empty); + + if (empty || task == null) { + setGraphic(null); + setText(null); + } else { + setGraphic(new TaskCard(task, getIndex() + 1).getRoot()); + } + } + } + +} From 7882e89b2c5a964ad87870dc0e84c84d31afe13d Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Mon, 14 Mar 2022 04:05:27 +0800 Subject: [PATCH 067/455] Add testing methods for AddNoteCommand --- .../logic/commands/AddNoteCommandTest.java | 107 ++++++++++++++++++ .../logic/commands/CommandTestUtil.java | 2 + .../parser/AddNoteCommandParserTest.java | 43 +++++++ .../seedu/address/model/note/NoteTest.java | 32 ++++++ 4 files changed, 184 insertions(+) create mode 100644 src/test/java/seedu/address/logic/commands/AddNoteCommandTest.java create mode 100644 src/test/java/seedu/address/logic/parser/AddNoteCommandParserTest.java create mode 100644 src/test/java/seedu/address/model/note/NoteTest.java diff --git a/src/test/java/seedu/address/logic/commands/AddNoteCommandTest.java b/src/test/java/seedu/address/logic/commands/AddNoteCommandTest.java new file mode 100644 index 00000000000..ccd179b2fd1 --- /dev/null +++ b/src/test/java/seedu/address/logic/commands/AddNoteCommandTest.java @@ -0,0 +1,107 @@ +package seedu.address.logic.commands; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static seedu.address.logic.commands.CommandTestUtil.VALID_NOTE_AMY; +import static seedu.address.logic.commands.CommandTestUtil.VALID_NOTE_BOB; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; +import static seedu.address.logic.commands.CommandTestUtil.showPersonAtIndex; +import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; +import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_PERSON; +import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; + +import org.junit.jupiter.api.Test; + +import seedu.address.commons.core.Messages; +import seedu.address.commons.core.index.Index; +import seedu.address.model.AddressBook; +import seedu.address.model.Model; +import seedu.address.model.ModelManager; +import seedu.address.model.TaskBook; +import seedu.address.model.UserPrefs; +import seedu.address.model.note.Note; +import seedu.address.model.person.Person; +import seedu.address.testutil.PersonBuilder; + +public class AddNoteCommandTest { + + private static final String NOTE_STUB_1 = "Some note 1"; + private static final String NOTE_STUB_2 = "Some note 2"; + + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + + @Test + public void execute_addNoteUnfilteredList_success() { + Person firstPerson = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); + Person editedPerson = new PersonBuilder(firstPerson).withNotes(NOTE_STUB_1).build(); + + AddNoteCommand addNoteCommand = new AddNoteCommand( + INDEX_FIRST_PERSON, + new Note(editedPerson.getNotes().get(0).note)); + + String expectedMessage = String.format( + seedu.address.logic.commands.AddNoteCommand.MESSAGE_SUCCESS, editedPerson); + + Model expectedModel = new ModelManager( + new AddressBook(model.getAddressBook()), + new TaskBook(model.getTaskBook()), + new UserPrefs()); + expectedModel.setPerson(firstPerson, editedPerson); + + assertCommandSuccess(addNoteCommand, model, expectedMessage, expectedModel); + } + + @Test + public void execute_invalidPersonIndexUnfilteredList_failure() { + Index outOfBoundIndex = Index.fromOneBased(model.getFilteredPersonList().size() + 1); + AddNoteCommand addNoteCommand = new AddNoteCommand(outOfBoundIndex, new Note(VALID_NOTE_BOB)); + + assertCommandFailure(addNoteCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + } + + /** + * Edit filtered list where index is larger than size of filtered list, + * but smaller than size of address book + */ + @Test + public void execute_invalidPersonIndexFilteredList_failure() { + showPersonAtIndex(model, INDEX_FIRST_PERSON); + Index outOfBoundIndex = INDEX_SECOND_PERSON; + // ensures that outOfBoundIndex is still in bounds of address book list + assertTrue(outOfBoundIndex.getZeroBased() < model.getAddressBook().getPersonList().size()); + + AddNoteCommand addNoteCommand = new AddNoteCommand(outOfBoundIndex, new Note(VALID_NOTE_BOB)); + + assertCommandFailure(addNoteCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + } + + @Test + public void equals() { + final AddNoteCommand standardCommand = new AddNoteCommand(INDEX_FIRST_PERSON, + new Note(VALID_NOTE_AMY)); + + // same values -> returns true + AddNoteCommand commandWithSameValues = new AddNoteCommand(INDEX_FIRST_PERSON, + new Note(VALID_NOTE_AMY)); + assertTrue(standardCommand.equals(commandWithSameValues)); + + // same object -> returns true + assertTrue(standardCommand.equals(standardCommand)); + + // null -> returns false + assertFalse(standardCommand.equals(null)); + + // different types -> returns false + assertFalse(standardCommand.equals(new ClearCommand())); + + // different index -> returns false + assertFalse(standardCommand.equals(new AddNoteCommand(INDEX_SECOND_PERSON, + new Note(VALID_NOTE_AMY)))); + + // different Note -> returns false + assertFalse(standardCommand.equals(new AddNoteCommand(INDEX_FIRST_PERSON, + new Note(VALID_NOTE_BOB)))); + } +} diff --git a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java b/src/test/java/seedu/address/logic/commands/CommandTestUtil.java index 0f1c71b3f06..323222ce8d2 100644 --- a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java +++ b/src/test/java/seedu/address/logic/commands/CommandTestUtil.java @@ -36,6 +36,8 @@ public class CommandTestUtil { public static final String VALID_ADDRESS_BOB = "Block 123, Bobby Street 3"; public static final String VALID_TAG_HUSBAND = "husband"; public static final String VALID_TAG_FRIEND = "friend"; + public static final String VALID_NOTE_AMY = "Amy"; + public static final String VALID_NOTE_BOB = "Bob"; public static final String NAME_DESC_AMY = " " + PREFIX_NAME + VALID_NAME_AMY; public static final String NAME_DESC_BOB = " " + PREFIX_NAME + VALID_NAME_BOB; diff --git a/src/test/java/seedu/address/logic/parser/AddNoteCommandParserTest.java b/src/test/java/seedu/address/logic/parser/AddNoteCommandParserTest.java new file mode 100644 index 00000000000..a7e135bd84c --- /dev/null +++ b/src/test/java/seedu/address/logic/parser/AddNoteCommandParserTest.java @@ -0,0 +1,43 @@ +package seedu.address.logic.parser; + +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static seedu.address.logic.commands.CommandTestUtil.VALID_NOTE_AMY; +import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; +import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; +import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; + +import org.junit.jupiter.api.Test; + +import seedu.address.logic.commands.AddNoteCommand; +import seedu.address.model.note.Note; + +class AddNoteCommandParserTest { + + private AddNoteCommandParser parser = new AddNoteCommandParser(); + + @Test + public void parse_emptyArg_throwsParseException() { + assertParseFailure(parser, " ", + String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddNoteCommand.MESSAGE_USAGE)); + } + + @Test + public void parse_validArgs_returnsAddNoteCommand() { + // no leading and trailing whitespaces + AddNoteCommand expectedAddNoteCommand = + new AddNoteCommand(INDEX_FIRST_PERSON, new Note(VALID_NOTE_AMY)); + assertParseSuccess(parser, "1 Amy", expectedAddNoteCommand); + + // multiple whitespaces between keywords + assertParseSuccess(parser, " \n 1 \n \t Amy \t", expectedAddNoteCommand); + } + + @Test + public void parse_invalidArgs_throwsParseException() { + assertParseFailure(parser, "2 ", + String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddNoteCommand.MESSAGE_USAGE)); + + assertParseFailure(parser, " Amy", + String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddNoteCommand.MESSAGE_USAGE)); + } +} diff --git a/src/test/java/seedu/address/model/note/NoteTest.java b/src/test/java/seedu/address/model/note/NoteTest.java new file mode 100644 index 00000000000..2e68c970e98 --- /dev/null +++ b/src/test/java/seedu/address/model/note/NoteTest.java @@ -0,0 +1,32 @@ +package seedu.address.model.note; + +import static seedu.address.testutil.Assert.assertThrows; + +import org.junit.jupiter.api.Test; + + +public class NoteTest { + + @Test + public void constructor_null_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> new Note(null)); + } + + @Test + public void constructor_invalidNote_throwsIllegalArgumentException() { + // a String of length 51 + String invalidNote = "0123456789" + + "0123456789" + + "0123456789" + + "0123456789" + + "0123456789" + + "0"; + assertThrows(IllegalArgumentException.class, () -> new Note(invalidNote)); + } + + @Test + public void isValidNote() { + // null tag name + assertThrows(NullPointerException.class, () -> Note.isValidNote(null)); + } +} From 8cff3771a13fc4b84e1b8797a44a91edb3770f18 Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Mon, 14 Mar 2022 08:29:54 +0800 Subject: [PATCH 068/455] Add more test methods for DeleteNoteCommand and DeleteNoteCommandParser --- .../logic/commands/DeleteNoteCommandTest.java | 31 +++++++++++++++++-- .../parser/DeleteNoteCommandParserTest.java | 10 ++++-- .../address/testutil/TypicalIndexes.java | 3 +- 3 files changed, 38 insertions(+), 6 deletions(-) diff --git a/src/test/java/seedu/address/logic/commands/DeleteNoteCommandTest.java b/src/test/java/seedu/address/logic/commands/DeleteNoteCommandTest.java index dc2fa13f5a3..32d97a8347d 100644 --- a/src/test/java/seedu/address/logic/commands/DeleteNoteCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/DeleteNoteCommandTest.java @@ -1,10 +1,13 @@ package seedu.address.logic.commands; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; import static seedu.address.testutil.Assert.assertThrows; import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_PERSON; -import static seedu.address.testutil.TypicalIndexes.NOTE_INDEX_SECOND_PERSON; +import static seedu.address.testutil.TypicalIndexes.NOTE_FIRST_INDEX; +import static seedu.address.testutil.TypicalIndexes.NOTE_SECOND_INDEX; import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; @@ -38,12 +41,12 @@ public void constructor_nullIndex_throwsNullPointerException() { public void execute_validNoteIndexUnfilteredList_success() throws Exception { Person personToDeleteNoteFrom = model.getFilteredPersonList().get(INDEX_SECOND_PERSON.getZeroBased()); List newNotes = new ArrayList<>(personToDeleteNoteFrom.getNotes()); - newNotes.remove(NOTE_INDEX_SECOND_PERSON.getZeroBased()); + newNotes.remove(NOTE_FIRST_INDEX.getZeroBased()); Person personWithModifiedNote = new Person(personToDeleteNoteFrom.getName(), personToDeleteNoteFrom.getPhone(), personToDeleteNoteFrom.getEmail(), personToDeleteNoteFrom.getAddress(), personToDeleteNoteFrom.getTags(), newNotes); - DeleteNoteCommand deleteNoteCommand = new DeleteNoteCommand(INDEX_SECOND_PERSON, NOTE_INDEX_SECOND_PERSON); + DeleteNoteCommand deleteNoteCommand = new DeleteNoteCommand(INDEX_SECOND_PERSON, NOTE_FIRST_INDEX); String expectedMessage = String.format(DeleteNoteCommand.MESSAGE_SUCCESS, personWithModifiedNote); @@ -61,4 +64,26 @@ public void execute_invalidNoteIndexUnfilteredList_throwsCommandException() { assertCommandFailure(deleteNoteCommand, model, Messages.MESSAGE_INVALID_NOTE_DISPLAYED_INDEX); } + + @Test + public void equals() { + DeleteNoteCommand deleteNoteFirstCommand = new DeleteNoteCommand(INDEX_SECOND_PERSON, NOTE_FIRST_INDEX); + DeleteNoteCommand deleteNoteSecondCommand = new DeleteNoteCommand(INDEX_SECOND_PERSON, NOTE_SECOND_INDEX); + + // same object -> returns true + assertTrue(deleteNoteFirstCommand.equals(deleteNoteFirstCommand)); + + // same values -> returns true + DeleteNoteCommand deleteNoteFirstCommandCopy = new DeleteNoteCommand(INDEX_SECOND_PERSON, NOTE_FIRST_INDEX); + assertTrue(deleteNoteFirstCommand.equals(deleteNoteFirstCommandCopy)); + + // different types -> returns false + assertFalse(deleteNoteFirstCommand.equals(1)); + + // null -> returns false + assertFalse(deleteNoteFirstCommand.equals(null)); + + // different person -> returns false + assertFalse(deleteNoteFirstCommand.equals(deleteNoteSecondCommand)); + } } diff --git a/src/test/java/seedu/address/logic/parser/DeleteNoteCommandParserTest.java b/src/test/java/seedu/address/logic/parser/DeleteNoteCommandParserTest.java index 256853c41a4..92760e5fb44 100644 --- a/src/test/java/seedu/address/logic/parser/DeleteNoteCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/DeleteNoteCommandParserTest.java @@ -4,7 +4,7 @@ import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_PERSON; -import static seedu.address.testutil.TypicalIndexes.NOTE_INDEX_SECOND_PERSON; +import static seedu.address.testutil.TypicalIndexes.NOTE_FIRST_INDEX; import org.junit.jupiter.api.Test; @@ -19,7 +19,7 @@ public class DeleteNoteCommandParserTest { @Test public void parse_validArgs_returnsDeleteCommand() { - assertParseSuccess(parser, "2 1", new DeleteNoteCommand(INDEX_SECOND_PERSON, NOTE_INDEX_SECOND_PERSON)); + assertParseSuccess(parser, "2 1", new DeleteNoteCommand(INDEX_SECOND_PERSON, NOTE_FIRST_INDEX)); } @Test @@ -27,4 +27,10 @@ public void parse_invalidArgs_throwsParseException() { assertParseFailure(parser, "2", String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteNoteCommand.MESSAGE_USAGE)); } + + @Test + public void parse_emptyArgs_throwsParseException() { + assertParseFailure(parser, " ", String.format(MESSAGE_INVALID_COMMAND_FORMAT, + DeleteNoteCommand.MESSAGE_USAGE)); + } } diff --git a/src/test/java/seedu/address/testutil/TypicalIndexes.java b/src/test/java/seedu/address/testutil/TypicalIndexes.java index ad5cd56e818..57d999cbdfe 100644 --- a/src/test/java/seedu/address/testutil/TypicalIndexes.java +++ b/src/test/java/seedu/address/testutil/TypicalIndexes.java @@ -9,5 +9,6 @@ public class TypicalIndexes { public static final Index INDEX_FIRST_PERSON = Index.fromOneBased(1); public static final Index INDEX_SECOND_PERSON = Index.fromOneBased(2); public static final Index INDEX_THIRD_PERSON = Index.fromOneBased(3); - public static final Index NOTE_INDEX_SECOND_PERSON = Index.fromOneBased(1); + public static final Index NOTE_FIRST_INDEX = Index.fromOneBased(1); + public static final Index NOTE_SECOND_INDEX = Index.fromOneBased(2); } From 5871e0fa5f42257961988b1e193c9f50261b8795 Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Mon, 14 Mar 2022 10:24:00 +0800 Subject: [PATCH 069/455] Implement TaskCard and TaskListPanel into Logic --- src/main/java/seedu/address/logic/Logic.java | 4 ++++ src/main/java/seedu/address/logic/LogicManager.java | 6 ++++++ src/main/java/seedu/address/ui/MainWindow.java | 6 ++++++ src/main/resources/view/MainWindow.fxml | 13 ++++++++++--- 4 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/main/java/seedu/address/logic/Logic.java b/src/main/java/seedu/address/logic/Logic.java index 92cd8fa605a..5e1f29acc2b 100644 --- a/src/main/java/seedu/address/logic/Logic.java +++ b/src/main/java/seedu/address/logic/Logic.java @@ -9,6 +9,7 @@ import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.ReadOnlyAddressBook; import seedu.address.model.person.Person; +import seedu.address.model.task.Task; /** * API of the Logic component @@ -33,6 +34,9 @@ public interface Logic { /** Returns an unmodifiable view of the filtered list of persons */ ObservableList getFilteredPersonList(); + /** Returns an unmodifiable view of the filtered list of tasks */ + ObservableList getFilteredTaskList(); + /** * Returns the user prefs' address book file path. */ diff --git a/src/main/java/seedu/address/logic/LogicManager.java b/src/main/java/seedu/address/logic/LogicManager.java index e0619706608..fac02e54b07 100644 --- a/src/main/java/seedu/address/logic/LogicManager.java +++ b/src/main/java/seedu/address/logic/LogicManager.java @@ -15,6 +15,7 @@ import seedu.address.model.Model; import seedu.address.model.ReadOnlyAddressBook; import seedu.address.model.person.Person; +import seedu.address.model.task.Task; import seedu.address.storage.Storage; /** @@ -65,6 +66,11 @@ public ObservableList getFilteredPersonList() { return model.getFilteredPersonList(); } + @Override + public ObservableList getFilteredTaskList() { + return model.getFilteredTaskList(); + } + @Override public Path getAddressBookFilePath() { return model.getAddressBookFilePath(); diff --git a/src/main/java/seedu/address/ui/MainWindow.java b/src/main/java/seedu/address/ui/MainWindow.java index 9106c3aa6e5..e96e4c93450 100644 --- a/src/main/java/seedu/address/ui/MainWindow.java +++ b/src/main/java/seedu/address/ui/MainWindow.java @@ -32,6 +32,7 @@ public class MainWindow extends UiPart { // Independent Ui parts residing in this Ui container private PersonListPanel personListPanel; + private TaskListPanel taskListPanel; private ResultDisplay resultDisplay; private HelpWindow helpWindow; @@ -44,6 +45,9 @@ public class MainWindow extends UiPart { @FXML private StackPane personListPanelPlaceholder; + @FXML + private StackPane taskListPanelPlaceholder; + @FXML private StackPane resultDisplayPlaceholder; @@ -112,6 +116,8 @@ private void setAccelerator(MenuItem menuItem, KeyCombination keyCombination) { void fillInnerParts() { personListPanel = new PersonListPanel(logic.getFilteredPersonList()); personListPanelPlaceholder.getChildren().add(personListPanel.getRoot()); + taskListPanel = new TaskListPanel(logic.getFilteredTaskList()); + taskListPanelPlaceholder.getChildren().add(taskListPanel.getRoot()); resultDisplay = new ResultDisplay(); resultDisplayPlaceholder.getChildren().add(resultDisplay.getRoot()); diff --git a/src/main/resources/view/MainWindow.fxml b/src/main/resources/view/MainWindow.fxml index f6b81fbe1ca..82aa8c3649a 100644 --- a/src/main/resources/view/MainWindow.fxml +++ b/src/main/resources/view/MainWindow.fxml @@ -61,9 +61,16 @@ - - - + + + + + + + + + + From e761d97eedad896c8dfba0fd44b9db044cd408fc Mon Sep 17 00:00:00 2001 From: Pragya Date: Mon, 14 Mar 2022 19:41:45 +0800 Subject: [PATCH 070/455] add task functionality --- .../logic/commands/AddTaskCommand.java | 67 +++++++++++++++++++ .../logic/parser/AddTaskCommandParser.java | 56 ++++++++++++++++ .../logic/parser/AddressBookParser.java | 4 ++ .../seedu/address/logic/parser/CliSyntax.java | 3 + .../address/logic/parser/ParserUtil.java | 48 +++++++++++++ 5 files changed, 178 insertions(+) create mode 100644 src/main/java/seedu/address/logic/commands/AddTaskCommand.java create mode 100644 src/main/java/seedu/address/logic/parser/AddTaskCommandParser.java diff --git a/src/main/java/seedu/address/logic/commands/AddTaskCommand.java b/src/main/java/seedu/address/logic/commands/AddTaskCommand.java new file mode 100644 index 00000000000..8dfdc120033 --- /dev/null +++ b/src/main/java/seedu/address/logic/commands/AddTaskCommand.java @@ -0,0 +1,67 @@ +package seedu.address.logic.commands; + +import static java.util.Objects.requireNonNull; +import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; +import static seedu.address.logic.parser.CliSyntax.PREFIX_DATE; +import static seedu.address.logic.parser.CliSyntax.PREFIX_STARTTIME; +import static seedu.address.logic.parser.CliSyntax.PREFIX_ENDTIME; +import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; + +import seedu.address.logic.commands.exceptions.CommandException; +import seedu.address.model.Model; +import seedu.address.model.task.Task; + +/** + * Adds a task to the task list. + */ +public class AddTaskCommand extends Command { + + public static final String COMMAND_WORD = "add-task"; + + public static final String MESSAGE_USAGE = COMMAND_WORD + ": Adds a task to the TaskList. " + + "Parameters: " + + PREFIX_NAME + "NAME " + + PREFIX_DATE + "DATE " + + PREFIX_STARTTIME + "START TIME " + + PREFIX_ENDTIME + "END TIME " + + "[" + PREFIX_TAG + "TAG]...\n" + + "Example: " + COMMAND_WORD + " " + + PREFIX_NAME + "Investor introduction " + + PREFIX_DATE + "08-04-2022 " + + PREFIX_STARTTIME + "13:00 " + + PREFIX_ENDTIME + "15:00 " + + PREFIX_TAG + "funding " + + PREFIX_TAG + "meeting "; + + public static final String MESSAGE_SUCCESS = "New task added: %1$s"; + public static final String MESSAGE_DUPLICATE_TASK = "This task already exists in the TaskList"; + + private final Task toAdd; + + /** + * Creates an AddTaskCommand to add the specified {@code Task} + */ + public AddTaskCommand(Task task) { + requireNonNull(task); + toAdd = task; + } + + @Override + public CommandResult execute(Model model) throws CommandException { + requireNonNull(model); + + if (model.hasTask(toAdd)) { + throw new CommandException(MESSAGE_DUPLICATE_TASK); + } + + model.addTask(toAdd); + return new CommandResult(String.format(MESSAGE_SUCCESS, toAdd)); + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof AddTaskCommand // instanceof handles nulls + && toAdd.equals(((AddTaskCommand) other).toAdd)); + } +} diff --git a/src/main/java/seedu/address/logic/parser/AddTaskCommandParser.java b/src/main/java/seedu/address/logic/parser/AddTaskCommandParser.java new file mode 100644 index 00000000000..b41e559dee1 --- /dev/null +++ b/src/main/java/seedu/address/logic/parser/AddTaskCommandParser.java @@ -0,0 +1,56 @@ +package seedu.address.logic.parser; + +import seedu.address.logic.commands.AddTaskCommand; +import seedu.address.logic.parser.exceptions.ParseException; +import seedu.address.model.name.Name; +import seedu.address.model.tag.Tag; +import seedu.address.model.task.Date; +import seedu.address.model.task.EndTime; +import seedu.address.model.task.StartTime; +import seedu.address.model.task.Task; + +import java.util.Set; +import java.util.stream.Stream; + +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static seedu.address.logic.parser.CliSyntax.*; + +/** + * Parses input arguments and creates a new AddTaskCommand object + */ +public class AddTaskCommandParser implements Parser { + + /** + * Parses the given {@code String} of arguments in the context of the AddTaskCommand + * and returns an AddTaskCommand object for execution. + * @throws ParseException if the user input does not conform the expected format + */ + public AddTaskCommand parse(String args) throws ParseException { + ArgumentMultimap argMultimap = + ArgumentTokenizer.tokenize(args, PREFIX_NAME, PREFIX_DATE, PREFIX_STARTTIME, PREFIX_ENDTIME, PREFIX_TAG); + + if (!arePrefixesPresent(argMultimap, PREFIX_NAME, PREFIX_DATE, PREFIX_STARTTIME, PREFIX_ENDTIME) + || !argMultimap.getPreamble().isEmpty()) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddTaskCommand.MESSAGE_USAGE)); + } + + Name name = ParserUtil.parseName(argMultimap.getValue(PREFIX_NAME).get()); + Date date = ParserUtil.parseDate(argMultimap.getValue(PREFIX_DATE).get()); + StartTime startTime = ParserUtil.parseStartTime(argMultimap.getValue(PREFIX_STARTTIME).get()); + EndTime endTime = ParserUtil.parseEndTime(argMultimap.getValue(PREFIX_ENDTIME).get()); + Set tagList = ParserUtil.parseTags(argMultimap.getAllValues(PREFIX_TAG)); + + Task task = new Task(name, date, startTime, endTime, tagList); + + return new AddTaskCommand(task); + } + + /** + * Returns true if none of the prefixes contains empty {@code Optional} values in the given + * {@code ArgumentMultimap}. + */ + private static boolean arePrefixesPresent(ArgumentMultimap argumentMultimap, Prefix... prefixes) { + return Stream.of(prefixes).allMatch(prefix -> argumentMultimap.getValue(prefix).isPresent()); + } + +} diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index 1e466792b46..24bf56dc523 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -7,6 +7,7 @@ import java.util.regex.Pattern; import seedu.address.logic.commands.AddCommand; +import seedu.address.logic.commands.AddTaskCommand; import seedu.address.logic.commands.ClearCommand; import seedu.address.logic.commands.Command; import seedu.address.logic.commands.DeleteCommand; @@ -47,6 +48,9 @@ public Command parseCommand(String userInput) throws ParseException { case AddCommand.COMMAND_WORD: return new AddCommandParser().parse(arguments); + case AddTaskCommand.COMMAND_WORD: + return new AddTaskCommandParser().parse(arguments); + case EditCommand.COMMAND_WORD: return new EditCommandParser().parse(arguments); diff --git a/src/main/java/seedu/address/logic/parser/CliSyntax.java b/src/main/java/seedu/address/logic/parser/CliSyntax.java index 75b1a9bf119..088871fadf8 100644 --- a/src/main/java/seedu/address/logic/parser/CliSyntax.java +++ b/src/main/java/seedu/address/logic/parser/CliSyntax.java @@ -11,5 +11,8 @@ public class CliSyntax { public static final Prefix PREFIX_EMAIL = new Prefix("e/"); public static final Prefix PREFIX_ADDRESS = new Prefix("a/"); public static final Prefix PREFIX_TAG = new Prefix("t/"); + public static final Prefix PREFIX_DATE = new Prefix("d/"); + public static final Prefix PREFIX_STARTTIME = new Prefix("st/"); + public static final Prefix PREFIX_ENDTIME = new Prefix("et/"); } diff --git a/src/main/java/seedu/address/logic/parser/ParserUtil.java b/src/main/java/seedu/address/logic/parser/ParserUtil.java index 2f125786e47..a392419b8ac 100644 --- a/src/main/java/seedu/address/logic/parser/ParserUtil.java +++ b/src/main/java/seedu/address/logic/parser/ParserUtil.java @@ -14,6 +14,9 @@ import seedu.address.model.person.Email; import seedu.address.model.person.Phone; import seedu.address.model.tag.Tag; +import seedu.address.model.task.Date; +import seedu.address.model.task.EndTime; +import seedu.address.model.task.StartTime; /** * Contains utility methods used for parsing strings in the various *Parser classes. @@ -95,6 +98,51 @@ public static Email parseEmail(String email) throws ParseException { return new Email(trimmedEmail); } + /** + * Parses a {@code String date} into an {@code Date}. + * Leading and trailing whitespaces will be trimmed. + * + * @throws ParseException if the given {@code date} is invalid. + */ + public static Date parseDate(String date) throws ParseException { + requireNonNull(date); + String trimmedDate = date.trim(); + if (!Date.isValidDate(trimmedDate)) { + throw new ParseException(Email.MESSAGE_CONSTRAINTS); + } + return new Date(trimmedDate); + } + + /** + * Parses a {@code String startTime} into an {@code StartTime}. + * Leading and trailing whitespaces will be trimmed. + * + * @throws ParseException if the given {@code startTime} is invalid. + */ + public static StartTime parseStartTime(String startTime) throws ParseException { + requireNonNull(startTime); + String trimmedStartTime = startTime.trim(); + if (!StartTime.isValidStartTime(trimmedStartTime)) { + throw new ParseException(Email.MESSAGE_CONSTRAINTS); + } + return new StartTime(trimmedStartTime); + } + + /** + * Parses a {@code String endTime} into an {@code EndTime}. + * Leading and trailing whitespaces will be trimmed. + * + * @throws ParseException if the given {@code endTime} is invalid. + */ + public static EndTime parseEndTime(String endTime) throws ParseException { + requireNonNull(endTime); + String trimmedEndTime = endTime.trim(); + if (!EndTime.isValidEndTime(trimmedEndTime)) { + throw new ParseException(Email.MESSAGE_CONSTRAINTS); + } + return new EndTime(trimmedEndTime); + } + /** * Parses a {@code String tag} into a {@code Tag}. * Leading and trailing whitespaces will be trimmed. From a31552099325c2454a92543000801d728866fc4b Mon Sep 17 00:00:00 2001 From: juayhee Date: Mon, 14 Mar 2022 20:00:52 +0800 Subject: [PATCH 071/455] Add AddTagCommand.java to command list (implements Command) --- .../seedu/address/logic/commands/AddTagCommand.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 src/main/java/seedu/address/logic/commands/AddTagCommand.java diff --git a/src/main/java/seedu/address/logic/commands/AddTagCommand.java b/src/main/java/seedu/address/logic/commands/AddTagCommand.java new file mode 100644 index 00000000000..e6206406112 --- /dev/null +++ b/src/main/java/seedu/address/logic/commands/AddTagCommand.java @@ -0,0 +1,12 @@ +package seedu.address.logic.commands; + +import seedu.address.model.Model; + +public class AddTagCommand extends Command { + public static final String COMMAND_WORD = "tag-add"; + + @Override + public CommandResult execute(Model model) { + return new CommandResult("Hello from tag-add"); + } +} From e32749d37681e5cf21977e02bb50a6a53a0d1eaa Mon Sep 17 00:00:00 2001 From: juayhee Date: Mon, 14 Mar 2022 20:09:07 +0800 Subject: [PATCH 072/455] Add AddTagCommand case --- .../address/logic/parser/AddressBookParser.java | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index 877797edc26..f8d759649db 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -6,16 +6,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -import seedu.address.logic.commands.AddCommand; -import seedu.address.logic.commands.AddNoteCommand; -import seedu.address.logic.commands.ClearCommand; -import seedu.address.logic.commands.Command; -import seedu.address.logic.commands.DeleteCommand; -import seedu.address.logic.commands.EditCommand; -import seedu.address.logic.commands.ExitCommand; -import seedu.address.logic.commands.FindCommand; -import seedu.address.logic.commands.HelpCommand; -import seedu.address.logic.commands.ListCommand; +import seedu.address.logic.commands.*; import seedu.address.logic.parser.exceptions.ParseException; /** @@ -72,6 +63,9 @@ public Command parseCommand(String userInput) throws ParseException { case HelpCommand.COMMAND_WORD: return new HelpCommand(); + case AddTagCommand.COMMAND_WORD: + return new AddTagCommand(); + default: throw new ParseException(MESSAGE_UNKNOWN_COMMAND); } From 19fed58e9a8f3a899466700a3b565510450f2fa7 Mon Sep 17 00:00:00 2001 From: Pragya Date: Mon, 14 Mar 2022 20:19:23 +0800 Subject: [PATCH 073/455] delete task functionality --- .../seedu/address/commons/core/Messages.java | 1 + .../logic/commands/DeleteTaskCommand.java | 53 +++++++++++++++++++ .../logic/parser/AddressBookParser.java | 4 ++ .../logic/parser/DeleteTaskCommandParser.java | 29 ++++++++++ 4 files changed, 87 insertions(+) create mode 100644 src/main/java/seedu/address/logic/commands/DeleteTaskCommand.java create mode 100644 src/main/java/seedu/address/logic/parser/DeleteTaskCommandParser.java diff --git a/src/main/java/seedu/address/commons/core/Messages.java b/src/main/java/seedu/address/commons/core/Messages.java index 1deb3a1e469..d8a108f8949 100644 --- a/src/main/java/seedu/address/commons/core/Messages.java +++ b/src/main/java/seedu/address/commons/core/Messages.java @@ -8,6 +8,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_PERSON_DISPLAYED_INDEX = "The person index provided is invalid"; + public static final String MESSAGE_INVALID_TASK_DISPLAYED_INDEX = "The task index provided is invalid"; public static final String MESSAGE_PERSONS_LISTED_OVERVIEW = "%1$d persons listed!"; } diff --git a/src/main/java/seedu/address/logic/commands/DeleteTaskCommand.java b/src/main/java/seedu/address/logic/commands/DeleteTaskCommand.java new file mode 100644 index 00000000000..cd31ea1d94d --- /dev/null +++ b/src/main/java/seedu/address/logic/commands/DeleteTaskCommand.java @@ -0,0 +1,53 @@ +package seedu.address.logic.commands; + +import seedu.address.commons.core.Messages; +import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.exceptions.CommandException; +import seedu.address.model.Model; +import seedu.address.model.task.Task; + +import java.util.List; + +import static java.util.Objects.requireNonNull; + +/** + * Deletes a task identified using its index from the TaskList. + */ +public class DeleteTaskCommand extends Command { + + public static final String COMMAND_WORD = "delete-task"; + + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Deletes the task identified by the index number used in the TaskList.\n" + + "Parameters: INDEX (must be a positive integer)\n" + + "Example: " + COMMAND_WORD + " 1"; + + public static final String MESSAGE_DELETE_TASK_SUCCESS = "Deleted Task: %1$s"; + + private final Index targetIndex; + + public DeleteTaskCommand(Index targetIndex) { + this.targetIndex = targetIndex; + } + + @Override + public CommandResult execute(Model model) throws CommandException { + requireNonNull(model); + List lastShownList = model.getFilteredTaskList(); + + if (targetIndex.getZeroBased() >= lastShownList.size()) { + throw new CommandException(Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX); + } + + Task taskToDelete = lastShownList.get(targetIndex.getZeroBased()); + model.deleteTask(taskToDelete); + return new CommandResult(String.format(MESSAGE_DELETE_TASK_SUCCESS, taskToDelete)); + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof DeleteCommand // instanceof handles nulls + && targetIndex.equals(((DeleteTaskCommand) other).targetIndex)); // state check + } +} diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index 24bf56dc523..525d968d4bc 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -11,6 +11,7 @@ import seedu.address.logic.commands.ClearCommand; import seedu.address.logic.commands.Command; import seedu.address.logic.commands.DeleteCommand; +import seedu.address.logic.commands.DeleteTaskCommand; import seedu.address.logic.commands.EditCommand; import seedu.address.logic.commands.ExitCommand; import seedu.address.logic.commands.FindCommand; @@ -57,6 +58,9 @@ public Command parseCommand(String userInput) throws ParseException { case DeleteCommand.COMMAND_WORD: return new DeleteCommandParser().parse(arguments); + case DeleteTaskCommand.COMMAND_WORD: + return new DeleteTaskCommandParser().parse(arguments); + case ClearCommand.COMMAND_WORD: return new ClearCommand(); diff --git a/src/main/java/seedu/address/logic/parser/DeleteTaskCommandParser.java b/src/main/java/seedu/address/logic/parser/DeleteTaskCommandParser.java new file mode 100644 index 00000000000..98c574c1bef --- /dev/null +++ b/src/main/java/seedu/address/logic/parser/DeleteTaskCommandParser.java @@ -0,0 +1,29 @@ +package seedu.address.logic.parser; + +import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.DeleteTaskCommand; +import seedu.address.logic.parser.exceptions.ParseException; + +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; + +/** + * Parses input arguments and creates a new DeleteTaskCommand object + */ +public class DeleteTaskCommandParser implements Parser { + + /** + * Parses the given {@code String} of arguments in the context of the DeleteTaskCommand + * and returns a DeleteTaskCommand object for execution. + * @throws ParseException if the user input does not conform the expected format + */ + public DeleteTaskCommand parse(String args) throws ParseException { + try { + Index index = ParserUtil.parseIndex(args); + return new DeleteTaskCommand(index); + } catch (ParseException pe) { + throw new ParseException( + String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteTaskCommand.MESSAGE_USAGE), pe); + } + } + +} From 0cb15d13efb4799d215b93b616300609ba1ddaba Mon Sep 17 00:00:00 2001 From: juayhee Date: Mon, 14 Mar 2022 20:41:49 +0800 Subject: [PATCH 074/455] Add AddTagCommandParser to take over handling of inputs in AddressBookParser --- .../address/logic/commands/AddTagCommand.java | 24 ++++++++++++ .../logic/parser/AddTagCommandParser.java | 38 +++++++++++++++++++ .../logic/parser/AddressBookParser.java | 2 +- 3 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 src/main/java/seedu/address/logic/parser/AddTagCommandParser.java diff --git a/src/main/java/seedu/address/logic/commands/AddTagCommand.java b/src/main/java/seedu/address/logic/commands/AddTagCommand.java index e6206406112..7a781af20c5 100644 --- a/src/main/java/seedu/address/logic/commands/AddTagCommand.java +++ b/src/main/java/seedu/address/logic/commands/AddTagCommand.java @@ -1,12 +1,36 @@ package seedu.address.logic.commands; +import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; + +import seedu.address.commons.core.index.Index; import seedu.address.model.Model; public class AddTagCommand extends Command { public static final String COMMAND_WORD = "tag-add"; + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Add a tag to a person from our contact list. " + + "Parameters: " + + "INDEX (must be a positive integer) " + + "TAG NAME (must be non-empty)\n" + + "Example: " + COMMAND_WORD + " " + + "1 " + + "friend"; + + + private final Index index; + private final String tagName; + + public AddTagCommand(Index index, String tagName) { + requireAllNonNull(index, tagName); + + this.index = index; + this.tagName = tagName; + } @Override public CommandResult execute(Model model) { + System.out.println(this.index); + System.out.printf(this.tagName); return new CommandResult("Hello from tag-add"); } } diff --git a/src/main/java/seedu/address/logic/parser/AddTagCommandParser.java b/src/main/java/seedu/address/logic/parser/AddTagCommandParser.java new file mode 100644 index 00000000000..d227309f557 --- /dev/null +++ b/src/main/java/seedu/address/logic/parser/AddTagCommandParser.java @@ -0,0 +1,38 @@ +package seedu.address.logic.parser; + +import static java.util.Objects.requireNonNull; +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; + +import seedu.address.commons.core.index.Index; +import seedu.address.commons.exceptions.IllegalValueException; +import seedu.address.logic.commands.AddTagCommand; +import seedu.address.logic.parser.exceptions.ParseException; + +public class AddTagCommandParser implements Parser { + /** + * Parses the given {@code String} of arguments in the context of the {@code AddTagCommand} + * and returns a {@code AddTagCommand} object for execution + * * @param args Input string by user EXCEPT COMMAND WORD + * + * @return AddTagCommand object with arguments loaded in + * @throws ParseException If the user input does not conform to the expected format + */ + public AddTagCommand parse(String args) throws ParseException { + requireNonNull(args); + ArgumentMultimap argMultimap = ArgumentTokenizer.tokenize(args, PREFIX_TAG); + + // Get index with ParserUtil instead of ArgumentTokenizer methods + Index index; + try { + index = ParserUtil.parseIndex(argMultimap.getPreamble()); + } catch (IllegalValueException ive) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddTagCommand.MESSAGE_USAGE), ive); + } + + // Get tag name with ArgumentTokenizer + String tagName = argMultimap.getValue(PREFIX_TAG).orElse(""); + + return new AddTagCommand(index, tagName); + } +} diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index f8d759649db..06fb6ceb82d 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -64,7 +64,7 @@ public Command parseCommand(String userInput) throws ParseException { return new HelpCommand(); case AddTagCommand.COMMAND_WORD: - return new AddTagCommand(); + return new AddTagCommandParser().parse(arguments); default: throw new ParseException(MESSAGE_UNKNOWN_COMMAND); From 2064e3881a0d0d95cdfb137e4225bcd2ee18463a Mon Sep 17 00:00:00 2001 From: juayhee Date: Mon, 14 Mar 2022 21:59:34 +0800 Subject: [PATCH 075/455] Implement tag-add command --- .../address/logic/commands/AddTagCommand.java | 76 +++++++++++++++++-- .../logic/parser/AddTagCommandParser.java | 2 + 2 files changed, 73 insertions(+), 5 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/AddTagCommand.java b/src/main/java/seedu/address/logic/commands/AddTagCommand.java index 7a781af20c5..6c5f530d420 100644 --- a/src/main/java/seedu/address/logic/commands/AddTagCommand.java +++ b/src/main/java/seedu/address/logic/commands/AddTagCommand.java @@ -1,9 +1,24 @@ package seedu.address.logic.commands; +import static java.util.Objects.requireNonNull; import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; +import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; +import seedu.address.model.name.Name; +import seedu.address.model.note.Note; +import seedu.address.model.person.Address; +import seedu.address.model.person.Email; +import seedu.address.model.person.Person; +import seedu.address.model.person.Phone; +import seedu.address.model.tag.Tag; public class AddTagCommand extends Command { public static final String COMMAND_WORD = "tag-add"; @@ -15,7 +30,7 @@ public class AddTagCommand extends Command { + "Example: " + COMMAND_WORD + " " + "1 " + "friend"; - + public static final String MESSAGE_ADD_TAG_SUCCESS = "Added tag: %1$s"; private final Index index; private final String tagName; @@ -28,9 +43,60 @@ public AddTagCommand(Index index, String tagName) { } @Override - public CommandResult execute(Model model) { - System.out.println(this.index); - System.out.printf(this.tagName); - return new CommandResult("Hello from tag-add"); + public CommandResult execute(Model model) throws CommandException { + requireNonNull(model); + List lastShownList = model.getFilteredPersonList(); + + // Exception when index out of bounds + if (index.getZeroBased() >= lastShownList.size()) { + throw new CommandException(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + } + + Person personToEdit = lastShownList.get(index.getZeroBased()); + Person editedPerson = addTagToPerson(personToEdit); + + //TODO Add exception for adding duplicate tags + + model.setPerson(personToEdit, editedPerson); + model.updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); + return new CommandResult(String.format(MESSAGE_ADD_TAG_SUCCESS, this.tagName)); + } + + /** + * Creates and returns a {@code Person} with a new tag {@code tagName} added to + * {@code personToEdit} + * + * @param personToEdit Person to be edited + * @return New Person object with the tag added (tag list updated) + */ + private Person addTagToPerson(Person personToEdit) { + // Keep all other fields the same + Name updatedName = personToEdit.getName(); + Phone updatedPhone = personToEdit.getPhone(); + Email updatedEmail = personToEdit.getEmail(); + Address updatedAddress = personToEdit.getAddress(); + List updatedNotes = personToEdit.getNotes(); + + // Changing tags + // Make modifiable copy since Person#getTags returns an unmodifiable Set + Set tagList = new HashSet<>(personToEdit.getTags()); + tagList.add(new Tag(this.tagName)); + + return new Person(updatedName, updatedPhone, updatedEmail, updatedAddress, tagList, updatedNotes); + } + + @Override + public boolean equals(Object other) { + // short circuit if same object + if (other == this) { + return true; + } + + // instanceof handles nulls + if (!(other instanceof EditCommand)) { + return false; + } + + return false; } } diff --git a/src/main/java/seedu/address/logic/parser/AddTagCommandParser.java b/src/main/java/seedu/address/logic/parser/AddTagCommandParser.java index d227309f557..41732091468 100644 --- a/src/main/java/seedu/address/logic/parser/AddTagCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/AddTagCommandParser.java @@ -7,6 +7,7 @@ import seedu.address.commons.core.index.Index; import seedu.address.commons.exceptions.IllegalValueException; import seedu.address.logic.commands.AddTagCommand; +import seedu.address.logic.commands.EditCommand; import seedu.address.logic.parser.exceptions.ParseException; public class AddTagCommandParser implements Parser { @@ -35,4 +36,5 @@ public AddTagCommand parse(String args) throws ParseException { return new AddTagCommand(index, tagName); } + } From f73cbc7ee0a531d5eb6621defa42a5c5e723576e Mon Sep 17 00:00:00 2001 From: juayhee Date: Mon, 14 Mar 2022 22:12:57 +0800 Subject: [PATCH 076/455] Add duplicate tag exception handling --- .../java/seedu/address/logic/commands/AddTagCommand.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/logic/commands/AddTagCommand.java b/src/main/java/seedu/address/logic/commands/AddTagCommand.java index 6c5f530d420..17dfb780ca0 100644 --- a/src/main/java/seedu/address/logic/commands/AddTagCommand.java +++ b/src/main/java/seedu/address/logic/commands/AddTagCommand.java @@ -31,6 +31,7 @@ public class AddTagCommand extends Command { + "1 " + "friend"; public static final String MESSAGE_ADD_TAG_SUCCESS = "Added tag: %1$s"; + public static final String MESSAGE_DUPLICATE_TAG = "This person already has this tag!"; private final Index index; private final String tagName; @@ -52,10 +53,15 @@ public CommandResult execute(Model model) throws CommandException { throw new CommandException(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); } + Person personToEdit = lastShownList.get(index.getZeroBased()); Person editedPerson = addTagToPerson(personToEdit); - //TODO Add exception for adding duplicate tags + // Exception when a duplicate tag is added + Tag testTag = new Tag(this.tagName); + if (personToEdit.getTags().contains(testTag)) { + throw new CommandException(MESSAGE_DUPLICATE_TAG); + } model.setPerson(personToEdit, editedPerson); model.updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); From 26a49816075e459eecc5760cc65abc1394ca75f1 Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Mon, 14 Mar 2022 22:20:44 +0800 Subject: [PATCH 077/455] Add additional test case for DeleteNoteCommand class --- .../address/logic/commands/DeleteNoteCommandTest.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/test/java/seedu/address/logic/commands/DeleteNoteCommandTest.java b/src/test/java/seedu/address/logic/commands/DeleteNoteCommandTest.java index 32d97a8347d..3da6d0ee0de 100644 --- a/src/test/java/seedu/address/logic/commands/DeleteNoteCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/DeleteNoteCommandTest.java @@ -65,6 +65,14 @@ public void execute_invalidNoteIndexUnfilteredList_throwsCommandException() { assertCommandFailure(deleteNoteCommand, model, Messages.MESSAGE_INVALID_NOTE_DISPLAYED_INDEX); } + @Test + public void execute_invalidPersonIndexUnfilteredList_throwsCommandException() { + Index outOfBoundNoteIndex = Index.fromOneBased(model.getFilteredPersonList().size() + 1); + DeleteNoteCommand deleteNoteCommand = new DeleteNoteCommand(outOfBoundNoteIndex, NOTE_FIRST_INDEX); + + assertCommandFailure(deleteNoteCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + } + @Test public void equals() { DeleteNoteCommand deleteNoteFirstCommand = new DeleteNoteCommand(INDEX_SECOND_PERSON, NOTE_FIRST_INDEX); From dffc1e4d96a5ce6f33e9e6d64ef1cc092db60081 Mon Sep 17 00:00:00 2001 From: juayhee Date: Mon, 14 Mar 2022 22:22:29 +0800 Subject: [PATCH 078/455] Implement tag-del --- .../logic/commands/DeleteTagCommand.java | 108 ++++++++++++++++++ .../logic/parser/AddTagCommandParser.java | 7 +- .../logic/parser/AddressBookParser.java | 3 + .../logic/parser/DeleteTagCommandParser.java | 39 +++++++ 4 files changed, 153 insertions(+), 4 deletions(-) create mode 100644 src/main/java/seedu/address/logic/commands/DeleteTagCommand.java create mode 100644 src/main/java/seedu/address/logic/parser/DeleteTagCommandParser.java diff --git a/src/main/java/seedu/address/logic/commands/DeleteTagCommand.java b/src/main/java/seedu/address/logic/commands/DeleteTagCommand.java new file mode 100644 index 00000000000..c64e505e9ad --- /dev/null +++ b/src/main/java/seedu/address/logic/commands/DeleteTagCommand.java @@ -0,0 +1,108 @@ +package seedu.address.logic.commands; + +import static java.util.Objects.requireNonNull; +import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; +import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; + +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import seedu.address.commons.core.Messages; +import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.exceptions.CommandException; +import seedu.address.model.Model; +import seedu.address.model.name.Name; +import seedu.address.model.note.Note; +import seedu.address.model.person.Address; +import seedu.address.model.person.Email; +import seedu.address.model.person.Person; +import seedu.address.model.person.Phone; +import seedu.address.model.tag.Tag; + +public class DeleteTagCommand extends Command { + public static final String COMMAND_WORD = "tag-del"; + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Delete a tag from a person in our contact list. " + + "Parameters: " + + "INDEX (must be a positive integer) " + + "TAG NAME (must be non-empty)\n" + + "Example: " + COMMAND_WORD + " " + + "1 " + + "friend"; + public static final String MESSAGE_DELETE_TAG_SUCCESS = "Deleted tag: %1$s"; + public static final String MESSAGE_INVALID_TAG = "This person does not have this tag!"; + + private final Index index; + private final String tagName; + + public DeleteTagCommand(Index index, String tagName) { + requireAllNonNull(index, tagName); + + this.index = index; + this.tagName = tagName; + } + + @Override + public CommandResult execute(Model model) throws CommandException { + requireNonNull(model); + List lastShownList = model.getFilteredPersonList(); + + // Exception when index out of bounds + if (index.getZeroBased() >= lastShownList.size()) { + throw new CommandException(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + } + + + Person personToEdit = lastShownList.get(index.getZeroBased()); + Person editedPerson = deleteTagFromPerson(personToEdit); + + // Exception when a non-existent tag is indicated for deletion + Tag testTag = new Tag(this.tagName); + if (!personToEdit.getTags().contains(testTag)) { + throw new CommandException(MESSAGE_INVALID_TAG); + } + + model.setPerson(personToEdit, editedPerson); + model.updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); + return new CommandResult(String.format(MESSAGE_DELETE_TAG_SUCCESS, this.tagName)); + } + + /** + * Creates and returns a {@code Person} with a new tag {@code tagName} added to + * {@code personToEdit} + * + * @param personToEdit Person to be edited + * @return New Person object with the tag added (tag list updated) + */ + private Person deleteTagFromPerson(Person personToEdit) { + // Keep all other fields the same + Name updatedName = personToEdit.getName(); + Phone updatedPhone = personToEdit.getPhone(); + Email updatedEmail = personToEdit.getEmail(); + Address updatedAddress = personToEdit.getAddress(); + List updatedNotes = personToEdit.getNotes(); + + // Changing tags + // Make modifiable copy since Person#getTags returns an unmodifiable Set + Set tagList = new HashSet<>(personToEdit.getTags()); + tagList.remove(new Tag(this.tagName)); + + return new Person(updatedName, updatedPhone, updatedEmail, updatedAddress, tagList, updatedNotes); + } + + @Override + public boolean equals(Object other) { + // short circuit if same object + if (other == this) { + return true; + } + + // instanceof handles nulls + if (!(other instanceof EditCommand)) { + return false; + } + + return false; + } +} diff --git a/src/main/java/seedu/address/logic/parser/AddTagCommandParser.java b/src/main/java/seedu/address/logic/parser/AddTagCommandParser.java index 41732091468..419550f3209 100644 --- a/src/main/java/seedu/address/logic/parser/AddTagCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/AddTagCommandParser.java @@ -7,16 +7,15 @@ import seedu.address.commons.core.index.Index; import seedu.address.commons.exceptions.IllegalValueException; import seedu.address.logic.commands.AddTagCommand; -import seedu.address.logic.commands.EditCommand; import seedu.address.logic.parser.exceptions.ParseException; public class AddTagCommandParser implements Parser { /** - * Parses the given {@code String} of arguments in the context of the {@code AddTagCommand} - * and returns a {@code AddTagCommand} object for execution + * Parses the given {@code String} of arguments in the context of the {@code DeleteTagCommand} + * and returns a {@code DeleteTagCommand} object for execution * * @param args Input string by user EXCEPT COMMAND WORD * - * @return AddTagCommand object with arguments loaded in + * @return DeleteTagCommand object with arguments loaded in * @throws ParseException If the user input does not conform to the expected format */ public AddTagCommand parse(String args) throws ParseException { diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index 06fb6ceb82d..866b026cccb 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -66,6 +66,9 @@ public Command parseCommand(String userInput) throws ParseException { case AddTagCommand.COMMAND_WORD: return new AddTagCommandParser().parse(arguments); + case DeleteTagCommand.COMMAND_WORD: + return new DeleteTagCommandParser().parse(arguments); + default: throw new ParseException(MESSAGE_UNKNOWN_COMMAND); } diff --git a/src/main/java/seedu/address/logic/parser/DeleteTagCommandParser.java b/src/main/java/seedu/address/logic/parser/DeleteTagCommandParser.java new file mode 100644 index 00000000000..52893f39793 --- /dev/null +++ b/src/main/java/seedu/address/logic/parser/DeleteTagCommandParser.java @@ -0,0 +1,39 @@ +package seedu.address.logic.parser; + +import static java.util.Objects.requireNonNull; +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; + +import seedu.address.commons.core.index.Index; +import seedu.address.commons.exceptions.IllegalValueException; +import seedu.address.logic.commands.DeleteTagCommand; +import seedu.address.logic.parser.exceptions.ParseException; + +public class DeleteTagCommandParser implements Parser { + /** + * Parses the given {@code String} of arguments in the context of the {@code DeleteTagCommand} + * and returns a {@code DeleteTagCommand} object for execution + * * @param args Input string by user EXCEPT COMMAND WORD + * + * @return DeleteTagCommand object with arguments loaded in + * @throws ParseException If the user input does not conform to the expected format + */ + public DeleteTagCommand parse(String args) throws ParseException { + requireNonNull(args); + ArgumentMultimap argMultimap = ArgumentTokenizer.tokenize(args, PREFIX_TAG); + + // Get index with ParserUtil instead of ArgumentTokenizer methods + Index index; + try { + index = ParserUtil.parseIndex(argMultimap.getPreamble()); + } catch (IllegalValueException ive) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteTagCommand.MESSAGE_USAGE), ive); + } + + // Get tag name with ArgumentTokenizer + String tagName = argMultimap.getValue(PREFIX_TAG).orElse(""); + + return new DeleteTagCommand(index, tagName); + } + +} From 0640a255cc12822ffda3c61f8c702cb1caf29570 Mon Sep 17 00:00:00 2001 From: juayhee Date: Mon, 14 Mar 2022 22:33:17 +0800 Subject: [PATCH 079/455] Fix checkstyle --- .../java/seedu/address/logic/commands/AddTagCommand.java | 5 +++++ .../java/seedu/address/logic/commands/DeleteTagCommand.java | 6 ++++++ .../seedu/address/logic/parser/DeleteTagCommandParser.java | 3 ++- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/logic/commands/AddTagCommand.java b/src/main/java/seedu/address/logic/commands/AddTagCommand.java index 17dfb780ca0..f29c685addd 100644 --- a/src/main/java/seedu/address/logic/commands/AddTagCommand.java +++ b/src/main/java/seedu/address/logic/commands/AddTagCommand.java @@ -36,6 +36,11 @@ public class AddTagCommand extends Command { private final Index index; private final String tagName; + /** + * Public constructor for AddTagCommand + * @param index Index of person to add tag to + * @param tagName Name of tag + */ public AddTagCommand(Index index, String tagName) { requireAllNonNull(index, tagName); diff --git a/src/main/java/seedu/address/logic/commands/DeleteTagCommand.java b/src/main/java/seedu/address/logic/commands/DeleteTagCommand.java index c64e505e9ad..870b0d35d1a 100644 --- a/src/main/java/seedu/address/logic/commands/DeleteTagCommand.java +++ b/src/main/java/seedu/address/logic/commands/DeleteTagCommand.java @@ -36,6 +36,12 @@ public class DeleteTagCommand extends Command { private final Index index; private final String tagName; + /** + * Public constructor for DeleteTagCommand + * @param index Index of person to delete tag from + * @param tagName Name of tag + */ + public DeleteTagCommand(Index index, String tagName) { requireAllNonNull(index, tagName); diff --git a/src/main/java/seedu/address/logic/parser/DeleteTagCommandParser.java b/src/main/java/seedu/address/logic/parser/DeleteTagCommandParser.java index 52893f39793..6bd622208d9 100644 --- a/src/main/java/seedu/address/logic/parser/DeleteTagCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/DeleteTagCommandParser.java @@ -27,7 +27,8 @@ public DeleteTagCommand parse(String args) throws ParseException { try { index = ParserUtil.parseIndex(argMultimap.getPreamble()); } catch (IllegalValueException ive) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteTagCommand.MESSAGE_USAGE), ive); + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + DeleteTagCommand.MESSAGE_USAGE), ive); } // Get tag name with ArgumentTokenizer From b1be4b8ebda7e4813d38e60834e476913fc0fbd1 Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Mon, 14 Mar 2022 22:36:32 +0800 Subject: [PATCH 080/455] Modify JavaDoc of ParserUtil class to be more explicit --- .../java/seedu/address/logic/parser/ParserUtil.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/seedu/address/logic/parser/ParserUtil.java b/src/main/java/seedu/address/logic/parser/ParserUtil.java index 5b593ff9e03..5fd12e449ed 100644 --- a/src/main/java/seedu/address/logic/parser/ParserUtil.java +++ b/src/main/java/seedu/address/logic/parser/ParserUtil.java @@ -39,16 +39,16 @@ public static Index parseIndex(String oneBasedIndex) throws ParseException { } /** - * Parses {@code oneBasedIndex} into an {@code Index} and returns it. Leading and trailing whitespaces will be - * trimmed. + * Parses {@code oneBasedNoteIndex} into an {@code NoteIndex} and returns it. Leading and trailing whitespaces + * will be trimmed. * @throws ParseException if the specified index is invalid (not non-zero unsigned integer). */ - public static Index parseNoteIndex(String oneBasedIndex) throws ParseException { - String trimmedIndex = oneBasedIndex.trim(); - if (!StringUtil.isNonZeroUnsignedInteger(trimmedIndex)) { + public static Index parseNoteIndex(String oneBasedNoteIndex) throws ParseException { + String trimmedNoteIndex = oneBasedNoteIndex.trim(); + if (!StringUtil.isNonZeroUnsignedInteger(trimmedNoteIndex)) { throw new ParseException(MESSAGE_INVALID_NOTE_INDEX); } - return Index.fromOneBased(Integer.parseInt(trimmedIndex)); + return Index.fromOneBased(Integer.parseInt(trimmedNoteIndex)); } /** From 9a7815930967f2671f876f6fc9d7d4ba03a153b8 Mon Sep 17 00:00:00 2001 From: juayhee Date: Mon, 14 Mar 2022 22:37:02 +0800 Subject: [PATCH 081/455] Fix import checkstyle --- .../address/logic/parser/AddressBookParser.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index 866b026cccb..2460dbcf781 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -6,7 +6,18 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -import seedu.address.logic.commands.*; +import seedu.address.logic.commands.AddCommand; +import seedu.address.logic.commands.AddNoteCommand; +import seedu.address.logic.commands.AddTagCommand; +import seedu.address.logic.commands.ClearCommand; +import seedu.address.logic.commands.Command; +import seedu.address.logic.commands.DeleteCommand; +import seedu.address.logic.commands.DeleteTagCommand; +import seedu.address.logic.commands.EditCommand; +import seedu.address.logic.commands.ExitCommand; +import seedu.address.logic.commands.FindCommand; +import seedu.address.logic.commands.HelpCommand; +import seedu.address.logic.commands.ListCommand; import seedu.address.logic.parser.exceptions.ParseException; /** From b5d88d34c7a51be59069c4808746521c0cb60ea6 Mon Sep 17 00:00:00 2001 From: Pragya Date: Mon, 14 Mar 2022 22:49:40 +0800 Subject: [PATCH 082/455] checkstyle edits --- .../address/logic/commands/AddTaskCommand.java | 4 ++-- .../logic/commands/DeleteTaskCommand.java | 8 ++++---- .../logic/parser/AddTaskCommandParser.java | 18 ++++++++++++------ .../logic/parser/DeleteTaskCommandParser.java | 4 ++-- 4 files changed, 20 insertions(+), 14 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/AddTaskCommand.java b/src/main/java/seedu/address/logic/commands/AddTaskCommand.java index 8dfdc120033..134465d8ac4 100644 --- a/src/main/java/seedu/address/logic/commands/AddTaskCommand.java +++ b/src/main/java/seedu/address/logic/commands/AddTaskCommand.java @@ -1,10 +1,10 @@ package seedu.address.logic.commands; import static java.util.Objects.requireNonNull; -import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; import static seedu.address.logic.parser.CliSyntax.PREFIX_DATE; -import static seedu.address.logic.parser.CliSyntax.PREFIX_STARTTIME; import static seedu.address.logic.parser.CliSyntax.PREFIX_ENDTIME; +import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; +import static seedu.address.logic.parser.CliSyntax.PREFIX_STARTTIME; import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; import seedu.address.logic.commands.exceptions.CommandException; diff --git a/src/main/java/seedu/address/logic/commands/DeleteTaskCommand.java b/src/main/java/seedu/address/logic/commands/DeleteTaskCommand.java index cd31ea1d94d..f156838d051 100644 --- a/src/main/java/seedu/address/logic/commands/DeleteTaskCommand.java +++ b/src/main/java/seedu/address/logic/commands/DeleteTaskCommand.java @@ -1,15 +1,15 @@ package seedu.address.logic.commands; +import static java.util.Objects.requireNonNull; + +import java.util.List; + import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; import seedu.address.model.task.Task; -import java.util.List; - -import static java.util.Objects.requireNonNull; - /** * Deletes a task identified using its index from the TaskList. */ diff --git a/src/main/java/seedu/address/logic/parser/AddTaskCommandParser.java b/src/main/java/seedu/address/logic/parser/AddTaskCommandParser.java index b41e559dee1..bf3c9c9ce1c 100644 --- a/src/main/java/seedu/address/logic/parser/AddTaskCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/AddTaskCommandParser.java @@ -1,5 +1,15 @@ package seedu.address.logic.parser; +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static seedu.address.logic.parser.CliSyntax.PREFIX_DATE; +import static seedu.address.logic.parser.CliSyntax.PREFIX_ENDTIME; +import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; +import static seedu.address.logic.parser.CliSyntax.PREFIX_STARTTIME; +import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; + +import java.util.Set; +import java.util.stream.Stream; + import seedu.address.logic.commands.AddTaskCommand; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.name.Name; @@ -9,11 +19,6 @@ import seedu.address.model.task.StartTime; import seedu.address.model.task.Task; -import java.util.Set; -import java.util.stream.Stream; - -import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static seedu.address.logic.parser.CliSyntax.*; /** * Parses input arguments and creates a new AddTaskCommand object @@ -27,7 +32,8 @@ public class AddTaskCommandParser implements Parser { */ public AddTaskCommand parse(String args) throws ParseException { ArgumentMultimap argMultimap = - ArgumentTokenizer.tokenize(args, PREFIX_NAME, PREFIX_DATE, PREFIX_STARTTIME, PREFIX_ENDTIME, PREFIX_TAG); + ArgumentTokenizer.tokenize(args, PREFIX_NAME, PREFIX_DATE, + PREFIX_STARTTIME, PREFIX_ENDTIME, PREFIX_TAG); if (!arePrefixesPresent(argMultimap, PREFIX_NAME, PREFIX_DATE, PREFIX_STARTTIME, PREFIX_ENDTIME) || !argMultimap.getPreamble().isEmpty()) { diff --git a/src/main/java/seedu/address/logic/parser/DeleteTaskCommandParser.java b/src/main/java/seedu/address/logic/parser/DeleteTaskCommandParser.java index 98c574c1bef..c261a89f74f 100644 --- a/src/main/java/seedu/address/logic/parser/DeleteTaskCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/DeleteTaskCommandParser.java @@ -1,11 +1,11 @@ package seedu.address.logic.parser; +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; + import seedu.address.commons.core.index.Index; import seedu.address.logic.commands.DeleteTaskCommand; import seedu.address.logic.parser.exceptions.ParseException; -import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; - /** * Parses input arguments and creates a new DeleteTaskCommand object */ From d03e54398d3b4b9e1c266589ac231d44b747e59b Mon Sep 17 00:00:00 2001 From: Pragya Date: Mon, 14 Mar 2022 22:55:32 +0800 Subject: [PATCH 083/455] no message --- src/main/java/seedu/address/logic/parser/AddressBookParser.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index 3d622390e0f..d404d364ea5 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -7,8 +7,8 @@ import java.util.regex.Pattern; import seedu.address.logic.commands.AddCommand; -import seedu.address.logic.commands.AddTaskCommand; import seedu.address.logic.commands.AddNoteCommand; +import seedu.address.logic.commands.AddTaskCommand; import seedu.address.logic.commands.ClearCommand; import seedu.address.logic.commands.Command; import seedu.address.logic.commands.DeleteCommand; From 685df466b11c5d27a5f7a2d072f5846742ecb668 Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Mon, 14 Mar 2022 23:33:10 +0800 Subject: [PATCH 084/455] Add more test methods to increase coverage of note-del related classees --- .../logic/commands/DeleteNoteCommand.java | 8 +++---- .../logic/parser/AddressBookParserTest.java | 11 ++++++++++ .../address/logic/parser/ParserUtilTest.java | 22 +++++++++++++++++++ 3 files changed, 37 insertions(+), 4 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/DeleteNoteCommand.java b/src/main/java/seedu/address/logic/commands/DeleteNoteCommand.java index 5571333d88a..9f71edd7036 100644 --- a/src/main/java/seedu/address/logic/commands/DeleteNoteCommand.java +++ b/src/main/java/seedu/address/logic/commands/DeleteNoteCommand.java @@ -85,9 +85,9 @@ private String generateSuccessMessage(Person personToEdit) { @Override public boolean equals(Object other) { - return other == this // short circuit if same object - || (other instanceof DeleteNoteCommand // instanceof handles nulls - && (index.equals(((DeleteNoteCommand) other).index) - && noteIndex.equals(((DeleteNoteCommand) other).noteIndex))); + return other == this + || (other instanceof DeleteNoteCommand + && index.equals(((DeleteNoteCommand) other).index) + && noteIndex.equals(((DeleteNoteCommand) other).noteIndex)); } } diff --git a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java index b6b132350bb..db89375ba8b 100644 --- a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java +++ b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java @@ -6,6 +6,8 @@ import static seedu.address.commons.core.Messages.MESSAGE_UNKNOWN_COMMAND; import static seedu.address.testutil.Assert.assertThrows; import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; +import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_PERSON; +import static seedu.address.testutil.TypicalIndexes.NOTE_FIRST_INDEX; import java.util.Arrays; import java.util.List; @@ -15,6 +17,7 @@ import seedu.address.logic.commands.AddCommand; import seedu.address.logic.commands.ClearCommand; import seedu.address.logic.commands.DeleteCommand; +import seedu.address.logic.commands.DeleteNoteCommand; import seedu.address.logic.commands.EditCommand; import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; import seedu.address.logic.commands.ExitCommand; @@ -53,6 +56,14 @@ public void parseCommand_delete() throws Exception { assertEquals(new DeleteCommand(INDEX_FIRST_PERSON), command); } + @Test + public void parseCommand_deleteNote() throws Exception { + DeleteNoteCommand command = (DeleteNoteCommand) parser.parseCommand( + DeleteNoteCommand.COMMAND_WORD + " " + INDEX_SECOND_PERSON.getOneBased() + + " " + NOTE_FIRST_INDEX.getOneBased()); + assertEquals(new DeleteNoteCommand(INDEX_SECOND_PERSON, NOTE_FIRST_INDEX), command); + } + @Test public void parseCommand_edit() throws Exception { Person person = new PersonBuilder().build(); diff --git a/src/test/java/seedu/address/logic/parser/ParserUtilTest.java b/src/test/java/seedu/address/logic/parser/ParserUtilTest.java index 0a44e88ffa0..df553ed62cc 100644 --- a/src/test/java/seedu/address/logic/parser/ParserUtilTest.java +++ b/src/test/java/seedu/address/logic/parser/ParserUtilTest.java @@ -3,8 +3,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; import static seedu.address.logic.parser.ParserUtil.MESSAGE_INVALID_INDEX; +import static seedu.address.logic.parser.ParserUtil.MESSAGE_INVALID_NOTE_INDEX; import static seedu.address.testutil.Assert.assertThrows; import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; +import static seedu.address.testutil.TypicalIndexes.NOTE_FIRST_INDEX; import java.util.Arrays; import java.util.Collections; @@ -57,6 +59,26 @@ public void parseIndex_validInput_success() throws Exception { assertEquals(INDEX_FIRST_PERSON, ParserUtil.parseIndex(" 1 ")); } + @Test + public void parseNoteIndex_invalidInput_throwsParseException() { + assertThrows(ParseException.class, () -> ParserUtil.parseNoteIndex("10 a")); + } + + @Test + public void parseNoteIndex_outOfRangeInput_throwsParseException() { + assertThrows(ParseException.class, MESSAGE_INVALID_NOTE_INDEX, () + -> ParserUtil.parseNoteIndex(Long.toString(Integer.MAX_VALUE + 1))); + } + + @Test + public void parseNoteIndex_validInput_success() throws Exception { + // No whitespaces + assertEquals(NOTE_FIRST_INDEX, ParserUtil.parseNoteIndex("1")); + + // Leading and trailing whitespaces + assertEquals(NOTE_FIRST_INDEX, ParserUtil.parseIndex(" 1 ")); + } + @Test public void parseName_null_throwsNullPointerException() { assertThrows(NullPointerException.class, () -> ParserUtil.parseName((String) null)); From 5775d2ba28a1500fdef09ffda141bd950a24c2be Mon Sep 17 00:00:00 2001 From: AAlghrairy <77106335+AAlghrairy@users.noreply.github.com> Date: Mon, 14 Mar 2022 23:50:14 +0800 Subject: [PATCH 085/455] Revert "Implement the note-del feature" --- .../seedu/address/commons/core/Messages.java | 1 - .../logic/commands/DeleteNoteCommand.java | 93 ------------------ .../logic/parser/AddressBookParser.java | 4 - .../logic/parser/DeleteNoteCommandParser.java | 30 ------ .../address/logic/parser/ParserUtil.java | 15 --- .../logic/commands/DeleteNoteCommandTest.java | 97 ------------------- .../logic/parser/AddressBookParserTest.java | 11 --- .../parser/DeleteNoteCommandParserTest.java | 36 ------- .../address/logic/parser/ParserUtilTest.java | 22 ----- .../address/testutil/TypicalIndexes.java | 2 - 10 files changed, 311 deletions(-) delete mode 100644 src/main/java/seedu/address/logic/commands/DeleteNoteCommand.java delete mode 100644 src/main/java/seedu/address/logic/parser/DeleteNoteCommandParser.java delete mode 100644 src/test/java/seedu/address/logic/commands/DeleteNoteCommandTest.java delete mode 100644 src/test/java/seedu/address/logic/parser/DeleteNoteCommandParserTest.java diff --git a/src/main/java/seedu/address/commons/core/Messages.java b/src/main/java/seedu/address/commons/core/Messages.java index 97c067aa205..1deb3a1e469 100644 --- a/src/main/java/seedu/address/commons/core/Messages.java +++ b/src/main/java/seedu/address/commons/core/Messages.java @@ -8,7 +8,6 @@ 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_PERSON_DISPLAYED_INDEX = "The person index provided is invalid"; - public static final String MESSAGE_INVALID_NOTE_DISPLAYED_INDEX = "The note index provided is invalid"; public static final String MESSAGE_PERSONS_LISTED_OVERVIEW = "%1$d persons listed!"; } diff --git a/src/main/java/seedu/address/logic/commands/DeleteNoteCommand.java b/src/main/java/seedu/address/logic/commands/DeleteNoteCommand.java deleted file mode 100644 index 9f71edd7036..00000000000 --- a/src/main/java/seedu/address/logic/commands/DeleteNoteCommand.java +++ /dev/null @@ -1,93 +0,0 @@ -package seedu.address.logic.commands; - -import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; -import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; - -import java.util.ArrayList; -import java.util.List; - -import seedu.address.commons.core.Messages; -import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.exceptions.CommandException; -import seedu.address.model.Model; -import seedu.address.model.note.Note; -import seedu.address.model.person.Person; - -/** - * Delete a note from a person in the address book - */ -public class DeleteNoteCommand extends Command { - public static final String COMMAND_WORD = "note-del"; - - public static final String MESSAGE_USAGE = COMMAND_WORD - + ": Delete a note from the note-list of selected person from our contact list. " - + "Parameters: " - + "INDEX (must be a positive integer) " - + "NOTE-INDEX (must be a positive)\n" - + "Example: " + COMMAND_WORD + " " - + "1 " - + "2"; - - public static final String MESSAGE_NOT_IMPLEMENTED_YET = - "DeleteNote command not implemented yet"; - - public static final String MESSAGE_SUCCESS = "Note has been deleted: %1$s"; - - public static final String MESSAGE_ARGUMENTS = "Index: %1$d, Index: %2$d"; - - private final Index index; - private final Index noteIndex; - - /** - * Constructor of DeleteNoteCommand class - * @param index index of the person in the filtered person list - * @param noteIndex index of the note from the person's note-list to be deleted - */ - public DeleteNoteCommand(Index index, Index noteIndex) { - requireAllNonNull(index, noteIndex); - this.index = index; - this.noteIndex = noteIndex; - } - - @Override - public CommandResult execute(Model model) throws CommandException { - List lastShownList = model.getFilteredPersonList(); - - if (index.getZeroBased() >= lastShownList.size()) { - throw new CommandException(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); - } - - Person personToEdit = lastShownList.get(index.getZeroBased()); - List newNotes = new ArrayList<>(personToEdit.getNotes()); - - if (noteIndex.getZeroBased() >= newNotes.size()) { - throw new CommandException(Messages.MESSAGE_INVALID_NOTE_DISPLAYED_INDEX); - } - newNotes.remove(noteIndex.getZeroBased()); - - Person editedPerson = new Person( - personToEdit.getName(), personToEdit.getPhone(), personToEdit.getEmail(), - personToEdit.getAddress(), personToEdit.getTags(), newNotes); - - model.setPerson(personToEdit, editedPerson); - model.updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); - - return new CommandResult(generateSuccessMessage(editedPerson)); - } - - /** - * Generates a command execution success message - * {@code personToEdit}. - */ - private String generateSuccessMessage(Person personToEdit) { - return String.format(MESSAGE_SUCCESS, personToEdit); - } - - @Override - public boolean equals(Object other) { - return other == this - || (other instanceof DeleteNoteCommand - && index.equals(((DeleteNoteCommand) other).index) - && noteIndex.equals(((DeleteNoteCommand) other).noteIndex)); - } -} diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index 5dc922009a5..877797edc26 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -11,7 +11,6 @@ import seedu.address.logic.commands.ClearCommand; import seedu.address.logic.commands.Command; import seedu.address.logic.commands.DeleteCommand; -import seedu.address.logic.commands.DeleteNoteCommand; import seedu.address.logic.commands.EditCommand; import seedu.address.logic.commands.ExitCommand; import seedu.address.logic.commands.FindCommand; @@ -67,9 +66,6 @@ public Command parseCommand(String userInput) throws ParseException { case AddNoteCommand.COMMAND_WORD: return new AddNoteCommandParser().parse(arguments); - case DeleteNoteCommand.COMMAND_WORD: - return new DeleteNoteCommandParser().parse(arguments); - case ExitCommand.COMMAND_WORD: return new ExitCommand(); diff --git a/src/main/java/seedu/address/logic/parser/DeleteNoteCommandParser.java b/src/main/java/seedu/address/logic/parser/DeleteNoteCommandParser.java deleted file mode 100644 index 7e6bd9753d0..00000000000 --- a/src/main/java/seedu/address/logic/parser/DeleteNoteCommandParser.java +++ /dev/null @@ -1,30 +0,0 @@ -package seedu.address.logic.parser; - -import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; - -import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.DeleteNoteCommand; -import seedu.address.logic.parser.exceptions.ParseException; - -/** - * Parses input arguments and creates a new {@code DeleteNoteCommand} object - */ -public class DeleteNoteCommandParser implements Parser { - /** - * Parses the given {@code String} of arguments in the context of the {@code DeleteNoteCommand} - * and returns a {@code DeleteNoteCommand} object for execution. - * @throws ParseException if the user input does not conform the expected format - */ - @Override - public DeleteNoteCommand parse(String args) throws ParseException { - try { - String[] splitArgs = args.trim().split("\\s+", 2); - Index index = ParserUtil.parseIndex(splitArgs[0]); - Index noteIndex = ParserUtil.parseNoteIndex(splitArgs[1]); - return new DeleteNoteCommand(index, noteIndex); - } catch (ParseException | IndexOutOfBoundsException pe) { - throw new ParseException( - String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteNoteCommand.MESSAGE_USAGE), pe); - } - } -} diff --git a/src/main/java/seedu/address/logic/parser/ParserUtil.java b/src/main/java/seedu/address/logic/parser/ParserUtil.java index 5fd12e449ed..f3699c7e730 100644 --- a/src/main/java/seedu/address/logic/parser/ParserUtil.java +++ b/src/main/java/seedu/address/logic/parser/ParserUtil.java @@ -23,8 +23,6 @@ public class ParserUtil { public static final String MESSAGE_INVALID_INDEX = "Index is not a non-zero unsigned integer."; - public static final String MESSAGE_INVALID_NOTE_INDEX = "Note index is not a non-zero unsigned integer."; - /** * Parses {@code oneBasedIndex} into an {@code Index} and returns it. Leading and trailing whitespaces will be * trimmed. @@ -38,19 +36,6 @@ public static Index parseIndex(String oneBasedIndex) throws ParseException { return Index.fromOneBased(Integer.parseInt(trimmedIndex)); } - /** - * Parses {@code oneBasedNoteIndex} into an {@code NoteIndex} and returns it. Leading and trailing whitespaces - * will be trimmed. - * @throws ParseException if the specified index is invalid (not non-zero unsigned integer). - */ - public static Index parseNoteIndex(String oneBasedNoteIndex) throws ParseException { - String trimmedNoteIndex = oneBasedNoteIndex.trim(); - if (!StringUtil.isNonZeroUnsignedInteger(trimmedNoteIndex)) { - throw new ParseException(MESSAGE_INVALID_NOTE_INDEX); - } - return Index.fromOneBased(Integer.parseInt(trimmedNoteIndex)); - } - /** * Parses a {@code String name} into a {@code Name}. * Leading and trailing whitespaces will be trimmed. diff --git a/src/test/java/seedu/address/logic/commands/DeleteNoteCommandTest.java b/src/test/java/seedu/address/logic/commands/DeleteNoteCommandTest.java deleted file mode 100644 index 3da6d0ee0de..00000000000 --- a/src/test/java/seedu/address/logic/commands/DeleteNoteCommandTest.java +++ /dev/null @@ -1,97 +0,0 @@ -package seedu.address.logic.commands; - -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; -import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; -import static seedu.address.testutil.Assert.assertThrows; -import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_PERSON; -import static seedu.address.testutil.TypicalIndexes.NOTE_FIRST_INDEX; -import static seedu.address.testutil.TypicalIndexes.NOTE_SECOND_INDEX; -import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; -import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; - -import java.util.ArrayList; -import java.util.List; - -import org.junit.jupiter.api.Test; - -import seedu.address.commons.core.Messages; -import seedu.address.commons.core.index.Index; -import seedu.address.model.Model; -import seedu.address.model.ModelManager; -import seedu.address.model.UserPrefs; -import seedu.address.model.note.Note; -import seedu.address.model.person.Person; - -/** - * Contains integration tests (interaction with the Model) for - * {@code DeleteNoteCommand}. - */ -public class DeleteNoteCommandTest { - - private final Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); - - @Test - public void constructor_nullIndex_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> new DeleteNoteCommand(null, null)); - } - - @Test - public void execute_validNoteIndexUnfilteredList_success() throws Exception { - Person personToDeleteNoteFrom = model.getFilteredPersonList().get(INDEX_SECOND_PERSON.getZeroBased()); - List newNotes = new ArrayList<>(personToDeleteNoteFrom.getNotes()); - newNotes.remove(NOTE_FIRST_INDEX.getZeroBased()); - Person personWithModifiedNote = new Person(personToDeleteNoteFrom.getName(), personToDeleteNoteFrom.getPhone(), - personToDeleteNoteFrom.getEmail(), personToDeleteNoteFrom.getAddress(), - personToDeleteNoteFrom.getTags(), newNotes); - - DeleteNoteCommand deleteNoteCommand = new DeleteNoteCommand(INDEX_SECOND_PERSON, NOTE_FIRST_INDEX); - - String expectedMessage = String.format(DeleteNoteCommand.MESSAGE_SUCCESS, personWithModifiedNote); - - ModelManager expectedModel = new ModelManager(model.getAddressBook(), - model.getTaskBook(), new UserPrefs()); - deleteNoteCommand.execute(expectedModel); - assertCommandSuccess(deleteNoteCommand, model, expectedMessage, expectedModel); - } - - @Test - public void execute_invalidNoteIndexUnfilteredList_throwsCommandException() { - Index outOfBoundNoteIndex = Index.fromOneBased(model.getFilteredPersonList().get( - INDEX_SECOND_PERSON.getZeroBased()).getNotes().size() + 1); - DeleteNoteCommand deleteNoteCommand = new DeleteNoteCommand(INDEX_SECOND_PERSON, outOfBoundNoteIndex); - - assertCommandFailure(deleteNoteCommand, model, Messages.MESSAGE_INVALID_NOTE_DISPLAYED_INDEX); - } - - @Test - public void execute_invalidPersonIndexUnfilteredList_throwsCommandException() { - Index outOfBoundNoteIndex = Index.fromOneBased(model.getFilteredPersonList().size() + 1); - DeleteNoteCommand deleteNoteCommand = new DeleteNoteCommand(outOfBoundNoteIndex, NOTE_FIRST_INDEX); - - assertCommandFailure(deleteNoteCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); - } - - @Test - public void equals() { - DeleteNoteCommand deleteNoteFirstCommand = new DeleteNoteCommand(INDEX_SECOND_PERSON, NOTE_FIRST_INDEX); - DeleteNoteCommand deleteNoteSecondCommand = new DeleteNoteCommand(INDEX_SECOND_PERSON, NOTE_SECOND_INDEX); - - // same object -> returns true - assertTrue(deleteNoteFirstCommand.equals(deleteNoteFirstCommand)); - - // same values -> returns true - DeleteNoteCommand deleteNoteFirstCommandCopy = new DeleteNoteCommand(INDEX_SECOND_PERSON, NOTE_FIRST_INDEX); - assertTrue(deleteNoteFirstCommand.equals(deleteNoteFirstCommandCopy)); - - // different types -> returns false - assertFalse(deleteNoteFirstCommand.equals(1)); - - // null -> returns false - assertFalse(deleteNoteFirstCommand.equals(null)); - - // different person -> returns false - assertFalse(deleteNoteFirstCommand.equals(deleteNoteSecondCommand)); - } -} diff --git a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java index db89375ba8b..b6b132350bb 100644 --- a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java +++ b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java @@ -6,8 +6,6 @@ import static seedu.address.commons.core.Messages.MESSAGE_UNKNOWN_COMMAND; import static seedu.address.testutil.Assert.assertThrows; import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; -import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_PERSON; -import static seedu.address.testutil.TypicalIndexes.NOTE_FIRST_INDEX; import java.util.Arrays; import java.util.List; @@ -17,7 +15,6 @@ import seedu.address.logic.commands.AddCommand; import seedu.address.logic.commands.ClearCommand; import seedu.address.logic.commands.DeleteCommand; -import seedu.address.logic.commands.DeleteNoteCommand; import seedu.address.logic.commands.EditCommand; import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; import seedu.address.logic.commands.ExitCommand; @@ -56,14 +53,6 @@ public void parseCommand_delete() throws Exception { assertEquals(new DeleteCommand(INDEX_FIRST_PERSON), command); } - @Test - public void parseCommand_deleteNote() throws Exception { - DeleteNoteCommand command = (DeleteNoteCommand) parser.parseCommand( - DeleteNoteCommand.COMMAND_WORD + " " + INDEX_SECOND_PERSON.getOneBased() - + " " + NOTE_FIRST_INDEX.getOneBased()); - assertEquals(new DeleteNoteCommand(INDEX_SECOND_PERSON, NOTE_FIRST_INDEX), command); - } - @Test public void parseCommand_edit() throws Exception { Person person = new PersonBuilder().build(); diff --git a/src/test/java/seedu/address/logic/parser/DeleteNoteCommandParserTest.java b/src/test/java/seedu/address/logic/parser/DeleteNoteCommandParserTest.java deleted file mode 100644 index 92760e5fb44..00000000000 --- a/src/test/java/seedu/address/logic/parser/DeleteNoteCommandParserTest.java +++ /dev/null @@ -1,36 +0,0 @@ -package seedu.address.logic.parser; - -import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; -import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; -import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_PERSON; -import static seedu.address.testutil.TypicalIndexes.NOTE_FIRST_INDEX; - -import org.junit.jupiter.api.Test; - -import seedu.address.logic.commands.DeleteNoteCommand; - -/** - * Contains tests for - * {@code DeleteNoteCommandParser}. - */ -public class DeleteNoteCommandParserTest { - private DeleteNoteCommandParser parser = new DeleteNoteCommandParser(); - - @Test - public void parse_validArgs_returnsDeleteCommand() { - assertParseSuccess(parser, "2 1", new DeleteNoteCommand(INDEX_SECOND_PERSON, NOTE_FIRST_INDEX)); - } - - @Test - public void parse_invalidArgs_throwsParseException() { - assertParseFailure(parser, "2", String.format(MESSAGE_INVALID_COMMAND_FORMAT, - DeleteNoteCommand.MESSAGE_USAGE)); - } - - @Test - public void parse_emptyArgs_throwsParseException() { - assertParseFailure(parser, " ", String.format(MESSAGE_INVALID_COMMAND_FORMAT, - DeleteNoteCommand.MESSAGE_USAGE)); - } -} diff --git a/src/test/java/seedu/address/logic/parser/ParserUtilTest.java b/src/test/java/seedu/address/logic/parser/ParserUtilTest.java index df553ed62cc..0a44e88ffa0 100644 --- a/src/test/java/seedu/address/logic/parser/ParserUtilTest.java +++ b/src/test/java/seedu/address/logic/parser/ParserUtilTest.java @@ -3,10 +3,8 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; import static seedu.address.logic.parser.ParserUtil.MESSAGE_INVALID_INDEX; -import static seedu.address.logic.parser.ParserUtil.MESSAGE_INVALID_NOTE_INDEX; import static seedu.address.testutil.Assert.assertThrows; import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; -import static seedu.address.testutil.TypicalIndexes.NOTE_FIRST_INDEX; import java.util.Arrays; import java.util.Collections; @@ -59,26 +57,6 @@ public void parseIndex_validInput_success() throws Exception { assertEquals(INDEX_FIRST_PERSON, ParserUtil.parseIndex(" 1 ")); } - @Test - public void parseNoteIndex_invalidInput_throwsParseException() { - assertThrows(ParseException.class, () -> ParserUtil.parseNoteIndex("10 a")); - } - - @Test - public void parseNoteIndex_outOfRangeInput_throwsParseException() { - assertThrows(ParseException.class, MESSAGE_INVALID_NOTE_INDEX, () - -> ParserUtil.parseNoteIndex(Long.toString(Integer.MAX_VALUE + 1))); - } - - @Test - public void parseNoteIndex_validInput_success() throws Exception { - // No whitespaces - assertEquals(NOTE_FIRST_INDEX, ParserUtil.parseNoteIndex("1")); - - // Leading and trailing whitespaces - assertEquals(NOTE_FIRST_INDEX, ParserUtil.parseIndex(" 1 ")); - } - @Test public void parseName_null_throwsNullPointerException() { assertThrows(NullPointerException.class, () -> ParserUtil.parseName((String) null)); diff --git a/src/test/java/seedu/address/testutil/TypicalIndexes.java b/src/test/java/seedu/address/testutil/TypicalIndexes.java index 57d999cbdfe..1e613937657 100644 --- a/src/test/java/seedu/address/testutil/TypicalIndexes.java +++ b/src/test/java/seedu/address/testutil/TypicalIndexes.java @@ -9,6 +9,4 @@ public class TypicalIndexes { public static final Index INDEX_FIRST_PERSON = Index.fromOneBased(1); public static final Index INDEX_SECOND_PERSON = Index.fromOneBased(2); public static final Index INDEX_THIRD_PERSON = Index.fromOneBased(3); - public static final Index NOTE_FIRST_INDEX = Index.fromOneBased(1); - public static final Index NOTE_SECOND_INDEX = Index.fromOneBased(2); } From d3a3c75a4e3d2027464e1e9e10e83570f49a0f00 Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Mon, 14 Mar 2022 23:58:55 +0800 Subject: [PATCH 086/455] Remove gradle-wrapper files temporarily to fix validation check --- gradle/wrapper/gradle-wrapper.jar | Bin 55190 -> 0 bytes gradle/wrapper/gradle-wrapper.properties | 5 ----- 2 files changed, 5 deletions(-) delete mode 100644 gradle/wrapper/gradle-wrapper.jar delete mode 100644 gradle/wrapper/gradle-wrapper.properties diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index 87b738cbd051603d91cc39de6cb000dd98fe6b02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55190 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 z 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 Date: Mon, 14 Mar 2022 23:59:50 +0800 Subject: [PATCH 087/455] Add gradle-wrapper files from previous commit --- gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 55190 bytes gradle/wrapper/gradle-wrapper.properties | 5 +++++ 2 files changed, 5 insertions(+) create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..87b738cbd051603d91cc39de6cb000dd98fe6b02 GIT binary patch literal 55190 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 z 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 Date: Tue, 15 Mar 2022 00:18:42 +0800 Subject: [PATCH 088/455] Reimplement note-del feature --- .../seedu/address/commons/core/Messages.java | 1 + .../logic/commands/DeleteNoteCommand.java | 93 ++++++++++++++++++ .../logic/parser/AddressBookParser.java | 4 + .../logic/parser/DeleteNoteCommandParser.java | 30 ++++++ .../address/logic/parser/ParserUtil.java | 15 +++ .../logic/commands/DeleteNoteCommandTest.java | 97 +++++++++++++++++++ .../logic/parser/AddressBookParserTest.java | 11 +++ .../parser/DeleteNoteCommandParserTest.java | 36 +++++++ .../address/logic/parser/ParserUtilTest.java | 22 +++++ .../address/testutil/TypicalIndexes.java | 2 + 10 files changed, 311 insertions(+) create mode 100644 src/main/java/seedu/address/logic/commands/DeleteNoteCommand.java create mode 100644 src/main/java/seedu/address/logic/parser/DeleteNoteCommandParser.java create mode 100644 src/test/java/seedu/address/logic/commands/DeleteNoteCommandTest.java create mode 100644 src/test/java/seedu/address/logic/parser/DeleteNoteCommandParserTest.java diff --git a/src/main/java/seedu/address/commons/core/Messages.java b/src/main/java/seedu/address/commons/core/Messages.java index 1deb3a1e469..97c067aa205 100644 --- a/src/main/java/seedu/address/commons/core/Messages.java +++ b/src/main/java/seedu/address/commons/core/Messages.java @@ -8,6 +8,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_PERSON_DISPLAYED_INDEX = "The person index provided is invalid"; + public static final String MESSAGE_INVALID_NOTE_DISPLAYED_INDEX = "The note index provided is invalid"; public static final String MESSAGE_PERSONS_LISTED_OVERVIEW = "%1$d persons listed!"; } diff --git a/src/main/java/seedu/address/logic/commands/DeleteNoteCommand.java b/src/main/java/seedu/address/logic/commands/DeleteNoteCommand.java new file mode 100644 index 00000000000..9f71edd7036 --- /dev/null +++ b/src/main/java/seedu/address/logic/commands/DeleteNoteCommand.java @@ -0,0 +1,93 @@ +package seedu.address.logic.commands; + +import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; +import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; + +import java.util.ArrayList; +import java.util.List; + +import seedu.address.commons.core.Messages; +import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.exceptions.CommandException; +import seedu.address.model.Model; +import seedu.address.model.note.Note; +import seedu.address.model.person.Person; + +/** + * Delete a note from a person in the address book + */ +public class DeleteNoteCommand extends Command { + public static final String COMMAND_WORD = "note-del"; + + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Delete a note from the note-list of selected person from our contact list. " + + "Parameters: " + + "INDEX (must be a positive integer) " + + "NOTE-INDEX (must be a positive)\n" + + "Example: " + COMMAND_WORD + " " + + "1 " + + "2"; + + public static final String MESSAGE_NOT_IMPLEMENTED_YET = + "DeleteNote command not implemented yet"; + + public static final String MESSAGE_SUCCESS = "Note has been deleted: %1$s"; + + public static final String MESSAGE_ARGUMENTS = "Index: %1$d, Index: %2$d"; + + private final Index index; + private final Index noteIndex; + + /** + * Constructor of DeleteNoteCommand class + * @param index index of the person in the filtered person list + * @param noteIndex index of the note from the person's note-list to be deleted + */ + public DeleteNoteCommand(Index index, Index noteIndex) { + requireAllNonNull(index, noteIndex); + this.index = index; + this.noteIndex = noteIndex; + } + + @Override + public CommandResult execute(Model model) throws CommandException { + List lastShownList = model.getFilteredPersonList(); + + if (index.getZeroBased() >= lastShownList.size()) { + throw new CommandException(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + } + + Person personToEdit = lastShownList.get(index.getZeroBased()); + List newNotes = new ArrayList<>(personToEdit.getNotes()); + + if (noteIndex.getZeroBased() >= newNotes.size()) { + throw new CommandException(Messages.MESSAGE_INVALID_NOTE_DISPLAYED_INDEX); + } + newNotes.remove(noteIndex.getZeroBased()); + + Person editedPerson = new Person( + personToEdit.getName(), personToEdit.getPhone(), personToEdit.getEmail(), + personToEdit.getAddress(), personToEdit.getTags(), newNotes); + + model.setPerson(personToEdit, editedPerson); + model.updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); + + return new CommandResult(generateSuccessMessage(editedPerson)); + } + + /** + * Generates a command execution success message + * {@code personToEdit}. + */ + private String generateSuccessMessage(Person personToEdit) { + return String.format(MESSAGE_SUCCESS, personToEdit); + } + + @Override + public boolean equals(Object other) { + return other == this + || (other instanceof DeleteNoteCommand + && index.equals(((DeleteNoteCommand) other).index) + && noteIndex.equals(((DeleteNoteCommand) other).noteIndex)); + } +} diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index 877797edc26..5dc922009a5 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -11,6 +11,7 @@ import seedu.address.logic.commands.ClearCommand; import seedu.address.logic.commands.Command; import seedu.address.logic.commands.DeleteCommand; +import seedu.address.logic.commands.DeleteNoteCommand; import seedu.address.logic.commands.EditCommand; import seedu.address.logic.commands.ExitCommand; import seedu.address.logic.commands.FindCommand; @@ -66,6 +67,9 @@ public Command parseCommand(String userInput) throws ParseException { case AddNoteCommand.COMMAND_WORD: return new AddNoteCommandParser().parse(arguments); + case DeleteNoteCommand.COMMAND_WORD: + return new DeleteNoteCommandParser().parse(arguments); + case ExitCommand.COMMAND_WORD: return new ExitCommand(); diff --git a/src/main/java/seedu/address/logic/parser/DeleteNoteCommandParser.java b/src/main/java/seedu/address/logic/parser/DeleteNoteCommandParser.java new file mode 100644 index 00000000000..7e6bd9753d0 --- /dev/null +++ b/src/main/java/seedu/address/logic/parser/DeleteNoteCommandParser.java @@ -0,0 +1,30 @@ +package seedu.address.logic.parser; + +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; + +import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.DeleteNoteCommand; +import seedu.address.logic.parser.exceptions.ParseException; + +/** + * Parses input arguments and creates a new {@code DeleteNoteCommand} object + */ +public class DeleteNoteCommandParser implements Parser { + /** + * Parses the given {@code String} of arguments in the context of the {@code DeleteNoteCommand} + * and returns a {@code DeleteNoteCommand} object for execution. + * @throws ParseException if the user input does not conform the expected format + */ + @Override + public DeleteNoteCommand parse(String args) throws ParseException { + try { + String[] splitArgs = args.trim().split("\\s+", 2); + Index index = ParserUtil.parseIndex(splitArgs[0]); + Index noteIndex = ParserUtil.parseNoteIndex(splitArgs[1]); + return new DeleteNoteCommand(index, noteIndex); + } catch (ParseException | IndexOutOfBoundsException pe) { + throw new ParseException( + String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteNoteCommand.MESSAGE_USAGE), pe); + } + } +} diff --git a/src/main/java/seedu/address/logic/parser/ParserUtil.java b/src/main/java/seedu/address/logic/parser/ParserUtil.java index f3699c7e730..5fd12e449ed 100644 --- a/src/main/java/seedu/address/logic/parser/ParserUtil.java +++ b/src/main/java/seedu/address/logic/parser/ParserUtil.java @@ -23,6 +23,8 @@ public class ParserUtil { public static final String MESSAGE_INVALID_INDEX = "Index is not a non-zero unsigned integer."; + public static final String MESSAGE_INVALID_NOTE_INDEX = "Note index is not a non-zero unsigned integer."; + /** * Parses {@code oneBasedIndex} into an {@code Index} and returns it. Leading and trailing whitespaces will be * trimmed. @@ -36,6 +38,19 @@ public static Index parseIndex(String oneBasedIndex) throws ParseException { return Index.fromOneBased(Integer.parseInt(trimmedIndex)); } + /** + * Parses {@code oneBasedNoteIndex} into an {@code NoteIndex} and returns it. Leading and trailing whitespaces + * will be trimmed. + * @throws ParseException if the specified index is invalid (not non-zero unsigned integer). + */ + public static Index parseNoteIndex(String oneBasedNoteIndex) throws ParseException { + String trimmedNoteIndex = oneBasedNoteIndex.trim(); + if (!StringUtil.isNonZeroUnsignedInteger(trimmedNoteIndex)) { + throw new ParseException(MESSAGE_INVALID_NOTE_INDEX); + } + return Index.fromOneBased(Integer.parseInt(trimmedNoteIndex)); + } + /** * Parses a {@code String name} into a {@code Name}. * Leading and trailing whitespaces will be trimmed. diff --git a/src/test/java/seedu/address/logic/commands/DeleteNoteCommandTest.java b/src/test/java/seedu/address/logic/commands/DeleteNoteCommandTest.java new file mode 100644 index 00000000000..3da6d0ee0de --- /dev/null +++ b/src/test/java/seedu/address/logic/commands/DeleteNoteCommandTest.java @@ -0,0 +1,97 @@ +package seedu.address.logic.commands; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; +import static seedu.address.testutil.Assert.assertThrows; +import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_PERSON; +import static seedu.address.testutil.TypicalIndexes.NOTE_FIRST_INDEX; +import static seedu.address.testutil.TypicalIndexes.NOTE_SECOND_INDEX; +import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.jupiter.api.Test; + +import seedu.address.commons.core.Messages; +import seedu.address.commons.core.index.Index; +import seedu.address.model.Model; +import seedu.address.model.ModelManager; +import seedu.address.model.UserPrefs; +import seedu.address.model.note.Note; +import seedu.address.model.person.Person; + +/** + * Contains integration tests (interaction with the Model) for + * {@code DeleteNoteCommand}. + */ +public class DeleteNoteCommandTest { + + private final Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + + @Test + public void constructor_nullIndex_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> new DeleteNoteCommand(null, null)); + } + + @Test + public void execute_validNoteIndexUnfilteredList_success() throws Exception { + Person personToDeleteNoteFrom = model.getFilteredPersonList().get(INDEX_SECOND_PERSON.getZeroBased()); + List newNotes = new ArrayList<>(personToDeleteNoteFrom.getNotes()); + newNotes.remove(NOTE_FIRST_INDEX.getZeroBased()); + Person personWithModifiedNote = new Person(personToDeleteNoteFrom.getName(), personToDeleteNoteFrom.getPhone(), + personToDeleteNoteFrom.getEmail(), personToDeleteNoteFrom.getAddress(), + personToDeleteNoteFrom.getTags(), newNotes); + + DeleteNoteCommand deleteNoteCommand = new DeleteNoteCommand(INDEX_SECOND_PERSON, NOTE_FIRST_INDEX); + + String expectedMessage = String.format(DeleteNoteCommand.MESSAGE_SUCCESS, personWithModifiedNote); + + ModelManager expectedModel = new ModelManager(model.getAddressBook(), + model.getTaskBook(), new UserPrefs()); + deleteNoteCommand.execute(expectedModel); + assertCommandSuccess(deleteNoteCommand, model, expectedMessage, expectedModel); + } + + @Test + public void execute_invalidNoteIndexUnfilteredList_throwsCommandException() { + Index outOfBoundNoteIndex = Index.fromOneBased(model.getFilteredPersonList().get( + INDEX_SECOND_PERSON.getZeroBased()).getNotes().size() + 1); + DeleteNoteCommand deleteNoteCommand = new DeleteNoteCommand(INDEX_SECOND_PERSON, outOfBoundNoteIndex); + + assertCommandFailure(deleteNoteCommand, model, Messages.MESSAGE_INVALID_NOTE_DISPLAYED_INDEX); + } + + @Test + public void execute_invalidPersonIndexUnfilteredList_throwsCommandException() { + Index outOfBoundNoteIndex = Index.fromOneBased(model.getFilteredPersonList().size() + 1); + DeleteNoteCommand deleteNoteCommand = new DeleteNoteCommand(outOfBoundNoteIndex, NOTE_FIRST_INDEX); + + assertCommandFailure(deleteNoteCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + } + + @Test + public void equals() { + DeleteNoteCommand deleteNoteFirstCommand = new DeleteNoteCommand(INDEX_SECOND_PERSON, NOTE_FIRST_INDEX); + DeleteNoteCommand deleteNoteSecondCommand = new DeleteNoteCommand(INDEX_SECOND_PERSON, NOTE_SECOND_INDEX); + + // same object -> returns true + assertTrue(deleteNoteFirstCommand.equals(deleteNoteFirstCommand)); + + // same values -> returns true + DeleteNoteCommand deleteNoteFirstCommandCopy = new DeleteNoteCommand(INDEX_SECOND_PERSON, NOTE_FIRST_INDEX); + assertTrue(deleteNoteFirstCommand.equals(deleteNoteFirstCommandCopy)); + + // different types -> returns false + assertFalse(deleteNoteFirstCommand.equals(1)); + + // null -> returns false + assertFalse(deleteNoteFirstCommand.equals(null)); + + // different person -> returns false + assertFalse(deleteNoteFirstCommand.equals(deleteNoteSecondCommand)); + } +} diff --git a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java index b6b132350bb..db89375ba8b 100644 --- a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java +++ b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java @@ -6,6 +6,8 @@ import static seedu.address.commons.core.Messages.MESSAGE_UNKNOWN_COMMAND; import static seedu.address.testutil.Assert.assertThrows; import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; +import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_PERSON; +import static seedu.address.testutil.TypicalIndexes.NOTE_FIRST_INDEX; import java.util.Arrays; import java.util.List; @@ -15,6 +17,7 @@ import seedu.address.logic.commands.AddCommand; import seedu.address.logic.commands.ClearCommand; import seedu.address.logic.commands.DeleteCommand; +import seedu.address.logic.commands.DeleteNoteCommand; import seedu.address.logic.commands.EditCommand; import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; import seedu.address.logic.commands.ExitCommand; @@ -53,6 +56,14 @@ public void parseCommand_delete() throws Exception { assertEquals(new DeleteCommand(INDEX_FIRST_PERSON), command); } + @Test + public void parseCommand_deleteNote() throws Exception { + DeleteNoteCommand command = (DeleteNoteCommand) parser.parseCommand( + DeleteNoteCommand.COMMAND_WORD + " " + INDEX_SECOND_PERSON.getOneBased() + + " " + NOTE_FIRST_INDEX.getOneBased()); + assertEquals(new DeleteNoteCommand(INDEX_SECOND_PERSON, NOTE_FIRST_INDEX), command); + } + @Test public void parseCommand_edit() throws Exception { Person person = new PersonBuilder().build(); diff --git a/src/test/java/seedu/address/logic/parser/DeleteNoteCommandParserTest.java b/src/test/java/seedu/address/logic/parser/DeleteNoteCommandParserTest.java new file mode 100644 index 00000000000..92760e5fb44 --- /dev/null +++ b/src/test/java/seedu/address/logic/parser/DeleteNoteCommandParserTest.java @@ -0,0 +1,36 @@ +package seedu.address.logic.parser; + +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; +import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; +import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_PERSON; +import static seedu.address.testutil.TypicalIndexes.NOTE_FIRST_INDEX; + +import org.junit.jupiter.api.Test; + +import seedu.address.logic.commands.DeleteNoteCommand; + +/** + * Contains tests for + * {@code DeleteNoteCommandParser}. + */ +public class DeleteNoteCommandParserTest { + private DeleteNoteCommandParser parser = new DeleteNoteCommandParser(); + + @Test + public void parse_validArgs_returnsDeleteCommand() { + assertParseSuccess(parser, "2 1", new DeleteNoteCommand(INDEX_SECOND_PERSON, NOTE_FIRST_INDEX)); + } + + @Test + public void parse_invalidArgs_throwsParseException() { + assertParseFailure(parser, "2", String.format(MESSAGE_INVALID_COMMAND_FORMAT, + DeleteNoteCommand.MESSAGE_USAGE)); + } + + @Test + public void parse_emptyArgs_throwsParseException() { + assertParseFailure(parser, " ", String.format(MESSAGE_INVALID_COMMAND_FORMAT, + DeleteNoteCommand.MESSAGE_USAGE)); + } +} diff --git a/src/test/java/seedu/address/logic/parser/ParserUtilTest.java b/src/test/java/seedu/address/logic/parser/ParserUtilTest.java index 0a44e88ffa0..df553ed62cc 100644 --- a/src/test/java/seedu/address/logic/parser/ParserUtilTest.java +++ b/src/test/java/seedu/address/logic/parser/ParserUtilTest.java @@ -3,8 +3,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; import static seedu.address.logic.parser.ParserUtil.MESSAGE_INVALID_INDEX; +import static seedu.address.logic.parser.ParserUtil.MESSAGE_INVALID_NOTE_INDEX; import static seedu.address.testutil.Assert.assertThrows; import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; +import static seedu.address.testutil.TypicalIndexes.NOTE_FIRST_INDEX; import java.util.Arrays; import java.util.Collections; @@ -57,6 +59,26 @@ public void parseIndex_validInput_success() throws Exception { assertEquals(INDEX_FIRST_PERSON, ParserUtil.parseIndex(" 1 ")); } + @Test + public void parseNoteIndex_invalidInput_throwsParseException() { + assertThrows(ParseException.class, () -> ParserUtil.parseNoteIndex("10 a")); + } + + @Test + public void parseNoteIndex_outOfRangeInput_throwsParseException() { + assertThrows(ParseException.class, MESSAGE_INVALID_NOTE_INDEX, () + -> ParserUtil.parseNoteIndex(Long.toString(Integer.MAX_VALUE + 1))); + } + + @Test + public void parseNoteIndex_validInput_success() throws Exception { + // No whitespaces + assertEquals(NOTE_FIRST_INDEX, ParserUtil.parseNoteIndex("1")); + + // Leading and trailing whitespaces + assertEquals(NOTE_FIRST_INDEX, ParserUtil.parseIndex(" 1 ")); + } + @Test public void parseName_null_throwsNullPointerException() { assertThrows(NullPointerException.class, () -> ParserUtil.parseName((String) null)); diff --git a/src/test/java/seedu/address/testutil/TypicalIndexes.java b/src/test/java/seedu/address/testutil/TypicalIndexes.java index 1e613937657..57d999cbdfe 100644 --- a/src/test/java/seedu/address/testutil/TypicalIndexes.java +++ b/src/test/java/seedu/address/testutil/TypicalIndexes.java @@ -9,4 +9,6 @@ public class TypicalIndexes { public static final Index INDEX_FIRST_PERSON = Index.fromOneBased(1); public static final Index INDEX_SECOND_PERSON = Index.fromOneBased(2); public static final Index INDEX_THIRD_PERSON = Index.fromOneBased(3); + public static final Index NOTE_FIRST_INDEX = Index.fromOneBased(1); + public static final Index NOTE_SECOND_INDEX = Index.fromOneBased(2); } From b3af542e44d44e76ea56f5c5829346d4df4ac593 Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Tue, 15 Mar 2022 01:57:44 +0800 Subject: [PATCH 089/455] Implement drag and move features in StrategyPanel --- .../java/seedu/address/ui/MainWindow.java | 7 ++ .../java/seedu/address/ui/StrategyPanel.java | 73 +++++++++++++++++++ src/main/resources/view/MainWindow.fxml | 9 ++- src/main/resources/view/StrategyPanel.fxml | 11 +++ 4 files changed, 99 insertions(+), 1 deletion(-) create mode 100644 src/main/java/seedu/address/ui/StrategyPanel.java create mode 100644 src/main/resources/view/StrategyPanel.fxml diff --git a/src/main/java/seedu/address/ui/MainWindow.java b/src/main/java/seedu/address/ui/MainWindow.java index e96e4c93450..907162985e7 100644 --- a/src/main/java/seedu/address/ui/MainWindow.java +++ b/src/main/java/seedu/address/ui/MainWindow.java @@ -8,6 +8,7 @@ import javafx.scene.control.TextInputControl; import javafx.scene.input.KeyCombination; import javafx.scene.input.KeyEvent; +import javafx.scene.layout.AnchorPane; import javafx.scene.layout.StackPane; import javafx.stage.Stage; import seedu.address.commons.core.GuiSettings; @@ -33,6 +34,7 @@ public class MainWindow extends UiPart { // Independent Ui parts residing in this Ui container private PersonListPanel personListPanel; private TaskListPanel taskListPanel; + private StrategyPanel strategyPanel; private ResultDisplay resultDisplay; private HelpWindow helpWindow; @@ -48,6 +50,9 @@ public class MainWindow extends UiPart { @FXML private StackPane taskListPanelPlaceholder; + @FXML + private AnchorPane strategyPanelPlaceholder; + @FXML private StackPane resultDisplayPlaceholder; @@ -118,6 +123,8 @@ void fillInnerParts() { personListPanelPlaceholder.getChildren().add(personListPanel.getRoot()); taskListPanel = new TaskListPanel(logic.getFilteredTaskList()); taskListPanelPlaceholder.getChildren().add(taskListPanel.getRoot()); + strategyPanel = new StrategyPanel(); + strategyPanelPlaceholder.getChildren().add(strategyPanel.getRoot()); resultDisplay = new ResultDisplay(); resultDisplayPlaceholder.getChildren().add(resultDisplay.getRoot()); diff --git a/src/main/java/seedu/address/ui/StrategyPanel.java b/src/main/java/seedu/address/ui/StrategyPanel.java new file mode 100644 index 00000000000..d08be6f96ff --- /dev/null +++ b/src/main/java/seedu/address/ui/StrategyPanel.java @@ -0,0 +1,73 @@ +package seedu.address.ui; + +import javafx.event.EventHandler; +import javafx.fxml.FXML; +import javafx.scene.Cursor; +import javafx.scene.input.MouseEvent; +import javafx.scene.layout.Region; +import javafx.scene.paint.Color; +import javafx.scene.paint.Paint; +import javafx.scene.shape.Circle; + +public class StrategyPanel extends UiPart { + private static final String FXML = "StrategyPanel.fxml"; + + private static double orgSceneX; + private static double orgSceneY; + private static double orgTranslateX; + private static double orgTranslateY; + + @FXML + private Circle player1; + @FXML + private Circle player2; + @FXML + private Circle player3; + + private EventHandler pressHandler = + new EventHandler() { + + @Override + public void handle(MouseEvent t) { + orgSceneX = t.getSceneX(); + orgSceneY = t.getSceneY(); + orgTranslateX = ((Circle) (t.getSource())).getTranslateX(); + orgTranslateY = ((Circle) (t.getSource())).getTranslateY(); + } + }; + + private EventHandler dragHandler = + new EventHandler() { + + @Override + public void handle(MouseEvent t) { + double offsetX = t.getSceneX() - orgSceneX; + double offsetY = t.getSceneY() - orgSceneY; + double newTranslateX = orgTranslateX + offsetX; + double newTranslateY = orgTranslateY + offsetY; + Circle tmp = (Circle) (t.getSource()); + tmp.setTranslateX(newTranslateX); + tmp.setTranslateY(newTranslateY); + } + }; + + /** + * Creates a {@code StrategyPanel} with draggable circles. + */ + public StrategyPanel() { + super(FXML); + initCircle(player1, 50, 100, 100, Color.RED); + initCircle(player2, 50, 200, 200, Color.LIGHTBLUE); + initCircle(player3, 30, 200, 200, Color.YELLOW); + } + + private void initCircle(Circle circle, double rad, double x, double y, Paint color) { + circle.setRadius(rad); + circle.setFill(color); + circle.setCenterX(x); + circle.setCenterY(y); + circle.setCursor(Cursor.HAND); + circle.setOnMousePressed(pressHandler); + circle.setOnMouseDragged(dragHandler); + } +} diff --git a/src/main/resources/view/MainWindow.fxml b/src/main/resources/view/MainWindow.fxml index 82aa8c3649a..74693dcc749 100644 --- a/src/main/resources/view/MainWindow.fxml +++ b/src/main/resources/view/MainWindow.fxml @@ -74,7 +74,14 @@ - + + + + + + + + diff --git a/src/main/resources/view/StrategyPanel.fxml b/src/main/resources/view/StrategyPanel.fxml new file mode 100644 index 00000000000..bb35cbe8f68 --- /dev/null +++ b/src/main/resources/view/StrategyPanel.fxml @@ -0,0 +1,11 @@ + + + + + + + + + + + From 222b47da835ecbd03a1a46e23c47eb23aa4afa83 Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Tue, 15 Mar 2022 02:16:17 +0800 Subject: [PATCH 090/455] Add credit to external code used in the UI controller of StrategyPanel --- src/main/java/seedu/address/ui/StrategyPanel.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/seedu/address/ui/StrategyPanel.java b/src/main/java/seedu/address/ui/StrategyPanel.java index d08be6f96ff..4cb6f339748 100644 --- a/src/main/java/seedu/address/ui/StrategyPanel.java +++ b/src/main/java/seedu/address/ui/StrategyPanel.java @@ -24,6 +24,7 @@ public class StrategyPanel extends UiPart { @FXML private Circle player3; + // Credit to http://java-buddy.blogspot.com/2013/07/move-node-to-front.html private EventHandler pressHandler = new EventHandler() { @@ -36,6 +37,7 @@ public void handle(MouseEvent t) { } }; + // Credit to http://java-buddy.blogspot.com/2013/07/move-node-to-front.html private EventHandler dragHandler = new EventHandler() { From 43f2d2f4155853489b374ab4922a35c704295237 Mon Sep 17 00:00:00 2001 From: juayhee Date: Tue, 15 Mar 2022 02:42:24 +0800 Subject: [PATCH 091/455] Fix import checkstyle --- .../logic/parser/AddressBookParser.java | 49 ++++++++++--------- 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index 2460dbcf781..7bfded46be1 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -12,6 +12,7 @@ import seedu.address.logic.commands.ClearCommand; import seedu.address.logic.commands.Command; import seedu.address.logic.commands.DeleteCommand; +import seedu.address.logic.commands.DeleteNoteCommand; import seedu.address.logic.commands.DeleteTagCommand; import seedu.address.logic.commands.EditCommand; import seedu.address.logic.commands.ExitCommand; @@ -47,41 +48,41 @@ public Command parseCommand(String userInput) throws ParseException { final String arguments = matcher.group("arguments"); switch (commandWord) { - case AddCommand.COMMAND_WORD: - return new AddCommandParser().parse(arguments); + case AddCommand.COMMAND_WORD: + return new AddCommandParser().parse(arguments); - case EditCommand.COMMAND_WORD: - return new EditCommandParser().parse(arguments); + case EditCommand.COMMAND_WORD: + return new EditCommandParser().parse(arguments); - case DeleteCommand.COMMAND_WORD: - return new DeleteCommandParser().parse(arguments); + case DeleteCommand.COMMAND_WORD: + return new DeleteCommandParser().parse(arguments); - case ClearCommand.COMMAND_WORD: - return new ClearCommand(); + case ClearCommand.COMMAND_WORD: + return new ClearCommand(); - case FindCommand.COMMAND_WORD: - return new FindCommandParser().parse(arguments); + case FindCommand.COMMAND_WORD: + return new FindCommandParser().parse(arguments); - case ListCommand.COMMAND_WORD: - return new ListCommand(); + case ListCommand.COMMAND_WORD: + return new ListCommand(); - case AddNoteCommand.COMMAND_WORD: - return new AddNoteCommandParser().parse(arguments); + case AddNoteCommand.COMMAND_WORD: + return new AddNoteCommandParser().parse(arguments); - case ExitCommand.COMMAND_WORD: - return new ExitCommand(); + case ExitCommand.COMMAND_WORD: + return new ExitCommand(); - case HelpCommand.COMMAND_WORD: - return new HelpCommand(); + case HelpCommand.COMMAND_WORD: + return new HelpCommand(); - case AddTagCommand.COMMAND_WORD: - return new AddTagCommandParser().parse(arguments); + case AddTagCommand.COMMAND_WORD: + return new AddTagCommandParser().parse(arguments); - case DeleteTagCommand.COMMAND_WORD: - return new DeleteTagCommandParser().parse(arguments); + case DeleteTagCommand.COMMAND_WORD: + return new DeleteTagCommandParser().parse(arguments); - default: - throw new ParseException(MESSAGE_UNKNOWN_COMMAND); + default: + throw new ParseException(MESSAGE_UNKNOWN_COMMAND); } } From aaf9638b08f72b1da714283b76fd59d9fb522ed8 Mon Sep 17 00:00:00 2001 From: juayhee Date: Tue, 15 Mar 2022 03:26:20 +0800 Subject: [PATCH 092/455] Fix checkstyle and conflicts with origin/master --- .../logic/parser/AddressBookParser.java | 52 +++++++++---------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index ed3cb5bc1ff..261a801bf53 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -48,44 +48,44 @@ public Command parseCommand(String userInput) throws ParseException { final String arguments = matcher.group("arguments"); switch (commandWord) { - case AddCommand.COMMAND_WORD: - return new AddCommandParser().parse(arguments); + case AddCommand.COMMAND_WORD: + return new AddCommandParser().parse(arguments); - case EditCommand.COMMAND_WORD: - return new EditCommandParser().parse(arguments); + case EditCommand.COMMAND_WORD: + return new EditCommandParser().parse(arguments); - case DeleteCommand.COMMAND_WORD: - return new DeleteCommandParser().parse(arguments); + case DeleteCommand.COMMAND_WORD: + return new DeleteCommandParser().parse(arguments); - case ClearCommand.COMMAND_WORD: - return new ClearCommand(); + case ClearCommand.COMMAND_WORD: + return new ClearCommand(); - case FindCommand.COMMAND_WORD: - return new FindCommandParser().parse(arguments); + case FindCommand.COMMAND_WORD: + return new FindCommandParser().parse(arguments); - case ListCommand.COMMAND_WORD: - return new ListCommand(); + case ListCommand.COMMAND_WORD: + return new ListCommand(); - case AddNoteCommand.COMMAND_WORD: - return new AddNoteCommandParser().parse(arguments); + case AddNoteCommand.COMMAND_WORD: + return new AddNoteCommandParser().parse(arguments); - case DeleteNoteCommand.COMMAND_WORD: - return new DeleteNoteCommandParser().parse(arguments); + case DeleteNoteCommand.COMMAND_WORD: + return new DeleteNoteCommandParser().parse(arguments); - case ExitCommand.COMMAND_WORD: - return new ExitCommand(); + case ExitCommand.COMMAND_WORD: + return new ExitCommand(); - case HelpCommand.COMMAND_WORD: - return new HelpCommand(); + case HelpCommand.COMMAND_WORD: + return new HelpCommand(); - case AddTagCommand.COMMAND_WORD: - return new AddTagCommandParser().parse(arguments); + case AddTagCommand.COMMAND_WORD: + return new AddTagCommandParser().parse(arguments); - case DeleteTagCommand.COMMAND_WORD: - return new DeleteTagCommandParser().parse(arguments); + case DeleteTagCommand.COMMAND_WORD: + return new DeleteTagCommandParser().parse(arguments); - default: - throw new ParseException(MESSAGE_UNKNOWN_COMMAND); + default: + throw new ParseException(MESSAGE_UNKNOWN_COMMAND); } } From 8a175b551321e0443deac729b8bd741140350d8f Mon Sep 17 00:00:00 2001 From: Pragya Date: Tue, 15 Mar 2022 14:37:33 +0800 Subject: [PATCH 093/455] time display bug fix --- src/main/java/seedu/address/model/task/EndTime.java | 5 +++++ src/main/java/seedu/address/model/task/StartTime.java | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/src/main/java/seedu/address/model/task/EndTime.java b/src/main/java/seedu/address/model/task/EndTime.java index bd335af3a0c..9a5caa144a3 100644 --- a/src/main/java/seedu/address/model/task/EndTime.java +++ b/src/main/java/seedu/address/model/task/EndTime.java @@ -19,6 +19,7 @@ public class EndTime { + "2. MM should be a 2-digit numeric in the range of 00 to 59"; public final String value; + public final LocalTime timeValue; /** * Constructs a {@code EndTime}. @@ -29,6 +30,7 @@ public EndTime(String time) { requireNonNull(time); checkArgument(isValidEndTime(time), MESSAGE_CONSTRAINTS); value = time; + timeValue = LocalTime.parse(time); } /** @@ -56,5 +58,8 @@ public boolean equals(Object other) { public int hashCode() { return value.hashCode(); } + + @Override + public String toString() {return String.valueOf(timeValue);} } diff --git a/src/main/java/seedu/address/model/task/StartTime.java b/src/main/java/seedu/address/model/task/StartTime.java index e8017f41f99..1f7004d12d4 100644 --- a/src/main/java/seedu/address/model/task/StartTime.java +++ b/src/main/java/seedu/address/model/task/StartTime.java @@ -19,6 +19,7 @@ public class StartTime { + "2. MM should be a 2-digit numeric in the range of 00 to 59"; public final String value; + public final LocalTime timeValue; /** * Constructs a {@code StartTime}. @@ -29,6 +30,7 @@ public StartTime(String time) { requireNonNull(time); checkArgument(isValidStartTime(time), MESSAGE_CONSTRAINTS); value = time; + timeValue = LocalTime.parse(time); } /** @@ -57,4 +59,7 @@ public boolean equals(Object other) { public int hashCode() { return value.hashCode(); } + + @Override + public String toString() {return String.valueOf(timeValue);} } From a1e3e75cf96da2af9cf5cb55f1d3358a53c44c25 Mon Sep 17 00:00:00 2001 From: Pragya Date: Tue, 15 Mar 2022 14:41:04 +0800 Subject: [PATCH 094/455] no message --- src/main/java/seedu/address/model/task/EndTime.java | 4 +++- src/main/java/seedu/address/model/task/StartTime.java | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/address/model/task/EndTime.java b/src/main/java/seedu/address/model/task/EndTime.java index 9a5caa144a3..90eb6d3c4a7 100644 --- a/src/main/java/seedu/address/model/task/EndTime.java +++ b/src/main/java/seedu/address/model/task/EndTime.java @@ -60,6 +60,8 @@ public int hashCode() { } @Override - public String toString() {return String.valueOf(timeValue);} + public String toString() { + return String.valueOf(timeValue); + } } diff --git a/src/main/java/seedu/address/model/task/StartTime.java b/src/main/java/seedu/address/model/task/StartTime.java index 1f7004d12d4..13b65a5f988 100644 --- a/src/main/java/seedu/address/model/task/StartTime.java +++ b/src/main/java/seedu/address/model/task/StartTime.java @@ -61,5 +61,7 @@ public int hashCode() { } @Override - public String toString() {return String.valueOf(timeValue);} + public String toString() { + return String.valueOf(timeValue); + } } From 7a24eb7c4b75657893b40e6b4dab5c20af2cb9e5 Mon Sep 17 00:00:00 2001 From: Pragya Date: Tue, 15 Mar 2022 14:47:29 +0800 Subject: [PATCH 095/455] resolve conflict --- src/main/java/seedu/address/commons/core/Messages.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/seedu/address/commons/core/Messages.java b/src/main/java/seedu/address/commons/core/Messages.java index d8a108f8949..1589fae9449 100644 --- a/src/main/java/seedu/address/commons/core/Messages.java +++ b/src/main/java/seedu/address/commons/core/Messages.java @@ -7,6 +7,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_NOTE_DISPLAYED_INDEX = "The note index provided is invalid"; public static final String MESSAGE_INVALID_PERSON_DISPLAYED_INDEX = "The person index provided is invalid"; public static final String MESSAGE_INVALID_TASK_DISPLAYED_INDEX = "The task index provided is invalid"; public static final String MESSAGE_PERSONS_LISTED_OVERVIEW = "%1$d persons listed!"; From 88fa43357ce59ff24f880854c29aa0de7b351bef Mon Sep 17 00:00:00 2001 From: Pragya Date: Tue, 15 Mar 2022 14:53:35 +0800 Subject: [PATCH 096/455] no message --- src/main/java/seedu/address/logic/parser/AddressBookParser.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index 90b5b81fc85..93633d9eaa9 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -16,7 +16,6 @@ import seedu.address.logic.commands.DeleteNoteCommand; import seedu.address.logic.commands.DeleteTagCommand; import seedu.address.logic.commands.DeleteTaskCommand; - import seedu.address.logic.commands.EditCommand; import seedu.address.logic.commands.ExitCommand; import seedu.address.logic.commands.FindCommand; From e2fff848370955451996991990a59cae07ee8d43 Mon Sep 17 00:00:00 2001 From: Pragya Date: Tue, 15 Mar 2022 15:02:38 +0800 Subject: [PATCH 097/455] no message --- src/main/java/seedu/address/model/task/EndTime.java | 4 +--- src/main/java/seedu/address/model/task/StartTime.java | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/src/main/java/seedu/address/model/task/EndTime.java b/src/main/java/seedu/address/model/task/EndTime.java index 90eb6d3c4a7..7b58b738392 100644 --- a/src/main/java/seedu/address/model/task/EndTime.java +++ b/src/main/java/seedu/address/model/task/EndTime.java @@ -19,7 +19,6 @@ public class EndTime { + "2. MM should be a 2-digit numeric in the range of 00 to 59"; public final String value; - public final LocalTime timeValue; /** * Constructs a {@code EndTime}. @@ -30,7 +29,6 @@ public EndTime(String time) { requireNonNull(time); checkArgument(isValidEndTime(time), MESSAGE_CONSTRAINTS); value = time; - timeValue = LocalTime.parse(time); } /** @@ -61,7 +59,7 @@ public int hashCode() { @Override public String toString() { - return String.valueOf(timeValue); + return value; } } diff --git a/src/main/java/seedu/address/model/task/StartTime.java b/src/main/java/seedu/address/model/task/StartTime.java index 13b65a5f988..b691ab161a8 100644 --- a/src/main/java/seedu/address/model/task/StartTime.java +++ b/src/main/java/seedu/address/model/task/StartTime.java @@ -19,7 +19,6 @@ public class StartTime { + "2. MM should be a 2-digit numeric in the range of 00 to 59"; public final String value; - public final LocalTime timeValue; /** * Constructs a {@code StartTime}. @@ -30,7 +29,6 @@ public StartTime(String time) { requireNonNull(time); checkArgument(isValidStartTime(time), MESSAGE_CONSTRAINTS); value = time; - timeValue = LocalTime.parse(time); } /** @@ -62,6 +60,6 @@ public int hashCode() { @Override public String toString() { - return String.valueOf(timeValue); + return value; } } From 7153064977c4b5356502d17106e10d0ff473fb5a Mon Sep 17 00:00:00 2001 From: juayhee Date: Thu, 17 Mar 2022 17:04:15 +0800 Subject: [PATCH 098/455] Add test class for AddTagCommand --- .../logic/commands/AddTagCommandTest.java | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 src/test/java/seedu/address/logic/commands/AddTagCommandTest.java diff --git a/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java b/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java new file mode 100644 index 00000000000..ced20903fec --- /dev/null +++ b/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java @@ -0,0 +1,61 @@ +package seedu.address.logic.commands; + +import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; +import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; +import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; + +import java.util.HashSet; +import java.util.Set; + +import org.junit.jupiter.api.Test; + +import seedu.address.model.AddressBook; +import seedu.address.model.Model; +import seedu.address.model.ModelManager; +import seedu.address.model.TaskBook; +import seedu.address.model.UserPrefs; +import seedu.address.model.person.Person; +import seedu.address.model.tag.Tag; +import seedu.address.testutil.PersonBuilder; + +class AddTagCommandTest { + + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + + // Test tags + // Because PersonBuilder#withTags takes String ... instead of Set + private static final String EMPTY_TAG_SET = ""; + + private static final String TAG_1 = "TAG1"; + + + @Test + void execute_addTagCommandUnfilteredList_success() { + Person firstPerson = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); + + // Adding 1 more tag to the editedPerson + Set firstPersonTags = new HashSet<>(firstPerson.getTags()); // Copy of Set of ALICE (first person) + firstPersonTags.add(new Tag(TAG_1)); + + // Convert Set to array for PersonBuilder#withTags + String[] firstPersonTagsStringArray = firstPersonTags + .stream() + .map(x -> x.tagName) + .toArray(String[]::new); + + Person editedPerson = new PersonBuilder(firstPerson).withTags(firstPersonTagsStringArray).build(); + + AddTagCommand addTagCommand = new AddTagCommand(INDEX_FIRST_PERSON, TAG_1); + + String expectedMessage = String.format(AddTagCommand.MESSAGE_ADD_TAG_SUCCESS, TAG_1); + + Model expectedModel = new ModelManager( + new AddressBook(model.getAddressBook()), + new TaskBook(model.getTaskBook()), + new UserPrefs()); + expectedModel.setPerson(firstPerson, editedPerson); + + assertCommandSuccess(addTagCommand, model, expectedMessage, expectedModel); + } +} \ No newline at end of file From ab0b35cfbaa7152cee0f8458782d534cf32074f0 Mon Sep 17 00:00:00 2001 From: juayhee Date: Thu, 17 Mar 2022 17:12:17 +0800 Subject: [PATCH 099/455] Fix checkstyle --- .../seedu/address/logic/commands/AddTagCommandTest.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java b/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java index ced20903fec..f198aade8e4 100644 --- a/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java @@ -20,15 +20,12 @@ import seedu.address.testutil.PersonBuilder; class AddTagCommandTest { - - private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); - // Test tags // Because PersonBuilder#withTags takes String ... instead of Set - private static final String EMPTY_TAG_SET = ""; - private static final String TAG_1 = "TAG1"; + // Test model + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); @Test void execute_addTagCommandUnfilteredList_success() { @@ -58,4 +55,4 @@ void execute_addTagCommandUnfilteredList_success() { assertCommandSuccess(addTagCommand, model, expectedMessage, expectedModel); } -} \ No newline at end of file +} From 0530acac1054b4d462ddb989a496199d704be056 Mon Sep 17 00:00:00 2001 From: juayhee Date: Thu, 17 Mar 2022 17:35:12 +0800 Subject: [PATCH 100/455] AddTagCommand: Add test for out of bounds index --- .../address/logic/commands/AddTagCommand.java | 1 + .../logic/commands/AddTagCommandTest.java | 18 +++++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/logic/commands/AddTagCommand.java b/src/main/java/seedu/address/logic/commands/AddTagCommand.java index f29c685addd..7a2a6fc20da 100644 --- a/src/main/java/seedu/address/logic/commands/AddTagCommand.java +++ b/src/main/java/seedu/address/logic/commands/AddTagCommand.java @@ -62,6 +62,7 @@ public CommandResult execute(Model model) throws CommandException { Person personToEdit = lastShownList.get(index.getZeroBased()); Person editedPerson = addTagToPerson(personToEdit); + // Exception when a duplicate tag is added Tag testTag = new Tag(this.tagName); if (personToEdit.getTags().contains(testTag)) { diff --git a/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java b/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java index f198aade8e4..b1163a90c9a 100644 --- a/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java @@ -1,7 +1,9 @@ package seedu.address.logic.commands; -import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static seedu.address.logic.commands.CommandTestUtil.*; import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; +import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_PERSON; import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; @@ -10,6 +12,8 @@ import org.junit.jupiter.api.Test; +import seedu.address.commons.core.Messages; +import seedu.address.commons.core.index.Index; import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ModelManager; @@ -55,4 +59,16 @@ void execute_addTagCommandUnfilteredList_success() { assertCommandSuccess(addTagCommand, model, expectedMessage, expectedModel); } + + @Test + public void execute_invalidPersonIndexFilteredList_failure() { + showPersonAtIndex(model, INDEX_FIRST_PERSON); + Index outOfBoundIndex = INDEX_SECOND_PERSON; + // ensures that outOfBoundIndex is still in bounds of address book list + assertTrue(outOfBoundIndex.getZeroBased() < model.getAddressBook().getPersonList().size()); + + AddTagCommand addTagCommand = new AddTagCommand(outOfBoundIndex, TAG_1); + + assertCommandFailure(addTagCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + } } From 3fa34c8d2d2c62e8d2e7efc9b66baf01c946c294 Mon Sep 17 00:00:00 2001 From: juayhee Date: Thu, 17 Mar 2022 17:36:49 +0800 Subject: [PATCH 101/455] Fix import checkstyle --- .../java/seedu/address/logic/commands/AddTagCommandTest.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java b/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java index b1163a90c9a..5b66958fd36 100644 --- a/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java @@ -1,7 +1,9 @@ package seedu.address.logic.commands; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.logic.commands.CommandTestUtil.*; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; +import static seedu.address.logic.commands.CommandTestUtil.showPersonAtIndex; import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_PERSON; import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; From 7dbd52cb6fb38e199d13302b054cd52d5a989a62 Mon Sep 17 00:00:00 2001 From: juayhee Date: Thu, 17 Mar 2022 17:40:58 +0800 Subject: [PATCH 102/455] AddTagCommandTest.java: Add simple equals test --- .../address/logic/commands/AddTagCommand.java | 14 +++----------- .../address/logic/commands/AddTagCommandTest.java | 11 +++++++++++ 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/AddTagCommand.java b/src/main/java/seedu/address/logic/commands/AddTagCommand.java index 7a2a6fc20da..6a9d3e4d3b8 100644 --- a/src/main/java/seedu/address/logic/commands/AddTagCommand.java +++ b/src/main/java/seedu/address/logic/commands/AddTagCommand.java @@ -38,7 +38,8 @@ public class AddTagCommand extends Command { /** * Public constructor for AddTagCommand - * @param index Index of person to add tag to + * + * @param index Index of person to add tag to * @param tagName Name of tag */ public AddTagCommand(Index index, String tagName) { @@ -100,15 +101,6 @@ private Person addTagToPerson(Person personToEdit) { @Override public boolean equals(Object other) { // short circuit if same object - if (other == this) { - return true; - } - - // instanceof handles nulls - if (!(other instanceof EditCommand)) { - return false; - } - - return false; + return (other == this); } } diff --git a/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java b/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java index 5b66958fd36..bf50245d969 100644 --- a/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java @@ -1,6 +1,8 @@ package seedu.address.logic.commands; +import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; +import static seedu.address.logic.commands.CommandTestUtil.VALID_NOTE_AMY; import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; import static seedu.address.logic.commands.CommandTestUtil.showPersonAtIndex; @@ -73,4 +75,13 @@ public void execute_invalidPersonIndexFilteredList_failure() { assertCommandFailure(addTagCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); } + + @Test + public void equals() { + final AddTagCommand command = new AddTagCommand(INDEX_FIRST_PERSON, TAG_1); + + // If they are the same objects, they are equal + assertTrue(command.equals(command)); + + } } From 60a67d87c4d4318d2c96151d8142afde6137d09e Mon Sep 17 00:00:00 2001 From: juayhee Date: Thu, 17 Mar 2022 17:41:51 +0800 Subject: [PATCH 103/455] AddTagCommandTest.java: Delete unused imports --- .../java/seedu/address/logic/commands/AddTagCommandTest.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java b/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java index bf50245d969..f4a663cc812 100644 --- a/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java @@ -1,8 +1,6 @@ package seedu.address.logic.commands; -import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.logic.commands.CommandTestUtil.VALID_NOTE_AMY; import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; import static seedu.address.logic.commands.CommandTestUtil.showPersonAtIndex; From db25939901d805717f2c7eb8912c7f7d7c90d0db Mon Sep 17 00:00:00 2001 From: juayhee Date: Thu, 17 Mar 2022 18:00:53 +0800 Subject: [PATCH 104/455] Add tests for AddTagCommandParser --- .../address/logic/commands/AddTagCommand.java | 13 +++++--- .../logic/commands/AddTagCommandTest.java | 2 +- .../logic/parser/AddTagCommandParserTest.java | 33 +++++++++++++++++++ 3 files changed, 43 insertions(+), 5 deletions(-) create mode 100644 src/test/java/seedu/address/logic/parser/AddTagCommandParserTest.java diff --git a/src/main/java/seedu/address/logic/commands/AddTagCommand.java b/src/main/java/seedu/address/logic/commands/AddTagCommand.java index 6a9d3e4d3b8..c820b7e375b 100644 --- a/src/main/java/seedu/address/logic/commands/AddTagCommand.java +++ b/src/main/java/seedu/address/logic/commands/AddTagCommand.java @@ -33,8 +33,8 @@ public class AddTagCommand extends Command { public static final String MESSAGE_ADD_TAG_SUCCESS = "Added tag: %1$s"; public static final String MESSAGE_DUPLICATE_TAG = "This person already has this tag!"; - private final Index index; - private final String tagName; + public final Index index; + public final String tagName; /** * Public constructor for AddTagCommand @@ -100,7 +100,12 @@ private Person addTagToPerson(Person personToEdit) { @Override public boolean equals(Object other) { - // short circuit if same object - return (other == this); + + return other == this // short circuit if same object + || (other instanceof AddTagCommand // instanceof handles nulls + && (index.equals(((AddTagCommand) other).index) + && tagName.equals((((AddTagCommand) other).tagName)))); } + } + diff --git a/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java b/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java index f4a663cc812..89084e5e926 100644 --- a/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java @@ -28,7 +28,7 @@ class AddTagCommandTest { // Test tags // Because PersonBuilder#withTags takes String ... instead of Set - private static final String TAG_1 = "TAG1"; + private final String TAG_1 = "TAG1"; // Test model private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); diff --git a/src/test/java/seedu/address/logic/parser/AddTagCommandParserTest.java b/src/test/java/seedu/address/logic/parser/AddTagCommandParserTest.java new file mode 100644 index 00000000000..f3d16fa751d --- /dev/null +++ b/src/test/java/seedu/address/logic/parser/AddTagCommandParserTest.java @@ -0,0 +1,33 @@ +package seedu.address.logic.parser; + +import static org.junit.jupiter.api.Assertions.*; +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; +import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; +import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; + +import org.junit.jupiter.api.Test; + +import seedu.address.logic.commands.AddTagCommand; + +class AddTagCommandParserTest { + + private final String TAG_1 = "TAG1"; + private AddTagCommandParser parser = new AddTagCommandParser(); + + + @Test + void parse_validArgs_returnsAddTagCommand() { + AddTagCommand expectedAddTagCommand = new AddTagCommand(INDEX_FIRST_PERSON, TAG_1); + assertParseSuccess(parser, "1 t/TAG1", expectedAddTagCommand); + // Messy user input with multiple whitespaces + assertParseSuccess(parser, " 1 t/ TAG1", expectedAddTagCommand); + } + + @Test + void parse_invalidArgs_throwsParseException() { + assertParseFailure(parser, + "asdkfasdfl", + String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddTagCommand.MESSAGE_USAGE)); + } +} \ No newline at end of file From e60f6e2d1e04f07b82f3947b92d12b60e9eecef6 Mon Sep 17 00:00:00 2001 From: juayhee Date: Thu, 17 Mar 2022 18:07:35 +0800 Subject: [PATCH 105/455] Add DeleteTagCommandTest.java --- .../logic/commands/DeleteTagCommand.java | 14 +-- .../logic/commands/DeleteTagCommandTest.java | 85 +++++++++++++++++++ 2 files changed, 89 insertions(+), 10 deletions(-) create mode 100644 src/test/java/seedu/address/logic/commands/DeleteTagCommandTest.java diff --git a/src/main/java/seedu/address/logic/commands/DeleteTagCommand.java b/src/main/java/seedu/address/logic/commands/DeleteTagCommand.java index 870b0d35d1a..3730d5236fa 100644 --- a/src/main/java/seedu/address/logic/commands/DeleteTagCommand.java +++ b/src/main/java/seedu/address/logic/commands/DeleteTagCommand.java @@ -99,16 +99,10 @@ private Person deleteTagFromPerson(Person personToEdit) { @Override public boolean equals(Object other) { - // short circuit if same object - if (other == this) { - return true; - } - - // instanceof handles nulls - if (!(other instanceof EditCommand)) { - return false; - } - return false; + return other == this // short circuit if same object + || (other instanceof DeleteTagCommand // instanceof handles nulls + && (index.equals(((DeleteTagCommand) other).index) + && tagName.equals((((DeleteTagCommand) other).tagName)))); } } diff --git a/src/test/java/seedu/address/logic/commands/DeleteTagCommandTest.java b/src/test/java/seedu/address/logic/commands/DeleteTagCommandTest.java new file mode 100644 index 00000000000..5938e41e22d --- /dev/null +++ b/src/test/java/seedu/address/logic/commands/DeleteTagCommandTest.java @@ -0,0 +1,85 @@ +package seedu.address.logic.commands; + +import static org.junit.jupiter.api.Assertions.assertTrue; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; +import static seedu.address.logic.commands.CommandTestUtil.showPersonAtIndex; +import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; +import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_PERSON; +import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; + +import java.util.HashSet; +import java.util.Set; + +import org.junit.jupiter.api.Test; + +import seedu.address.commons.core.Messages; +import seedu.address.commons.core.index.Index; +import seedu.address.model.AddressBook; +import seedu.address.model.Model; +import seedu.address.model.ModelManager; +import seedu.address.model.TaskBook; +import seedu.address.model.UserPrefs; +import seedu.address.model.person.Person; +import seedu.address.model.tag.Tag; +import seedu.address.testutil.PersonBuilder; + +class DeleteTagCommandTest { + // Test tags + // Because PersonBuilder#withTags takes String ... instead of Set + private final String TAG_1 = "friends"; // ALICE has a tag called "friends" + + // Test model + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + + @Test + void execute_deleteTagCommandUnfilteredList_success() { + Person firstPerson = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); + + // Removing 1 tag to the editedPerson + Set firstPersonTags = new HashSet<>(firstPerson.getTags()); // Copy of Set of ALICE (first person) + firstPersonTags.remove(new Tag(TAG_1)); + + // Convert Set to array for PersonBuilder#withTags + String[] firstPersonTagsStringArray = firstPersonTags + .stream() + .map(x -> x.tagName) + .toArray(String[]::new); + + Person editedPerson = new PersonBuilder(firstPerson).withTags(firstPersonTagsStringArray).build(); + + DeleteTagCommand deleteTagCommand = new DeleteTagCommand(INDEX_FIRST_PERSON, TAG_1); + + String expectedMessage = String.format(DeleteTagCommand.MESSAGE_DELETE_TAG_SUCCESS, TAG_1); + + Model expectedModel = new ModelManager( + new AddressBook(model.getAddressBook()), + new TaskBook(model.getTaskBook()), + new UserPrefs()); + expectedModel.setPerson(firstPerson, editedPerson); + + assertCommandSuccess(deleteTagCommand, model, expectedMessage, expectedModel); + } + + @Test + public void execute_invalidPersonIndexFilteredList_failure() { + showPersonAtIndex(model, INDEX_FIRST_PERSON); + Index outOfBoundIndex = INDEX_SECOND_PERSON; + // ensures that outOfBoundIndex is still in bounds of address book list + assertTrue(outOfBoundIndex.getZeroBased() < model.getAddressBook().getPersonList().size()); + + AddTagCommand addTagCommand = new AddTagCommand(outOfBoundIndex, TAG_1); + + assertCommandFailure(addTagCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + } + + @Test + public void equals() { + final DeleteTagCommand command = new DeleteTagCommand(INDEX_FIRST_PERSON, TAG_1); + + // If they are the same objects, they are equal + assertTrue(command.equals(command)); + + } +} From d47baa6b1b05f78ddf4c4988c69583cc3236aab1 Mon Sep 17 00:00:00 2001 From: juayhee Date: Thu, 17 Mar 2022 18:11:02 +0800 Subject: [PATCH 106/455] Add DeleteTagCommandParserTest.java --- .../parser/DeleteTagCommandParserTest.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/test/java/seedu/address/logic/parser/DeleteTagCommandParserTest.java diff --git a/src/test/java/seedu/address/logic/parser/DeleteTagCommandParserTest.java b/src/test/java/seedu/address/logic/parser/DeleteTagCommandParserTest.java new file mode 100644 index 00000000000..85da271da9f --- /dev/null +++ b/src/test/java/seedu/address/logic/parser/DeleteTagCommandParserTest.java @@ -0,0 +1,32 @@ +package seedu.address.logic.parser; + +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; +import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; +import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; + +import org.junit.jupiter.api.Test; + +import seedu.address.logic.commands.DeleteTagCommand; + +class DeleteTagCommandParserTest { + + private final String TAG_1 = "friends"; + private DeleteTagCommandParser parser = new DeleteTagCommandParser(); + + + @Test + void parse_validArgs_returnsDeleteTagCommand() { + DeleteTagCommand expectedDeleteTagCommand = new DeleteTagCommand(INDEX_FIRST_PERSON, TAG_1); + assertParseSuccess(parser, "1 t/friends", expectedDeleteTagCommand); + // Messy user input with multiple whitespaces + assertParseSuccess(parser, " 1 t/ friends", expectedDeleteTagCommand); + } + + @Test + void parse_invalidArgs_throwsParseException() { + assertParseFailure(parser, + "asdkfasdfl", + String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteTagCommand.MESSAGE_USAGE)); + } +} \ No newline at end of file From 039f333ba2bb84409b8654f5aed1f27bfa1b899d Mon Sep 17 00:00:00 2001 From: juayhee Date: Thu, 17 Mar 2022 18:49:19 +0800 Subject: [PATCH 107/455] Fix checkstyle --- .../address/logic/commands/AddTagCommandTest.java | 12 ++++++------ .../address/logic/commands/DeleteTagCommandTest.java | 2 +- .../logic/parser/AddTagCommandParserTest.java | 7 +++---- .../logic/parser/DeleteTagCommandParserTest.java | 6 +++--- 4 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java b/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java index 89084e5e926..2b47ea67110 100644 --- a/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java @@ -28,7 +28,7 @@ class AddTagCommandTest { // Test tags // Because PersonBuilder#withTags takes String ... instead of Set - private final String TAG_1 = "TAG1"; + private static final String TAG1 = "TAG1"; // Test model private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); @@ -39,7 +39,7 @@ void execute_addTagCommandUnfilteredList_success() { // Adding 1 more tag to the editedPerson Set firstPersonTags = new HashSet<>(firstPerson.getTags()); // Copy of Set of ALICE (first person) - firstPersonTags.add(new Tag(TAG_1)); + firstPersonTags.add(new Tag(TAG1)); // Convert Set to array for PersonBuilder#withTags String[] firstPersonTagsStringArray = firstPersonTags @@ -49,9 +49,9 @@ void execute_addTagCommandUnfilteredList_success() { Person editedPerson = new PersonBuilder(firstPerson).withTags(firstPersonTagsStringArray).build(); - AddTagCommand addTagCommand = new AddTagCommand(INDEX_FIRST_PERSON, TAG_1); + AddTagCommand addTagCommand = new AddTagCommand(INDEX_FIRST_PERSON, TAG1); - String expectedMessage = String.format(AddTagCommand.MESSAGE_ADD_TAG_SUCCESS, TAG_1); + String expectedMessage = String.format(AddTagCommand.MESSAGE_ADD_TAG_SUCCESS, TAG1); Model expectedModel = new ModelManager( new AddressBook(model.getAddressBook()), @@ -69,14 +69,14 @@ public void execute_invalidPersonIndexFilteredList_failure() { // ensures that outOfBoundIndex is still in bounds of address book list assertTrue(outOfBoundIndex.getZeroBased() < model.getAddressBook().getPersonList().size()); - AddTagCommand addTagCommand = new AddTagCommand(outOfBoundIndex, TAG_1); + AddTagCommand addTagCommand = new AddTagCommand(outOfBoundIndex, TAG1); assertCommandFailure(addTagCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); } @Test public void equals() { - final AddTagCommand command = new AddTagCommand(INDEX_FIRST_PERSON, TAG_1); + final AddTagCommand command = new AddTagCommand(INDEX_FIRST_PERSON, TAG1); // If they are the same objects, they are equal assertTrue(command.equals(command)); diff --git a/src/test/java/seedu/address/logic/commands/DeleteTagCommandTest.java b/src/test/java/seedu/address/logic/commands/DeleteTagCommandTest.java index 5938e41e22d..a9d1f4c0b0e 100644 --- a/src/test/java/seedu/address/logic/commands/DeleteTagCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/DeleteTagCommandTest.java @@ -28,7 +28,7 @@ class DeleteTagCommandTest { // Test tags // Because PersonBuilder#withTags takes String ... instead of Set - private final String TAG_1 = "friends"; // ALICE has a tag called "friends" + private static final String TAG_1 = "friends"; // ALICE has a tag called "friends" // Test model private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); diff --git a/src/test/java/seedu/address/logic/parser/AddTagCommandParserTest.java b/src/test/java/seedu/address/logic/parser/AddTagCommandParserTest.java index f3d16fa751d..b71b820c2b3 100644 --- a/src/test/java/seedu/address/logic/parser/AddTagCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/AddTagCommandParserTest.java @@ -1,6 +1,5 @@ package seedu.address.logic.parser; -import static org.junit.jupiter.api.Assertions.*; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; @@ -12,13 +11,13 @@ class AddTagCommandParserTest { - private final String TAG_1 = "TAG1"; + private static final String TAG1 = "TAG1"; private AddTagCommandParser parser = new AddTagCommandParser(); @Test void parse_validArgs_returnsAddTagCommand() { - AddTagCommand expectedAddTagCommand = new AddTagCommand(INDEX_FIRST_PERSON, TAG_1); + AddTagCommand expectedAddTagCommand = new AddTagCommand(INDEX_FIRST_PERSON, TAG1); assertParseSuccess(parser, "1 t/TAG1", expectedAddTagCommand); // Messy user input with multiple whitespaces assertParseSuccess(parser, " 1 t/ TAG1", expectedAddTagCommand); @@ -30,4 +29,4 @@ void parse_invalidArgs_throwsParseException() { "asdkfasdfl", String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddTagCommand.MESSAGE_USAGE)); } -} \ No newline at end of file +} diff --git a/src/test/java/seedu/address/logic/parser/DeleteTagCommandParserTest.java b/src/test/java/seedu/address/logic/parser/DeleteTagCommandParserTest.java index 85da271da9f..c5c905b551e 100644 --- a/src/test/java/seedu/address/logic/parser/DeleteTagCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/DeleteTagCommandParserTest.java @@ -11,13 +11,13 @@ class DeleteTagCommandParserTest { - private final String TAG_1 = "friends"; + private static final String TAG1 = "friends"; private DeleteTagCommandParser parser = new DeleteTagCommandParser(); @Test void parse_validArgs_returnsDeleteTagCommand() { - DeleteTagCommand expectedDeleteTagCommand = new DeleteTagCommand(INDEX_FIRST_PERSON, TAG_1); + DeleteTagCommand expectedDeleteTagCommand = new DeleteTagCommand(INDEX_FIRST_PERSON, TAG1); assertParseSuccess(parser, "1 t/friends", expectedDeleteTagCommand); // Messy user input with multiple whitespaces assertParseSuccess(parser, " 1 t/ friends", expectedDeleteTagCommand); @@ -29,4 +29,4 @@ void parse_invalidArgs_throwsParseException() { "asdkfasdfl", String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteTagCommand.MESSAGE_USAGE)); } -} \ No newline at end of file +} From 78e04172ced861b4fa34fe1945f4c1becbda7301 Mon Sep 17 00:00:00 2001 From: Pragya Date: Thu, 17 Mar 2022 21:01:49 +0800 Subject: [PATCH 108/455] Add tests for add-task and delete-task commands --- .../logic/commands/DeleteTaskCommand.java | 2 +- .../logic/commands/AddTaskCommandTest.java | 254 ++++++++++++++++++ .../logic/commands/CommandTestUtil.java | 32 ++- .../logic/commands/DeleteTaskCommandTest.java | 72 +++++ .../parser/AddTaskCommandParserTest.java | 100 +++++++ .../parser/DeleteTaskCommandParserTest.java | 26 ++ .../address/testutil/TypicalIndexes.java | 2 + .../seedu/address/testutil/TypicalTasks.java | 18 ++ 8 files changed, 503 insertions(+), 3 deletions(-) create mode 100644 src/test/java/seedu/address/logic/commands/AddTaskCommandTest.java create mode 100644 src/test/java/seedu/address/logic/commands/DeleteTaskCommandTest.java create mode 100644 src/test/java/seedu/address/logic/parser/AddTaskCommandParserTest.java create mode 100644 src/test/java/seedu/address/logic/parser/DeleteTaskCommandParserTest.java diff --git a/src/main/java/seedu/address/logic/commands/DeleteTaskCommand.java b/src/main/java/seedu/address/logic/commands/DeleteTaskCommand.java index f156838d051..75420cd5480 100644 --- a/src/main/java/seedu/address/logic/commands/DeleteTaskCommand.java +++ b/src/main/java/seedu/address/logic/commands/DeleteTaskCommand.java @@ -47,7 +47,7 @@ public CommandResult execute(Model model) throws CommandException { @Override public boolean equals(Object other) { return other == this // short circuit if same object - || (other instanceof DeleteCommand // instanceof handles nulls + || (other instanceof DeleteTaskCommand // instanceof handles nulls && targetIndex.equals(((DeleteTaskCommand) other).targetIndex)); // state check } } diff --git a/src/test/java/seedu/address/logic/commands/AddTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/AddTaskCommandTest.java new file mode 100644 index 00000000000..8d8e0ce8d7e --- /dev/null +++ b/src/test/java/seedu/address/logic/commands/AddTaskCommandTest.java @@ -0,0 +1,254 @@ +package seedu.address.logic.commands; + +import static java.util.Objects.requireNonNull; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static seedu.address.testutil.Assert.assertThrows; + +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.function.Predicate; + +import org.junit.jupiter.api.Test; + +import javafx.collections.ObservableList; +import seedu.address.commons.core.GuiSettings; +import seedu.address.logic.commands.exceptions.CommandException; +import seedu.address.model.AddressBook; +import seedu.address.model.Model; +import seedu.address.model.ReadOnlyAddressBook; +import seedu.address.model.ReadOnlyTaskBook; +import seedu.address.model.ReadOnlyUserPrefs; +import seedu.address.model.TaskBook; +import seedu.address.model.person.Person; +import seedu.address.model.task.Task; +import seedu.address.testutil.TaskBuilder; + +public class AddTaskCommandTest { + + @Test + public void constructor_nullTask_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> new AddTaskCommand(null)); + } + + @Test + public void execute_taskAcceptedByModel_addSuccessful() throws Exception { + ModelStubAcceptingTaskAdded modelStub = new ModelStubAcceptingTaskAdded(); + Task validTask = new TaskBuilder().build(); + + CommandResult commandResult = new AddTaskCommand(validTask).execute(modelStub); + + assertEquals(String.format(AddTaskCommand.MESSAGE_SUCCESS, validTask), commandResult.getFeedbackToUser()); + assertEquals(Arrays.asList(validTask), modelStub.tasksAdded); + } + + @Test + public void execute_duplicateTask_throwsCommandException() { + Task validTask = new TaskBuilder().build(); + AddTaskCommand addTaskCommand = new AddTaskCommand(validTask); + ModelStub modelStub = new ModelStubWithTask(validTask); + + assertThrows(CommandException.class, + AddTaskCommand.MESSAGE_DUPLICATE_TASK, () -> addTaskCommand.execute(modelStub)); + } + + @Test + public void equals() { + Task shareholderMeet = new TaskBuilder().withName("Shareholder Meet").build(); + Task welcomeTea = new TaskBuilder().withName("Welcome Tea").build(); + AddTaskCommand addShareholderMeetCommand = new AddTaskCommand(shareholderMeet); + AddTaskCommand addWelcomeTeaCommand = new AddTaskCommand(welcomeTea); + + // same object -> returns true + assertTrue(addShareholderMeetCommand.equals(addShareholderMeetCommand)); + + // same values -> returns true + AddTaskCommand addShareholderMeetCommandCopy = new AddTaskCommand(shareholderMeet); + assertTrue(addShareholderMeetCommand.equals(addShareholderMeetCommandCopy)); + + // different types -> returns false + assertFalse(addShareholderMeetCommand.equals(1)); + + // null -> returns false + assertFalse(addShareholderMeetCommand.equals(null)); + + // different person -> returns false + assertFalse(addShareholderMeetCommand.equals(addWelcomeTeaCommand)); + } + + /** + * Default model stub that has all the methods failing. + */ + private class ModelStub implements Model { + @Override + public void setUserPrefs(ReadOnlyUserPrefs userPrefs) { + throw new AssertionError("This method should not be called."); + } + + @Override + public ReadOnlyUserPrefs getUserPrefs() { + throw new AssertionError("This method should not be called."); + } + + @Override + public GuiSettings getGuiSettings() { + throw new AssertionError("This method should not be called."); + } + + @Override + public void setGuiSettings(GuiSettings guiSettings) { + throw new AssertionError("This method should not be called."); + } + + @Override + public Path getAddressBookFilePath() { + throw new AssertionError("This method should not be called."); + } + + @Override + public void setAddressBookFilePath(Path addressBookFilePath) { + throw new AssertionError("This method should not be called."); + } + + @Override + public Path getTaskBookFilePath() { + throw new AssertionError("This method should not be called."); + } + + @Override + public void setTaskBookFilePath(Path taskBookFilePath) { + throw new AssertionError("This method should not be called."); + } + + @Override + public void addPerson(Person person) { + throw new AssertionError("This method should not be called."); + } + + @Override + public void setAddressBook(ReadOnlyAddressBook newData) { + throw new AssertionError("This method should not be called."); + } + + @Override + public ReadOnlyAddressBook getAddressBook() { + throw new AssertionError("This method should not be called."); + } + + @Override + public boolean hasPerson(Person person) { + throw new AssertionError("This method should not be called."); + } + + @Override + public void deletePerson(Person target) { + throw new AssertionError("This method should not be called."); + } + + @Override + public void setPerson(Person target, Person editedPerson) { + throw new AssertionError("This method should not be called."); + } + + @Override + public ObservableList getFilteredPersonList() { + throw new AssertionError("This method should not be called."); + } + + @Override + public void updateFilteredPersonList(Predicate predicate) { + throw new AssertionError("This method should not be called."); + } + @Override + public void setTaskBook(ReadOnlyTaskBook taskBook) { + throw new AssertionError("This method should not be called."); + } + + @Override + public ReadOnlyTaskBook getTaskBook() { + throw new AssertionError("This method should not be called."); + } + + @Override + public boolean hasTask(Task task) { + throw new AssertionError("This method should not be called."); + } + + @Override + public void deleteTask(Task target) { + throw new AssertionError("This method should not be called."); + } + + @Override + public void addTask(Task task) { + throw new AssertionError("This method should not be called."); + } + + @Override + public void setTask(Task target, Task editedTask) { + throw new AssertionError("This method should not be called."); + } + + @Override + public ObservableList getFilteredTaskList() { + throw new AssertionError("This method should not be called."); + } + + @Override + public void updateFilteredTaskList(Predicate predicate) { + throw new AssertionError("This method should not be called."); + } + + } + + /** + * A Model stub that contains a single task. + */ + private class ModelStubWithTask extends ModelStub { + private final Task task; + + ModelStubWithTask(Task task) { + requireNonNull(task); + this.task = task; + } + + @Override + public boolean hasTask(Task task) { + requireNonNull(task); + return this.task.isSameTask(task); + } + } + + /** + * A Model stub that always accept the task being added. + */ + private class ModelStubAcceptingTaskAdded extends ModelStub { + final ArrayList tasksAdded = new ArrayList<>(); + + @Override + public boolean hasTask(Task task) { + requireNonNull(task); + return tasksAdded.stream().anyMatch(task::isSameTask); + } + + @Override + public void addTask(Task task) { + requireNonNull(task); + tasksAdded.add(task); + } + + @Override + public ReadOnlyAddressBook getAddressBook() { + return new AddressBook(); + } + + @Override + public ReadOnlyTaskBook getTaskBook() { + return new TaskBook(); + } + + } + +} diff --git a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java b/src/test/java/seedu/address/logic/commands/CommandTestUtil.java index 323222ce8d2..8e69704ff08 100644 --- a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java +++ b/src/test/java/seedu/address/logic/commands/CommandTestUtil.java @@ -3,9 +3,12 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; import static seedu.address.logic.parser.CliSyntax.PREFIX_ADDRESS; +import static seedu.address.logic.parser.CliSyntax.PREFIX_DATE; import static seedu.address.logic.parser.CliSyntax.PREFIX_EMAIL; +import static seedu.address.logic.parser.CliSyntax.PREFIX_ENDTIME; import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; import static seedu.address.logic.parser.CliSyntax.PREFIX_PHONE; +import static seedu.address.logic.parser.CliSyntax.PREFIX_STARTTIME; import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; import static seedu.address.testutil.Assert.assertThrows; @@ -39,6 +42,19 @@ public class CommandTestUtil { public static final String VALID_NOTE_AMY = "Amy"; public static final String VALID_NOTE_BOB = "Bob"; + public static final String VALID_NAME_TASK1 = "Task 1"; + public static final String VALID_NAME_TASK2 = "Task 2"; + public static final String VALID_DATE_TASK1 = "16-05-2022"; + public static final String VALID_DATE_TASK2 = "04-08-2022"; + public static final String VALID_STARTTIME_TASK1 = "09:00"; + public static final String VALID_STARTTIME_TASK2 = "10:00"; + public static final String VALID_ENDTIME_TASK1 = "12:00"; + public static final String VALID_ENDTIME_TASK2 = "13:00"; + public static final String VALID_TAG_EVENT = "Event"; + public static final String VALID_TAG_MEET = "Meet"; + + + public static final String NAME_DESC_AMY = " " + PREFIX_NAME + VALID_NAME_AMY; public static final String NAME_DESC_BOB = " " + PREFIX_NAME + VALID_NAME_BOB; public static final String PHONE_DESC_AMY = " " + PREFIX_PHONE + VALID_PHONE_AMY; @@ -50,12 +66,24 @@ public class CommandTestUtil { public static final String TAG_DESC_FRIEND = " " + PREFIX_TAG + VALID_TAG_FRIEND; public static final String TAG_DESC_HUSBAND = " " + PREFIX_TAG + VALID_TAG_HUSBAND; + public static final String NAME_DESC_TASK1 = " " + PREFIX_NAME + VALID_NAME_TASK1; + public static final String NAME_DESC_TASK2 = " " + PREFIX_NAME + VALID_NAME_TASK2; + public static final String DATE_DESC_TASK1 = " " + PREFIX_DATE + VALID_DATE_TASK1; + public static final String DATE_DESC_TASK2 = " " + PREFIX_DATE + VALID_DATE_TASK2; + public static final String STARTTIME_DESC_TASK1 = " " + PREFIX_STARTTIME + VALID_STARTTIME_TASK1; + public static final String STARTTIME_DESC_TASK2 = " " + PREFIX_STARTTIME + VALID_STARTTIME_TASK2; + public static final String ENDTIME_DESC_TASK1 = " " + PREFIX_ENDTIME + VALID_ENDTIME_TASK1; + public static final String ENDTIME_DESC_TASK2 = " " + PREFIX_ENDTIME + VALID_ENDTIME_TASK2; + public static final String TAG_DESC_EVENT = " " + PREFIX_TAG + VALID_TAG_EVENT; + public static final String TAG_DESC_MEET = " " + PREFIX_TAG + VALID_TAG_MEET; + public static final String INVALID_NAME_DESC = " " + PREFIX_NAME + "James&"; // '&' not allowed in names public static final String INVALID_PHONE_DESC = " " + PREFIX_PHONE + "911a"; // 'a' not allowed in phones public static final String INVALID_EMAIL_DESC = " " + PREFIX_EMAIL + "bob!yahoo"; // missing '@' symbol public static final String INVALID_ADDRESS_DESC = " " + PREFIX_ADDRESS; // empty string not allowed for addresses public static final String INVALID_TAG_DESC = " " + PREFIX_TAG + "hubby*"; // '*' not allowed in tags + public static final String PREAMBLE_WHITESPACE = "\t \r \n"; public static final String PREAMBLE_NON_EMPTY = "NonEmptyPreamble"; @@ -77,7 +105,7 @@ public class CommandTestUtil { * - the {@code actualModel} matches {@code expectedModel} */ public static void assertCommandSuccess(Command command, Model actualModel, CommandResult expectedCommandResult, - Model expectedModel) { + Model expectedModel) { try { CommandResult result = command.execute(actualModel); assertEquals(expectedCommandResult, result); @@ -92,7 +120,7 @@ public static void assertCommandSuccess(Command command, Model actualModel, Comm * that takes a string {@code expectedMessage}. */ public static void assertCommandSuccess(Command command, Model actualModel, String expectedMessage, - Model expectedModel) { + Model expectedModel) { CommandResult expectedCommandResult = new CommandResult(expectedMessage); assertCommandSuccess(command, actualModel, expectedCommandResult, expectedModel); } diff --git a/src/test/java/seedu/address/logic/commands/DeleteTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/DeleteTaskCommandTest.java new file mode 100644 index 00000000000..6a6899de2fe --- /dev/null +++ b/src/test/java/seedu/address/logic/commands/DeleteTaskCommandTest.java @@ -0,0 +1,72 @@ +package seedu.address.logic.commands; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; +import static seedu.address.testutil.TypicalIndexes.TASK_FIRST_INDEX; +import static seedu.address.testutil.TypicalIndexes.TASK_SECOND_INDEX; +import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; + +import org.junit.jupiter.api.Test; + +import seedu.address.commons.core.Messages; +import seedu.address.commons.core.index.Index; +import seedu.address.model.Model; +import seedu.address.model.ModelManager; +import seedu.address.model.UserPrefs; +import seedu.address.model.task.Task; + +/** + * Contains integration tests (interaction with the Model) and unit tests for + * {@code DeleteTaskCommand}. + */ +public class DeleteTaskCommandTest { + + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + + @Test + public void execute_validIndexUnfilteredList_success() { + Task taskToDelete = model.getFilteredTaskList().get(TASK_FIRST_INDEX.getZeroBased()); + DeleteTaskCommand deleteTaskCommand = new DeleteTaskCommand(TASK_FIRST_INDEX); + + String expectedMessage = String.format(DeleteTaskCommand.MESSAGE_DELETE_TASK_SUCCESS, taskToDelete); + + ModelManager expectedModel = new ModelManager(model.getAddressBook(), + model.getTaskBook(), new UserPrefs()); + expectedModel.deleteTask(taskToDelete); + + assertCommandSuccess(deleteTaskCommand, model, expectedMessage, expectedModel); + } + + @Test + public void execute_invalidIndexUnfilteredList_throwsCommandException() { + Index outOfBoundIndex = Index.fromOneBased(model.getFilteredTaskList().size() + 1); + DeleteTaskCommand deleteTaskCommand = new DeleteTaskCommand(outOfBoundIndex); + + assertCommandFailure(deleteTaskCommand, model, Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX); + } + + @Test + public void equals() { + DeleteTaskCommand deleteFirstTaskCommand = new DeleteTaskCommand(TASK_FIRST_INDEX); + DeleteTaskCommand deleteSecondTaskCommand = new DeleteTaskCommand(TASK_SECOND_INDEX); + + // same object -> returns true + assertTrue(deleteFirstTaskCommand.equals(deleteFirstTaskCommand)); + + // same values -> returns true + DeleteTaskCommand deleteFirstTaskCommandCopy = new DeleteTaskCommand(TASK_FIRST_INDEX); + assertTrue(deleteFirstTaskCommand.equals(deleteFirstTaskCommandCopy)); + + // different types -> returns false + assertFalse(deleteFirstTaskCommand.equals(1)); + + // null -> returns false + assertFalse(deleteFirstTaskCommand.equals(null)); + + // different task -> returns false + assertFalse(deleteFirstTaskCommand.equals(deleteSecondTaskCommand)); + } +} diff --git a/src/test/java/seedu/address/logic/parser/AddTaskCommandParserTest.java b/src/test/java/seedu/address/logic/parser/AddTaskCommandParserTest.java new file mode 100644 index 00000000000..76d1fbdd7c1 --- /dev/null +++ b/src/test/java/seedu/address/logic/parser/AddTaskCommandParserTest.java @@ -0,0 +1,100 @@ +package seedu.address.logic.parser; + +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static seedu.address.logic.commands.CommandTestUtil.DATE_DESC_TASK1; +import static seedu.address.logic.commands.CommandTestUtil.DATE_DESC_TASK2; +import static seedu.address.logic.commands.CommandTestUtil.ENDTIME_DESC_TASK1; +import static seedu.address.logic.commands.CommandTestUtil.ENDTIME_DESC_TASK2; +import static seedu.address.logic.commands.CommandTestUtil.NAME_DESC_TASK1; +import static seedu.address.logic.commands.CommandTestUtil.NAME_DESC_TASK2; +import static seedu.address.logic.commands.CommandTestUtil.PREAMBLE_WHITESPACE; +import static seedu.address.logic.commands.CommandTestUtil.STARTTIME_DESC_TASK1; +import static seedu.address.logic.commands.CommandTestUtil.STARTTIME_DESC_TASK2; +import static seedu.address.logic.commands.CommandTestUtil.TAG_DESC_EVENT; +import static seedu.address.logic.commands.CommandTestUtil.TAG_DESC_MEET; +import static seedu.address.logic.commands.CommandTestUtil.VALID_DATE_TASK1; +import static seedu.address.logic.commands.CommandTestUtil.VALID_ENDTIME_TASK1; +import static seedu.address.logic.commands.CommandTestUtil.VALID_NAME_TASK1; +import static seedu.address.logic.commands.CommandTestUtil.VALID_STARTTIME_TASK1; +import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_EVENT; +import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_MEET; +import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; +import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; +import static seedu.address.testutil.TypicalTasks.TASK1; +import static seedu.address.testutil.TypicalTasks.TASK2; + +import org.junit.jupiter.api.Test; + +import seedu.address.logic.commands.AddTaskCommand; +import seedu.address.model.task.Task; +import seedu.address.testutil.TaskBuilder; + + +public class AddTaskCommandParserTest { + private AddTaskCommandParser parser = new AddTaskCommandParser(); + + @Test + public void parse_allFieldsPresent_success() { + Task expectedTask = new TaskBuilder(TASK2).withTags(VALID_TAG_MEET).build(); + + // whitespace only preamble + assertParseSuccess(parser, PREAMBLE_WHITESPACE + NAME_DESC_TASK2 + DATE_DESC_TASK2 + + STARTTIME_DESC_TASK2 + ENDTIME_DESC_TASK2 + TAG_DESC_MEET, new AddTaskCommand(expectedTask)); + + // multiple names - last name accepted + assertParseSuccess(parser, NAME_DESC_TASK1 + NAME_DESC_TASK2 + DATE_DESC_TASK2 + STARTTIME_DESC_TASK2 + + ENDTIME_DESC_TASK2 + TAG_DESC_MEET, new AddTaskCommand(expectedTask)); + + // multiple date - last date accepted + assertParseSuccess(parser, NAME_DESC_TASK2 + DATE_DESC_TASK1 + DATE_DESC_TASK2 + STARTTIME_DESC_TASK2 + + ENDTIME_DESC_TASK2 + TAG_DESC_MEET, new AddTaskCommand(expectedTask)); + + // multiple starttime - last starttime accepted + assertParseSuccess(parser, NAME_DESC_TASK2 + DATE_DESC_TASK2 + STARTTIME_DESC_TASK1 + + STARTTIME_DESC_TASK2 + ENDTIME_DESC_TASK2 + TAG_DESC_MEET, new AddTaskCommand(expectedTask)); + + // multiple endtime - last endtime accepted + assertParseSuccess(parser, NAME_DESC_TASK2 + DATE_DESC_TASK2 + STARTTIME_DESC_TASK2 + + ENDTIME_DESC_TASK1 + ENDTIME_DESC_TASK2 + TAG_DESC_MEET, new AddTaskCommand(expectedTask)); + + // multiple tags - all accepted + Task expectedTaskMultipleTags = new TaskBuilder(TASK2).withTags(VALID_TAG_EVENT, VALID_TAG_MEET) + .build(); + assertParseSuccess(parser, NAME_DESC_TASK2 + DATE_DESC_TASK2 + STARTTIME_DESC_TASK2 + + ENDTIME_DESC_TASK2 + TAG_DESC_EVENT + TAG_DESC_MEET, new AddTaskCommand(expectedTaskMultipleTags)); + } + + @Test + public void parse_optionalFieldsMissing_success() { + // no tags + Task expectedTask = new TaskBuilder(TASK1).withTags().build(); + assertParseSuccess(parser, + NAME_DESC_TASK1 + DATE_DESC_TASK1 + STARTTIME_DESC_TASK1 + ENDTIME_DESC_TASK1, + new AddTaskCommand(expectedTask)); + } + + @Test + public void parse_compulsoryFieldMissing_failure() { + String expectedMessage = String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddTaskCommand.MESSAGE_USAGE); + + // missing name prefix + assertParseFailure(parser, VALID_NAME_TASK1 + DATE_DESC_TASK1 + STARTTIME_DESC_TASK1 + + ENDTIME_DESC_TASK1, expectedMessage); + + // missing date prefix + assertParseFailure(parser, NAME_DESC_TASK1 + VALID_DATE_TASK1 + STARTTIME_DESC_TASK1 + + ENDTIME_DESC_TASK1, expectedMessage); + + // missing starttime prefix + assertParseFailure(parser, NAME_DESC_TASK1 + DATE_DESC_TASK1 + VALID_STARTTIME_TASK1 + + ENDTIME_DESC_TASK1, expectedMessage); + + // missing endtime prefix + assertParseFailure(parser, NAME_DESC_TASK1 + DATE_DESC_TASK1 + STARTTIME_DESC_TASK1 + + VALID_ENDTIME_TASK1, expectedMessage); + + // all prefixes missing + assertParseFailure(parser, VALID_NAME_TASK1 + VALID_DATE_TASK1 + VALID_STARTTIME_TASK1 + + VALID_ENDTIME_TASK1, expectedMessage); + } +} diff --git a/src/test/java/seedu/address/logic/parser/DeleteTaskCommandParserTest.java b/src/test/java/seedu/address/logic/parser/DeleteTaskCommandParserTest.java new file mode 100644 index 00000000000..1f458ddcdbc --- /dev/null +++ b/src/test/java/seedu/address/logic/parser/DeleteTaskCommandParserTest.java @@ -0,0 +1,26 @@ +package seedu.address.logic.parser; + +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; +import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; +import static seedu.address.testutil.TypicalIndexes.TASK_FIRST_INDEX; + +import org.junit.jupiter.api.Test; + +import seedu.address.logic.commands.DeleteTaskCommand; + +public class DeleteTaskCommandParserTest { + + private DeleteTaskCommandParser parser = new DeleteTaskCommandParser(); + + @Test + public void parse_validArgs_returnsDeleteTaskCommand() { + assertParseSuccess(parser, "1", new DeleteTaskCommand(TASK_FIRST_INDEX)); + } + + @Test + public void parse_invalidArgs_throwsParseException() { + assertParseFailure(parser, "a", String.format(MESSAGE_INVALID_COMMAND_FORMAT, + DeleteTaskCommand.MESSAGE_USAGE)); + } +} diff --git a/src/test/java/seedu/address/testutil/TypicalIndexes.java b/src/test/java/seedu/address/testutil/TypicalIndexes.java index 57d999cbdfe..6ce1df06045 100644 --- a/src/test/java/seedu/address/testutil/TypicalIndexes.java +++ b/src/test/java/seedu/address/testutil/TypicalIndexes.java @@ -11,4 +11,6 @@ public class TypicalIndexes { public static final Index INDEX_THIRD_PERSON = Index.fromOneBased(3); public static final Index NOTE_FIRST_INDEX = Index.fromOneBased(1); public static final Index NOTE_SECOND_INDEX = Index.fromOneBased(2); + public static final Index TASK_FIRST_INDEX = Index.fromOneBased(1); + public static final Index TASK_SECOND_INDEX = Index.fromOneBased(2); } diff --git a/src/test/java/seedu/address/testutil/TypicalTasks.java b/src/test/java/seedu/address/testutil/TypicalTasks.java index 5a680941310..f31f4fc51f2 100644 --- a/src/test/java/seedu/address/testutil/TypicalTasks.java +++ b/src/test/java/seedu/address/testutil/TypicalTasks.java @@ -1,5 +1,16 @@ package seedu.address.testutil; +import static seedu.address.logic.commands.CommandTestUtil.VALID_DATE_TASK1; +import static seedu.address.logic.commands.CommandTestUtil.VALID_DATE_TASK2; +import static seedu.address.logic.commands.CommandTestUtil.VALID_ENDTIME_TASK1; +import static seedu.address.logic.commands.CommandTestUtil.VALID_ENDTIME_TASK2; +import static seedu.address.logic.commands.CommandTestUtil.VALID_NAME_TASK1; +import static seedu.address.logic.commands.CommandTestUtil.VALID_NAME_TASK2; +import static seedu.address.logic.commands.CommandTestUtil.VALID_STARTTIME_TASK1; +import static seedu.address.logic.commands.CommandTestUtil.VALID_STARTTIME_TASK2; +import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_EVENT; +import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_MEET; + import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -29,6 +40,13 @@ public class TypicalTasks { .withStartTime("14:30").withEndTime("16:00") .withTags("team1").build(); + // Manually added - Task details found in {@code CommandTestUtil} + public static final Task TASK1 = new TaskBuilder().withName(VALID_NAME_TASK1).withDate(VALID_DATE_TASK1) + .withStartTime(VALID_STARTTIME_TASK1).withEndTime(VALID_ENDTIME_TASK1).withTags(VALID_TAG_MEET).build(); + public static final Task TASK2 = new TaskBuilder().withName(VALID_NAME_TASK2).withDate(VALID_DATE_TASK2) + .withStartTime(VALID_STARTTIME_TASK2).withEndTime(VALID_ENDTIME_TASK2) + .withTags(VALID_TAG_EVENT, VALID_TAG_MEET).build(); + private TypicalTasks() {} // prevents instantiation /** From 3dd954bde1207f59101e32c47fed76a9cad38035 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Fri, 18 Mar 2022 00:02:25 +0800 Subject: [PATCH 109/455] Change application name to Coach2K22 --- src/main/java/seedu/address/MainApp.java | 6 +++--- src/main/resources/view/MainWindow.fxml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/seedu/address/MainApp.java b/src/main/java/seedu/address/MainApp.java index 4667b01bbba..69fa0628446 100644 --- a/src/main/java/seedu/address/MainApp.java +++ b/src/main/java/seedu/address/MainApp.java @@ -52,7 +52,7 @@ public class MainApp extends Application { @Override public void init() throws Exception { - logger.info("=============================[ Initializing AddressBook ]==========================="); + logger.info("=============================[ Initializing Coach2K22 ]==========================="); super.init(); AppParameters appParameters = AppParameters.parse(getParameters()); @@ -186,13 +186,13 @@ protected UserPrefs initPrefs(UserPrefsStorage storage) { @Override public void start(Stage primaryStage) { - logger.info("Starting AddressBook " + MainApp.VERSION); + logger.info("Starting Coach2K22 " + MainApp.VERSION); ui.start(primaryStage); } @Override public void stop() { - logger.info("============================ [ Stopping Address Book ] ============================="); + logger.info("============================ [ Stopping Coach2K22 ] ============================="); try { storage.saveUserPrefs(model.getUserPrefs()); } catch (IOException e) { diff --git a/src/main/resources/view/MainWindow.fxml b/src/main/resources/view/MainWindow.fxml index 74693dcc749..0a5cc6d02b0 100644 --- a/src/main/resources/view/MainWindow.fxml +++ b/src/main/resources/view/MainWindow.fxml @@ -14,7 +14,7 @@ - + From d53060858ff0024ebbcdc10739939414ad6e4bed Mon Sep 17 00:00:00 2001 From: Pragya Date: Fri, 18 Mar 2022 00:36:14 +0800 Subject: [PATCH 110/455] bug fixes and additional test case added --- .../address/logic/parser/ParserUtil.java | 6 +-- .../logic/commands/CommandTestUtil.java | 6 +++ .../parser/AddTaskCommandParserTest.java | 46 ++++++++++++++++++- 3 files changed, 54 insertions(+), 4 deletions(-) diff --git a/src/main/java/seedu/address/logic/parser/ParserUtil.java b/src/main/java/seedu/address/logic/parser/ParserUtil.java index 93cfa49b344..79484d5d4f1 100644 --- a/src/main/java/seedu/address/logic/parser/ParserUtil.java +++ b/src/main/java/seedu/address/logic/parser/ParserUtil.java @@ -124,7 +124,7 @@ public static Date parseDate(String date) throws ParseException { requireNonNull(date); String trimmedDate = date.trim(); if (!Date.isValidDate(trimmedDate)) { - throw new ParseException(Email.MESSAGE_CONSTRAINTS); + throw new ParseException(Date.MESSAGE_CONSTRAINTS); } return new Date(trimmedDate); } @@ -139,7 +139,7 @@ public static StartTime parseStartTime(String startTime) throws ParseException { requireNonNull(startTime); String trimmedStartTime = startTime.trim(); if (!StartTime.isValidStartTime(trimmedStartTime)) { - throw new ParseException(Email.MESSAGE_CONSTRAINTS); + throw new ParseException(StartTime.MESSAGE_CONSTRAINTS); } return new StartTime(trimmedStartTime); } @@ -154,7 +154,7 @@ public static EndTime parseEndTime(String endTime) throws ParseException { requireNonNull(endTime); String trimmedEndTime = endTime.trim(); if (!EndTime.isValidEndTime(trimmedEndTime)) { - throw new ParseException(Email.MESSAGE_CONSTRAINTS); + throw new ParseException(EndTime.MESSAGE_CONSTRAINTS); } return new EndTime(trimmedEndTime); } diff --git a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java b/src/test/java/seedu/address/logic/commands/CommandTestUtil.java index 8e69704ff08..31b6e65ddb6 100644 --- a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java +++ b/src/test/java/seedu/address/logic/commands/CommandTestUtil.java @@ -83,6 +83,12 @@ public class CommandTestUtil { public static final String INVALID_ADDRESS_DESC = " " + PREFIX_ADDRESS; // empty string not allowed for addresses public static final String INVALID_TAG_DESC = " " + PREFIX_TAG + "hubby*"; // '*' not allowed in tags + public static final String INVALID_TASK_NAME_DESC = " " + PREFIX_NAME + "$hareholder"; // '$' not allowed in names + public static final String INVALID_TASK_DATE_DESC = " " + PREFIX_DATE + "24/02/2022"; // DD-MM-YYYY format required + public static final String INVALID_TASK_STARTTIME_DESC = " " + PREFIX_STARTTIME + "2pm"; // MM:HH format required + public static final String INVALID_TASK_ENDTIME_DESC = " " + PREFIX_ENDTIME + "1030"; // MM:HH format required + public static final String INVALID_TASK_TAG_DESC = " " + PREFIX_TAG + "test!"; // '!' not allowed in tags + public static final String PREAMBLE_WHITESPACE = "\t \r \n"; public static final String PREAMBLE_NON_EMPTY = "NonEmptyPreamble"; diff --git a/src/test/java/seedu/address/logic/parser/AddTaskCommandParserTest.java b/src/test/java/seedu/address/logic/parser/AddTaskCommandParserTest.java index 76d1fbdd7c1..977cedeb88d 100644 --- a/src/test/java/seedu/address/logic/parser/AddTaskCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/AddTaskCommandParserTest.java @@ -5,8 +5,14 @@ import static seedu.address.logic.commands.CommandTestUtil.DATE_DESC_TASK2; import static seedu.address.logic.commands.CommandTestUtil.ENDTIME_DESC_TASK1; import static seedu.address.logic.commands.CommandTestUtil.ENDTIME_DESC_TASK2; +import static seedu.address.logic.commands.CommandTestUtil.INVALID_TASK_DATE_DESC; +import static seedu.address.logic.commands.CommandTestUtil.INVALID_TASK_ENDTIME_DESC; +import static seedu.address.logic.commands.CommandTestUtil.INVALID_TASK_NAME_DESC; +import static seedu.address.logic.commands.CommandTestUtil.INVALID_TASK_STARTTIME_DESC; +import static seedu.address.logic.commands.CommandTestUtil.INVALID_TASK_TAG_DESC; import static seedu.address.logic.commands.CommandTestUtil.NAME_DESC_TASK1; import static seedu.address.logic.commands.CommandTestUtil.NAME_DESC_TASK2; +import static seedu.address.logic.commands.CommandTestUtil.PREAMBLE_NON_EMPTY; import static seedu.address.logic.commands.CommandTestUtil.PREAMBLE_WHITESPACE; import static seedu.address.logic.commands.CommandTestUtil.STARTTIME_DESC_TASK1; import static seedu.address.logic.commands.CommandTestUtil.STARTTIME_DESC_TASK2; @@ -26,10 +32,14 @@ import org.junit.jupiter.api.Test; import seedu.address.logic.commands.AddTaskCommand; +import seedu.address.model.name.Name; +import seedu.address.model.tag.Tag; +import seedu.address.model.task.Date; +import seedu.address.model.task.EndTime; +import seedu.address.model.task.StartTime; import seedu.address.model.task.Task; import seedu.address.testutil.TaskBuilder; - public class AddTaskCommandParserTest { private AddTaskCommandParser parser = new AddTaskCommandParser(); @@ -97,4 +107,38 @@ public void parse_compulsoryFieldMissing_failure() { assertParseFailure(parser, VALID_NAME_TASK1 + VALID_DATE_TASK1 + VALID_STARTTIME_TASK1 + VALID_ENDTIME_TASK1, expectedMessage); } + + @Test + public void parse_invalidValue_failure() { + // invalid name + assertParseFailure(parser, INVALID_TASK_NAME_DESC + DATE_DESC_TASK2 + STARTTIME_DESC_TASK2 + + ENDTIME_DESC_TASK2 + TAG_DESC_MEET + TAG_DESC_EVENT, Name.MESSAGE_CONSTRAINTS); + + // invalid Date + assertParseFailure(parser, NAME_DESC_TASK2 + INVALID_TASK_DATE_DESC + STARTTIME_DESC_TASK2 + + ENDTIME_DESC_TASK2 + TAG_DESC_MEET + TAG_DESC_EVENT, Date.MESSAGE_CONSTRAINTS); + + // invalid StartTime + assertParseFailure(parser, NAME_DESC_TASK2 + DATE_DESC_TASK2 + INVALID_TASK_STARTTIME_DESC + + ENDTIME_DESC_TASK2 + TAG_DESC_MEET + TAG_DESC_EVENT, StartTime.MESSAGE_CONSTRAINTS); + + // invalid EndTime + assertParseFailure(parser, NAME_DESC_TASK2 + DATE_DESC_TASK2 + STARTTIME_DESC_TASK2 + + INVALID_TASK_ENDTIME_DESC + TAG_DESC_MEET + TAG_DESC_EVENT, EndTime.MESSAGE_CONSTRAINTS); + + // invalid tag + assertParseFailure(parser, NAME_DESC_TASK2 + DATE_DESC_TASK2 + STARTTIME_DESC_TASK2 + + ENDTIME_DESC_TASK2 + INVALID_TASK_TAG_DESC + VALID_TAG_EVENT, Tag.MESSAGE_CONSTRAINTS); + + // two invalid values, only first invalid value reported + assertParseFailure(parser, INVALID_TASK_NAME_DESC + DATE_DESC_TASK2 + STARTTIME_DESC_TASK2 + + INVALID_TASK_ENDTIME_DESC, Name.MESSAGE_CONSTRAINTS); + + // non-empty preamble + assertParseFailure(parser, PREAMBLE_NON_EMPTY + NAME_DESC_TASK2 + DATE_DESC_TASK2 + + STARTTIME_DESC_TASK2 + ENDTIME_DESC_TASK2 + TAG_DESC_MEET + TAG_DESC_EVENT, + String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddTaskCommand.MESSAGE_USAGE)); + } + + } From 8baf05109e7f8d42d5fa6c73aebe9e6e5c61d1f0 Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Fri, 18 Mar 2022 02:15:35 +0800 Subject: [PATCH 111/455] Add additional classes for enhancement of note feature --- .../logic/commands/AddMiscCommand.java | 90 +++++++++++++++ .../logic/commands/AddNoteCommand.java | 7 +- .../logic/commands/AddStrengthCommand.java | 90 +++++++++++++++ .../address/logic/commands/AddTagCommand.java | 7 +- .../logic/commands/AddWeaknessCommand.java | 90 +++++++++++++++ .../address/logic/commands/CommandResult.java | 8 ++ .../logic/commands/DeleteMiscCommand.java | 94 +++++++++++++++ .../logic/commands/DeleteNoteCommand.java | 5 +- .../logic/commands/DeleteStrengthCommand.java | 94 +++++++++++++++ .../logic/commands/DeleteTagCommand.java | 7 +- .../logic/commands/DeleteWeaknessCommand.java | 94 +++++++++++++++ .../address/logic/commands/EditCommand.java | 66 +++++++++-- .../logic/parser/AddCommandParser.java | 6 +- .../logic/parser/AddMiscCommandParser.java | 30 +++++ .../parser/AddStrengthCommandParser.java | 30 +++++ .../parser/AddWeaknessCommandParser.java | 30 +++++ .../logic/parser/AddressBookParser.java | 28 ++++- .../logic/parser/DeleteMiscCommandParser.java | 30 +++++ .../parser/DeleteStrengthCommandParser.java | 30 +++++ .../parser/DeleteWeaknessCommandParser.java | 30 +++++ .../seedu/address/model/person/Person.java | 59 ++++++++-- .../address/model/util/SampleDataUtil.java | 18 ++- .../address/storage/JsonAdaptedPerson.java | 41 +++++-- .../java/seedu/address/ui/PersonCard.java | 14 ++- src/main/resources/view/PersonListCard.fxml | 36 +++++- .../duplicatePersonAddressBook.json | 8 +- .../typicalPersonsAddressBook.json | 28 +++-- ...mmandTest.java => AddMiscCommandTest.java} | 30 ++--- .../commands/AddStrengthCommandTest.java | 107 ++++++++++++++++++ .../commands/AddWeaknessCommandTest.java | 107 ++++++++++++++++++ ...ndTest.java => DeleteMiscCommandTest.java} | 53 ++++----- .../commands/DeleteStrengthCommandTest.java | 103 +++++++++++++++++ .../commands/DeleteWeaknessCommandTest.java | 103 +++++++++++++++++ ...est.java => AddMiscCommandParserTest.java} | 22 ++-- .../parser/AddStrengthCommandParserTest.java | 43 +++++++ .../parser/AddWeaknessCommandParserTest.java | 43 +++++++ .../logic/parser/AddressBookParserTest.java | 27 ++++- .../parser/DeleteNoteCommandParserTest.java | 36 ------ .../storage/JsonAdaptedPersonTest.java | 28 +++-- .../testutil/EditPersonDescriptorBuilder.java | 3 + .../seedu/address/testutil/PersonBuilder.java | 39 +++++-- .../address/testutil/TypicalPersons.java | 10 +- 42 files changed, 1638 insertions(+), 186 deletions(-) create mode 100644 src/main/java/seedu/address/logic/commands/AddMiscCommand.java create mode 100644 src/main/java/seedu/address/logic/commands/AddStrengthCommand.java create mode 100644 src/main/java/seedu/address/logic/commands/AddWeaknessCommand.java create mode 100644 src/main/java/seedu/address/logic/commands/DeleteMiscCommand.java create mode 100644 src/main/java/seedu/address/logic/commands/DeleteStrengthCommand.java create mode 100644 src/main/java/seedu/address/logic/commands/DeleteWeaknessCommand.java create mode 100644 src/main/java/seedu/address/logic/parser/AddMiscCommandParser.java create mode 100644 src/main/java/seedu/address/logic/parser/AddStrengthCommandParser.java create mode 100644 src/main/java/seedu/address/logic/parser/AddWeaknessCommandParser.java create mode 100644 src/main/java/seedu/address/logic/parser/DeleteMiscCommandParser.java create mode 100644 src/main/java/seedu/address/logic/parser/DeleteStrengthCommandParser.java create mode 100644 src/main/java/seedu/address/logic/parser/DeleteWeaknessCommandParser.java rename src/test/java/seedu/address/logic/commands/{AddNoteCommandTest.java => AddMiscCommandTest.java} (80%) create mode 100644 src/test/java/seedu/address/logic/commands/AddStrengthCommandTest.java create mode 100644 src/test/java/seedu/address/logic/commands/AddWeaknessCommandTest.java rename src/test/java/seedu/address/logic/commands/{DeleteNoteCommandTest.java => DeleteMiscCommandTest.java} (57%) create mode 100644 src/test/java/seedu/address/logic/commands/DeleteStrengthCommandTest.java create mode 100644 src/test/java/seedu/address/logic/commands/DeleteWeaknessCommandTest.java rename src/test/java/seedu/address/logic/parser/{AddNoteCommandParserTest.java => AddMiscCommandParserTest.java} (71%) create mode 100644 src/test/java/seedu/address/logic/parser/AddStrengthCommandParserTest.java create mode 100644 src/test/java/seedu/address/logic/parser/AddWeaknessCommandParserTest.java delete mode 100644 src/test/java/seedu/address/logic/parser/DeleteNoteCommandParserTest.java diff --git a/src/main/java/seedu/address/logic/commands/AddMiscCommand.java b/src/main/java/seedu/address/logic/commands/AddMiscCommand.java new file mode 100644 index 00000000000..23584551449 --- /dev/null +++ b/src/main/java/seedu/address/logic/commands/AddMiscCommand.java @@ -0,0 +1,90 @@ +package seedu.address.logic.commands; + +import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; +import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; + +import java.util.ArrayList; +import java.util.List; + +import seedu.address.commons.core.Messages; +import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.exceptions.CommandException; +import seedu.address.model.Model; +import seedu.address.model.note.Note; +import seedu.address.model.person.Person; + +/** + * Adds a miscellaneous note to a person in the address book. + */ +public class AddMiscCommand extends Command { + public static final String COMMAND_WORD = "misc-add"; + + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Add a miscellaneous note to a selected person from our contact list. " + + "Parameters: " + + "INDEX (must be a positive integer) " + + "NOTE_DESCRIPTION (must be non-empty and not more than 50 characters)\n" + + "Example: " + COMMAND_WORD + " " + + "1 " + + "Surgery Scheduled for tomorrow"; + + public static final String MESSAGE_NOT_IMPLEMENTED_YET = + "AddMisc command not implemented yet"; + + public static final String MESSAGE_SUCCESS = "New miscellaneous note added: %1$s"; + + public static final String MESSAGE_ARGUMENTS = "Index: %1$d, Misc: %2$s"; + + private final Index index; + private final Note misc; + + /** + * @param index of the person in the filtered person list to add the misc + * @param misc note of the person to be added + */ + public AddMiscCommand(Index index, Note misc) { + requireAllNonNull(index, misc); + + this.index = index; + this.misc = misc; + } + + @Override + public CommandResult execute(Model model) throws CommandException { + List lastShownList = model.getFilteredPersonList(); + + if (index.getZeroBased() >= lastShownList.size()) { + throw new CommandException(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + } + + Person personToEdit = lastShownList.get(index.getZeroBased()); + List newMisc = new ArrayList<>(personToEdit.getMiscellaneous()); + newMisc.add(misc); + + Person editedPerson = new Person( + personToEdit.getName(), personToEdit.getPhone(), personToEdit.getEmail(), + personToEdit.getAddress(), personToEdit.getTags(), personToEdit.getStrengths(), + personToEdit.getWeaknesses(), newMisc); + + model.setPerson(personToEdit, editedPerson); + model.updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); + + return new CommandResult(generateSuccessMessage(editedPerson)); + } + + /** + * Generates a command execution success message + * {@code personToEdit}. + */ + private String generateSuccessMessage(Person personToEdit) { + return String.format(MESSAGE_SUCCESS, personToEdit); + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof AddMiscCommand // instanceof handles nulls + && (index.equals(((AddMiscCommand) other).index) + && misc.equals(((AddMiscCommand) other).misc))); + } +} diff --git a/src/main/java/seedu/address/logic/commands/AddNoteCommand.java b/src/main/java/seedu/address/logic/commands/AddNoteCommand.java index 87ba2019fc3..ed0181c511d 100644 --- a/src/main/java/seedu/address/logic/commands/AddNoteCommand.java +++ b/src/main/java/seedu/address/logic/commands/AddNoteCommand.java @@ -14,7 +14,7 @@ import seedu.address.model.person.Person; /** - * Adds a note to a person in the address book. + * Adds a note to a person in the address book. (DEPRECIATED) */ public class AddNoteCommand extends Command { public static final String COMMAND_WORD = "note-add"; @@ -58,12 +58,13 @@ public CommandResult execute(Model model) throws CommandException { } Person personToEdit = lastShownList.get(index.getZeroBased()); - List newNotes = new ArrayList<>(personToEdit.getNotes()); + List newNotes = new ArrayList<>(personToEdit.getMiscellaneous()); newNotes.add(note); Person editedPerson = new Person( personToEdit.getName(), personToEdit.getPhone(), personToEdit.getEmail(), - personToEdit.getAddress(), personToEdit.getTags(), newNotes); + personToEdit.getAddress(), personToEdit.getTags(), personToEdit.getStrengths(), + personToEdit.getWeaknesses(), newNotes); model.setPerson(personToEdit, editedPerson); model.updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); diff --git a/src/main/java/seedu/address/logic/commands/AddStrengthCommand.java b/src/main/java/seedu/address/logic/commands/AddStrengthCommand.java new file mode 100644 index 00000000000..c32763c9f88 --- /dev/null +++ b/src/main/java/seedu/address/logic/commands/AddStrengthCommand.java @@ -0,0 +1,90 @@ +package seedu.address.logic.commands; + +import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; +import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; + +import java.util.ArrayList; +import java.util.List; + +import seedu.address.commons.core.Messages; +import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.exceptions.CommandException; +import seedu.address.model.Model; +import seedu.address.model.note.Note; +import seedu.address.model.person.Person; + +/** + * Adds a strength note to a person in the address book. + */ +public class AddStrengthCommand extends Command { + public static final String COMMAND_WORD = "strength-add"; + + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Add a strength to a selected person from our contact list. " + + "Parameters: " + + "INDEX (must be a positive integer) " + + "NOTE_DESCRIPTION (must be non-empty and not more than 50 characters)\n" + + "Example: " + COMMAND_WORD + " " + + "1 " + + "Good at defense"; + + public static final String MESSAGE_NOT_IMPLEMENTED_YET = + "AddStrength command not implemented yet"; + + public static final String MESSAGE_SUCCESS = "New strength added: %1$s"; + + public static final String MESSAGE_ARGUMENTS = "Index: %1$d, Strength: %2$s"; + + private final Index index; + private final Note strength; + + /** + * @param index of the person in the filtered person list to add the strength + * @param strength of the person to be added + */ + public AddStrengthCommand(Index index, Note strength) { + requireAllNonNull(index, strength); + + this.index = index; + this.strength = strength; + } + + @Override + public CommandResult execute(Model model) throws CommandException { + List lastShownList = model.getFilteredPersonList(); + + if (index.getZeroBased() >= lastShownList.size()) { + throw new CommandException(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + } + + Person personToEdit = lastShownList.get(index.getZeroBased()); + List newStrength = new ArrayList<>(personToEdit.getStrengths()); + newStrength.add(strength); + + Person editedPerson = new Person( + personToEdit.getName(), personToEdit.getPhone(), personToEdit.getEmail(), + personToEdit.getAddress(), personToEdit.getTags(), newStrength, personToEdit.getWeaknesses(), + personToEdit.getMiscellaneous()); + + model.setPerson(personToEdit, editedPerson); + model.updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); + + return new CommandResult(generateSuccessMessage(editedPerson)); + } + + /** + * Generates a command execution success message + * {@code personToEdit}. + */ + private String generateSuccessMessage(Person personToEdit) { + return String.format(MESSAGE_SUCCESS, personToEdit); + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof AddStrengthCommand // instanceof handles nulls + && (index.equals(((AddStrengthCommand) other).index) + && strength.equals(((AddStrengthCommand) other).strength))); + } +} diff --git a/src/main/java/seedu/address/logic/commands/AddTagCommand.java b/src/main/java/seedu/address/logic/commands/AddTagCommand.java index f29c685addd..a768793fe58 100644 --- a/src/main/java/seedu/address/logic/commands/AddTagCommand.java +++ b/src/main/java/seedu/address/logic/commands/AddTagCommand.java @@ -86,14 +86,17 @@ private Person addTagToPerson(Person personToEdit) { Phone updatedPhone = personToEdit.getPhone(); Email updatedEmail = personToEdit.getEmail(); Address updatedAddress = personToEdit.getAddress(); - List updatedNotes = personToEdit.getNotes(); + List updatedStrengths = personToEdit.getStrengths(); + List updatedWeaknesses = personToEdit.getWeaknesses(); + List updatedMisc = personToEdit.getMiscellaneous(); // Changing tags // Make modifiable copy since Person#getTags returns an unmodifiable Set Set tagList = new HashSet<>(personToEdit.getTags()); tagList.add(new Tag(this.tagName)); - return new Person(updatedName, updatedPhone, updatedEmail, updatedAddress, tagList, updatedNotes); + return new Person(updatedName, updatedPhone, updatedEmail, updatedAddress, tagList, + updatedStrengths, updatedWeaknesses, updatedMisc); } @Override diff --git a/src/main/java/seedu/address/logic/commands/AddWeaknessCommand.java b/src/main/java/seedu/address/logic/commands/AddWeaknessCommand.java new file mode 100644 index 00000000000..60551aa2c39 --- /dev/null +++ b/src/main/java/seedu/address/logic/commands/AddWeaknessCommand.java @@ -0,0 +1,90 @@ +package seedu.address.logic.commands; + +import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; +import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; + +import java.util.ArrayList; +import java.util.List; + +import seedu.address.commons.core.Messages; +import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.exceptions.CommandException; +import seedu.address.model.Model; +import seedu.address.model.note.Note; +import seedu.address.model.person.Person; + +/** + * Adds a weakness note to a person in the address book. + */ +public class AddWeaknessCommand extends Command { + public static final String COMMAND_WORD = "weakness-add"; + + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Add a weakness to a selected person from our contact list. " + + "Parameters: " + + "INDEX (must be a positive integer) " + + "NOTE_DESCRIPTION (must be non-empty and not more than 50 characters)\n" + + "Example: " + COMMAND_WORD + " " + + "1 " + + "Poor endurance"; + + public static final String MESSAGE_NOT_IMPLEMENTED_YET = + "AddWeakness command not implemented yet"; + + public static final String MESSAGE_SUCCESS = "New weakness added: %1$s"; + + public static final String MESSAGE_ARGUMENTS = "Index: %1$d, Weakness: %2$s"; + + private final Index index; + private final Note weakness; + + /** + * @param index of the person in the filtered person list to add the weakness + * @param weakness of the person to be added + */ + public AddWeaknessCommand(Index index, Note weakness) { + requireAllNonNull(index, weakness); + + this.index = index; + this.weakness = weakness; + } + + @Override + public CommandResult execute(Model model) throws CommandException { + List lastShownList = model.getFilteredPersonList(); + + if (index.getZeroBased() >= lastShownList.size()) { + throw new CommandException(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + } + + Person personToEdit = lastShownList.get(index.getZeroBased()); + List newWeakness = new ArrayList<>(personToEdit.getWeaknesses()); + newWeakness.add(weakness); + + Person editedPerson = new Person( + personToEdit.getName(), personToEdit.getPhone(), personToEdit.getEmail(), + personToEdit.getAddress(), personToEdit.getTags(), personToEdit.getStrengths(), newWeakness, + personToEdit.getMiscellaneous()); + + model.setPerson(personToEdit, editedPerson); + model.updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); + + return new CommandResult(generateSuccessMessage(editedPerson)); + } + + /** + * Generates a command execution success message + * {@code personToEdit}. + */ + private String generateSuccessMessage(Person personToEdit) { + return String.format(MESSAGE_SUCCESS, personToEdit); + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof AddWeaknessCommand // instanceof handles nulls + && (index.equals(((AddWeaknessCommand) other).index) + && weakness.equals(((AddWeaknessCommand) other).weakness))); + } +} diff --git a/src/main/java/seedu/address/logic/commands/CommandResult.java b/src/main/java/seedu/address/logic/commands/CommandResult.java index 92f900b7916..a1f5df6b840 100644 --- a/src/main/java/seedu/address/logic/commands/CommandResult.java +++ b/src/main/java/seedu/address/logic/commands/CommandResult.java @@ -68,4 +68,12 @@ public int hashCode() { return Objects.hash(feedbackToUser, showHelp, exit); } + @Override + public String toString() { + return "CommandResult{" + + "feedbackToUser='" + feedbackToUser + '\'' + + ", showHelp=" + showHelp + + ", exit=" + exit + + '}'; + } } diff --git a/src/main/java/seedu/address/logic/commands/DeleteMiscCommand.java b/src/main/java/seedu/address/logic/commands/DeleteMiscCommand.java new file mode 100644 index 00000000000..d704521968a --- /dev/null +++ b/src/main/java/seedu/address/logic/commands/DeleteMiscCommand.java @@ -0,0 +1,94 @@ +package seedu.address.logic.commands; + +import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; +import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; + +import java.util.ArrayList; +import java.util.List; + +import seedu.address.commons.core.Messages; +import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.exceptions.CommandException; +import seedu.address.model.Model; +import seedu.address.model.note.Note; +import seedu.address.model.person.Person; + +/** + * Delete a miscellaneous note from a person in the address book + */ +public class DeleteMiscCommand extends Command { + public static final String COMMAND_WORD = "misc-del"; + + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Delete a miscellaneous note from the note-list of selected person from our contact list. " + + "Parameters: " + + "INDEX (must be a positive integer) " + + "NOTE-INDEX (must be a positive)\n" + + "Example: " + COMMAND_WORD + " " + + "1 " + + "2"; + + public static final String MESSAGE_NOT_IMPLEMENTED_YET = + "DeleteMisc command not implemented yet"; + + public static final String MESSAGE_SUCCESS = "Miscellaneous note has been deleted: %1$s"; + + public static final String MESSAGE_ARGUMENTS = "Index: %1$d, Index: %2$d"; + + private final Index index; + private final Index noteIndex; + + /** + * Constructor of DeleteNoteCommand class + * @param index index of the person in the filtered person list + * @param noteIndex index of the misc. note from the person's misc-list to be deleted + */ + public DeleteMiscCommand(Index index, Index noteIndex) { + requireAllNonNull(index, noteIndex); + this.index = index; + this.noteIndex = noteIndex; + } + + @Override + public CommandResult execute(Model model) throws CommandException { + List lastShownList = model.getFilteredPersonList(); + + if (index.getZeroBased() >= lastShownList.size()) { + throw new CommandException(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + } + + Person personToEdit = lastShownList.get(index.getZeroBased()); + List newMisc = new ArrayList<>(personToEdit.getMiscellaneous()); + + if (noteIndex.getZeroBased() >= newMisc.size()) { + throw new CommandException(Messages.MESSAGE_INVALID_NOTE_DISPLAYED_INDEX); + } + newMisc.remove(noteIndex.getZeroBased()); + + Person editedPerson = new Person( + personToEdit.getName(), personToEdit.getPhone(), personToEdit.getEmail(), + personToEdit.getAddress(), personToEdit.getTags(), + personToEdit.getStrengths(), personToEdit.getWeaknesses(), newMisc); + + model.setPerson(personToEdit, editedPerson); + model.updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); + + return new CommandResult(generateSuccessMessage(editedPerson)); + } + + /** + * Generates a command execution success message + * {@code personToEdit}. + */ + private String generateSuccessMessage(Person personToEdit) { + return String.format(MESSAGE_SUCCESS, personToEdit); + } + + @Override + public boolean equals(Object other) { + return other == this + || (other instanceof DeleteMiscCommand + && index.equals(((DeleteMiscCommand) other).index) + && noteIndex.equals(((DeleteMiscCommand) other).noteIndex)); + } +} diff --git a/src/main/java/seedu/address/logic/commands/DeleteNoteCommand.java b/src/main/java/seedu/address/logic/commands/DeleteNoteCommand.java index 9f71edd7036..2e53bd3d3e3 100644 --- a/src/main/java/seedu/address/logic/commands/DeleteNoteCommand.java +++ b/src/main/java/seedu/address/logic/commands/DeleteNoteCommand.java @@ -58,7 +58,7 @@ public CommandResult execute(Model model) throws CommandException { } Person personToEdit = lastShownList.get(index.getZeroBased()); - List newNotes = new ArrayList<>(personToEdit.getNotes()); + List newNotes = new ArrayList<>(personToEdit.getMiscellaneous()); if (noteIndex.getZeroBased() >= newNotes.size()) { throw new CommandException(Messages.MESSAGE_INVALID_NOTE_DISPLAYED_INDEX); @@ -67,7 +67,8 @@ public CommandResult execute(Model model) throws CommandException { Person editedPerson = new Person( personToEdit.getName(), personToEdit.getPhone(), personToEdit.getEmail(), - personToEdit.getAddress(), personToEdit.getTags(), newNotes); + personToEdit.getAddress(), personToEdit.getTags(), + personToEdit.getStrengths(), personToEdit.getWeaknesses(), newNotes); model.setPerson(personToEdit, editedPerson); model.updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); diff --git a/src/main/java/seedu/address/logic/commands/DeleteStrengthCommand.java b/src/main/java/seedu/address/logic/commands/DeleteStrengthCommand.java new file mode 100644 index 00000000000..4f6467aea70 --- /dev/null +++ b/src/main/java/seedu/address/logic/commands/DeleteStrengthCommand.java @@ -0,0 +1,94 @@ +package seedu.address.logic.commands; + +import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; +import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; + +import java.util.ArrayList; +import java.util.List; + +import seedu.address.commons.core.Messages; +import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.exceptions.CommandException; +import seedu.address.model.Model; +import seedu.address.model.note.Note; +import seedu.address.model.person.Person; + +/** + * Delete a strength from a person in the address book + */ +public class DeleteStrengthCommand extends Command { + public static final String COMMAND_WORD = "strength-del"; + + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Delete a strength from the strength-list of a selected person from our contact list. " + + "Parameters: " + + "INDEX (must be a positive integer) " + + "NOTE-INDEX (must be a positive)\n" + + "Example: " + COMMAND_WORD + " " + + "1 " + + "2"; + + public static final String MESSAGE_NOT_IMPLEMENTED_YET = + "DeleteStrength command not implemented yet"; + + public static final String MESSAGE_SUCCESS = "Strength has been deleted: %1$s"; + + public static final String MESSAGE_ARGUMENTS = "Index: %1$d, Index: %2$d"; + + private final Index index; + private final Index noteIndex; + + /** + * Constructor of DeleteStrengthCommand class + * @param index index of the person in the filtered person list + * @param noteIndex index of the strength from the person's strength-list to be deleted + */ + public DeleteStrengthCommand(Index index, Index noteIndex) { + requireAllNonNull(index, noteIndex); + this.index = index; + this.noteIndex = noteIndex; + } + + @Override + public CommandResult execute(Model model) throws CommandException { + List lastShownList = model.getFilteredPersonList(); + + if (index.getZeroBased() >= lastShownList.size()) { + throw new CommandException(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + } + + Person personToEdit = lastShownList.get(index.getZeroBased()); + List newStrengths = new ArrayList<>(personToEdit.getStrengths()); + + if (noteIndex.getZeroBased() >= newStrengths.size()) { + throw new CommandException(Messages.MESSAGE_INVALID_NOTE_DISPLAYED_INDEX); + } + newStrengths.remove(noteIndex.getZeroBased()); + + Person editedPerson = new Person( + personToEdit.getName(), personToEdit.getPhone(), personToEdit.getEmail(), + personToEdit.getAddress(), personToEdit.getTags(), + newStrengths, personToEdit.getWeaknesses(), personToEdit.getMiscellaneous()); + + model.setPerson(personToEdit, editedPerson); + model.updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); + + return new CommandResult(generateSuccessMessage(editedPerson)); + } + + /** + * Generates a command execution success message + * {@code personToEdit}. + */ + private String generateSuccessMessage(Person personToEdit) { + return String.format(MESSAGE_SUCCESS, personToEdit); + } + + @Override + public boolean equals(Object other) { + return other == this + || (other instanceof DeleteStrengthCommand + && index.equals(((DeleteStrengthCommand) other).index) + && noteIndex.equals(((DeleteStrengthCommand) other).noteIndex)); + } +} diff --git a/src/main/java/seedu/address/logic/commands/DeleteTagCommand.java b/src/main/java/seedu/address/logic/commands/DeleteTagCommand.java index 870b0d35d1a..d274f75fb72 100644 --- a/src/main/java/seedu/address/logic/commands/DeleteTagCommand.java +++ b/src/main/java/seedu/address/logic/commands/DeleteTagCommand.java @@ -87,14 +87,17 @@ private Person deleteTagFromPerson(Person personToEdit) { Phone updatedPhone = personToEdit.getPhone(); Email updatedEmail = personToEdit.getEmail(); Address updatedAddress = personToEdit.getAddress(); - List updatedNotes = personToEdit.getNotes(); + List updatedStrengths = personToEdit.getStrengths(); + List updatedWeaknesses = personToEdit.getWeaknesses(); + List updatedMisc = personToEdit.getMiscellaneous(); // Changing tags // Make modifiable copy since Person#getTags returns an unmodifiable Set Set tagList = new HashSet<>(personToEdit.getTags()); tagList.remove(new Tag(this.tagName)); - return new Person(updatedName, updatedPhone, updatedEmail, updatedAddress, tagList, updatedNotes); + return new Person(updatedName, updatedPhone, updatedEmail, updatedAddress, tagList, + updatedStrengths, updatedWeaknesses, updatedMisc); } @Override diff --git a/src/main/java/seedu/address/logic/commands/DeleteWeaknessCommand.java b/src/main/java/seedu/address/logic/commands/DeleteWeaknessCommand.java new file mode 100644 index 00000000000..47c023f6af8 --- /dev/null +++ b/src/main/java/seedu/address/logic/commands/DeleteWeaknessCommand.java @@ -0,0 +1,94 @@ +package seedu.address.logic.commands; + +import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; +import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; + +import java.util.ArrayList; +import java.util.List; + +import seedu.address.commons.core.Messages; +import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.exceptions.CommandException; +import seedu.address.model.Model; +import seedu.address.model.note.Note; +import seedu.address.model.person.Person; + +/** + * Delete a weakness from a person in the address book + */ +public class DeleteWeaknessCommand extends Command { + public static final String COMMAND_WORD = "weakness-del"; + + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Delete a weakness from the weakness-list of a selected person from our contact list. " + + "Parameters: " + + "INDEX (must be a positive integer) " + + "NOTE-INDEX (must be a positive)\n" + + "Example: " + COMMAND_WORD + " " + + "1 " + + "2"; + + public static final String MESSAGE_NOT_IMPLEMENTED_YET = + "DeleteWeakness command not implemented yet"; + + public static final String MESSAGE_SUCCESS = "Weakness has been deleted: %1$s"; + + public static final String MESSAGE_ARGUMENTS = "Index: %1$d, Index: %2$d"; + + private final Index index; + private final Index noteIndex; + + /** + * Constructor of DeleteWeaknessCommand class + * @param index index of the person in the filtered person list + * @param noteIndex index of the weakness from the person's weakness-list to be deleted + */ + public DeleteWeaknessCommand(Index index, Index noteIndex) { + requireAllNonNull(index, noteIndex); + this.index = index; + this.noteIndex = noteIndex; + } + + @Override + public CommandResult execute(Model model) throws CommandException { + List lastShownList = model.getFilteredPersonList(); + + if (index.getZeroBased() >= lastShownList.size()) { + throw new CommandException(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + } + + Person personToEdit = lastShownList.get(index.getZeroBased()); + List newWeaknesses = new ArrayList<>(personToEdit.getWeaknesses()); + + if (noteIndex.getZeroBased() >= newWeaknesses.size()) { + throw new CommandException(Messages.MESSAGE_INVALID_NOTE_DISPLAYED_INDEX); + } + newWeaknesses.remove(noteIndex.getZeroBased()); + + Person editedPerson = new Person( + personToEdit.getName(), personToEdit.getPhone(), personToEdit.getEmail(), + personToEdit.getAddress(), personToEdit.getTags(), + personToEdit.getStrengths(), newWeaknesses, personToEdit.getMiscellaneous()); + + model.setPerson(personToEdit, editedPerson); + model.updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); + + return new CommandResult(generateSuccessMessage(editedPerson)); + } + + /** + * Generates a command execution success message + * {@code personToEdit}. + */ + private String generateSuccessMessage(Person personToEdit) { + return String.format(MESSAGE_SUCCESS, personToEdit); + } + + @Override + public boolean equals(Object other) { + return other == this + || (other instanceof DeleteWeaknessCommand + && index.equals(((DeleteWeaknessCommand) other).index) + && noteIndex.equals(((DeleteWeaknessCommand) other).noteIndex)); + } +} diff --git a/src/main/java/seedu/address/logic/commands/EditCommand.java b/src/main/java/seedu/address/logic/commands/EditCommand.java index 23ab5c60850..d17d6c7ccc6 100644 --- a/src/main/java/seedu/address/logic/commands/EditCommand.java +++ b/src/main/java/seedu/address/logic/commands/EditCommand.java @@ -100,8 +100,11 @@ private static Person createEditedPerson(Person personToEdit, EditPersonDescript Email updatedEmail = editPersonDescriptor.getEmail().orElse(personToEdit.getEmail()); Address updatedAddress = editPersonDescriptor.getAddress().orElse(personToEdit.getAddress()); Set updatedTags = editPersonDescriptor.getTags().orElse(personToEdit.getTags()); - List updatedNotes = editPersonDescriptor.getNotes().orElse(personToEdit.getNotes()); - return new Person(updatedName, updatedPhone, updatedEmail, updatedAddress, updatedTags, updatedNotes); + List updatedStrengthNotes = editPersonDescriptor.getMiscellaneous().orElse(personToEdit.getStrengths()); + List updatedWeaknessNotes = editPersonDescriptor.getMiscellaneous().orElse(personToEdit.getWeaknesses()); + List updatedMisc = editPersonDescriptor.getMiscellaneous().orElse(personToEdit.getMiscellaneous()); + return new Person(updatedName, updatedPhone, updatedEmail, updatedAddress, updatedTags, + updatedStrengthNotes, updatedWeaknessNotes, updatedMisc); } @Override @@ -132,7 +135,9 @@ public static class EditPersonDescriptor { private Email email; private Address address; private Set tags; - private List notes; + private List strengths; + private List weaknesses; + private List miscellaneous; public EditPersonDescriptor() {} @@ -146,7 +151,9 @@ public EditPersonDescriptor(EditPersonDescriptor toCopy) { setEmail(toCopy.email); setAddress(toCopy.address); setTags(toCopy.tags); - setNotes(toCopy.notes); + setStrengths(toCopy.strengths); + setWeaknesses(toCopy.weaknesses); + setMiscellaneous(toCopy.miscellaneous); } /** @@ -196,6 +203,30 @@ public void setTags(Set tags) { this.tags = (tags != null) ? new HashSet<>(tags) : null; } + /** + * Sets {@code strengths} to this object's {@code strengths}. + * A defensive copy of {@code strengths} is used internally. + */ + public void setStrengths(List strengths) { + this.strengths = (strengths != null) ? new ArrayList<>(strengths) : null; + } + + /** + * Sets {@code weaknesses} to this object's {@code weaknesses}. + * A defensive copy of {@code weaknesses} is used internally. + */ + public void setWeaknesses(List weaknesses) { + this.weaknesses = (weaknesses != null) ? new ArrayList<>(weaknesses) : null; + } + + /** + * Sets {@code miscellaneous} to this object's {@code miscellaneous}. + * A defensive copy of {@code miscellaneous} is used internally. + */ + public void setMiscellaneous(List miscellaneous) { + this.miscellaneous = (miscellaneous != null) ? new ArrayList<>(miscellaneous) : null; + } + /** * Returns an unmodifiable tag set, which throws {@code UnsupportedOperationException} * if modification is attempted. @@ -206,20 +237,29 @@ public Optional> getTags() { } /** - * Sets {@code notes} to this object's {@code notes}. - * A defensive copy of {@code notes} is used internally. + * Returns an unmodifiable note list, which throws {@code UnsupportedOperationException} + * if modification is attempted. + * Returns {@code Optional#empty()} if {@code strengths} is null. */ - public void setNotes(List notes) { - this.notes = (notes != null) ? new ArrayList<>(notes) : null; + public Optional> getStrengths() { + return (miscellaneous != null) ? Optional.of(Collections.unmodifiableList(strengths)) : Optional.empty(); + } + /** + * Returns an unmodifiable note list, which throws {@code UnsupportedOperationException} + * if modification is attempted. + * Returns {@code Optional#empty()} if {@code weaknesses} is null. + */ + public Optional> getWeaknesses() { + return (miscellaneous != null) ? Optional.of(Collections.unmodifiableList(weaknesses)) : Optional.empty(); } - /** * Returns an unmodifiable note list, which throws {@code UnsupportedOperationException} * if modification is attempted. * Returns {@code Optional#empty()} if {@code notes} is null. */ - public Optional> getNotes() { - return (notes != null) ? Optional.of(Collections.unmodifiableList(notes)) : Optional.empty(); + public Optional> getMiscellaneous() { + return (miscellaneous != null) + ? Optional.of(Collections.unmodifiableList(miscellaneous)) : Optional.empty(); } @Override @@ -242,7 +282,9 @@ && getPhone().equals(e.getPhone()) && getEmail().equals(e.getEmail()) && getAddress().equals(e.getAddress()) && getTags().equals(e.getTags()) - && getNotes().equals(e.getNotes()); + && getStrengths().equals(e.getStrengths()) + && getWeaknesses().equals(e.getWeaknesses()) + && getMiscellaneous().equals(e.getMiscellaneous()); } } } diff --git a/src/main/java/seedu/address/logic/parser/AddCommandParser.java b/src/main/java/seedu/address/logic/parser/AddCommandParser.java index c21f23a0af8..1e4e500978b 100644 --- a/src/main/java/seedu/address/logic/parser/AddCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/AddCommandParser.java @@ -46,9 +46,11 @@ public AddCommand parse(String args) throws ParseException { Email email = ParserUtil.parseEmail(argMultimap.getValue(PREFIX_EMAIL).get()); Address address = ParserUtil.parseAddress(argMultimap.getValue(PREFIX_ADDRESS).get()); Set tagList = ParserUtil.parseTags(argMultimap.getAllValues(PREFIX_TAG)); - List noteList = new ArrayList<>(); + List strengthList = new ArrayList<>(); + List weaknessList = new ArrayList<>(); + List miscList = new ArrayList<>(); - Person person = new Person(name, phone, email, address, tagList, noteList); + Person person = new Person(name, phone, email, address, tagList, strengthList, weaknessList, miscList); return new AddCommand(person); } diff --git a/src/main/java/seedu/address/logic/parser/AddMiscCommandParser.java b/src/main/java/seedu/address/logic/parser/AddMiscCommandParser.java new file mode 100644 index 00000000000..dc6b1857399 --- /dev/null +++ b/src/main/java/seedu/address/logic/parser/AddMiscCommandParser.java @@ -0,0 +1,30 @@ +package seedu.address.logic.parser; + +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; + +import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.AddMiscCommand; +import seedu.address.logic.parser.exceptions.ParseException; +import seedu.address.model.note.Note; + +/** + * Parses input arguments and creates a new {@code AddMiscCommand} object + */ +public class AddMiscCommandParser implements Parser { + /** + * Parses the given {@code String} of arguments in the context of the {@code AddMiscCommand} + * and returns a {@code AddMiscCommand} object for execution. + * @throws ParseException if the user input does not conform the expected format + */ + public AddMiscCommand parse(String args) throws ParseException { + try { + String[] splitArgs = args.trim().split("\\s+", 2); + Index index = ParserUtil.parseIndex(splitArgs[0]); + Note note = ParserUtil.parseNote(splitArgs[1]); + return new AddMiscCommand(index, note); + } catch (ParseException | IndexOutOfBoundsException pe) { + throw new ParseException( + String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddMiscCommand.MESSAGE_USAGE), pe); + } + } +} diff --git a/src/main/java/seedu/address/logic/parser/AddStrengthCommandParser.java b/src/main/java/seedu/address/logic/parser/AddStrengthCommandParser.java new file mode 100644 index 00000000000..8006f3ddd85 --- /dev/null +++ b/src/main/java/seedu/address/logic/parser/AddStrengthCommandParser.java @@ -0,0 +1,30 @@ +package seedu.address.logic.parser; + +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; + +import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.AddStrengthCommand; +import seedu.address.logic.parser.exceptions.ParseException; +import seedu.address.model.note.Note; + +/** + * Parses input arguments and creates a new {@code AddStrengthCommand} object + */ +public class AddStrengthCommandParser implements Parser { + /** + * Parses the given {@code String} of arguments in the context of the {@code AddStrengthCommand} + * and returns a {@code AddStrengthCommand} object for execution. + * @throws ParseException if the user input does not conform the expected format + */ + public AddStrengthCommand parse(String args) throws ParseException { + try { + String[] splitArgs = args.trim().split("\\s+", 2); + Index index = ParserUtil.parseIndex(splitArgs[0]); + Note note = ParserUtil.parseNote(splitArgs[1]); + return new AddStrengthCommand(index, note); + } catch (ParseException | IndexOutOfBoundsException pe) { + throw new ParseException( + String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddStrengthCommand.MESSAGE_USAGE), pe); + } + } +} diff --git a/src/main/java/seedu/address/logic/parser/AddWeaknessCommandParser.java b/src/main/java/seedu/address/logic/parser/AddWeaknessCommandParser.java new file mode 100644 index 00000000000..4e48dc4d6c6 --- /dev/null +++ b/src/main/java/seedu/address/logic/parser/AddWeaknessCommandParser.java @@ -0,0 +1,30 @@ +package seedu.address.logic.parser; + +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; + +import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.AddWeaknessCommand; +import seedu.address.logic.parser.exceptions.ParseException; +import seedu.address.model.note.Note; + +/** + * Parses input arguments and creates a new {@code AddWeaknessCommand} object + */ +public class AddWeaknessCommandParser implements Parser { + /** + * Parses the given {@code String} of arguments in the context of the {@code AddNoteCommand} + * and returns a {@code AddNoteCommand} object for execution. + * @throws ParseException if the user input does not conform the expected format + */ + public AddWeaknessCommand parse(String args) throws ParseException { + try { + String[] splitArgs = args.trim().split("\\s+", 2); + Index index = ParserUtil.parseIndex(splitArgs[0]); + Note note = ParserUtil.parseNote(splitArgs[1]); + return new AddWeaknessCommand(index, note); + } catch (ParseException | IndexOutOfBoundsException pe) { + throw new ParseException( + String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddWeaknessCommand.MESSAGE_USAGE), pe); + } + } +} diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index 93633d9eaa9..a97c78e5433 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -7,15 +7,19 @@ import java.util.regex.Pattern; import seedu.address.logic.commands.AddCommand; -import seedu.address.logic.commands.AddNoteCommand; +import seedu.address.logic.commands.AddMiscCommand; +import seedu.address.logic.commands.AddStrengthCommand; import seedu.address.logic.commands.AddTagCommand; import seedu.address.logic.commands.AddTaskCommand; +import seedu.address.logic.commands.AddWeaknessCommand; import seedu.address.logic.commands.ClearCommand; import seedu.address.logic.commands.Command; import seedu.address.logic.commands.DeleteCommand; -import seedu.address.logic.commands.DeleteNoteCommand; +import seedu.address.logic.commands.DeleteMiscCommand; +import seedu.address.logic.commands.DeleteStrengthCommand; import seedu.address.logic.commands.DeleteTagCommand; import seedu.address.logic.commands.DeleteTaskCommand; +import seedu.address.logic.commands.DeleteWeaknessCommand; import seedu.address.logic.commands.EditCommand; import seedu.address.logic.commands.ExitCommand; import seedu.address.logic.commands.FindCommand; @@ -74,11 +78,23 @@ public Command parseCommand(String userInput) throws ParseException { case ListCommand.COMMAND_WORD: return new ListCommand(); - case AddNoteCommand.COMMAND_WORD: - return new AddNoteCommandParser().parse(arguments); + case AddStrengthCommand.COMMAND_WORD: + return new AddStrengthCommandParser().parse(arguments); - case DeleteNoteCommand.COMMAND_WORD: - return new DeleteNoteCommandParser().parse(arguments); + case AddWeaknessCommand.COMMAND_WORD: + return new AddWeaknessCommandParser().parse(arguments); + + case AddMiscCommand.COMMAND_WORD: + return new AddMiscCommandParser().parse(arguments); + + case DeleteStrengthCommand.COMMAND_WORD: + return new DeleteStrengthCommandParser().parse(arguments); + + case DeleteWeaknessCommand.COMMAND_WORD: + return new DeleteWeaknessCommandParser().parse(arguments); + + case DeleteMiscCommand.COMMAND_WORD: + return new DeleteMiscCommandParser().parse(arguments); case ExitCommand.COMMAND_WORD: return new ExitCommand(); diff --git a/src/main/java/seedu/address/logic/parser/DeleteMiscCommandParser.java b/src/main/java/seedu/address/logic/parser/DeleteMiscCommandParser.java new file mode 100644 index 00000000000..fa9caf5a1ab --- /dev/null +++ b/src/main/java/seedu/address/logic/parser/DeleteMiscCommandParser.java @@ -0,0 +1,30 @@ +package seedu.address.logic.parser; + +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; + +import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.DeleteMiscCommand; +import seedu.address.logic.parser.exceptions.ParseException; + +/** + * Parses input arguments and creates a new {@code DeleteMiscCommand} object + */ +public class DeleteMiscCommandParser implements Parser { + /** + * Parses the given {@code String} of arguments in the context of the {@code DeleteMiscCommand} + * and returns a {@code DeleteMiscCommand} object for execution. + * @throws ParseException if the user input does not conform the expected format + */ + @Override + public DeleteMiscCommand parse(String args) throws ParseException { + try { + String[] splitArgs = args.trim().split("\\s+", 2); + Index index = ParserUtil.parseIndex(splitArgs[0]); + Index noteIndex = ParserUtil.parseNoteIndex(splitArgs[1]); + return new DeleteMiscCommand(index, noteIndex); + } catch (ParseException | IndexOutOfBoundsException pe) { + throw new ParseException( + String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteMiscCommand.MESSAGE_USAGE), pe); + } + } +} diff --git a/src/main/java/seedu/address/logic/parser/DeleteStrengthCommandParser.java b/src/main/java/seedu/address/logic/parser/DeleteStrengthCommandParser.java new file mode 100644 index 00000000000..b6911a5f970 --- /dev/null +++ b/src/main/java/seedu/address/logic/parser/DeleteStrengthCommandParser.java @@ -0,0 +1,30 @@ +package seedu.address.logic.parser; + +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; + +import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.DeleteStrengthCommand; +import seedu.address.logic.parser.exceptions.ParseException; + +/** + * Parses input arguments and creates a new {@code DeleteStrengthCommand} object + */ +public class DeleteStrengthCommandParser implements Parser { + /** + * Parses the given {@code String} of arguments in the context of the {@code DeleteStrengthCommand} + * and returns a {@code DeleteStrengthCommand} object for execution. + * @throws ParseException if the user input does not conform the expected format + */ + @Override + public DeleteStrengthCommand parse(String args) throws ParseException { + try { + String[] splitArgs = args.trim().split("\\s+", 2); + Index index = ParserUtil.parseIndex(splitArgs[0]); + Index noteIndex = ParserUtil.parseNoteIndex(splitArgs[1]); + return new DeleteStrengthCommand(index, noteIndex); + } catch (ParseException | IndexOutOfBoundsException pe) { + throw new ParseException( + String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteStrengthCommand.MESSAGE_USAGE), pe); + } + } +} diff --git a/src/main/java/seedu/address/logic/parser/DeleteWeaknessCommandParser.java b/src/main/java/seedu/address/logic/parser/DeleteWeaknessCommandParser.java new file mode 100644 index 00000000000..29919eda204 --- /dev/null +++ b/src/main/java/seedu/address/logic/parser/DeleteWeaknessCommandParser.java @@ -0,0 +1,30 @@ +package seedu.address.logic.parser; + +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; + +import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.DeleteWeaknessCommand; +import seedu.address.logic.parser.exceptions.ParseException; + +/** + * Parses input arguments and creates a new {@code DeleteWeaknessCommand} object + */ +public class DeleteWeaknessCommandParser implements Parser { + /** + * Parses the given {@code String} of arguments in the context of the {@code DeleteWeaknessCommand} + * and returns a {@code DeleteWeaknessCommand} object for execution. + * @throws ParseException if the user input does not conform the expected format + */ + @Override + public DeleteWeaknessCommand parse(String args) throws ParseException { + try { + String[] splitArgs = args.trim().split("\\s+", 2); + Index index = ParserUtil.parseIndex(splitArgs[0]); + Index noteIndex = ParserUtil.parseNoteIndex(splitArgs[1]); + return new DeleteWeaknessCommand(index, noteIndex); + } catch (ParseException | IndexOutOfBoundsException pe) { + throw new ParseException( + String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteWeaknessCommand.MESSAGE_USAGE), pe); + } + } +} diff --git a/src/main/java/seedu/address/model/person/Person.java b/src/main/java/seedu/address/model/person/Person.java index 02d6b7f11f9..6ad7754a457 100644 --- a/src/main/java/seedu/address/model/person/Person.java +++ b/src/main/java/seedu/address/model/person/Person.java @@ -28,19 +28,24 @@ public class Person { // Data fields private final Address address; private final Set tags = new HashSet<>(); - private final List notes = new ArrayList<>(); + private final List strengths = new ArrayList<>(); + private final List weaknesses = new ArrayList<>(); + private final List miscellaneous = new ArrayList<>(); /** * Every field must be present and not null. */ - public Person(Name name, Phone phone, Email email, Address address, Set tags, List notes) { - requireAllNonNull(name, phone, email, address, tags); + public Person(Name name, Phone phone, Email email, Address address, Set tags, + List strength, List weaknesses, List misc) { + requireAllNonNull(name, phone, email, address, tags, strength, weaknesses, misc); this.name = name; this.phone = phone; this.email = email; this.address = address; this.tags.addAll(tags); - this.notes.addAll(notes); + this.strengths.addAll(strength); + this.weaknesses.addAll(weaknesses); + this.miscellaneous.addAll(misc); } public Name getName() { @@ -71,8 +76,22 @@ public Set getTags() { * Returns an immutable note list, which throws {@code UnsupportedOperationException} * if modification is attempted. */ - public List getNotes() { - return Collections.unmodifiableList(notes); + public List getStrengths() { + return Collections.unmodifiableList(strengths); + } + /** + * Returns an immutable note list, which throws {@code UnsupportedOperationException} + * if modification is attempted. + */ + public List getWeaknesses() { + return Collections.unmodifiableList(weaknesses); + } + /** + * Returns an immutable note list, which throws {@code UnsupportedOperationException} + * if modification is attempted. + */ + public List getMiscellaneous() { + return Collections.unmodifiableList(miscellaneous); } /** @@ -108,13 +127,15 @@ public boolean equals(Object other) { && otherPerson.getEmail().equals(getEmail()) && otherPerson.getAddress().equals(getAddress()) && otherPerson.getTags().equals(getTags()) - && otherPerson.getNotes().equals(getNotes()); + && otherPerson.getStrengths().equals(getStrengths()) + && otherPerson.getWeaknesses().equals(getWeaknesses()) + && otherPerson.getMiscellaneous().equals(getMiscellaneous()); } @Override public int hashCode() { // use this method for custom fields hashing instead of implementing your own - return Objects.hash(name, phone, email, address, tags, notes); + return Objects.hash(name, phone, email, address, tags, strengths, weaknesses, miscellaneous); } @Override @@ -134,10 +155,24 @@ public String toString() { tags.forEach(builder::append); } - List notes = getNotes(); - if (!notes.isEmpty()) { - builder.append("; Notes: "); - ListUtil.toIndexedStringList(notes) + List strengths = getStrengths(); + if (!strengths.isEmpty()) { + builder.append("; Strengths: "); + ListUtil.toIndexedStringList(strengths) + .forEach(builder::append); + } + + List weaknesses = getWeaknesses(); + if (!weaknesses.isEmpty()) { + builder.append("; Weaknesses: "); + ListUtil.toIndexedStringList(weaknesses) + .forEach(builder::append); + } + + List miscellaneous = getMiscellaneous(); + if (!miscellaneous.isEmpty()) { + builder.append("; Misc: "); + ListUtil.toIndexedStringList(miscellaneous) .forEach(builder::append); } return builder.toString(); diff --git a/src/main/java/seedu/address/model/util/SampleDataUtil.java b/src/main/java/seedu/address/model/util/SampleDataUtil.java index 151494c12e3..4daf2585e4d 100644 --- a/src/main/java/seedu/address/model/util/SampleDataUtil.java +++ b/src/main/java/seedu/address/model/util/SampleDataUtil.java @@ -29,22 +29,28 @@ public static Person[] getSamplePersons() { return new Person[] { new Person(new Name("Alex Yeoh"), new Phone("87438807"), new Email("alexyeoh@example.com"), new Address("Blk 30 Geylang Street 29, #06-40"), - getTagSet("friends"), getNoteList("likes bing chilling")), + getTagSet("friends"), getNoteList("good offence"), + getNoteList("bad defense"), getNoteList("likes bing chilling")), new Person(new Name("Bernice Yu"), new Phone("99272758"), new Email("berniceyu@example.com"), new Address("Blk 30 Lorong 3 Serangoon Gardens, #07-18"), - getTagSet("colleagues", "friends"), getNoteList("surgery scheduled today")), + getTagSet("colleagues", "friends"), getNoteList("good offence"), + getNoteList("bad defense"), getNoteList("surgery scheduled today")), new Person(new Name("Charlotte Oliveiro"), new Phone("93210283"), new Email("charlotte@example.com"), new Address("Blk 11 Ang Mo Kio Street 74, #11-04"), - getTagSet("neighbours"), getNoteList("birthday next Monday")), + getTagSet("neighbours"), getNoteList("good offence"), + getNoteList("bad defense"), getNoteList("birthday next Monday")), new Person(new Name("David Li"), new Phone("91031282"), new Email("lidavid@example.com"), new Address("Blk 436 Serangoon Gardens Street 26, #16-43"), - getTagSet("family"), getNoteList("buy a new phone")), + getTagSet("family"), getNoteList("good offence"), + getNoteList("bad defense"), getNoteList("buy a new phone")), new Person(new Name("Irfan Ibrahim"), new Phone("92492021"), new Email("irfan@example.com"), new Address("Blk 47 Tampines Street 20, #17-35"), - getTagSet("classmates"), getNoteList("play games together tonight")), + getTagSet("classmates"), getNoteList("good offence"), + getNoteList("bad defense"), getNoteList("play games together tonight")), new Person(new Name("Roy Balakrishnan"), new Phone("92624417"), new Email("royb@example.com"), new Address("Blk 45 Aljunied Street 85, #11-31"), - getTagSet("colleagues"), getNoteList("meeting with him this Sunday")) + getTagSet("colleagues"), getNoteList("good offence"), + getNoteList("bad defense"), getNoteList("meeting with him this Sunday")) }; } diff --git a/src/main/java/seedu/address/storage/JsonAdaptedPerson.java b/src/main/java/seedu/address/storage/JsonAdaptedPerson.java index 49c69ab7bea..639840fc69c 100644 --- a/src/main/java/seedu/address/storage/JsonAdaptedPerson.java +++ b/src/main/java/seedu/address/storage/JsonAdaptedPerson.java @@ -30,7 +30,9 @@ class JsonAdaptedPerson { private final String email; private final String address; private final List tagged = new ArrayList<>(); - private final List notes = new ArrayList<>(); + private final List strengths = new ArrayList<>(); + private final List weaknesses = new ArrayList<>(); + private final List misc = new ArrayList<>(); /** * Constructs a {@code JsonAdaptedPerson} with the given person details. */ @@ -38,7 +40,9 @@ class JsonAdaptedPerson { public JsonAdaptedPerson(@JsonProperty("name") String name, @JsonProperty("phone") String phone, @JsonProperty("email") String email, @JsonProperty("address") String address, @JsonProperty("tagged") List tagged, - @JsonProperty("notes") List notes) { + @JsonProperty("strengths") List strengths, + @JsonProperty("weaknesses") List weaknesses, + @JsonProperty("misc") List misc) { this.name = name; this.phone = phone; this.email = email; @@ -46,8 +50,14 @@ public JsonAdaptedPerson(@JsonProperty("name") String name, @JsonProperty("phone if (tagged != null) { this.tagged.addAll(tagged); } - if (notes != null) { - this.notes.addAll(notes); + if (strengths != null) { + this.strengths.addAll(strengths); + } + if (weaknesses != null) { + this.weaknesses.addAll(weaknesses); + } + if (misc != null) { + this.misc.addAll(misc); } } @@ -62,7 +72,7 @@ public JsonAdaptedPerson(Person source) { tagged.addAll(source.getTags().stream() .map(JsonAdaptedTag::new) .collect(Collectors.toList())); - notes.addAll(source.getNotes().stream() + misc.addAll(source.getMiscellaneous().stream() .map(JsonAdaptedNote::new) .collect(Collectors.toList())); } @@ -74,12 +84,20 @@ public JsonAdaptedPerson(Person source) { */ public Person toModelType() throws IllegalValueException { final List personTags = new ArrayList<>(); - final List personNotes = new ArrayList<>(); + final List personStrengths = new ArrayList<>(); + final List personWeaknesses = new ArrayList<>(); + final List personMisc = new ArrayList<>(); for (JsonAdaptedTag tag : tagged) { personTags.add(tag.toModelType()); } - for (JsonAdaptedNote note : notes) { - personNotes.add(note.toModelType()); + for (JsonAdaptedNote note : strengths) { + personStrengths.add(note.toModelType()); + } + for (JsonAdaptedNote note : weaknesses) { + personWeaknesses.add(note.toModelType()); + } + for (JsonAdaptedNote note : misc) { + personMisc.add(note.toModelType()); } if (name == null) { @@ -115,8 +133,11 @@ public Person toModelType() throws IllegalValueException { final Address modelAddress = new Address(address); final Set modelTags = new HashSet<>(personTags); - final List modelNotes = new ArrayList<>(personNotes); - return new Person(modelName, modelPhone, modelEmail, modelAddress, modelTags, modelNotes); + final List modelStrengths = new ArrayList<>(personStrengths); + final List modelWeaknesses = new ArrayList<>(personWeaknesses); + final List modelMisc = new ArrayList<>(personMisc); + return new Person(modelName, modelPhone, modelEmail, modelAddress, modelTags, modelStrengths, modelWeaknesses, + modelMisc); } } diff --git a/src/main/java/seedu/address/ui/PersonCard.java b/src/main/java/seedu/address/ui/PersonCard.java index 7ab155aeacb..666fd909b7e 100644 --- a/src/main/java/seedu/address/ui/PersonCard.java +++ b/src/main/java/seedu/address/ui/PersonCard.java @@ -43,7 +43,11 @@ public class PersonCard extends UiPart { @FXML private FlowPane tags; @FXML - private Label notes; + private Label strengths; + @FXML + private Label weaknesses; + @FXML + private Label misc; /** * Creates a {@code PersonCode} with the given {@code Person} and index to display. @@ -59,7 +63,13 @@ public PersonCard(Person person, int displayedIndex) { person.getTags().stream() .sorted(Comparator.comparing(tag -> tag.tagName)) .forEach(tag -> tags.getChildren().add(new Label(tag.tagName))); - notes.setText(ListUtil.toIndexedStringList(person.getNotes()) + strengths.setText(ListUtil.toIndexedStringList(person.getStrengths()) + .stream() + .collect(Collectors.joining("\n"))); + weaknesses.setText(ListUtil.toIndexedStringList(person.getWeaknesses()) + .stream() + .collect(Collectors.joining("\n"))); + misc.setText(ListUtil.toIndexedStringList(person.getMiscellaneous()) .stream() .collect(Collectors.joining("\n"))); } diff --git a/src/main/resources/view/PersonListCard.fxml b/src/main/resources/view/PersonListCard.fxml index 6ba0abaa3ed..1e95b629db1 100644 --- a/src/main/resources/view/PersonListCard.fxml +++ b/src/main/resources/view/PersonListCard.fxml @@ -7,32 +7,56 @@ + - + - + - + - + + + diff --git a/src/test/data/JsonSerializableAddressBookTest/duplicatePersonAddressBook.json b/src/test/data/JsonSerializableAddressBookTest/duplicatePersonAddressBook.json index 96343cb61f3..e41ea864489 100644 --- a/src/test/data/JsonSerializableAddressBookTest/duplicatePersonAddressBook.json +++ b/src/test/data/JsonSerializableAddressBookTest/duplicatePersonAddressBook.json @@ -5,12 +5,16 @@ "email": "alice@example.com", "address": "123, Jurong West Ave 6, #08-111", "tagged": [ "friends" ], - "notes": [ "likes bing chilling" ] + "strengths": [ "good offence" ], + "weaknesses": [ "bad defense" ], + "misc": [ "likes bing chilling" ] }, { "name": "Alice Pauline", "phone": "94351253", "email": "pauline@example.com", "address": "4th street", - "notes": [ "likes bing chilling" ] + "strengths": [ "good offence" ], + "weaknesses": [ "bad defense" ], + "misc": [ "likes bing chilling" ] } ] } diff --git a/src/test/data/JsonSerializableAddressBookTest/typicalPersonsAddressBook.json b/src/test/data/JsonSerializableAddressBookTest/typicalPersonsAddressBook.json index 77bff950381..d49d666d775 100644 --- a/src/test/data/JsonSerializableAddressBookTest/typicalPersonsAddressBook.json +++ b/src/test/data/JsonSerializableAddressBookTest/typicalPersonsAddressBook.json @@ -6,48 +6,62 @@ "email" : "alice@example.com", "address" : "123, Jurong West Ave 6, #08-111", "tagged" : [ "friends" ], - "notes" : [ ] + "strengths" : ["Good Defense", "Great Stamina"], + "weaknesses" : ["Bad Offense", "Poor Endurance"], + "misc" : ["birthday tomorrow", "likes Python"] }, { "name" : "Benson Meier", "phone" : "98765432", "email" : "johnd@example.com", "address" : "311, Clementi Ave 2, #02-25", "tagged" : [ "owesMoney", "friends" ], - "notes" : [ "birthday tomorrow", "likes Python" ] + "strengths" : ["Good Defense", "Great Stamina"], + "weaknesses" : ["Bad Offense", "Poor Endurance"], + "misc" : [ "birthday tomorrow", "likes Python" ] }, { "name" : "Carl Kurz", "phone" : "95352563", "email" : "heinz@example.com", "address" : "wall street", "tagged" : [ ], - "notes" : [ ] + "strengths" : [ ], + "weaknesses" : [ ], + "misc" : [ ] }, { "name" : "Daniel Meier", "phone" : "87652533", "email" : "cornelia@example.com", "address" : "10th street", "tagged" : [ "friends" ], - "notes" : [ "likes bing chilling" ] + "strengths" : ["good offense", "good stamina"], + "weaknesses" : ["poor endurance"], + "misc" : [ "likes bing chilling" ] }, { "name" : "Elle Meyer", "phone" : "9482224", "email" : "werner@example.com", "address" : "michegan ave", "tagged" : [ ], - "notes" : [ ] + "strengths" : [ ], + "weaknesses" : [ ], + "misc" : [ ] }, { "name" : "Fiona Kunz", "phone" : "9482427", "email" : "lydia@example.com", "address" : "little tokyo", "tagged" : [ ], - "notes" : [ ] + "strengths" : [ ], + "weaknesses" : [ ], + "misc" : [ ] }, { "name" : "George Best", "phone" : "9482442", "email" : "anna@example.com", "address" : "4th street", "tagged" : [ ], - "notes" : [ ] + "strengths" : [ ], + "weaknesses" : [ ], + "misc" : [ ] } ] } diff --git a/src/test/java/seedu/address/logic/commands/AddNoteCommandTest.java b/src/test/java/seedu/address/logic/commands/AddMiscCommandTest.java similarity index 80% rename from src/test/java/seedu/address/logic/commands/AddNoteCommandTest.java rename to src/test/java/seedu/address/logic/commands/AddMiscCommandTest.java index ccd179b2fd1..c2977702b0d 100644 --- a/src/test/java/seedu/address/logic/commands/AddNoteCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddMiscCommandTest.java @@ -25,7 +25,7 @@ import seedu.address.model.person.Person; import seedu.address.testutil.PersonBuilder; -public class AddNoteCommandTest { +public class AddMiscCommandTest { private static final String NOTE_STUB_1 = "Some note 1"; private static final String NOTE_STUB_2 = "Some note 2"; @@ -33,16 +33,16 @@ public class AddNoteCommandTest { private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); @Test - public void execute_addNoteUnfilteredList_success() { + public void execute_addMiscUnfilteredList_success() { Person firstPerson = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); - Person editedPerson = new PersonBuilder(firstPerson).withNotes(NOTE_STUB_1).build(); + Person editedPerson = new PersonBuilder(firstPerson).withMisc(NOTE_STUB_1).build(); - AddNoteCommand addNoteCommand = new AddNoteCommand( + AddMiscCommand addMiscCommand = new AddMiscCommand( INDEX_FIRST_PERSON, - new Note(editedPerson.getNotes().get(0).note)); + new Note(NOTE_STUB_1)); String expectedMessage = String.format( - seedu.address.logic.commands.AddNoteCommand.MESSAGE_SUCCESS, editedPerson); + AddMiscCommand.MESSAGE_SUCCESS, editedPerson); Model expectedModel = new ModelManager( new AddressBook(model.getAddressBook()), @@ -50,15 +50,15 @@ public void execute_addNoteUnfilteredList_success() { new UserPrefs()); expectedModel.setPerson(firstPerson, editedPerson); - assertCommandSuccess(addNoteCommand, model, expectedMessage, expectedModel); + assertCommandSuccess(addMiscCommand, model, expectedMessage, expectedModel); } @Test public void execute_invalidPersonIndexUnfilteredList_failure() { Index outOfBoundIndex = Index.fromOneBased(model.getFilteredPersonList().size() + 1); - AddNoteCommand addNoteCommand = new AddNoteCommand(outOfBoundIndex, new Note(VALID_NOTE_BOB)); + AddMiscCommand addMiscCommand = new AddMiscCommand(outOfBoundIndex, new Note(VALID_NOTE_BOB)); - assertCommandFailure(addNoteCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + assertCommandFailure(addMiscCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); } /** @@ -72,18 +72,18 @@ public void execute_invalidPersonIndexFilteredList_failure() { // ensures that outOfBoundIndex is still in bounds of address book list assertTrue(outOfBoundIndex.getZeroBased() < model.getAddressBook().getPersonList().size()); - AddNoteCommand addNoteCommand = new AddNoteCommand(outOfBoundIndex, new Note(VALID_NOTE_BOB)); + AddMiscCommand addMiscCommand = new AddMiscCommand(outOfBoundIndex, new Note(VALID_NOTE_BOB)); - assertCommandFailure(addNoteCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + assertCommandFailure(addMiscCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); } @Test public void equals() { - final AddNoteCommand standardCommand = new AddNoteCommand(INDEX_FIRST_PERSON, + final AddMiscCommand standardCommand = new AddMiscCommand(INDEX_FIRST_PERSON, new Note(VALID_NOTE_AMY)); // same values -> returns true - AddNoteCommand commandWithSameValues = new AddNoteCommand(INDEX_FIRST_PERSON, + AddMiscCommand commandWithSameValues = new AddMiscCommand(INDEX_FIRST_PERSON, new Note(VALID_NOTE_AMY)); assertTrue(standardCommand.equals(commandWithSameValues)); @@ -97,11 +97,11 @@ public void equals() { assertFalse(standardCommand.equals(new ClearCommand())); // different index -> returns false - assertFalse(standardCommand.equals(new AddNoteCommand(INDEX_SECOND_PERSON, + assertFalse(standardCommand.equals(new AddMiscCommand(INDEX_SECOND_PERSON, new Note(VALID_NOTE_AMY)))); // different Note -> returns false - assertFalse(standardCommand.equals(new AddNoteCommand(INDEX_FIRST_PERSON, + assertFalse(standardCommand.equals(new AddMiscCommand(INDEX_FIRST_PERSON, new Note(VALID_NOTE_BOB)))); } } diff --git a/src/test/java/seedu/address/logic/commands/AddStrengthCommandTest.java b/src/test/java/seedu/address/logic/commands/AddStrengthCommandTest.java new file mode 100644 index 00000000000..6c06ed0fc29 --- /dev/null +++ b/src/test/java/seedu/address/logic/commands/AddStrengthCommandTest.java @@ -0,0 +1,107 @@ +package seedu.address.logic.commands; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static seedu.address.logic.commands.CommandTestUtil.VALID_NOTE_AMY; +import static seedu.address.logic.commands.CommandTestUtil.VALID_NOTE_BOB; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; +import static seedu.address.logic.commands.CommandTestUtil.showPersonAtIndex; +import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; +import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_PERSON; +import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; + +import org.junit.jupiter.api.Test; + +import seedu.address.commons.core.Messages; +import seedu.address.commons.core.index.Index; +import seedu.address.model.AddressBook; +import seedu.address.model.Model; +import seedu.address.model.ModelManager; +import seedu.address.model.TaskBook; +import seedu.address.model.UserPrefs; +import seedu.address.model.note.Note; +import seedu.address.model.person.Person; +import seedu.address.testutil.PersonBuilder; + +public class AddStrengthCommandTest { + + private static final String NOTE_STUB_1 = "Some note 1"; + private static final String NOTE_STUB_2 = "Some note 2"; + + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + + @Test + public void execute_addStrengthUnfilteredList_success() { + Person firstPerson = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); + Person editedPerson = new PersonBuilder(firstPerson).withStrengths(NOTE_STUB_1).build(); + + AddStrengthCommand addStrengthCommand = new AddStrengthCommand( + INDEX_FIRST_PERSON, + new Note(NOTE_STUB_1)); + + String expectedMessage = String.format( + AddStrengthCommand.MESSAGE_SUCCESS, editedPerson); + + Model expectedModel = new ModelManager( + new AddressBook(model.getAddressBook()), + new TaskBook(model.getTaskBook()), + new UserPrefs()); + expectedModel.setPerson(firstPerson, editedPerson); + + assertCommandSuccess(addStrengthCommand, model, expectedMessage, expectedModel); + } + + @Test + public void execute_invalidPersonIndexUnfilteredList_failure() { + Index outOfBoundIndex = Index.fromOneBased(model.getFilteredPersonList().size() + 1); + AddStrengthCommand addStrengthCommand = new AddStrengthCommand(outOfBoundIndex, new Note(VALID_NOTE_BOB)); + + assertCommandFailure(addStrengthCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + } + + /** + * Edit filtered list where index is larger than size of filtered list, + * but smaller than size of address book + */ + @Test + public void execute_invalidPersonIndexFilteredList_failure() { + showPersonAtIndex(model, INDEX_FIRST_PERSON); + Index outOfBoundIndex = INDEX_SECOND_PERSON; + // ensures that outOfBoundIndex is still in bounds of address book list + assertTrue(outOfBoundIndex.getZeroBased() < model.getAddressBook().getPersonList().size()); + + AddStrengthCommand addStrengthCommand = new AddStrengthCommand(outOfBoundIndex, new Note(VALID_NOTE_BOB)); + + assertCommandFailure(addStrengthCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + } + + @Test + public void equals() { + final AddStrengthCommand standardCommand = new AddStrengthCommand(INDEX_FIRST_PERSON, + new Note(VALID_NOTE_AMY)); + + // same values -> returns true + AddStrengthCommand commandWithSameValues = new AddStrengthCommand(INDEX_FIRST_PERSON, + new Note(VALID_NOTE_AMY)); + assertTrue(standardCommand.equals(commandWithSameValues)); + + // same object -> returns true + assertTrue(standardCommand.equals(standardCommand)); + + // null -> returns false + assertFalse(standardCommand.equals(null)); + + // different types -> returns false + assertFalse(standardCommand.equals(new ClearCommand())); + + // different index -> returns false + assertFalse(standardCommand.equals(new AddStrengthCommand(INDEX_SECOND_PERSON, + new Note(VALID_NOTE_AMY)))); + + // different Note -> returns false + assertFalse(standardCommand.equals(new AddStrengthCommand(INDEX_FIRST_PERSON, + new Note(VALID_NOTE_BOB)))); + } +} diff --git a/src/test/java/seedu/address/logic/commands/AddWeaknessCommandTest.java b/src/test/java/seedu/address/logic/commands/AddWeaknessCommandTest.java new file mode 100644 index 00000000000..a60b6cd3861 --- /dev/null +++ b/src/test/java/seedu/address/logic/commands/AddWeaknessCommandTest.java @@ -0,0 +1,107 @@ +package seedu.address.logic.commands; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static seedu.address.logic.commands.CommandTestUtil.VALID_NOTE_AMY; +import static seedu.address.logic.commands.CommandTestUtil.VALID_NOTE_BOB; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; +import static seedu.address.logic.commands.CommandTestUtil.showPersonAtIndex; +import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; +import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_PERSON; +import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; + +import org.junit.jupiter.api.Test; + +import seedu.address.commons.core.Messages; +import seedu.address.commons.core.index.Index; +import seedu.address.model.AddressBook; +import seedu.address.model.Model; +import seedu.address.model.ModelManager; +import seedu.address.model.TaskBook; +import seedu.address.model.UserPrefs; +import seedu.address.model.note.Note; +import seedu.address.model.person.Person; +import seedu.address.testutil.PersonBuilder; + +public class AddWeaknessCommandTest { + + private static final String NOTE_STUB_1 = "Some note 1"; + private static final String NOTE_STUB_2 = "Some note 2"; + + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + + @Test + public void execute_addWeaknessUnfilteredList_success() { + Person firstPerson = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); + Person editedPerson = new PersonBuilder(firstPerson).withWeaknesses(NOTE_STUB_1).build(); + + AddWeaknessCommand addWeaknessCommand = new AddWeaknessCommand( + INDEX_FIRST_PERSON, + new Note(NOTE_STUB_1)); + + String expectedMessage = String.format( + AddWeaknessCommand.MESSAGE_SUCCESS, editedPerson); + + Model expectedModel = new ModelManager( + new AddressBook(model.getAddressBook()), + new TaskBook(model.getTaskBook()), + new UserPrefs()); + expectedModel.setPerson(firstPerson, editedPerson); + + assertCommandSuccess(addWeaknessCommand, model, expectedMessage, expectedModel); + } + + @Test + public void execute_invalidPersonIndexUnfilteredList_failure() { + Index outOfBoundIndex = Index.fromOneBased(model.getFilteredPersonList().size() + 1); + AddWeaknessCommand addWeaknessCommand = new AddWeaknessCommand(outOfBoundIndex, new Note(VALID_NOTE_BOB)); + + assertCommandFailure(addWeaknessCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + } + + /** + * Edit filtered list where index is larger than size of filtered list, + * but smaller than size of address book + */ + @Test + public void execute_invalidPersonIndexFilteredList_failure() { + showPersonAtIndex(model, INDEX_FIRST_PERSON); + Index outOfBoundIndex = INDEX_SECOND_PERSON; + // ensures that outOfBoundIndex is still in bounds of address book list + assertTrue(outOfBoundIndex.getZeroBased() < model.getAddressBook().getPersonList().size()); + + AddWeaknessCommand addWeaknessCommand = new AddWeaknessCommand(outOfBoundIndex, new Note(VALID_NOTE_BOB)); + + assertCommandFailure(addWeaknessCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + } + + @Test + public void equals() { + final AddWeaknessCommand standardCommand = new AddWeaknessCommand(INDEX_FIRST_PERSON, + new Note(VALID_NOTE_AMY)); + + // same values -> returns true + AddWeaknessCommand commandWithSameValues = new AddWeaknessCommand(INDEX_FIRST_PERSON, + new Note(VALID_NOTE_AMY)); + assertTrue(standardCommand.equals(commandWithSameValues)); + + // same object -> returns true + assertTrue(standardCommand.equals(standardCommand)); + + // null -> returns false + assertFalse(standardCommand.equals(null)); + + // different types -> returns false + assertFalse(standardCommand.equals(new ClearCommand())); + + // different index -> returns false + assertFalse(standardCommand.equals(new AddWeaknessCommand(INDEX_SECOND_PERSON, + new Note(VALID_NOTE_AMY)))); + + // different Note -> returns false + assertFalse(standardCommand.equals(new AddNoteCommand(INDEX_FIRST_PERSON, + new Note(VALID_NOTE_BOB)))); + } +} diff --git a/src/test/java/seedu/address/logic/commands/DeleteNoteCommandTest.java b/src/test/java/seedu/address/logic/commands/DeleteMiscCommandTest.java similarity index 57% rename from src/test/java/seedu/address/logic/commands/DeleteNoteCommandTest.java rename to src/test/java/seedu/address/logic/commands/DeleteMiscCommandTest.java index 3da6d0ee0de..8a251bb6001 100644 --- a/src/test/java/seedu/address/logic/commands/DeleteNoteCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/DeleteMiscCommandTest.java @@ -26,72 +26,73 @@ /** * Contains integration tests (interaction with the Model) for - * {@code DeleteNoteCommand}. + * {@code DeleteMiscCommand}. */ -public class DeleteNoteCommandTest { +public class DeleteMiscCommandTest { private final Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); @Test public void constructor_nullIndex_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> new DeleteNoteCommand(null, null)); + assertThrows(NullPointerException.class, () -> new DeleteMiscCommand(null, null)); } @Test public void execute_validNoteIndexUnfilteredList_success() throws Exception { - Person personToDeleteNoteFrom = model.getFilteredPersonList().get(INDEX_SECOND_PERSON.getZeroBased()); - List newNotes = new ArrayList<>(personToDeleteNoteFrom.getNotes()); - newNotes.remove(NOTE_FIRST_INDEX.getZeroBased()); - Person personWithModifiedNote = new Person(personToDeleteNoteFrom.getName(), personToDeleteNoteFrom.getPhone(), - personToDeleteNoteFrom.getEmail(), personToDeleteNoteFrom.getAddress(), - personToDeleteNoteFrom.getTags(), newNotes); + Person personToDeleteMiscFrom = model.getFilteredPersonList().get(INDEX_SECOND_PERSON.getZeroBased()); + List newMisc = new ArrayList<>(personToDeleteMiscFrom.getMiscellaneous()); + newMisc.remove(NOTE_FIRST_INDEX.getZeroBased()); + Person personWithModifiedMisc = new Person(personToDeleteMiscFrom.getName(), personToDeleteMiscFrom.getPhone(), + personToDeleteMiscFrom.getEmail(), personToDeleteMiscFrom.getAddress(), + personToDeleteMiscFrom.getTags(), + personToDeleteMiscFrom.getStrengths(), personToDeleteMiscFrom.getWeaknesses(), newMisc); - DeleteNoteCommand deleteNoteCommand = new DeleteNoteCommand(INDEX_SECOND_PERSON, NOTE_FIRST_INDEX); + DeleteMiscCommand deleteMiscCommand = new DeleteMiscCommand(INDEX_SECOND_PERSON, NOTE_FIRST_INDEX); - String expectedMessage = String.format(DeleteNoteCommand.MESSAGE_SUCCESS, personWithModifiedNote); + String expectedMessage = String.format(DeleteMiscCommand.MESSAGE_SUCCESS, personWithModifiedMisc); ModelManager expectedModel = new ModelManager(model.getAddressBook(), model.getTaskBook(), new UserPrefs()); - deleteNoteCommand.execute(expectedModel); - assertCommandSuccess(deleteNoteCommand, model, expectedMessage, expectedModel); + deleteMiscCommand.execute(expectedModel); + assertCommandSuccess(deleteMiscCommand, model, expectedMessage, expectedModel); } @Test public void execute_invalidNoteIndexUnfilteredList_throwsCommandException() { Index outOfBoundNoteIndex = Index.fromOneBased(model.getFilteredPersonList().get( - INDEX_SECOND_PERSON.getZeroBased()).getNotes().size() + 1); - DeleteNoteCommand deleteNoteCommand = new DeleteNoteCommand(INDEX_SECOND_PERSON, outOfBoundNoteIndex); + INDEX_SECOND_PERSON.getZeroBased()).getMiscellaneous().size() + 1); + DeleteMiscCommand deleteMiscCommand = new DeleteMiscCommand(INDEX_SECOND_PERSON, outOfBoundNoteIndex); - assertCommandFailure(deleteNoteCommand, model, Messages.MESSAGE_INVALID_NOTE_DISPLAYED_INDEX); + assertCommandFailure(deleteMiscCommand, model, Messages.MESSAGE_INVALID_NOTE_DISPLAYED_INDEX); } @Test public void execute_invalidPersonIndexUnfilteredList_throwsCommandException() { Index outOfBoundNoteIndex = Index.fromOneBased(model.getFilteredPersonList().size() + 1); - DeleteNoteCommand deleteNoteCommand = new DeleteNoteCommand(outOfBoundNoteIndex, NOTE_FIRST_INDEX); + DeleteMiscCommand deleteMiscCommand = new DeleteMiscCommand(outOfBoundNoteIndex, NOTE_FIRST_INDEX); - assertCommandFailure(deleteNoteCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + assertCommandFailure(deleteMiscCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); } @Test public void equals() { - DeleteNoteCommand deleteNoteFirstCommand = new DeleteNoteCommand(INDEX_SECOND_PERSON, NOTE_FIRST_INDEX); - DeleteNoteCommand deleteNoteSecondCommand = new DeleteNoteCommand(INDEX_SECOND_PERSON, NOTE_SECOND_INDEX); + DeleteMiscCommand deleteMiscFirstCommand = new DeleteMiscCommand(INDEX_SECOND_PERSON, NOTE_FIRST_INDEX); + DeleteMiscCommand deleteMiscSecondCommand = new DeleteMiscCommand(INDEX_SECOND_PERSON, NOTE_SECOND_INDEX); // same object -> returns true - assertTrue(deleteNoteFirstCommand.equals(deleteNoteFirstCommand)); + assertTrue(deleteMiscFirstCommand.equals(deleteMiscFirstCommand)); // same values -> returns true - DeleteNoteCommand deleteNoteFirstCommandCopy = new DeleteNoteCommand(INDEX_SECOND_PERSON, NOTE_FIRST_INDEX); - assertTrue(deleteNoteFirstCommand.equals(deleteNoteFirstCommandCopy)); + DeleteMiscCommand deleteMiscFirstCommandCopy = new DeleteMiscCommand(INDEX_SECOND_PERSON, NOTE_FIRST_INDEX); + assertTrue(deleteMiscFirstCommand.equals(deleteMiscFirstCommandCopy)); // different types -> returns false - assertFalse(deleteNoteFirstCommand.equals(1)); + assertFalse(deleteMiscFirstCommand.equals(1)); // null -> returns false - assertFalse(deleteNoteFirstCommand.equals(null)); + assertFalse(deleteMiscFirstCommand.equals(null)); // different person -> returns false - assertFalse(deleteNoteFirstCommand.equals(deleteNoteSecondCommand)); + assertFalse(deleteMiscFirstCommand.equals(deleteMiscSecondCommand)); } } diff --git a/src/test/java/seedu/address/logic/commands/DeleteStrengthCommandTest.java b/src/test/java/seedu/address/logic/commands/DeleteStrengthCommandTest.java new file mode 100644 index 00000000000..d6d39510ccf --- /dev/null +++ b/src/test/java/seedu/address/logic/commands/DeleteStrengthCommandTest.java @@ -0,0 +1,103 @@ +package seedu.address.logic.commands; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; +import static seedu.address.testutil.Assert.assertThrows; +import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_PERSON; +import static seedu.address.testutil.TypicalIndexes.NOTE_FIRST_INDEX; +import static seedu.address.testutil.TypicalIndexes.NOTE_SECOND_INDEX; +import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.jupiter.api.Test; + +import seedu.address.commons.core.Messages; +import seedu.address.commons.core.index.Index; +import seedu.address.model.Model; +import seedu.address.model.ModelManager; +import seedu.address.model.UserPrefs; +import seedu.address.model.note.Note; +import seedu.address.model.person.Person; + +/** + * Contains integration tests (interaction with the Model) for + * {@code DeleteStrengthCommand}. + */ +public class DeleteStrengthCommandTest { + + private final Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + + @Test + public void constructor_nullIndex_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> new DeleteStrengthCommand(null, null)); + } + + @Test + public void execute_validNoteIndexUnfilteredList_success() throws Exception { + Person personToDeleteStrengthFrom = model.getFilteredPersonList().get(INDEX_SECOND_PERSON.getZeroBased()); + List newStrengths = new ArrayList<>(personToDeleteStrengthFrom.getStrengths()); + newStrengths.remove(NOTE_FIRST_INDEX.getZeroBased()); + Person personWithModifiedStrength = new Person(personToDeleteStrengthFrom.getName(), + personToDeleteStrengthFrom.getPhone(), + personToDeleteStrengthFrom.getEmail(), personToDeleteStrengthFrom.getAddress(), + personToDeleteStrengthFrom.getTags(), newStrengths, + personToDeleteStrengthFrom.getWeaknesses(), personToDeleteStrengthFrom.getMiscellaneous()); + + DeleteStrengthCommand deleteStrengthCommand = new DeleteStrengthCommand(INDEX_SECOND_PERSON, NOTE_FIRST_INDEX); + + String expectedMessage = String.format(DeleteStrengthCommand.MESSAGE_SUCCESS, personWithModifiedStrength); + + ModelManager expectedModel = new ModelManager(model.getAddressBook(), + model.getTaskBook(), new UserPrefs()); + deleteStrengthCommand.execute(expectedModel); + assertCommandSuccess(deleteStrengthCommand, model, expectedMessage, expectedModel); + } + + @Test + public void execute_invalidNoteIndexUnfilteredList_throwsCommandException() { + Index outOfBoundNoteIndex = Index.fromOneBased(model.getFilteredPersonList().get( + INDEX_SECOND_PERSON.getZeroBased()).getStrengths().size() + 1); + DeleteStrengthCommand deleteStrengthCommand = new DeleteStrengthCommand(INDEX_SECOND_PERSON, + outOfBoundNoteIndex); + + assertCommandFailure(deleteStrengthCommand, model, Messages.MESSAGE_INVALID_NOTE_DISPLAYED_INDEX); + } + + @Test + public void execute_invalidPersonIndexUnfilteredList_throwsCommandException() { + Index outOfBoundNoteIndex = Index.fromOneBased(model.getFilteredPersonList().size() + 1); + DeleteStrengthCommand deleteStrengthCommand = new DeleteStrengthCommand(outOfBoundNoteIndex, NOTE_FIRST_INDEX); + + assertCommandFailure(deleteStrengthCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + } + + @Test + public void equals() { + DeleteStrengthCommand deleteStrengthFirstCommand = + new DeleteStrengthCommand(INDEX_SECOND_PERSON, NOTE_FIRST_INDEX); + DeleteStrengthCommand deleteStrengthSecondCommand = + new DeleteStrengthCommand(INDEX_SECOND_PERSON, NOTE_SECOND_INDEX); + + // same object -> returns true + assertTrue(deleteStrengthFirstCommand.equals(deleteStrengthFirstCommand)); + + // same values -> returns true + DeleteStrengthCommand deleteStrengthFirstCommandCopy = + new DeleteStrengthCommand(INDEX_SECOND_PERSON, NOTE_FIRST_INDEX); + assertTrue(deleteStrengthFirstCommand.equals(deleteStrengthFirstCommandCopy)); + + // different types -> returns false + assertFalse(deleteStrengthFirstCommand.equals(1)); + + // null -> returns false + assertFalse(deleteStrengthFirstCommand.equals(null)); + + // different person -> returns false + assertFalse(deleteStrengthFirstCommand.equals(deleteStrengthSecondCommand)); + } +} diff --git a/src/test/java/seedu/address/logic/commands/DeleteWeaknessCommandTest.java b/src/test/java/seedu/address/logic/commands/DeleteWeaknessCommandTest.java new file mode 100644 index 00000000000..99afa901a02 --- /dev/null +++ b/src/test/java/seedu/address/logic/commands/DeleteWeaknessCommandTest.java @@ -0,0 +1,103 @@ +package seedu.address.logic.commands; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; +import static seedu.address.testutil.Assert.assertThrows; +import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_PERSON; +import static seedu.address.testutil.TypicalIndexes.NOTE_FIRST_INDEX; +import static seedu.address.testutil.TypicalIndexes.NOTE_SECOND_INDEX; +import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.jupiter.api.Test; + +import seedu.address.commons.core.Messages; +import seedu.address.commons.core.index.Index; +import seedu.address.model.Model; +import seedu.address.model.ModelManager; +import seedu.address.model.UserPrefs; +import seedu.address.model.note.Note; +import seedu.address.model.person.Person; + +/** + * Contains integration tests (interaction with the Model) for + * {@code DeleteWeaknessCommand}. + */ +public class DeleteWeaknessCommandTest { + + private final Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + + @Test + public void constructor_nullIndex_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> new DeleteWeaknessCommand(null, null)); + } + + @Test + public void execute_validNoteIndexUnfilteredList_success() throws Exception { + Person personToDeleteWeaknessFrom = model.getFilteredPersonList().get(INDEX_SECOND_PERSON.getZeroBased()); + List newWeaknesses = new ArrayList<>(personToDeleteWeaknessFrom.getWeaknesses()); + newWeaknesses.remove(NOTE_FIRST_INDEX.getZeroBased()); + Person personWithModifiedWeakness = + new Person(personToDeleteWeaknessFrom.getName(), personToDeleteWeaknessFrom.getPhone(), + personToDeleteWeaknessFrom.getEmail(), personToDeleteWeaknessFrom.getAddress(), + personToDeleteWeaknessFrom.getTags(), personToDeleteWeaknessFrom.getStrengths(), newWeaknesses, + personToDeleteWeaknessFrom.getMiscellaneous()); + + DeleteWeaknessCommand deleteWeaknessCommand = new DeleteWeaknessCommand(INDEX_SECOND_PERSON, NOTE_FIRST_INDEX); + + String expectedMessage = String.format(DeleteWeaknessCommand.MESSAGE_SUCCESS, personWithModifiedWeakness); + + ModelManager expectedModel = new ModelManager(model.getAddressBook(), + model.getTaskBook(), new UserPrefs()); + deleteWeaknessCommand.execute(expectedModel); + assertCommandSuccess(deleteWeaknessCommand, model, expectedMessage, expectedModel); + } + + @Test + public void execute_invalidNoteIndexUnfilteredList_throwsCommandException() { + Index outOfBoundNoteIndex = Index.fromOneBased(model.getFilteredPersonList().get( + INDEX_SECOND_PERSON.getZeroBased()).getWeaknesses().size() + 1); + DeleteWeaknessCommand deleteWeaknessCommand = + new DeleteWeaknessCommand(INDEX_SECOND_PERSON, outOfBoundNoteIndex); + + assertCommandFailure(deleteWeaknessCommand, model, Messages.MESSAGE_INVALID_NOTE_DISPLAYED_INDEX); + } + + @Test + public void execute_invalidPersonIndexUnfilteredList_throwsCommandException() { + Index outOfBoundNoteIndex = Index.fromOneBased(model.getFilteredPersonList().size() + 1); + DeleteWeaknessCommand deleteWeaknessCommand = new DeleteWeaknessCommand(outOfBoundNoteIndex, NOTE_FIRST_INDEX); + + assertCommandFailure(deleteWeaknessCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + } + + @Test + public void equals() { + DeleteWeaknessCommand deleteWeaknessFirstCommand = + new DeleteWeaknessCommand(INDEX_SECOND_PERSON, NOTE_FIRST_INDEX); + DeleteWeaknessCommand deleteWeaknessSecondCommand = + new DeleteWeaknessCommand(INDEX_SECOND_PERSON, NOTE_SECOND_INDEX); + + // same object -> returns true + assertTrue(deleteWeaknessFirstCommand.equals(deleteWeaknessFirstCommand)); + + // same values -> returns true + DeleteWeaknessCommand deleteWeaknessFirstCommandCopy = + new DeleteWeaknessCommand(INDEX_SECOND_PERSON, NOTE_FIRST_INDEX); + assertTrue(deleteWeaknessFirstCommand.equals(deleteWeaknessFirstCommandCopy)); + + // different types -> returns false + assertFalse(deleteWeaknessFirstCommand.equals(1)); + + // null -> returns false + assertFalse(deleteWeaknessFirstCommand.equals(null)); + + // different person -> returns false + assertFalse(deleteWeaknessFirstCommand.equals(deleteWeaknessSecondCommand)); + } +} diff --git a/src/test/java/seedu/address/logic/parser/AddNoteCommandParserTest.java b/src/test/java/seedu/address/logic/parser/AddMiscCommandParserTest.java similarity index 71% rename from src/test/java/seedu/address/logic/parser/AddNoteCommandParserTest.java rename to src/test/java/seedu/address/logic/parser/AddMiscCommandParserTest.java index a7e135bd84c..6a905779d82 100644 --- a/src/test/java/seedu/address/logic/parser/AddNoteCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/AddMiscCommandParserTest.java @@ -8,36 +8,36 @@ import org.junit.jupiter.api.Test; -import seedu.address.logic.commands.AddNoteCommand; +import seedu.address.logic.commands.AddMiscCommand; import seedu.address.model.note.Note; -class AddNoteCommandParserTest { +class AddMiscCommandParserTest { - private AddNoteCommandParser parser = new AddNoteCommandParser(); + private AddMiscCommandParser parser = new AddMiscCommandParser(); @Test public void parse_emptyArg_throwsParseException() { assertParseFailure(parser, " ", - String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddNoteCommand.MESSAGE_USAGE)); + String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddMiscCommand.MESSAGE_USAGE)); } @Test - public void parse_validArgs_returnsAddNoteCommand() { + public void parse_validArgs_returnsAddMiscCommand() { // no leading and trailing whitespaces - AddNoteCommand expectedAddNoteCommand = - new AddNoteCommand(INDEX_FIRST_PERSON, new Note(VALID_NOTE_AMY)); - assertParseSuccess(parser, "1 Amy", expectedAddNoteCommand); + AddMiscCommand expectedAddMiscCommand = + new AddMiscCommand(INDEX_FIRST_PERSON, new Note(VALID_NOTE_AMY)); + assertParseSuccess(parser, "1 Amy", expectedAddMiscCommand); // multiple whitespaces between keywords - assertParseSuccess(parser, " \n 1 \n \t Amy \t", expectedAddNoteCommand); + assertParseSuccess(parser, " \n 1 \n \t Amy \t", expectedAddMiscCommand); } @Test public void parse_invalidArgs_throwsParseException() { assertParseFailure(parser, "2 ", - String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddNoteCommand.MESSAGE_USAGE)); + String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddMiscCommand.MESSAGE_USAGE)); assertParseFailure(parser, " Amy", - String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddNoteCommand.MESSAGE_USAGE)); + String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddMiscCommand.MESSAGE_USAGE)); } } diff --git a/src/test/java/seedu/address/logic/parser/AddStrengthCommandParserTest.java b/src/test/java/seedu/address/logic/parser/AddStrengthCommandParserTest.java new file mode 100644 index 00000000000..81e755bad85 --- /dev/null +++ b/src/test/java/seedu/address/logic/parser/AddStrengthCommandParserTest.java @@ -0,0 +1,43 @@ +package seedu.address.logic.parser; + +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static seedu.address.logic.commands.CommandTestUtil.VALID_NOTE_AMY; +import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; +import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; +import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; + +import org.junit.jupiter.api.Test; + +import seedu.address.logic.commands.AddStrengthCommand; +import seedu.address.model.note.Note; + +class AddStrengthCommandParserTest { + + private AddStrengthCommandParser parser = new AddStrengthCommandParser(); + + @Test + public void parse_emptyArg_throwsParseException() { + assertParseFailure(parser, " ", + String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddStrengthCommand.MESSAGE_USAGE)); + } + + @Test + public void parse_validArgs_returnsAddStrengthCommand() { + // no leading and trailing whitespaces + AddStrengthCommand expectedAddStrengthCommand = + new AddStrengthCommand(INDEX_FIRST_PERSON, new Note(VALID_NOTE_AMY)); + assertParseSuccess(parser, "1 Amy", expectedAddStrengthCommand); + + // multiple whitespaces between keywords + assertParseSuccess(parser, " \n 1 \n \t Amy \t", expectedAddStrengthCommand); + } + + @Test + public void parse_invalidArgs_throwsParseException() { + assertParseFailure(parser, "2 ", + String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddStrengthCommand.MESSAGE_USAGE)); + + assertParseFailure(parser, " Amy", + String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddStrengthCommand.MESSAGE_USAGE)); + } +} diff --git a/src/test/java/seedu/address/logic/parser/AddWeaknessCommandParserTest.java b/src/test/java/seedu/address/logic/parser/AddWeaknessCommandParserTest.java new file mode 100644 index 00000000000..bec3c9c1546 --- /dev/null +++ b/src/test/java/seedu/address/logic/parser/AddWeaknessCommandParserTest.java @@ -0,0 +1,43 @@ +package seedu.address.logic.parser; + +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static seedu.address.logic.commands.CommandTestUtil.VALID_NOTE_AMY; +import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; +import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; +import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; + +import org.junit.jupiter.api.Test; + +import seedu.address.logic.commands.AddWeaknessCommand; +import seedu.address.model.note.Note; + +class AddWeaknessCommandParserTest { + + private AddWeaknessCommandParser parser = new AddWeaknessCommandParser(); + + @Test + public void parse_emptyArg_throwsParseException() { + assertParseFailure(parser, " ", + String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddWeaknessCommand.MESSAGE_USAGE)); + } + + @Test + public void parse_validArgs_returnsAddWeaknessCommand() { + // no leading and trailing whitespaces + AddWeaknessCommand expectedAddWeaknessCommand = + new AddWeaknessCommand(INDEX_FIRST_PERSON, new Note(VALID_NOTE_AMY)); + assertParseSuccess(parser, "1 Amy", expectedAddWeaknessCommand); + + // multiple whitespaces between keywords + assertParseSuccess(parser, " \n 1 \n \t Amy \t", expectedAddWeaknessCommand); + } + + @Test + public void parse_invalidArgs_throwsParseException() { + assertParseFailure(parser, "2 ", + String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddWeaknessCommand.MESSAGE_USAGE)); + + assertParseFailure(parser, " Amy", + String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddWeaknessCommand.MESSAGE_USAGE)); + } +} diff --git a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java index db89375ba8b..a5599da0a45 100644 --- a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java +++ b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java @@ -17,7 +17,10 @@ import seedu.address.logic.commands.AddCommand; import seedu.address.logic.commands.ClearCommand; import seedu.address.logic.commands.DeleteCommand; +import seedu.address.logic.commands.DeleteMiscCommand; import seedu.address.logic.commands.DeleteNoteCommand; +import seedu.address.logic.commands.DeleteStrengthCommand; +import seedu.address.logic.commands.DeleteWeaknessCommand; import seedu.address.logic.commands.EditCommand; import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; import seedu.address.logic.commands.ExitCommand; @@ -57,11 +60,27 @@ public void parseCommand_delete() throws Exception { } @Test - public void parseCommand_deleteNote() throws Exception { - DeleteNoteCommand command = (DeleteNoteCommand) parser.parseCommand( - DeleteNoteCommand.COMMAND_WORD + " " + INDEX_SECOND_PERSON.getOneBased() + public void parseCommand_deleteStrength() throws Exception { + DeleteStrengthCommand command = (DeleteStrengthCommand) parser.parseCommand( + DeleteStrengthCommand.COMMAND_WORD + " " + INDEX_SECOND_PERSON.getOneBased() + " " + NOTE_FIRST_INDEX.getOneBased()); - assertEquals(new DeleteNoteCommand(INDEX_SECOND_PERSON, NOTE_FIRST_INDEX), command); + assertEquals(new DeleteStrengthCommand(INDEX_SECOND_PERSON, NOTE_FIRST_INDEX), command); + } + + @Test + public void parseCommand_deleteWeakness() throws Exception { + DeleteWeaknessCommand command = (DeleteWeaknessCommand) parser.parseCommand( + DeleteWeaknessCommand.COMMAND_WORD + " " + INDEX_SECOND_PERSON.getOneBased() + + " " + NOTE_FIRST_INDEX.getOneBased()); + assertEquals(new DeleteWeaknessCommand(INDEX_SECOND_PERSON, NOTE_FIRST_INDEX), command); + } + + @Test + public void parseCommand_deleteMisc() throws Exception { + DeleteMiscCommand command = (DeleteMiscCommand) parser.parseCommand( + DeleteMiscCommand.COMMAND_WORD + " " + INDEX_SECOND_PERSON.getOneBased() + + " " + NOTE_FIRST_INDEX.getOneBased()); + assertEquals(new DeleteMiscCommand(INDEX_SECOND_PERSON, NOTE_FIRST_INDEX), command); } @Test diff --git a/src/test/java/seedu/address/logic/parser/DeleteNoteCommandParserTest.java b/src/test/java/seedu/address/logic/parser/DeleteNoteCommandParserTest.java deleted file mode 100644 index 92760e5fb44..00000000000 --- a/src/test/java/seedu/address/logic/parser/DeleteNoteCommandParserTest.java +++ /dev/null @@ -1,36 +0,0 @@ -package seedu.address.logic.parser; - -import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; -import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; -import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_PERSON; -import static seedu.address.testutil.TypicalIndexes.NOTE_FIRST_INDEX; - -import org.junit.jupiter.api.Test; - -import seedu.address.logic.commands.DeleteNoteCommand; - -/** - * Contains tests for - * {@code DeleteNoteCommandParser}. - */ -public class DeleteNoteCommandParserTest { - private DeleteNoteCommandParser parser = new DeleteNoteCommandParser(); - - @Test - public void parse_validArgs_returnsDeleteCommand() { - assertParseSuccess(parser, "2 1", new DeleteNoteCommand(INDEX_SECOND_PERSON, NOTE_FIRST_INDEX)); - } - - @Test - public void parse_invalidArgs_throwsParseException() { - assertParseFailure(parser, "2", String.format(MESSAGE_INVALID_COMMAND_FORMAT, - DeleteNoteCommand.MESSAGE_USAGE)); - } - - @Test - public void parse_emptyArgs_throwsParseException() { - assertParseFailure(parser, " ", String.format(MESSAGE_INVALID_COMMAND_FORMAT, - DeleteNoteCommand.MESSAGE_USAGE)); - } -} diff --git a/src/test/java/seedu/address/storage/JsonAdaptedPersonTest.java b/src/test/java/seedu/address/storage/JsonAdaptedPersonTest.java index d55361d6ff2..0e7eeb39a00 100644 --- a/src/test/java/seedu/address/storage/JsonAdaptedPersonTest.java +++ b/src/test/java/seedu/address/storage/JsonAdaptedPersonTest.java @@ -32,7 +32,13 @@ public class JsonAdaptedPersonTest { private static final List VALID_TAGS = BENSON.getTags().stream() .map(JsonAdaptedTag::new) .collect(Collectors.toList()); - private static final List VALID_NOTES = BENSON.getNotes().stream() + private static final List VALID_STRENGTHS = BENSON.getStrengths().stream() + .map(JsonAdaptedNote::new) + .collect(Collectors.toList()); + private static final List VALID_WEAKNESSES = BENSON.getWeaknesses().stream() + .map(JsonAdaptedNote::new) + .collect(Collectors.toList()); + private static final List VALID_MISC_NOTES = BENSON.getMiscellaneous().stream() .map(JsonAdaptedNote::new) .collect(Collectors.toList()); @@ -45,7 +51,8 @@ public void toModelType_validPersonDetails_returnsPerson() throws Exception { @Test public void toModelType_invalidName_throwsIllegalValueException() { JsonAdaptedPerson person = - new JsonAdaptedPerson(INVALID_NAME, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, VALID_TAGS, VALID_NOTES); + new JsonAdaptedPerson(INVALID_NAME, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, VALID_TAGS, + VALID_STRENGTHS, VALID_WEAKNESSES, VALID_MISC_NOTES); String expectedMessage = Name.MESSAGE_CONSTRAINTS; assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @@ -53,7 +60,7 @@ public void toModelType_invalidName_throwsIllegalValueException() { @Test public void toModelType_nullName_throwsIllegalValueException() { JsonAdaptedPerson person = new JsonAdaptedPerson(null, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, - VALID_TAGS, VALID_NOTES); + VALID_TAGS, VALID_STRENGTHS, VALID_WEAKNESSES, VALID_MISC_NOTES); String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Name.class.getSimpleName()); assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @@ -62,7 +69,7 @@ public void toModelType_nullName_throwsIllegalValueException() { public void toModelType_invalidPhone_throwsIllegalValueException() { JsonAdaptedPerson person = new JsonAdaptedPerson(VALID_NAME, INVALID_PHONE, VALID_EMAIL, VALID_ADDRESS, - VALID_TAGS, VALID_NOTES); + VALID_TAGS, VALID_STRENGTHS, VALID_WEAKNESSES, VALID_MISC_NOTES); String expectedMessage = Phone.MESSAGE_CONSTRAINTS; assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @@ -70,7 +77,7 @@ public void toModelType_invalidPhone_throwsIllegalValueException() { @Test public void toModelType_nullPhone_throwsIllegalValueException() { JsonAdaptedPerson person = new JsonAdaptedPerson(VALID_NAME, null, VALID_EMAIL, VALID_ADDRESS, - VALID_TAGS, VALID_NOTES); + VALID_TAGS, VALID_STRENGTHS, VALID_WEAKNESSES, VALID_MISC_NOTES); String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Phone.class.getSimpleName()); assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @@ -79,7 +86,7 @@ public void toModelType_nullPhone_throwsIllegalValueException() { public void toModelType_invalidEmail_throwsIllegalValueException() { JsonAdaptedPerson person = new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, INVALID_EMAIL, VALID_ADDRESS, - VALID_TAGS, VALID_NOTES); + VALID_TAGS, VALID_STRENGTHS, VALID_WEAKNESSES, VALID_MISC_NOTES); String expectedMessage = Email.MESSAGE_CONSTRAINTS; assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @@ -87,7 +94,7 @@ public void toModelType_invalidEmail_throwsIllegalValueException() { @Test public void toModelType_nullEmail_throwsIllegalValueException() { JsonAdaptedPerson person = new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, null, VALID_ADDRESS, - VALID_TAGS, VALID_NOTES); + VALID_TAGS, VALID_STRENGTHS, VALID_WEAKNESSES, VALID_MISC_NOTES); String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Email.class.getSimpleName()); assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @@ -96,7 +103,7 @@ public void toModelType_nullEmail_throwsIllegalValueException() { public void toModelType_invalidAddress_throwsIllegalValueException() { JsonAdaptedPerson person = new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, VALID_EMAIL, INVALID_ADDRESS, - VALID_TAGS, VALID_NOTES); + VALID_TAGS, VALID_STRENGTHS, VALID_WEAKNESSES, VALID_MISC_NOTES); String expectedMessage = Address.MESSAGE_CONSTRAINTS; assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @@ -104,7 +111,7 @@ public void toModelType_invalidAddress_throwsIllegalValueException() { @Test public void toModelType_nullAddress_throwsIllegalValueException() { JsonAdaptedPerson person = new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, VALID_EMAIL, null, - VALID_TAGS, VALID_NOTES); + VALID_TAGS, VALID_STRENGTHS, VALID_WEAKNESSES, VALID_MISC_NOTES); String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Address.class.getSimpleName()); assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @@ -114,7 +121,8 @@ public void toModelType_invalidTags_throwsIllegalValueException() { List invalidTags = new ArrayList<>(VALID_TAGS); invalidTags.add(new JsonAdaptedTag(INVALID_TAG)); JsonAdaptedPerson person = - new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, invalidTags, VALID_NOTES); + new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, invalidTags, + VALID_STRENGTHS, VALID_WEAKNESSES, VALID_MISC_NOTES); assertThrows(IllegalValueException.class, person::toModelType); } } diff --git a/src/test/java/seedu/address/testutil/EditPersonDescriptorBuilder.java b/src/test/java/seedu/address/testutil/EditPersonDescriptorBuilder.java index 66d90b58dfe..fdbd7965325 100644 --- a/src/test/java/seedu/address/testutil/EditPersonDescriptorBuilder.java +++ b/src/test/java/seedu/address/testutil/EditPersonDescriptorBuilder.java @@ -37,6 +37,9 @@ public EditPersonDescriptorBuilder(Person person) { descriptor.setEmail(person.getEmail()); descriptor.setAddress(person.getAddress()); descriptor.setTags(person.getTags()); + descriptor.setStrengths(person.getStrengths()); + descriptor.setWeaknesses(person.getWeaknesses()); + descriptor.setMiscellaneous(person.getMiscellaneous()); } /** diff --git a/src/test/java/seedu/address/testutil/PersonBuilder.java b/src/test/java/seedu/address/testutil/PersonBuilder.java index aabe7f0ac0e..eb6b888beae 100644 --- a/src/test/java/seedu/address/testutil/PersonBuilder.java +++ b/src/test/java/seedu/address/testutil/PersonBuilder.java @@ -29,7 +29,9 @@ public class PersonBuilder { private Email email; private Address address; private Set tags; - private List notes; + private List strengths; + private List weaknesses; + private List miscellaneous; /** * Creates a {@code PersonBuilder} with the default details. @@ -40,7 +42,9 @@ public PersonBuilder() { email = new Email(DEFAULT_EMAIL); address = new Address(DEFAULT_ADDRESS); tags = new HashSet<>(); - notes = new ArrayList<>(); + strengths = new ArrayList<>(); + weaknesses = new ArrayList<>(); + miscellaneous = new ArrayList<>(); } /** @@ -52,7 +56,9 @@ public PersonBuilder(Person personToCopy) { email = personToCopy.getEmail(); address = personToCopy.getAddress(); tags = new HashSet<>(personToCopy.getTags()); - notes = new ArrayList<>(personToCopy.getNotes()); + strengths = new ArrayList<>(personToCopy.getStrengths()); + weaknesses = new ArrayList<>(personToCopy.getWeaknesses()); + miscellaneous = new ArrayList<>(personToCopy.getMiscellaneous()); } /** @@ -96,14 +102,33 @@ public PersonBuilder withEmail(String email) { } /** - * Parses the {@code notes} into a {@code List} and set it to the {@code Person} that we are building. + * Parses the {@code strengths} into a {@code List} and set it to the {@code Person} that we are building. */ - public PersonBuilder withNotes(String... notes) { - this.notes = SampleDataUtil.getNoteList(notes); + public PersonBuilder withStrengths(String... strengths) { + List noteList = SampleDataUtil.getNoteList(strengths); + this.strengths.addAll(noteList); + return this; + } + + /** + * Parses the {@code weaknesses} into a {@code List} and set it to the {@code Person} that we are building. + */ + public PersonBuilder withWeaknesses(String... weaknesses) { + List noteList = SampleDataUtil.getNoteList(weaknesses); + this.weaknesses.addAll(noteList); + return this; + } + + /** + * Parses the {@code misc} into a {@code List} and set it to the {@code Person} that we are building. + */ + public PersonBuilder withMisc(String... misc) { + List noteList = SampleDataUtil.getNoteList(misc); + this.miscellaneous.addAll(noteList); return this; } public Person build() { - return new Person(name, phone, email, address, tags, notes); + return new Person(name, phone, email, address, tags, strengths, weaknesses, miscellaneous); } } diff --git a/src/test/java/seedu/address/testutil/TypicalPersons.java b/src/test/java/seedu/address/testutil/TypicalPersons.java index 02e4530b829..883b78b4e79 100644 --- a/src/test/java/seedu/address/testutil/TypicalPersons.java +++ b/src/test/java/seedu/address/testutil/TypicalPersons.java @@ -27,17 +27,21 @@ public class TypicalPersons { .withAddress("123, Jurong West Ave 6, #08-111").withEmail("alice@example.com") .withPhone("94351253") .withTags("friends") - .build(); + .withStrengths("Good Defense", "Great Stamina") + .withWeaknesses("Bad Offense", "Poor Endurance") + .withMisc("birthday tomorrow", "likes Python").build(); public static final Person BENSON = new PersonBuilder().withName("Benson Meier") .withAddress("311, Clementi Ave 2, #02-25") .withEmail("johnd@example.com").withPhone("98765432") .withTags("owesMoney", "friends") - .withNotes("birthday tomorrow", "likes Python").build(); + .withStrengths("Good Defense", "Great Stamina") + .withWeaknesses("Bad Offense", "Poor Endurance") + .withMisc("birthday tomorrow", "likes Python").build(); public static final Person CARL = new PersonBuilder().withName("Carl Kurz").withPhone("95352563") .withEmail("heinz@example.com").withAddress("wall street").build(); public static final Person DANIEL = new PersonBuilder().withName("Daniel Meier").withPhone("87652533") .withEmail("cornelia@example.com").withAddress("10th street").withTags("friends") - .withNotes("likes bing chilling").build(); + .withMisc("likes bing chilling").build(); public static final Person ELLE = new PersonBuilder().withName("Elle Meyer").withPhone("9482224") .withEmail("werner@example.com").withAddress("michegan ave").build(); public static final Person FIONA = new PersonBuilder().withName("Fiona Kunz").withPhone("9482427") From 407f2a169479f3e55850cd92406db9f7b35dbb8a Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Fri, 18 Mar 2022 02:22:32 +0800 Subject: [PATCH 112/455] Add toString to EditCommand class --- .../address/logic/commands/EditCommand.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/main/java/seedu/address/logic/commands/EditCommand.java b/src/main/java/seedu/address/logic/commands/EditCommand.java index d17d6c7ccc6..7540f8c14a0 100644 --- a/src/main/java/seedu/address/logic/commands/EditCommand.java +++ b/src/main/java/seedu/address/logic/commands/EditCommand.java @@ -125,6 +125,14 @@ public boolean equals(Object other) { && editPersonDescriptor.equals(e.editPersonDescriptor); } + @Override + public String toString() { + return "EditCommand{" + + "index=" + index + + ", editPersonDescriptor=" + editPersonDescriptor + + '}'; + } + /** * Stores the details to edit the person with. Each non-empty field value will replace the * corresponding field value of the person. @@ -286,5 +294,19 @@ && getStrengths().equals(e.getStrengths()) && getWeaknesses().equals(e.getWeaknesses()) && getMiscellaneous().equals(e.getMiscellaneous()); } + + @Override + public String toString() { + return "EditPersonDescriptor{" + + "name=" + name + + ", phone=" + phone + + ", email=" + email + + ", address=" + address + + ", tags=" + tags + + ", strengths=" + strengths + + ", weaknesses=" + weaknesses + + ", miscellaneous=" + miscellaneous + + '}'; + } } } From 6ae354c9eda9f03d1bfa6f3d2ea668327ff1aaff Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Fri, 18 Mar 2022 03:03:24 +0800 Subject: [PATCH 113/455] Fix bugs --- .../address/storage/JsonAdaptedPerson.java | 6 ++++ src/main/resources/view/PersonListCard.fxml | 28 ++++--------------- .../typicalPersonsAddressBook.json | 14 +++++----- .../testutil/EditPersonDescriptorBuilder.java | 3 -- .../address/testutil/TypicalPersons.java | 4 +-- 5 files changed, 20 insertions(+), 35 deletions(-) diff --git a/src/main/java/seedu/address/storage/JsonAdaptedPerson.java b/src/main/java/seedu/address/storage/JsonAdaptedPerson.java index 639840fc69c..8c54ae8e224 100644 --- a/src/main/java/seedu/address/storage/JsonAdaptedPerson.java +++ b/src/main/java/seedu/address/storage/JsonAdaptedPerson.java @@ -72,6 +72,12 @@ public JsonAdaptedPerson(Person source) { tagged.addAll(source.getTags().stream() .map(JsonAdaptedTag::new) .collect(Collectors.toList())); + strengths.addAll(source.getStrengths().stream() + .map(JsonAdaptedNote::new) + .collect(Collectors.toList())); + weaknesses.addAll(source.getWeaknesses().stream() + .map(JsonAdaptedNote::new) + .collect(Collectors.toList())); misc.addAll(source.getMiscellaneous().stream() .map(JsonAdaptedNote::new) .collect(Collectors.toList())); diff --git a/src/main/resources/view/PersonListCard.fxml b/src/main/resources/view/PersonListCard.fxml index 1e95b629db1..ba390696fd7 100644 --- a/src/main/resources/view/PersonListCard.fxml +++ b/src/main/resources/view/PersonListCard.fxml @@ -32,28 +32,12 @@ From 03f579064a29152277b7053d183b41e036f0aa7f Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Fri, 18 Mar 2022 18:01:12 +0800 Subject: [PATCH 118/455] Add additional test cases --- .../address/logic/commands/EditCommand.java | 22 -------------- .../logic/commands/CommandResultTest.java | 8 +++++ .../logic/parser/AddressBookParserTest.java | 29 +++++++++++++++++++ 3 files changed, 37 insertions(+), 22 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/EditCommand.java b/src/main/java/seedu/address/logic/commands/EditCommand.java index 7540f8c14a0..d17d6c7ccc6 100644 --- a/src/main/java/seedu/address/logic/commands/EditCommand.java +++ b/src/main/java/seedu/address/logic/commands/EditCommand.java @@ -125,14 +125,6 @@ public boolean equals(Object other) { && editPersonDescriptor.equals(e.editPersonDescriptor); } - @Override - public String toString() { - return "EditCommand{" - + "index=" + index - + ", editPersonDescriptor=" + editPersonDescriptor - + '}'; - } - /** * Stores the details to edit the person with. Each non-empty field value will replace the * corresponding field value of the person. @@ -294,19 +286,5 @@ && getStrengths().equals(e.getStrengths()) && getWeaknesses().equals(e.getWeaknesses()) && getMiscellaneous().equals(e.getMiscellaneous()); } - - @Override - public String toString() { - return "EditPersonDescriptor{" - + "name=" + name - + ", phone=" + phone - + ", email=" + email - + ", address=" + address - + ", tags=" + tags - + ", strengths=" + strengths - + ", weaknesses=" + weaknesses - + ", miscellaneous=" + miscellaneous - + '}'; - } } } diff --git a/src/test/java/seedu/address/logic/commands/CommandResultTest.java b/src/test/java/seedu/address/logic/commands/CommandResultTest.java index 4f3eb46e9ef..19a062cbcf2 100644 --- a/src/test/java/seedu/address/logic/commands/CommandResultTest.java +++ b/src/test/java/seedu/address/logic/commands/CommandResultTest.java @@ -51,4 +51,12 @@ public void hashcode() { // different exit value -> returns different hashcode assertNotEquals(commandResult.hashCode(), new CommandResult("feedback", false, true).hashCode()); } + + @Test + public void toStringTest() { + CommandResult commandResult = new CommandResult("feedback", true, false); + // same values -> returns same String + assertEquals(commandResult.toString(), + new CommandResult("feedback", true, false).toString()); + } } diff --git a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java index 2cc74c8136d..67d06100510 100644 --- a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java +++ b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java @@ -15,6 +15,9 @@ import org.junit.jupiter.api.Test; import seedu.address.logic.commands.AddCommand; +import seedu.address.logic.commands.AddMiscCommand; +import seedu.address.logic.commands.AddStrengthCommand; +import seedu.address.logic.commands.AddWeaknessCommand; import seedu.address.logic.commands.ClearCommand; import seedu.address.logic.commands.DeleteCommand; import seedu.address.logic.commands.DeleteMiscCommand; @@ -28,6 +31,7 @@ import seedu.address.logic.commands.ListCommand; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.name.PersonNameContainsKeywordsPredicate; +import seedu.address.model.note.Note; import seedu.address.model.person.Person; import seedu.address.model.tag.TagContainsKeywordsPredicate; import seedu.address.testutil.EditPersonDescriptorBuilder; @@ -37,6 +41,7 @@ public class AddressBookParserTest { private final AddressBookParser parser = new AddressBookParser(); + private final Note note_stub_1 = new Note("Note Stub 1"); @Test public void parseCommand_add() throws Exception { @@ -58,6 +63,30 @@ public void parseCommand_delete() throws Exception { assertEquals(new DeleteCommand(INDEX_FIRST_PERSON), command); } + @Test + public void parseCommand_addStrength() throws Exception { + AddStrengthCommand command = (AddStrengthCommand) parser.parseCommand( + AddStrengthCommand.COMMAND_WORD + " " + INDEX_SECOND_PERSON.getOneBased() + + " " + note_stub_1); + assertEquals(new AddStrengthCommand(INDEX_SECOND_PERSON, note_stub_1), command); + } + + @Test + public void parseCommand_addWeakness() throws Exception { + AddWeaknessCommand command = (AddWeaknessCommand) parser.parseCommand( + AddWeaknessCommand.COMMAND_WORD + " " + INDEX_SECOND_PERSON.getOneBased() + + " " + note_stub_1); + assertEquals(new AddWeaknessCommand(INDEX_SECOND_PERSON, note_stub_1), command); + } + + @Test + public void parseCommand_addMisc() throws Exception { + AddMiscCommand command = (AddMiscCommand) parser.parseCommand( + AddMiscCommand.COMMAND_WORD + " " + INDEX_SECOND_PERSON.getOneBased() + + " " + note_stub_1); + assertEquals(new AddMiscCommand(INDEX_SECOND_PERSON, note_stub_1), command); + } + @Test public void parseCommand_deleteStrength() throws Exception { DeleteStrengthCommand command = (DeleteStrengthCommand) parser.parseCommand( From abbd7d7baf9e6cfb2e06d47da7d5cf96551dce45 Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Fri, 18 Mar 2022 18:08:46 +0800 Subject: [PATCH 119/455] Delete old Note classes --- .../logic/commands/DeleteNoteCommand.java | 94 ------------------- .../logic/parser/DeleteNoteCommandParser.java | 30 ------ 2 files changed, 124 deletions(-) delete mode 100644 src/main/java/seedu/address/logic/commands/DeleteNoteCommand.java delete mode 100644 src/main/java/seedu/address/logic/parser/DeleteNoteCommandParser.java diff --git a/src/main/java/seedu/address/logic/commands/DeleteNoteCommand.java b/src/main/java/seedu/address/logic/commands/DeleteNoteCommand.java deleted file mode 100644 index 2e53bd3d3e3..00000000000 --- a/src/main/java/seedu/address/logic/commands/DeleteNoteCommand.java +++ /dev/null @@ -1,94 +0,0 @@ -package seedu.address.logic.commands; - -import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; -import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; - -import java.util.ArrayList; -import java.util.List; - -import seedu.address.commons.core.Messages; -import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.exceptions.CommandException; -import seedu.address.model.Model; -import seedu.address.model.note.Note; -import seedu.address.model.person.Person; - -/** - * Delete a note from a person in the address book - */ -public class DeleteNoteCommand extends Command { - public static final String COMMAND_WORD = "note-del"; - - public static final String MESSAGE_USAGE = COMMAND_WORD - + ": Delete a note from the note-list of selected person from our contact list. " - + "Parameters: " - + "INDEX (must be a positive integer) " - + "NOTE-INDEX (must be a positive)\n" - + "Example: " + COMMAND_WORD + " " - + "1 " - + "2"; - - public static final String MESSAGE_NOT_IMPLEMENTED_YET = - "DeleteNote command not implemented yet"; - - public static final String MESSAGE_SUCCESS = "Note has been deleted: %1$s"; - - public static final String MESSAGE_ARGUMENTS = "Index: %1$d, Index: %2$d"; - - private final Index index; - private final Index noteIndex; - - /** - * Constructor of DeleteNoteCommand class - * @param index index of the person in the filtered person list - * @param noteIndex index of the note from the person's note-list to be deleted - */ - public DeleteNoteCommand(Index index, Index noteIndex) { - requireAllNonNull(index, noteIndex); - this.index = index; - this.noteIndex = noteIndex; - } - - @Override - public CommandResult execute(Model model) throws CommandException { - List lastShownList = model.getFilteredPersonList(); - - if (index.getZeroBased() >= lastShownList.size()) { - throw new CommandException(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); - } - - Person personToEdit = lastShownList.get(index.getZeroBased()); - List newNotes = new ArrayList<>(personToEdit.getMiscellaneous()); - - if (noteIndex.getZeroBased() >= newNotes.size()) { - throw new CommandException(Messages.MESSAGE_INVALID_NOTE_DISPLAYED_INDEX); - } - newNotes.remove(noteIndex.getZeroBased()); - - Person editedPerson = new Person( - personToEdit.getName(), personToEdit.getPhone(), personToEdit.getEmail(), - personToEdit.getAddress(), personToEdit.getTags(), - personToEdit.getStrengths(), personToEdit.getWeaknesses(), newNotes); - - model.setPerson(personToEdit, editedPerson); - model.updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); - - return new CommandResult(generateSuccessMessage(editedPerson)); - } - - /** - * Generates a command execution success message - * {@code personToEdit}. - */ - private String generateSuccessMessage(Person personToEdit) { - return String.format(MESSAGE_SUCCESS, personToEdit); - } - - @Override - public boolean equals(Object other) { - return other == this - || (other instanceof DeleteNoteCommand - && index.equals(((DeleteNoteCommand) other).index) - && noteIndex.equals(((DeleteNoteCommand) other).noteIndex)); - } -} diff --git a/src/main/java/seedu/address/logic/parser/DeleteNoteCommandParser.java b/src/main/java/seedu/address/logic/parser/DeleteNoteCommandParser.java deleted file mode 100644 index 7e6bd9753d0..00000000000 --- a/src/main/java/seedu/address/logic/parser/DeleteNoteCommandParser.java +++ /dev/null @@ -1,30 +0,0 @@ -package seedu.address.logic.parser; - -import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; - -import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.DeleteNoteCommand; -import seedu.address.logic.parser.exceptions.ParseException; - -/** - * Parses input arguments and creates a new {@code DeleteNoteCommand} object - */ -public class DeleteNoteCommandParser implements Parser { - /** - * Parses the given {@code String} of arguments in the context of the {@code DeleteNoteCommand} - * and returns a {@code DeleteNoteCommand} object for execution. - * @throws ParseException if the user input does not conform the expected format - */ - @Override - public DeleteNoteCommand parse(String args) throws ParseException { - try { - String[] splitArgs = args.trim().split("\\s+", 2); - Index index = ParserUtil.parseIndex(splitArgs[0]); - Index noteIndex = ParserUtil.parseNoteIndex(splitArgs[1]); - return new DeleteNoteCommand(index, noteIndex); - } catch (ParseException | IndexOutOfBoundsException pe) { - throw new ParseException( - String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteNoteCommand.MESSAGE_USAGE), pe); - } - } -} From 945f53b96501d81c851fa86b028b3ddf5602af34 Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Fri, 18 Mar 2022 18:10:25 +0800 Subject: [PATCH 120/455] Fix java coding standard violation --- .../logic/parser/AddressBookParserTest.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java index 67d06100510..d518f62b1a2 100644 --- a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java +++ b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java @@ -41,7 +41,7 @@ public class AddressBookParserTest { private final AddressBookParser parser = new AddressBookParser(); - private final Note note_stub_1 = new Note("Note Stub 1"); + private final Note noteStub = new Note("Note Stub 1"); @Test public void parseCommand_add() throws Exception { @@ -67,24 +67,24 @@ public void parseCommand_delete() throws Exception { public void parseCommand_addStrength() throws Exception { AddStrengthCommand command = (AddStrengthCommand) parser.parseCommand( AddStrengthCommand.COMMAND_WORD + " " + INDEX_SECOND_PERSON.getOneBased() - + " " + note_stub_1); - assertEquals(new AddStrengthCommand(INDEX_SECOND_PERSON, note_stub_1), command); + + " " + noteStub); + assertEquals(new AddStrengthCommand(INDEX_SECOND_PERSON, noteStub), command); } @Test public void parseCommand_addWeakness() throws Exception { AddWeaknessCommand command = (AddWeaknessCommand) parser.parseCommand( AddWeaknessCommand.COMMAND_WORD + " " + INDEX_SECOND_PERSON.getOneBased() - + " " + note_stub_1); - assertEquals(new AddWeaknessCommand(INDEX_SECOND_PERSON, note_stub_1), command); + + " " + noteStub); + assertEquals(new AddWeaknessCommand(INDEX_SECOND_PERSON, noteStub), command); } @Test public void parseCommand_addMisc() throws Exception { AddMiscCommand command = (AddMiscCommand) parser.parseCommand( AddMiscCommand.COMMAND_WORD + " " + INDEX_SECOND_PERSON.getOneBased() - + " " + note_stub_1); - assertEquals(new AddMiscCommand(INDEX_SECOND_PERSON, note_stub_1), command); + + " " + noteStub); + assertEquals(new AddMiscCommand(INDEX_SECOND_PERSON, noteStub), command); } @Test From 1bf396671c27c6e329aac6e20ab6f45fe3d1cf64 Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Fri, 18 Mar 2022 18:13:10 +0800 Subject: [PATCH 121/455] Delete references to old Note classes --- .../logic/commands/AddNoteCommand.java | 90 ------------------- .../logic/commands/DeleteMiscCommand.java | 2 +- .../logic/parser/AddNoteCommandParser.java | 30 ------- .../parser/AddWeaknessCommandParser.java | 4 +- .../commands/AddWeaknessCommandTest.java | 2 +- 5 files changed, 4 insertions(+), 124 deletions(-) delete mode 100644 src/main/java/seedu/address/logic/commands/AddNoteCommand.java delete mode 100644 src/main/java/seedu/address/logic/parser/AddNoteCommandParser.java diff --git a/src/main/java/seedu/address/logic/commands/AddNoteCommand.java b/src/main/java/seedu/address/logic/commands/AddNoteCommand.java deleted file mode 100644 index ed0181c511d..00000000000 --- a/src/main/java/seedu/address/logic/commands/AddNoteCommand.java +++ /dev/null @@ -1,90 +0,0 @@ -package seedu.address.logic.commands; - -import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; -import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; - -import java.util.ArrayList; -import java.util.List; - -import seedu.address.commons.core.Messages; -import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.exceptions.CommandException; -import seedu.address.model.Model; -import seedu.address.model.note.Note; -import seedu.address.model.person.Person; - -/** - * Adds a note to a person in the address book. (DEPRECIATED) - */ -public class AddNoteCommand extends Command { - public static final String COMMAND_WORD = "note-add"; - - public static final String MESSAGE_USAGE = COMMAND_WORD - + ": Add a note to a selected person from our contact list. " - + "Parameters: " - + "INDEX (must be a positive integer) " - + "NOTE_DESCRIPTION (must be non-empty and not more than 50 characters)\n" - + "Example: " + COMMAND_WORD + " " - + "1 " - + "Surgery Scheduled for tomorrow"; - - public static final String MESSAGE_NOT_IMPLEMENTED_YET = - "AddNote command not implemented yet"; - - public static final String MESSAGE_SUCCESS = "New note added: %1$s"; - - public static final String MESSAGE_ARGUMENTS = "Index: %1$d, Note: %2$s"; - - private final Index index; - private final Note note; - - /** - * @param index of the person in the filtered person list to add the note - * @param note of the person to be added - */ - public AddNoteCommand(Index index, Note note) { - requireAllNonNull(index, note); - - this.index = index; - this.note = note; - } - - @Override - public CommandResult execute(Model model) throws CommandException { - List lastShownList = model.getFilteredPersonList(); - - if (index.getZeroBased() >= lastShownList.size()) { - throw new CommandException(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); - } - - Person personToEdit = lastShownList.get(index.getZeroBased()); - List newNotes = new ArrayList<>(personToEdit.getMiscellaneous()); - newNotes.add(note); - - Person editedPerson = new Person( - personToEdit.getName(), personToEdit.getPhone(), personToEdit.getEmail(), - personToEdit.getAddress(), personToEdit.getTags(), personToEdit.getStrengths(), - personToEdit.getWeaknesses(), newNotes); - - model.setPerson(personToEdit, editedPerson); - model.updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); - - return new CommandResult(generateSuccessMessage(editedPerson)); - } - - /** - * Generates a command execution success message - * {@code personToEdit}. - */ - private String generateSuccessMessage(Person personToEdit) { - return String.format(MESSAGE_SUCCESS, personToEdit); - } - - @Override - public boolean equals(Object other) { - return other == this // short circuit if same object - || (other instanceof AddNoteCommand // instanceof handles nulls - && (index.equals(((AddNoteCommand) other).index) - && note.equals(((AddNoteCommand) other).note))); - } -} diff --git a/src/main/java/seedu/address/logic/commands/DeleteMiscCommand.java b/src/main/java/seedu/address/logic/commands/DeleteMiscCommand.java index d704521968a..555e6db54b7 100644 --- a/src/main/java/seedu/address/logic/commands/DeleteMiscCommand.java +++ b/src/main/java/seedu/address/logic/commands/DeleteMiscCommand.java @@ -39,7 +39,7 @@ public class DeleteMiscCommand extends Command { private final Index noteIndex; /** - * Constructor of DeleteNoteCommand class + * Constructor of DeleteMiscCommand class * @param index index of the person in the filtered person list * @param noteIndex index of the misc. note from the person's misc-list to be deleted */ diff --git a/src/main/java/seedu/address/logic/parser/AddNoteCommandParser.java b/src/main/java/seedu/address/logic/parser/AddNoteCommandParser.java deleted file mode 100644 index dc935ba4f44..00000000000 --- a/src/main/java/seedu/address/logic/parser/AddNoteCommandParser.java +++ /dev/null @@ -1,30 +0,0 @@ -package seedu.address.logic.parser; - -import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; - -import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.AddNoteCommand; -import seedu.address.logic.parser.exceptions.ParseException; -import seedu.address.model.note.Note; - -/** - * Parses input arguments and creates a new {@code AddNoteCommand} object - */ -public class AddNoteCommandParser implements Parser { - /** - * Parses the given {@code String} of arguments in the context of the {@code AddNoteCommand} - * and returns a {@code AddNoteCommand} object for execution. - * @throws ParseException if the user input does not conform the expected format - */ - public AddNoteCommand parse(String args) throws ParseException { - try { - String[] splitArgs = args.trim().split("\\s+", 2); - Index index = ParserUtil.parseIndex(splitArgs[0]); - Note note = ParserUtil.parseNote(splitArgs[1]); - return new AddNoteCommand(index, note); - } catch (ParseException | IndexOutOfBoundsException pe) { - throw new ParseException( - String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddNoteCommand.MESSAGE_USAGE), pe); - } - } -} diff --git a/src/main/java/seedu/address/logic/parser/AddWeaknessCommandParser.java b/src/main/java/seedu/address/logic/parser/AddWeaknessCommandParser.java index 4e48dc4d6c6..47a4b40d544 100644 --- a/src/main/java/seedu/address/logic/parser/AddWeaknessCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/AddWeaknessCommandParser.java @@ -12,8 +12,8 @@ */ public class AddWeaknessCommandParser implements Parser { /** - * Parses the given {@code String} of arguments in the context of the {@code AddNoteCommand} - * and returns a {@code AddNoteCommand} object for execution. + * Parses the given {@code String} of arguments in the context of the {@code AddWeaknessCommand} + * and returns a {@code AddWeaknessCommand} object for execution. * @throws ParseException if the user input does not conform the expected format */ public AddWeaknessCommand parse(String args) throws ParseException { diff --git a/src/test/java/seedu/address/logic/commands/AddWeaknessCommandTest.java b/src/test/java/seedu/address/logic/commands/AddWeaknessCommandTest.java index a60b6cd3861..c39970234ac 100644 --- a/src/test/java/seedu/address/logic/commands/AddWeaknessCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddWeaknessCommandTest.java @@ -101,7 +101,7 @@ public void equals() { new Note(VALID_NOTE_AMY)))); // different Note -> returns false - assertFalse(standardCommand.equals(new AddNoteCommand(INDEX_FIRST_PERSON, + assertFalse(standardCommand.equals(new AddWeaknessCommand(INDEX_FIRST_PERSON, new Note(VALID_NOTE_BOB)))); } } From dbc59c5fb9d34a898525d662f5fa8b3f9de768c9 Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Sat, 19 Mar 2022 13:52:38 +0800 Subject: [PATCH 122/455] Fix incorrect references in EditCommand class --- .../java/seedu/address/logic/commands/EditCommand.java | 8 ++++---- src/main/resources/view/MainWindow.fxml | 2 +- src/main/resources/view/PersonListCard.fxml | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/EditCommand.java b/src/main/java/seedu/address/logic/commands/EditCommand.java index d17d6c7ccc6..0c27abb2427 100644 --- a/src/main/java/seedu/address/logic/commands/EditCommand.java +++ b/src/main/java/seedu/address/logic/commands/EditCommand.java @@ -100,8 +100,8 @@ private static Person createEditedPerson(Person personToEdit, EditPersonDescript Email updatedEmail = editPersonDescriptor.getEmail().orElse(personToEdit.getEmail()); Address updatedAddress = editPersonDescriptor.getAddress().orElse(personToEdit.getAddress()); Set updatedTags = editPersonDescriptor.getTags().orElse(personToEdit.getTags()); - List updatedStrengthNotes = editPersonDescriptor.getMiscellaneous().orElse(personToEdit.getStrengths()); - List updatedWeaknessNotes = editPersonDescriptor.getMiscellaneous().orElse(personToEdit.getWeaknesses()); + List updatedStrengthNotes = editPersonDescriptor.getStrengths().orElse(personToEdit.getStrengths()); + List updatedWeaknessNotes = editPersonDescriptor.getWeaknesses().orElse(personToEdit.getWeaknesses()); List updatedMisc = editPersonDescriptor.getMiscellaneous().orElse(personToEdit.getMiscellaneous()); return new Person(updatedName, updatedPhone, updatedEmail, updatedAddress, updatedTags, updatedStrengthNotes, updatedWeaknessNotes, updatedMisc); @@ -242,7 +242,7 @@ public Optional> getTags() { * Returns {@code Optional#empty()} if {@code strengths} is null. */ public Optional> getStrengths() { - return (miscellaneous != null) ? Optional.of(Collections.unmodifiableList(strengths)) : Optional.empty(); + return (strengths != null) ? Optional.of(Collections.unmodifiableList(strengths)) : Optional.empty(); } /** * Returns an unmodifiable note list, which throws {@code UnsupportedOperationException} @@ -250,7 +250,7 @@ public Optional> getStrengths() { * Returns {@code Optional#empty()} if {@code weaknesses} is null. */ public Optional> getWeaknesses() { - return (miscellaneous != null) ? Optional.of(Collections.unmodifiableList(weaknesses)) : Optional.empty(); + return (weaknesses != null) ? Optional.of(Collections.unmodifiableList(weaknesses)) : Optional.empty(); } /** * Returns an unmodifiable note list, which throws {@code UnsupportedOperationException} diff --git a/src/main/resources/view/MainWindow.fxml b/src/main/resources/view/MainWindow.fxml index 74693dcc749..0a5cc6d02b0 100644 --- a/src/main/resources/view/MainWindow.fxml +++ b/src/main/resources/view/MainWindow.fxml @@ -14,7 +14,7 @@ - + diff --git a/src/main/resources/view/PersonListCard.fxml b/src/main/resources/view/PersonListCard.fxml index 2fce46879d4..0529f344001 100644 --- a/src/main/resources/view/PersonListCard.fxml +++ b/src/main/resources/view/PersonListCard.fxml @@ -10,7 +10,7 @@ - + From 5258aafbfffa0746df2f784ee25eb8a8eca4ad33 Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Sun, 20 Mar 2022 00:07:39 +0800 Subject: [PATCH 123/455] Add separate .css file for note-related text and package note classes --- .../{ => notecommands}/AddMiscCommand.java | 4 ++- .../AddStrengthCommand.java | 4 ++- .../AddWeaknessCommand.java | 4 ++- .../{ => notecommands}/DeleteMiscCommand.java | 4 ++- .../DeleteStrengthCommand.java | 4 ++- .../DeleteWeaknessCommand.java | 4 ++- .../logic/parser/AddressBookParser.java | 18 ++++++++---- .../AddMiscCommandParser.java | 6 ++-- .../AddStrengthCommandParser.java | 6 ++-- .../AddWeaknessCommandParser.java | 6 ++-- .../DeleteMiscCommandParser.java | 6 ++-- .../DeleteStrengthCommandParser.java | 6 ++-- .../DeleteWeaknessCommandParser.java | 6 ++-- src/main/resources/view/NoteStyle.css | 29 +++++++++++++++++++ src/main/resources/view/PersonListCard.fxml | 16 ++++++---- .../logic/commands/AddMiscCommandTest.java | 1 + .../commands/AddStrengthCommandTest.java | 1 + .../commands/AddWeaknessCommandTest.java | 1 + .../logic/commands/DeleteMiscCommandTest.java | 1 + .../commands/DeleteStrengthCommandTest.java | 1 + .../commands/DeleteWeaknessCommandTest.java | 1 + .../parser/AddMiscCommandParserTest.java | 3 +- .../parser/AddStrengthCommandParserTest.java | 3 +- .../parser/AddWeaknessCommandParserTest.java | 3 +- .../logic/parser/AddressBookParserTest.java | 12 ++++---- .../parser/DeleteMiscCommandParserTest.java | 3 +- .../DeleteStrengthCommandParserTest.java | 3 +- .../DeleteWeaknessCommandParserTest.java | 3 +- 28 files changed, 117 insertions(+), 42 deletions(-) rename src/main/java/seedu/address/logic/commands/{ => notecommands}/AddMiscCommand.java (95%) rename src/main/java/seedu/address/logic/commands/{ => notecommands}/AddStrengthCommand.java (95%) rename src/main/java/seedu/address/logic/commands/{ => notecommands}/AddWeaknessCommand.java (95%) rename src/main/java/seedu/address/logic/commands/{ => notecommands}/DeleteMiscCommand.java (95%) rename src/main/java/seedu/address/logic/commands/{ => notecommands}/DeleteStrengthCommand.java (95%) rename src/main/java/seedu/address/logic/commands/{ => notecommands}/DeleteWeaknessCommand.java (95%) rename src/main/java/seedu/address/logic/parser/{ => notecommandparsers}/AddMiscCommandParser.java (85%) rename src/main/java/seedu/address/logic/parser/{ => notecommandparsers}/AddStrengthCommandParser.java (85%) rename src/main/java/seedu/address/logic/parser/{ => notecommandparsers}/AddWeaknessCommandParser.java (85%) rename src/main/java/seedu/address/logic/parser/{ => notecommandparsers}/DeleteMiscCommandParser.java (85%) rename src/main/java/seedu/address/logic/parser/{ => notecommandparsers}/DeleteStrengthCommandParser.java (85%) rename src/main/java/seedu/address/logic/parser/{ => notecommandparsers}/DeleteWeaknessCommandParser.java (85%) create mode 100644 src/main/resources/view/NoteStyle.css diff --git a/src/main/java/seedu/address/logic/commands/AddMiscCommand.java b/src/main/java/seedu/address/logic/commands/notecommands/AddMiscCommand.java similarity index 95% rename from src/main/java/seedu/address/logic/commands/AddMiscCommand.java rename to src/main/java/seedu/address/logic/commands/notecommands/AddMiscCommand.java index 23584551449..b9e1f231f45 100644 --- a/src/main/java/seedu/address/logic/commands/AddMiscCommand.java +++ b/src/main/java/seedu/address/logic/commands/notecommands/AddMiscCommand.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.notecommands; import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; @@ -8,6 +8,8 @@ import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.Command; +import seedu.address.logic.commands.CommandResult; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; import seedu.address.model.note.Note; diff --git a/src/main/java/seedu/address/logic/commands/AddStrengthCommand.java b/src/main/java/seedu/address/logic/commands/notecommands/AddStrengthCommand.java similarity index 95% rename from src/main/java/seedu/address/logic/commands/AddStrengthCommand.java rename to src/main/java/seedu/address/logic/commands/notecommands/AddStrengthCommand.java index c32763c9f88..cd3be828af6 100644 --- a/src/main/java/seedu/address/logic/commands/AddStrengthCommand.java +++ b/src/main/java/seedu/address/logic/commands/notecommands/AddStrengthCommand.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.notecommands; import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; @@ -8,6 +8,8 @@ import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.Command; +import seedu.address.logic.commands.CommandResult; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; import seedu.address.model.note.Note; diff --git a/src/main/java/seedu/address/logic/commands/AddWeaknessCommand.java b/src/main/java/seedu/address/logic/commands/notecommands/AddWeaknessCommand.java similarity index 95% rename from src/main/java/seedu/address/logic/commands/AddWeaknessCommand.java rename to src/main/java/seedu/address/logic/commands/notecommands/AddWeaknessCommand.java index 60551aa2c39..28c3fbce007 100644 --- a/src/main/java/seedu/address/logic/commands/AddWeaknessCommand.java +++ b/src/main/java/seedu/address/logic/commands/notecommands/AddWeaknessCommand.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.notecommands; import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; @@ -8,6 +8,8 @@ import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.Command; +import seedu.address.logic.commands.CommandResult; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; import seedu.address.model.note.Note; diff --git a/src/main/java/seedu/address/logic/commands/DeleteMiscCommand.java b/src/main/java/seedu/address/logic/commands/notecommands/DeleteMiscCommand.java similarity index 95% rename from src/main/java/seedu/address/logic/commands/DeleteMiscCommand.java rename to src/main/java/seedu/address/logic/commands/notecommands/DeleteMiscCommand.java index 555e6db54b7..07e2a7eec8e 100644 --- a/src/main/java/seedu/address/logic/commands/DeleteMiscCommand.java +++ b/src/main/java/seedu/address/logic/commands/notecommands/DeleteMiscCommand.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.notecommands; import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; @@ -8,6 +8,8 @@ import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.Command; +import seedu.address.logic.commands.CommandResult; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; import seedu.address.model.note.Note; diff --git a/src/main/java/seedu/address/logic/commands/DeleteStrengthCommand.java b/src/main/java/seedu/address/logic/commands/notecommands/DeleteStrengthCommand.java similarity index 95% rename from src/main/java/seedu/address/logic/commands/DeleteStrengthCommand.java rename to src/main/java/seedu/address/logic/commands/notecommands/DeleteStrengthCommand.java index 4f6467aea70..3aa9e706437 100644 --- a/src/main/java/seedu/address/logic/commands/DeleteStrengthCommand.java +++ b/src/main/java/seedu/address/logic/commands/notecommands/DeleteStrengthCommand.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.notecommands; import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; @@ -8,6 +8,8 @@ import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.Command; +import seedu.address.logic.commands.CommandResult; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; import seedu.address.model.note.Note; diff --git a/src/main/java/seedu/address/logic/commands/DeleteWeaknessCommand.java b/src/main/java/seedu/address/logic/commands/notecommands/DeleteWeaknessCommand.java similarity index 95% rename from src/main/java/seedu/address/logic/commands/DeleteWeaknessCommand.java rename to src/main/java/seedu/address/logic/commands/notecommands/DeleteWeaknessCommand.java index 47c023f6af8..8b4ed5610b7 100644 --- a/src/main/java/seedu/address/logic/commands/DeleteWeaknessCommand.java +++ b/src/main/java/seedu/address/logic/commands/notecommands/DeleteWeaknessCommand.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.notecommands; import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; @@ -8,6 +8,8 @@ import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.Command; +import seedu.address.logic.commands.CommandResult; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; import seedu.address.model.note.Note; diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index a97c78e5433..a8c7474a4d7 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -7,25 +7,31 @@ import java.util.regex.Pattern; import seedu.address.logic.commands.AddCommand; -import seedu.address.logic.commands.AddMiscCommand; -import seedu.address.logic.commands.AddStrengthCommand; +import seedu.address.logic.commands.notecommands.AddMiscCommand; +import seedu.address.logic.commands.notecommands.AddStrengthCommand; import seedu.address.logic.commands.AddTagCommand; import seedu.address.logic.commands.AddTaskCommand; -import seedu.address.logic.commands.AddWeaknessCommand; +import seedu.address.logic.commands.notecommands.AddWeaknessCommand; import seedu.address.logic.commands.ClearCommand; import seedu.address.logic.commands.Command; import seedu.address.logic.commands.DeleteCommand; -import seedu.address.logic.commands.DeleteMiscCommand; -import seedu.address.logic.commands.DeleteStrengthCommand; +import seedu.address.logic.commands.notecommands.DeleteMiscCommand; +import seedu.address.logic.commands.notecommands.DeleteStrengthCommand; import seedu.address.logic.commands.DeleteTagCommand; import seedu.address.logic.commands.DeleteTaskCommand; -import seedu.address.logic.commands.DeleteWeaknessCommand; +import seedu.address.logic.commands.notecommands.DeleteWeaknessCommand; import seedu.address.logic.commands.EditCommand; import seedu.address.logic.commands.ExitCommand; import seedu.address.logic.commands.FindCommand; import seedu.address.logic.commands.HelpCommand; import seedu.address.logic.commands.ListCommand; import seedu.address.logic.parser.exceptions.ParseException; +import seedu.address.logic.parser.notecommandparsers.AddMiscCommandParser; +import seedu.address.logic.parser.notecommandparsers.AddStrengthCommandParser; +import seedu.address.logic.parser.notecommandparsers.AddWeaknessCommandParser; +import seedu.address.logic.parser.notecommandparsers.DeleteMiscCommandParser; +import seedu.address.logic.parser.notecommandparsers.DeleteStrengthCommandParser; +import seedu.address.logic.parser.notecommandparsers.DeleteWeaknessCommandParser; /** * Parses user input. diff --git a/src/main/java/seedu/address/logic/parser/AddMiscCommandParser.java b/src/main/java/seedu/address/logic/parser/notecommandparsers/AddMiscCommandParser.java similarity index 85% rename from src/main/java/seedu/address/logic/parser/AddMiscCommandParser.java rename to src/main/java/seedu/address/logic/parser/notecommandparsers/AddMiscCommandParser.java index dc6b1857399..e902a700308 100644 --- a/src/main/java/seedu/address/logic/parser/AddMiscCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/notecommandparsers/AddMiscCommandParser.java @@ -1,9 +1,11 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.notecommandparsers; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.AddMiscCommand; +import seedu.address.logic.commands.notecommands.AddMiscCommand; +import seedu.address.logic.parser.Parser; +import seedu.address.logic.parser.ParserUtil; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.note.Note; diff --git a/src/main/java/seedu/address/logic/parser/AddStrengthCommandParser.java b/src/main/java/seedu/address/logic/parser/notecommandparsers/AddStrengthCommandParser.java similarity index 85% rename from src/main/java/seedu/address/logic/parser/AddStrengthCommandParser.java rename to src/main/java/seedu/address/logic/parser/notecommandparsers/AddStrengthCommandParser.java index 8006f3ddd85..0bd5bb17b38 100644 --- a/src/main/java/seedu/address/logic/parser/AddStrengthCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/notecommandparsers/AddStrengthCommandParser.java @@ -1,9 +1,11 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.notecommandparsers; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.AddStrengthCommand; +import seedu.address.logic.commands.notecommands.AddStrengthCommand; +import seedu.address.logic.parser.Parser; +import seedu.address.logic.parser.ParserUtil; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.note.Note; diff --git a/src/main/java/seedu/address/logic/parser/AddWeaknessCommandParser.java b/src/main/java/seedu/address/logic/parser/notecommandparsers/AddWeaknessCommandParser.java similarity index 85% rename from src/main/java/seedu/address/logic/parser/AddWeaknessCommandParser.java rename to src/main/java/seedu/address/logic/parser/notecommandparsers/AddWeaknessCommandParser.java index 47a4b40d544..07b1f406c9e 100644 --- a/src/main/java/seedu/address/logic/parser/AddWeaknessCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/notecommandparsers/AddWeaknessCommandParser.java @@ -1,9 +1,11 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.notecommandparsers; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.AddWeaknessCommand; +import seedu.address.logic.commands.notecommands.AddWeaknessCommand; +import seedu.address.logic.parser.Parser; +import seedu.address.logic.parser.ParserUtil; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.note.Note; diff --git a/src/main/java/seedu/address/logic/parser/DeleteMiscCommandParser.java b/src/main/java/seedu/address/logic/parser/notecommandparsers/DeleteMiscCommandParser.java similarity index 85% rename from src/main/java/seedu/address/logic/parser/DeleteMiscCommandParser.java rename to src/main/java/seedu/address/logic/parser/notecommandparsers/DeleteMiscCommandParser.java index fa9caf5a1ab..331a4881f09 100644 --- a/src/main/java/seedu/address/logic/parser/DeleteMiscCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/notecommandparsers/DeleteMiscCommandParser.java @@ -1,9 +1,11 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.notecommandparsers; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.DeleteMiscCommand; +import seedu.address.logic.commands.notecommands.DeleteMiscCommand; +import seedu.address.logic.parser.Parser; +import seedu.address.logic.parser.ParserUtil; import seedu.address.logic.parser.exceptions.ParseException; /** diff --git a/src/main/java/seedu/address/logic/parser/DeleteStrengthCommandParser.java b/src/main/java/seedu/address/logic/parser/notecommandparsers/DeleteStrengthCommandParser.java similarity index 85% rename from src/main/java/seedu/address/logic/parser/DeleteStrengthCommandParser.java rename to src/main/java/seedu/address/logic/parser/notecommandparsers/DeleteStrengthCommandParser.java index b6911a5f970..57f45d737a9 100644 --- a/src/main/java/seedu/address/logic/parser/DeleteStrengthCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/notecommandparsers/DeleteStrengthCommandParser.java @@ -1,9 +1,11 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.notecommandparsers; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.DeleteStrengthCommand; +import seedu.address.logic.commands.notecommands.DeleteStrengthCommand; +import seedu.address.logic.parser.Parser; +import seedu.address.logic.parser.ParserUtil; import seedu.address.logic.parser.exceptions.ParseException; /** diff --git a/src/main/java/seedu/address/logic/parser/DeleteWeaknessCommandParser.java b/src/main/java/seedu/address/logic/parser/notecommandparsers/DeleteWeaknessCommandParser.java similarity index 85% rename from src/main/java/seedu/address/logic/parser/DeleteWeaknessCommandParser.java rename to src/main/java/seedu/address/logic/parser/notecommandparsers/DeleteWeaknessCommandParser.java index 29919eda204..aa0b8fe01fd 100644 --- a/src/main/java/seedu/address/logic/parser/DeleteWeaknessCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/notecommandparsers/DeleteWeaknessCommandParser.java @@ -1,9 +1,11 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.notecommandparsers; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.DeleteWeaknessCommand; +import seedu.address.logic.commands.notecommands.DeleteWeaknessCommand; +import seedu.address.logic.parser.Parser; +import seedu.address.logic.parser.ParserUtil; import seedu.address.logic.parser.exceptions.ParseException; /** diff --git a/src/main/resources/view/NoteStyle.css b/src/main/resources/view/NoteStyle.css new file mode 100644 index 00000000000..88a5745f5db --- /dev/null +++ b/src/main/resources/view/NoteStyle.css @@ -0,0 +1,29 @@ +#strengthTitle { + -fx-font-weight: bold; +} + +#weaknessTitle { + -fx-font-weight: bold; +} + +#miscTitle { + -fx-font-weight: bold; +} + +#strengths { + -fx-max-width: 150.0; + -fx-background-color: #fff2cd; + -fx-text-fill: #000000; +} + +#weaknesses { + -fx-max-width: 150.0; + -fx-background-color: #fff2cd; + -fx-text-fill: #000000; +} + +#misc { + -fx-max-width: 150.0; + -fx-background-color: #fff2cd; + -fx-text-fill: #000000; +} diff --git a/src/main/resources/view/PersonListCard.fxml b/src/main/resources/view/PersonListCard.fxml index 0529f344001..b4045720bf5 100644 --- a/src/main/resources/view/PersonListCard.fxml +++ b/src/main/resources/view/PersonListCard.fxml @@ -1,5 +1,6 @@ + @@ -11,6 +12,9 @@ + + + @@ -36,8 +40,8 @@ - @@ -45,14 +49,14 @@ - - diff --git a/src/test/java/seedu/address/logic/commands/AddMiscCommandTest.java b/src/test/java/seedu/address/logic/commands/AddMiscCommandTest.java index c2977702b0d..ae8e45851f6 100644 --- a/src/test/java/seedu/address/logic/commands/AddMiscCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddMiscCommandTest.java @@ -16,6 +16,7 @@ import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.notecommands.AddMiscCommand; import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ModelManager; diff --git a/src/test/java/seedu/address/logic/commands/AddStrengthCommandTest.java b/src/test/java/seedu/address/logic/commands/AddStrengthCommandTest.java index 6c06ed0fc29..1d118c177b5 100644 --- a/src/test/java/seedu/address/logic/commands/AddStrengthCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddStrengthCommandTest.java @@ -16,6 +16,7 @@ import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.notecommands.AddStrengthCommand; import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ModelManager; diff --git a/src/test/java/seedu/address/logic/commands/AddWeaknessCommandTest.java b/src/test/java/seedu/address/logic/commands/AddWeaknessCommandTest.java index c39970234ac..a5915045149 100644 --- a/src/test/java/seedu/address/logic/commands/AddWeaknessCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddWeaknessCommandTest.java @@ -16,6 +16,7 @@ import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.notecommands.AddWeaknessCommand; import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ModelManager; diff --git a/src/test/java/seedu/address/logic/commands/DeleteMiscCommandTest.java b/src/test/java/seedu/address/logic/commands/DeleteMiscCommandTest.java index 8a251bb6001..46798012ec6 100644 --- a/src/test/java/seedu/address/logic/commands/DeleteMiscCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/DeleteMiscCommandTest.java @@ -18,6 +18,7 @@ import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.notecommands.DeleteMiscCommand; import seedu.address.model.Model; import seedu.address.model.ModelManager; import seedu.address.model.UserPrefs; diff --git a/src/test/java/seedu/address/logic/commands/DeleteStrengthCommandTest.java b/src/test/java/seedu/address/logic/commands/DeleteStrengthCommandTest.java index d6d39510ccf..742e9b1ba4f 100644 --- a/src/test/java/seedu/address/logic/commands/DeleteStrengthCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/DeleteStrengthCommandTest.java @@ -18,6 +18,7 @@ import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.notecommands.DeleteStrengthCommand; import seedu.address.model.Model; import seedu.address.model.ModelManager; import seedu.address.model.UserPrefs; diff --git a/src/test/java/seedu/address/logic/commands/DeleteWeaknessCommandTest.java b/src/test/java/seedu/address/logic/commands/DeleteWeaknessCommandTest.java index 99afa901a02..9cdd8b31fe6 100644 --- a/src/test/java/seedu/address/logic/commands/DeleteWeaknessCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/DeleteWeaknessCommandTest.java @@ -18,6 +18,7 @@ import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.notecommands.DeleteWeaknessCommand; import seedu.address.model.Model; import seedu.address.model.ModelManager; import seedu.address.model.UserPrefs; diff --git a/src/test/java/seedu/address/logic/parser/AddMiscCommandParserTest.java b/src/test/java/seedu/address/logic/parser/AddMiscCommandParserTest.java index 6a905779d82..8e636e8551d 100644 --- a/src/test/java/seedu/address/logic/parser/AddMiscCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/AddMiscCommandParserTest.java @@ -8,7 +8,8 @@ import org.junit.jupiter.api.Test; -import seedu.address.logic.commands.AddMiscCommand; +import seedu.address.logic.commands.notecommands.AddMiscCommand; +import seedu.address.logic.parser.notecommandparsers.AddMiscCommandParser; import seedu.address.model.note.Note; class AddMiscCommandParserTest { diff --git a/src/test/java/seedu/address/logic/parser/AddStrengthCommandParserTest.java b/src/test/java/seedu/address/logic/parser/AddStrengthCommandParserTest.java index 81e755bad85..3bcf59d4d70 100644 --- a/src/test/java/seedu/address/logic/parser/AddStrengthCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/AddStrengthCommandParserTest.java @@ -8,7 +8,8 @@ import org.junit.jupiter.api.Test; -import seedu.address.logic.commands.AddStrengthCommand; +import seedu.address.logic.commands.notecommands.AddStrengthCommand; +import seedu.address.logic.parser.notecommandparsers.AddStrengthCommandParser; import seedu.address.model.note.Note; class AddStrengthCommandParserTest { diff --git a/src/test/java/seedu/address/logic/parser/AddWeaknessCommandParserTest.java b/src/test/java/seedu/address/logic/parser/AddWeaknessCommandParserTest.java index bec3c9c1546..dbc6cd10584 100644 --- a/src/test/java/seedu/address/logic/parser/AddWeaknessCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/AddWeaknessCommandParserTest.java @@ -8,7 +8,8 @@ import org.junit.jupiter.api.Test; -import seedu.address.logic.commands.AddWeaknessCommand; +import seedu.address.logic.commands.notecommands.AddWeaknessCommand; +import seedu.address.logic.parser.notecommandparsers.AddWeaknessCommandParser; import seedu.address.model.note.Note; class AddWeaknessCommandParserTest { diff --git a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java index d518f62b1a2..54f424bc517 100644 --- a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java +++ b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java @@ -15,14 +15,14 @@ import org.junit.jupiter.api.Test; import seedu.address.logic.commands.AddCommand; -import seedu.address.logic.commands.AddMiscCommand; -import seedu.address.logic.commands.AddStrengthCommand; -import seedu.address.logic.commands.AddWeaknessCommand; +import seedu.address.logic.commands.notecommands.AddMiscCommand; +import seedu.address.logic.commands.notecommands.AddStrengthCommand; +import seedu.address.logic.commands.notecommands.AddWeaknessCommand; import seedu.address.logic.commands.ClearCommand; import seedu.address.logic.commands.DeleteCommand; -import seedu.address.logic.commands.DeleteMiscCommand; -import seedu.address.logic.commands.DeleteStrengthCommand; -import seedu.address.logic.commands.DeleteWeaknessCommand; +import seedu.address.logic.commands.notecommands.DeleteMiscCommand; +import seedu.address.logic.commands.notecommands.DeleteStrengthCommand; +import seedu.address.logic.commands.notecommands.DeleteWeaknessCommand; import seedu.address.logic.commands.EditCommand; import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; import seedu.address.logic.commands.ExitCommand; diff --git a/src/test/java/seedu/address/logic/parser/DeleteMiscCommandParserTest.java b/src/test/java/seedu/address/logic/parser/DeleteMiscCommandParserTest.java index 721fd4d2b41..e42ec277818 100644 --- a/src/test/java/seedu/address/logic/parser/DeleteMiscCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/DeleteMiscCommandParserTest.java @@ -8,7 +8,8 @@ import org.junit.jupiter.api.Test; -import seedu.address.logic.commands.DeleteMiscCommand; +import seedu.address.logic.commands.notecommands.DeleteMiscCommand; +import seedu.address.logic.parser.notecommandparsers.DeleteMiscCommandParser; /** * Contains tests for diff --git a/src/test/java/seedu/address/logic/parser/DeleteStrengthCommandParserTest.java b/src/test/java/seedu/address/logic/parser/DeleteStrengthCommandParserTest.java index e7323ec3032..798053d7722 100644 --- a/src/test/java/seedu/address/logic/parser/DeleteStrengthCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/DeleteStrengthCommandParserTest.java @@ -8,7 +8,8 @@ import org.junit.jupiter.api.Test; -import seedu.address.logic.commands.DeleteStrengthCommand; +import seedu.address.logic.commands.notecommands.DeleteStrengthCommand; +import seedu.address.logic.parser.notecommandparsers.DeleteStrengthCommandParser; /** * Contains tests for diff --git a/src/test/java/seedu/address/logic/parser/DeleteWeaknessCommandParserTest.java b/src/test/java/seedu/address/logic/parser/DeleteWeaknessCommandParserTest.java index db7436780ee..d6c93f2c591 100644 --- a/src/test/java/seedu/address/logic/parser/DeleteWeaknessCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/DeleteWeaknessCommandParserTest.java @@ -8,7 +8,8 @@ import org.junit.jupiter.api.Test; -import seedu.address.logic.commands.DeleteWeaknessCommand; +import seedu.address.logic.commands.notecommands.DeleteWeaknessCommand; +import seedu.address.logic.parser.notecommandparsers.DeleteWeaknessCommandParser; /** * Contains tests for From e43b1b99cc335a74eae77e43c6ab0f097180f385 Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Sun, 20 Mar 2022 00:16:16 +0800 Subject: [PATCH 124/455] Fix checkstyle violations --- .../address/logic/parser/AddressBookParser.java | 12 ++++++------ .../address/logic/parser/AddressBookParserTest.java | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index a8c7474a4d7..ed679e5d645 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -7,24 +7,24 @@ import java.util.regex.Pattern; import seedu.address.logic.commands.AddCommand; -import seedu.address.logic.commands.notecommands.AddMiscCommand; -import seedu.address.logic.commands.notecommands.AddStrengthCommand; import seedu.address.logic.commands.AddTagCommand; import seedu.address.logic.commands.AddTaskCommand; -import seedu.address.logic.commands.notecommands.AddWeaknessCommand; import seedu.address.logic.commands.ClearCommand; import seedu.address.logic.commands.Command; import seedu.address.logic.commands.DeleteCommand; -import seedu.address.logic.commands.notecommands.DeleteMiscCommand; -import seedu.address.logic.commands.notecommands.DeleteStrengthCommand; import seedu.address.logic.commands.DeleteTagCommand; import seedu.address.logic.commands.DeleteTaskCommand; -import seedu.address.logic.commands.notecommands.DeleteWeaknessCommand; import seedu.address.logic.commands.EditCommand; import seedu.address.logic.commands.ExitCommand; import seedu.address.logic.commands.FindCommand; import seedu.address.logic.commands.HelpCommand; import seedu.address.logic.commands.ListCommand; +import seedu.address.logic.commands.notecommands.AddMiscCommand; +import seedu.address.logic.commands.notecommands.AddStrengthCommand; +import seedu.address.logic.commands.notecommands.AddWeaknessCommand; +import seedu.address.logic.commands.notecommands.DeleteMiscCommand; +import seedu.address.logic.commands.notecommands.DeleteStrengthCommand; +import seedu.address.logic.commands.notecommands.DeleteWeaknessCommand; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.logic.parser.notecommandparsers.AddMiscCommandParser; import seedu.address.logic.parser.notecommandparsers.AddStrengthCommandParser; diff --git a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java index 54f424bc517..b19d70c2745 100644 --- a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java +++ b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java @@ -15,20 +15,20 @@ import org.junit.jupiter.api.Test; import seedu.address.logic.commands.AddCommand; -import seedu.address.logic.commands.notecommands.AddMiscCommand; -import seedu.address.logic.commands.notecommands.AddStrengthCommand; -import seedu.address.logic.commands.notecommands.AddWeaknessCommand; import seedu.address.logic.commands.ClearCommand; import seedu.address.logic.commands.DeleteCommand; -import seedu.address.logic.commands.notecommands.DeleteMiscCommand; -import seedu.address.logic.commands.notecommands.DeleteStrengthCommand; -import seedu.address.logic.commands.notecommands.DeleteWeaknessCommand; import seedu.address.logic.commands.EditCommand; import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; import seedu.address.logic.commands.ExitCommand; import seedu.address.logic.commands.FindCommand; import seedu.address.logic.commands.HelpCommand; import seedu.address.logic.commands.ListCommand; +import seedu.address.logic.commands.notecommands.AddMiscCommand; +import seedu.address.logic.commands.notecommands.AddStrengthCommand; +import seedu.address.logic.commands.notecommands.AddWeaknessCommand; +import seedu.address.logic.commands.notecommands.DeleteMiscCommand; +import seedu.address.logic.commands.notecommands.DeleteStrengthCommand; +import seedu.address.logic.commands.notecommands.DeleteWeaknessCommand; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.name.PersonNameContainsKeywordsPredicate; import seedu.address.model.note.Note; From 4c0eca684bc04eb6eb563a1b917f6ec81fcc0573 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Sun, 20 Mar 2022 06:28:39 +0800 Subject: [PATCH 125/455] Tag Persons to Task --- .../logic/commands/AddTaskCommand.java | 22 +- .../logic/parser/AddTaskCommandParser.java | 8 +- .../seedu/address/logic/parser/CliSyntax.java | 1 + .../address/logic/parser/ParserUtil.java | 15 ++ .../java/seedu/address/model/task/Task.java | 29 ++- .../address/model/util/SampleDataUtil.java | 18 +- .../address/storage/JsonAdaptedName.java | 48 ++++ .../address/storage/JsonAdaptedTask.java | 19 +- src/main/java/seedu/address/ui/TaskCard.java | 5 + src/main/resources/view/DarkTheme.css | 23 ++ src/main/resources/view/PersonListCard.fxml | 17 +- src/main/resources/view/TaskCard.fxml | 27 +- .../typicalTasksTaskBook.json | 9 +- .../logic/commands/AddTaskCommandTest.java | 244 ++++-------------- .../seedu/address/model/task/TaskTest.java | 10 +- .../address/storage/JsonAdaptedTaskTest.java | 44 +++- .../seedu/address/testutil/TaskBuilder.java | 15 +- .../seedu/address/testutil/TypicalTasks.java | 9 +- 18 files changed, 331 insertions(+), 232 deletions(-) create mode 100644 src/main/java/seedu/address/storage/JsonAdaptedName.java diff --git a/src/main/java/seedu/address/logic/commands/AddTaskCommand.java b/src/main/java/seedu/address/logic/commands/AddTaskCommand.java index 134465d8ac4..b083d0f82f9 100644 --- a/src/main/java/seedu/address/logic/commands/AddTaskCommand.java +++ b/src/main/java/seedu/address/logic/commands/AddTaskCommand.java @@ -9,8 +9,13 @@ import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; +import seedu.address.model.name.Name; +import seedu.address.model.person.Person; import seedu.address.model.task.Task; +import java.util.List; +import java.util.Set; + /** * Adds a task to the task list. */ @@ -34,7 +39,8 @@ public class AddTaskCommand extends Command { + PREFIX_TAG + "meeting "; public static final String MESSAGE_SUCCESS = "New task added: %1$s"; - public static final String MESSAGE_DUPLICATE_TASK = "This task already exists in the TaskList"; + public static final String MESSAGE_DUPLICATE_TASK = "This task already exists in the task book"; + public static final String MESSAGE_CONTACT_NOT_FOUND = "The person cannot be found in the current address book"; private final Task toAdd; @@ -49,6 +55,20 @@ public AddTaskCommand(Task task) { @Override public CommandResult execute(Model model) throws CommandException { requireNonNull(model); + List lastShownList = model.getFilteredPersonList(); + Set persons = toAdd.getPersons(); + //Checks if persons are in lastShownList + for (Name name: persons) { + boolean notFound = true; + for (Person person: lastShownList) { + if (person.getName().equals(name)) { + notFound = false; + } + } + if (notFound) { + throw new CommandException(MESSAGE_CONTACT_NOT_FOUND); + } + } if (model.hasTask(toAdd)) { throw new CommandException(MESSAGE_DUPLICATE_TASK); diff --git a/src/main/java/seedu/address/logic/parser/AddTaskCommandParser.java b/src/main/java/seedu/address/logic/parser/AddTaskCommandParser.java index bf3c9c9ce1c..d2602e3fc45 100644 --- a/src/main/java/seedu/address/logic/parser/AddTaskCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/AddTaskCommandParser.java @@ -6,6 +6,7 @@ import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; import static seedu.address.logic.parser.CliSyntax.PREFIX_STARTTIME; import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; +import static seedu.address.logic.parser.CliSyntax.PREFIX_CONTACT; import java.util.Set; import java.util.stream.Stream; @@ -33,7 +34,7 @@ public class AddTaskCommandParser implements Parser { public AddTaskCommand parse(String args) throws ParseException { ArgumentMultimap argMultimap = ArgumentTokenizer.tokenize(args, PREFIX_NAME, PREFIX_DATE, - PREFIX_STARTTIME, PREFIX_ENDTIME, PREFIX_TAG); + PREFIX_STARTTIME, PREFIX_ENDTIME, PREFIX_TAG, PREFIX_CONTACT); if (!arePrefixesPresent(argMultimap, PREFIX_NAME, PREFIX_DATE, PREFIX_STARTTIME, PREFIX_ENDTIME) || !argMultimap.getPreamble().isEmpty()) { @@ -44,9 +45,10 @@ public AddTaskCommand parse(String args) throws ParseException { Date date = ParserUtil.parseDate(argMultimap.getValue(PREFIX_DATE).get()); StartTime startTime = ParserUtil.parseStartTime(argMultimap.getValue(PREFIX_STARTTIME).get()); EndTime endTime = ParserUtil.parseEndTime(argMultimap.getValue(PREFIX_ENDTIME).get()); - Set tagList = ParserUtil.parseTags(argMultimap.getAllValues(PREFIX_TAG)); + Set tagSet = ParserUtil.parseTags(argMultimap.getAllValues(PREFIX_TAG)); + Set nameSet = ParserUtil.parseNames(argMultimap.getAllValues(PREFIX_CONTACT)); - Task task = new Task(name, date, startTime, endTime, tagList); + Task task = new Task(name, date, startTime, endTime, tagSet, nameSet); return new AddTaskCommand(task); } diff --git a/src/main/java/seedu/address/logic/parser/CliSyntax.java b/src/main/java/seedu/address/logic/parser/CliSyntax.java index 088871fadf8..5037700eecc 100644 --- a/src/main/java/seedu/address/logic/parser/CliSyntax.java +++ b/src/main/java/seedu/address/logic/parser/CliSyntax.java @@ -11,6 +11,7 @@ public class CliSyntax { public static final Prefix PREFIX_EMAIL = new Prefix("e/"); public static final Prefix PREFIX_ADDRESS = new Prefix("a/"); public static final Prefix PREFIX_TAG = new Prefix("t/"); + public static final Prefix PREFIX_CONTACT = new Prefix("c/"); public static final Prefix PREFIX_DATE = new Prefix("d/"); public static final Prefix PREFIX_STARTTIME = new Prefix("st/"); public static final Prefix PREFIX_ENDTIME = new Prefix("et/"); diff --git a/src/main/java/seedu/address/logic/parser/ParserUtil.java b/src/main/java/seedu/address/logic/parser/ParserUtil.java index 79484d5d4f1..c92099498f7 100644 --- a/src/main/java/seedu/address/logic/parser/ParserUtil.java +++ b/src/main/java/seedu/address/logic/parser/ParserUtil.java @@ -69,6 +69,21 @@ public static Name parseName(String name) throws ParseException { return new Name(trimmedName); } + /** + * Parses {@code Collection names} into a {@code Set}. + */ + public static Set parseNames(Collection names) throws ParseException { + requireNonNull(names); + final Set nameSet = new HashSet<>(); + for (String name : names) { + String trimmedName = name.trim(); + if (!Name.isValidName(trimmedName)) { + throw new ParseException(Name.MESSAGE_CONSTRAINTS); + } + nameSet.add(new Name(name)); + } + return nameSet; + } /** * Parses a {@code String phone} into a {@code Phone}. * Leading and trailing whitespaces will be trimmed. diff --git a/src/main/java/seedu/address/model/task/Task.java b/src/main/java/seedu/address/model/task/Task.java index d58c7c5ba03..ca4c051b1c1 100644 --- a/src/main/java/seedu/address/model/task/Task.java +++ b/src/main/java/seedu/address/model/task/Task.java @@ -20,17 +20,19 @@ public class Task { //Data fields private final Set tags = new HashSet<>(); + private final Set persons = new HashSet<>(); //persons are represented by their names /** * Every field must be present and not null. */ - public Task(Name name, Date date, StartTime startTime, EndTime endTime, Set tags) { - requireAllNonNull(name, date, startTime, endTime, tags); + public Task(Name name, Date date, StartTime startTime, EndTime endTime, Set tags, Set persons) { + requireAllNonNull(name, date, startTime, endTime, tags, persons); this.name = name; this.date = date; this.startTime = startTime; this.endTime = endTime; this.tags.addAll(tags); + this.persons.addAll(persons); } //Getters @@ -66,6 +68,14 @@ public Set getTags() { return Collections.unmodifiableSet(tags); } + /** + * Returns an immutable persons set, which throws {@code UnsupportedOperationException} + * if modification is attempted. + */ + public Set getPersons() { + return Collections.unmodifiableSet(persons); + } + /** * Returns true if both tasks have the same name. * This defines a weaker notion of equality between two tasks. @@ -98,13 +108,14 @@ public boolean equals(Object other) { && otherTask.getDate().equals(getDate()) && otherTask.getStartTime().equals(getStartTime()) && otherTask.getEndTime().equals(getEndTime()) - && otherTask.getTags().equals(getTags()); + && otherTask.getTags().equals(getTags()) + && otherTask.getPersons().equals(getPersons()); } @Override public int hashCode() { // use this method for custom fields hashing instead of implementing your own - return Objects.hash(name, date, startTime, endTime, tags); + return Objects.hash(name, date, startTime, endTime, tags, persons); } @Override @@ -123,6 +134,16 @@ public String toString() { builder.append("; Tags: "); tags.forEach(builder::append); } + Set persons = getPersons(); + if (!persons.isEmpty()) { + builder.append("; Persons: "); + int count = 0; + for (Name name: persons) { + builder.append(name); + builder.append(" "); + } + } + return builder.toString(); } } diff --git a/src/main/java/seedu/address/model/util/SampleDataUtil.java b/src/main/java/seedu/address/model/util/SampleDataUtil.java index 151494c12e3..d6a4fb75ecc 100644 --- a/src/main/java/seedu/address/model/util/SampleDataUtil.java +++ b/src/main/java/seedu/address/model/util/SampleDataUtil.java @@ -51,13 +51,13 @@ public static Person[] getSamplePersons() { public static Task[] getSampleTasks() { return new Task[] { new Task(new Name("Shareholders Meeting"), new Date("10-04-2022"), new StartTime("09:00"), - new EndTime("12:00"), getTagSet("team1")), + new EndTime("12:00"), getTagSet("team1"), getPersonSet("Alex Yeoh")), new Task(new Name("Team Training"), new Date("11-04-2022"), new StartTime("09:00"), - new EndTime("12:00"), getTagSet("team1")), + new EndTime("12:00"), getTagSet("team1"), getPersonSet("Alex Yeoh", "Bernice Yu")), new Task(new Name("Annual Dinner"), new Date("11-04-2022"), new StartTime("18:00"), - new EndTime("20:00"), getTagSet("family", "friends")), + new EndTime("20:00"), getTagSet("family", "friends"), getPersonSet("Irfan Ibrahim")), new Task(new Name("Recruitment Talk"), new Date("12-04-2022"), new StartTime("15:00"), - new EndTime("18:00"), getTagSet("school")) + new EndTime("18:00"), getTagSet("school"), getPersonSet("Irfan Ibrahim")) }; } @@ -76,6 +76,7 @@ public static ReadOnlyTaskBook getSampleTaskBook() { } return sampleTb; } + /** * Returns a tag set containing the list of strings given. */ @@ -85,6 +86,15 @@ public static Set getTagSet(String... strings) { .collect(Collectors.toSet()); } + /** + * Returns a person set containing the list of strings given. + */ + public static Set getPersonSet(String... strings) { + return Arrays.stream(strings) + .map(Name::new) + .collect(Collectors.toSet()); + } + /** * Returns a note list containing the list of strings given. */ diff --git a/src/main/java/seedu/address/storage/JsonAdaptedName.java b/src/main/java/seedu/address/storage/JsonAdaptedName.java new file mode 100644 index 00000000000..3e67659b2f2 --- /dev/null +++ b/src/main/java/seedu/address/storage/JsonAdaptedName.java @@ -0,0 +1,48 @@ +package seedu.address.storage; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +import seedu.address.commons.exceptions.IllegalValueException; +import seedu.address.model.name.Name; + +/** + * Jackson-friendly version of {@link Name}. + */ +class JsonAdaptedName { + + private final String name; + + /** + * Constructs a {@code JsonAdaptedName} with the given {@code name}. + */ + @JsonCreator + public JsonAdaptedName(String name) { + this.name = name; + } + + /** + * Converts a given {@code Name} into this class for Jackson use. + */ + public JsonAdaptedName(Name source) { + name = source.fullName; + } + + @JsonValue + public String getPersonName() { + return name; + } + + /** + * Converts this Jackson-friendly adapted tag object into the model's {@code Name} object. + * + * @throws IllegalValueException if there were any data constraints violated in the adapted name. + */ + public Name toModelType() throws IllegalValueException { + if (!Name.isValidName(name)) { + throw new IllegalValueException(Name.MESSAGE_CONSTRAINTS); + } + return new Name(name); + } + +} diff --git a/src/main/java/seedu/address/storage/JsonAdaptedTask.java b/src/main/java/seedu/address/storage/JsonAdaptedTask.java index dfcb8330c9a..3602070bd32 100644 --- a/src/main/java/seedu/address/storage/JsonAdaptedTask.java +++ b/src/main/java/seedu/address/storage/JsonAdaptedTask.java @@ -25,6 +25,7 @@ public class JsonAdaptedTask { private final String startTime; private final String endTime; private final List tagged = new ArrayList<>(); + private final List persons = new ArrayList<>(); /** * Constructs a {@code JsonAdaptedTask} with the given task details. @@ -32,7 +33,8 @@ public class JsonAdaptedTask { @JsonCreator public JsonAdaptedTask(@JsonProperty("name") String name, @JsonProperty("date") String date, @JsonProperty("startTime") String startTime, @JsonProperty("endTime") String endTime, - @JsonProperty("tagged") List tagged) { + @JsonProperty("tagged") List tagged, + @JsonProperty("persons") List persons) { this.name = name; this.date = date; this.startTime = startTime; @@ -40,6 +42,9 @@ public JsonAdaptedTask(@JsonProperty("name") String name, @JsonProperty("date") if (tagged != null) { this.tagged.addAll(tagged); } + if (persons != null) { + this.persons.addAll(persons); + } } /** @@ -53,10 +58,14 @@ public JsonAdaptedTask(Task source) { tagged.addAll(source.getTags().stream() .map(JsonAdaptedTag::new) .collect(Collectors.toList())); + persons.addAll(source.getPersons().stream() + .map(JsonAdaptedName::new) + .collect(Collectors.toList())); } /** * Converts this Jackson-friendly adapted task object into the model's {@code Task} object. + * Does not check if names in {@code persons} are in the address book. * * @throws IllegalValueException if there were any data constraints violated in the adapted task. */ @@ -65,6 +74,11 @@ public Task toModelType() throws IllegalValueException { for (JsonAdaptedTag tag : tagged) { taskTags.add(tag.toModelType()); } + final List taskPersons = new ArrayList<>(); + for (JsonAdaptedName person : persons) { + taskPersons.add(person.toModelType()); + } + if (name == null) { throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Name.class.getSimpleName())); @@ -100,6 +114,7 @@ public Task toModelType() throws IllegalValueException { final EndTime modelEndTime = new EndTime(endTime); final Set modelTags = new HashSet<>(taskTags); - return new Task(modelName, modelDate, modelStartTime, modelEndTime, modelTags); + final Set modelPersons = new HashSet<>(taskPersons); + return new Task(modelName, modelDate, modelStartTime, modelEndTime, modelTags, modelPersons); } } diff --git a/src/main/java/seedu/address/ui/TaskCard.java b/src/main/java/seedu/address/ui/TaskCard.java index 3e931954000..88804634836 100644 --- a/src/main/java/seedu/address/ui/TaskCard.java +++ b/src/main/java/seedu/address/ui/TaskCard.java @@ -30,6 +30,8 @@ public class TaskCard extends UiPart { private Label time; @FXML private FlowPane tags; + @FXML + private FlowPane persons; /** * Creates a {@code TaskCode} with the given {@code Task} and index to display. @@ -44,6 +46,9 @@ public TaskCard(Task task, int displayedIndex) { task.getTags().stream() .sorted(Comparator.comparing(tag -> tag.tagName)) .forEach(tag -> tags.getChildren().add(new Label(tag.tagName))); + task.getPersons().stream() + .sorted(Comparator.comparing(name -> name.fullName)) + .forEach(name -> persons.getChildren().add(new Label(name.fullName))); } @Override diff --git a/src/main/resources/view/DarkTheme.css b/src/main/resources/view/DarkTheme.css index e944f6a16d6..4752a8aec6d 100644 --- a/src/main/resources/view/DarkTheme.css +++ b/src/main/resources/view/DarkTheme.css @@ -383,3 +383,26 @@ -fx-background-radius: 2; -fx-font-size: 11; } + +#persons { + -fx-hgap: 7; + -fx-vgap: 3; +} + +#persons .label { + -fx-text-fill: white; + -fx-background-color: #FF6347; + -fx-padding: 1 3 1 3; + -fx-border-radius: 2; + -fx-background-radius: 2; + -fx-font-size: 11; +} + +#personLabel { + -fx-font-weight: bold +} + +#tagLabel { + -fx-font-weight: bold +} + diff --git a/src/main/resources/view/PersonListCard.fxml b/src/main/resources/view/PersonListCard.fxml index 6ba0abaa3ed..98d115a1eda 100644 --- a/src/main/resources/view/PersonListCard.fxml +++ b/src/main/resources/view/PersonListCard.fxml @@ -7,6 +7,7 @@ + @@ -16,23 +17,31 @@ - + - + - - + + + diff --git a/src/main/resources/view/TaskCard.fxml b/src/main/resources/view/TaskCard.fxml index b233bf9ec63..210e7fa266c 100644 --- a/src/main/resources/view/TaskCard.fxml +++ b/src/main/resources/view/TaskCard.fxml @@ -9,8 +9,9 @@ + - + @@ -28,9 +29,31 @@ -

      getAddress() { + return Optional.ofNullable(address); + } + + /** + * Sets {@code tags} to this object's {@code tags}. + * A defensive copy of {@code tags} is used internally. + */ + public void setTags(Set tags) { + this.tags = (tags != null) ? new HashSet<>(tags) : null; + } + + /** + * Returns an unmodifiable tag set, which throws {@code UnsupportedOperationException} + * if modification is attempted. + * Returns {@code Optional#empty()} if {@code tags} is null. + */ + public Optional> getTags() { + return (tags != null) ? Optional.of(Collections.unmodifiableSet(tags)) : Optional.empty(); + } + + /** + * Sets {@code notes} to this object's {@code notes}. + * A defensive copy of {@code notes} is used internally. + */ + public void setNotes(List notes) { + this.notes = (notes != null) ? new ArrayList<>(notes) : null; + } + + /** + * Returns an unmodifiable note list, which throws {@code UnsupportedOperationException} + * if modification is attempted. + * Returns {@code Optional#empty()} if {@code notes} is null. + */ + public Optional> getNotes() { + return (notes != null) ? Optional.of(Collections.unmodifiableList(notes)) : Optional.empty(); + } + + @Override + public boolean equals(Object other) { + // short circuit if same object + if (other == this) { + return true; + } + + // instanceof handles nulls + if (!(other instanceof EditPersonDescriptor)) { + return false; + } + + // state check + EditPersonDescriptor e = (EditPersonDescriptor) other; + + return getName().equals(e.getName()) + && getPhone().equals(e.getPhone()) + && getEmail().equals(e.getEmail()) + && getAddress().equals(e.getAddress()) + && getTags().equals(e.getTags()) + && getNotes().equals(e.getNotes()); + } +} diff --git a/src/main/java/seedu/address/logic/EditTaskDescriptor.java b/src/main/java/seedu/address/logic/EditTaskDescriptor.java new file mode 100644 index 00000000000..05dfd50bb3d --- /dev/null +++ b/src/main/java/seedu/address/logic/EditTaskDescriptor.java @@ -0,0 +1,137 @@ +package seedu.address.logic; + +import java.util.Collections; +import java.util.HashSet; +import java.util.Optional; +import java.util.Set; + +import seedu.address.commons.util.CollectionUtil; +import seedu.address.model.name.Name; +import seedu.address.model.tag.Tag; +import seedu.address.model.task.Date; +import seedu.address.model.task.EndTime; +import seedu.address.model.task.StartTime; + +/** + * Stores the details to edit the task with. Each non-empty field value will replace the + * corresponding field value of the task. + */ +public class EditTaskDescriptor { + private Name name; + private Date date; + private StartTime startTime; + private EndTime endTime; + private Set tags; + private Set persons; + + public EditTaskDescriptor() {} + + /** + * Copy constructor. + * A defensive copy of {@code tags} is used internally. + */ + public EditTaskDescriptor(EditTaskDescriptor toCopy) { + setName(toCopy.name); + setDate(toCopy.date); + setStartTime(toCopy.startTime); + setEndTime(toCopy.endTime); + setTags(toCopy.tags); + setPersons(toCopy.persons); + } + + /** + * Returns true if at least one field is edited. + */ + public boolean isAnyFieldEdited() { + return CollectionUtil.isAnyNonNull(name, date, startTime, endTime, tags, persons); + } + + public void setName(Name name) { + this.name = name; + } + + public Optional getName() { + return Optional.ofNullable(name); + } + + public void setDate(Date date) { + this.date = date; + } + + public Optional getDate() { + return Optional.ofNullable(date); + } + + public void setStartTime(StartTime startTime) { + this.startTime = startTime; + } + + public Optional getStartTime() { + return Optional.ofNullable(startTime); + } + + public void setEndTime(EndTime endTime) { + this.endTime = endTime; + } + + public Optional getEndTime() { + return Optional.ofNullable(endTime); + } + + /** + * Sets {@code tags} to this object's {@code tags}. + * A defensive copy of {@code tags} is used internally. + */ + public void setTags(Set tags) { + this.tags = (tags != null) ? new HashSet<>(tags) : null; + } + + /** + * Returns an unmodifiable tag set, which throws {@code UnsupportedOperationException} + * if modification is attempted. + * Returns {@code Optional#empty()} if {@code tags} is null. + */ + public Optional> getTags() { + return (tags != null) ? Optional.of(Collections.unmodifiableSet(tags)) : Optional.empty(); + } + + /** + * Sets {@code persons} to this object's {@code persons}. + * A defensive copy of {@code persons} is used internally. + */ + public void setPersons(Set persons) { + this.persons = (persons != null) ? new HashSet<>(persons) : null; + } + + /** + * Returns an unmodifiable person set, which throws {@code UnsupportedOperationException} + * if modification is attempted. + * Returns {@code Optional#empty()} if {@code persons} is null. + */ + public Optional> getPersons() { + return (persons != null) ? Optional.of(Collections.unmodifiableSet(persons)) : Optional.empty(); + } + + @Override + public boolean equals(Object other) { + // short circuit if same object + if (other == this) { + return true; + } + + // instanceof handles nulls + if (!(other instanceof EditTaskDescriptor)) { + return false; + } + + // state check + EditTaskDescriptor e = (EditTaskDescriptor) other; + + return getName().equals(e.getName()) + && getDate().equals(e.getDate()) + && getStartTime().equals(e.getStartTime()) + && getEndTime().equals(e.getEndTime()) + && getTags().equals(e.getTags()) + && getPersons().equals(e.getPersons()); + } +} diff --git a/src/main/java/seedu/address/logic/commands/AddTaskCommand.java b/src/main/java/seedu/address/logic/commands/AddTaskCommand.java index cd5c5a79714..e9939b938cb 100644 --- a/src/main/java/seedu/address/logic/commands/AddTaskCommand.java +++ b/src/main/java/seedu/address/logic/commands/AddTaskCommand.java @@ -41,8 +41,10 @@ public class AddTaskCommand extends Command { public static final String MESSAGE_SUCCESS = "New task added: %1$s"; public static final String MESSAGE_DUPLICATE_TASK = "This task already exists in the task book"; - public static final String MESSAGE_CONTACT_NOT_FOUND = "The person cannot be found in the current address book"; - + public static final String MESSAGE_CONTACT_NOT_FOUND = + "The person %1$s cannot be found in the current address book"; + public static final String MESSAGE_SCHEDULE_CONFLICT = + "The person %1$s is already involved in a task at this date and time"; private final Task toAdd; /** @@ -56,18 +58,33 @@ public AddTaskCommand(Task task) { @Override public CommandResult execute(Model model) throws CommandException { requireNonNull(model); - List lastShownList = model.getFilteredPersonList(); + List unfilteredPersonList = model.getUnfilteredPersonList(); + List unfilteredTaskList = model.getUnfilteredTaskList(); Set persons = toAdd.getPersons(); - //Checks if persons are in lastShownList + + //checks if persons exist in the current list for (Name name: persons) { boolean notFound = true; - for (Person person: lastShownList) { + for (Person person: unfilteredPersonList) { if (person.getName().equals(name)) { notFound = false; } } if (notFound) { - throw new CommandException(MESSAGE_CONTACT_NOT_FOUND); + throw new CommandException(String.format(MESSAGE_CONTACT_NOT_FOUND, name)); + } + } + + //checks if persons are already involved in tasks with conflicting time ranges to the newly added task + for (Name name: persons) { + for (Task task: unfilteredTaskList) { + Set nameList = task.getPersons(); + if (nameList.contains(name)) { + boolean conflictExist = task.hasDateTimeConflict(toAdd); + if (conflictExist) { + throw new CommandException(String.format(MESSAGE_SCHEDULE_CONFLICT, name)); + } + } } } diff --git a/src/main/java/seedu/address/logic/commands/DeleteCommand.java b/src/main/java/seedu/address/logic/commands/DeleteCommand.java index 5af21663f1f..82e95aef7b6 100644 --- a/src/main/java/seedu/address/logic/commands/DeleteCommand.java +++ b/src/main/java/seedu/address/logic/commands/DeleteCommand.java @@ -1,15 +1,22 @@ package seedu.address.logic.commands; import static java.util.Objects.requireNonNull; -import static seedu.address.model.Model.PREDICATE_SHOW_ALL_TASKS; +import java.util.HashSet; import java.util.List; +import java.util.Set; import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; +import seedu.address.logic.EditTaskDescriptor; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; +import seedu.address.model.name.Name; import seedu.address.model.person.Person; +import seedu.address.model.tag.Tag; +import seedu.address.model.task.Date; +import seedu.address.model.task.EndTime; +import seedu.address.model.task.StartTime; import seedu.address.model.task.Task; /** @@ -36,19 +43,46 @@ public DeleteCommand(Index targetIndex) { public CommandResult execute(Model model) throws CommandException { requireNonNull(model); List lastShownPersonList = model.getFilteredPersonList(); - model.updateFilteredTaskList(PREDICATE_SHOW_ALL_TASKS); - List taskList = model.getFilteredTaskList(); - taskList.forEach(task -> task.getPersons()); + List unfilteredTaskList = model.getUnfilteredTaskList(); if (targetIndex.getZeroBased() >= lastShownPersonList.size()) { throw new CommandException(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); } Person personToDelete = lastShownPersonList.get(targetIndex.getZeroBased()); + + // update tasks after the deletion of person + for (Task task: unfilteredTaskList) { + if (task.getPersons().contains(personToDelete.getName())) { + EditTaskDescriptor editTaskDescriptor = new EditTaskDescriptor(); + Set persons = new HashSet<>(task.getPersons()); + persons.remove(personToDelete.getName()); + editTaskDescriptor.setPersons(persons); + Task editedTask = createEditedTask(task, editTaskDescriptor); + model.setTask(task, editedTask); + } + } model.deletePerson(personToDelete); return new CommandResult(String.format(MESSAGE_DELETE_PERSON_SUCCESS, personToDelete)); } + /** + * Creates and returns a {@code Task} with the details of {@code taskToEdit} + * edited with {@code editTaskDescriptor}. + */ + public static Task createEditedTask(Task taskToEdit, EditTaskDescriptor editTaskDescriptor) { + assert taskToEdit != null; + + Name updatedName = editTaskDescriptor.getName().orElse(taskToEdit.getName()); + Date updatedDate = editTaskDescriptor.getDate().orElse(taskToEdit.getDate()); + StartTime updatedStartTime = editTaskDescriptor.getStartTime().orElse(taskToEdit.getStartTime()); + EndTime updatedEndTime = editTaskDescriptor.getEndTime().orElse(taskToEdit.getEndTime()); + Set updatedTags = editTaskDescriptor.getTags().orElse(taskToEdit.getTags()); + Set updatedPersons = editTaskDescriptor.getPersons().orElse(taskToEdit.getPersons()); + return new Task(updatedName, updatedDate, + updatedStartTime, updatedEndTime, updatedTags, updatedPersons); + } + @Override public boolean equals(Object other) { return other == this // short circuit if same object diff --git a/src/main/java/seedu/address/logic/commands/EditCommand.java b/src/main/java/seedu/address/logic/commands/EditCommand.java index 23ab5c60850..db2ab4e1147 100644 --- a/src/main/java/seedu/address/logic/commands/EditCommand.java +++ b/src/main/java/seedu/address/logic/commands/EditCommand.java @@ -8,16 +8,14 @@ import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; -import java.util.ArrayList; -import java.util.Collections; import java.util.HashSet; import java.util.List; -import java.util.Optional; import java.util.Set; import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; -import seedu.address.commons.util.CollectionUtil; +import seedu.address.logic.EditPersonDescriptor; +import seedu.address.logic.EditTaskDescriptor; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; import seedu.address.model.name.Name; @@ -27,6 +25,10 @@ import seedu.address.model.person.Person; import seedu.address.model.person.Phone; import seedu.address.model.tag.Tag; +import seedu.address.model.task.Date; +import seedu.address.model.task.EndTime; +import seedu.address.model.task.StartTime; +import seedu.address.model.task.Task; /** * Edits the details of an existing person in the address book. @@ -71,6 +73,7 @@ public EditCommand(Index index, EditPersonDescriptor editPersonDescriptor) { public CommandResult execute(Model model) throws CommandException { requireNonNull(model); List lastShownList = model.getFilteredPersonList(); + List unfilteredTaskList = model.getUnfilteredTaskList(); if (index.getZeroBased() >= lastShownList.size()) { throw new CommandException(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); @@ -83,6 +86,21 @@ public CommandResult execute(Model model) throws CommandException { throw new CommandException(MESSAGE_DUPLICATE_PERSON); } + // update tasks if a person's name is edited + for (Task task: unfilteredTaskList) { + if (personToEdit.getName().equals(editedPerson.getName())) { + break; + } else if (task.getPersons().contains(personToEdit.getName())) { + EditTaskDescriptor editTaskDescriptor = new EditTaskDescriptor(); + Set persons = new HashSet<>(task.getPersons()); + persons.remove(personToEdit.getName()); + persons.add(editedPerson.getName()); + editTaskDescriptor.setPersons(persons); + Task editedTask = createEditedTask(task, editTaskDescriptor); + model.setTask(task, editedTask); + } + } + model.setPerson(personToEdit, editedPerson); model.updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); return new CommandResult(String.format(MESSAGE_EDIT_PERSON_SUCCESS, editedPerson)); @@ -104,6 +122,23 @@ private static Person createEditedPerson(Person personToEdit, EditPersonDescript return new Person(updatedName, updatedPhone, updatedEmail, updatedAddress, updatedTags, updatedNotes); } + /** + * Creates and returns a {@code Task} with the details of {@code taskToEdit} + * edited with {@code editTaskDescriptor}. + */ + public static Task createEditedTask(Task taskToEdit, EditTaskDescriptor editTaskDescriptor) { + assert taskToEdit != null; + + Name updatedName = editTaskDescriptor.getName().orElse(taskToEdit.getName()); + Date updatedDate = editTaskDescriptor.getDate().orElse(taskToEdit.getDate()); + StartTime updatedStartTime = editTaskDescriptor.getStartTime().orElse(taskToEdit.getStartTime()); + EndTime updatedEndTime = editTaskDescriptor.getEndTime().orElse(taskToEdit.getEndTime()); + Set updatedTags = editTaskDescriptor.getTags().orElse(taskToEdit.getTags()); + Set updatedPersons = editTaskDescriptor.getPersons().orElse(taskToEdit.getPersons()); + return new Task(updatedName, updatedDate, + updatedStartTime, updatedEndTime, updatedTags, updatedPersons); + } + @Override public boolean equals(Object other) { // short circuit if same object @@ -121,128 +156,4 @@ public boolean equals(Object other) { return index.equals(e.index) && editPersonDescriptor.equals(e.editPersonDescriptor); } - - /** - * Stores the details to edit the person with. Each non-empty field value will replace the - * corresponding field value of the person. - */ - public static class EditPersonDescriptor { - private Name name; - private Phone phone; - private Email email; - private Address address; - private Set tags; - private List notes; - - public EditPersonDescriptor() {} - - /** - * Copy constructor. - * A defensive copy of {@code tags} is used internally. - */ - public EditPersonDescriptor(EditPersonDescriptor toCopy) { - setName(toCopy.name); - setPhone(toCopy.phone); - setEmail(toCopy.email); - setAddress(toCopy.address); - setTags(toCopy.tags); - setNotes(toCopy.notes); - } - - /** - * Returns true if at least one field is edited. - */ - public boolean isAnyFieldEdited() { - return CollectionUtil.isAnyNonNull(name, phone, email, address, tags); - } - - public void setName(Name name) { - this.name = name; - } - - public Optional getName() { - return Optional.ofNullable(name); - } - - public void setPhone(Phone phone) { - this.phone = phone; - } - - public Optional getPhone() { - return Optional.ofNullable(phone); - } - - public void setEmail(Email email) { - this.email = email; - } - - public Optional getEmail() { - return Optional.ofNullable(email); - } - - public void setAddress(Address address) { - this.address = address; - } - - public Optional
      getAddress() { - return Optional.ofNullable(address); - } - - /** - * Sets {@code tags} to this object's {@code tags}. - * A defensive copy of {@code tags} is used internally. - */ - public void setTags(Set tags) { - this.tags = (tags != null) ? new HashSet<>(tags) : null; - } - - /** - * Returns an unmodifiable tag set, which throws {@code UnsupportedOperationException} - * if modification is attempted. - * Returns {@code Optional#empty()} if {@code tags} is null. - */ - public Optional> getTags() { - return (tags != null) ? Optional.of(Collections.unmodifiableSet(tags)) : Optional.empty(); - } - - /** - * Sets {@code notes} to this object's {@code notes}. - * A defensive copy of {@code notes} is used internally. - */ - public void setNotes(List notes) { - this.notes = (notes != null) ? new ArrayList<>(notes) : null; - } - - /** - * Returns an unmodifiable note list, which throws {@code UnsupportedOperationException} - * if modification is attempted. - * Returns {@code Optional#empty()} if {@code notes} is null. - */ - public Optional> getNotes() { - return (notes != null) ? Optional.of(Collections.unmodifiableList(notes)) : Optional.empty(); - } - - @Override - public boolean equals(Object other) { - // short circuit if same object - if (other == this) { - return true; - } - - // instanceof handles nulls - if (!(other instanceof EditPersonDescriptor)) { - return false; - } - - // state check - EditPersonDescriptor e = (EditPersonDescriptor) other; - - return getName().equals(e.getName()) - && getPhone().equals(e.getPhone()) - && getEmail().equals(e.getEmail()) - && getAddress().equals(e.getAddress()) - && getTags().equals(e.getTags()) - && getNotes().equals(e.getNotes()); - } - } } diff --git a/src/main/java/seedu/address/logic/parser/EditCommandParser.java b/src/main/java/seedu/address/logic/parser/EditCommandParser.java index 845644b7dea..f6cdd4d1b7c 100644 --- a/src/main/java/seedu/address/logic/parser/EditCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/EditCommandParser.java @@ -14,8 +14,8 @@ import java.util.Set; import seedu.address.commons.core.index.Index; +import seedu.address.logic.EditPersonDescriptor; import seedu.address.logic.commands.EditCommand; -import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.tag.Tag; diff --git a/src/main/java/seedu/address/model/Model.java b/src/main/java/seedu/address/model/Model.java index 0ba75e67044..d26a8ad2297 100644 --- a/src/main/java/seedu/address/model/Model.java +++ b/src/main/java/seedu/address/model/Model.java @@ -88,6 +88,9 @@ public interface Model { */ void setPerson(Person target, Person editedPerson); + /** Returns an unmodifiable view of the unfiltered person list */ + ObservableList getUnfilteredPersonList(); + /** Returns an unmodifiable view of the filtered person list */ ObservableList getFilteredPersonList(); @@ -129,6 +132,9 @@ public interface Model { */ void setTask(Task target, Task editedTask); + /** Returns an unmodifiable view of the unfiltered task list */ + ObservableList getUnfilteredTaskList(); + /** Returns an unmodifiable view of the filtered task list */ ObservableList getFilteredTaskList(); diff --git a/src/main/java/seedu/address/model/ModelManager.java b/src/main/java/seedu/address/model/ModelManager.java index a53bed5dce0..7c29b8783e0 100644 --- a/src/main/java/seedu/address/model/ModelManager.java +++ b/src/main/java/seedu/address/model/ModelManager.java @@ -127,6 +127,11 @@ public void setPerson(Person target, Person editedPerson) { addressBook.setPerson(target, editedPerson); } + @Override + public ObservableList getUnfilteredPersonList() { + return addressBook.getPersonList(); + } + //=========== Filtered Person List Accessors ============================================================= /** @@ -180,6 +185,11 @@ public void setTask(Task target, Task editedTask) { taskBook.setTask(target, editedTask); } + @Override + public ObservableList getUnfilteredTaskList() { + return taskBook.getTaskList(); + } + //=========== Filtered Task List Accessors ============================================================= /** diff --git a/src/main/java/seedu/address/model/task/Task.java b/src/main/java/seedu/address/model/task/Task.java index ca4c051b1c1..ab882e358b6 100644 --- a/src/main/java/seedu/address/model/task/Task.java +++ b/src/main/java/seedu/address/model/task/Task.java @@ -2,6 +2,7 @@ import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; +import java.time.LocalTime; import java.util.Collections; import java.util.HashSet; import java.util.Objects; @@ -89,6 +90,30 @@ public boolean isSameTask(Task otherTask) { && otherTask.getName().equals(getName()); } + /** + * Returns true if both tasks have the same date and conflicting time ranges. + */ + public boolean hasDateTimeConflict(Task otherTask) { + if (otherTask == this) { + return true; + } + + LocalTime thisTaskStart = LocalTime.parse(startTime.value); + LocalTime thisTaskEnd = LocalTime.parse(endTime.value); + LocalTime otherTaskStart = LocalTime.parse(otherTask.startTime.value); + LocalTime otherTaskEnd = LocalTime.parse(otherTask.endTime.value); + + // Solution below adapted from https://stackoverflow.com/q/325933 + // checks if time ranges overlap (exclusive) + boolean timeConflict = + thisTaskStart.isBefore(otherTaskEnd) + && otherTaskStart.isBefore(thisTaskEnd); + + return otherTask != null + && otherTask.getDate().equals(getDate()) //test for same dates + && timeConflict; + } + /** * Returns true if both tasks have the same identity and data fields. * This defines a stronger notion of equality between two tasks. diff --git a/src/test/data/JsonSerializableTaskBookTest/typicalTasksTaskBook.json b/src/test/data/JsonSerializableTaskBookTest/typicalTasksTaskBook.json index 3e0dfb3e34f..db42423a672 100644 --- a/src/test/data/JsonSerializableTaskBookTest/typicalTasksTaskBook.json +++ b/src/test/data/JsonSerializableTaskBookTest/typicalTasksTaskBook.json @@ -20,6 +20,6 @@ "startTime" : "14:00", "endTime" : "16:00", "tagged" : [ "colleagues" ], - "persons" : ["Carl Kurz", "Benson Meier"] + "persons" : ["Benson Meier"] }] } diff --git a/src/test/java/seedu/address/logic/commands/AddCommandTest.java b/src/test/java/seedu/address/logic/commands/AddCommandTest.java index c72e2f37f6f..033c8be9103 100644 --- a/src/test/java/seedu/address/logic/commands/AddCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddCommandTest.java @@ -155,6 +155,11 @@ public ObservableList getFilteredPersonList() { throw new AssertionError("This method should not be called."); } + @Override + public ObservableList getUnfilteredPersonList() { + throw new AssertionError("This method should not be called."); + } + @Override public void updateFilteredPersonList(Predicate predicate) { throw new AssertionError("This method should not be called."); @@ -194,6 +199,11 @@ public ObservableList getFilteredTaskList() { throw new AssertionError("This method should not be called."); } + @Override + public ObservableList getUnfilteredTaskList() { + throw new AssertionError("This method should not be called."); + } + @Override public void updateFilteredTaskList(Predicate predicate) { throw new AssertionError("This method should not be called."); diff --git a/src/test/java/seedu/address/logic/commands/AddTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/AddTaskCommandTest.java index 11b96403f55..143b0f1af63 100644 --- a/src/test/java/seedu/address/logic/commands/AddTaskCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddTaskCommandTest.java @@ -4,6 +4,8 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; import static seedu.address.testutil.Assert.assertThrows; +import static seedu.address.testutil.TypicalPersons.ALICE; +import static seedu.address.testutil.TypicalPersons.BENSON; import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; import static seedu.address.testutil.TypicalTasks.FIRST_TASK; import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; @@ -53,22 +55,55 @@ public void execute_personsNotInList_throwsCommandException() { Task invalidTask = new TaskBuilder().withPersons("Johnson").build(); AddTaskCommand addTaskCommand = new AddTaskCommand(invalidTask); + String expectedMessage = String.format(AddTaskCommand.MESSAGE_CONTACT_NOT_FOUND, "Johnson"); assertThrows(CommandException.class, - AddTaskCommand.MESSAGE_CONTACT_NOT_FOUND, () -> addTaskCommand.execute(model)); + expectedMessage, () -> addTaskCommand.execute(model)); // task with only one person out of the rest found in the address book -> throws an error invalidTask = new TaskBuilder().withPersons("Johnson", "Alice Pauline").build(); AddTaskCommand addTaskCommand2 = new AddTaskCommand(invalidTask); assertThrows(CommandException.class, - AddTaskCommand.MESSAGE_CONTACT_NOT_FOUND, () -> addTaskCommand2.execute(model)); + expectedMessage, () -> addTaskCommand2.execute(model)); // task with multiple persons not found in the address book -> throws an error - invalidTask = new TaskBuilder().withPersons("Johnson", "Alex", "Kenny").build(); + invalidTask = new TaskBuilder().withPersons("Johnson", "Kenny").build(); AddTaskCommand addTaskCommand3 = new AddTaskCommand(invalidTask); assertThrows(CommandException.class, - AddTaskCommand.MESSAGE_CONTACT_NOT_FOUND, () -> addTaskCommand3.execute(model)); + expectedMessage, () -> addTaskCommand3.execute(model)); + } + + @Test + public void execute_personsInConflictingTask_throwsCommandException() { + // task with same date, same time range, and same persons -> throws an error + Task invalidTask = new TaskBuilder() + .withDate("09-10-2022").withStartTime("09:00").withEndTime("10:00") + .withPersons(ALICE.getName().fullName, BENSON.getName().fullName).build(); + AddTaskCommand addTaskCommand = new AddTaskCommand(invalidTask); + + String expectedMessage + = String.format(AddTaskCommand.MESSAGE_SCHEDULE_CONFLICT, ALICE.getName().fullName); + assertThrows(CommandException.class, + expectedMessage, () -> addTaskCommand.execute(model)); + + // task with same date, overlapping time range, and same persons -> throws an error + invalidTask = new TaskBuilder() + .withDate("09-10-2022").withStartTime("09:30").withEndTime("10:30") + .withPersons(ALICE.getName().fullName, BENSON.getName().fullName).build(); + AddTaskCommand addTaskCommand2 = new AddTaskCommand(invalidTask); + + assertThrows(CommandException.class, + expectedMessage, () -> addTaskCommand2.execute(model)); + + // task with same date, overlapping time range, and only ALICE -> throws an error + invalidTask = new TaskBuilder() + .withDate("09-10-2022").withStartTime("09:30").withEndTime("10:30") + .withPersons(ALICE.getName().fullName).build(); + AddTaskCommand addTaskCommand3 = new AddTaskCommand(invalidTask); + + assertThrows(CommandException.class, + expectedMessage, () -> addTaskCommand3.execute(model)); } @Test diff --git a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java b/src/test/java/seedu/address/logic/commands/CommandTestUtil.java index 31b6e65ddb6..508a6d61c7b 100644 --- a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java +++ b/src/test/java/seedu/address/logic/commands/CommandTestUtil.java @@ -17,12 +17,15 @@ import java.util.List; import seedu.address.commons.core.index.Index; +import seedu.address.logic.EditPersonDescriptor; +import seedu.address.logic.EditTaskDescriptor; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.name.PersonNameContainsKeywordsPredicate; import seedu.address.model.person.Person; import seedu.address.testutil.EditPersonDescriptorBuilder; +import seedu.address.testutil.EditTaskDescriptorBuilder; /** * Contains helper methods for testing commands. @@ -52,6 +55,8 @@ public class CommandTestUtil { public static final String VALID_ENDTIME_TASK2 = "13:00"; public static final String VALID_TAG_EVENT = "Event"; public static final String VALID_TAG_MEET = "Meet"; + public static final String VALID_PERSON1 = "Amy Bee"; + public static final String VALID_PERSON2 = "Bob Choo"; @@ -93,8 +98,11 @@ public class CommandTestUtil { public static final String PREAMBLE_WHITESPACE = "\t \r \n"; public static final String PREAMBLE_NON_EMPTY = "NonEmptyPreamble"; - public static final EditCommand.EditPersonDescriptor DESC_AMY; - public static final EditCommand.EditPersonDescriptor DESC_BOB; + public static final EditPersonDescriptor DESC_AMY; + public static final EditPersonDescriptor DESC_BOB; + + public static final EditTaskDescriptor DESC_TASK1; + public static final EditTaskDescriptor DESC_TASK2; static { DESC_AMY = new EditPersonDescriptorBuilder().withName(VALID_NAME_AMY) @@ -103,8 +111,15 @@ public class CommandTestUtil { DESC_BOB = new EditPersonDescriptorBuilder().withName(VALID_NAME_BOB) .withPhone(VALID_PHONE_BOB).withEmail(VALID_EMAIL_BOB).withAddress(VALID_ADDRESS_BOB) .withTags(VALID_TAG_HUSBAND, VALID_TAG_FRIEND).build(); + DESC_TASK1 = new EditTaskDescriptorBuilder().withName(VALID_NAME_TASK1) + .withDate(VALID_DATE_TASK1).withStartTime(VALID_STARTTIME_TASK1) + .withEndTime(VALID_ENDTIME_TASK1).withTags(VALID_TAG_EVENT).withPersons(VALID_PERSON1).build(); + DESC_TASK2 = new EditTaskDescriptorBuilder().withName(VALID_NAME_TASK2) + .withDate(VALID_DATE_TASK2).withStartTime(VALID_STARTTIME_TASK2) + .withEndTime(VALID_ENDTIME_TASK2).withTags(VALID_TAG_EVENT).withPersons(VALID_PERSON2).build(); } + /** * Executes the given {@code command}, confirms that
      * - the returned {@link CommandResult} matches {@code expectedCommandResult}
      diff --git a/src/test/java/seedu/address/logic/commands/DeleteCommandTest.java b/src/test/java/seedu/address/logic/commands/DeleteCommandTest.java index 5c86a079594..35c308a1f9a 100644 --- a/src/test/java/seedu/address/logic/commands/DeleteCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/DeleteCommandTest.java @@ -5,8 +5,8 @@ import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; import static seedu.address.logic.commands.CommandTestUtil.showPersonAtIndex; -import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; -import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_PERSON; +import static seedu.address.testutil.TypicalIndexes.*; +import static seedu.address.testutil.TypicalPersons.BENSON; import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; @@ -14,10 +14,13 @@ import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; +import seedu.address.logic.EditTaskDescriptor; import seedu.address.model.Model; import seedu.address.model.ModelManager; import seedu.address.model.UserPrefs; import seedu.address.model.person.Person; +import seedu.address.model.task.Task; +import seedu.address.testutil.EditTaskDescriptorBuilder; /** * Contains integration tests (interaction with the Model) and unit tests for @@ -38,6 +41,12 @@ public void execute_validIndexUnfilteredList_success() { model.getTaskBook(), new UserPrefs()); expectedModel.deletePerson(personToDelete); + Task taskToAmend = model.getFilteredTaskList().get(TASK_FIRST_INDEX.getZeroBased()); + EditTaskDescriptor editTaskDescriptor = + new EditTaskDescriptorBuilder().withPersons(BENSON.getName().fullName).build(); + Task editedTask = DeleteCommand.createEditedTask(taskToAmend, editTaskDescriptor); + expectedModel.setTask(taskToAmend, editedTask); + assertCommandSuccess(deleteCommand, model, expectedMessage, expectedModel); } @@ -63,6 +72,12 @@ public void execute_validIndexFilteredList_success() { expectedModel.deletePerson(personToDelete); showNoPerson(expectedModel); + Task taskToAmend = model.getFilteredTaskList().get(TASK_FIRST_INDEX.getZeroBased()); + EditTaskDescriptor editTaskDescriptor = + new EditTaskDescriptorBuilder().withPersons(BENSON.getName().fullName).build(); + Task editedTask = DeleteCommand.createEditedTask(taskToAmend, editTaskDescriptor); + expectedModel.setTask(taskToAmend, editedTask); + assertCommandSuccess(deleteCommand, model, expectedMessage, expectedModel); } diff --git a/src/test/java/seedu/address/logic/commands/EditCommandTest.java b/src/test/java/seedu/address/logic/commands/EditCommandTest.java index 07576bcdd6e..484d30b0793 100644 --- a/src/test/java/seedu/address/logic/commands/EditCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/EditCommandTest.java @@ -10,8 +10,8 @@ import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; import static seedu.address.logic.commands.CommandTestUtil.showPersonAtIndex; -import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; -import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_PERSON; +import static seedu.address.testutil.TypicalIndexes.*; +import static seedu.address.testutil.TypicalPersons.BENSON; import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; @@ -19,13 +19,16 @@ import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; +import seedu.address.logic.EditPersonDescriptor; +import seedu.address.logic.EditTaskDescriptor; import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ModelManager; import seedu.address.model.UserPrefs; import seedu.address.model.person.Person; +import seedu.address.model.task.Task; import seedu.address.testutil.EditPersonDescriptorBuilder; +import seedu.address.testutil.EditTaskDescriptorBuilder; import seedu.address.testutil.PersonBuilder; /** @@ -47,6 +50,13 @@ public void execute_allFieldsSpecifiedUnfilteredList_success() { model.getTaskBook(), new UserPrefs()); expectedModel.setPerson(model.getFilteredPersonList().get(0), editedPerson); + Task taskToAmend = model.getFilteredTaskList().get(TASK_FIRST_INDEX.getZeroBased()); + EditTaskDescriptor editTaskDescriptor = + new EditTaskDescriptorBuilder() + .withPersons(editedPerson.getName().fullName, BENSON.getName().fullName).build(); + Task editedTask = DeleteCommand.createEditedTask(taskToAmend, editTaskDescriptor); + expectedModel.setTask(taskToAmend, editedTask); + assertCommandSuccess(editCommand, model, expectedMessage, expectedModel); } @@ -100,6 +110,13 @@ public void execute_filteredList_success() { model.getTaskBook(), new UserPrefs()); expectedModel.setPerson(model.getFilteredPersonList().get(0), editedPerson); + Task taskToAmend = model.getFilteredTaskList().get(TASK_FIRST_INDEX.getZeroBased()); + EditTaskDescriptor editTaskDescriptor = + new EditTaskDescriptorBuilder() + .withPersons(editedPerson.getName().fullName, BENSON.getName().fullName).build(); + Task editedTask = DeleteCommand.createEditedTask(taskToAmend, editTaskDescriptor); + expectedModel.setTask(taskToAmend, editedTask); + assertCommandSuccess(editCommand, model, expectedMessage, expectedModel); } diff --git a/src/test/java/seedu/address/logic/commands/EditPersonDescriptorTest.java b/src/test/java/seedu/address/logic/commands/EditPersonDescriptorTest.java index e0288792e72..1935da8fdfd 100644 --- a/src/test/java/seedu/address/logic/commands/EditPersonDescriptorTest.java +++ b/src/test/java/seedu/address/logic/commands/EditPersonDescriptorTest.java @@ -12,7 +12,7 @@ import org.junit.jupiter.api.Test; -import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; +import seedu.address.logic.EditPersonDescriptor; import seedu.address.testutil.EditPersonDescriptorBuilder; public class EditPersonDescriptorTest { diff --git a/src/test/java/seedu/address/logic/commands/EditTaskDescriptorTest.java b/src/test/java/seedu/address/logic/commands/EditTaskDescriptorTest.java new file mode 100644 index 00000000000..bde7fc4829e --- /dev/null +++ b/src/test/java/seedu/address/logic/commands/EditTaskDescriptorTest.java @@ -0,0 +1,56 @@ +package seedu.address.logic.commands; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static seedu.address.logic.commands.CommandTestUtil.*; + +import org.junit.jupiter.api.Test; + +import seedu.address.logic.EditTaskDescriptor; +import seedu.address.testutil.EditTaskDescriptorBuilder; + +public class EditTaskDescriptorTest { + + @Test + public void equals() { + // same values -> returns true + EditTaskDescriptor descriptorWithSameValues = new EditTaskDescriptor(DESC_TASK1); + assertTrue(DESC_TASK1.equals(descriptorWithSameValues)); + + // same object -> returns true + assertTrue(DESC_TASK1.equals(DESC_TASK1)); + + // null -> returns false + assertFalse(DESC_TASK1.equals(null)); + + // different types -> returns false + assertFalse(DESC_TASK1.equals(5)); + + // different values -> returns false + assertFalse(DESC_TASK1.equals(DESC_TASK2)); + + // different name -> returns false + EditTaskDescriptor editedTask1 = new EditTaskDescriptorBuilder(DESC_TASK1).withName(VALID_NAME_TASK2).build(); + assertFalse(DESC_TASK1.equals(editedTask1)); + + // different date -> returns false + editedTask1 = new EditTaskDescriptorBuilder(DESC_TASK1).withDate(VALID_DATE_TASK2).build(); + assertFalse(DESC_TASK1.equals(editedTask1)); + + // different start time -> returns false + editedTask1 = new EditTaskDescriptorBuilder(DESC_TASK1).withStartTime(VALID_STARTTIME_TASK2).build(); + assertFalse(DESC_TASK1.equals(editedTask1)); + + // different end time -> returns false + editedTask1 = new EditTaskDescriptorBuilder(DESC_TASK1).withEndTime(VALID_ENDTIME_TASK2).build(); + assertFalse(DESC_TASK1.equals(editedTask1)); + + // different tags -> returns false + editedTask1 = new EditTaskDescriptorBuilder(DESC_TASK1).withTags(VALID_TAG_FRIEND).build(); + assertFalse(DESC_TASK1.equals(editedTask1)); + + // different persons -> returns false + editedTask1 = new EditTaskDescriptorBuilder(DESC_TASK1).withPersons(VALID_PERSON2).build(); + assertFalse(DESC_TASK1.equals(editedTask1)); + } +} diff --git a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java index db89375ba8b..2a0ea9a287b 100644 --- a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java +++ b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java @@ -19,7 +19,7 @@ import seedu.address.logic.commands.DeleteCommand; import seedu.address.logic.commands.DeleteNoteCommand; import seedu.address.logic.commands.EditCommand; -import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; +import seedu.address.logic.EditPersonDescriptor; import seedu.address.logic.commands.ExitCommand; import seedu.address.logic.commands.FindCommand; import seedu.address.logic.commands.HelpCommand; diff --git a/src/test/java/seedu/address/logic/parser/EditCommandParserTest.java b/src/test/java/seedu/address/logic/parser/EditCommandParserTest.java index 952048cf5d8..7a9921c6561 100644 --- a/src/test/java/seedu/address/logic/parser/EditCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/EditCommandParserTest.java @@ -35,7 +35,7 @@ import seedu.address.commons.core.index.Index; import seedu.address.logic.commands.EditCommand; -import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; +import seedu.address.logic.EditPersonDescriptor; import seedu.address.model.name.Name; import seedu.address.model.person.Address; import seedu.address.model.person.Email; diff --git a/src/test/java/seedu/address/model/task/TaskTest.java b/src/test/java/seedu/address/model/task/TaskTest.java index 22eaecc95d6..a06fd74c144 100644 --- a/src/test/java/seedu/address/model/task/TaskTest.java +++ b/src/test/java/seedu/address/model/task/TaskTest.java @@ -35,16 +35,61 @@ public void isSameTask() { // different name, all other attributes same -> returns false editedFirstTask = new TaskBuilder().withName("Swimming").withDate("09-10-2022") .withStartTime("09:00").withEndTime("10:00") - .withTags("friends", "colleagues").build(); + .withTags("friends", "colleagues") + .withPersons(ALICE.getName().fullName, BENSON.getName().fullName).build(); assertFalse(FIRST_TASK.isSameTask(editedFirstTask)); // name with trailing spaces, all other attributes same -> returns false editedFirstTask = new TaskBuilder().withName("Meeting ").withDate("09-10-2022") .withStartTime("09:00").withEndTime("10:00") - .withTags("friends", "colleagues").build(); + .withTags("friends", "colleagues") + .withPersons(ALICE.getName().fullName, BENSON.getName().fullName).build(); assertFalse(FIRST_TASK.isSameTask(editedFirstTask)); } + @Test + public void hasDateTimeConflict() { + + //same object -> returns true + assertTrue(FIRST_TASK.hasDateTimeConflict(FIRST_TASK)); + + // non-conflicting time range, all attributes remains the same -> returns false + Task editedFirstTask = new TaskBuilder().withName("Meeting").withDate("09-10-2022") + .withStartTime("00:00").withEndTime("01:00") + .withTags("friends", "colleagues") + .withPersons(ALICE.getName().fullName, BENSON.getName().fullName).build(); + assertFalse(FIRST_TASK.hasDateTimeConflict(editedFirstTask)); + + // different date, all attributes remains the same -> returns false + editedFirstTask = new TaskBuilder().withName("Meeting").withDate("10-10-2022") + .withStartTime("09:00").withEndTime("10:00") + .withTags("friends", "colleagues") + .withPersons(ALICE.getName().fullName, BENSON.getName().fullName).build(); + assertFalse(FIRST_TASK.hasDateTimeConflict(editedFirstTask)); + + // conflicting time range v1, all attributes remains the same -> returns true + editedFirstTask = new TaskBuilder().withName("Meeting").withDate("09-10-2022") + .withStartTime("09:00").withEndTime("10:30") + .withTags("friends", "colleagues") + .withPersons(ALICE.getName().fullName, BENSON.getName().fullName).build(); + assertTrue(FIRST_TASK.hasDateTimeConflict(editedFirstTask)); + + // conflicting time range v2, all attributes remains the same -> returns true + editedFirstTask = new TaskBuilder().withName("Meeting").withDate("09-10-2022") + .withStartTime("09:30").withEndTime("10:30") + .withTags("friends", "colleagues") + .withPersons(ALICE.getName().fullName, BENSON.getName().fullName).build(); + assertTrue(FIRST_TASK.hasDateTimeConflict(editedFirstTask)); + + // edited start time is the same as the original end time, all attributes remains the same -> returns false + editedFirstTask = new TaskBuilder().withName("Meeting").withDate("09-10-2022") + .withStartTime("10:00").withEndTime("10:30") + .withTags("friends", "colleagues") + .withPersons(ALICE.getName().fullName, BENSON.getName().fullName).build(); + assertFalse(FIRST_TASK.hasDateTimeConflict(editedFirstTask)); + + } + @Test public void equals() { // same values -> returns true diff --git a/src/test/java/seedu/address/testutil/EditPersonDescriptorBuilder.java b/src/test/java/seedu/address/testutil/EditPersonDescriptorBuilder.java index 66d90b58dfe..81ec14b55fc 100644 --- a/src/test/java/seedu/address/testutil/EditPersonDescriptorBuilder.java +++ b/src/test/java/seedu/address/testutil/EditPersonDescriptorBuilder.java @@ -4,7 +4,7 @@ import java.util.stream.Collectors; import java.util.stream.Stream; -import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; +import seedu.address.logic.EditPersonDescriptor; import seedu.address.model.name.Name; import seedu.address.model.person.Address; import seedu.address.model.person.Email; diff --git a/src/test/java/seedu/address/testutil/EditTaskDescriptorBuilder.java b/src/test/java/seedu/address/testutil/EditTaskDescriptorBuilder.java new file mode 100644 index 00000000000..d728380ea25 --- /dev/null +++ b/src/test/java/seedu/address/testutil/EditTaskDescriptorBuilder.java @@ -0,0 +1,99 @@ +package seedu.address.testutil; + +import java.util.Set; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import seedu.address.logic.EditTaskDescriptor; +import seedu.address.model.name.Name; +import seedu.address.model.tag.Tag; +import seedu.address.model.task.Date; +import seedu.address.model.task.EndTime; +import seedu.address.model.task.StartTime; +import seedu.address.model.task.Task; + +/** + * A utility class to help with building EditTaskDescriptor objects. + */ +public class EditTaskDescriptorBuilder { + + private EditTaskDescriptor descriptor; + + public EditTaskDescriptorBuilder() { + descriptor = new EditTaskDescriptor(); + } + + public EditTaskDescriptorBuilder(EditTaskDescriptor descriptor) { + this.descriptor = new EditTaskDescriptor(descriptor); + } + + /** + * Returns an {@code EditTaskDescriptor} with fields containing {@code task}'s details + */ + public EditTaskDescriptorBuilder(Task task) { + descriptor = new EditTaskDescriptor(); + descriptor.setName(task.getName()); + descriptor.setDate(task.getDate()); + descriptor.setStartTime(task.getStartTime()); + descriptor.setEndTime(task.getEndTime()); + descriptor.setTags(task.getTags()); + descriptor.setPersons(task.getPersons()); + } + + /** + * Sets the {@code Name} of the {@code EditTaskDescriptor} that we are building. + */ + public EditTaskDescriptorBuilder withName(String name) { + descriptor.setName(new Name(name)); + return this; + } + + /** + * Sets the {@code Date} of the {@code EditTaskDescriptor} that we are building. + */ + public EditTaskDescriptorBuilder withDate(String date) { + descriptor.setDate(new Date(date)); + return this; + } + + /** + * Sets the {@code StartTime} of the {@code EditTaskDescriptor} that we are building. + */ + public EditTaskDescriptorBuilder withStartTime(String startTime) { + descriptor.setStartTime(new StartTime(startTime)); + return this; + } + + /** + * Sets the {@code EndTime} of the {@code EditTaskDescriptor} that we are building. + */ + public EditTaskDescriptorBuilder withEndTime(String endTime) { + descriptor.setEndTime(new EndTime(endTime)); + return this; + } + + /** + * Parses the {@code tags} into a {@code Set} and set it to the {@code EditPersonDescriptor} + * that we are building. + */ + public EditTaskDescriptorBuilder withTags(String... tags) { + Set tagSet = Stream.of(tags).map(Tag::new).collect(Collectors.toSet()); + descriptor.setTags(tagSet); + return this; + } + + /** + * Parses the {@code persons} into a {@code Set} and set it to the {@code EditTaskDescriptor} + * that we are building. + */ + public EditTaskDescriptorBuilder withPersons(String... persons) { + Set personSet = Stream.of(persons).map(Name::new).collect(Collectors.toSet()); + descriptor.setPersons(personSet); + return this; + } + + + public EditTaskDescriptor build() { + return descriptor; + } +} diff --git a/src/test/java/seedu/address/testutil/PersonUtil.java b/src/test/java/seedu/address/testutil/PersonUtil.java index 90849945183..8822c8d9d4c 100644 --- a/src/test/java/seedu/address/testutil/PersonUtil.java +++ b/src/test/java/seedu/address/testutil/PersonUtil.java @@ -9,7 +9,7 @@ import java.util.Set; import seedu.address.logic.commands.AddCommand; -import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; +import seedu.address.logic.EditPersonDescriptor; import seedu.address.model.person.Person; import seedu.address.model.tag.Tag; diff --git a/src/test/java/seedu/address/testutil/TypicalTasks.java b/src/test/java/seedu/address/testutil/TypicalTasks.java index 77a0328483c..58c4e45a4a5 100644 --- a/src/test/java/seedu/address/testutil/TypicalTasks.java +++ b/src/test/java/seedu/address/testutil/TypicalTasks.java @@ -33,7 +33,7 @@ public class TypicalTasks { .withTags("colleagues").withPersons(CARL.getName().fullName).build(); public static final Task THIRD_TASK = new TaskBuilder().withName("Shareholder Meeting").withDate("29-02-2020") .withStartTime("14:00").withEndTime("16:00") - .withTags("colleagues").withPersons(CARL.getName().fullName, BENSON.getName().fullName).build(); + .withTags("colleagues").withPersons(BENSON.getName().fullName).build(); // Manually added public static final Task FOURTH_TASK = new TaskBuilder().withName("Soccer Training").withDate("01-03-2020") From fc4a58644ac52f84f0a64f1e0c99150fe750ce97 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Mon, 21 Mar 2022 10:13:23 +0800 Subject: [PATCH 130/455] Fix checkstyle --- .../seedu/address/logic/commands/AddTaskCommandTest.java | 4 ++-- .../seedu/address/logic/commands/DeleteCommandTest.java | 4 +++- .../seedu/address/logic/commands/EditCommandTest.java | 4 +++- .../address/logic/commands/EditTaskDescriptorTest.java | 9 ++++++++- .../address/logic/parser/AddressBookParserTest.java | 2 +- .../address/logic/parser/EditCommandParserTest.java | 2 +- src/test/java/seedu/address/testutil/PersonUtil.java | 2 +- 7 files changed, 19 insertions(+), 8 deletions(-) diff --git a/src/test/java/seedu/address/logic/commands/AddTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/AddTaskCommandTest.java index 143b0f1af63..5a860219de4 100644 --- a/src/test/java/seedu/address/logic/commands/AddTaskCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddTaskCommandTest.java @@ -82,8 +82,8 @@ public void execute_personsInConflictingTask_throwsCommandException() { .withPersons(ALICE.getName().fullName, BENSON.getName().fullName).build(); AddTaskCommand addTaskCommand = new AddTaskCommand(invalidTask); - String expectedMessage - = String.format(AddTaskCommand.MESSAGE_SCHEDULE_CONFLICT, ALICE.getName().fullName); + String expectedMessage = + String.format(AddTaskCommand.MESSAGE_SCHEDULE_CONFLICT, ALICE.getName().fullName); assertThrows(CommandException.class, expectedMessage, () -> addTaskCommand.execute(model)); diff --git a/src/test/java/seedu/address/logic/commands/DeleteCommandTest.java b/src/test/java/seedu/address/logic/commands/DeleteCommandTest.java index 35c308a1f9a..3e63dacc7c8 100644 --- a/src/test/java/seedu/address/logic/commands/DeleteCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/DeleteCommandTest.java @@ -5,7 +5,9 @@ import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; import static seedu.address.logic.commands.CommandTestUtil.showPersonAtIndex; -import static seedu.address.testutil.TypicalIndexes.*; +import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; +import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_PERSON; +import static seedu.address.testutil.TypicalIndexes.TASK_FIRST_INDEX; import static seedu.address.testutil.TypicalPersons.BENSON; import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; diff --git a/src/test/java/seedu/address/logic/commands/EditCommandTest.java b/src/test/java/seedu/address/logic/commands/EditCommandTest.java index 484d30b0793..3127b0121e7 100644 --- a/src/test/java/seedu/address/logic/commands/EditCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/EditCommandTest.java @@ -10,7 +10,9 @@ import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; import static seedu.address.logic.commands.CommandTestUtil.showPersonAtIndex; -import static seedu.address.testutil.TypicalIndexes.*; +import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; +import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_PERSON; +import static seedu.address.testutil.TypicalIndexes.TASK_FIRST_INDEX; import static seedu.address.testutil.TypicalPersons.BENSON; import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; diff --git a/src/test/java/seedu/address/logic/commands/EditTaskDescriptorTest.java b/src/test/java/seedu/address/logic/commands/EditTaskDescriptorTest.java index bde7fc4829e..d870e318c43 100644 --- a/src/test/java/seedu/address/logic/commands/EditTaskDescriptorTest.java +++ b/src/test/java/seedu/address/logic/commands/EditTaskDescriptorTest.java @@ -2,7 +2,14 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.logic.commands.CommandTestUtil.*; +import static seedu.address.logic.commands.CommandTestUtil.DESC_TASK1; +import static seedu.address.logic.commands.CommandTestUtil.DESC_TASK2; +import static seedu.address.logic.commands.CommandTestUtil.VALID_DATE_TASK2; +import static seedu.address.logic.commands.CommandTestUtil.VALID_ENDTIME_TASK2; +import static seedu.address.logic.commands.CommandTestUtil.VALID_NAME_TASK2; +import static seedu.address.logic.commands.CommandTestUtil.VALID_PERSON2; +import static seedu.address.logic.commands.CommandTestUtil.VALID_STARTTIME_TASK2; +import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_FRIEND; import org.junit.jupiter.api.Test; diff --git a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java index 2a0ea9a287b..a6bdb84c638 100644 --- a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java +++ b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java @@ -14,12 +14,12 @@ import org.junit.jupiter.api.Test; +import seedu.address.logic.EditPersonDescriptor; import seedu.address.logic.commands.AddCommand; import seedu.address.logic.commands.ClearCommand; import seedu.address.logic.commands.DeleteCommand; import seedu.address.logic.commands.DeleteNoteCommand; import seedu.address.logic.commands.EditCommand; -import seedu.address.logic.EditPersonDescriptor; import seedu.address.logic.commands.ExitCommand; import seedu.address.logic.commands.FindCommand; import seedu.address.logic.commands.HelpCommand; diff --git a/src/test/java/seedu/address/logic/parser/EditCommandParserTest.java b/src/test/java/seedu/address/logic/parser/EditCommandParserTest.java index 7a9921c6561..2885b9eea35 100644 --- a/src/test/java/seedu/address/logic/parser/EditCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/EditCommandParserTest.java @@ -34,8 +34,8 @@ import org.junit.jupiter.api.Test; import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.EditCommand; import seedu.address.logic.EditPersonDescriptor; +import seedu.address.logic.commands.EditCommand; import seedu.address.model.name.Name; import seedu.address.model.person.Address; import seedu.address.model.person.Email; diff --git a/src/test/java/seedu/address/testutil/PersonUtil.java b/src/test/java/seedu/address/testutil/PersonUtil.java index 8822c8d9d4c..717d070650f 100644 --- a/src/test/java/seedu/address/testutil/PersonUtil.java +++ b/src/test/java/seedu/address/testutil/PersonUtil.java @@ -8,8 +8,8 @@ import java.util.Set; -import seedu.address.logic.commands.AddCommand; import seedu.address.logic.EditPersonDescriptor; +import seedu.address.logic.commands.AddCommand; import seedu.address.model.person.Person; import seedu.address.model.tag.Tag; From c763d658abca3ffaf567e0fe2ce61e717f046ed8 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Mon, 21 Mar 2022 12:09:37 +0800 Subject: [PATCH 131/455] Add ListTaskCommand, FindTaskCommand and relevant test cases --- .../seedu/address/commons/core/Messages.java | 1 + .../address/logic/commands/FindCommand.java | 7 +- .../logic/commands/FindTaskCommand.java | 56 +++++++++ .../logic/commands/ListTaskCommand.java | 24 ++++ .../logic/parser/AddressBookParser.java | 8 ++ .../logic/parser/FindCommandParser.java | 4 +- .../logic/parser/FindTaskCommandParser.java | 50 ++++++++ ...> PersonTagContainsKeywordsPredicate.java} | 10 +- .../tag/TaskTagContainsKeywordsPredicate.java | 33 +++++ .../logic/commands/CommandTestUtil.java | 17 +++ .../logic/commands/FindCommandTest.java | 22 ++-- .../logic/commands/FindTaskCommandTest.java | 101 +++++++++++++++ .../logic/commands/ListTaskCommandTest.java | 41 +++++++ .../logic/parser/AddressBookParserTest.java | 4 +- .../logic/parser/FindCommandParserTest.java | 4 +- .../parser/FindTaskCommandParserTest.java | 40 ++++++ .../NameContainsKeywordsPredicateTest.java | 2 +- .../tag/TagContainsKeywordsPredicateTest.java | 115 ++++++++++++++---- 18 files changed, 489 insertions(+), 50 deletions(-) create mode 100644 src/main/java/seedu/address/logic/commands/FindTaskCommand.java create mode 100644 src/main/java/seedu/address/logic/commands/ListTaskCommand.java create mode 100644 src/main/java/seedu/address/logic/parser/FindTaskCommandParser.java rename src/main/java/seedu/address/model/tag/{TagContainsKeywordsPredicate.java => PersonTagContainsKeywordsPredicate.java} (60%) create mode 100644 src/main/java/seedu/address/model/tag/TaskTagContainsKeywordsPredicate.java create mode 100644 src/test/java/seedu/address/logic/commands/FindTaskCommandTest.java create mode 100644 src/test/java/seedu/address/logic/commands/ListTaskCommandTest.java create mode 100644 src/test/java/seedu/address/logic/parser/FindTaskCommandParserTest.java diff --git a/src/main/java/seedu/address/commons/core/Messages.java b/src/main/java/seedu/address/commons/core/Messages.java index 610f281b22c..663a64e1469 100644 --- a/src/main/java/seedu/address/commons/core/Messages.java +++ b/src/main/java/seedu/address/commons/core/Messages.java @@ -11,5 +11,6 @@ public class Messages { public static final String MESSAGE_INVALID_TASK_DISPLAYED_INDEX = "The task index provided is invalid"; public static final String MESSAGE_INVALID_NOTE_DISPLAYED_INDEX = "The note index provided is invalid"; public static final String MESSAGE_PERSONS_LISTED_OVERVIEW = "%1$d persons listed!"; + public static final String MESSAGE_TASKS_LISTED_OVERVIEW = "%1$d tasks listed!"; } diff --git a/src/main/java/seedu/address/logic/commands/FindCommand.java b/src/main/java/seedu/address/logic/commands/FindCommand.java index 4d91825240a..2bdeb21d42e 100644 --- a/src/main/java/seedu/address/logic/commands/FindCommand.java +++ b/src/main/java/seedu/address/logic/commands/FindCommand.java @@ -7,7 +7,7 @@ import seedu.address.commons.core.Messages; import seedu.address.model.Model; import seedu.address.model.name.PersonNameContainsKeywordsPredicate; -import seedu.address.model.tag.TagContainsKeywordsPredicate; +import seedu.address.model.tag.PersonTagContainsKeywordsPredicate; /** * Finds and lists all persons in address book whose name contains any of the argument keywords. @@ -27,12 +27,13 @@ public class FindCommand extends Command { + PREFIX_TAG + "friends"; private final PersonNameContainsKeywordsPredicate namePredicate; - private final TagContainsKeywordsPredicate tagPredicate; + private final PersonTagContainsKeywordsPredicate tagPredicate; /** * Initialises new object using {@code namePredicate} and {@code tagPredicate} */ - public FindCommand(PersonNameContainsKeywordsPredicate namePredicate, TagContainsKeywordsPredicate tagPredicate) { + public FindCommand(PersonNameContainsKeywordsPredicate namePredicate, + PersonTagContainsKeywordsPredicate tagPredicate) { this.namePredicate = namePredicate; this.tagPredicate = tagPredicate; } diff --git a/src/main/java/seedu/address/logic/commands/FindTaskCommand.java b/src/main/java/seedu/address/logic/commands/FindTaskCommand.java new file mode 100644 index 00000000000..cd168dfdfcb --- /dev/null +++ b/src/main/java/seedu/address/logic/commands/FindTaskCommand.java @@ -0,0 +1,56 @@ +package seedu.address.logic.commands; + +import static java.util.Objects.requireNonNull; +import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; +import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; + +import seedu.address.commons.core.Messages; +import seedu.address.model.Model; +import seedu.address.model.name.TaskNameContainsKeywordsPredicate; +import seedu.address.model.tag.TaskTagContainsKeywordsPredicate; + +/** + * Finds and lists all tasks in task book whose name or tag contains any of the argument keywords. + * Keyword matching is case insensitive. + */ +public class FindTaskCommand extends Command { + + public static final String COMMAND_WORD = "find-t"; + + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Finds all tasks whose names or tags contain any of " + + "the specified keywords (case-insensitive) and displays them as a list with index numbers.\n" + + "Parameters: " + + "[" + PREFIX_NAME + "NAME]... " + + "[" + PREFIX_TAG + "TAG]...\n" + + "Example: " + COMMAND_WORD + " " + PREFIX_NAME + "Meeting " + PREFIX_NAME + "Dinner " + + PREFIX_TAG + "friends"; + + private final TaskNameContainsKeywordsPredicate namePredicate; + private final TaskTagContainsKeywordsPredicate tagPredicate; + + /** + * Initialises new object using {@code namePredicate} and {@code tagPredicate} + */ + public FindTaskCommand(TaskNameContainsKeywordsPredicate namePredicate, + TaskTagContainsKeywordsPredicate tagPredicate) { + this.namePredicate = namePredicate; + this.tagPredicate = tagPredicate; + } + + @Override + public CommandResult execute(Model model) { + requireNonNull(model); + model.updateFilteredTaskList(namePredicate.or(tagPredicate)); + return new CommandResult( + String.format(Messages.MESSAGE_TASKS_LISTED_OVERVIEW, model.getFilteredTaskList().size())); + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof FindTaskCommand // instanceof handles nulls + && namePredicate.equals(((FindTaskCommand) other).namePredicate) + && tagPredicate.equals(((FindTaskCommand) other).tagPredicate)); // state check + } +} diff --git a/src/main/java/seedu/address/logic/commands/ListTaskCommand.java b/src/main/java/seedu/address/logic/commands/ListTaskCommand.java new file mode 100644 index 00000000000..5d947bbeca7 --- /dev/null +++ b/src/main/java/seedu/address/logic/commands/ListTaskCommand.java @@ -0,0 +1,24 @@ +package seedu.address.logic.commands; + +import static java.util.Objects.requireNonNull; +import static seedu.address.model.Model.PREDICATE_SHOW_ALL_TASKS; + +import seedu.address.model.Model; + +/** + * Lists all tasks in the task book to the user. + */ +public class ListTaskCommand extends Command { + + public static final String COMMAND_WORD = "list-t"; + + public static final String MESSAGE_SUCCESS = "Listed all tasks"; + + + @Override + public CommandResult execute(Model model) { + requireNonNull(model); + model.updateFilteredTaskList(PREDICATE_SHOW_ALL_TASKS); + return new CommandResult(MESSAGE_SUCCESS); + } +} diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index 93633d9eaa9..d1d69102bf2 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -19,8 +19,10 @@ import seedu.address.logic.commands.EditCommand; import seedu.address.logic.commands.ExitCommand; import seedu.address.logic.commands.FindCommand; +import seedu.address.logic.commands.FindTaskCommand; import seedu.address.logic.commands.HelpCommand; import seedu.address.logic.commands.ListCommand; +import seedu.address.logic.commands.ListTaskCommand; import seedu.address.logic.parser.exceptions.ParseException; /** @@ -71,9 +73,15 @@ public Command parseCommand(String userInput) throws ParseException { case FindCommand.COMMAND_WORD: return new FindCommandParser().parse(arguments); + case FindTaskCommand.COMMAND_WORD: + return new FindTaskCommandParser().parse(arguments); + case ListCommand.COMMAND_WORD: return new ListCommand(); + case ListTaskCommand.COMMAND_WORD: + return new ListTaskCommand(); + case AddNoteCommand.COMMAND_WORD: return new AddNoteCommandParser().parse(arguments); diff --git a/src/main/java/seedu/address/logic/parser/FindCommandParser.java b/src/main/java/seedu/address/logic/parser/FindCommandParser.java index ad4b160855b..ed932af62ed 100644 --- a/src/main/java/seedu/address/logic/parser/FindCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/FindCommandParser.java @@ -10,7 +10,7 @@ import seedu.address.logic.commands.FindCommand; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.name.PersonNameContainsKeywordsPredicate; -import seedu.address.model.tag.TagContainsKeywordsPredicate; +import seedu.address.model.tag.PersonTagContainsKeywordsPredicate; /** * Parses input arguments and creates a new FindCommand object @@ -37,7 +37,7 @@ public FindCommand parse(String args) throws ParseException { List tagKeywords = argMultimap.getAllValues(PREFIX_TAG); return new FindCommand(new PersonNameContainsKeywordsPredicate(nameKeywords), - new TagContainsKeywordsPredicate(tagKeywords)); + new PersonTagContainsKeywordsPredicate(tagKeywords)); } /** diff --git a/src/main/java/seedu/address/logic/parser/FindTaskCommandParser.java b/src/main/java/seedu/address/logic/parser/FindTaskCommandParser.java new file mode 100644 index 00000000000..f9244b88e4b --- /dev/null +++ b/src/main/java/seedu/address/logic/parser/FindTaskCommandParser.java @@ -0,0 +1,50 @@ +package seedu.address.logic.parser; + +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; +import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; + +import java.util.List; +import java.util.stream.Stream; + +import seedu.address.logic.commands.FindTaskCommand; +import seedu.address.logic.parser.exceptions.ParseException; +import seedu.address.model.name.TaskNameContainsKeywordsPredicate; +import seedu.address.model.tag.TaskTagContainsKeywordsPredicate; + +/** + * Parses input arguments and creates a new FindTaskCommand object + */ +public class FindTaskCommandParser implements Parser { + + /** + * Parses the given {@code String} of arguments in the context of the FindTaskCommand + * and returns a FindTaskCommand object for execution. + * @throws ParseException if the user input does not conform the expected format + */ + public FindTaskCommand parse(String args) throws ParseException { + String trimmedArgs = args.trim(); + ArgumentMultimap argMultimap = + ArgumentTokenizer.tokenize(args, PREFIX_NAME, PREFIX_TAG); + + if ((!arePrefixesPresent(argMultimap, PREFIX_NAME) && !arePrefixesPresent(argMultimap, PREFIX_TAG)) + || trimmedArgs.isEmpty()) { + throw new ParseException( + String.format(MESSAGE_INVALID_COMMAND_FORMAT, FindTaskCommand.MESSAGE_USAGE)); + } + + List nameKeywords = argMultimap.getAllValues(PREFIX_NAME); + List tagKeywords = argMultimap.getAllValues(PREFIX_TAG); + + return new FindTaskCommand(new TaskNameContainsKeywordsPredicate(nameKeywords), + new TaskTagContainsKeywordsPredicate(tagKeywords)); + } + + /** + * Returns true if none of the prefixes contains empty {@code Optional} values in the given + * {@code ArgumentMultimap}. + */ + private static boolean arePrefixesPresent(ArgumentMultimap argumentMultimap, Prefix... prefixes) { + return Stream.of(prefixes).allMatch(prefix -> argumentMultimap.getValue(prefix).isPresent()); + } +} diff --git a/src/main/java/seedu/address/model/tag/TagContainsKeywordsPredicate.java b/src/main/java/seedu/address/model/tag/PersonTagContainsKeywordsPredicate.java similarity index 60% rename from src/main/java/seedu/address/model/tag/TagContainsKeywordsPredicate.java rename to src/main/java/seedu/address/model/tag/PersonTagContainsKeywordsPredicate.java index 9c868a07753..ddd99515f03 100644 --- a/src/main/java/seedu/address/model/tag/TagContainsKeywordsPredicate.java +++ b/src/main/java/seedu/address/model/tag/PersonTagContainsKeywordsPredicate.java @@ -7,12 +7,12 @@ import seedu.address.model.person.Person; /** - * Tests that a {@code Person}'s {@code Name} matches any of the keywords given. + * Tests that a {@code Person}'s {@code Tag} matches any of the keywords given. */ -public class TagContainsKeywordsPredicate implements Predicate { +public class PersonTagContainsKeywordsPredicate implements Predicate { private final List keywords; - public TagContainsKeywordsPredicate(List keywords) { + public PersonTagContainsKeywordsPredicate(List keywords) { this.keywords = keywords; } @@ -26,8 +26,8 @@ public boolean test(Person person) { @Override public boolean equals(Object other) { return other == this // short circuit if same object - || (other instanceof TagContainsKeywordsPredicate // instanceof handles nulls - && keywords.equals(((TagContainsKeywordsPredicate) other).keywords)); // state check + || (other instanceof PersonTagContainsKeywordsPredicate // instanceof handles nulls + && keywords.equals(((PersonTagContainsKeywordsPredicate) other).keywords)); // state check } } diff --git a/src/main/java/seedu/address/model/tag/TaskTagContainsKeywordsPredicate.java b/src/main/java/seedu/address/model/tag/TaskTagContainsKeywordsPredicate.java new file mode 100644 index 00000000000..32f76c07930 --- /dev/null +++ b/src/main/java/seedu/address/model/tag/TaskTagContainsKeywordsPredicate.java @@ -0,0 +1,33 @@ +package seedu.address.model.tag; + +import java.util.List; +import java.util.function.Predicate; + +import seedu.address.commons.util.StringUtil; +import seedu.address.model.task.Task; + +/** + * Tests that a {@code Task}'s {@code Tag} matches any of the keywords given. + */ +public class TaskTagContainsKeywordsPredicate implements Predicate { + private final List keywords; + + public TaskTagContainsKeywordsPredicate(List keywords) { + this.keywords = keywords; + } + + @Override + public boolean test(Task task) { + return keywords.stream() + .anyMatch(keyword -> task.getTags().stream() + .anyMatch(tag -> StringUtil.containsWordIgnoreCase(tag.tagName, keyword))); + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof TaskTagContainsKeywordsPredicate // instanceof handles nulls + && keywords.equals(((TaskTagContainsKeywordsPredicate) other).keywords)); // state check + } + +} diff --git a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java b/src/test/java/seedu/address/logic/commands/CommandTestUtil.java index 31b6e65ddb6..e8cdf30ab7a 100644 --- a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java +++ b/src/test/java/seedu/address/logic/commands/CommandTestUtil.java @@ -21,7 +21,9 @@ import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.name.PersonNameContainsKeywordsPredicate; +import seedu.address.model.name.TaskNameContainsKeywordsPredicate; import seedu.address.model.person.Person; +import seedu.address.model.task.Task; import seedu.address.testutil.EditPersonDescriptorBuilder; /** @@ -147,6 +149,7 @@ public static void assertCommandFailure(Command command, Model actualModel, Stri assertEquals(expectedAddressBook, actualModel.getAddressBook()); assertEquals(expectedFilteredList, actualModel.getFilteredPersonList()); } + /** * Updates {@code model}'s filtered list to show only the person at the given {@code targetIndex} in the * {@code model}'s address book. @@ -161,4 +164,18 @@ public static void showPersonAtIndex(Model model, Index targetIndex) { assertEquals(1, model.getFilteredPersonList().size()); } + /** + * Updates {@code model}'s filtered list to show only the task at the given {@code targetIndex} in the + * {@code model}'s task book. + */ + public static void showTaskAtIndex(Model model, Index targetIndex) { + assertTrue(targetIndex.getZeroBased() < model.getFilteredTaskList().size()); + + Task task = model.getFilteredTaskList().get(targetIndex.getZeroBased()); + final String[] splitName = task.getName().fullName.split("\\s+"); + model.updateFilteredTaskList(new TaskNameContainsKeywordsPredicate(Arrays.asList(splitName[0]))); + + assertEquals(1, model.getFilteredTaskList().size()); + } + } diff --git a/src/test/java/seedu/address/logic/commands/FindCommandTest.java b/src/test/java/seedu/address/logic/commands/FindCommandTest.java index 91eb69a5343..e78c42c821c 100644 --- a/src/test/java/seedu/address/logic/commands/FindCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/FindCommandTest.java @@ -21,7 +21,7 @@ import seedu.address.model.ModelManager; import seedu.address.model.UserPrefs; import seedu.address.model.name.PersonNameContainsKeywordsPredicate; -import seedu.address.model.tag.TagContainsKeywordsPredicate; +import seedu.address.model.tag.PersonTagContainsKeywordsPredicate; /** * Contains integration tests (interaction with the Model) for {@code FindCommand}. @@ -37,10 +37,10 @@ public void equals() { new PersonNameContainsKeywordsPredicate(Collections.singletonList("first")); PersonNameContainsKeywordsPredicate secondPredicate = new PersonNameContainsKeywordsPredicate(Collections.singletonList("second")); - TagContainsKeywordsPredicate thirdPredicate = - new TagContainsKeywordsPredicate(Collections.singletonList("third")); - TagContainsKeywordsPredicate fourthPredicate = - new TagContainsKeywordsPredicate(Collections.singletonList("fourth")); + PersonTagContainsKeywordsPredicate thirdPredicate = + new PersonTagContainsKeywordsPredicate(Collections.singletonList("third")); + PersonTagContainsKeywordsPredicate fourthPredicate = + new PersonTagContainsKeywordsPredicate(Collections.singletonList("fourth")); FindCommand findFirstCommand = new FindCommand(firstPredicate, thirdPredicate); FindCommand findSecondCommand = new FindCommand(secondPredicate, fourthPredicate); @@ -68,7 +68,7 @@ public void execute_zeroKeywords_noPersonAndTagFound() { List tagList = Arrays.asList(); String expectedMessage = String.format(MESSAGE_PERSONS_LISTED_OVERVIEW, 0); PersonNameContainsKeywordsPredicate namePredicate = prepareNamePredicate(nameList); - TagContainsKeywordsPredicate tagPredicate = prepareTagPredicate(tagList); + PersonTagContainsKeywordsPredicate tagPredicate = prepareTagPredicate(tagList); FindCommand command = new FindCommand(namePredicate, tagPredicate); expectedModel.updateFilteredPersonList(namePredicate.or(tagPredicate)); assertCommandSuccess(command, model, expectedMessage, expectedModel); @@ -81,7 +81,7 @@ public void execute_multipleKeywords_multiplePersonsAndTagsFound() { List tagList = Arrays.asList("friends", "neighbours"); String expectedMessage = String.format(MESSAGE_PERSONS_LISTED_OVERVIEW, 3); PersonNameContainsKeywordsPredicate namePredicate = prepareNamePredicate(nameList); - TagContainsKeywordsPredicate tagPredicate = prepareTagPredicate(tagList); + PersonTagContainsKeywordsPredicate tagPredicate = prepareTagPredicate(tagList); FindCommand command = new FindCommand(namePredicate, tagPredicate); expectedModel.updateFilteredPersonList(namePredicate.or(tagPredicate)); assertCommandSuccess(command, model, expectedMessage, expectedModel); @@ -89,15 +89,15 @@ public void execute_multipleKeywords_multiplePersonsAndTagsFound() { } /** - * Creates a {@code NameContainsKeywordsPredicate} using {@code nameList}. + * Creates a {@code PersonNameContainsKeywordsPredicate} using {@code nameList}. */ private PersonNameContainsKeywordsPredicate prepareNamePredicate(List nameList) { return new PersonNameContainsKeywordsPredicate(nameList); } /** - * Creates a {@code TagContainsKeywordsPredicate} using {@code tagSet}. + * Creates a {@code PersonTagContainsKeywordsPredicate} using {@code tagSet}. */ - private TagContainsKeywordsPredicate prepareTagPredicate(List tagList) { - return new TagContainsKeywordsPredicate(tagList); + private PersonTagContainsKeywordsPredicate prepareTagPredicate(List tagList) { + return new PersonTagContainsKeywordsPredicate(tagList); } } diff --git a/src/test/java/seedu/address/logic/commands/FindTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/FindTaskCommandTest.java new file mode 100644 index 00000000000..2285104168f --- /dev/null +++ b/src/test/java/seedu/address/logic/commands/FindTaskCommandTest.java @@ -0,0 +1,101 @@ +package seedu.address.logic.commands; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static seedu.address.commons.core.Messages.MESSAGE_TASKS_LISTED_OVERVIEW; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; +import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static seedu.address.testutil.TypicalTasks.FIRST_TASK; +import static seedu.address.testutil.TypicalTasks.THIRD_TASK; +import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.junit.jupiter.api.Test; + +import seedu.address.model.Model; +import seedu.address.model.ModelManager; +import seedu.address.model.UserPrefs; +import seedu.address.model.name.TaskNameContainsKeywordsPredicate; +import seedu.address.model.tag.TaskTagContainsKeywordsPredicate; +/** + * Contains integration tests (interaction with the Model) for {@code FindTaskCommand}. + */ +public class FindTaskCommandTest { + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + private Model expectedModel = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + + @Test + public void equals() { + + TaskNameContainsKeywordsPredicate firstPredicate = + new TaskNameContainsKeywordsPredicate(Collections.singletonList("first")); + TaskNameContainsKeywordsPredicate secondPredicate = + new TaskNameContainsKeywordsPredicate(Collections.singletonList("second")); + TaskTagContainsKeywordsPredicate thirdPredicate = + new TaskTagContainsKeywordsPredicate(Collections.singletonList("third")); + TaskTagContainsKeywordsPredicate fourthPredicate = + new TaskTagContainsKeywordsPredicate(Collections.singletonList("fourth")); + + FindTaskCommand findFirstCommand = new FindTaskCommand(firstPredicate, thirdPredicate); + FindTaskCommand findSecondCommand = new FindTaskCommand(secondPredicate, fourthPredicate); + + // same object -> returns true + assertTrue(findFirstCommand.equals(findFirstCommand)); + + // same values -> returns true + FindTaskCommand findFirstCommandCopy = new FindTaskCommand(firstPredicate, thirdPredicate); + assertTrue(findFirstCommand.equals(findFirstCommandCopy)); + + // different types -> returns false + assertFalse(findFirstCommand.equals(1)); + + // null -> returns false + assertFalse(findFirstCommand.equals(null)); + + // different person -> returns false + assertFalse(findFirstCommand.equals(findSecondCommand)); + } + + @Test + public void execute_zeroKeywords_noPersonAndTagFound() { + List nameList = Arrays.asList(); + List tagList = Arrays.asList(); + String expectedMessage = String.format(MESSAGE_TASKS_LISTED_OVERVIEW, 0); + TaskNameContainsKeywordsPredicate namePredicate = prepareNamePredicate(nameList); + TaskTagContainsKeywordsPredicate tagPredicate = prepareTagPredicate(tagList); + FindTaskCommand command = new FindTaskCommand(namePredicate, tagPredicate); + expectedModel.updateFilteredTaskList(namePredicate.or(tagPredicate)); + assertCommandSuccess(command, model, expectedMessage, expectedModel); + assertEquals(Collections.emptyList(), model.getFilteredTaskList()); + } + + @Test + public void execute_multipleKeywords_multiplePersonsAndTagsFound() { + List nameList = Arrays.asList("Meeting", "Dinner"); + List tagList = Arrays.asList("friends", "neighbours"); + String expectedMessage = String.format(MESSAGE_TASKS_LISTED_OVERVIEW, 2); + TaskNameContainsKeywordsPredicate namePredicate = prepareNamePredicate(nameList); + TaskTagContainsKeywordsPredicate tagPredicate = prepareTagPredicate(tagList); + FindTaskCommand command = new FindTaskCommand(namePredicate, tagPredicate); + expectedModel.updateFilteredTaskList(namePredicate.or(tagPredicate)); + assertCommandSuccess(command, model, expectedMessage, expectedModel); + assertEquals(Arrays.asList(FIRST_TASK, THIRD_TASK), model.getFilteredTaskList()); + } + + /** + * Creates a {@code TaskNameContainsKeywordsPredicate} using {@code nameList}. + */ + private TaskNameContainsKeywordsPredicate prepareNamePredicate(List nameList) { + return new TaskNameContainsKeywordsPredicate(nameList); + } + /** + * Creates a {@code TaskTagContainsKeywordsPredicate} using {@code tagSet}. + */ + private TaskTagContainsKeywordsPredicate prepareTagPredicate(List tagList) { + return new TaskTagContainsKeywordsPredicate(tagList); + } +} diff --git a/src/test/java/seedu/address/logic/commands/ListTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/ListTaskCommandTest.java new file mode 100644 index 00000000000..f54c8384e07 --- /dev/null +++ b/src/test/java/seedu/address/logic/commands/ListTaskCommandTest.java @@ -0,0 +1,41 @@ +package seedu.address.logic.commands; + +import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; +import static seedu.address.logic.commands.CommandTestUtil.showTaskAtIndex; +import static seedu.address.testutil.TypicalIndexes.TASK_SECOND_INDEX; +import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import seedu.address.model.Model; +import seedu.address.model.ModelManager; +import seedu.address.model.UserPrefs; + +/** + * Contains integration tests (interaction with the Model) and unit tests for ListTaskCommand. + */ +public class ListTaskCommandTest { + + private Model model; + private Model expectedModel; + + @BeforeEach + public void setUp() { + model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + expectedModel = new ModelManager(model.getAddressBook(), + model.getTaskBook(), new UserPrefs()); + } + + @Test + public void execute_listIsNotFiltered_showsSameList() { + assertCommandSuccess(new ListTaskCommand(), model, ListTaskCommand.MESSAGE_SUCCESS, expectedModel); + } + + @Test + public void execute_listIsFiltered_showsEverything() { + showTaskAtIndex(model, TASK_SECOND_INDEX); + assertCommandSuccess(new ListTaskCommand(), model, ListTaskCommand.MESSAGE_SUCCESS, expectedModel); + } +} diff --git a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java index db89375ba8b..dc8f30a3308 100644 --- a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java +++ b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java @@ -27,7 +27,7 @@ import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.name.PersonNameContainsKeywordsPredicate; import seedu.address.model.person.Person; -import seedu.address.model.tag.TagContainsKeywordsPredicate; +import seedu.address.model.tag.PersonTagContainsKeywordsPredicate; import seedu.address.testutil.EditPersonDescriptorBuilder; import seedu.address.testutil.PersonBuilder; import seedu.address.testutil.PersonUtil; @@ -86,7 +86,7 @@ public void parseCommand_find() throws Exception { FindCommand command = (FindCommand) parser.parseCommand( FindCommand.COMMAND_WORD + " " + "n/foo n/bar n/baz t/friends t/colleagues"); assertEquals(new FindCommand(new PersonNameContainsKeywordsPredicate(nameList), - new TagContainsKeywordsPredicate(tagList)), command); + new PersonTagContainsKeywordsPredicate(tagList)), command); } @Test diff --git a/src/test/java/seedu/address/logic/parser/FindCommandParserTest.java b/src/test/java/seedu/address/logic/parser/FindCommandParserTest.java index e6e8238be78..00db2a89997 100644 --- a/src/test/java/seedu/address/logic/parser/FindCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/FindCommandParserTest.java @@ -11,7 +11,7 @@ import seedu.address.logic.commands.FindCommand; import seedu.address.model.name.PersonNameContainsKeywordsPredicate; -import seedu.address.model.tag.TagContainsKeywordsPredicate; +import seedu.address.model.tag.PersonTagContainsKeywordsPredicate; public class FindCommandParserTest { @@ -29,7 +29,7 @@ public void parse_validArgs_returnsFindCommand() { // no leading and trailing whitespaces FindCommand expectedFindCommand = new FindCommand(new PersonNameContainsKeywordsPredicate(nameList), - new TagContainsKeywordsPredicate(tagList)); + new PersonTagContainsKeywordsPredicate(tagList)); assertParseSuccess(parser, " n/Alex n/Bob t/friends t/neighbours", expectedFindCommand); // multiple whitespaces between keywords diff --git a/src/test/java/seedu/address/logic/parser/FindTaskCommandParserTest.java b/src/test/java/seedu/address/logic/parser/FindTaskCommandParserTest.java new file mode 100644 index 00000000000..b615a6b2694 --- /dev/null +++ b/src/test/java/seedu/address/logic/parser/FindTaskCommandParserTest.java @@ -0,0 +1,40 @@ +package seedu.address.logic.parser; + +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; +import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; + +import java.util.Arrays; +import java.util.List; + +import org.junit.jupiter.api.Test; + +import seedu.address.logic.commands.FindTaskCommand; +import seedu.address.model.name.TaskNameContainsKeywordsPredicate; +import seedu.address.model.tag.TaskTagContainsKeywordsPredicate; + +public class FindTaskCommandParserTest { + + private FindTaskCommandParser parser = new FindTaskCommandParser(); + + @Test + public void parse_emptyArg_throwsParseException() { + assertParseFailure(parser, " ", + String.format(MESSAGE_INVALID_COMMAND_FORMAT, FindTaskCommand.MESSAGE_USAGE)); + } + + @Test + public void parse_validArgs_returnsFindCommand() { + List nameList = Arrays.asList("Meeting", "Dinner"); + List tagList = Arrays.asList("friends", "neighbours"); + // no leading and trailing whitespaces + FindTaskCommand expectedFindCommand = + new FindTaskCommand(new TaskNameContainsKeywordsPredicate(nameList), + new TaskTagContainsKeywordsPredicate(tagList)); + assertParseSuccess(parser, " n/Meeting n/Dinner t/friends t/neighbours", expectedFindCommand); + + // multiple whitespaces between keywords + assertParseSuccess(parser, " n/Meeting n/Dinner t/friends t/neighbours ", expectedFindCommand); + } + +} diff --git a/src/test/java/seedu/address/model/name/NameContainsKeywordsPredicateTest.java b/src/test/java/seedu/address/model/name/NameContainsKeywordsPredicateTest.java index 23542e435d5..a924c02cb87 100644 --- a/src/test/java/seedu/address/model/name/NameContainsKeywordsPredicateTest.java +++ b/src/test/java/seedu/address/model/name/NameContainsKeywordsPredicateTest.java @@ -13,7 +13,7 @@ import seedu.address.testutil.TaskBuilder; /** - * Test class for {@code PersonContainsKeywordsPredicate} and {@code TaskContainsKeywordPredicate} + * Test class for {@code PersonNameContainsKeywordsPredicate} and {@code TaskNameContainsKeywordPredicate} */ public class NameContainsKeywordsPredicateTest { diff --git a/src/test/java/seedu/address/model/tag/TagContainsKeywordsPredicateTest.java b/src/test/java/seedu/address/model/tag/TagContainsKeywordsPredicateTest.java index 76932d9ea15..a1a6c509ac9 100644 --- a/src/test/java/seedu/address/model/tag/TagContainsKeywordsPredicateTest.java +++ b/src/test/java/seedu/address/model/tag/TagContainsKeywordsPredicateTest.java @@ -10,7 +10,11 @@ import org.junit.jupiter.api.Test; import seedu.address.testutil.PersonBuilder; +import seedu.address.testutil.TaskBuilder; +/** + * Test class for {@code TaskTagContainsKeywordsPredicate} and {@code PersonTagContainsKeywordPredicate} + */ public class TagContainsKeywordsPredicateTest { @Test @@ -18,61 +22,124 @@ public void equals() { List firstPredicateKeywordList = Collections.singletonList("first"); List secondPredicateKeywordList = Arrays.asList("first", "second"); - TagContainsKeywordsPredicate firstPredicate = new TagContainsKeywordsPredicate(firstPredicateKeywordList); - TagContainsKeywordsPredicate secondPredicate = new TagContainsKeywordsPredicate(secondPredicateKeywordList); + // Persons Test + PersonTagContainsKeywordsPredicate firstPersonPredicate = + new PersonTagContainsKeywordsPredicate(firstPredicateKeywordList); + PersonTagContainsKeywordsPredicate secondPersonPredicate = + new PersonTagContainsKeywordsPredicate(secondPredicateKeywordList); // same object -> returns true - assertTrue(firstPredicate.equals(firstPredicate)); + assertTrue(firstPersonPredicate.equals(firstPersonPredicate)); // same values -> returns true - TagContainsKeywordsPredicate firstPredicateCopy = new TagContainsKeywordsPredicate(firstPredicateKeywordList); - assertTrue(firstPredicate.equals(firstPredicateCopy)); + PersonTagContainsKeywordsPredicate firstPersonPredicateCopy = + new PersonTagContainsKeywordsPredicate(firstPredicateKeywordList); + assertTrue(firstPersonPredicate.equals(firstPersonPredicateCopy)); // different types -> returns false - assertFalse(firstPredicate.equals(1)); + assertFalse(firstPersonPredicate.equals(1)); // null -> returns false - assertFalse(firstPredicate.equals(null)); + assertFalse(firstPersonPredicate.equals(null)); // different person -> returns false - assertFalse(firstPredicate.equals(secondPredicate)); + assertFalse(firstPersonPredicate.equals(secondPersonPredicate)); + + // Tasks Test + TaskTagContainsKeywordsPredicate firstTaskPredicate = + new TaskTagContainsKeywordsPredicate(firstPredicateKeywordList); + TaskTagContainsKeywordsPredicate secondTaskPredicate = + new TaskTagContainsKeywordsPredicate(secondPredicateKeywordList); + + // same object -> returns true + assertTrue(firstTaskPredicate.equals(firstTaskPredicate)); + + // same values -> returns true + TaskTagContainsKeywordsPredicate firstTaskPredicateCopy = + new TaskTagContainsKeywordsPredicate(firstPredicateKeywordList); + assertTrue(firstTaskPredicate.equals(firstTaskPredicateCopy)); + + // different types -> returns false + assertFalse(firstTaskPredicate.equals(1)); + + // null -> returns false + assertFalse(firstTaskPredicate.equals(null)); + + // different person -> returns false + assertFalse(firstTaskPredicate.equals(secondTaskPredicate)); } @Test public void test_tagContainsKeywords_returnsTrue() { + // Persons Test // One keyword - TagContainsKeywordsPredicate predicate = - new TagContainsKeywordsPredicate(Collections.singletonList("Family")); - assertTrue(predicate.test(new PersonBuilder().withTags("Family", "Colleague").build())); + PersonTagContainsKeywordsPredicate personPredicate = + new PersonTagContainsKeywordsPredicate(Collections.singletonList("Family")); + assertTrue(personPredicate.test(new PersonBuilder().withTags("Family", "Colleague").build())); // Multiple keywords - predicate = new TagContainsKeywordsPredicate(Arrays.asList("Family", "Colleague")); - assertTrue(predicate.test(new PersonBuilder().withTags("Family", "Colleague").build())); + personPredicate = new PersonTagContainsKeywordsPredicate(Arrays.asList("Family", "Colleague")); + assertTrue(personPredicate.test(new PersonBuilder().withTags("Family", "Colleague").build())); // Only one matching keyword - predicate = new TagContainsKeywordsPredicate(Arrays.asList("Colleague", "Team")); - assertTrue(predicate.test(new PersonBuilder().withTags("Family", "Team").build())); + personPredicate = new PersonTagContainsKeywordsPredicate(Arrays.asList("Colleague", "Team")); + assertTrue(personPredicate.test(new PersonBuilder().withTags("Family", "Team").build())); // Mixed-case keywords - predicate = new TagContainsKeywordsPredicate(Arrays.asList("fAmiLy", "coLLEague")); - assertTrue(predicate.test(new PersonBuilder().withTags("Family", "Colleague").build())); + personPredicate = new PersonTagContainsKeywordsPredicate(Arrays.asList("fAmiLy", "coLLEague")); + assertTrue(personPredicate.test(new PersonBuilder().withTags("Family", "Colleague").build())); + + // Tasks Test + TaskTagContainsKeywordsPredicate taskPredicate = + new TaskTagContainsKeywordsPredicate(Collections.singletonList("Family")); + assertTrue(taskPredicate.test(new TaskBuilder().withTags("Family", "Colleague").build())); + + // Multiple keywords + taskPredicate = new TaskTagContainsKeywordsPredicate(Arrays.asList("Family", "Colleague")); + assertTrue(taskPredicate.test(new TaskBuilder().withTags("Family", "Colleague").build())); + + // Only one matching keyword + taskPredicate = new TaskTagContainsKeywordsPredicate(Arrays.asList("Colleague", "Team")); + assertTrue(taskPredicate.test(new TaskBuilder().withTags("Family", "Team").build())); + + // Mixed-case keywords + taskPredicate = new TaskTagContainsKeywordsPredicate(Arrays.asList("fAmiLy", "coLLEague")); + assertTrue(taskPredicate.test(new TaskBuilder().withTags("Family", "Colleague").build())); + } @Test public void test_nameDoesNotContainKeywords_returnsFalse() { + //Persons Test // Zero keywords - TagContainsKeywordsPredicate predicate = - new TagContainsKeywordsPredicate(Collections.emptyList()); - assertFalse(predicate.test(new PersonBuilder().withTags("Family").build())); + PersonTagContainsKeywordsPredicate personPredicate = + new PersonTagContainsKeywordsPredicate(Collections.emptyList()); + assertFalse(personPredicate.test(new PersonBuilder().withTags("Family").build())); // Non-matching keyword - predicate = new TagContainsKeywordsPredicate(Arrays.asList("Team")); - assertFalse(predicate.test(new PersonBuilder().withTags("Family", "Colleague").build())); + personPredicate = new PersonTagContainsKeywordsPredicate(Arrays.asList("Team")); + assertFalse(personPredicate.test(new PersonBuilder().withTags("Family", "Colleague").build())); // Keywords match name, phone, and address, but does not match tag - predicate = new TagContainsKeywordsPredicate( + personPredicate = new PersonTagContainsKeywordsPredicate( Arrays.asList("Alice" , "12345", "Main", "Street")); - assertFalse(predicate.test(new PersonBuilder().withName("Alice").withPhone("12345") + assertFalse(personPredicate.test(new PersonBuilder().withName("Alice").withPhone("12345") .withEmail("alice@email.com").withAddress("Main Street").withTags("Family", "Colleague").build())); + + //Tasks Test + // Zero keywords + TaskTagContainsKeywordsPredicate taskPredicate = + new TaskTagContainsKeywordsPredicate(Collections.emptyList()); + assertFalse(taskPredicate.test(new TaskBuilder().withTags("Family").build())); + + // Non-matching keyword + taskPredicate = new TaskTagContainsKeywordsPredicate(Arrays.asList("Team")); + assertFalse(taskPredicate.test(new TaskBuilder().withTags("Family", "Colleague").build())); + + // Keywords match name, but does not match tag + taskPredicate = new TaskTagContainsKeywordsPredicate( + Arrays.asList("Meeting" , "Dinner", "Lunch", "Medical")); + assertFalse(taskPredicate.test(new TaskBuilder().withName("Meeting").withDate("10-03-2020") + .withStartTime("08:00").withEndTime("09:00").withTags("Family", "Colleague").build())); } } From fedfa046b04b72575f5800129c9ec0fd693921c7 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Mon, 21 Mar 2022 12:28:08 +0800 Subject: [PATCH 132/455] Fix bugs in FindCommand and FindTaskCommand Previous implementations are unable to detect invalid keywords after prefixes --- .../seedu/address/logic/parser/FindCommandParser.java | 10 ++++++++++ .../address/logic/parser/FindTaskCommandParser.java | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/src/main/java/seedu/address/logic/parser/FindCommandParser.java b/src/main/java/seedu/address/logic/parser/FindCommandParser.java index ed932af62ed..36b9b84b86d 100644 --- a/src/main/java/seedu/address/logic/parser/FindCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/FindCommandParser.java @@ -36,6 +36,16 @@ public FindCommand parse(String args) throws ParseException { List nameKeywords = argMultimap.getAllValues(PREFIX_NAME); List tagKeywords = argMultimap.getAllValues(PREFIX_TAG); + // checks if names are valid + for (String name: nameKeywords) { + ParserUtil.parseName(name); + } + + // check if tags are valid + for (String tag: tagKeywords) { + ParserUtil.parseTag(tag); + } + return new FindCommand(new PersonNameContainsKeywordsPredicate(nameKeywords), new PersonTagContainsKeywordsPredicate(tagKeywords)); } diff --git a/src/main/java/seedu/address/logic/parser/FindTaskCommandParser.java b/src/main/java/seedu/address/logic/parser/FindTaskCommandParser.java index f9244b88e4b..9bb62c3aa7d 100644 --- a/src/main/java/seedu/address/logic/parser/FindTaskCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/FindTaskCommandParser.java @@ -36,6 +36,16 @@ public FindTaskCommand parse(String args) throws ParseException { List nameKeywords = argMultimap.getAllValues(PREFIX_NAME); List tagKeywords = argMultimap.getAllValues(PREFIX_TAG); + // checks if names are valid + for (String name: nameKeywords) { + ParserUtil.parseName(name); + } + + // check if tags are valid + for (String tag: tagKeywords) { + ParserUtil.parseTag(tag); + } + return new FindTaskCommand(new TaskNameContainsKeywordsPredicate(nameKeywords), new TaskTagContainsKeywordsPredicate(tagKeywords)); } From 74c0cb888ab5788cf7dc03b3b2b78c3619d5ecf2 Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Mon, 21 Mar 2022 12:29:38 +0800 Subject: [PATCH 133/455] Add more test cases for ClearTaskCommand class --- .../address/logic/commands/ClearTaskCommandTest.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/test/java/seedu/address/logic/commands/ClearTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/ClearTaskCommandTest.java index 973cf03685d..acba01ad64b 100644 --- a/src/test/java/seedu/address/logic/commands/ClearTaskCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/ClearTaskCommandTest.java @@ -65,6 +65,14 @@ public void execute_invalidDate_throwsCommandException() { assertCommandFailure(clearTaskCommand, model, String.format(ClearTaskCommand.MESSAGE_INVALID_DATE, dateStub)); } + @Test + public void execute_emptyTaskList_throwsCommandException() { + Model emptyTaskListModel = new ModelManager(getTypicalAddressBook(), new TaskBook(), new UserPrefs()); + ClearTaskCommand clearTaskCommand = new ClearTaskCommand(); + + assertCommandFailure(clearTaskCommand, emptyTaskListModel, ClearTaskCommand.MESSAGE_EMPTY_LIST); + } + @Test public void equals() { Date dateStub2 = new Date("03-03-2001"); From 43a363d83c810ea256c5c2b9f6b4f7fc78e84b5c Mon Sep 17 00:00:00 2001 From: simjunheng Date: Mon, 21 Mar 2022 14:19:01 +0800 Subject: [PATCH 134/455] Enable assertions --- build.gradle | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/build.gradle b/build.gradle index be2d2905dde..aaafb402b1d 100644 --- a/build.gradle +++ b/build.gradle @@ -69,4 +69,8 @@ shadowJar { archiveName = 'addressbook.jar' } +run { + enableAssertions = true +} + defaultTasks 'clean', 'test' From 3c4af0068a67f9635392f3a53f4b58036f9d4c5a Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Mon, 21 Mar 2022 19:14:36 +0800 Subject: [PATCH 135/455] Improve readability of code and add more descriptive comments --- .../address/logic/commands/ClearTaskCommand.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/ClearTaskCommand.java b/src/main/java/seedu/address/logic/commands/ClearTaskCommand.java index 69a98b70506..ad1f687be1c 100644 --- a/src/main/java/seedu/address/logic/commands/ClearTaskCommand.java +++ b/src/main/java/seedu/address/logic/commands/ClearTaskCommand.java @@ -62,7 +62,10 @@ public CommandResult execute(Model model) throws CommandException { } //check if task list contains given date - if (hasDate && !lastShownList.stream().anyMatch((task) -> task.getDate().equals(date))) { + if (hasDate && !lastShownList + .stream() + .anyMatch((task) -> task.getDate() + .equals(date))) { throw new CommandException(String.format(MESSAGE_INVALID_DATE, date)); } @@ -83,9 +86,13 @@ public CommandResult execute(Model model) throws CommandException { @Override public boolean equals(Object other) { - return other == this + //check to make sure boolean variable is correctly referencing date object + assert (hasDate && date != null) || (!hasDate && date == null) + : "Boolean variable does not represent date object"; + return other == this //check if both are the same object reference || (other instanceof ClearTaskCommand - && hasDate == (((ClearTaskCommand) other).hasDate) - && (!hasDate || date.equals(((ClearTaskCommand) other).date))); + && hasDate == (((ClearTaskCommand) other).hasDate) //check if both have dates + && (!hasDate || date.equals(((ClearTaskCommand) other).date))); //if they both don't have dates, + //return true. Otherwise, check if dates are equivalent } } From f0878194c63723d68764c4c521bfc5f7ba2471b4 Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Mon, 21 Mar 2022 19:18:29 +0800 Subject: [PATCH 136/455] Fix typo in comments --- .../java/seedu/address/logic/commands/ClearTaskCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/logic/commands/ClearTaskCommand.java b/src/main/java/seedu/address/logic/commands/ClearTaskCommand.java index ad1f687be1c..e13d9d62a87 100644 --- a/src/main/java/seedu/address/logic/commands/ClearTaskCommand.java +++ b/src/main/java/seedu/address/logic/commands/ClearTaskCommand.java @@ -86,7 +86,7 @@ public CommandResult execute(Model model) throws CommandException { @Override public boolean equals(Object other) { - //check to make sure boolean variable is correctly referencing date object + //check to make sure boolean variable is correctly representing date object value assert (hasDate && date != null) || (!hasDate && date == null) : "Boolean variable does not represent date object"; return other == this //check if both are the same object reference From fe692374d139b887003d4258194ca81d7d5bcc6b Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Tue, 22 Mar 2022 01:52:44 +0800 Subject: [PATCH 137/455] Add implemented function definitions for v1.3 to UserGuide.md --- docs/UserGuide.md | 96 ++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 86 insertions(+), 10 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index fb1f64ebf66..9a910cc6ac0 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -133,28 +133,104 @@ Examples: * `find n/Alex n/Charlotte t/team1 t/team2` -### Adding a note : `note-add` +### Adding a strength : `strength-add` -Add a note to a selected person from our contact list. +Add a strength to a selected person from our contact list. -Format: `note-add INDEX NOTE_DESCRIPTION` +Format: `strength-add INDEX STRENGTH_DESCRIPTION` Examples: -* `note-add 1 Surgery Scheduled for tomorrow` adds the note "Surgery Scheduled for tomorrow" to the 1st person in the contact list. +* `strength-add 1 Great stamina` adds the strength "Great stamina" to the 1st person in the contact list. +### Adding a weakness : `weakness-add` -### Deleting a note : `note-del` +Add a weakness to a selected person from our contact list. -Delete the note to a selected person from our contact list. +Format: `weakness-add INDEX WEAKNESS_DESCRIPTION` -Format: `note-del INDEX NOTE_INDEX` +Examples: +* `weakness-add 1 Poor defensive abilities` adds the weakness "Poor defensive abilities" to the 1st person in the contact list. + + +### Adding a miscellaneous note : `misc-add` + +Add a miscellaneous note to a selected person from our contact list. + +Format: `misc-add INDEX NOTE_DESCRIPTION` + +Examples: +* `note-add 1 Likes ice cream` adds the miscellaneous note "Likes ice cream" to the 1st person in the contact list. + + +### Deleting a strength : `strength-del` + +Delete a strength from a selected person from our contact list. + +Format: `strength-del INDEX STRENGTH_INDEX` -* Deletes the person at the specified `INDEX`. +* Deletes the strength at the specified `INDEX`. * The index refers to the index number shown in the displayed person list. -* The index **must be a positive integer** 1, 2, 3, …​ +* The strength index refers to the index number shown in the strength list of the respective person. +* Both indices **must be a positive integer** 1, 2, 3, …​ + +Examples: +* `strength-del 1 1` deletes the first strength from the first person in the contact list. + + +### Deleting a weakness : `weakness-del` + +Delete the weakness from a selected person from our contact list. + +Format: `weakness-del INDEX WEAKNESS_INDEX` + +* Deletes the WEAKNESS at the specified `INDEX`. +* The index refers to the index number shown in the displayed person list. +* The weakness index refers to the index number shown in the weakness list of the respective person. +* Both indices **must be a positive integer** 1, 2, 3, …​ + +Examples: +* `weakness-del 1 1` deletes the first weakness from the first person in the contact list. + + +### Deleting a miscellaneous note : `misc-del` + +Delete the miscellaneous note from a selected person from our contact list. + +Format: `misc-del INDEX NOTE_INDEX` + +* Deletes the miscellaneous note at the specified `INDEX`. +* The index refers to the index number shown in the displayed person list. +* The note index refers to the index number shown in the misc. list of the respective person. +* Both indices **must be a positive integer** 1, 2, 3, …​ + +Examples: +* `misc-del 1 1` deletes the first miscellaneous note from the first person in the contact list. + + +### Clear all task entries : `clear-t` + +Clear all tasks or tasks on a selected date from our task list. + +Format: `clear-t [d/DATE]` + +* Clears all tasks on the specified `INDEX`. +* Date must be in the format `yyyy-mm-dd`. + +Examples: +* `clear-t 2022-10-10` clears all tasks on the date given. + + +### Load new background image : `load-court` + +Load a new background image in the strategy tab. + +Format: `load-court FILEPATH` + +* Loads the given image from the specified `FILEPATH`. +* File must exist and be in `png` format. Examples: -* `note-del 1 1` deletes the first note from the first person in the contact list. +* `load-court images/basketball.png` loads and sets the image `basketball.png` as the background image of strategy tab. ### Listing all the commands : `help` From 784d1eb295e9a01e338c152f1c04f73247da2fd2 Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Tue, 22 Mar 2022 02:02:06 +0800 Subject: [PATCH 138/455] Add additional user stories --- docs/DeveloperGuide.md | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index da73055c612..216b88a0916 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -275,17 +275,18 @@ schedules, and provides them with a platform to visualise defensive and offensiv Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unlikely to have) - `*` -| Priority | As a …​ | I want to …​ | So that I can…​ | -|----------|--------------------------|-----------------------------------------------------------------|---------------------------------------------------------| -| `* * *` | forgetful coach | enter team-specific or player note | look up these information | -| `* * *` | coach | delete team-specific or player note | keep these information relevant and up-to-date | -| `* * *` | forgetful coach | remember the names of players on my team | look up them in case I forget | -| `* * *` | disorganized | add and tag new roles/teams to a contact | easily retrieve relevant information | -| `* * *` | coach | easily retrieve contact information of relevant parties | quickly broadcast information to them | -| `* * *` | organized coach | view players by their strengths and weaknesses | make informed decision on choosing the best person | -| `* *` | lazy and forgetful coach | view a list of help commands and their descriptions | easily recall how to do a specific task | -| `*` | strategic coach | change the position of players (x-y coordinate) during the game | ensure my team works together | -| `*` | coach | drag and drop a player into a calendar | plan scheduled events for them according to their needs | +| Priority | As a …​ | I want to …​ | So that I can…​ | +|----------|--------------------------|-----------------------------------------------------------------|------------------------------------------------------------------------------| +| `* * *` | forgetful coach | enter team-specific or player note | look up these information | +| `* * *` | coach | delete team-specific or player note | keep these information relevant and up-to-date | +| `* * *` | forgetful coach | remember the names of players on my team | look up them in case I forget | +| `* * *` | disorganized | add and tag new roles/teams to a contact | easily retrieve relevant information | +| `* * *` | coach | easily retrieve contact information of relevant parties | quickly broadcast information to them | +| `* * *` | organized coach | view players by their strengths and weaknesses | make informed decision on choosing the best person | +| `* *` | lazy and forgetful coach | view a list of help commands and their descriptions | easily recall how to do a specific task | +| `* *` | organised coach | view players by their strengths and weaknesses | make informed decisions on choosing the best person for a specific objective | +| `*` | strategic coach | change the position of players (x-y coordinate) during the game | ensure my team works together | +| `*` | coach | drag and drop a player into a calendar | plan scheduled events for them according to their needs | From 93d67dcf1f91344ab42c2a9f7028ea8e768d1082 Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Tue, 22 Mar 2022 02:22:18 +0800 Subject: [PATCH 139/455] Add use cases for new functions to be implemented for v1.3 --- docs/DeveloperGuide.md | 255 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 230 insertions(+), 25 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 216b88a0916..e9e83f9f10f 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -340,70 +340,210 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli Use case resumes at step 2. -**Use case: Add a note to a person** +**Use case: Add a strength to a person** **MSS** -1. User requests to add a note to a person -2. Coach2K22 shows the new details of the person +1. User requests to list persons +2. Coach2K22 shows a list of persons +3. User requests to add a strength to a person +4. Coach2K22 shows the new details of the person Use case ends. **Extensions** -* 1a. The list is empty. +* 2a. The person list is empty. - * 1a1. Coach2K22 shows an error message. + * 2a1. Coach2K22 shows an error message. Use case ends. -* 1b. The given list index cannot be found in Coach2K22. +* 3a. The given list index cannot be found in Coach2K22. - * 1b1. Coach2K22 shows an error message. + * 3a1. Coach2K22 shows an error message. - Use case resumes at step 1. + Use case resumes at step 2. -* 1c. The note provided is an empty string. +* 3b. The strength provided is an empty string. - * 1c1. Coach2K22 shows an error message. + * 3b1. Coach2K22 shows an error message. - Use case resumes at step 1. + Use case resumes at step 2. -**Use case: Delete a note from a person** +**Use case: Add a weakness to a person** **MSS** -1. User requests to delete a note for a person -2. Coach2K22 shows the new details of the person +1. User requests to list persons +2. Coach2K22 shows a list of persons +3. User requests to add a weakness to a person +4. Coach2K22 shows the new details of the person Use case ends. **Extensions** -* 1a. The list is empty. +* 2a. The person list is empty. - * 1a1. Coach2K22 shows an error message. + * 2a1. Coach2K22 shows an error message. Use case ends. -* 1b. The given list index is invalid. +* 3a. The given list index cannot be found in Coach2K22. - * 1b1. Coach2K22 shows an error message. + * 3a1. Coach2K22 shows an error message. - Use case resumes at step 1. + Use case resumes at step 2. -* 1c. Notes have not been assigned to the person. +* 3b. The weakness provided is an empty string. - * 1c1. Coach2K22 shows an error message. + * 3b1. Coach2K22 shows an error message. Use case resumes at step 1. -* 1d. The given note index is invalid. +**Use case: Add a miscellaneous note to a person** - * 1d1. Coach2K22 shows an error message. +**MSS** - Use case resumes at step 1. +1. User requests to list persons +2. Coach2K22 shows a list of persons +3. User requests to add a miscellaneous note to a person +4. Coach2K22 shows the new details of the person + + Use case ends. + +**Extensions** + +* 2a. The person list is empty. + + * 2a1. Coach2K22 shows an error message. + + Use case ends. + +* 3a. The given list index cannot be found in Coach2K22. + + * 3a1. Coach2K22 shows an error message. + + Use case resumes at step 2. + +* 3b. The miscellaneous note provided is an empty string. + + * 3b1. Coach2K22 shows an error message. + + Use case resumes at step 2. + +**Use case: Delete a strength from a person** +**MSS** + +1. User requests to list persons +2. Coach2K22 shows a list of persons +3. User requests to delete a strength for a person +4. Coach2K22 shows the new details of the person + + Use case ends. + +**Extensions** + +* 2a. The person list is empty. + + * 2a1. Coach2K22 shows an error message. + + Use case ends. + +* 3a. The given list index is invalid. + + * 3a1. Coach2K22 shows an error message. + + Use case resumes at step 2. + +* 3b. Strengths have not been assigned to the person. + + * 3b1. Coach2K22 shows an error message. + + Use case resumes at step 2. + +* 3c. The given strength index is invalid. + + * 3c1. Coach2K22 shows an error message. + + Use case resumes at step 2. + +**Use case: Delete a weakness from a person** + +**MSS** + +1. User requests to list persons +2. Coach2K22 shows a list of persons +3. User requests to delete a weakness for a person +4. Coach2K22 shows the new details of the person + + Use case ends. + +**Extensions** + +* 2a. The person list is empty. + + * 2a1. Coach2K22 shows an error message. + + Use case ends. + +* 3a. The given list index is invalid. + + * 3a1. Coach2K22 shows an error message. + + Use case resumes at step 2. + +* 3b. Weaknesses have not been assigned to the person. + + * 3b1. Coach2K22 shows an error message. + + Use case resumes at step 2. + +* 3c. The given weakness index is invalid. + + * 3c1. Coach2K22 shows an error message. + + Use case resumes at step 2. + +**Use case: Delete a miscellaneous note from a person** + +**MSS** + +1. User requests to list persons +2. Coach2K22 shows a list of persons +3. User requests to delete a miscellaneous note for a person +4. Coach2K22 shows the new details of the person + + Use case ends. + +**Extensions** + +* 2a. The person list is empty. + + * 2a1. Coach2K22 shows an error message. + + Use case ends. + +* 3a. The given list index is invalid. + + * 3a1. Coach2K22 shows an error message. + + Use case resumes at step 2. + +* 3b. Miscellaneous notes have not been assigned to the person. + + * 3b1. Coach2K22 shows an error message. + + Use case resumes at step 2. + +* 3c. The given note index is invalid. + + * 3c1. Coach2K22 shows an error message. + + Use case resumes at step 2. + **Use case: Find persons by name or tag** **MSS** @@ -484,7 +624,72 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli * 3b1. Coach2K22 shows an error message. Use case ends. - + +**Use case: Clear all tasks from task list** + +**MSS** + +1. User requests to list tasks +2. Coach2K22 shows a list of tasks +3. User requests to clear the task list +4. Coach2k22 shows the updated details of the task list + + Use case ends. + +**Extensions** + +* 2a. The task list is empty. + + Use case ends. + +**Use case: Clear all tasks for a specified date from task list** + +**MSS** + +1. User requests to list tasks +2. Coach2K22 shows a list of tasks +3. User requests to clear all tasks of a specified date from the task list +4. Coach2k22 shows the updated details of the task list + + Use case ends. + +**Extensions** + +* 2a. The task list is empty. + + Use case ends. + +* 3a. The provided date is not in the correct format. + + Use case resumes at step 2. + +**Use case: Load new background image for strategy tab** + +**MSS** + +1. User requests load a new background image. +2. Coach2k22 shows the updated strategy tab with the new background image. + + Use case ends. + +**Extensions** + +* 1a. Provided filepath of image is invalid. + + Use case ends. + +* 1b. Provided name of image is invalid. + + Use case ends. + +* 1c. Image does not exist. + + Use case ends. + +* 1d. Image is not in `png` format. + + Use case ends. + *{More to be added}* ### Non-Functional Requirements From 99338eed7c03878c8eb92e0a9c8f3894afc8e9c9 Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Tue, 22 Mar 2022 03:12:08 +0800 Subject: [PATCH 140/455] Modify Model component of DG and replace ModelClassDiagram.png --- docs/DeveloperGuide.md | 8 +------- docs/images/BetterModelClassDiagram.png | Bin 19781 -> 0 bytes docs/images/ModelClassDiagram.png | Bin 26539 -> 34342 bytes 3 files changed, 1 insertion(+), 7 deletions(-) delete mode 100644 docs/images/BetterModelClassDiagram.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index e9e83f9f10f..3e0a4bed49b 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -124,15 +124,9 @@ The `Model` component, * stores the address book data i.e., all `Person` objects (which are contained in a `UniquePersonList` object). * stores the currently 'selected' `Person` objects (e.g., results of a search query) as a separate _filtered_ list which is exposed to outsiders as an unmodifiable `ObservableList` that can be 'observed' e.g. the UI can be bound to this list so that the UI automatically updates when the data in the list change. * stores a `UserPref` object that represents the user’s preferences. This is exposed to the outside as a `ReadOnlyUserPref` objects. +* stores `Note` objects in three separate lists for each `Person` object. * does not depend on any of the other three components (as the `Model` represents data entities of the domain, they should make sense on their own without depending on other components) -
      :information_source: **Note:** An alternative (arguably, a more OOP) model is given below. It has a `Tag` list in the `AddressBook`, which `Person` references. This allows `AddressBook` to only require one `Tag` object per unique tag, instead of each `Person` needing their own `Tag` objects.
      - - - -
      - - ### Storage component **API** : [`Storage.java`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/java/seedu/address/storage/Storage.java) diff --git a/docs/images/BetterModelClassDiagram.png b/docs/images/BetterModelClassDiagram.png deleted file mode 100644 index 1ec62caa2a586b6aabe5ceaf5d243266226b6084..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19781 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 diff --git a/docs/images/ModelClassDiagram.png b/docs/images/ModelClassDiagram.png index 04070af60d8918d64f7ff121c1c5f978bd644ac9..8d67bc5776bd93ff83c7e98cfae33fdf7a9dd302 100644 GIT binary patch literal 34342 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 literal 26539 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↎VshK0rU`>E43 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 P&ILuer?N%TX1@OeJm@sj From 429ffcf4efc54e225d3b019a8720bdda0bd4fe69 Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Tue, 22 Mar 2022 03:47:48 +0800 Subject: [PATCH 141/455] Modify individual PPP skeleton and modify Command Summary of UserGuide --- docs/UserGuide.md | 32 +++++++++++++++++++------------- docs/team/aalghrairy.md | 36 +++++++++++++++++++++++++++++++----- 2 files changed, 50 insertions(+), 18 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 9a910cc6ac0..5379e00be4e 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -213,7 +213,7 @@ Clear all tasks or tasks on a selected date from our task list. Format: `clear-t [d/DATE]` -* Clears all tasks on the specified `INDEX`. +* Clears all tasks on the specified `DATE`. * Date must be in the format `yyyy-mm-dd`. Examples: @@ -257,15 +257,21 @@ Format: `exit` ## Command summary -| Action | Format, Examples | -|--------------|--------------------------------------------------------------------------------------------------------------------| -| **List** | `list` | -| **Add** | `add n/NAME p/PHONE_NUMBER e/EMAIL [t/TAG]…​`
      e.g., `add n/Johnson p/83918273 e/johnson@gmail.com t/Hustlers` | -| **Del** | `del INDEX`
      e.g., `del 1` | -| **Add Tag** | `tag-add INDEX TAG_NAME`
      e.g., `tag-add 1 Public Relations` | -| **Del Tag** | `tag-del INDEX TAG_INDEX`
      e.g., `tag-del 1 1` | -| **Find** | `find [n/NAME]…​ [t/TAG]…​`
      e.g., `find n/Alex n/Charlotte t/team1 t/team2` | -| **Add Note** | `note-add INDEX NOTE_DESCRIPTION`
      e.g., `note-add 1 Surgery Scheduled for tomorrow` | -| **Del Note** | `note-del INDEX NOTE_INDEX`
      e.g., `note-del 1 1` | -| **Help** | `help` | -| **Exit** | `exit` | +| Action | Format, Examples | +|-----------------------|-------------------------------------------------------------------------------------------------------------------- | +| **List** | `list` | +| **Add** | `add n/NAME p/PHONE_NUMBER e/EMAIL [t/TAG]…​`
      e.g., `add n/Johnson p/83918273 e/johnson@gmail.com t/Hustlers` | +| **Del** | `del INDEX`
      e.g., `del 1` | +| **Add Tag** | `tag-add INDEX TAG_NAME`
      e.g., `tag-add 1 Public Relations` | +| **Del Tag** | `tag-del INDEX TAG_INDEX`
      e.g., `tag-del 1 1` | +| **Find** | `find [n/NAME]…​ [t/TAG]…​`
      e.g., `find n/Alex n/Charlotte t/team1 t/team2` | +| **Add Strength** | `strength-add INDEX STRENGTH_DESCRIPTION`
      e.g., `strength-add 1 Great stamina` | +| **Add Weakness** | `weakness-add INDEX WEAKNESS_DESCRIPTION`
      e.g., `weakness-add 1 Poor defensive abilities` | +| **Add Miscellaneous** | `misc-add INDEX NOTE_DESCRIPTION`
      e.g., `misc-add 1 Likes ice cream` | +| **Del Strength** | `strength-del INDEX STRENGTH_INDEX`
      e.g., `strength-del 1 1` | +| **Del Weakness** | `weakness-del INDEX WEAKNESS_INDEX`
      e.g., `weakness-del 1 1` | +| **Del Miscellaneous** | `misc-del INDEX NOTE_INDEX`
      e.g., `misc-del 1 1` | +| **Clear Tasks** | `clear-t [d/DATE]`
      e.g., `clear-t 2022-10-10` | +| **Load BG Image** | `load-court FILEPATH`
      e.g., `load-court images/basketball.png` | +| **Help** | `help` | +| **Exit** | `exit` | diff --git a/docs/team/aalghrairy.md b/docs/team/aalghrairy.md index a4b14828c49..d1d1d5df3ab 100644 --- a/docs/team/aalghrairy.md +++ b/docs/team/aalghrairy.md @@ -9,17 +9,43 @@ schedules. It also provides them with a platform to visualise defensive and offe * **Code contributed**: [RepoSense link]( https://nus-cs2103-ay2122s2.github.io/tp-dashboard/?search=aalghrairy&breakdown=true) * **Enhancements Implemented:** - * _to be added soon_ + * Implemented `note-del` Command to delete notes from list for each contact + * Implemented GUI of TaskCard and TaskListPanel + * Enhanced Note feature to include three different lists of notes for each contact + * _Expanded `note-add` command to_`strength-add`, `weakness-add`, and `misc-add` + * _Expanded `note-del` command to_`strength-del`, `weakness-del`, and `misc-del` + * Improved GUI of PersonCard to better display three note lists _(Strengths, Weaknesses, and Miscellaneous)_ + * Implemented `clear-t` command to clear all tasks or tasks for a given date + * Implemented `load-court` command to load background image for strategy tab * **Contributions to the UG:** - * _to be added soon_ + * Added feature definitions for the following functions (and included in command summary): + * (`strength-add`, `weakness-add`, `misc-add`, `strength-del`, `weakness-del`, `misc-del`, `clear-t`, `load-court`) * **Contributions to the DG:** * Added the Product Scope and Glossary sections + * Implemented the Model Component + * Added some user stories: + * `As an organised coach I can view players by their strengths and weaknesses so that I can make informed decisions on choosing the best person for a specific objective` + * Added the following use cases: + * Add a strength to a person + * Add a weakness to a person + * Add a miscellaneous note to a person + * Delete a strength from a person + * Delete a weakness from a person + * Delete a miscellaneous note from a person + * Clear all tasks from the task list + * Clear all tasks for a specified date from task list + * Load new background image for strategy tab * **Contributions to team-based tasks**: - * Maintaining the issue tracker + * Replaced references to `AddressBook` with `Coach2K22` + * Maintained some issues to be implemented by all team members * **Review/mentoring contributions**: - * _to be added soon_ + * [#20](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/20) + * [#21](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/21) + * [#26](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/26) + * [#38](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/38) + * [#76](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/76) * **Contributions beyond the project team:** * Evidence of helping others: - * _to be added soon_ + * [#197](https://github.com/nus-cs2103-AY2122S2/forum/issues/197#event-6270770965) * Evidence of technical leadership * _to be added soon_ From 2ed2d4a6377cb2b954cc404ce6af8aa1a397e6a9 Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Tue, 22 Mar 2022 03:53:45 +0800 Subject: [PATCH 142/455] Modify ModelClassDiagram --- docs/images/ModelClassDiagram.png | Bin 34342 -> 27123 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/ModelClassDiagram.png b/docs/images/ModelClassDiagram.png index 8d67bc5776bd93ff83c7e98cfae33fdf7a9dd302..26e3a16034eec504c176275ba9904967e2c2f36e 100644 GIT binary patch delta 24307 zcmbrmcT`l}(AOcDhkR%`~IZH;7OoK|MfrFqRDnXGfIp@@*1{yH{ zl5<0o6p);A?%9X;{e9n^xp&r@HTMtKlI}kH?7dG_?W*T_>STU6wb4rye(NfN#9B^O z4uL2Mqda^RU3O(aVZ!Yq=CqLbzBlA-|fB6{{;6VZBHW)-qG z$xfJU1Ve%ea=fAE)r$#Y^J)$u`uE~5QWP9FPreFem5fsssOy8jdcMt#K**AW+Y%!X zZxQ~YhzEaq)n!D&r1!H~i2c4@wjuVTlZN)DE^L?)w#*#QA}E5u!nJ-cY9gM zHs^YqzPJt;oP1TLLh2Z@jXNYrMEJMy<885x{e_~M+X(JU z@co_~Y%gWj){dOa=E^Cs>YGMs_e0wJh=`5PAn3^CSP&2x?cX(@jA3@X&bTp#TB-ie z7=MPWlSJ5|!;=4+bJY&FUoi(fd*8iQvpDv{-{k+B8A8V!N$ua>P>x$x8CI+uwo~tjVQ{!j^_B(EYBl{2fh`d6~I~5i`4X`EQ6DLlY|kCY*4<2l@uL10QPqq7(#djFdRI> zw&RQV^wG|Er6t7}-49mRK26c*lszwy64<2?=T28nR5tI{>kDexFKS~?Rs8ne|G<7U ztAui`nHTXw7T@hYu>1~&X^XjS0nd^_j>Yf8CC{mkqIXb}Az}_1nZH$u25vW9vM@y3 z{F%m2ey5fZ-hsxUdLL=$X_d5y{z`|Tr-9V$j%Lm{6ZfGVjVOopsb6kb7N^?ojx4#( z0O2CjG@SJQY+C=uTy;yL$HW;iYq!~&G0&L<_^G^4rjosnabIyPvvaCHs%UrM@zADm z-~AI*BaZzW=Bm9aV*V9zP;1+pY1JHldAoYdVy-6x>gN)i_35~~p(3fukKKLhy#9-; zrbJ4vZ{p|sC1=aO-aFZyT|e3F_02}y>11Po;WxkaFXT7D47Lq?=FxWeo#EKKy);}S zzMY+)FWed}P}#XN4nYUAwqv`6IuAFc<*>Y>W^ux{Pw$7ZEdduU27da?;rG{9+nVl_ z8mmy|O~V?uC5PB7Kc$9*o5odL(q0tUO^HtO7Y!FKo$vOhSp4B$NfrcVy|g7YFF#rr zZQ>RS`@$9Q*h&Jzj<7RMy=FU zHl85|<{%{HwOQP`#pWfzBpC{5sQ;A96{&$E|Yy=+ofjM3T{g9ql%4gBpX}7pRAxR~k$b&K$5a2V zurIhXm1iU4HxDhT!G-H8#n$d*JmIK?f=ZQ@u{x9B+cRIB)k5~@UgtoR!ZF6at}u05?JSorXirHB;zli&-q6-0vRPcfV_N=ogf{|Afhh zI=Z^C@7__IOf~p4BK${Q5!P;d$eP{x2dz@o`F~;|7$+G;_wO0Q5p134*;q?BKKSqZ zdw?t2WscXV;c*l}#CZtfx8E%|N?#+RW^*_vxp?d37DH(#F)8yu2Np;0nG4rrIF+N| zz;zQ2yAywc*hS$d@~@frUAqI07T9)W&qtej<;>yB^Wd*0K%|E_okpr&ShYs+Wxkkf z><c*Xs_nWT7}88n($j6l4B zBe+_w3bTPI;>~^V{|?)%1gq(`Sc@{qPEJDe$=bwEHwgqC1+W#8Yc1IyEs1H!z;Q&A zY%!3CS{6rTX4kH_@ZRSd%96;VL#)42_C?5kkzB6&o^M>;bNGiEx}|jK#p~)7>_HpY z`{m42vQOaMK82~DO$(E@gG1FupSF6n*1reiZ*WSA?Tn#{JR#U8icIT_c@T7J1`ZrH z@@mC08edvk(0JLwuCZ?cqW;Dua>Hn;&R6+NbS#5!>9~;LkF8%*F7X-LTx}*TcmDUN z0uTNlTmAR2|3CZ#`ak%cU+NkBx!Se+&J&Fx+qa`7sF|M1%uJ2ewEq#PUwlOLY}ij- zxcrakeZuj%E%mQhafDZYfIM$Mut+6v)F+1vayCY9=f8KX^j4rY9 znfhooBo9%?MjKTK^IlhX(?&e=U$XOkEp5~LZg-HBQf2rRvB^W#+-p8;-d*0lM_XQ{*e3x7Vitict^7w(lhJ(2yC~gE+c@&KH^!|loT=C`@Yx@{jB^7%nM=<*^4P6^ zz)HK^okM@H&^NC_lvy-|3a^u+_O3vsCK1B!?LyxuclNDwwRj>i#|4#bT#Ux%Gdrl^ z9~ML-)5uXsf?}sTqnQBe12;7z)g85#tJke6Fk9`nxn7PkcYD za5?G>R&-GGC)BCXd)~(ii4@gEk(ajP%qsG_M+*b_Z8j)PBIl2ij{9l{%I!nm{UsRW z>h!j@Y#Z*OsBYY7>u7l-+38YF*9si$(xiMX&-wMoTbsSxdr_UzWs|{Z@#QURLjrQIh&0^v*%6=RFuE<0l%yY7Q_;EUAGvrCalQZX z$0q&KV!d0R3-Ne|-0j4-r?|&e({@yTR7#dJjW2H+TVjtKjwarxHx18PAVnI+;O(WaRU}XBh#o=T@@M;a z@-(0KvPr2Z-t5tzD%j~yYt&5)HIJ+4jkVU(pSWJK(>3;E0OTVc8knS<@$9+WyN|~0 zm^`p0bLF|-0i?71ddU@#&o7`d6m($xM-tKx|~)c zoZ<7b^}vZ!&^0OxKy_1zij2ek6ZpcwLX-}wN1!ov-jZ6zK|gLSQYA-U@mImYP9-H4 z8>vF@&ak96SnxSYZmttGY~V%aZ5EiO1^%)9SxE1l`p9tDnv6GcS~G2(o)@b%=lYYT zc+?eVlBt`gXElm(EhPDQMK`{npw7CbQqt9(Y*-It9hl1t=`cyv-5*yr5LaIk)m+sd z{?FV7=KJ$h<3*8eQadA)k5Yq|?A9FgO^Nx>(=z$mP}k>*c#=FDn4F` zOEjxGt{Ck!ve?#TVdJGZ@UHJ2Op3o|LN9zQwO<$Y#?aTOeB>`*S>VGj%%jFDknv1nj$fpfC%;h&pu<3AJt#zcMVaO10Mnmuw~=qko_r^( zaYRjhR9c+;$!O+qiD+b5DbKi)wouAUyh4I}xHg-5fd9 z{4o=?v+SmkiTv@F7EXs8&v6{sQQ=+G1rnrLWS+eoO;efOm>4(8S|gV+!aaK!ZMxue zFa8{aWQ4}QKHEInl!|DNo^_vk=Ns>9@tnyL^X1bTF15$Pho<&&ytkxkU*n-f9{<*O zC1-({R!+fDng=IDIq*`>^^R|yDGp;2|I8I%$tCklYi3Kz{-E#|-WY?tt-V&?M7_0l ziIBLDooi%vjnvEJJHGMVxl^*!^oJv1q0rfRDwHA6(ITaDGfAM@@J>OPG+w9ihGSWx z)W-SemfEZD77a}?dOFvsZnB>q3+KbQX$M?aUHplZDmO5JJT5d>c$3-7Vb0W;71?(s zoH`7_JF5~!<0Hn87c?jL9zB?Pbi=KKt5k8>AW;=d$RI;c~DFLIjl`&9% z;24s3e#W06nIVurhS8V?6Q0PQIpjI3q5p~1aF_33Tg2YXr{C1P*UUit9lF+ql5JF* z|HJ7q4KoTnG#GB3yQZ}AuqBrL1$^2w4~VX*6 zF?h+;1(iAlOPj^j@QRS{sC|Az;mbIhc%RaYAWM1|S_`?dE4eRq?6FlKa&2hErn@MK z4>v;sp>qHJo#{`;?SH-FE1rq()k5TwW##Fh8qm*IeK`Af&h)sqT15#-d!RtYI7*l7 z#v*fA+}M$ZFD{HKyv(gTsxP_Ti$%5a6}nLOJJ*|bhleeaeY2SF%Skyip!KlQ*Z%Z2 zmIMbKtPKkz324?2otO4r`;AN6#V2>Flppo)etoPlRmrmN>!o^qiD%bDgv2a9KViSK z-}-0$_1I@c578gCs>#FHomz$~E8Wez?#7LGM%x(~>bp|lHx(m^w11}~9!*L;jr8!e#7x-JF&%NTBMgRn=X~VD$Qyrmx0fd;FG!<AV z`K)!hIOz*JC2YIxm_yNPTGJ(bIi*Q)=6=?)rdeme*07V1|CZ74nSK*hZ7E#s4fS%> zUSVWVu3jN}a!qI1Y2|u35{mTDy!T_g64GDNT^bngtQ0-2xsE@!HOzI(y(70|*!yWT z_mP48Q6QWxG)p+}IeEMy!6?b(>hD7=cG{)|STe=pplSG2WwsMozo4XwR; z?46+*dn1Jbb1nDTzS2IF>zlUX|8T~A*Y=a0XK+-dx)g8oMytW0YR;CC^^Y3{w>;Ka z*r@P#<|OxId8=^gD=G1lH#`Pbwv!g3-_W7YYOrnqEYbo$|u!Q}_JMcC2> z`hLsum0iboDhpV>uM;?0tWD67>OhPK9l3F7hDHEen~9&C90B86~SUn|pvh$}32)lU#<<7}BAO%s<0R5yWpc!!~5SAm3-tfmrKW`@^RJk3u6(rJAt+}u6sia8&R zW|T_geFGtZ-Mi9p)IBKPuI>=qUiz~?(4VOFm|5AgR`UIXcUinS*TnKh*N3dPH3=l+ zq}szPZ=>xz=aTX*FSW(-wBTlZ=-#jYtnbLOxp2nui`UQXds<5({S`NT!dctGPd!QT zDu~R*m*d@6pHq~Fsmx>9AQ67Mjh4H+uKr|5+3#LoxZi27D!eW)ajkc|;q5oE;9fJh zJ%rOFb;YxZEcCak?TmUe8*VRHn{k1yIQA^XB<3>Sj5Y63DB6j=H$L6R5b?15C{I~3 zM21!_fZBhuzv4pxojUhMCNd)l$E8-vIk~KPRJ^+^M9Lk^;4i2E;hPu8cU@AnvQ1MV zz18aDUxv5dr3avC0%8kXY)#phhMR|UnF+oPDv@M9)`UIZl~F>(p^TQ@0qdF;pFp?Z zwxwM#pM~e!+O?5JczP8im8~1qY$<4;8d6S8^mZ7M_^ZmnWPa=w`H##J4c#G~M4C z!u`?hlwKIKRX>VS7#8l{?zT=35H4Kb{Z3;y8F8Jp^Uil)HKa+}F=}rm*5M#}!Od`3 zFf{9{Y7mVr+fSMy>E24UCNy8|o)t^_X6-byWZ|14(%BkllP-G>ahISNnX{%@*Apo1 zoc88PK(;Jpz{&`ZuMMWN7dBBVb+C^`@Yg4d>{!c`P2vNC1)NZAw?({OZq{vz?Z_C`{D8SXOh)jx6H&o$hp}|}Q z^;@FffEV&1C;j9_T~skn`x!Wg&!%D0se!w#Y`%lu3o zx1=+-dZSKhb<0j0Pd1O5cNXSmfwK5D+ZpRadUjTa>%GyvI<0petc6a{6C{NRjpEMd zt)}L4udPVsN?Wl`erpkPuVQ?RtyHi;ltvU?xtbipp%1k@rAml8 zmplakcB$zud1?`2@^dbnh;_?_fr1k}t8&yWUVJ*n!kEWSe#eGER}U0Uh;I)4xw=-1 zgC)~q^?M<_MBxJ3nJTxzIVc2}1hFLV^C%%L8&i)zq>>=p?vNpP zZ+s=Dj>*lv;k-YWRiou!fdLaa&yEh>UvS;-GO$jtY$AI7z0|VR!7uYel~M&&a|q59 z)sD99ZA`RDUUd5&NHzLd>NH+Z3EX!9S5$elktj-%_2uO|@x|ir#%KKQDbpn%wbmcL zN7nRaLF(?Di1`Ij#}p%x-KmPx`t|#fyamC@e9k0DgY#`@Pr?C2aN20T8Wscilvn}m z?l*v8k+8b&ueS;e7sh!2_-nE2^1boB4)-=9@=NBXK3o0Fzdm@7AY-qB9aNBu-(0|T z=9|6SJbRZ^VKXB6-P&YL_Q~$2u zm%pej9-TAV3TUR`_N3!YE`16PGX?=uhp?hpSGCG!3(ya=9+DBWsc$ifQ;mm{_JR+{Ewt-q`;t}Fm zDj@5OQA_313q|#!09`L{7&as9>x;QM{ks|$f6?w2j!xLUOsNPm*=4@R#a}C`FUtp3 zeVS^nAlk}GNCI2~&QxLN_+X{7@?E@;b!a@M2|&P0X{V&p!@#8MDDl_TzS#KgerJyZ zKskgz$Cc=j3alYo@XQYv+fyb89dZrg>?G4Vuc3vgP&O(2SyqX@bHE$QdYeo8spO0p zya5TYT~)qo-{rm4uRrZxe~@51RGKk*dUnEJ$ht!qfa{rj#NkGH`b8BxqL;*9rq6Yy z1h7iDE!sGl^;bJv!;o`txxGG$QUXd?8>mCMZ*)S(W&7`z5c4w~k}K$j;l-h{C8~)n z<6%W$fPgNZOiT-n5-@Wt+DfN%f7kH^u0W~!Tr@HR8TbqbZ4vACfE&y#E$!LWO<)tb zyEEcE{X2kK^kAhPa*bu*9(6ZE<**@Kvnbp1-V6J3J=i(wPiD=2LkTfrw9*5T`6z*} zSUdTn`gQeV0Sgc&x{w(`3kV}}=t8?iiV0j_@8l(;{*M2g_qn4|iq{(U6@Mir>(}-tD%R;%zOV=m{ z6=EGuRkVGyZ9NYyiCkMy>n=|ztXY;o?F;!mj{#mTCH~g!495+CsUu_uW|@%^zhs-< zU#U6yTkobp>5oh9BQGlK>4utaBR$s}S)2wby-%GcPw3tTusa}Eho1k9)Q^J!@{r5J zr}69Q?ki){004KjKu{oi(jOW-BATz5+}U}@3l-kVN^pzgm8+md|NR9xR%`7>b?Loy zULuVL5`wSGlwK{`4p$V^<(+;Rl*|`)T_wi62zxGh)kUC(_}rbZAw=2KCKK}R8j&1e#)Y8{fRf2LXoWzFT=_w8ejkSBk|X*woUqv;1FS86Q) zk2Vd4p#+3hEDFSxc9>rm3-rF)OO||1YO_lonx2YKpZ5JK8|St-_#{pgX;1eJtUcrWXx-U52ZLalZfhw1X2Yy3i=Ai(UvtFY2$6= z<*s@NLP;h7jX`rHqPd)$&EsqS;}W2Ac%aw>oiCsV`ISO3azg#>xoc`hS5PUdJ%-SMn!;Rr-H`tlZ$ zUToKYW9KYTMlcA%4%(irnbsCa#R9h9xC&4??fPaue;W}bCNF-{PlKV{ElyMVSJ0e9 z_1;`vUNJHbMqo4#RB%-NM~bfGB(Es}LH-HaTreZxU1qx)LWowaI=NuKzp@cFWC#|=orFCZ$FolqGO1)A&X3kq?yV4xoi;{Sd~r}DBBKCA`sn~_ z>ECLXFW-lM(sO(R7z|1USg5i4s4I!XWu;8MDX?8aC$0i)vIjifK!A|NI(LXSp^?J_ zkqFr;TC}3FillY&uU&E7|94+?mk@wjK@I_Ow~b4JrtuzOGSdDy#=xcI1EEz zUs#r_XV}VokG#alK4(($SAD(YyZZ-BR|yC`KJ}GZt8dKb6`e>k&L^X5*BV)-E9;L6 z_J+rgrytR{!Q3ymoD#c_Fp<#@8nohD$7}V^|J)NJOP0R>;o=j+O2?%}zn59`{8|{!-drKrQh!~iz;~P6{iaC40JCwgN zJOO)@Ze&OW&OR{9_b^t8w&@0r^wSBXb5`Iu1QS)*u~A@k>5`kSo=Fs{L+!W$JH93g zrx4&=jE@zv#++B6jjed=1t6++K-B_n8}SRK@)NxSY)(SJ98^jkZTvFWb|62Nm*`zD zI6m4B_cq#@tiSwuM57CWz#}anPiOg1LSUb?a+_;UMbDO;+a0n6QQ<8NC8R>OXxtuFN!81tYrGzua( z^wrpR?{6WArV^lKWk2qLq-u#NO*>1?m6IE$U?26s0bGbyHBK0KDUIW$UcGB~3aOgg z+Qr5lDv-kUVtNdrp$k5Xnq^WD9vh-ol~TR`9Rk`r;hd(8om7lI)y zVs4zWE_DaXHE`e>AxdecMblqSplzzBf1uicpN9V9E2*}>K5#l?c#3O4<>+29^=q?8PUyyVHdK-&Nd z7e><*?LaYLwY@k5E`|~IDr;F`>v#OT9MxCs38waKsj^82*jqbyKuEsF*NUE8%6rvhOXp3q#yMt`0@c%JweIHQV0 zbjx-{S(1-=q>1O`wp==1Z!Nr5Qb9}}2lLSqNi8BK8-ERFF3YzCgGUqLzEXJm?C#VB zF{RP|ZOO7FkZB2mTIi)kvzQqHy3lXZ{|Ym}Yo>H?cQ={$;myb6hxWp=p5bFk~F7?Vp{L*W`Vqo9eAoxBXW^c~m-}#E!gS!QyWvg}U!( zQM{NE)V5hFDA^{pa<><4R9Q=EwDmWj96mbEaepx>NiL9!xSqMR)>H$1l4|IaCTE>$ zTvr-b#9wm%0^ow3m6gO4opQ%f{D{xar~%d3dXC-R%MHNc>lBrhA1|M$tUynG<{`B$ z04D*qsg=(tjy{5`hUYYkf5lC$pH4%SMFt1+d6{e2gE+O4y6SALv{7bC-y0IHFFF6v z{fEwS$O!nR2_>WRN_&>SdZ=PtO2Y76Q^OVgdG;i>6dWv#{w)QRjF|JEOS8$H##(r^ zxBIqaYg%99k^S$0`#w?Zic-YK>;KfB)cks(UTmc%^t1o+&hBKUoZ_4Kb!25|rY)Q0 z{9RWr)*5rU5XY?FsJYu!?iqW!g_j49E_jCo>g2ePLdh-Y0%(CxUu$D)EorWX$PVQc ziQ68U<9JM28N%*sBV>dX%qdh@< ztvuxSIlpY_Y~}k~a$CAsP$>E6)M=TlnQYtXQyHO)dnXp+=S!zUik!xx-awQ~9iLaO z=w5%S?2uOLyr3t^AB+!jGdx7iS1#t~=O+#vekINmduC^5XC0S0ULr3y)Rp2EH{E@( zJDy!J_p>s`Tr%o@iC4jRfvu~pKz97IhWG)Qt&euBU(^z|7q);Lr0P>#Us>AHkA1Om z7fung3l2{EXZsDx#kO+WYNnv`WzN0VhsPMkyqyb%DS%AWC@TA2-mCnWJKdp0pcH0i zp+MH6&u>#b8oD#Cn@*OO|C)NY?`@w)z~}0XCZ<`b@+V!Ww`?NIGI>`R`t}M9LW?u#oAug%pMYwy{{W* zdZhfSkkAV_`Gh51AtmGU0hOhL?v~9f;h}s$IFXCpZ_#mCb{GzHGoPq2rEA{vD)6fJ z!V9zfwmDYVQe~mn^wFmIyO2Cz+U~$L$DlQ=F>HrVQ*t#L#(0#(V}hj3Bo(CZ^z59o z`qm#+e)YPMG<47win25FmCt3pQBEq*?X+oU-?abXH`$#?1p-&#K9%%iqk7*urhjQz zBm7o`&B@jdldCW6T?LXnFC`<%Q3~{?p};P4%_QA$;qI1`_tVR!xkyqVDCSc}TNm6< zKO4y$&K%L`^AmSp7X6J;TM|)kEm;KIa3LB=dl+q>PtH7dmg!GAsP|9)RNy ze?L!XD_t#it3#=t_uj)DLTp`3ZGsKY~fxyULapB~TzsU%M1~ zbT07l++40WeR|Ux6}MCk?8XO#7oArdc*5#+P+CxN z#ds&=C>APx@$9#8KbQ6M8d;|Q;X|LWNO!y9t z`N5GFO{|W#EA6;W9YT%H!f#C9-0lTh;cKnU`0vOA(4C#l4#WP7nu{_F*bnQtp~P@#pM@{SR@>g#tz__AYn?&#IP% zj;P$EGRb$jk1IJ-m-~LYk0X0Geql=Nv`tM-S@T_keW3JiR7g>UdQ%JkuNr)h8XbSs^CN z$Z{j_a+>k|sGPz~`K8D8>Psp`C_ z@=ng43*HU+xPo7+Z+9Qv{Sey{P_KQS)#$RJIJZ>MBPFD%Yq^xE79-x* z#SDBlwp6w{*n6kPaq7Jbx|P}{iT77>%nRlKI_2t+kR=N0zec+(X7y<5Hl3YFzK!!o z_XTt%?;mqg4)pxN{XvF_XEv(k%zqpR$t}YsUN<~hJnDEjeSs zeSV1#vL*&z2@oa#sK1IN-u60eF6{%I&@H3rnHj13m z8`}Vt!0^Z(=TNpJy;`bKiY#x|`x=M=2((?DkiG0>kf3qz{Z_>ppQ2Cz0Zmv0Z(B`G}1T9r8Q{IYsR%b9>(W_`f?L{u`%<{%?@}WvRH=%eRA` zr<`QD-XP1B8&waLh+!u|Dyk6hX`vD=wV-0mcksLOKjqUze$UfT=(h5f>TCRHMi7BrtxMH|p9gWR4z2QIfA28$b{aaV^# zldpsRgw(*~g43Wn`US&sAxkAT-B&gSEy6(m1gH)a09;Co`Rz~H25R!rK{jS~QHK~7 zVp&k+_kofqwp9SC9}%|eYYyq}OO_)R0^SX3a8a-)n(|$G3JmRe-7&Q}RQ&?xf8l<2`6Z$i8gDd*uWUhYp*dnCq%>-~`t3 zh4ILa1j(B7$u1&D{0X89+9n_x#}V3;)3)+D1_pDD*nZG9QKzPXcr>(APw+wMZKVXU z&4Z$|764i)LF~SR!cJo&AxqtWr7$}8+sNhPski6-E3UW<7+A-i;DJlsAUX+wN=1xJ z_6`#fT$$46@Mveoz%cEMSKl4KxMnob$wmEH>g>+Yd`=eLQA>)=d$qxl0ucu04@!65 zrx+_EQ1>og^{e}6OH2c*2t`Lw5-l_N0bC!E3MxU_UvR$;7@mmR00^Q*j4B)+dYH%~ zKn^U5;0$p9`v9W^J)l^X)q#Iy3ttG32HA&c;KF}CdWMG(3ZVPM?-Pu>{O7a(d;}Un zZk+TGao+*kKi^fmkDwt1w|KW@53$+)T z)PTmL*W^Ih{~R3wQ(#cp)1MSTdj1ENo)cZdk#Xe1(*`YIvX9|L0R-1o#A(nVk&bp- zG8D4u;(!?%fcA(1*ZcM^nd%{O6w`mWU0E*zw?c8st^rsD9wNN!q`wDHJj?Y2U;R^` z$^N|nrTJA9n5Q$|HY;{-V+M)`T6+-b{&QV%^jIA#eyGekzB^3`_7(87Y4m{k{mzIs z6$B*T3yV1r1#>-tJAt;QB2Y}jN;Rva{Vn*xyaK`C5C}hR15oE7o+TDQ1~Gua!A++} zr~z2QAAV-{!Dtg8G8fBB2*yH;+={@9PG1FH1dvPpnBWUs193?0s3j1WZ(qIt;W;N_ z0(JrTs%r^nnGHmfVaV+@Er={Re8cyns2)(m59o>wuV9X#?Xw}j%`VW6_TeAHJ&(kr zZ@*{Y6D%;Q6a_|npYYUj2=wT5Sf2G0ZUYexg4rF@A{xXue-$IzN1rvXwvwg8hI{Ku zuU@)$g=$z!A&}z>_NG6)5T8<*oek!r@%S13ozAT?aPQ_z@bh62L@Ksf4;hx*DT0r> zKx$^)7|LoNDz*I>JlZ#knFVioY6kN31xg)cS>X*81&djncrPHz1tocx`jCV(!R{l< ziId7zHczhVo(yxS0s!~oue0%Q zt*4vGO2It*lldm1q&CB2P4%pTcGT`PMEN+4+&OrBwukETE8{;^U~O_;QN#;YZMTYk z>TRwhd8G3GqV`#yx9wHwbsTkw;%%cS|KO(r8xR8t(sfEmwu%3-#;Az+?+Eop^lqUH zBva_Q8F$R?tuYz`gdDhF(+i6eeKTKlbS=&DnpA|;ykrPR{wsO>t*`R*ha2jPuu7?( zoc#y0VmWQ<>RGMYML7GzS}%5j7r}?l4v(kGzmNhKPPhm82zCtHD**|A%1-p=$IRF5|w$Kokc7Tp7R>2a#B3Sy( zlnV;8pHWAXrLBt=3&%%G)^kFNoKD%m9=Z^xkh}@O@0~?aL+`%@Evw4$8qX$JAAZs~zc%V~Y zJU87YO&S2T$ljpYOk!OWB%=t1&kBHM`B6`JYed@{F$#$4mPmPzTh0Z!oEy{soyp%( zULq^7Yv}ss`hu0t@9CM|1&IXDOxyF6=eMNk6C|puU&_B4ZY}ZCN=nGhV`@GL(!hp^ zNNMKJ>2yuhASS~Ym7}M188blJM%TgI?kz~2>E?KU_T0fGm+<(f4!8_K3v8=aQ}7(e zkxM}AmQ$UjOe=wmb+agf?9d}TlT`hd#@Fn^$E^C9J7;{GFgJsAHf#K&w=^{JJN5K= zHEdw{1&hVj3()fm;xPpbin8`*e4Xlg7~$ZafVm#|Ld!GrGgGhq7F*DdQ-w$}Vqr~>)uR7O+T27~ys}bpt8Re*cZQ?=>YPTaV?F7$*GE2ag`GoptV8+CcJTJ1 ze!aqiPTX{u2Sl&shL$hx)Lw%=M@GilE_BimdK?}FTla5%Z(y`n!^(EDtO~Ajz`5x^L$#oJv zV+V(PUn+mBD5)leIe=ZCNx00K6Bp>b0uAD0_L=HQ%Z(rAK;S|}#hv;FQ{*8;+*Tki zYP`oh!*__!Tsn!(jAq{5WY4ZDg`zFXJvY0RmYBM}2T_Xw4yLS={OrZwnWwldq5oXf zm*LqZM;^O2*)%NI=_6(xzQRy9HkzYgAY?fUcbL{;lmY-Ti`?cvcE#HFxa;pP512C| zi+T0_`mzzkb4(X(O=V0rI+A3@Rf%AwJD3dU{EY#1KquUcTbShxwMM%3O)Juy3TYbVa2;i#m!wRR@^z0iUIDXtua~w*~bRx zNyFPFwuneY;5wdLV-Ik4(gZ2Q6xR0%p>zxVkJZM6^XCg5`I``y#X%us+b#XGS2jljK$!gQ@Bw4hFyO|<0ix9=~-vati|igfu80A6uL(oE)Fc`f&5^A zXcB4f3tJ^t*UwTszkzb8*s`Ha(FbRBWv*6lG{ul1b#nah*O|Da3$%VCa2uxZ>pGN< zwa1O(o?oXV25vsiEL1kB(&st{I>Kd&d(UgiMs?U9t=UTqsK$!5&vf1+4VSM`{@^Pp z|AJbUzb#1ya$kYQ>P8=Lk9tgoR2;*t#ctl9OST3m5S|%{g05tvOk3tKQjHpTGh6*P zNN4)f1eCX!Wgv}QoR=Y6$=7x@++seOE+AlWl4NZdTrv5bEocdNM_0&W_4QQ8HqHq35 z?*2tQ@F@<|Ic3j&oreizxIa?9D-gX1ShXTqe(9>-A&cNrmj*!-UADKm(mwk!a4vEQ z)G;9Ntb+{Q0Ps_xuMIHfL!b|`PM?F3ePpR-1-s1p>bW>ztJ)*=O>Na6iMeb4j$Dfe zsi^5IWAEpcAftpYjP0-?USB%g=oD+Z}~kH249b>KpO3Y%DT;#GJqailu7b7AlYw+No~h?0!Cs^Z4pQBV1YF}s0w{*!$wcNprayZY`Y%smp9o=8J33Zb?gPb%P97Mp-dz_KaBtlrlO?w_epgAn1$BuH6?*$+4cu;T_mYO+lM+X2YtYTOkr&XUan z^0Ayrv?9Q?ZF#d-z0&%rFX3R^ zo%4??P!tW>lOF@2V96wqBh`BXX^sj|skAqLysEkbEswUprMZl2i^6KYI`S3p&I5ax4@K39n&??I z_>+ElbCyHkG~VxRx52v;6Ll@iq?q3{9`$~c8F1(-It@DKPhJ9Hy9?Fs&*#BHMytjT zOw;*g9i`E`8jTyE>=*2m+W8VsiFgStjQgHFu27Y!Z?3w-BLsF6Nmtx7z9&Pu9lR3( zNj=35;Avhec9S60SAT0gHyj$506mPxIUoELfaaz_6Elbwk3M(2{_xMW2S3SQt~Hnd zs&)jD9O#746yJm4aeV$TfRwfMnfd44^l-DOitpRfA4V*m;YNfDfO!6?CxdSSHdD2o zSE`>gD5Ek^GHR^7S@|$h&^Gle!o=3&?pB}nbg1NVaiyX501|Xo159Cx4b(?oFtdHZ zYR=yhgxT>EFVol4n;wI@V}Nv_&-9VJL1jY#c}>sr-JwojD}lAO#j?&g_T$x{Lb`w2 zsyhmdt6%=(_%EI|$f^Z6{ul${VVFK=(dgo=M?<_5cF1Z3!I1>#yx&0Bu_Jkz1RYmP z4VpELC3sH9PQ$FR^A)zd7sn1-o|S?GTyLx373S=L3L#IjG=1>hqRc~Oh0_0RC< zL6Z3S9H?a0t#E}V(}d%3g1zr%8hdOKC{9IbdVTJWdrVR}gEwwKffM{x2pT<5Qci{V z3z>AtGnK1287XG+-4;a30u3rL%^4D8Fet?{0zg{)-@qO4y4Mb%_BM9uR-6VF=*;OV z=C=5F*fK|H4>*8oz31JB;(`ttlZdA8l)NHLcl!H-iA<* zbs*osLJdA*GG{>l^&!AEiWw~@=ZeHTs0(+D9QV&TIf;W@8?>&k>ab3 zETfk)V+|n?=a!#!Y25mU2}xL z{_v&q;FF+Opz#^}z%0@ddFt&AaO8^28ahG|Tnx7;!zeF@zZituWnqKOmK%xznZw|W%zk&617i-`d%2ku z`K3u*QN3f$gMM9%_xiJ8*W4y^oNZbZU%MEEo<*-P1W3)>l#QVUiIp%_3P}3pE$KCr z;{P;4L#jnizQ13IKJMLowi3$&9sU8@EwGXC*4Vvi7BNdFGw7&%4|MUX5RQ-9H7f5S z6o`R4Gk-Rynahl~a|r^OTyNsT8{ma4#bKJooekvr)}_K|sp*SlyUR80?;iW5^Y^d< z89=0V<{;czJ?@Ih%WcVrHdGIc>AYQ`J4?a`hY^(gw~Abs>;`^Dy-6~AmGHy8Vcthi z>Im(F{ae<#SQWh}B?R8aq7=(hvQiJ)8}+qnz)=~SWig%yIu`qz1O#uresb|~5Nos+ zz_H8)01z$&r@2g*s4&j{GHE*Qx-?Q`O|I=?uALc}V`fj3st!K3H(>S*UJyyiNqgs2BdC|+gmy(HvIxDd`mE*p{UwpQQ zU_}c^YvETLW&J$W2wp*?DI;#<=5kC5jncLgKCA~P0WFMF&3c~|?Tm(7wCd^ToPg0hjncTacM|V)hBQpbAQD*ZLB##A<>lON1;2dYVBs&&WM9EW zJ3CnFF|TE^_v3;aTRRG-!zaIpSKK}J@o#F+_%tuIplmV(^kUPXj42&WrWoL_+x#D` zTzNcH``=d)k+gS9qEweGU4-nkppYTk*o#5R5{9ftwBZg#k*sm;%h+9nkbNz~*oLyk zSSlIo@cSJ7es_7E*Xw!R=k+{)&TGz`Ip=%6=llJ9-kY}PBnKsSr{cL6GkVOT3=g79 z8B$6n(8ctrt$4OYcT;n-#zb3;$&TIjw$ulw(Nzt3!su7@4n)x?Y_1mkUzWJPt#|*! z2Nr{|M>lgp^_K54sSV|K6TFmfOU_E{bn}l@p^QbC*`x6xp3X~JiOLW{p#}LO@uRIz z*cE~h_OtIEU6uS?(sWM97NB~|Ba-%a01Q{kzdNGrnYaW*bPs2}=D*){G7)+O7{&5f597hpEVqn+DwDX)jT<_SVUkPuc zSDS=LPtJ|@2ap@|zB<}tDh;ijvKd*J{fa;(&uRlG(B$t^oAA*ZL3esXN zk^9vvfC+BaBxi$O`!DR%lCa&NFBaGPa=~n-z06IC^=OLrS()72u$&`*8w)_t1d*dq zk-Bo_m{)D>%uNh_l~F0>Jl^vWwIf_XG(qa8u{cYanR|~-QY9?7tmn3bjX-kCDK(`Y zC><=1-TSx&?a(@Z3%DlJbFp3A2GkL6q&v*&2~ZHX%AZjUwH#~Y!wdkhkAnK%u|nQp z$py`)IGR*cnU^2eDKhg!pS)NMPq4t;@SOlmgm!bT2OA)Tx{R8C7BLW<65^926yy=@RQt zEOD@0^wt9e->0Gp+V!Vwt}^LVM5n$^BUaX(=!7fVFIx+PPHzFBC2&<-(k{Q4`J}Oh zSPq4rQd0*(>Eu93zJStc1I-EUW?3l!9ujVDeg8VB%N{liLf17)Sd%Lgs`-oc#pvpe zU8Qwg*#+e`UhmpfMc3TeHid9^Cq_G_OSOy%O2z&kC`=@iSHcJvucX(K<7VR2UEHwC zjeg7fW>6TmBx^+39)0|%+CnY{5u6`A4{CDlj>x1^LFLn1qHNaD{54n2rpk@g%9Iw; zOiykN3S<+uyd6Y4UnbmJ=p`oWL=(xA_e8a5@tfMcb_R0?Q1$KR|2RD&ypM$q?>zM@ z(h9ds38tQxh>3qH$Z)44{(g*#(ur#S9}jwSrdrW*)t?DSD+{f^^V4yOBrLHF3_3Ln zjdvS4P^j5VrGoX~{g83)(!EiZ&u@@2ijEGjA3W?FU`cL$&NMl@Rr<wZFd_S+NQU`LBOc{HvGScsD-uX77f#1JW{e`lQKR#x3sobX}Wo5Qp) zDHfyWeq;T@!1H9^9@Z!RLir)MK(EiBxWpFNJmW-G!%HvI@x8Y5s190w5b$=|o=@+j zPi+{CHv(+zyYm!lk0naIVP{YS$D9-^!z7e+e@nUX-P&*q-Lj>y!8EKqgU z&mP9yi++MpG@Q&^$`8T?UTAWoCss^ABwN{Zxdqi@4ohNRK%}LhOl3G3AFr|afT`NA zkA*>TE2A9?r!6l;76R0NCzSwSD|S4}c`dOO@O&lC>PMRgN#8DjMigYEvM@jldwDwl z+Y$fdG{{!tZ`(Er0>!PCeY+({%ILXlF7{wJw=k#z4Rzz99U~A5ei9GZ3->ViGP3+Q z2rJ_FQSrK-p5BL=5M<4w_#9>@`VFqkV!(McQtzAK`t;4ngS(pLVH``uA^r+l>WP<| zx_ln)RB~f3+ZMP{;2;0_U;gE~%wZQp0f7JO-ETEU{>k0nFJ-g?ETeFn6LEipIG|Px zJ1qAW$N`F&jCRsc>7WYT&7Bz6P@!$w{bLxgSZw5tuhxf}3mgq-%k`q|S@qn=z#18$ zM=T>7a~mb0BzXk9Q7B!!YD}B~VZ3*6%Wv0-YItlIq$cv*R~KFuLFLqcB7?e*rUk}u z8p&C{J!)<8;kQ2JOrz_+5t^!qM)gI?y5|Wf$zzCN&;r2-N6Q8Nb>h6VI9vWbG*T27 z$f?#&O1s{Q08sR~Zg&XI@VwyannmQqAR4Cy_O9u=iWg^WRzah04VC$D-BbQ4JjGGn z=oo5rLsiWMAkTa;{Va9J2bfJXxZ(!~7?7jR_81ojYu3Pr!wJ&%Gn@VfPuZo9{^K!j zgCZQVUwj36M_|$T zB2w$|wwT+q<%_2JH(Q{qWzGjTg)_9mNZDQz^MbUPW#6}xG3AW3lcF`ELPx{BVV85J zf)@Ln^LR_{A-jdWxW0xw+@T*w^7(|E_+7Fp_7deUH=FeoH4%DxOQ6=Q8Hp~DJ5Jye zi)xLMj6%2XU|yM2@+9byc)1GF1JM$p|EqcJQ3Tv!SucU-%o$PT_~Yu!Ap~&X?9t>pbVu2A3l0Ey zYz3i+uGmhE2u>39`|g4VJU*HU08UO{vE1>;IAsA`t{-=KrP*x#!y1Y(wLdc=QAr@yctYcI;oJ|qOjyIN zKSv0y&PmZOc_oZ6SArCye=iFtrZsf$Y7e{5jE! zbxv&@;m$re(ewUe(cHbJZ6$BZe}tI=w2u5grM_;)#%2X?#-yR$`r258N#n7Y$2&!~ zfeW!yOJSS*^1J9ao^AxC=7F>Q@*MJ;#H=vlYC#2vqaG5wR;tZ6sOSooRZw}IE zgtr%^J6<|Y!$X06jYv~1oc5<4BoU?z6YzOcCPh@&v=cTNDG~dfafa+d(yTcsqz=6`#lT8?=HyKdzao#0Kz$EWXM*>o*(^}T$`?VZ*6Nd%TeUrT z4rckZE`5y=??rL6A=6OG)!MDf^TbP=C)08}wt0XDE)q{Hw|d2W&-{a&|B}la%{{BL zfk641FAAPRG)9;y-fjzPM;5WWE18Ff9?Ly*z;lZvc$7eM7%C)IIUQn>6YqhoPx-ze zzmBikxF~{oo52+f{q)N$Gp`${SUq|A_1Gw~>gG^V`(k!aW;^{DG60Nk&X`YRy3g%b z#EHi6#JC|%HrE(Ng-V^W%mP^*1-hsxGj%1c1mGR|ix=qrOv9a&F^$imPcH)7Ka7bfj!f zuTnEbtX;5?5UE*)&{wE5Eq1R}vRVIF9?1CB`z?aga<_hIR_`o*Ct+EIOCDSO%5>-@ zO2$t=vHR>*rz5~N!#{;2knKUE?gjL`Ox90)e^ZKU)cUOII*cx)mL`oQ4P`GE{8~%4 z?sC&GS{QIflHYiH%CrhNbTtWU;@q@_>gmL?w%`ooc`E*uS=`X4=hxHAGD)u5S!;<` zt7buuuJ7=xALm)(6>_#!Zw-e&x&0WgiXKtmUGc*uT$($zPfoYV*2wI(R8V+sH>V-O zlY6;%(6-n*AaBWbMEYIrS!<+0Elk*?MS)n}Z8e1ytS_G|`ZdVg#P|>>WOKfZN6jQU zkYXhQK~V4}-Ans@i8J1+`Z^}}gr2(q#H$JzRf?biAYBxqU5LV9MVlM@)bDIj$E8+m zWK3IVQcE9?a7r-Yg61mvg~hbCEjB0F)&?GFRu>>_Cb_)O?JM%Y6L8}Z<>AG8+hY;G zBMKVB+oJe79WcJ55#V?;w5llURal8Pn7?&cEdghEAfs5RV*RRJv({l-yWJ!G0aG52 zJFn%V;cDx0K@Y=AIMnI85%sR|c7@`R3ZL{=X7YhSfH@2(AZLwRS7|WzlG~Y0JkT)% zWklD4(FSvu-O1#!{BHq2Pwz5E);z@CODpf?`lgM}rxT!;6(8>EOz!nPQ8CP4KD%v~ zt~s}kaw?QlMrNz#_o$GNd9<+eT1+?B*LtsdqD3e_4S&~U zPXR7~)>dGhNr+1!Je8352{AmJP>R`pYxR|Q7ynHKN8h_nhE}1sMrijN`V4;AXWU)u zXcgIha4B0;A=StBaw?+!O5&=H5>aR06>F(8j`L%-G8LRUD4E}`Q&M4+ zZlSCe6CTkm zAKss@5?6OVEcF^LQ|bIvma}&E%vE-(`N&75#ndY>C9p$WNVttLy;4-6$M8B^Yvwy2MvqI6qHN2WO)Bqo*`S*=7E=-` z^qYvchskQ%NG5f71vC!{OCv{hZrE+V(eq1G9|clB*elkq9yc+(@tHwG*R(vOw8+IP zNc4cJpikr^62Hx?v-jflZk-L4p@%;qM@@8Y@#=u(&y&8ZQt2D#ak?JeitZY-KVFcy zgqtc8#(&8P-lu-L%W1717tt#i(pfq=*Hjmem)a?w_WW5RN#^0u_H!Pq*g0kbE%*Iy%#_K=A?&t{qa2a zVKA{Dc5z-;i9oz4s=O!I1h;Sn?AG=f~X#Hq%)d3Ohs`q@CZ# z)i(65@-d>F*JeQP-`c_d&4&w{XW&B({t*xI@etOLs1Y= zq}cG%n^FP_ihw9Z>76(6-uu0}Uis^-MLB2AoSD6UyJq%If|Z4-=(dB~`1trlk!Elk zK0W~|__Yz*0!FSWPS=5d`~fzmMtqN24vq2gZBGhBU<0Ya1hOxlPab0Y_m#Z5Dv2Ht zC=Y?ltE+o37|Pyc52C*ZH9(n$4+KNtIhF2BCXn&of6q}@RaaM1g(#`3*{NyELkv|l z!5@g4GE4)4`+L3z5l{PPK@DY9u)r}#GR>PF6aX$Q?7$y2RWJ-O0$1Px4EpzFFbsMe zj2JQ)zIaExCyESqH_?D-Dnnpk_!!E}4uh6gHwM?fWC|YqGsSyR=)6~qN&a*y7%|b- zR#sJpYC)mOT0FXKJqRBDWycSy}+L8@(={T@*mK^`s9CLGS;v$3V=fBa1SMv zcPI{T5y%Yrdl8xkAodU3Rsbm_wZ9k9bO`qJhGEnZR!}tplcEt~k3a@ksXM{cH9c|W zf$9O;5N}q1uW2Ba668gJJ)P1Vel2oJ!j`rtIlK2$GskWZ)?#7u*Mu??aUXy(B< ztQXVYBLIsa+IiR_m=-p;5HD+nmR*n*!v<*~uWn?gp+SKWEXc+zg0~ZvY6(cTLO3ve zS^f?Icwe$jFoY2V1#&h**s(%Mp2W}qD<4fX&eSQ?LW|;PZ0yNGIUu!6p@yE2U}Ko2 z2A%0iGx7`|Y6ao&ES5SDw+WM|#Zsda2;h}z;0F9))q@?u+M(c=ieQl) zz>smUO-KL>ToB+aZ=#P`us_}$+y$8MmO^?%&9n)0N83Ms%}jV3JRtLqYz#m zM6+NmYqe0ajXDdcKktXgV!)Y9D$JbV6Kbb!5~@blwm>^EAY>mp%GNO0*4WWf4dY~I z?%@O``v$6;IcWQan45-}IQWpEnqCMz22Ke?*rU9SJZMNKO*On{a0rs3tsaDMfRW66 z)a;>TtU5FZylhOeGxqW{L0DjojLBZ+b|_{D*3c@@%8CKy;fk|mdSGoVuuxSkn7ya5 zF_uCldl|vNP%xB?LNd)*CgyZF$%A3(7I@JAXNf?fRV zOhSSY&|riWN*hf!x3q?NLA5Lxp*{#RTT29nX6c01)Fhj0cvyNm;UOXRju;;l#aPvp z=wYPlrRo!^rR8BrXCN>PB*xRiFaT>FWXNC{hu9gKnM3LJ0gm1T5*}e^s;cINp{bGl z(dIS*NFS)FmY+S%QyUWGA7~0Ob@B;v4EFYA0n;+_vktPdMcN0eYisi`05)g@vq0cs zNV5tCI@q8v!M?_H4{hLrO-v1;J{Dva&WlVW1$#Qd zZG4SY4b@3>@CXBbZLLDoEi_FvVO~yZ7~=p#bu=%tnyHEKVORv28wDd(t$Cg@#E9(c z6zm)1ho`|!s3;uP$;dj$2ZJ^8QPVWEz!|CPIk5! zNH7gyKYyzb2Zs;{gAAt_Ie3MbYx`R5=W zI?fgtB~gu{4f8_TQJEU%C?|@)T`|thR>aXqZt)+p2dSd||fN~>(gHM1JxUfWF3{f~keeGS*wc?lXZWgyY7?w1z14iMz`P8-Xmlg01x(f6 z7al_Pb%6VzFy0ih4;mM5^9|I3(QHGk{QdmY8JZY12S+t4 zTbj2w)dqsn#F=?p_>)iwz`2d1U!Voa&{WL_0ExtUGtf9AIz!ti5JsV4(IGxGI>X-@ zgHmJIXxIm{@K7286>N#|f@$M`ZJC7Fc|p`ko@QiY4H&|hi4Ve=0;n8pgPdq)A(p-* zOJiuL51GYc1zD=8h2UvMXdk*Z5{q;o26(}&JRJj^aGD-48wl2j0A~im@MfAOjw~d_ z!O5OVBWj_H1J!IneD<(IBT(uL4HQ}xiDNiu!^l*uKit}kU+YBD^LFgz8)!uwGJ%^>PH zO-n+kx(^;Gw~>bxQ_EA!6RjDFfFZOk2#{bkKkHBk3an!9XNJWyAvP>{C=zCj4y9_7 z4NWOX79K~1c;d|*NmP~-kwoS(5r8&E;&9q%syDd7(*o?Fntqln0+YpLYH5*tELgT! z4WgAM*w4xzf^_n=0xX)~C{{2(RZoz`89ADPKO`p`m zu=p6UsQ-)^m0lD4&u#8zK{2Y5&~9ZTF!}E}a7pcdUIzC#1HSgI^U`0A{%1vl(rcUk zKfKo}?ziFBEv8 zHj};29QQzWBJY4$lmSXunu|NA)qjys&_}lTKBpXc`a#*jdqRM51AczEB$@wj%>K7* zn}`SB;uys zGvPn7qbDHB=@-7X*&Z&G`!v+Oyi@wU@jF(B?} zVX(DARGs{Pl{O9R@FKzX$bXa}J&G@%DnL3bz%Mj=sg}m>x*CXojKg?=m3f4-w+rtu zwmFWMg!Fx{ocv?cK~M$1~RR_90M-sr z3rT0(7Ji|(GQ~BVEcs6d-yd?|Sr*!auN`(k^U?YL7}Ya?*A%l~+|61iNxu%Vn#7I`%=l|u~OMLsCZFC>Qo>hDWphzKBe z{gqgDQogrU>aUk)5FKNO_fnCY1&BZ^*8$RVn)9WH1n@#y?X2r^eM8Ukf@U ztW9dLryBx3e$xOwRf4sIx=9L{o49duurE=b zd+U1D>mO^`mlTqK+rc4$>NOO9feQL44kp6-8ewki1gMVhuY&Qb=MyT5p5kp3xvpO) zm;w0|d&|F``#%WTdSG?UfBoqLmkr}7oZ>;zi!-e*lBm)m`7tRZrQ71>HXfP(TEFy# zC>8GbGmDKJj-&Z91xasQrTY27`n|*5R zO>f6t{gVW{X^4kK>F`3qFrtsHu9oU{kje2%EYpB^gjxg{AyGgUWk43sH2fDuqeF$i zA^KR)P0v+iK+A8ArRo|JxeqlE5U<+=u8D5BQr9%8>c%}$o;nB##KSr^35W^FT$P}* zk~UOb6mzHZnK5QciWGrY4i_Q=KQCh?$L(*uM0i=JTS)DZ z6gSH0OpP2jUFS1?IBc!6woFE<6ve8i@IvK&L%w#C&_7oe?h?o&*Go@c<=Gt+17sU0 zc=rg1rWv&(Y}ahvIAy&4Z@|oV5H_55o=1!GWW{@vqz?vGyv+U>EN|eynGu~Jyqdr{ zEbnsq$!6sXz}&B%X*>a3xj;7gZ&h?_(*1*6Y0IqR+m2buZ78DrioGSUl zt^rkcTfr{w+5kVc01ruqKpFJK6VAyfL7r&IK(qz225bLu*V4eSmH2ie{^OGjI(dP> zG-?@mfg8f(%H+Ms`3QSG-U|oi0c3mhQ-H%r5ZAKrFlSq!`YroofYI_YfEejcIM~`# z;K+^H3!I%8-{|c;mf=T%OA_1-`QwttkB|8w^}l=nB=NlW2|$fQ>~`Y6$b3Huka3f> zto(O?v=>#WL0o>#_R0WOL2$0gmYeaEgoPUin#h+OTX%VGR=spT$OQfY z=f6&A(-oj!pJgIz#$7u}y8tIJz)2ZGBocsjTDV_&Z2#wYD@Few!1rI=1%iqs559}y z708Y=NPPj`9?=CLa%5iNn*(4T7uPxw_U(Pl|4ij&1;#_pM>(ar^;7k018Xg7{e&+O z+p#=)nPAXU2~>8C52 z3@Ej_RXZx*+qbh?j4>7SN?8K=m{)u74TqfC7a(Do~DE4nPJ4JEm#hRkglz zmZ$0Nhxp-rT1Kl;GG}}7!SIzVeHujw#i|Oy9KO=ya0MkI*KH##M6sC;>AHp z)rgL0;~fgMJl|zd1jv8(wLl%18$!?`ZFb%_GV8F#;2+m&Eug?n)%d}m5|qK`w(Z3M zm&pUj(g4d4k z-pyV+ad*DIU@ide+pKe$Z%hXy@U7F zO0!AsUn^osiEq?0_bxj_Z#)rcH}$;swnYSFwDlkx-g2#>t-w8<|9I@NV7)&pK&by$ zE9`(!zZuL4?uXwe_PdLUn2Ektxu3b7iZw_lqm-px81Wfp%5b%Im}o+QW_hoeE2Jb2UFmco<`n5z=stV8=zE5Kt1L&~ z?PSsO0;$FMa^{fUik*XFmZ&V3d#LJ3b@x#&t8!^1TDE(#_zgC$;P|hn^l;SAsjBjb zg&waL!|7h7q*v$3O&b16Yel=pZ=Wc-lWh0Nr|#o@;k1$g=XO}LySwJ1Mp>VQ{^@a5 z-QbV*!|@Aup)qEKF)oc!d$^W`2eAEV#Vg8{Xw4%b-jo=VNR)Emv)OC+om~p(vGd(W za}GGZIoi9eoq#O)ofr2*(e$wWG4?5Isp|D*8_j<5bxMngr2YIvWZZV;wk<0Yj>ooj z_fb?Pf`7lmoqMYl$m$vY|4+Cg5HK`{hMF;o!Vh zCYV#P5<3JhM-IUbmD%}pKYH=eVbkg40slq=((^lF8^lMC_ByyaHKrcho z{x(tG>g)JxWwJPesP9Hju`g{<$ogJxc_uGqq^bSVgCZE?9X06J<2foW!+MQ{%^q4F zzq>AVkhtu8>>jrP^8xUF#qZhL(2s5A<4j5X^#=J6*V2rup$|;p3Gs*9Uv(v*ji$#@54kmd!qXhCEvL$noiW z|B(alQ~m8JJV6UylKi6DK61qTuYvS6Nxz7Y*KRGv8P8U~T(qW45h#-{Lt>(bUrj{> zNq@hzdf1-WUY!Y3&QOoH3zwvQh-iy~K5D)4W2)=LDmqJ?F<(BgGrWCdIlCsdc1l0; zT#NQ5#w6p-U0rI+22m=++bSZx27$`$ob5%XqQ~e-^Kl%6bJ=n3;F7*3)1O8xl(uE*9|#vvle?#Pd$3gCQbFx`j_K7sYe{IXOg#9WmM9?49%B5 ze;;`xgWR~H>QkUpb81K>IThS3RKpZgD2;*xtI27zdPq~`i-#W$C%k5gr;`j$RH9EO zkWOZjXTE&fDU1A@T`gKnT3X>71}iF9<6rq z-NyPr$$aS&GjmE;NB75DZftMT@AhN8N!LyYqcx;sZ%NIisn2*)dZzClmOk+#h!y{8 zz9z|8s(C79W}$B1r<48Rglw0f?73so#8C<2t$RwAS{~mMrjV&di2^#W(l{q(Zd1y- z>nAaBX<~HSxoh|N)gP@#|EduGZ2vz0@|r_@S=*MBC6lW;_5NQQv-y~Xe_fK2w}MLd zT+RvK=N7T#Zd+O-_d_LTxzKP8zrV7Kvh#=Nez+JVuRh!LIc^K5Ed%z(YsGX;{NoaJ z`()npAp&G+0NrG8qvFAgglFU7C-h)y^XTdEm-ye$;f-0O?>d}XVLg6^NSeQf|MM4ENqvd=>|?AQOU}iL@kqJmJm8$-b?x zZ#`=ub<@)M@3Fq!J_#??IC%ACu#RI#$H{}tgoa9Ra@6(iu0ltFuh`NJj;>slbU>p; zT($nn0y!hSWMg`Um{%Gbv;XSuF;a%4Q)Ga}Gx_8f-$y6dk4jY@%w8*9Hj{X1_;)yc zl||NpiOc4+tVhgyu+DMOQ5j`#^WUSLZ}U6pRF;%fDQiU73&MTgjnyA*bRX7(I~Tn*P0$!MyP@}0-=vQIMee!o zmA2xWEtDwr4wq|91EG?4Z5l-pnIG zoiwA;rPjE_y|=f)vxX9a6Wcv9pX|aLWY#g$(rVmZ*ahW;JsQt@G5>o&Pqn^w-)XDM zKQ}r{scgzF>UFD=;h1=AqB6HBH_Y+TT3_V;u=dLPsPYq)xyK6E;xK*K?+rcj^Tj_r zhHlTu*te&4L)XLJe5#VW;q_ft_JgZ@e)DAqd2wt_G-ts>G5Cs3hCthu%V{hdF(qE8O-9;#IVM$4%((@yN-SgHjjRx`u3jz|^)!&Kh zrHqJ>uyp;9_I;-twO>hpC49beb$01K8=R{P$;om-;u2ak$4+ZH_p@B@Ws7oU6SSk* z>T*MP+MNfr?& zA|5lHBd4mi>J3j#EKMNRrwbwnT9e7QFL`<8tGe2w56@phE{q(F)DFPvKbwE95;U1~`~mIBJO3B2r&@U-$-lejGNE19JLP%6 z*6OUu;^ZgcKOR+<*6)H{Ca3N@kfthAlY=cCPWwE~2#;N#eH|O)*mSD;>o%u1Ge>JB z+;-H`kA#>0(v6O|y?VOr%$VHL)aq;r5)`C=Fl7a{*c-(dxRbVH`R31=^{U3I^v^lNSp~YCt~!Xwtg;`E z+%^s(2hww|SudMiV>GBFj}YIkQl?7`5JLv-=_7Sn9!uFd&;zjb7xl?GQeopgzZ(ZW zd%axqtDi%-nO6L6og2%K@L`Rwy;_%=^H>?7+Pqf?yY%S5`<^hNL7IRS^riHh%aX_gl~j>@QTSN*F+-AXg~{G#VKs0{;34_3#& zT~Aw4u#$s?<6UnIwro}8u6{f6u953;Lbv9){|DFe`A!;+pG7T}TBc?odEYM-d3|9s z>hlqs+6g&@lg|~+ik+OcTob0vOgxush=O7Q)>Q20?=%zoS0xKJHhX3EFA%pj4Xmae zgZDwL$7i2eFaK2>BeX8zANllE{D|VAa}95*ulDIZ^7F!dzT)iJ^w?Zf^37U`(#C*H z<86!5jGaqWfrtqv+PABz?r~*{UKnAR-fwszU&-+H{w&LCQb}amfs>81=iS>!9&hXe zhh|$|$vdng8b&yV=cecT(z5o=ZN_8_w~Mupv@Sb^tiW7L&wVuxv~8|l3{W&aD=py? z*xtt4lThaOa=Np3N&Z0A$g|{`=4PvrntR{UF3!Ae&xxM(8V@=uPMycRo8R%gBG&f< zyfkI(Qqf6C;4KS2t|xJubF&zI?lo(K=8j7GV&3zq$S;9zxziC`iLRrSoux!BWsKgr z`*KA14LzGuksn8zX3B>bl^D(!`rpP<-f&@)uQ1H^ihAuBI_JPzgn_6ep>}u=VBh zkG?0SV&X;me6C6aER`*Ll{jCSJphai-+Qz@b)a*^Elq+tw11R|j=0BSZ?b;#)bD6J zp>A67v?+#vg#WU$XZkm3&@EA!`|Vw-?PAxC%K8=LP=V`V)d9zqj3cXl1Lh4)rAaSb z_GI6BHod-^d5u)6ew!fM*ixGDmn*T`C2mr!sT_P>U6#Jeesye92UK)=E1xE15@f+s z&wp=CQGcG3Lk`d@DWqn8pZm%^7S1u#8nz4^Ax58jv4q#%*jVpM0|{?JSzCLvnPKsn%DDNiFp11e< zQHI}et)ZQ;OO6rOIpS~Y=rdkdGJ2(TX|hB;6Seu$l-~C-q@T03dw>8hUL7EQ3ilco zg{6;muItLkEqoeE>^~LMehU_vyT5#tm|2DapGv8_eNtS-?<50FS-my=vSRxE(JV|r z*t7n%z8%~iv~xrxF#;Xn`EJL7ir*EaEQ`COfb;cb&ci!V>8(GjmOnz)G~I$CH0qCR zOov&{oTqU?iYgdiRJwF|Vqs|lPSb|X*LNf!vM3iY$QSZ$tHSN8nU&c$OIyD-s&t2j zjjR3iJGef54&6MwZF@l#(SrE$@e)I4qV4lj14wt|b-RQu8~+!iB5-L5knU zpXkra2lUu%g-|=;k0rWI#$?~59{aRUvYc5r;6IdnV5#un>PW-MtwWDhPV~!^<*PMI z;FNuq;(n&?q9R_m^)}Nb56)fKR9V-}|7Mxo?(5QSD5x(R*ZfP=>ug|go7*F$8P%_T zy0T`aNsx}Zf#ggJnpc?3>;YaGF@Fh&Nf888?o8C}Ori`q>ZQl`6Aa8{w%yt}TmDwyHTwTrJ^E76SgQ^agHz3I&|A9uLfa!piwMbZXa@7wbNvWoh2Y3v`)0EHtK`)IdH}k z<2Jq{oU_-%C+&Ju>9dorMbrD*yY4emn5q2tPCdEQ*g0@w%h}Io!Z~LkkM{F;xb#2p zAas8W^KUP}-~8Mv`zFw_IZlk~67QK$br(baKOP#D^yejW4rQkF>PC~nVfXrIa!AG{(JIQGNWK<$JhW_hvgOF;x-9^~uHzH=o;nBQAz83A=0Hi|y zM=H|X-J$mMV zGncc(c0D;3CnI6C1sp+NjuPFyAwMR{Zn-}DtnN&nr_gL7IP_LZ3B1cmln=MKNPIFwNbj^@R#)ta!^Z9D4NuD8N_x!U>RXmEtyC|;~$ z=9W6EFCQ+mGAAMLa&!#Ew;i0TZy(xY^J5b`)oj@mnP$G6!C8nsYjyyT?;w!Fp527Z zY4LeBoDm=wUge;2S43b<=2t5l9GO3sTWg`r?`5~J1M!ho=x!T$U*PKM1AUpX`SB6D zzCNad#olqnadRp-pgu0_dvq)mnH9=%l^GjiyK3K|D#!5&62yCCvs`oxJ8JgSKG`Is zh+5Vgd<~B1Uu(tQIDyM5C%fw$m?@Om!Yk_8SqvH>yUm}{*Vp6dt0}h&&)?crtYV}? zD531!Nv@pO&^y}a#)X`@t|0-6*5&yRs*l!hx$t--V#yQPjSS7>gnhM-lLuVMMK?b+ z-R|qk_@vC%Qy_Pw`JUW92sbZU(kQQLj%#@^QtbH-}Dws%mkxTp#MRW5?5Rft9ciIVp0zY4>G~ zPvnAfswz8bf?A1YA3m*hN}OKS-MqdUCl|&#nqvTJTn1KNmwKZH6?2rLrB2pYyQEu{ z=qJCsx9udbW~9J8zG1$nVkLWx8u|Iy*gj<0k&kOlYgO2e>+(PIw7}9?QC0ibnZ02q zYXdJG*=tKFoT8|G7JTjdT72y4C**rk4E?W4(cI{mR^-z=2XxeY2B3?e@H8g2f8O_9 z;F-7LLZw+z2~V@-KDo7B{`hn>jeA{UQ4kcEH=jRf+XQoVRURAIo@y}Rkv%`Im=!(* zFya{3R-=1YOpB(bK@I-v?qc1~1!}jhP|60nfB?VJ2M%6TD(rc4M*l_?T+cNL3yMnx zGVW8G*DaTap+e6=^TXZipb%)m{Q&w)04-wQ^`a&4$uq@k`R9&;oe>ujj{g~tGH4a< zsSKZB`pxg#t#^&rqq6C+M~f79sd9Yy_uNNw45-Gc3d9i#tEc!tB~C1_PYch-I#qcu1$;L(WF>>i*s1c1yXhV)E-{xFH2&+ zXJ;5Re(eij5{jyodO=aFtm%Cy`2pCYfix&yDqXgHXfv<$EtdT#884;-c7H24f_woB ztC)OiQXvKuQmokYT+a&pNSrAX)T}-}d8ht&sWVqaaGd`I%V)MboXilP0LMs%*{A=h z$$pYyc+P)axc;J(19d)6q9`aQ%2h>?zYzv)PYS9FoJwYI6HC8Ud#U%$&@SK3l0y{! zcGx~^`OTobH!rZX)6w(rZJ;Yc(R9>uF6V*KHe2Abqy7|~o8f~YY~_^MOv3#_2f%_j z<;d09!z3Q&q)h-H$@~kvmYcnTJ6dn`M>y`SdmpfBxd+@r!E4RA zcabN_nn+VLRTy-z88`_EQ{G;UOIirp(>|4H{_nwI|cr4V@ zC-zxs?1k&I%sNmUEaH{P^#UW0lJ9YHG^Vym8RR+&q90Zzb~ntO7y&KK0xM=XOowBk zW^C+JKr}wVnpdUV#^0C9xWfsn?2zX2M_&>?W7=Wct7CHV(Y6@`nDuS*-?HHokP+0A z8Dk+wFYGBmp940zh*o@3kti3o`7cSu=joJxiq(6?RjZ0mtUNwhaHj4|ev#99#DpgD zX^_nNvBPP<1O>7c7&kbN!2tgZuOsg28GzAgna~nBof{0?Y2`1%f~PTq`tli!6^}w^ z%%;tWbLsH;CgowRJX>JviTuJs2+qP29P5AeaQ>?^5(UYI%S zW-(AzvjHs}-%m!Dn=fDDxXtb5o49De7ab#CWyr326=(SduqC=x+ObM^g%F9{-r>KU z{)hP7Lc#gJZs999g%g(dd*jPEuhkeMiEQO-vv+3CzLEV~z@V=VG!{@Ut^NvKxDj}X zQ`He5nk?OR9B3fx#7$_ypX{MVpfdgDRnUHB#MtXL9|~H!LOEYURd+_~i4UsjgkRC4 z9x)vpVn-;~OWkc$+y%gd3q*rry}^Xwct(7j`Lf@HhOLZXheB~IXUdGLPSso)J)B<@ zsaE(7m{W=1_^vHwakJf^!BCK}D;PDu`r3Jry$?W%`~9m*+o^*t7k=7B;y16V&FdnF zegTy1$5EH+TNrtlljM@=H2?od)dl1dD4l$eGlU=q(0!PfF$O1v56O-N^j>D2l#J>W zi$@QtJXMrf4fn20PlN-XDJ(|-OLpz5PzviB*MaKk{$`@fQeUv{8^D&gIcc5LN;3x<`h%LD2=T!NklVcaR`FiaZ2v=bE z&d*=lx*`(IYYv-`0XUmJOf|=W$Tz`|Q2DnzBOWxp?8_o)%!5QAj{|w2mTdn=Hs6o) zJJ*Mla~5Vx*NS{V@_G0RPPQ-1OYsxWnfnR7wCzB!rLK7GI4MSw=MSr$1ubKu^X|-~@a)MH?1#td$gQz@tI6-ECVz+?gzbGU61;UCC=8Eb@cTO!#@A% zgER0HoKKt8Kw2t}NK9S^MSY4}Xn$5!^6bJyz~SUSj7swhuyBE!kQ-N{R4S}^4nXkK zCGc|gQN~Noc6nXyJ%{%FLYEcXS9(&-LU-hHO~Fpp>0i`&F2FPRhd6-AN(ULl1j9s++o?VtrJv%Te950 zcuhi&1;?Lkosrk=b>u6p)D#>?t+UvA16limO7r5&u53vqfPC0X_>45!8M*U{67o-2 z6b8MM@?sZ`pY6eR6v|aaY?C~@ExH+!d9`&m}uIIrBX>Bpn=rY*HQfG(^4tdi ziBAdRKYO~nvfVq_IH5B~$+oWh-L_Ls04qKU*g!<3#|zIZ%k38GCy7Rz$~ULXVku|p ztc5P@(n53)p9a~*xftGa05hK*MH^ahZ*PBeqZDIB-UeU+Nq9QvPHvPzoKTNc8LwH( zn3{i_*KS;H^993RPoz73+IFId=W?yi*FKh;kQ-ay-ECDW52#WS-b4GNl;B|-9r&V% z_c>k0xvheqPmYNoYbGFqToBqzL7z^M?vrhEv(3E;6%b>U+(Uw)=I#j`jo!|#&hJ5w zdv%D4dGra;m~@TT_CruUbsg?odB7RBH#zFC0T$TsZ?vbdK$2L`*^ZCwG7^V%q9}=P zQyBFwrRXn0Z-l~Fj!#iagLIp+z&!TCPV?pP%KkcMp;M-Ve_XJ9Phb|Hpzrq`<{!-4 zr~(w^Q&YX(>zft>Z-OU7`~@L@O9M1G$AAGzzf(T%mV2WwY)sO`$p-`rjxsVi3zqok zM47fz(I20NXC!7ZW4J$oc05Q7gv|9TkG0BwYDdp~*cQzZX1FVk{Te*W7ab;FWz_K+ zba0RHK2~f!uaz(S-kj^uq4VNX)39^7Z?C!}IG1w3dTgGKJj9`GNVRuOFV4Tr$+=pk zv*4n%Q+6^uulxVvYncR+BIvPpAB4?#Z=E}P9rn~)p})~iw!oel7>k@gL5 zc{Ns2aWi(%u=r-L#f^dhg*|moHDgzsSEIK|wdKW0-M6*SMpRCe^_6V9I^2$wMGvIk zIJ>z!WkPaqMO%9PmSyed$t23D0aWu@=np(3rBgfWiz}AW8(m+Mp+EP*_VoJV5OaNL z^ykXJhF(5(xuQd}fVjWesJD7o(N{qcjkebMaJcjBj8=3XV>PhF#5RC6jNhsd1gQag z2DTY)9V^J99o!EuMF^h=m)%yUWzsO8r1h-8<4$yh#iT6vASMD1T3y-&MT%aI*LrIP zDE7<`L`H%Jf#^-YVUg?Lw8JQ`Q?o$PJ|^~Q`0XueJ`eJvBd(B)OFyO#Aoj{|_opAk z)V4J=?m#b9DO=RaaE%g@Pra|*yV>iIEPlo0Ca$x%!$4ngVHY(?K|f!#y^ADp(ZQAF z?lVY`;@(ic;WcP}>=Kx0^vH6;eAC*^e$!G+c6sN1gHjo8L46MQk&=$81_Saq2_djo zjUg{4I0|^bcJ-%ihFm`UeSw=we z3EYnziDFdY&5wKs%>J6Y=R(fSxxUi$f1one)JX~>FWUGy$M$z+QiL=YG-ChN_f&H; z-1&|NqSXFU`OV(|&zp0lD9iTN1yKAD#+gn+I$?&~x0Ql`(!?~(Ufc=5`>&&8+njT5 zlD9m%U}RH9m;1K-;SsvMb>}tk&4CrU@Rt{4zv<-{!C$;pxkO4l#Vylb3*@!Eg#OB; z1cKfmk!RJPUBk%l6IHr~%0J_Cd#cjj2k`l$%u7{rXqh+6HzWt~k4{;_@>1dH=JU zuAr)=fpmR-sA}qIW8lm+(=Brk5E3rXzbGsH{!MDQQukL)Or5igXqfg_Atk4Z;#57D z+E~Mb>Tqk~$oCy~iKZcqJo?DKDo{+M%!`N8UyhD8%phP%q&{>fLW`pd;@Ujxn> zU7?It{QNYviMDOi6NRzY=u%zv7Fa&@P+mQ}Z{PdFg##)s_bXd<9fNL${-}*_jL{Al z?K;6N)0sgRX%VkXd(z9Z=v@c<=*grkt<4=34D0kZa*dx|LPB!2^>8@ zY?`fXJBB%_ylJvE?~xUa_t_5KPDr4~yj^o!x&%A@t9E$Hwwn8Xo(1G~LN&LRkV7W) z)jflh#$Bm6-n5&-meR<&MjOeSoGa@8E2FIWiXN`U?WuRysi$*E66Y4*Y_e!QGi^3@ zbK7CN)pI2ou%F2_;j`9jlVgR%AEoM%(_@x9(YzV~IN2zQL~L;Ur3?xNRUDkD!m zqm9264hB)jHX1^(XC&c)4|u|`iuULRN@xCYgrtE!*mPkj0L zxErSuQh!rz+(bul-qY6; zRD(L1o8EyQro(R=Rv?r|;=Ll#;!*2KdMbB)86_FIedQ&Sla;MPrhVH-&-rHu|K95; zGJj@q{lNKr(2bQYwP`9(H)+YQ1`jvKO2dk_2^8KFa8ortp+c;Vw>5G2Z zA2fESWV$)wKB((CM^tOKmwjiWW>+`uxY`(AGOR~Ss9&eY+#Jvc$3~cy9tn=(WQEsY zxn!_}GFJ6Fia-Y~d!iAJA6i`o0;$m7D6BWCUxvK88LsIpP8p>e0)|rz6($1Z!+Zh!d*^bj1k~E?tNE+_N_blMRd6 zJsMTtFAgT;vrYdGb#e86ktlrv~{_^(9T;aLu-cvVLjJ)Tk z-7FreXtxvQ9+muj6cf6pqQWb?x4qF@=OcA5E$RB)gVjg`o|XL6bgufy=*ow?r<#_x zB;b^y`{Z57ZU+nZQV|P-t7)qq+7mmQ_F3nu znLG$!55=F$=OpdW_I~c9(4EkKTr;v{_U@f759ad>wMeJ>%rv+ArNjGHv>l$n`$ysDcdG6{up>NCCTRPF-BM&r|w_9|M=+iiWab(IUl+hIS(1VSRG=U#;N!_pM#HQ~kJ_&>@cVn-O8KVKG+CNEUEw6Ewi!)%7H>TruulD-($^IA}xm)dA zdgI$NEu#2Pw@G9{GjY6o%3^RwB5V_3HsY!TrS;J@{gvZQYaaPjyF+VX#h)Z+O5P*1 zb?=cN&Py4v99%~4&{6I;_t`^-e8k%K8J6zFP_ueHB#qa?)h0t|h_JU!Chd6_&uyJq z==qj*uK#lOL{0B%x>xFo0=}`l?A&l<<8=6uXYcQh-zr=ET&3QcBk5;r@bY6&&3QZThF8x|IC_wLwSRYT-?BDzWTv=; zXHmCAjMgyrCcq*kqnpzgOFrj?fkw46ucnVJOpmR+I`#wxTTsgB3Y&Y7rn6_h|5>+G z|NEJf2iMcq+HT$gb>Q-fMXxIwElK=KzukK{7m_90Vd2xUxZK;OV$|DGN!B0K#%0RN zRz0_huJ%4#Jr3#aeV+|~rmz^d<($s?@m7z*q3OcZL+n*@_5MOr#qf3KS`7d1ecYdg zDiY960;FONAWqUS%9gquOAoH(QVW5J8SEwJp^z0c?^7dXAm)6R}2pNxxM zMsCxVD=gea4cSWF&cVDy@v_6Jnr79pGMFL2Z-mCNwii&`MR0R?s z^d=nlfQ?mdhbt(iPSxl?-Khr=-H1{8(Rq7{in~;QHiH}sUWhkes0i5(F8FGN* zDk4}CHvk2@>3B>PS_86vZ8;}pC5I6YTBYY4r%x5Ed~58F2bF=efD^?heuQ7i1I6b% zSsN0G3D;kWh3IM4nPH{>MA@DP2@dg7jgNUL<2;Jd!;N(r&vr%}ZC{&vhXTg#+)I1P3Fk4yo#z4_}8^xG^|ZVo4WapZw<>QpT8BwyF)aDuNNxqX}`y6VfDjMRFAhcU?-4#IewjBASc;N~@+a?a`MZ=`^3k7TIB(lDqxZ`yJGJmkcid3b7lDjg600}bkE3BHeV zwl}Xp4`Aiq{45ITJjIUz4tPxTyaoGmo^Dl)I!IBagFMUXZ7Fi5djt0-8V>rrzD3#=9gsU5%M~ly02IcMsbd zM*QfNK;gq%I&WpN1j4S)sJtfzl>u>RV$K?*39Jv8t*0Uh*pgUbfwY*GOQ^MuZ>-7v z=Zx?LoV)~ZOiY@1?r2~DLdPFqHDw`4f#vky(7RLkog4tO@7>cT&*k{a1r4`#rcCaq z`TZD|6!q58^y&-r;uu7;GldpE6t0LPudZ4;j(B05-1l z(gZBo{%4Nm<-r8y3t!ni33uW?ay$wGiLy=f+I0#chVN`$Vy^at7Rww60 zjW`KWNb0C;OAT@kL`EpiudJw;cn_6wmd^|zNr(sYZ{z~04uo^UhG>7F0JlJs9HYLWf3wD@c|c*-55B)pSQFJ8M6dB z@@DiSiANGWQqhaAmzWj)i-MnO%0wR~kVp#1oMMSvC}fM9!X2v({=GJT7~B^*7f zwg13AW)?J6{L4yxh>H_IWo)xU^a*H`z*k_f?pHCWZ#7_}ccmFsyHMV7d zi9yLy21vC0qjGlTRu*!++{Q5Qi(S}7LpJBm>!0_KTrQ#LdyvDIebFu6z+nA|8T{+% zhx|ca5AQOb!e)9<*HAkpu6@=gP;?JqA4A_9+J^DyKQdPRD=snU2}pnlXYSY2e~KX# z5BHl1A@NuO7`GStx`R&j>k=%rZR z`g+Sh=3+;GE@qZ&1|5Sy?d-$QZU|X}8rFfc4~CUZ1IqUWraf}_K@Wn%k9ry8aqB=H z_sk<8uHFR`DHTgSXs#xXoC|NPw}5Yl@h}emxMhNoep_{Xbg+QJwH!h$^b}A$S%s_1=;kc4M-rM3Ttq87* z#>sG5roj=Hk9i6Pghra>fo?Vh6rbsV&r<|j>(tQzuM!Z%J?<~Rbk-Jx2~-$cYeIVb z8#0X6bVeC(lD``;kYjfT9Zk(K=hJOeFyhSe1$s|f4mb~WvCBNtVS-?F&3LaufBefa zRS>7%Uk-4ZiRUnIYr-Jz<=3dG|3Kj<1N#^GK-@cTH{m}h;g$fLh0=}-`$fVa_GJcW z39N(t7rw#^%+Z$OM+H(B6P<3uM+2C!eD>gyagPoAu9U{1L1~uZ+Q~M7iYkng#`W;4 z-9#FkNwx>1c$tXbRHn4-qnzS)8Vsum7eR4d7nC?XdDAKw=WHj|oc&l#XWhrQ`UWyt zY;ua~$&`CKX?#pjeK!OznWFH9NNf-0FC=hNF{l}rIGD(IXPbqrT?9*FjHDQ@3TYVt zxNr3h$3LiNGQs(o5caBYjJ?o!_%d&~7vm|*4maZ=G=j;fVfVDm)U5Doya;44AeNx6 z0L4b`nf~+1Hn4WPPr*vO#A{|viLiY~UW!?gKk8LZ?~ZFxfFk1>6!tqvT_RSvf+$1B zs#ia~jvtJcYAG9DG4#T}PUmIpgUR&>iJ>~H&23~SlRY3Y@YQ=68#*E4M=O@;gs-;P zeitsOzx2V@)H4_z3Tdo0mdv}1H^?9oNmbME3SdpMGb7U&Bdzj9rj1)c!yf^oj*{gA z!hp2rKyNkNY&aR_Py4A=`Dh1Dq~Ra`KQ(9ztnKm!Sws~DN%c|Acp?t?l(M6OeCm_K z42lxp%)vJL1g|bQKP`wyY~eKOTH;RY|1{+aY9kS&{x?&` zcgjHk2P9?gXR1K3fro%zhA-kkA~&;GAVyZ#J3XLkL+bm-WSX|X49T*;)D{Yu_QrEj zy*QsKIizAxlc9-wpYd)Y|J^)RP)cBFSSiq25xDp9r_Z!a;_?DVY?>#+;3?>YxuQC* zM5y@O;~6@Ys7L>V4B(_PN{?(}b5mYQ)?gW|lwG?4ZG9oksDcSQYqLn7RiypsDwF2S zS*RVfPNY<>10RXqRtCX)2)qz-OFFxac#wkr?#pNjxf|8Y?oa6i?%W9HQ(0x;#3^3} zW1zC`h7n(T;ZcMRDlVna#%~q_@VFAM;1xZNWS+~PJ4`$ai_RFbG|wlzJ!cfSJa8D) z|EYF=@?PxnlL_b1wDXe8{P&K&NiUu&_7uG*cra3p>GYcD<9AJgkFT`TR<^$9a{!6+ zy6vZ;XJAzTJi1oYyjP*e_cc*h=M(ZrrzAz-QCj5)?u4MxNTAUBm?!Pi z3j29)0(KwFOiZ)zlP4x4M1w%lB;xJ&;&i>Kz=K|z(&^os#(mloV+wj9TX?F0r)bI- z%`f=yDrg7A-&AExa?%Ox_hHYI!Z32Wr6!nQdSxyWU&nACHTPp{H%ylGW>eMv@{|@? z{Kk~kKw)OhN zCz>}EbB|IEg8&kjh8ob*)bG1XczRULkDX1B^j|;Orhf#VRmkA4wAaKB^zG z;AHI>CIOQ=VOK()1rT4uuXgeNgSHPLg2lhaF*ik#Oqbod_}S-e*XS%s1J4Zn+gt>#05Y5^EZuEWFB0(=KRj0pPvKwbWnfqQ^hB9xde^W z2KgJ_>NB38Gik>+;?F6If{#jVdt}}x4`2eFKs3^U@?aeqMAkKkHIT_cI8%huL6;{RTTnsS$7y^8ss5U+s zKA$C^IJ8jDSl+D&{#qz*v^?xPQ(Up#A4+uIG~@ne?@?P*{g^27=ew*Qus#4Nw|;=> zmL>LN3R#5i=cCWJ;Hk!5LV?oQcXYnK0dIZLT%qmQp{{{b=S^9}uYVQ{U)aNpJEqWT zI5j8Le%TCi_iObRo=eb(+KsB^nh#4BY~Sih`AI}|)FeV1yP;|iz!k@s6-ZC^2}+D` zY~8hI03Nf-zlLDah?v&Xw0r{byZRYRRE z*!3iEXEyDbgOXT3zm;vz!`*rfr-qvV1N&fh`DO*Jo5+weDrjX$F~nGGXrWp%$i)5A z^3A=7=T`;|cTUY%q&>)~lAC>$OhUDoXlo{WXk+dTx4u2Xfy-&)wtSfcUQ_FQ%etrV zu`WCkyrc-Wei|2@xx3^TA5qo+xN7-vfF9P5(`*RC@e#yRJ9rAUkTDKiL1+xTFa|jw zV8OfW2F+am9d3!?5wEBGRZTrVP=f}?_1gJZtvUC-0#Lgbca&N1ytgAKAyZq~YHD3g>Ku92^&x?`5*^ zE{mf22Z+Du8yg?g2CVJpCQ1}$n-OR^vkn-+a}Z(Rf9$^UX$%uWqD zplOo-2!?0Zf|%kku?KsV(o8>XZXSHs87E(vR)m>osX%p5Kbat{>0EJTfJc*M&*&`qyRJMTlK=8T)5*WC z_{;-?X5w?>ZSGx;s=Y}W^hk(9g)%%z1 zsIRK&qH+oVF7N5Czgp-8eF+(|8 zhiK$43w^8~?-pMboJoAn0JF0)003T9a5C{7T;vBUI>JMIY^aguH>9O%>a0AeszMou zsYbW)75JMBF6f5uXT3k<7sUROM;>j#yDHZZg;xoL$U|I#<;{_PJ1_)MSS9aWq`Q|O zbhGb~>BS~JK3tmK5r_I#AYD4kceT`bRxgo{iXKAtn@l9s1zi-5%1XBYe&_k7T!_Mg z=VEAz5|K{c82h7j-YuJ30KI%ag4XK6xA~}ItDfv)M0T;KjsL8za`Ym`-~~fcSTIM+ z%t-9rF;$fO;N;=@@kC%%8QKprnR+mBoGhOmNlCn~ZRrW!gPCLxP{CzE{D)6cy07UM zjBl|Cepx#{8j$EEp1kTxfAA`sN4S-qlp!RX6M1c!+6C`_^Y9%+PM_C{2F&N;=-qxM z%le_}Qj3_lHUcNjiG3&tCi$29P);HE=E#sbpz9T`srCH~QERdhvL;Ur{aD`L9YufCw9!)T(z6ScM6@iUGM?{* zq#a5^Wo~1SE)GW-<9%bJ{}&Rg%`+hegcN#Xp~^aA(KOzaoZdpZ9DeK4m6+vh|TStgO3yVwAOzRX*zL+R1yIlb+@~Qb7wf(tlG&Qo`!nS zY-do&>96-0_DKYi_Xu|F&{Wncj9lRo*-YX(q>0*)!LnIu$uvKp4@!ELm9KvAV4 zJV8~c9Z>St!*=t?ru?kZ#KJhoWqq2tmm9~oacgBFrm)W!+{hnBL;<@53Y*}FI1YeV z=3aPrIiu8O#8uR*s&{nfoy5-xM6U|OYyu<7u`;cXpbWeGoI=Ziy{ceNP+xvFgRr;$cY zq)a0*J{iqonW6t4N0MZ!`NgJe7jVE-l9pjm-S|(m;==k|Jf$aE5}xnI9^pgB|q5=3E04fy^dIc8L9Ks{}lQ zz_eCXG>OR(=@)NSqpgCUM~U0s6~e#h^+!JcR|K#Tdt=+W9=|qp$XcbPKZ3R75)Akl^`?G@* zJkrIXN(aCR;OIr=9=D*0wb6~HC;_vk-h;hT8|~^(wQ)wT8f#nndf9PY(W>pM_>7G8 zS-|rL+Im^oK7}f&5JwWH*1G9)?Q1WAl)~8<3xO0=vzU^n@@!|Xb@h~-oG!6S4VXAxvsAEmpbnvEa^ZL&bALoGv&q)*vq zGUj&;p(pgD_DEBf%H*mB_{1N#)s6Z!kx74aV|CMECVSSp5S0GDs3V=;fn5Ayz$5fP zRr5RsT!rz?wHCbyVd75etGMQcfrd)29FUXxv**slYCe8mFdg?VtWkUBKC{8&TpCGJ zgKx@rk8gTaNo`08m^Iufbh0UYft{=VBqDlH-FBM(T&46i&5b?j!QIc=cb&Nq(d-f| zD34e`DlA{<_!D@RA`nkFs3p135LVKBwZld7Iu*gU6E%vgj^3n_<$=qtOQ}a4u4;m! z{Zr`Z-E43j*WlX4cd|_eOg#uabTRY_J=`6NrI6Jw>`j;LiLnT;*lxexhAh3E2?958 z0hgJR(5mfc!P}Vej5;fc9`tpmob~Uhk+TgM$pGDUp)kEg1iBPQxTcgZPoED;n@P`< zZVx78BDMp{ZM1`O1U5^WdlAjV+Kq?nl0AYB3u)_?!(_C<{SbFG_0>$LT<$tQ)a%P|#*mlOZqxXU zp%MRUNnqDr7W-B_5O-@vNHw zsaH-0;{nbHlv?`r`~l@C;mOAY2<7J#C+d)S)+t6nh!5mdFyHG*c5=VtXACM&Pf&iD zeX`D&9Era7Cvq-b00Bx5*~crmjR7{~7|k65%F#(JtTX52B#LX63;%5iUxJemBtEKY z8)BAx-M0vxZF zS^kOAeSxugc*;F%y#w4cG0AB0$2AAfKooxY%JKqn>Lb|6vX@SuEJgJqlJ)t{CMx6H zqw*9y{cm{7mgmJD)rm-y0;ou#MkwAK2tzIU6ZD7#Uoim6TfCZvQE(f+GJ|CK9&^

      z8Deu=J42D`xlnx+4S4 z?|X4T6$ex&M#cfTIODT=crL)a?$%qaKe&Sxtl0fTlZ}m;m{Bkb3bq1y0L4{8dx$U* z+f8CZaVn`h*syVeTe5zZtlko{&W%F}RfEU%<4t8JEfQSNwm^kmPgA!Ejsu&EJh!E@!i+gZMqq0sJ}jr9*@>YPvq z9*5MArL&5T-jL@#Z$B5TN=^Dv+cNG=lb`!{z*S5eQaOF`)G0;|{BHy(9F=Daq~oS) z9-LMTa;SQd;(ZLD*IkDn%-b#X=<+{T)S~Sm0tKx;l#Xsd+OGd1tt#o5yLYB(Ya-_q z7G1w~0qS+iO1D4evRkP}XNS~_8?9=QXQ*ZrE}!CYqXye^CHFS7JH(bb=1z#xF!7q_ z4Gk?fXL{27fhi@ICWv4D!vM#}{Rzt9WQu-@ODP-~+f28(Z9db20Wz1RqQKnIJ!v(DkhVaOU5FiF5f5}g?)pDpW0jA zzefP5P!EmiZ*V-hbSnQo^_0j>8io!&4$IhcKhfUSLjVB&_Oxub@lM%0*E^R?x#r_2 z2sVbkzaw0TsM@c%_EMcj^wh2HD?$QfPd~pUc8pE&TQKfYljupvOqVsrLQlhrs-Eu0 zqSoT`{IOSBQjg%iO`>Jom^UqK%_n*DW)wCF+*P|FK~YAsWNrPU zne>;YVOV<3qPRmW@sx#)v&q%@b72nbKmfYl3f_>vSkCQoQf(Mvwhs>>=n_%z6AKqW z;9zs>&%hv*qDSYU2e!=^N%n@E7xWj3<4*0pkU=P#()Us$zuTE9MMG>)p;2m0qy|=m2gb-W*-9Khs>2I!ECFdTDM)7I+ z+O`+Is~dd3V{+YGbSS~xaEm`h%Uap41jP45WFOOmJV)sxUWs;OaCDnn?0)LU;e5{+>1G?`N%o_=%6pOu}^?z;ZcoC~ZR;(ZD;Fj37_i_Qzs%vzRzX<9FPltDf1? zMTpZ6qTw(RV`%RWs}O{L&Yg4IH@uIA%`BvzIK8-QfkmP+M*mSdBB&&6Kif$xSGj%?DFb^9*Lr(G=i0!Y^7BK~V{>QX=vd1gMf@!LfT27EOc&VtL^D6hOK#y5+k zC#sP>{l|ugeY~=!0`1@<+4kX&;&0T%a-zK6fbVhOTHP$eO08cMM4XcR^uyAMF%yxe zHWrSGG@@Aec8AUw2LfI;v7w?TdL(c7GjZ*cadF>vx8a6MR>0eFUQ)pr>^Gx5_3kV5=lIYE zatUe)zxh^-{~bwx)1mxZgK{pnq0G(xok269`@!f*P=5T!<>OSah=%2CldjVv-K*?f z)X2)k&u`9xllbeuX{y`^)o6sB8a52|v;|uQDj%Ks1-CxA%*BO)L;H%(idBo(TsrC9 zJ>&ZbRw%a?4nS%CS*ZY8pNJkcG(A5;jkE%NIplM<4S1YtzIC^XDGc3+Dy8JSSi;;p zSH@qC$wYf=?Qj2Es^VUTLrY5jFslEZq=4=x2DOujUzDop9nja-DrI00$>ii;4*d9k zvDBN`Y0Z7sf9I=*@#qJrsoVd~Rvm#1s)y1Od)@B$xYP?jwAIsjc)t!W$ zJaZNtkpI5zG9a11+h*(48Q>MS696rFf3_~jLUuzru$lQkrt|Cho9Udpryg5|Q~&s= z5!}Gi$~b6fK|?pJYTda=`QMJK)p*ZmO8j>H?|sE#C3>>LuF}Aib|iohywQrvSjtM! z=OJb$GjB`VF&qn&_j8{yy35T*TH)@xSXwChB^eF;;z0Gsdl(fLG{@gR$c?$`GRw*t zpoxtet{?4Y>{=yjeZRFt{DG_H3p>iU)pBCR<8uI_6sO0TIDg zovH+=_qC*y!v`fJ8{h}W6SApy3JdsRN)q1tT~vLIB$ab)|9Vat8-mcWzb9sY<+8N< zV~Q6cuOP~C1!85dI$D8bQI1$?K|;RD&fCUs})(4y%fdzGnY;nL4=GG=d#B?TgxR`0_~)fgp691ixEX-}3z2NG#6?>q;w-1b%uURM^yWq|hCiID%*aV7yl4kE zBO*4Fo1Ga+=S{#0m}VX#98N)NHGinGwh1m5WR-3vG6mK#>wuiPVGdxx#L$hn?~`Ka_I?vd)%9x=S-y@?`0a*H=zP zO6`OCua=twEWPW=+ZGx>5+aV^(-%zcu$?k%!_1R@eWK$ZNe1t4c<5gHzGd8w_@SuO z0o7N;XI8z!LTBZ^l$r{9nd?)|++`zm*}cR$bFN>3*xw{1gQUl} zaV|v?@xA}j=|{=I$wDZ@fIEi?b6mDnA}VXeyv2N%V0dZAy7PxT!XGMp-&x^4KBo|U8FI%8XNmJ=I`^T1 z(%0pT9V?+i5yKLYRtUMG8Gh-5(iE)hX?ENo$)o?l+sR>!CIXWqvF$M(l&JtCGg$7PT4=RrqYso zkx0JKn>k14^0E*SW5mUr^EpM;Z%@e|yd<%6*=3&@iVVpZmZccViSbAx0LvdbGc+<` z8T@~J`A;+@6^^9L_P(}x>>ute3wlpUN0vKHNZ>Huf`_YN^h=qs@(B!+%_$*wWK*jw znB_G2B%S-;*0}8QUj{!}_;fuX-~hfZzxUzQW!a@4M~6orXiS*t`)&54gJ@PCY;O+? zJu$L)9ZD(p?7;W?di9W=d0=vroWGRh8Jf~Oqf7MtYKq!pL3Tg4)GUG?EKwak=%Ev5 zk$e1OdoNv9r+8S(-Kj^RSHPZLiRZ%&sfwwlpg!>^w=KPC-zct;VuRr-8r)q5qW+c1 zM+lfI?~}cWpFh)-tZ?c|2HH#-<>4&XN_I88GteEk#a|+*?2M@b-z`yp)h+&G$^6%_=OI00@X{+DJ8b3U!n9m-=bimllf3ZV7j=q3CYk8fX;+lsGc6Q5gqvqMH zia*%CVabjUO7^Bw`yO`n#r1q!9E%dXW>T#6i^sUqRl7+?XTnHS6tmLFR54AhFdHvS zyDJBisSOP1-2X*y@x@kKy8G8mjBI(*tmjgz&t0kQ@~zk^r#_5loBM!`B9B<-ufzR= zP1eKR%_0+V5wBMn0|EO8!-d{(R_t@`jIM;~{(z$gRcHYj!MUrWme%&XQPkJSAFtogSzcb9xWFFpM?iJ3Ro z$djs6(X+wLD+{TJ`5c{OCGOlDbw8Zyqg)E+u5*TWG@9m^t_Xhr7QROj;J%zG_)blw0c!T zSHKP1V*&Rv{VC1bPw}3XIGX2lmxOd*ytDAl-(gdZ&yPqHRJIymRm`X_b4zSva{jE> zWx(_f{b83)*+=KcyD%6lyM-{r?3w)!Nga;&?hS=`Pp26hjVk_x9L^1Dh{n-P=Y57; zS}hgO7Y^^`|5CHjbO8S@Q2mr5o>U(p_{r^AYrS*7L4ecNhl`3=9~~E)tXv4RUb4im zq2|6p(?a>HC!vUXO~H?dB$!V_&-F(I%x#p&*|*$1ch3zapo|alv$xurxy>)l$ca`h zY}9MyYN*V;?VUwdfB-6>~lnh7}LAdyOZaP%&LapFWhYAj4y%?_geP%xz7N{O4@e zFQo7FjSpcudb%6dD2EJ#+<8O>Y<})Hi;70+-fY7N*xuc7d27n`V^&Aov{%4i=$uY! z@0#hnbyC&7u*fw|ZS7P!o3Anoo9;74f$bIYHWls-?So!9I!p^vQ(x+ms*(cqhdO(* zaTQ6kl`C=Xa)n%n1tRq+qDX@jn}u1Hq*CW{9k#%EO@jsn>CtGNzT_&Ail_5~b%idj z3zBKl#rxjBp7jk{;Ri7Z=JKE6i+hD<$^TG-n=Un}(mYzxP0l8gcV; zJQH)O#FSA-=GVvi7(F$VLp&mCkER30_C%50s88uldY>!((8zr~)A22M+U?c=53^~K zQSQZZo2eUq4GjZ5v?BT(6;iVq5`k_DUznO!i{Rb0k#mnVSh{z(N!acW^mLC}3`~L_ zjK8*sx=Chyb4e~3q0wbUYpqI=$A z#MM0!^!T8`G~_;rwU|Rhr5tEU_v%a>Z|1KE?z{;QkD9yW^7r9I^9w1XMxW7?-CLg> z`>^B8g~!algOmvLjQeEE@7Rb?{_kR#UX0cMn?cC`*D;tNbSOs`yms^Q!^smV=)PMJ k_OED?6a8!ad`vkiP8;Pn`4iAcpE?Cq(^V~2wtV=%029V!8~^|S From 18f00b44195f00ceb6ec730d9da51de80583116a Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Tue, 22 Mar 2022 03:56:25 +0800 Subject: [PATCH 143/455] Modify ModelClassDiagram.png to fix blank background --- docs/images/ModelClassDiagram.png | Bin 27123 -> 23564 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/ModelClassDiagram.png b/docs/images/ModelClassDiagram.png index 26e3a16034eec504c176275ba9904967e2c2f36e..d6e7a89dc0dad6aa7aae01e99013035a3944f6e7 100644 GIT binary patch literal 23564 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 AT>t<8 From 89a3617ac5d895ae13afede9f1478f1690f2eb54 Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Tue, 22 Mar 2022 12:05:18 +0800 Subject: [PATCH 144/455] Add additional field in PPP --- docs/team/aalghrairy.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/team/aalghrairy.md b/docs/team/aalghrairy.md index d1d1d5df3ab..18707455424 100644 --- a/docs/team/aalghrairy.md +++ b/docs/team/aalghrairy.md @@ -46,6 +46,7 @@ https://nus-cs2103-ay2122s2.github.io/tp-dashboard/?search=aalghrairy&breakdown= * [#76](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/76) * **Contributions beyond the project team:** * Evidence of helping others: - * [#197](https://github.com/nus-cs2103-AY2122S2/forum/issues/197#event-6270770965) + * [#197](https://github.com/nus-cs2103-AY2122S2/forum/issues/197) + * [#222](https://github.com/nus-cs2103-AY2122S2/forum/issues/222) * Evidence of technical leadership * _to be added soon_ From 480ab6aa6299bd4839c0f461b3d56d978de8fd5b Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Tue, 22 Mar 2022 12:17:34 +0800 Subject: [PATCH 145/455] Add additional field in individual PPP --- docs/team/aalghrairy.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/team/aalghrairy.md b/docs/team/aalghrairy.md index 18707455424..27c99c55383 100644 --- a/docs/team/aalghrairy.md +++ b/docs/team/aalghrairy.md @@ -47,6 +47,7 @@ https://nus-cs2103-ay2122s2.github.io/tp-dashboard/?search=aalghrairy&breakdown= * **Contributions beyond the project team:** * Evidence of helping others: * [#197](https://github.com/nus-cs2103-AY2122S2/forum/issues/197) + * [#221](https://github.com/nus-cs2103-AY2122S2/forum/issues/221) * [#222](https://github.com/nus-cs2103-AY2122S2/forum/issues/222) * Evidence of technical leadership * _to be added soon_ From 755be23f53440e16e1b572652fd9e7dce4244c2d Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Tue, 22 Mar 2022 12:22:29 +0800 Subject: [PATCH 146/455] Modify fields in documentation --- docs/team/aalghrairy.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/team/aalghrairy.md b/docs/team/aalghrairy.md index 27c99c55383..18707455424 100644 --- a/docs/team/aalghrairy.md +++ b/docs/team/aalghrairy.md @@ -47,7 +47,6 @@ https://nus-cs2103-ay2122s2.github.io/tp-dashboard/?search=aalghrairy&breakdown= * **Contributions beyond the project team:** * Evidence of helping others: * [#197](https://github.com/nus-cs2103-AY2122S2/forum/issues/197) - * [#221](https://github.com/nus-cs2103-AY2122S2/forum/issues/221) * [#222](https://github.com/nus-cs2103-AY2122S2/forum/issues/222) * Evidence of technical leadership * _to be added soon_ From ebaefce05481d885f7527e0758866d1aa49ea58c Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Tue, 22 Mar 2022 21:38:39 +0800 Subject: [PATCH 147/455] Implements the feature to create a movable circle with certain text based on player names --- src/main/java/seedu/address/MainApp.java | 3 +- src/main/java/seedu/address/logic/Logic.java | 3 + .../seedu/address/logic/LogicManager.java | 5 + .../commands/strategy/AddPlayerCommand.java | 67 ++++++++++ .../logic/parser/AddressBookParser.java | 5 + .../strategy/AddPlayerCommandParser.java | 29 +++++ src/main/java/seedu/address/model/Model.java | 35 ++++++ .../seedu/address/model/ModelManager.java | 70 ++++++++++- .../address/model/ReadOnlyStrategyBoard.java | 14 +++ .../seedu/address/model/StrategyBoard.java | 107 ++++++++++++++++ .../model/strategy/UniquePlayerList.java | 116 ++++++++++++++++++ .../exceptions/DuplicatePlayerException.java | 10 ++ .../exceptions/PlayerNotFoundException.java | 7 ++ .../java/seedu/address/ui/MainWindow.java | 2 +- .../java/seedu/address/ui/StrategyPanel.java | 81 ++++++++---- src/main/resources/view/StrategyPanel.fxml | 7 +- 16 files changed, 529 insertions(+), 32 deletions(-) create mode 100644 src/main/java/seedu/address/logic/commands/strategy/AddPlayerCommand.java create mode 100644 src/main/java/seedu/address/logic/parser/strategy/AddPlayerCommandParser.java create mode 100644 src/main/java/seedu/address/model/ReadOnlyStrategyBoard.java create mode 100644 src/main/java/seedu/address/model/StrategyBoard.java create mode 100644 src/main/java/seedu/address/model/strategy/UniquePlayerList.java create mode 100644 src/main/java/seedu/address/model/strategy/exceptions/DuplicatePlayerException.java create mode 100644 src/main/java/seedu/address/model/strategy/exceptions/PlayerNotFoundException.java diff --git a/src/main/java/seedu/address/MainApp.java b/src/main/java/seedu/address/MainApp.java index 69fa0628446..e8c2003fbe7 100644 --- a/src/main/java/seedu/address/MainApp.java +++ b/src/main/java/seedu/address/MainApp.java @@ -21,6 +21,7 @@ import seedu.address.model.ReadOnlyAddressBook; import seedu.address.model.ReadOnlyTaskBook; import seedu.address.model.ReadOnlyUserPrefs; +import seedu.address.model.StrategyBoard; import seedu.address.model.TaskBook; import seedu.address.model.UserPrefs; import seedu.address.model.util.SampleDataUtil; @@ -109,7 +110,7 @@ private Model initModelManager(Storage storage, ReadOnlyUserPrefs userPrefs) { logger.warning("Problem while reading from the file. Will be starting with an empty TaskBook"); initialTaskData = new TaskBook(); } - return new ModelManager(initialAddressData, initialTaskData, userPrefs); + return new ModelManager(initialAddressData, initialTaskData, new StrategyBoard(), userPrefs); } private void initLogging(Config config) { diff --git a/src/main/java/seedu/address/logic/Logic.java b/src/main/java/seedu/address/logic/Logic.java index 5e1f29acc2b..7d86b1dd07c 100644 --- a/src/main/java/seedu/address/logic/Logic.java +++ b/src/main/java/seedu/address/logic/Logic.java @@ -37,6 +37,9 @@ public interface Logic { /** Returns an unmodifiable view of the filtered list of tasks */ ObservableList getFilteredTaskList(); + /** Returns an unmodifiable view of the filtered list of players */ + ObservableList getFilteredPlayerList(); + /** * Returns the user prefs' address book file path. */ diff --git a/src/main/java/seedu/address/logic/LogicManager.java b/src/main/java/seedu/address/logic/LogicManager.java index fac02e54b07..e5f17d430a0 100644 --- a/src/main/java/seedu/address/logic/LogicManager.java +++ b/src/main/java/seedu/address/logic/LogicManager.java @@ -71,6 +71,11 @@ public ObservableList getFilteredTaskList() { return model.getFilteredTaskList(); } + @Override + public ObservableList getFilteredPlayerList() { + return model.getFilteredPlayerList(); + } + @Override public Path getAddressBookFilePath() { return model.getAddressBookFilePath(); diff --git a/src/main/java/seedu/address/logic/commands/strategy/AddPlayerCommand.java b/src/main/java/seedu/address/logic/commands/strategy/AddPlayerCommand.java new file mode 100644 index 00000000000..e585962bacd --- /dev/null +++ b/src/main/java/seedu/address/logic/commands/strategy/AddPlayerCommand.java @@ -0,0 +1,67 @@ +package seedu.address.logic.commands.strategy; + +import static java.util.Objects.requireNonNull; +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; + +import seedu.address.logic.commands.Command; +import seedu.address.logic.commands.CommandResult; +import seedu.address.logic.commands.exceptions.CommandException; +import seedu.address.logic.commands.notecommands.AddMiscCommand; +import seedu.address.logic.parser.exceptions.ParseException; +import seedu.address.model.Model; + +/** + * Adds a player in the strategy panel + */ +public class AddPlayerCommand extends Command { + public static final String COMMAND_WORD = "add-player"; + + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Add a player in the strategy panel. " + + "Parameters: " + + "PLAYER_NAME (must be non-empty and not more than 50 characters)\n" + + "Example: " + COMMAND_WORD + " " + + "Lionel Messi"; + + public static final String MESSAGE_NOT_IMPLEMENTED_YET = + "AddPlayer command not implemented yet"; + + public static final String MESSAGE_SUCCESS = "New player added: %1$s"; + public static final String MESSAGE_DUPLICATE_PLAYER = "This player already exists in the PlayerList"; + + + private final String playerName; + + /** + * @param playerName the name of the player to be added + */ + public AddPlayerCommand(String playerName) { + requireAllNonNull(playerName); + this.playerName = playerName; + } + + @Override + public CommandResult execute(Model model) throws CommandException { + if (playerName.replace("/s", "").isEmpty()) { + throw new CommandException( + String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddPlayerCommand.MESSAGE_USAGE)); + } + requireNonNull(model); + + if (model.hasPlayer(playerName)) { + throw new CommandException(MESSAGE_DUPLICATE_PLAYER); + } + + model.addPlayer(playerName); + return new CommandResult(String.format(MESSAGE_SUCCESS, playerName)); + } + + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof AddPlayerCommand // instanceof handles nulls + && (playerName.equals(((AddPlayerCommand) other).playerName))); + } +} diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index ed679e5d645..e0f0df40c5a 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -25,6 +25,7 @@ import seedu.address.logic.commands.notecommands.DeleteMiscCommand; import seedu.address.logic.commands.notecommands.DeleteStrengthCommand; import seedu.address.logic.commands.notecommands.DeleteWeaknessCommand; +import seedu.address.logic.commands.strategy.AddPlayerCommand; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.logic.parser.notecommandparsers.AddMiscCommandParser; import seedu.address.logic.parser.notecommandparsers.AddStrengthCommandParser; @@ -32,6 +33,7 @@ import seedu.address.logic.parser.notecommandparsers.DeleteMiscCommandParser; import seedu.address.logic.parser.notecommandparsers.DeleteStrengthCommandParser; import seedu.address.logic.parser.notecommandparsers.DeleteWeaknessCommandParser; +import seedu.address.logic.parser.strategy.AddPlayerCommandParser; /** * Parses user input. @@ -114,6 +116,9 @@ public Command parseCommand(String userInput) throws ParseException { case DeleteTagCommand.COMMAND_WORD: return new DeleteTagCommandParser().parse(arguments); + case AddPlayerCommand.COMMAND_WORD: + return new AddPlayerCommandParser().parse(arguments); + default: throw new ParseException(MESSAGE_UNKNOWN_COMMAND); } diff --git a/src/main/java/seedu/address/logic/parser/strategy/AddPlayerCommandParser.java b/src/main/java/seedu/address/logic/parser/strategy/AddPlayerCommandParser.java new file mode 100644 index 00000000000..d8a0bb0d43c --- /dev/null +++ b/src/main/java/seedu/address/logic/parser/strategy/AddPlayerCommandParser.java @@ -0,0 +1,29 @@ +package seedu.address.logic.parser.strategy; + +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; + +import seedu.address.logic.commands.exceptions.CommandException; +import seedu.address.logic.commands.strategy.AddPlayerCommand; +import seedu.address.logic.parser.Parser; +import seedu.address.logic.parser.exceptions.ParseException; + +/** + * Parses input arguments and creates a new AddPlayerCommand object + */ + +public class AddPlayerCommandParser implements Parser { + /** + * Parses the given {@code String} of arguments in the context of the {@code AddPlayerCommand} + * and returns an {@code AddPlayerCommand} object for execution. + * @throws ParseException if the user input does not conform the expected format + */ + public AddPlayerCommand parse(String args) throws ParseException { + try { + String[] splitArgs = args.trim().split("\\s+", 1); + return new AddPlayerCommand(splitArgs[0]); + } catch (IndexOutOfBoundsException pe) { + throw new ParseException( + String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddPlayerCommand.MESSAGE_USAGE), pe); + } + } +} diff --git a/src/main/java/seedu/address/model/Model.java b/src/main/java/seedu/address/model/Model.java index 0ba75e67044..75c2b21c4e3 100644 --- a/src/main/java/seedu/address/model/Model.java +++ b/src/main/java/seedu/address/model/Model.java @@ -15,6 +15,7 @@ public interface Model { /** {@code Predicate} that always evaluate to true */ Predicate PREDICATE_SHOW_ALL_PERSONS = unused -> true; Predicate PREDICATE_SHOW_ALL_TASKS = unused -> true; + Predicate PREDICATE_SHOW_ALL_PLAYERS = unused -> true; /** * Replaces user prefs data with the data in {@code userPrefs}. @@ -137,4 +138,38 @@ public interface Model { * @throws NullPointerException if {@code predicate} is null. */ void updateFilteredTaskList(Predicate predicate); + + /** + * Replaces strategy board data with the data in {@code strategy board}. + */ + void setStrategyBoard(ReadOnlyStrategyBoard strategyBoard); + + /** Returns the Strategy Board. **/ + ReadOnlyStrategyBoard getStrategyBoard(); + + /** + * Returns true if a player with the same identity as {@code player} exists in the strategy board. + */ + boolean hasPlayer(String player); + + /** + * Deletes the given player. + * The task must exist in the strategy board. + */ + void deletePlayer(String target); + + /** + * Adds the given player. + * {@code player} must not already exist in the strategy board. + */ + void addPlayer(String player); + + /** Returns an unmodifiable view of the filtered player list */ + ObservableList getFilteredPlayerList(); + + /** + * Updates the filter of the filtered player list to filter by the given {@code predicate}. + * @throws NullPointerException if {@code predicate} is null. + */ + void updateFilteredPlayerList(Predicate predicate); } diff --git a/src/main/java/seedu/address/model/ModelManager.java b/src/main/java/seedu/address/model/ModelManager.java index a53bed5dce0..8106f9d47a7 100644 --- a/src/main/java/seedu/address/model/ModelManager.java +++ b/src/main/java/seedu/address/model/ModelManager.java @@ -5,6 +5,7 @@ import java.nio.file.Path; import java.util.function.Predicate; +import java.util.logging.Level; import java.util.logging.Logger; import javafx.collections.ObservableList; @@ -22,27 +23,32 @@ public class ModelManager implements Model { private final AddressBook addressBook; private final TaskBook taskBook; + private final StrategyBoard strategyBoard; private final UserPrefs userPrefs; private final FilteredList filteredPersons; private final FilteredList filteredTasks; + private final FilteredList filteredPlayers; /** * Initializes a ModelManager with the given addressBook and userPrefs. */ - public ModelManager(ReadOnlyAddressBook addressBook, ReadOnlyTaskBook taskBook, ReadOnlyUserPrefs userPrefs) { + public ModelManager(ReadOnlyAddressBook addressBook, ReadOnlyTaskBook taskBook, + ReadOnlyStrategyBoard strategyBoard, ReadOnlyUserPrefs userPrefs) { requireAllNonNull(addressBook, taskBook, userPrefs); logger.fine("Initializing with address book: " + addressBook + " and user prefs " + userPrefs); this.addressBook = new AddressBook(addressBook); this.taskBook = new TaskBook(taskBook); + this.strategyBoard = new StrategyBoard(strategyBoard); this.userPrefs = new UserPrefs(userPrefs); filteredPersons = new FilteredList<>(this.addressBook.getPersonList()); filteredTasks = new FilteredList<>(this.taskBook.getTaskList()); + filteredPlayers = new FilteredList<>(this.strategyBoard.getPlayerList()); } public ModelManager() { - this(new AddressBook(), new TaskBook(), new UserPrefs()); + this(new AddressBook(), new TaskBook(), new StrategyBoard(), new UserPrefs()); } //=========== UserPrefs ================================================================================== @@ -197,6 +203,62 @@ public void updateFilteredTaskList(Predicate predicate) { filteredTasks.setPredicate(predicate); } + //=========== Strategy Board ================================================================================ + + @Override + public void setStrategyBoard(ReadOnlyStrategyBoard strategyBoard) { + this.strategyBoard.resetData(strategyBoard); + } + + @Override + public ReadOnlyStrategyBoard getStrategyBoard() { + return strategyBoard; + } + + @Override + public boolean hasPlayer(String player) { + requireNonNull(player); + return strategyBoard.hasPlayer(player); + } + + @Override + public void deletePlayer(String target) { + strategyBoard.removePlayer(target); + } + + @Override + public void addPlayer(String player) { + strategyBoard.addPlayer(player); + updateFilteredPlayerList(PREDICATE_SHOW_ALL_PLAYERS); + } + + /* + @Override + public void setPlayer(String target, editedTask) { + requireAllNonNull(target, editedTask); + + taskBook.setTask(target, editedTask); + } + */ + + //=========== Filtered Player List Accessors ============================================================= + + /** + * Returns an unmodifiable view of the list of {@code Player} backed by the internal list of + * {@code versionedStrategyBoard} + */ + @Override + public ObservableList getFilteredPlayerList() { + logger.log(Level.INFO, "size: {0}", new Object[]{filteredPlayers.size()}); + return filteredPlayers; + } + + @Override + public void updateFilteredPlayerList(Predicate predicate) { + requireNonNull(predicate); + filteredPlayers.setPredicate(predicate); + } + @Override public boolean equals(Object obj) { // short circuit if same object @@ -215,7 +277,9 @@ public boolean equals(Object obj) { && userPrefs.equals(other.userPrefs) && filteredPersons.equals(other.filteredPersons) && taskBook.equals(other.taskBook) - && filteredTasks.equals(other.filteredTasks); + && filteredTasks.equals(other.filteredTasks) + && strategyBoard.equals(other.strategyBoard) + && filteredPlayers.equals(other.filteredPlayers); } } diff --git a/src/main/java/seedu/address/model/ReadOnlyStrategyBoard.java b/src/main/java/seedu/address/model/ReadOnlyStrategyBoard.java new file mode 100644 index 00000000000..03106c09784 --- /dev/null +++ b/src/main/java/seedu/address/model/ReadOnlyStrategyBoard.java @@ -0,0 +1,14 @@ +package seedu.address.model; + +import javafx.collections.ObservableList; + +/** + * Unmodifiable view of a strategy board + */ +public interface ReadOnlyStrategyBoard { + /** + * Returns an unmodifiable view of the player list. + * This list will not contain any duplicate players. + */ + ObservableList getPlayerList(); +} diff --git a/src/main/java/seedu/address/model/StrategyBoard.java b/src/main/java/seedu/address/model/StrategyBoard.java new file mode 100644 index 00000000000..ac9ae29f094 --- /dev/null +++ b/src/main/java/seedu/address/model/StrategyBoard.java @@ -0,0 +1,107 @@ +package seedu.address.model; + +import static java.util.Objects.requireNonNull; + +import java.util.List; +import java.util.logging.Level; +import java.util.logging.Logger; + +import javafx.collections.ObservableList; +import seedu.address.MainApp; +import seedu.address.commons.core.LogsCenter; +import seedu.address.model.strategy.UniquePlayerList; + +/** + * Wraps all data at the strategy-board level + * Duplicates are not allowed (by .equals comparison) + */ +public class StrategyBoard implements ReadOnlyStrategyBoard { + private static final Logger logger = LogsCenter.getLogger(MainApp.class); + private final UniquePlayerList players; + /* + * The 'unusual' code block below is a non-static initialization block, sometimes used to avoid duplication + * between constructors. See https://docs.oracle.com/javase/tutorial/java/javaOO/initial.html + * + * Note that non-static init blocks are not recommended to use. There are other ways to avoid duplication + * among constructors. + */ + { + players = new UniquePlayerList(); + } + + public StrategyBoard() {} + + public StrategyBoard(ReadOnlyStrategyBoard toBeCopied) { + this(); + resetData(toBeCopied); + } + + //// list overwrite operations + + /** + * Replaces the contents of the player list with {@code players}. + */ + public void setPlayers(List players) { + this.players.setPlayers(players); + } + + /** + * Resets the existing data of this {@code StrategyBoard} with {@code newData}. + */ + public void resetData(ReadOnlyStrategyBoard newData) { + requireNonNull(newData); + + setPlayers(newData.getPlayerList()); + } + + //// player-level operations + + /** + * Returns true if a player with the same identity as {@code player} exists in the address book. + */ + public boolean hasPlayer(String player) { + requireNonNull(player); + return players.contains(player); + } + + /** + * Adds a player to the Strategy Board. + * The player must not already exist in the strategy board. + */ + public void addPlayer(String t) { + logger.log(Level.INFO, "addPlayer: {0}", new Object[]{t}); + players.add(t); + } + + /** + * Removes {@code key} from this {@code StrategyBoard}. + * {@code key} must exist in the strategy board. + */ + public void removePlayer(String key) { + players.remove(key); + } + + //// util methods + + @Override + public String toString() { + return players.asUnmodifiableObservableList().size() + " players"; + } + + @Override + public ObservableList getPlayerList() { + return players.asUnmodifiableObservableList(); + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof StrategyBoard // instanceof handles nulls + && players.equals(((StrategyBoard) other).players)); + } + + @Override + public int hashCode() { + return players.hashCode(); + } +} diff --git a/src/main/java/seedu/address/model/strategy/UniquePlayerList.java b/src/main/java/seedu/address/model/strategy/UniquePlayerList.java new file mode 100644 index 00000000000..de2a1f07980 --- /dev/null +++ b/src/main/java/seedu/address/model/strategy/UniquePlayerList.java @@ -0,0 +1,116 @@ +package seedu.address.model.strategy; + +import static java.util.Objects.requireNonNull; +import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; + +import java.util.Iterator; +import java.util.List; +import java.util.logging.Level; +import java.util.logging.Logger; + +import javafx.collections.FXCollections; +import javafx.collections.ObservableList; +import seedu.address.MainApp; +import seedu.address.commons.core.LogsCenter; +import seedu.address.model.strategy.exceptions.DuplicatePlayerException; +import seedu.address.model.strategy.exceptions.PlayerNotFoundException; + +/** + * A list of players that enforces uniqueness between its elements and does not allow nulls. + * + * Supports a minimal set of list operations. + */ +public class UniquePlayerList implements Iterable { + private static final Logger logger = LogsCenter.getLogger(MainApp.class); + private final ObservableList internalList = FXCollections.observableArrayList(); + private final ObservableList internalUnmodifiableList = + FXCollections.unmodifiableObservableList(internalList); + + /** + * Returns true if the list contains an equivalent player as the given argument. + */ + public boolean contains(String toCheck) { + requireNonNull(toCheck); + return internalList.stream().anyMatch(toCheck::equals); + } + + /** + * Adds a player to the list. + * The player must not already exist in the list. + */ + public void add(String toAdd) { + requireNonNull(toAdd); + if (contains(toAdd)) { + throw new DuplicatePlayerException(); + } + logger.log(Level.INFO, "toAdd: {0}", new Object[]{toAdd}); + internalList.add(toAdd); + } + + /** + * Removes the equivalent player from the list. + * The player must exist in the list. + */ + public void remove(String toRemove) { + requireNonNull(toRemove); + if (!internalList.remove(toRemove)) { + throw new PlayerNotFoundException(); + } + } + + public void setPlayers(UniquePlayerList replacement) { + requireNonNull(replacement); + internalList.setAll(replacement.internalList); + } + + /** + * Replaces the contents of this list with {@code players}. + * {@code players} must not contain duplicate players. + */ + public void setPlayers(List players) { + requireAllNonNull(players); + if (!playersAreUnique(players)) { + throw new DuplicatePlayerException(); + } + + internalList.setAll(players); + } + + /** + * Returns the backing list as an unmodifiable {@code ObservableList}. + */ + public ObservableList asUnmodifiableObservableList() { + return internalUnmodifiableList; + } + + @Override + public Iterator iterator() { + return internalList.iterator(); + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof UniquePlayerList // instanceof handles nulls + && internalList.equals(((UniquePlayerList) other).internalList)); + } + + @Override + public int hashCode() { + return internalList.hashCode(); + } + + /** + * Returns true if {@code players} contains only unique players. + */ + private boolean playersAreUnique(List players) { + for (int i = 0; i < players.size() - 1; i++) { + for (int j = i + 1; j < players.size(); j++) { + if (players.get(i).equals(players.get(j))) { + return false; + } + } + } + return true; + } +} diff --git a/src/main/java/seedu/address/model/strategy/exceptions/DuplicatePlayerException.java b/src/main/java/seedu/address/model/strategy/exceptions/DuplicatePlayerException.java new file mode 100644 index 00000000000..fd7aa695560 --- /dev/null +++ b/src/main/java/seedu/address/model/strategy/exceptions/DuplicatePlayerException.java @@ -0,0 +1,10 @@ +package seedu.address.model.strategy.exceptions; + +/** + * Indicates that the operation will result in duplicate Players + */ +public class DuplicatePlayerException extends RuntimeException { + public DuplicatePlayerException() { + super("Operation would result in duplicate persons"); + } +} diff --git a/src/main/java/seedu/address/model/strategy/exceptions/PlayerNotFoundException.java b/src/main/java/seedu/address/model/strategy/exceptions/PlayerNotFoundException.java new file mode 100644 index 00000000000..55a9a605f51 --- /dev/null +++ b/src/main/java/seedu/address/model/strategy/exceptions/PlayerNotFoundException.java @@ -0,0 +1,7 @@ +package seedu.address.model.strategy.exceptions; + +/** + * Signals that the operation is unable to find the specified player. + */ +public class PlayerNotFoundException extends RuntimeException { +} diff --git a/src/main/java/seedu/address/ui/MainWindow.java b/src/main/java/seedu/address/ui/MainWindow.java index 907162985e7..715fc6dc57d 100644 --- a/src/main/java/seedu/address/ui/MainWindow.java +++ b/src/main/java/seedu/address/ui/MainWindow.java @@ -123,7 +123,7 @@ void fillInnerParts() { personListPanelPlaceholder.getChildren().add(personListPanel.getRoot()); taskListPanel = new TaskListPanel(logic.getFilteredTaskList()); taskListPanelPlaceholder.getChildren().add(taskListPanel.getRoot()); - strategyPanel = new StrategyPanel(); + strategyPanel = new StrategyPanel(logic.getFilteredPlayerList()); strategyPanelPlaceholder.getChildren().add(strategyPanel.getRoot()); resultDisplay = new ResultDisplay(); diff --git a/src/main/java/seedu/address/ui/StrategyPanel.java b/src/main/java/seedu/address/ui/StrategyPanel.java index 4cb6f339748..4514dd12e75 100644 --- a/src/main/java/seedu/address/ui/StrategyPanel.java +++ b/src/main/java/seedu/address/ui/StrategyPanel.java @@ -1,66 +1,83 @@ package seedu.address.ui; +import java.util.logging.Logger; + +import javafx.collections.ObservableList; import javafx.event.EventHandler; import javafx.fxml.FXML; +import javafx.geometry.VPos; import javafx.scene.Cursor; import javafx.scene.input.MouseEvent; +import javafx.scene.layout.Pane; import javafx.scene.layout.Region; +import javafx.scene.layout.StackPane; import javafx.scene.paint.Color; import javafx.scene.paint.Paint; import javafx.scene.shape.Circle; +import javafx.scene.text.Font; +import javafx.scene.text.Text; +import seedu.address.MainApp; +import seedu.address.commons.core.LogsCenter; +import seedu.address.model.task.Task; public class StrategyPanel extends UiPart { private static final String FXML = "StrategyPanel.fxml"; + private static final Logger logger = LogsCenter.getLogger(MainApp.class); private static double orgSceneX; private static double orgSceneY; - private static double orgTranslateX; - private static double orgTranslateY; + private static double orgCenterX; + private static double orgCenterY; @FXML - private Circle player1; - @FXML - private Circle player2; - @FXML - private Circle player3; + private Pane playerView; // Credit to http://java-buddy.blogspot.com/2013/07/move-node-to-front.html - private EventHandler pressHandler = + private final EventHandler pressHandler = new EventHandler() { @Override public void handle(MouseEvent t) { orgSceneX = t.getSceneX(); orgSceneY = t.getSceneY(); - orgTranslateX = ((Circle) (t.getSource())).getTranslateX(); - orgTranslateY = ((Circle) (t.getSource())).getTranslateY(); + orgCenterX = ((StackPane) (t.getSource())).getLayoutX(); + orgCenterY = ((StackPane) (t.getSource())).getLayoutY(); + //logger.log(Level.INFO, "orgCenterX: {0}", new Object[]{orgCenterX}); + //logger.log(Level.INFO, "orgCenterY: {0}", new Object[]{orgCenterY}); } }; // Credit to http://java-buddy.blogspot.com/2013/07/move-node-to-front.html - private EventHandler dragHandler = + private final EventHandler dragHandler = new EventHandler() { @Override public void handle(MouseEvent t) { double offsetX = t.getSceneX() - orgSceneX; double offsetY = t.getSceneY() - orgSceneY; - double newTranslateX = orgTranslateX + offsetX; - double newTranslateY = orgTranslateY + offsetY; - Circle tmp = (Circle) (t.getSource()); - tmp.setTranslateX(newTranslateX); - tmp.setTranslateY(newTranslateY); + double newCenterX = orgCenterX + offsetX; + double newCenterY = orgCenterY + offsetY; + StackPane tmp = (StackPane) (t.getSource()); + tmp.setLayoutX(newCenterX); + tmp.setLayoutY(newCenterY); + //logger.log(Level.INFO, "newCenterX: {0} new CenterY: {1}", + // new Object[]{offsetX + orgCenterX, offsetY + orgCenterY}); + //logger.log(Level.INFO, "newTrueX: {0} new TrueY: {1}", + // new Object[]{tmp.getCenterX(), tmp.getCenterY()}); } }; /** * Creates a {@code StrategyPanel} with draggable circles. */ - public StrategyPanel() { + public StrategyPanel(ObservableList playerList) { super(FXML); - initCircle(player1, 50, 100, 100, Color.RED); - initCircle(player2, 50, 200, 200, Color.LIGHTBLUE); - initCircle(player3, 30, 200, 200, Color.YELLOW); + + StackPane stack = new StackPane(); + for (String playerName : playerList) { + initStack(stack, playerName, 100, 100, 50, Color.BLUE); + } + playerView.getChildren().addAll(stack); } private void initCircle(Circle circle, double rad, double x, double y, Paint color) { @@ -69,7 +86,27 @@ private void initCircle(Circle circle, double rad, double x, double y, Paint col circle.setCenterX(x); circle.setCenterY(y); circle.setCursor(Cursor.HAND); - circle.setOnMousePressed(pressHandler); - circle.setOnMouseDragged(dragHandler); + } + + private void initText(Text text, String value, double x, double y) { + text.setX(x); + text.setY(y); + text.setText(value); + text.setFont(Font.font("Arial", 24)); + double width = text.prefWidth(-1); + text.setX(250 - width / 2); + text.setTextOrigin(VPos.CENTER); + } + + private void initStack(StackPane stack, String name, double x, double y, double rad, Paint color) { + Text text = new Text(); + initText(text, name, x, y); + Circle cr = new Circle(); + initCircle(cr, rad, x, y, color); + text.xProperty().bind(cr.centerXProperty()); + text.yProperty().bind(cr.centerYProperty()); + stack.getChildren().addAll(cr, text); + stack.setOnMousePressed(pressHandler); + stack.setOnMouseDragged(dragHandler); } } diff --git a/src/main/resources/view/StrategyPanel.fxml b/src/main/resources/view/StrategyPanel.fxml index bb35cbe8f68..81aa2c915c3 100644 --- a/src/main/resources/view/StrategyPanel.fxml +++ b/src/main/resources/view/StrategyPanel.fxml @@ -1,11 +1,8 @@ - - + - - - + From 8b246d07b49daabe9335348ded5e5b35f1e3c6f2 Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Tue, 22 Mar 2022 22:04:10 +0800 Subject: [PATCH 148/455] Implements the feature to create circle whenever a new player is added --- .../seedu/address/model/ModelManager.java | 2 -- .../seedu/address/model/StrategyBoard.java | 6 ----- .../model/strategy/UniquePlayerList.java | 6 ----- .../java/seedu/address/ui/StrategyPanel.java | 27 ++++++++++++++----- 4 files changed, 21 insertions(+), 20 deletions(-) diff --git a/src/main/java/seedu/address/model/ModelManager.java b/src/main/java/seedu/address/model/ModelManager.java index 8106f9d47a7..e90e65d4c6e 100644 --- a/src/main/java/seedu/address/model/ModelManager.java +++ b/src/main/java/seedu/address/model/ModelManager.java @@ -5,7 +5,6 @@ import java.nio.file.Path; import java.util.function.Predicate; -import java.util.logging.Level; import java.util.logging.Logger; import javafx.collections.ObservableList; @@ -249,7 +248,6 @@ public void setPlayer(String target, editedTask) { */ @Override public ObservableList getFilteredPlayerList() { - logger.log(Level.INFO, "size: {0}", new Object[]{filteredPlayers.size()}); return filteredPlayers; } diff --git a/src/main/java/seedu/address/model/StrategyBoard.java b/src/main/java/seedu/address/model/StrategyBoard.java index ac9ae29f094..ccc575036b3 100644 --- a/src/main/java/seedu/address/model/StrategyBoard.java +++ b/src/main/java/seedu/address/model/StrategyBoard.java @@ -3,12 +3,8 @@ import static java.util.Objects.requireNonNull; import java.util.List; -import java.util.logging.Level; -import java.util.logging.Logger; import javafx.collections.ObservableList; -import seedu.address.MainApp; -import seedu.address.commons.core.LogsCenter; import seedu.address.model.strategy.UniquePlayerList; /** @@ -16,7 +12,6 @@ * Duplicates are not allowed (by .equals comparison) */ public class StrategyBoard implements ReadOnlyStrategyBoard { - private static final Logger logger = LogsCenter.getLogger(MainApp.class); private final UniquePlayerList players; /* * The 'unusual' code block below is a non-static initialization block, sometimes used to avoid duplication @@ -69,7 +64,6 @@ public boolean hasPlayer(String player) { * The player must not already exist in the strategy board. */ public void addPlayer(String t) { - logger.log(Level.INFO, "addPlayer: {0}", new Object[]{t}); players.add(t); } diff --git a/src/main/java/seedu/address/model/strategy/UniquePlayerList.java b/src/main/java/seedu/address/model/strategy/UniquePlayerList.java index de2a1f07980..8e278bf25e0 100644 --- a/src/main/java/seedu/address/model/strategy/UniquePlayerList.java +++ b/src/main/java/seedu/address/model/strategy/UniquePlayerList.java @@ -5,13 +5,9 @@ import java.util.Iterator; import java.util.List; -import java.util.logging.Level; -import java.util.logging.Logger; import javafx.collections.FXCollections; import javafx.collections.ObservableList; -import seedu.address.MainApp; -import seedu.address.commons.core.LogsCenter; import seedu.address.model.strategy.exceptions.DuplicatePlayerException; import seedu.address.model.strategy.exceptions.PlayerNotFoundException; @@ -21,7 +17,6 @@ * Supports a minimal set of list operations. */ public class UniquePlayerList implements Iterable { - private static final Logger logger = LogsCenter.getLogger(MainApp.class); private final ObservableList internalList = FXCollections.observableArrayList(); private final ObservableList internalUnmodifiableList = FXCollections.unmodifiableObservableList(internalList); @@ -43,7 +38,6 @@ public void add(String toAdd) { if (contains(toAdd)) { throw new DuplicatePlayerException(); } - logger.log(Level.INFO, "toAdd: {0}", new Object[]{toAdd}); internalList.add(toAdd); } diff --git a/src/main/java/seedu/address/ui/StrategyPanel.java b/src/main/java/seedu/address/ui/StrategyPanel.java index 4514dd12e75..37726a09d6f 100644 --- a/src/main/java/seedu/address/ui/StrategyPanel.java +++ b/src/main/java/seedu/address/ui/StrategyPanel.java @@ -1,7 +1,10 @@ package seedu.address.ui; +import java.util.HashMap; +import java.util.Map; import java.util.logging.Logger; +import javafx.collections.ListChangeListener; import javafx.collections.ObservableList; import javafx.event.EventHandler; import javafx.fxml.FXML; @@ -18,11 +21,11 @@ import javafx.scene.text.Text; import seedu.address.MainApp; import seedu.address.commons.core.LogsCenter; -import seedu.address.model.task.Task; public class StrategyPanel extends UiPart { private static final String FXML = "StrategyPanel.fxml"; private static final Logger logger = LogsCenter.getLogger(MainApp.class); + private static final Map table = new HashMap<>(); private static double orgSceneX; private static double orgSceneY; @@ -73,11 +76,23 @@ public void handle(MouseEvent t) { public StrategyPanel(ObservableList playerList) { super(FXML); - StackPane stack = new StackPane(); - for (String playerName : playerList) { - initStack(stack, playerName, 100, 100, 50, Color.BLUE); - } - playerView.getChildren().addAll(stack); + playerList.addListener((ListChangeListener) change -> { + while (change.next()) { + if (change.wasAdded()) { + for (String playerName : change.getAddedSubList()) { + if(table.containsKey(playerName)) { + continue; + } + StackPane stack = new StackPane(); + initStack(stack, playerName, 100, 100, 50, Color.BLUE); + playerView.getChildren().add(stack); + table.put(playerName, stack); + } + } else if (change.wasRemoved()) { + ; + } + } + }); } private void initCircle(Circle circle, double rad, double x, double y, Paint color) { From f9191439f4ead2eb2cd5dedce1f7b439962d693c Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Tue, 22 Mar 2022 22:16:41 +0800 Subject: [PATCH 149/455] Fix testing method and checkStyle --- .../commands/strategy/AddPlayerCommand.java | 2 -- .../strategy/AddPlayerCommandParser.java | 1 - .../seedu/address/model/StrategyBoard.java | 5 ++- .../java/seedu/address/ui/StrategyPanel.java | 2 +- .../seedu/address/logic/LogicManagerTest.java | 3 +- .../commands/AddCommandIntegrationTest.java | 5 +-- .../logic/commands/AddCommandTest.java | 36 +++++++++++++++++++ .../logic/commands/AddMiscCommandTest.java | 5 ++- .../commands/AddStrengthCommandTest.java | 5 ++- .../logic/commands/AddTagCommandTest.java | 5 ++- .../logic/commands/AddTaskCommandTest.java | 36 +++++++++++++++++++ .../commands/AddWeaknessCommandTest.java | 5 ++- .../logic/commands/ClearCommandTest.java | 7 ++-- .../logic/commands/DeleteCommandTest.java | 8 +++-- .../logic/commands/DeleteMiscCommandTest.java | 6 ++-- .../commands/DeleteStrengthCommandTest.java | 6 ++-- .../logic/commands/DeleteTagCommandTest.java | 5 ++- .../logic/commands/DeleteTaskCommandTest.java | 6 ++-- .../commands/DeleteWeaknessCommandTest.java | 6 ++-- .../logic/commands/EditCommandTest.java | 12 ++++--- .../logic/commands/FindCommandTest.java | 7 ++-- .../logic/commands/ListCommandTest.java | 6 ++-- .../seedu/address/model/ModelManagerTest.java | 15 ++++---- 23 files changed, 152 insertions(+), 42 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/strategy/AddPlayerCommand.java b/src/main/java/seedu/address/logic/commands/strategy/AddPlayerCommand.java index e585962bacd..5139aac8904 100644 --- a/src/main/java/seedu/address/logic/commands/strategy/AddPlayerCommand.java +++ b/src/main/java/seedu/address/logic/commands/strategy/AddPlayerCommand.java @@ -7,8 +7,6 @@ import seedu.address.logic.commands.Command; import seedu.address.logic.commands.CommandResult; import seedu.address.logic.commands.exceptions.CommandException; -import seedu.address.logic.commands.notecommands.AddMiscCommand; -import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.Model; /** diff --git a/src/main/java/seedu/address/logic/parser/strategy/AddPlayerCommandParser.java b/src/main/java/seedu/address/logic/parser/strategy/AddPlayerCommandParser.java index d8a0bb0d43c..16177ca7c38 100644 --- a/src/main/java/seedu/address/logic/parser/strategy/AddPlayerCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/strategy/AddPlayerCommandParser.java @@ -2,7 +2,6 @@ import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.logic.commands.strategy.AddPlayerCommand; import seedu.address.logic.parser.Parser; import seedu.address.logic.parser.exceptions.ParseException; diff --git a/src/main/java/seedu/address/model/StrategyBoard.java b/src/main/java/seedu/address/model/StrategyBoard.java index ccc575036b3..842fd15aef2 100644 --- a/src/main/java/seedu/address/model/StrategyBoard.java +++ b/src/main/java/seedu/address/model/StrategyBoard.java @@ -11,7 +11,7 @@ * Wraps all data at the strategy-board level * Duplicates are not allowed (by .equals comparison) */ -public class StrategyBoard implements ReadOnlyStrategyBoard { +public class StrategyBoard implements ReadOnlyStrategyBoard { private final UniquePlayerList players; /* * The 'unusual' code block below is a non-static initialization block, sometimes used to avoid duplication @@ -26,6 +26,9 @@ public class StrategyBoard implements ReadOnlyStrategyBoard { public StrategyBoard() {} + /** + * Creates an StrategyBoard using the Players in the {@code toBeCopied} + */ public StrategyBoard(ReadOnlyStrategyBoard toBeCopied) { this(); resetData(toBeCopied); diff --git a/src/main/java/seedu/address/ui/StrategyPanel.java b/src/main/java/seedu/address/ui/StrategyPanel.java index 37726a09d6f..845e1ac6bcd 100644 --- a/src/main/java/seedu/address/ui/StrategyPanel.java +++ b/src/main/java/seedu/address/ui/StrategyPanel.java @@ -80,7 +80,7 @@ public StrategyPanel(ObservableList playerList) { while (change.next()) { if (change.wasAdded()) { for (String playerName : change.getAddedSubList()) { - if(table.containsKey(playerName)) { + if (table.containsKey(playerName)) { continue; } StackPane stack = new StackPane(); diff --git a/src/test/java/seedu/address/logic/LogicManagerTest.java b/src/test/java/seedu/address/logic/LogicManagerTest.java index 07a1d73844e..22125dd5020 100644 --- a/src/test/java/seedu/address/logic/LogicManagerTest.java +++ b/src/test/java/seedu/address/logic/LogicManagerTest.java @@ -25,6 +25,7 @@ import seedu.address.model.Model; import seedu.address.model.ModelManager; import seedu.address.model.ReadOnlyAddressBook; +import seedu.address.model.StrategyBoard; import seedu.address.model.TaskBook; import seedu.address.model.UserPrefs; import seedu.address.model.person.Person; @@ -136,7 +137,7 @@ private void assertCommandException(String inputCommand, String expectedMessage) private void assertCommandFailure(String inputCommand, Class expectedException, String expectedMessage) { Model expectedModel = new ModelManager(model.getAddressBook(), - new TaskBook(), new UserPrefs()); // Not fully implemented + new TaskBook(), new StrategyBoard(), new UserPrefs()); // Not fully implemented assertCommandFailure(inputCommand, expectedException, expectedMessage, expectedModel); } diff --git a/src/test/java/seedu/address/logic/commands/AddCommandIntegrationTest.java b/src/test/java/seedu/address/logic/commands/AddCommandIntegrationTest.java index a622685c078..17ec89f93be 100644 --- a/src/test/java/seedu/address/logic/commands/AddCommandIntegrationTest.java +++ b/src/test/java/seedu/address/logic/commands/AddCommandIntegrationTest.java @@ -10,6 +10,7 @@ import seedu.address.model.Model; import seedu.address.model.ModelManager; +import seedu.address.model.StrategyBoard; import seedu.address.model.UserPrefs; import seedu.address.model.person.Person; import seedu.address.testutil.PersonBuilder; @@ -23,7 +24,7 @@ public class AddCommandIntegrationTest { @BeforeEach public void setUp() { - model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new StrategyBoard(), new UserPrefs()); } @Test @@ -31,7 +32,7 @@ public void execute_newPerson_success() { Person validPerson = new PersonBuilder().build(); Model expectedModel = new ModelManager(model.getAddressBook(), - model.getTaskBook(), new UserPrefs()); + model.getTaskBook(), new StrategyBoard(), new UserPrefs()); expectedModel.addPerson(validPerson); assertCommandSuccess(new AddCommand(validPerson), model, diff --git a/src/test/java/seedu/address/logic/commands/AddCommandTest.java b/src/test/java/seedu/address/logic/commands/AddCommandTest.java index c72e2f37f6f..e7c21823062 100644 --- a/src/test/java/seedu/address/logic/commands/AddCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddCommandTest.java @@ -19,6 +19,7 @@ import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ReadOnlyAddressBook; +import seedu.address.model.ReadOnlyStrategyBoard; import seedu.address.model.ReadOnlyTaskBook; import seedu.address.model.ReadOnlyUserPrefs; import seedu.address.model.person.Person; @@ -199,6 +200,41 @@ public void updateFilteredTaskList(Predicate predicate) { throw new AssertionError("This method should not be called."); } + @Override + public void setStrategyBoard(ReadOnlyStrategyBoard strategyBoard) { + throw new AssertionError("This method should not be called."); + } + + @Override + public ReadOnlyStrategyBoard getStrategyBoard() { + throw new AssertionError("This method should not be called."); + } + + @Override + public boolean hasPlayer(String player) { + throw new AssertionError("This method should not be called."); + } + + @Override + public void deletePlayer(String target) { + throw new AssertionError("This method should not be called."); + } + + @Override + public void addPlayer(String player) { + throw new AssertionError("This method should not be called."); + } + + @Override + public ObservableList getFilteredPlayerList() { + throw new AssertionError("This method should not be called."); + } + + @Override + public void updateFilteredPlayerList(Predicate predicate) { + throw new AssertionError("This method should not be called."); + } + } /** diff --git a/src/test/java/seedu/address/logic/commands/AddMiscCommandTest.java b/src/test/java/seedu/address/logic/commands/AddMiscCommandTest.java index ae8e45851f6..4df993a1b7c 100644 --- a/src/test/java/seedu/address/logic/commands/AddMiscCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddMiscCommandTest.java @@ -20,6 +20,7 @@ import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ModelManager; +import seedu.address.model.StrategyBoard; import seedu.address.model.TaskBook; import seedu.address.model.UserPrefs; import seedu.address.model.note.Note; @@ -31,7 +32,8 @@ public class AddMiscCommandTest { private static final String NOTE_STUB_1 = "Some note 1"; private static final String NOTE_STUB_2 = "Some note 2"; - private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); @Test public void execute_addMiscUnfilteredList_success() { @@ -48,6 +50,7 @@ public void execute_addMiscUnfilteredList_success() { Model expectedModel = new ModelManager( new AddressBook(model.getAddressBook()), new TaskBook(model.getTaskBook()), + new StrategyBoard(), new UserPrefs()); expectedModel.setPerson(firstPerson, editedPerson); diff --git a/src/test/java/seedu/address/logic/commands/AddStrengthCommandTest.java b/src/test/java/seedu/address/logic/commands/AddStrengthCommandTest.java index 1d118c177b5..3b72fa3f2d5 100644 --- a/src/test/java/seedu/address/logic/commands/AddStrengthCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddStrengthCommandTest.java @@ -20,6 +20,7 @@ import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ModelManager; +import seedu.address.model.StrategyBoard; import seedu.address.model.TaskBook; import seedu.address.model.UserPrefs; import seedu.address.model.note.Note; @@ -31,7 +32,8 @@ public class AddStrengthCommandTest { private static final String NOTE_STUB_1 = "Some note 1"; private static final String NOTE_STUB_2 = "Some note 2"; - private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); @Test public void execute_addStrengthUnfilteredList_success() { @@ -48,6 +50,7 @@ public void execute_addStrengthUnfilteredList_success() { Model expectedModel = new ModelManager( new AddressBook(model.getAddressBook()), new TaskBook(model.getTaskBook()), + new StrategyBoard(), new UserPrefs()); expectedModel.setPerson(firstPerson, editedPerson); diff --git a/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java b/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java index 2b47ea67110..bba9345df04 100644 --- a/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java @@ -19,6 +19,7 @@ import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ModelManager; +import seedu.address.model.StrategyBoard; import seedu.address.model.TaskBook; import seedu.address.model.UserPrefs; import seedu.address.model.person.Person; @@ -31,7 +32,8 @@ class AddTagCommandTest { private static final String TAG1 = "TAG1"; // Test model - private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); @Test void execute_addTagCommandUnfilteredList_success() { @@ -56,6 +58,7 @@ void execute_addTagCommandUnfilteredList_success() { Model expectedModel = new ModelManager( new AddressBook(model.getAddressBook()), new TaskBook(model.getTaskBook()), + new StrategyBoard(), new UserPrefs()); expectedModel.setPerson(firstPerson, editedPerson); diff --git a/src/test/java/seedu/address/logic/commands/AddTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/AddTaskCommandTest.java index 8d8e0ce8d7e..ef9cf95890d 100644 --- a/src/test/java/seedu/address/logic/commands/AddTaskCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddTaskCommandTest.java @@ -19,6 +19,7 @@ import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ReadOnlyAddressBook; +import seedu.address.model.ReadOnlyStrategyBoard; import seedu.address.model.ReadOnlyTaskBook; import seedu.address.model.ReadOnlyUserPrefs; import seedu.address.model.TaskBook; @@ -201,6 +202,41 @@ public void updateFilteredTaskList(Predicate predicate) { throw new AssertionError("This method should not be called."); } + @Override + public void setStrategyBoard(ReadOnlyStrategyBoard strategyBoard) { + throw new AssertionError("This method should not be called."); + } + + @Override + public ReadOnlyStrategyBoard getStrategyBoard() { + throw new AssertionError("This method should not be called."); + } + + @Override + public boolean hasPlayer(String player) { + throw new AssertionError("This method should not be called."); + } + + @Override + public void deletePlayer(String target) { + throw new AssertionError("This method should not be called."); + } + + @Override + public void addPlayer(String player) { + throw new AssertionError("This method should not be called."); + } + + @Override + public ObservableList getFilteredPlayerList() { + throw new AssertionError("This method should not be called."); + } + + @Override + public void updateFilteredPlayerList(Predicate predicate) { + throw new AssertionError("This method should not be called."); + } + } /** diff --git a/src/test/java/seedu/address/logic/commands/AddWeaknessCommandTest.java b/src/test/java/seedu/address/logic/commands/AddWeaknessCommandTest.java index a5915045149..cda3e486aaa 100644 --- a/src/test/java/seedu/address/logic/commands/AddWeaknessCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddWeaknessCommandTest.java @@ -20,6 +20,7 @@ import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ModelManager; +import seedu.address.model.StrategyBoard; import seedu.address.model.TaskBook; import seedu.address.model.UserPrefs; import seedu.address.model.note.Note; @@ -31,7 +32,8 @@ public class AddWeaknessCommandTest { private static final String NOTE_STUB_1 = "Some note 1"; private static final String NOTE_STUB_2 = "Some note 2"; - private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); @Test public void execute_addWeaknessUnfilteredList_success() { @@ -48,6 +50,7 @@ public void execute_addWeaknessUnfilteredList_success() { Model expectedModel = new ModelManager( new AddressBook(model.getAddressBook()), new TaskBook(model.getTaskBook()), + new StrategyBoard(), new UserPrefs()); expectedModel.setPerson(firstPerson, editedPerson); diff --git a/src/test/java/seedu/address/logic/commands/ClearCommandTest.java b/src/test/java/seedu/address/logic/commands/ClearCommandTest.java index dcf191f4547..8a1d90e54ae 100644 --- a/src/test/java/seedu/address/logic/commands/ClearCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/ClearCommandTest.java @@ -9,6 +9,7 @@ import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ModelManager; +import seedu.address.model.StrategyBoard; import seedu.address.model.UserPrefs; public class ClearCommandTest { @@ -23,8 +24,10 @@ public void execute_emptyAddressBook_success() { @Test public void execute_nonEmptyAddressBook_success() { - Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); - Model expectedModel = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); + Model expectedModel = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); expectedModel.setAddressBook(new AddressBook()); assertCommandSuccess(new ClearCommand(), model, ClearCommand.MESSAGE_SUCCESS, expectedModel); diff --git a/src/test/java/seedu/address/logic/commands/DeleteCommandTest.java b/src/test/java/seedu/address/logic/commands/DeleteCommandTest.java index 5c86a079594..0e43b3ecda5 100644 --- a/src/test/java/seedu/address/logic/commands/DeleteCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/DeleteCommandTest.java @@ -16,6 +16,7 @@ import seedu.address.commons.core.index.Index; import seedu.address.model.Model; import seedu.address.model.ModelManager; +import seedu.address.model.StrategyBoard; import seedu.address.model.UserPrefs; import seedu.address.model.person.Person; @@ -25,7 +26,8 @@ */ public class DeleteCommandTest { - private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); @Test public void execute_validIndexUnfilteredList_success() { @@ -35,7 +37,7 @@ public void execute_validIndexUnfilteredList_success() { String expectedMessage = String.format(DeleteCommand.MESSAGE_DELETE_PERSON_SUCCESS, personToDelete); ModelManager expectedModel = new ModelManager(model.getAddressBook(), - model.getTaskBook(), new UserPrefs()); + model.getTaskBook(), new StrategyBoard(), new UserPrefs()); expectedModel.deletePerson(personToDelete); assertCommandSuccess(deleteCommand, model, expectedMessage, expectedModel); @@ -59,7 +61,7 @@ public void execute_validIndexFilteredList_success() { String expectedMessage = String.format(DeleteCommand.MESSAGE_DELETE_PERSON_SUCCESS, personToDelete); Model expectedModel = new ModelManager(model.getAddressBook(), - model.getTaskBook(), new UserPrefs()); + model.getTaskBook(), new StrategyBoard(), new UserPrefs()); expectedModel.deletePerson(personToDelete); showNoPerson(expectedModel); diff --git a/src/test/java/seedu/address/logic/commands/DeleteMiscCommandTest.java b/src/test/java/seedu/address/logic/commands/DeleteMiscCommandTest.java index 46798012ec6..e4c5271215e 100644 --- a/src/test/java/seedu/address/logic/commands/DeleteMiscCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/DeleteMiscCommandTest.java @@ -21,6 +21,7 @@ import seedu.address.logic.commands.notecommands.DeleteMiscCommand; import seedu.address.model.Model; import seedu.address.model.ModelManager; +import seedu.address.model.StrategyBoard; import seedu.address.model.UserPrefs; import seedu.address.model.note.Note; import seedu.address.model.person.Person; @@ -31,7 +32,8 @@ */ public class DeleteMiscCommandTest { - private final Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + private final Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); @Test public void constructor_nullIndex_throwsNullPointerException() { @@ -53,7 +55,7 @@ public void execute_validNoteIndexUnfilteredList_success() throws Exception { String expectedMessage = String.format(DeleteMiscCommand.MESSAGE_SUCCESS, personWithModifiedMisc); ModelManager expectedModel = new ModelManager(model.getAddressBook(), - model.getTaskBook(), new UserPrefs()); + model.getTaskBook(), new StrategyBoard(), new UserPrefs()); deleteMiscCommand.execute(expectedModel); assertCommandSuccess(deleteMiscCommand, model, expectedMessage, expectedModel); } diff --git a/src/test/java/seedu/address/logic/commands/DeleteStrengthCommandTest.java b/src/test/java/seedu/address/logic/commands/DeleteStrengthCommandTest.java index 742e9b1ba4f..f04c20b30f8 100644 --- a/src/test/java/seedu/address/logic/commands/DeleteStrengthCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/DeleteStrengthCommandTest.java @@ -21,6 +21,7 @@ import seedu.address.logic.commands.notecommands.DeleteStrengthCommand; import seedu.address.model.Model; import seedu.address.model.ModelManager; +import seedu.address.model.StrategyBoard; import seedu.address.model.UserPrefs; import seedu.address.model.note.Note; import seedu.address.model.person.Person; @@ -31,7 +32,8 @@ */ public class DeleteStrengthCommandTest { - private final Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + private final Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); @Test public void constructor_nullIndex_throwsNullPointerException() { @@ -54,7 +56,7 @@ public void execute_validNoteIndexUnfilteredList_success() throws Exception { String expectedMessage = String.format(DeleteStrengthCommand.MESSAGE_SUCCESS, personWithModifiedStrength); ModelManager expectedModel = new ModelManager(model.getAddressBook(), - model.getTaskBook(), new UserPrefs()); + model.getTaskBook(), new StrategyBoard(), new UserPrefs()); deleteStrengthCommand.execute(expectedModel); assertCommandSuccess(deleteStrengthCommand, model, expectedMessage, expectedModel); } diff --git a/src/test/java/seedu/address/logic/commands/DeleteTagCommandTest.java b/src/test/java/seedu/address/logic/commands/DeleteTagCommandTest.java index a9d1f4c0b0e..854dcde3bb8 100644 --- a/src/test/java/seedu/address/logic/commands/DeleteTagCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/DeleteTagCommandTest.java @@ -19,6 +19,7 @@ import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ModelManager; +import seedu.address.model.StrategyBoard; import seedu.address.model.TaskBook; import seedu.address.model.UserPrefs; import seedu.address.model.person.Person; @@ -31,7 +32,8 @@ class DeleteTagCommandTest { private static final String TAG_1 = "friends"; // ALICE has a tag called "friends" // Test model - private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); @Test void execute_deleteTagCommandUnfilteredList_success() { @@ -56,6 +58,7 @@ void execute_deleteTagCommandUnfilteredList_success() { Model expectedModel = new ModelManager( new AddressBook(model.getAddressBook()), new TaskBook(model.getTaskBook()), + new StrategyBoard(), new UserPrefs()); expectedModel.setPerson(firstPerson, editedPerson); diff --git a/src/test/java/seedu/address/logic/commands/DeleteTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/DeleteTaskCommandTest.java index 6a6899de2fe..2d247768e04 100644 --- a/src/test/java/seedu/address/logic/commands/DeleteTaskCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/DeleteTaskCommandTest.java @@ -15,6 +15,7 @@ import seedu.address.commons.core.index.Index; import seedu.address.model.Model; import seedu.address.model.ModelManager; +import seedu.address.model.StrategyBoard; import seedu.address.model.UserPrefs; import seedu.address.model.task.Task; @@ -24,7 +25,8 @@ */ public class DeleteTaskCommandTest { - private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); @Test public void execute_validIndexUnfilteredList_success() { @@ -34,7 +36,7 @@ public void execute_validIndexUnfilteredList_success() { String expectedMessage = String.format(DeleteTaskCommand.MESSAGE_DELETE_TASK_SUCCESS, taskToDelete); ModelManager expectedModel = new ModelManager(model.getAddressBook(), - model.getTaskBook(), new UserPrefs()); + model.getTaskBook(), new StrategyBoard(), new UserPrefs()); expectedModel.deleteTask(taskToDelete); assertCommandSuccess(deleteTaskCommand, model, expectedMessage, expectedModel); diff --git a/src/test/java/seedu/address/logic/commands/DeleteWeaknessCommandTest.java b/src/test/java/seedu/address/logic/commands/DeleteWeaknessCommandTest.java index 9cdd8b31fe6..73df1d5d1f3 100644 --- a/src/test/java/seedu/address/logic/commands/DeleteWeaknessCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/DeleteWeaknessCommandTest.java @@ -21,6 +21,7 @@ import seedu.address.logic.commands.notecommands.DeleteWeaknessCommand; import seedu.address.model.Model; import seedu.address.model.ModelManager; +import seedu.address.model.StrategyBoard; import seedu.address.model.UserPrefs; import seedu.address.model.note.Note; import seedu.address.model.person.Person; @@ -31,7 +32,8 @@ */ public class DeleteWeaknessCommandTest { - private final Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + private final Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); @Test public void constructor_nullIndex_throwsNullPointerException() { @@ -54,7 +56,7 @@ public void execute_validNoteIndexUnfilteredList_success() throws Exception { String expectedMessage = String.format(DeleteWeaknessCommand.MESSAGE_SUCCESS, personWithModifiedWeakness); ModelManager expectedModel = new ModelManager(model.getAddressBook(), - model.getTaskBook(), new UserPrefs()); + model.getTaskBook(), new StrategyBoard(), new UserPrefs()); deleteWeaknessCommand.execute(expectedModel); assertCommandSuccess(deleteWeaknessCommand, model, expectedMessage, expectedModel); } diff --git a/src/test/java/seedu/address/logic/commands/EditCommandTest.java b/src/test/java/seedu/address/logic/commands/EditCommandTest.java index 07576bcdd6e..5c1042c1e17 100644 --- a/src/test/java/seedu/address/logic/commands/EditCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/EditCommandTest.java @@ -23,6 +23,7 @@ import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ModelManager; +import seedu.address.model.StrategyBoard; import seedu.address.model.UserPrefs; import seedu.address.model.person.Person; import seedu.address.testutil.EditPersonDescriptorBuilder; @@ -33,7 +34,8 @@ */ public class EditCommandTest { - private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); @Test public void execute_allFieldsSpecifiedUnfilteredList_success() { @@ -44,7 +46,7 @@ public void execute_allFieldsSpecifiedUnfilteredList_success() { String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), - model.getTaskBook(), new UserPrefs()); + model.getTaskBook(), new StrategyBoard(), new UserPrefs()); expectedModel.setPerson(model.getFilteredPersonList().get(0), editedPerson); assertCommandSuccess(editCommand, model, expectedMessage, expectedModel); @@ -66,7 +68,7 @@ public void execute_someFieldsSpecifiedUnfilteredList_success() { String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), - model.getTaskBook(), new UserPrefs()); + model.getTaskBook(), new StrategyBoard(), new UserPrefs()); expectedModel.setPerson(lastPerson, editedPerson); assertCommandSuccess(editCommand, model, expectedMessage, expectedModel); @@ -80,7 +82,7 @@ public void execute_noFieldSpecifiedUnfilteredList_success() { String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), - model.getTaskBook(), new UserPrefs()); + model.getTaskBook(), new StrategyBoard(), new UserPrefs()); assertCommandSuccess(editCommand, model, expectedMessage, expectedModel); } @@ -97,7 +99,7 @@ public void execute_filteredList_success() { String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), - model.getTaskBook(), new UserPrefs()); + model.getTaskBook(), new StrategyBoard(), new UserPrefs()); expectedModel.setPerson(model.getFilteredPersonList().get(0), editedPerson); assertCommandSuccess(editCommand, model, expectedMessage, expectedModel); diff --git a/src/test/java/seedu/address/logic/commands/FindCommandTest.java b/src/test/java/seedu/address/logic/commands/FindCommandTest.java index 91eb69a5343..fa2f334f108 100644 --- a/src/test/java/seedu/address/logic/commands/FindCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/FindCommandTest.java @@ -19,6 +19,7 @@ import seedu.address.model.Model; import seedu.address.model.ModelManager; +import seedu.address.model.StrategyBoard; import seedu.address.model.UserPrefs; import seedu.address.model.name.PersonNameContainsKeywordsPredicate; import seedu.address.model.tag.TagContainsKeywordsPredicate; @@ -27,8 +28,10 @@ * Contains integration tests (interaction with the Model) for {@code FindCommand}. */ public class FindCommandTest { - private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); - private Model expectedModel = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); + private Model expectedModel = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); @Test public void equals() { diff --git a/src/test/java/seedu/address/logic/commands/ListCommandTest.java b/src/test/java/seedu/address/logic/commands/ListCommandTest.java index 33a3ab7e064..9d7bbf57d72 100644 --- a/src/test/java/seedu/address/logic/commands/ListCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/ListCommandTest.java @@ -11,6 +11,7 @@ import seedu.address.model.Model; import seedu.address.model.ModelManager; +import seedu.address.model.StrategyBoard; import seedu.address.model.UserPrefs; /** @@ -23,9 +24,10 @@ public class ListCommandTest { @BeforeEach public void setUp() { - model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); expectedModel = new ModelManager(model.getAddressBook(), - model.getTaskBook(), new UserPrefs()); + model.getTaskBook(), new StrategyBoard(), new UserPrefs()); } @Test diff --git a/src/test/java/seedu/address/model/ModelManagerTest.java b/src/test/java/seedu/address/model/ModelManagerTest.java index faeaeabaf0f..0ecc98736c5 100644 --- a/src/test/java/seedu/address/model/ModelManagerTest.java +++ b/src/test/java/seedu/address/model/ModelManagerTest.java @@ -139,10 +139,11 @@ public void equals() { UserPrefs userPrefs = new UserPrefs(); TaskBook taskBook = new TaskBookBuilder().withTask(FIRST_TASK).withTask(SECOND_TASK).build(); TaskBook differentTaskBook = new TaskBook(); + StrategyBoard strategyBoard = new StrategyBoard(); // same values -> returns true - modelManager = new ModelManager(addressBook, taskBook, userPrefs); - ModelManager modelManagerCopy = new ModelManager(addressBook, taskBook, userPrefs); + modelManager = new ModelManager(addressBook, taskBook, strategyBoard, userPrefs); + ModelManager modelManagerCopy = new ModelManager(addressBook, taskBook, strategyBoard, userPrefs); assertTrue(modelManager.equals(modelManagerCopy)); // same object -> returns true @@ -155,23 +156,23 @@ public void equals() { assertFalse(modelManager.equals(5)); // different addressBook -> returns false - assertFalse(modelManager.equals(new ModelManager(differentAddressBook, taskBook, userPrefs))); + assertFalse(modelManager.equals(new ModelManager(differentAddressBook, taskBook, strategyBoard, userPrefs))); // different filteredPersonList -> returns false String[] pKeywords = ALICE.getName().fullName.split("\\s+"); modelManager.updateFilteredPersonList(new PersonNameContainsKeywordsPredicate(Arrays.asList(pKeywords))); - assertFalse(modelManager.equals(new ModelManager(addressBook, taskBook, userPrefs))); + assertFalse(modelManager.equals(new ModelManager(addressBook, taskBook, strategyBoard, userPrefs))); // resets modelManager to initial state for upcoming tests modelManager.updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); // different taskBook -> returns false - assertFalse(modelManager.equals(new ModelManager(addressBook, differentTaskBook, userPrefs))); + assertFalse(modelManager.equals(new ModelManager(addressBook, differentTaskBook, strategyBoard, userPrefs))); // different filteredTaskList -> returns false String[] tKeywords = FIRST_TASK.getName().fullName.split("\\s+"); modelManager.updateFilteredTaskList(new TaskNameContainsKeywordsPredicate(Arrays.asList(tKeywords))); - assertFalse(modelManager.equals(new ModelManager(addressBook, taskBook, userPrefs))); + assertFalse(modelManager.equals(new ModelManager(addressBook, taskBook, strategyBoard, userPrefs))); // resets modelManager to initial state for upcoming tests modelManager.updateFilteredTaskList(PREDICATE_SHOW_ALL_TASKS); @@ -179,6 +180,6 @@ public void equals() { // different userPrefs -> returns false UserPrefs differentUserPrefs = new UserPrefs(); differentUserPrefs.setAddressBookFilePath(Paths.get("differentFilePath")); - assertFalse(modelManager.equals(new ModelManager(addressBook, taskBook, differentUserPrefs))); + assertFalse(modelManager.equals(new ModelManager(addressBook, taskBook, strategyBoard, differentUserPrefs))); } } From 3f0eb8030762213a3823ea7b98dcdbf0aca3a2c7 Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Tue, 22 Mar 2022 22:36:20 +0800 Subject: [PATCH 150/455] Implement delete player feature --- .../strategy/DeletePlayerCommand.java | 64 +++++++++++++++++++ .../logic/parser/AddressBookParser.java | 5 ++ .../strategy/DeletePlayerCommandParser.java | 28 ++++++++ .../java/seedu/address/ui/StrategyPanel.java | 34 +++++++--- 4 files changed, 121 insertions(+), 10 deletions(-) create mode 100644 src/main/java/seedu/address/logic/commands/strategy/DeletePlayerCommand.java create mode 100644 src/main/java/seedu/address/logic/parser/strategy/DeletePlayerCommandParser.java diff --git a/src/main/java/seedu/address/logic/commands/strategy/DeletePlayerCommand.java b/src/main/java/seedu/address/logic/commands/strategy/DeletePlayerCommand.java new file mode 100644 index 00000000000..12b930d9e3f --- /dev/null +++ b/src/main/java/seedu/address/logic/commands/strategy/DeletePlayerCommand.java @@ -0,0 +1,64 @@ +package seedu.address.logic.commands.strategy; + +import static java.util.Objects.requireNonNull; +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; + +import seedu.address.logic.commands.Command; +import seedu.address.logic.commands.CommandResult; +import seedu.address.logic.commands.exceptions.CommandException; +import seedu.address.model.Model; + +/** + * Deletes a player in the strategy panel + */ +public class DeletePlayerCommand extends Command { + public static final String COMMAND_WORD = "del-player"; + + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Delete a player in the strategy panel. " + + "Parameters: " + + "PLAYER_NAME (must be non-empty and not more than 50 characters)\n" + + "Example: " + COMMAND_WORD + " " + + "Lionel Messi"; + + public static final String MESSAGE_NOT_IMPLEMENTED_YET = + "DeletePlayer command not implemented yet"; + + public static final String MESSAGE_SUCCESS = "Player deleted: %1$s"; + public static final String MESSAGE_PLAYER_NOT_FOUND = "Player not found in the list: %1$s"; + + private final String playerName; + + /** + * @param playerName the name of the player to be added + */ + public DeletePlayerCommand(String playerName) { + requireAllNonNull(playerName); + this.playerName = playerName; + } + + @Override + public CommandResult execute(Model model) throws CommandException { + if (playerName.replace("/s", "").isEmpty()) { + throw new CommandException( + String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddPlayerCommand.MESSAGE_USAGE)); + } + + if (!model.hasPlayer(playerName)) { + throw new CommandException( + String.format(MESSAGE_PLAYER_NOT_FOUND, playerName)); + } + requireNonNull(model); + model.deletePlayer(playerName); + return new CommandResult(String.format(MESSAGE_SUCCESS, playerName)); + } + + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof AddPlayerCommand // instanceof handles nulls + && (playerName.equals(((DeletePlayerCommand) other).playerName))); + } +} diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index e0f0df40c5a..ae024f576fb 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -26,6 +26,7 @@ import seedu.address.logic.commands.notecommands.DeleteStrengthCommand; import seedu.address.logic.commands.notecommands.DeleteWeaknessCommand; import seedu.address.logic.commands.strategy.AddPlayerCommand; +import seedu.address.logic.commands.strategy.DeletePlayerCommand; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.logic.parser.notecommandparsers.AddMiscCommandParser; import seedu.address.logic.parser.notecommandparsers.AddStrengthCommandParser; @@ -34,6 +35,7 @@ import seedu.address.logic.parser.notecommandparsers.DeleteStrengthCommandParser; import seedu.address.logic.parser.notecommandparsers.DeleteWeaknessCommandParser; import seedu.address.logic.parser.strategy.AddPlayerCommandParser; +import seedu.address.logic.parser.strategy.DeletePlayerCommandParser; /** * Parses user input. @@ -119,6 +121,9 @@ public Command parseCommand(String userInput) throws ParseException { case AddPlayerCommand.COMMAND_WORD: return new AddPlayerCommandParser().parse(arguments); + case DeletePlayerCommand.COMMAND_WORD: + return new DeletePlayerCommandParser().parse(arguments); + default: throw new ParseException(MESSAGE_UNKNOWN_COMMAND); } diff --git a/src/main/java/seedu/address/logic/parser/strategy/DeletePlayerCommandParser.java b/src/main/java/seedu/address/logic/parser/strategy/DeletePlayerCommandParser.java new file mode 100644 index 00000000000..a3748c29871 --- /dev/null +++ b/src/main/java/seedu/address/logic/parser/strategy/DeletePlayerCommandParser.java @@ -0,0 +1,28 @@ +package seedu.address.logic.parser.strategy; + +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; + +import seedu.address.logic.commands.strategy.DeletePlayerCommand; +import seedu.address.logic.parser.Parser; +import seedu.address.logic.parser.exceptions.ParseException; + +/** + * Parses input arguments and creates a new DeletePlayerCommand object + */ + +public class DeletePlayerCommandParser implements Parser { + /** + * Parses the given {@code String} of arguments in the context of the {@code DeletePlayerCommand} + * and returns an {@code DELETEPlayerCommand} object for execution. + * @throws ParseException if the user input does not conform the expected format + */ + public DeletePlayerCommand parse(String args) throws ParseException { + try { + String[] splitArgs = args.trim().split("\\s+", 1); + return new DeletePlayerCommand(splitArgs[0]); + } catch (IndexOutOfBoundsException pe) { + throw new ParseException( + String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeletePlayerCommand.MESSAGE_USAGE), pe); + } + } +} diff --git a/src/main/java/seedu/address/ui/StrategyPanel.java b/src/main/java/seedu/address/ui/StrategyPanel.java index 845e1ac6bcd..8f01e02c949 100644 --- a/src/main/java/seedu/address/ui/StrategyPanel.java +++ b/src/main/java/seedu/address/ui/StrategyPanel.java @@ -1,6 +1,7 @@ package seedu.address.ui; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.logging.Logger; @@ -79,22 +80,35 @@ public StrategyPanel(ObservableList playerList) { playerList.addListener((ListChangeListener) change -> { while (change.next()) { if (change.wasAdded()) { - for (String playerName : change.getAddedSubList()) { - if (table.containsKey(playerName)) { - continue; - } - StackPane stack = new StackPane(); - initStack(stack, playerName, 100, 100, 50, Color.BLUE); - playerView.getChildren().add(stack); - table.put(playerName, stack); - } + changeOnAdd(change.getAddedSubList()); } else if (change.wasRemoved()) { - ; + changeOnDelete(change.getRemoved()); } } }); } + private void changeOnAdd(List addedSubList) { + for (String playerName : addedSubList) { + if (table.containsKey(playerName)) { + continue; + } + StackPane stack = new StackPane(); + initStack(stack, playerName, 100, 100, 50, Color.BLUE); + playerView.getChildren().add(stack); + table.put(playerName, stack); + } + } + + private void changeOnDelete(List removeList) { + for (String playerName : removeList) { + if (table.containsKey(playerName)) { + playerView.getChildren().remove(table.get(playerName)); + table.remove(playerName); + } + } + } + private void initCircle(Circle circle, double rad, double x, double y, Paint color) { circle.setRadius(rad); circle.setFill(color); From 7d7daaf7f11c014f341a1b965e78a2d20fced49c Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Tue, 22 Mar 2022 22:37:26 +0800 Subject: [PATCH 151/455] Fix minor error in DeletePlayerCommand --- .../address/logic/commands/strategy/DeletePlayerCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/logic/commands/strategy/DeletePlayerCommand.java b/src/main/java/seedu/address/logic/commands/strategy/DeletePlayerCommand.java index 12b930d9e3f..fd3d677fd1c 100644 --- a/src/main/java/seedu/address/logic/commands/strategy/DeletePlayerCommand.java +++ b/src/main/java/seedu/address/logic/commands/strategy/DeletePlayerCommand.java @@ -58,7 +58,7 @@ public CommandResult execute(Model model) throws CommandException { @Override public boolean equals(Object other) { return other == this // short circuit if same object - || (other instanceof AddPlayerCommand // instanceof handles nulls + || (other instanceof DeletePlayerCommand // instanceof handles nulls && (playerName.equals(((DeletePlayerCommand) other).playerName))); } } From e409e7d768491f38ebccceba73870d4e552fe12d Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 23 Mar 2022 01:14:29 +0800 Subject: [PATCH 152/455] test --- docs/UserGuide.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index fb1f64ebf66..ec13f9ff4f7 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -65,8 +65,9 @@ Coach2K22 is a desktop app that helps busy sports coaches **organise their overw +## Contact Management -### Listing all contacts : `list` +### Listing all contacts : `list-t` Shows a list of all persons in our contact list. @@ -79,9 +80,13 @@ Adds a person to our contact list. Format: `add n/NAME p/PHONE_NUMBER e/EMAIL [t/TAG_NAME]…​` +

      + Contact Management
      :bulb: **Tip:** A person can have any number of tags (including 0)
      +
      > + Examples: * `add n/Johnson p/83918273 e/johnson@gmail.com t/Hustlers` From 2ce77cb3d2184578f7e74b2334571a3cdcee74c0 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 23 Mar 2022 01:21:47 +0800 Subject: [PATCH 153/455] test --- docs/UserGuide.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index ec13f9ff4f7..462b023bad3 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -41,9 +41,12 @@ Coach2K22 is a desktop app that helps busy sports coaches **organise their overw ## Features + +
      + Notes about the command format
      -**:information_source: Notes about the command format:**
      +**:information_source:**
      * Words in `UPPER_CASE` are the parameters to be supplied by the user.
      e.g. in `add n/NAME`, `NAME` is a parameter which can be used as `add n/John Doe`. @@ -64,6 +67,7 @@ Coach2K22 is a desktop app that helps busy sports coaches **organise their overw e.g. if the command specifies `help 123`, it will be interpreted as `help`.
      +
      ## Contact Management @@ -81,11 +85,11 @@ Adds a person to our contact list. Format: `add n/NAME p/PHONE_NUMBER e/EMAIL [t/TAG_NAME]…​`
      - Contact Management + Click for more tips
      :bulb: **Tip:** A person can have any number of tags (including 0)
      -
      > + Examples: From 7f16afb81ac1136cfb0adef6fd8b647cfa9400a5 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 23 Mar 2022 03:21:08 +0800 Subject: [PATCH 154/455] Update user guide --- docs/UserGuide.md | 260 +++++++++++++++++++++++++++++++++++----------- 1 file changed, 199 insertions(+), 61 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 462b023bad3..d90d2cab750 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -6,14 +6,15 @@ title: User Guide #User Guide -Coach2K22 is a desktop app that helps busy sports coaches **organise their overwhelming lists of contacts and messy weekly schedules.** It also provides them with a **platform to visualise defensive and offensive plays** as the game unfolds - * Table of Contents {:toc} -------------------------------------------------------------------------------------------------------------------- -## Quick start +## 1. Introduction +Coach2K22 is a desktop app that helps busy sports coaches **organise their overwhelming lists of contacts and messy weekly schedules.** It also provides them with a **platform to visualise defensive and offensive plays** as the game unfolds + +## 1.1 Quick Start 1. Ensure you have Java `11` or above installed in your Computer. @@ -23,30 +24,34 @@ Coach2K22 is a desktop app that helps busy sports coaches **organise their overw 1. Double-click the file to start the app. The GUI similar to the below should appear in a few seconds. Note how the app contains some sample data.
      ![Ui](images/Ui.png) - + 1. Type the command in the command box and press Enter to execute it. e.g. typing **`help`** and pressing Enter will list all the possible commands.
      Some example commands you can try: - * **`list`** : Lists all contacts. + * **`list-p`** : Lists all contacts. - * **`add`**`n/John Doe p/98765432 e/johnd@example.com` : Adds a contact named `John Doe`. + * **`add-p`**`n/John Doe p/98765432 e/johnd@example.com` : Adds a contact named `John Doe`. - * **`delete`**`3` : Deletes the 3rd contact shown in the current list. + * **`del-p`**`3` : Deletes the 3rd contact shown in the current list. * **`exit`** : Exits the app. 1. Refer to the [Features](#features) below for details of each command. --------------------------------------------------------------------------------------------------------------------- +## 1.2 User Guide Icons + +| Icon | Meaning | +|--------------------|---------------------------------------------------------------| +|:information_source:| This icon indicates important information to be taken note of | +|:bulb: | This icon indicates useful tips for the users | -## Features +-------------------------------------------------------------------------------------------------------------------- +## 2. Features -
      - Notes about the command format
      -**:information_source:**
      +**:information_source: Notes about the command format:**
      * Words in `UPPER_CASE` are the parameters to be supplied by the user.
      e.g. in `add n/NAME`, `NAME` is a parameter which can be used as `add n/John Doe`. @@ -67,82 +72,100 @@ Coach2K22 is a desktop app that helps busy sports coaches **organise their overw e.g. if the command specifies `help 123`, it will be interpreted as `help`.
      -
      -## Contact Management +## 2.1 Contact Management -### Listing all contacts : `list-t` +### 2.1.1 Listing all contacts : `list-p` Shows a list of all persons in our contact list. -Format: `list` +Format: `list-p` - -### Adding a person: `add` +### 2.1.2 Adding a person: `add-p` Adds a person to our contact list. -Format: `add n/NAME p/PHONE_NUMBER e/EMAIL [t/TAG_NAME]…​` +Format: `add-p n/NAME p/PHONE_NUMBER a/ADDRESS e/EMAIL [t/TAG_NAME]…​` + +Examples: +* `add-p n/Johnson p/83918273 a/Woodlands Avenue 4 e/johnson@gmail.com t/Hustlers` -
      - Click for more tips
      :bulb: **Tip:** A person can have any number of tags (including 0)
      -
      +### 2.1.3 Deleting a person: `del-p` -Examples: -* `add n/Johnson p/83918273 e/johnson@gmail.com t/Hustlers` +Delete a person from our contact list. +Format: `del INDEX` -### Deleting a person: `del` +Examples: +* `del-p 1` deletes the first person in the contact list. -Delete a person from our contact list. +### 2.1.4 Editing a person: `edit-p` -Format: `del INDEX` +Edit a person from our contact list. + +Format: `edit-p INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [t/TAG_NAME]…​` Examples: -* `del 1` deletes the first person in the contact list. +* `edit-p 1 p/98273712 e/johndoe@example.com` edits the phone number and email addresses of the 1st person into `98273712` and `johndoe@example.com` respectively. +* `edit-p 2 n/Alan Walker t/` edits the name of the 2nd person and clear all existing tags. + +### 2.1.5 Clearing all entries: `clear-p` +Clear all entries from our contact list. -### Adding a tag : `tag-add` +Format: `clear-p` + +### 2.1.6 Adding a tag : `tag-add-p` Add tags to a selected person from our contact list. -Format: `tag-add INDEX TAG_NAME` +Format: `tag-add INDEX TAG_NAME` Examples: * `tag-add 1 Public Relations` adds the tag `Public Relations` to the first person in the contact list. -### Deleting a tag : `tag-del` +### 2.1.7 Deleting a tag : `tag-del-p` Add tags to a selected person from our contact list. -Format: `tag-del INDEX TAG_INDEX` +Format: `tag-del-p INDEX TAG_NAME` Examples: -* `tag-del 1 1` deletes the first tag from the first person in the contact list. +* `tag-del 1 Team` deletes the tag `Team` from the first person in the contact list. -### Locating persons by keyword : `find` +### 2.1.8 Locating persons by keyword : `find-p` Find persons matching any of the given keywords from our contact list. Users can choose to find by `NAME`(s), `TAG`(s), or both. Format: `find [n/NAME]…​ [t/TAG]…​` -* One of the optional items e.g. `[n/NAME]` must be present for the command to work. - Examples: -* `find n/Alan t/team1` -* `find n/Alan` -* `find t/team1` -* `find n/Alex n/Charlotte t/team1 t/team2` +* `find-p n/Alan t/team1` +* `find-p n/Alan` +* `find-p t/team1` +* `find-p n/Alex n/Charlotte t/team1 t/team2` +
      -### Adding a note : `note-add` +**:information_source: Key things to take note of:**
      + +* One of the optional items e.g. `[n/NAME]` must be present for the command to work. +* The search is case-insensitive e.g. `hans` will match `Hans`. +* The order of the keywords does not matter e.g. `n/hans n/bo` will return the same result as `n/bo n/hans`. +* Only full words will be matched e.g. `Han` will not match `Hans`. +* Persons matching at least one keyword will be returned e.g. `n/Hans n/Bo` will return the persons `Hans Gruber` and `Bo Yang`. + +
      + + +### 2.1.9 Adding a note : `note-add` Add a note to a selected person from our contact list. @@ -152,7 +175,7 @@ Examples: * `note-add 1 Surgery Scheduled for tomorrow` adds the note "Surgery Scheduled for tomorrow" to the 1st person in the contact list. -### Deleting a note : `note-del` +### 2.1.10 Deleting a note : `note-del` Delete the note to a selected person from our contact list. @@ -166,39 +189,154 @@ Examples: * `note-del 1 1` deletes the first note from the first person in the contact list. -### Listing all the commands : `help` +## 2.2 Task Management + +### 2.2.1 Listing all tasks : `list-t` -Show a list of all the commands with their respective format and a short description of what they do. +Shows a list of all tasks in our task list. -Format: `help` +Format: `list-t` + +### 2.2.2 Adding a task: `add-t` + +* (To be filled up by @pragya) + +
      +**:information_source: Key things to take note of:**
      + +* `PERSON_NAME` has to be present in the contact list for them to be tagged to a task. + +
      + +
      :bulb: **Tip:** +A task can have any number of tags (including 0) +
      +### 2.2.3 Deleting a task: `del-t` -### Exiting the program : `exit` +* (To be filled up by @pragya) + +### 2.2.4 Editing a person: `edit-t` + +* (To be filled up by @pragya) + +### 2.2.5 Clearing all entries: `clear-t` + +* (To be filled up by @abdul) + +### 2.2.6 Adding a tag : `tag-add-t` + +* (To be filled up by @juayhee) + +### 2.2.7 Deleting a tag : `tag-del-t` + +* (To be filled up by @juayhee) + +### 2.2.8 Locating tasks by keyword : `find-t` + +Find tasks matching any of the given keywords from our task list. +Users can choose to find by `NAME`(s), `TAG`(s), or both. + +Format: `find-t [n/NAME]…​ [t/TAG]…​` + +Examples: +* `find-t n/Meeting t/team1` +* `find-t n/Meeting` +* `find-t t/team1` +* `find-t n/Meeting n/Training t/team1 t/team2` + +
      + +**:information_source: Key things to take note of:**
      + +* One of the optional items e.g. `[n/NAME]` must be present for the command to work. +* The search is case-insensitive e.g. `meeting` will match `Meeting`. +* The order of the keywords does not matter e.g. `n/meeting n/shareholder` will return the same result as `n/shareholder n/meeting`. +* Only full words will be matched e.g. `Meeting` will not match `Meetings`. +* Tasks matching at least one keyword will be returned e.g. `n/Meeting n/Shareholders` will return the persons `Engagement with Shareholders` and `Annual Meeting`. + +
      + +## 2.3 Strategic Planning + +### 2.3.1 Load new background image: `load-court` + +* (To be filled up by @abdul) + +### 2.3.2 Clearing all entries: `clear-s` + +* (To be filled up by @xiaoteng) + +### 2.3.2 Adding new players: `add-s` + +* (To be filled up by @xiaoteng) + +### 2.3.3 Moving a player to a coordinate: `move` + +* (To be filled up by @xiaoteng) + +### 2.3.4 Export strategy board as image file: `export` + +* (To be filled up by pragya) + +### 2.3.5 Exiting the program : `exit` Exits the program. Format: `exit` + -------------------------------------------------------------------------------------------------------------------- -## FAQ +## 3. FAQ **Q**: How do I transfer my data to another Computer?
      **A**: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous Coach2k22 home folder. -------------------------------------------------------------------------------------------------------------------- -## Command summary - -| Action | Format, Examples | -|--------------|--------------------------------------------------------------------------------------------------------------------| -| **List** | `list` | -| **Add** | `add n/NAME p/PHONE_NUMBER e/EMAIL [t/TAG]…​`
      e.g., `add n/Johnson p/83918273 e/johnson@gmail.com t/Hustlers` | -| **Del** | `del INDEX`
      e.g., `del 1` | -| **Add Tag** | `tag-add INDEX TAG_NAME`
      e.g., `tag-add 1 Public Relations` | -| **Del Tag** | `tag-del INDEX TAG_INDEX`
      e.g., `tag-del 1 1` | -| **Find** | `find [n/NAME]…​ [t/TAG]…​`
      e.g., `find n/Alex n/Charlotte t/team1 t/team2` | -| **Add Note** | `note-add INDEX NOTE_DESCRIPTION`
      e.g., `note-add 1 Surgery Scheduled for tomorrow` | -| **Del Note** | `note-del INDEX NOTE_INDEX`
      e.g., `note-del 1 1` | -| **Help** | `help` | -| **Exit** | `exit` | +## 4. Command summary + +## 4.1 Contact Management +| Action | Format, Examples | +|--------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **List** | `list-p` | +| **Add** | `add-p n/NAME p/PHONE_NUMBER a/ADDRESS e/EMAIL [t/TAG_NAME]…​`
      e.g., `add-p n/Johnson p/83918273 a/Woodlands Avenue 4 e/johnson@gmail.com t/Hustlers` | +| **Del** | `del-p INDEX`
      e.g., `del-p 1` | +| **Edit** | `edit-p INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [t/TAG_NAME]…​`
      e.g., `edit-p 1 p/98273712 e/johndoe@example.com` | +| **Clear** | `clear-p` | +| **Add Tag** | `tag-add-p INDEX TAG_NAME`
      e.g., `tag-add-p 1 Public Relations` | +| **Del Tag** | `tag-del-p INDEX TAG_NAME`
      e.g., `tag-del-p 1 Team` | +| **Find** | `find-p [n/NAME]…​ [t/TAG]…​`
      e.g., `find-p n/Alex n/Charlotte t/team1 t/team2` | +| **Add Note** | `note-add INDEX NOTE_DESCRIPTION`
      e.g., `note-add 1 Surgery Scheduled for tomorrow` | +| **Del Note** | `note-del INDEX NOTE_INDEX`
      e.g., `note-del 1 1` | + +## 4.2 Task Management +| Action | Format, Examples | +|--------------|--------------------------------------------------------------------------------------------| +| **List** | `list-p` | +| **Add** | (to be filled up by @pragya) | +| **Del** | (to be filled up by @pragya) | +| **Edit** | (to be filled up by @pragya) | +| **Clear** | (to be filled up by @abdul) | +| **Add Tag** | (to be filled up by @juayhee) | +| **Del Tag** | (to be filled up by @juayhee) | +| **Find** | `find-t [n/NAME]…​ [t/TAG]…​`
      e.g., `find-p n/Meeting n/Training t/team1 t/team2`| + +## 4.2 Strategic Planning +| Action | Format, Examples | +|----------------|--------------------------------------------------------------------------------------------| +| **Load Court** | (to be filled up by @abdul) | +| **Add** | (to be filled up by @xiaoteng) | +| **Clear** | (to be filled up by @xiaoteng) | +| **Move** | (to be filled up by @xiaoteng) | +| **Export** | (to be filled up by @pragya) | +| **Exit** | `exit` | + +-------------------------------------------------------------------------------------------------------------------- + +## 5. Glossary +| Term | Definition | +|----------------|----------------------------------------------------------------------------------| +| **GUI** | The *Graphical User Interface (GUI)* allows program interaction through graphics | +| **CLI** | The *Command Line Interface (CLI)* allows program interaction through commands | \| From bc79c1f09c860a99502537616e07eafcddf746f9 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 23 Mar 2022 03:30:27 +0800 Subject: [PATCH 155/455] Fix UG bugs --- docs/UserGuide.md | 66 +++++++++++++++++++++++------------------------ 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index d90d2cab750..8b570f70372 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -14,7 +14,7 @@ title: User Guide ## 1. Introduction Coach2K22 is a desktop app that helps busy sports coaches **organise their overwhelming lists of contacts and messy weekly schedules.** It also provides them with a **platform to visualise defensive and offensive plays** as the game unfolds -## 1.1 Quick Start +### 1.1 Quick Start 1. Ensure you have Java `11` or above installed in your Computer. @@ -38,7 +38,7 @@ Coach2K22 is a desktop app that helps busy sports coaches **organise their overw 1. Refer to the [Features](#features) below for details of each command. -## 1.2 User Guide Icons +### 1.2 User Guide Icons | Icon | Meaning | |--------------------|---------------------------------------------------------------| @@ -73,15 +73,15 @@ Coach2K22 is a desktop app that helps busy sports coaches **organise their overw -## 2.1 Contact Management +### 2.1 Contact Management -### 2.1.1 Listing all contacts : `list-p` +#### 2.1.1 Listing all contacts : `list-p` Shows a list of all persons in our contact list. Format: `list-p` -### 2.1.2 Adding a person: `add-p` +#### 2.1.2 Adding a person: `add-p` Adds a person to our contact list. @@ -94,7 +94,7 @@ Examples: A person can have any number of tags (including 0) -### 2.1.3 Deleting a person: `del-p` +#### 2.1.3 Deleting a person: `del-p` Delete a person from our contact list. @@ -103,7 +103,7 @@ Format: `del INDEX` Examples: * `del-p 1` deletes the first person in the contact list. -### 2.1.4 Editing a person: `edit-p` +#### 2.1.4 Editing a person: `edit-p` Edit a person from our contact list. @@ -113,13 +113,13 @@ Examples: * `edit-p 1 p/98273712 e/johndoe@example.com` edits the phone number and email addresses of the 1st person into `98273712` and `johndoe@example.com` respectively. * `edit-p 2 n/Alan Walker t/` edits the name of the 2nd person and clear all existing tags. -### 2.1.5 Clearing all entries: `clear-p` +#### 2.1.5 Clearing all entries: `clear-p` Clear all entries from our contact list. Format: `clear-p` -### 2.1.6 Adding a tag : `tag-add-p` +#### 2.1.6 Adding a tag : `tag-add-p` Add tags to a selected person from our contact list. @@ -129,7 +129,7 @@ Examples: * `tag-add 1 Public Relations` adds the tag `Public Relations` to the first person in the contact list. -### 2.1.7 Deleting a tag : `tag-del-p` +#### 2.1.7 Deleting a tag : `tag-del-p` Add tags to a selected person from our contact list. @@ -139,7 +139,7 @@ Examples: * `tag-del 1 Team` deletes the tag `Team` from the first person in the contact list. -### 2.1.8 Locating persons by keyword : `find-p` +#### 2.1.8 Locating persons by keyword : `find-p` Find persons matching any of the given keywords from our contact list. Users can choose to find by `NAME`(s), `TAG`(s), or both. @@ -165,7 +165,7 @@ Examples: -### 2.1.9 Adding a note : `note-add` +#### 2.1.9 Adding a note : `note-add` Add a note to a selected person from our contact list. @@ -175,7 +175,7 @@ Examples: * `note-add 1 Surgery Scheduled for tomorrow` adds the note "Surgery Scheduled for tomorrow" to the 1st person in the contact list. -### 2.1.10 Deleting a note : `note-del` +#### 2.1.10 Deleting a note : `note-del` Delete the note to a selected person from our contact list. @@ -189,15 +189,15 @@ Examples: * `note-del 1 1` deletes the first note from the first person in the contact list. -## 2.2 Task Management +### 2.2 Task Management -### 2.2.1 Listing all tasks : `list-t` +#### 2.2.1 Listing all tasks : `list-t` Shows a list of all tasks in our task list. Format: `list-t` -### 2.2.2 Adding a task: `add-t` +#### 2.2.2 Adding a task: `add-t` * (To be filled up by @pragya) @@ -212,27 +212,27 @@ Format: `list-t` A task can have any number of tags (including 0) -### 2.2.3 Deleting a task: `del-t` +#### 2.2.3 Deleting a task: `del-t` * (To be filled up by @pragya) -### 2.2.4 Editing a person: `edit-t` +#### 2.2.4 Editing a person: `edit-t` * (To be filled up by @pragya) -### 2.2.5 Clearing all entries: `clear-t` +#### 2.2.5 Clearing all entries: `clear-t` * (To be filled up by @abdul) -### 2.2.6 Adding a tag : `tag-add-t` +#### 2.2.6 Adding a tag : `tag-add-t` * (To be filled up by @juayhee) -### 2.2.7 Deleting a tag : `tag-del-t` +#### 2.2.7 Deleting a tag : `tag-del-t` * (To be filled up by @juayhee) -### 2.2.8 Locating tasks by keyword : `find-t` +#### 2.2.8 Locating tasks by keyword : `find-t` Find tasks matching any of the given keywords from our task list. Users can choose to find by `NAME`(s), `TAG`(s), or both. @@ -257,29 +257,29 @@ Examples: -## 2.3 Strategic Planning +### 2.3 Strategic Planning -### 2.3.1 Load new background image: `load-court` +#### 2.3.1 Load new background image: `load-court` * (To be filled up by @abdul) -### 2.3.2 Clearing all entries: `clear-s` +#### 2.3.2 Clearing all entries: `clear-s` * (To be filled up by @xiaoteng) -### 2.3.2 Adding new players: `add-s` +#### 2.3.2 Adding new players: `add-s` * (To be filled up by @xiaoteng) -### 2.3.3 Moving a player to a coordinate: `move` +#### 2.3.3 Moving a player to a coordinate: `move` * (To be filled up by @xiaoteng) -### 2.3.4 Export strategy board as image file: `export` +#### 2.3.4 Export strategy board as image file: `export` * (To be filled up by pragya) -### 2.3.5 Exiting the program : `exit` +#### 2.3.5 Exiting the program : `exit` Exits the program. @@ -297,7 +297,7 @@ Format: `exit` ## 4. Command summary -## 4.1 Contact Management +### 4.1 Contact Management | Action | Format, Examples | |--------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------| | **List** | `list-p` | @@ -311,7 +311,7 @@ Format: `exit` | **Add Note** | `note-add INDEX NOTE_DESCRIPTION`
      e.g., `note-add 1 Surgery Scheduled for tomorrow` | | **Del Note** | `note-del INDEX NOTE_INDEX`
      e.g., `note-del 1 1` | -## 4.2 Task Management +### 4.2 Task Management | Action | Format, Examples | |--------------|--------------------------------------------------------------------------------------------| | **List** | `list-p` | @@ -323,7 +323,7 @@ Format: `exit` | **Del Tag** | (to be filled up by @juayhee) | | **Find** | `find-t [n/NAME]…​ [t/TAG]…​`
      e.g., `find-p n/Meeting n/Training t/team1 t/team2`| -## 4.2 Strategic Planning +### 4.3 Strategic Planning | Action | Format, Examples | |----------------|--------------------------------------------------------------------------------------------| | **Load Court** | (to be filled up by @abdul) | @@ -339,4 +339,4 @@ Format: `exit` | Term | Definition | |----------------|----------------------------------------------------------------------------------| | **GUI** | The *Graphical User Interface (GUI)* allows program interaction through graphics | -| **CLI** | The *Command Line Interface (CLI)* allows program interaction through commands | \| +| **CLI** | The *Command Line Interface (CLI)* allows program interaction through commands | From c023d5583a52ce731146aec8d71f567078f5df66 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 23 Mar 2022 03:34:57 +0800 Subject: [PATCH 156/455] Fix UG bug --- docs/UserGuide.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 8b570f70372..2d574384858 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -201,7 +201,8 @@ Format: `list-t` * (To be filled up by @pragya) -
      @@ -342,4 +342,4 @@ Format: `exit` | Term | Definition | |--------------------|----------------------------------------------------------------------------------| |**GUI** | The *Graphical User Interface (GUI)* allows program interaction through graphics | -|**CLI** | The *Command Line Interface (CLI)* allows program interaction through commands | \ No newline at end of file +|**CLI** | The *Command Line Interface (CLI)* allows program interaction through commands | From 9fc29f4f59dba5796958fa4e69c8315d543533b5 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 23 Mar 2022 08:51:27 +0800 Subject: [PATCH 162/455] Fix repo error --- docs/AboutUs.md | 2 +- docs/DeveloperGuide.md | 22 ++++++++++----------- docs/UserGuide.md | 2 +- src/main/resources/view/PersonListCard.fxml | 2 +- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 5af3917f189..ebf3fc00ada 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -18,7 +18,7 @@ You can reach us at the email `seer[at]comp.nus.edu.sg` [[blog](https://x1a0teng.page/posts/about/)] * Role: Documentation and Integration -* Responsibilities: Ensure project documentation in good quality +* Responsibilities: Ensure project documentation in good quality and various parts of codes can be integrated to create a whole. ### Tan Juay Hee diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index da73055c612..37e90b33096 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -255,7 +255,7 @@ _{Explain here how the data archiving feature will be implemented}_ ### Product scope -**Target user profile**: +**Target user profile**: * is a coach managing a team of players * has a need to manage a significant number of players @@ -305,9 +305,9 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli **Extensions** * 1a. The parameters supplied by the user is invalid. - + * 1a1. Coach2K22 shows an error message. - + Use case ends. * 1b. Compulsory parameters not supplied by the user. @@ -338,7 +338,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli * 3a1. Coach2K22 shows an error message. Use case resumes at step 2. - + **Use case: Add a note to a person** **MSS** @@ -419,7 +419,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli * 1a1. Coach2K22 shows an empty list. Use case ends. - + * 1b. The keyword provided is not indicated by a prefix e.g. `n/` or `t/`. * 1b1. Coach2K22 shows an error message. @@ -431,13 +431,13 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli * 1c1. Coach2K22 shows an error message. Use case ends. - + * 1d. Missing keyword after a prefix is given e.g. `n/` or `t/`. - + * 1d1. Coach2K22 shows an error message. + + Use case ends. - Use case ends. - **Use case: Add a tag to a person** **MSS** @@ -446,7 +446,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli 2. Coach2K22 shows a list of persons 3. User requests to attach a new tag to a person 4. Coach2k22 shows the new details of the person - + Use case ends. **Extensions** @@ -483,7 +483,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli * 3b1. Coach2K22 shows an error message. Use case ends. - + *{More to be added}* ### Non-Functional Requirements diff --git a/docs/UserGuide.md b/docs/UserGuide.md index fb1f64ebf66..5ba1f99f5db 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -124,7 +124,7 @@ Users can choose to find by `NAME`(s), `TAG`(s), or both. Format: `find [n/NAME]…​ [t/TAG]…​` -* One of the optional items e.g. `[n/NAME]` must be present for the command to work. +* One of the optional items e.g. `[n/NAME]` must be present for the command to work. Examples: * `find n/Alan t/team1` diff --git a/src/main/resources/view/PersonListCard.fxml b/src/main/resources/view/PersonListCard.fxml index 167f550988f..040520700f0 100644 --- a/src/main/resources/view/PersonListCard.fxml +++ b/src/main/resources/view/PersonListCard.fxml @@ -69,4 +69,4 @@ - \ No newline at end of file + From a010a312b403dc5fe600231c266f65d07cebf7ea Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Wed, 23 Mar 2022 11:00:40 +0800 Subject: [PATCH 163/455] Modify implementation to load external folder --- {docs/images/courts => courts}/basketball.png | Bin .../java/seedu/address/model/image/Image.java | 2 +- .../java/seedu/address/ui/StrategyPanel.java | 3 ++- src/main/resources/images/basketball.png | Bin 118569 -> 0 bytes 4 files changed, 3 insertions(+), 2 deletions(-) rename {docs/images/courts => courts}/basketball.png (100%) delete mode 100644 src/main/resources/images/basketball.png diff --git a/docs/images/courts/basketball.png b/courts/basketball.png similarity index 100% rename from docs/images/courts/basketball.png rename to courts/basketball.png diff --git a/src/main/java/seedu/address/model/image/Image.java b/src/main/java/seedu/address/model/image/Image.java index f4b0e6f1fd0..bff0af19f0e 100644 --- a/src/main/java/seedu/address/model/image/Image.java +++ b/src/main/java/seedu/address/model/image/Image.java @@ -6,7 +6,7 @@ * Represents an Image in Coack2K22. */ public class Image { - private static final String FILE_PATH = "docs/images/courts/"; + private static final String FILE_PATH = "docs/images/courts/"; //todo: Change filepath to reflect creating new directory outside of JAR file public static final String MESSAGE_CONSTRAINTS = "Image must be a valid .png image and contained in \'" + FILE_PATH + "\'"; diff --git a/src/main/java/seedu/address/ui/StrategyPanel.java b/src/main/java/seedu/address/ui/StrategyPanel.java index 84360f3e471..934a9ed1ab3 100644 --- a/src/main/java/seedu/address/ui/StrategyPanel.java +++ b/src/main/java/seedu/address/ui/StrategyPanel.java @@ -1,5 +1,6 @@ package seedu.address.ui; +import java.io.File; import javafx.event.EventHandler; import javafx.fxml.FXML; import javafx.scene.Cursor; @@ -65,7 +66,7 @@ public void handle(MouseEvent t) { */ public StrategyPanel() { super(FXML); - strategyImage.setImage((new Image(this.getClass().getResourceAsStream(("/images/basketball.png"))))); + strategyImage.setImage((new Image((new File("courts/basketball.png").toURI().toString())))); strategyImage.fitWidthProperty().bind(strategyAnchorPane.widthProperty()); strategyImage.fitHeightProperty().bind(strategyAnchorPane.heightProperty()); strategyImage.toBack(); diff --git a/src/main/resources/images/basketball.png b/src/main/resources/images/basketball.png deleted file mode 100644 index 682e21077e513ecc1a56f7bd2d6cb8e3b9a41c73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 118569 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

      7b)*N;aA}Lp6f1D2vV-r_Gd|T3jbQW=TZdsg zc(q_D^qW1ajTV?ydXF6qs!kB>ceuVVMAl|9A;LInKKR z)i~JZ78fZ15-TtG2v63M^eCLOBtE7EFn{VtG}JoJ+MwkI3vC5^m6{g_2ac}| zSTi^uEWDg(skmXu=2s~8^;O&`<%tQ^k+34wY($uLGd@Aa&GeSrQY0R95}!8?&cHO1 z;V*WZJf^L!{Qxm-o5H@U{tS46@{Rss)p5KfC@c~D^cCD36Nos1AW**Sy&u7-&!kPt zH|W#>4InF60+pRFJcH2E4EiKyuykKc|=^e5(z(|0gc)%H_`SmZfS;4 zk)Z~hMSX>lxUla&qe7@`Put)TY%9p{?bG$8zvWDt3oFF!NtVt#jLLJ|4z~kggoVGG zi12`!pnC6#ZrYiVoGY~Ab~X2M-Htc#(2X>x&CP^{HwWp0#=~pH0WSzCIV+Vc&v^OnJB*O zDaiGjsvIZ3SD@sJEyskN$KkzzRwo+I;cG4ycNcwfxEohnb}X;~rP1OSKB$iS5Xvm? zVQEZjMD3qPvLVi6#ueTgX{wr@igW$y*3p+AJBlo$R#m_*zq-q|xB7SAm#Cu@+e}&m z3J?fy*J0;$4q1NUctoWnms92@bnjXV4(xN*)U`et9H~Ad*^RhCd;za_d2HaFsphb& zt(o1q(=EE|t>Dn@`7ObR;3Rs39)r8lZaxD-XKL+soh~lM{-x z&cQ!2VIfvnzT|J!*2v{%Gzpghe3!NWT;oZ5OOGY%$CX9+@(-8&fo(nJwE^e=(QWqs z%MtqDBNUD^LP3oX%D@bE|9r>K^Lzw52_4Mz-)?(Rg}#u;bp1sKU%HTc(f50HVV--S zs=(+L*ex;YF%TxoZ@3E#uZ0d-Fa%p7eudk`gM={XQ2ogP@`Va1m=mPHurMPDh~&{7 zS_c)3;GVM6Z6MJyIrh5~bt)~6NnZjks;e_Z>QY4-le(g}kYIY{VLntCWCT%1HC#0Z z0fTI`%Ydls1l6se559n*1(~6iwFEE&r{|zWAVkz{ijz&8Fq`dAj9_U#VCo(q_}OS` zI^Dp&qA*I*?-Kk9(=erMzICQ z7+Kb8-0b?QPnwr|Ti zyHLj{d99%oU@Sy$WF$lNt$hp;ZEGfxVnZ{0?7(2g7NW9fWsayq`;k^1UzeA~#tNf{rbS|Bf&O zYC=9h(CdL%rGE?AqB9}F?)I#Az(C-R{;-Q{=!UHDX-SfiH>6~R$|p&e@x2yOg{zgN zeMQ&0<;i;$L1fVmG_9I(`buD!6BxxDtv+Njca`PpzL>t{l%!*ThfY*w8}%^Fc)*zU zzJk^kofh-pvDXeuBV;4)a8WxN#$13nGQR7u7N0GLjm+m6E~@C%QMh#&Z{AH_o6y}( z*5I~w5UX(1d$oEfw z4uLESVc~20ThG}RHrEj&O$z>C$PV+RI@}lqaTEvxO*`^ezIE&Y(m9(OK=i-3WD$Xr8q>}MJB-A`px2m*roLpK%EYPy6?@UMt#Iq*!o&npC3>qH)ULsC zQR_{Hl0O*0`p=GIRU1s}o1m`KtZGV#5um8K&@sx{cepXSlx4yI3NN`8*n*lF&Wxpm z4&?P8P!*}8)~%Ve7!qG>vQI6h##VyimLl*`qup!2K_P3<7cj8vLH(Hw_}urw2m6o> zUIBFE!|zwzh2f)ys1Mnk7epUFSs-=XanYs~TQ{-$hyr_XhQ~F?2h50H0YC0fk6;S{ zy`K^nJNOAG&1*Xf_*fx_4unO3l(GNpYW>k1_s9T@=L2+zW+a%-2YS2Y3vY+OnZ=87 z!iQ}IWalFLwlh4NF#u7a{UrAZCe$u7-B~Xne;7Dm`3^Rpxg~`( z{obc{^o&l67eD+J!ruqmT;L?dxpkoH>n)kvts9b?p1G=#u;}}UI4(J)=zx6uQ%cjA z+qO0PJSs-(n?hz>g5{@&G6bmDtYWU29H4P_yqo@pk)dmn z2ZYRxSTMN!dG;x8s8OS3;CMoGYEaB9Pw1n@GttlOGNcc90e0<2TV)d63q{;T z+U)$L3+8Lw{Yw`t6UD4br`I6E__X5HB(Vu~-h@)2Vn7p+|AT?H4+EMOHm`LUiN%UGf?IvaGXt{7_LSg8Ux3Uq*DaJ1 zRGY*W$l%*7K}{M28*3&2cX+}Eag+%Zr_N-BJ!<0)4}p#x>Pei|)|Ng&#%pND5$L^T zk)F!k|JaB@1q&1^mZna^-gd(b7o0j1O;%Wad(9X(Tp)u`2Zc!tw#>7&L_9t76J`tr zFyjYbY8H*rQW5p>QUdM55vYXSMoom&goc1{$vYm?#5AH<$0*8)?a#8*w$OGKO>U?@ zvWbx!#)#fy9rCvyTBm%QQiQ0o(;%pU@xH`ej9}FM z%Kok+c#VCV>1X4BoxwbN-)Fp|!wk`EEi;)7+>yf3s}A-?p#Y$;=>%QbZ15)8Uu(xZ z0CwB+y@_(A7o-dR-@ac)a$ql24be3c&9$vQ8n-xCBNf9b@4}qkf(4y(G#PFl67ff`QU&5Z)OF#~H ze`)ibd~Q&zr@$&M;+#WesTW6T;U#eu_Hg3s(W}*rUsADcnc~^72f90>w+xXI zT&t-c{PbtgD;a#<*IF5;ltXt$S73W12@#)RrY9UPON3ukl)(6wL~b7Gzu52VF3iPJ zse|0j?18b=FzDMhQ4l>iYh|bx^XS!Se^K%-ghixIqw=Aq2{VXG$D+Xlm;x&q!4_a z6rVKbiw-Na<*ea*qkMhew8Ncl$5y0`+e(GhZ)>grt`_lv`_oH*X^uNGN=BVEuKs)2 zdZD$5)7Ysr0@?o5sRyc|jEn2iDK(e9>UWpqAL!>J5r)a2*#ZbaG31sMCK#vwQ^*t4 zXxxV2UW06qc8iDy-PKyk)qm*;LD()J*7lrNSOBLth$9C(5H%`+`ryzH0;xm*s<0!2 zNumtc`joA?Og$yd7!$e6`8>B$2%g8`Qe#>scctsahF!8OgmyG#$qQHBV4O|b$a!?` z`_6NV{{BukGhel&Ex#*BM|pYBn=W&N3cw(Zfg2fck{hcE87*FxOId5!eA!n0#DvVR$ zZt~+P(8EIC`{VE5(F88t4-Oz`79?`*k2@HI8T*&z5G3yde9?$N=WBk@i!Cy$6QH*J z$Qn-h`xD*IdvsSvGL*y)d&*f?-$-~4VPY4>rZmiU$4^G|ZDeAvlNdExE3-@;lV~z~ z-Vewo-r2ktGE0doP5gA>vwo7dW&!!%efQ3KK%T zJKJBk=F@Umyl;1;G?aC=PtApVjP}{Z^TD8JzSRj|1YQt5W2sqJW;2-7`*@pg?cl_s zvRCR9tkkX{nD}&s2gcH0?sQq8Xx=3u5O}q*TovU`Py5Fh51EA@x#r^ADv=m5A<^d* z*}}D|s->VVm!k!)@SE@!wmFMS&XEZvQ);C#qiLaOZ4wb>lnPxuKcUN2t&e@0OVqsh zo7mlSv@)B?90%VG{fU7XukBXY@}Zj`2^(HFW>C9M!=rnT`!G;Nz_I* ztKP|7so;*Je9|vDD{6`t)0G-^=UW*;O%qhdxLp_ojYA@zTtYIuK!qj{bmp989~uTh zU%WYsJRz3~gseec=wTG~fwe%^+>LLS_dOVyS)mc{W-#ge}gc#qNeUK9HTwByktW@j-VO@kJVMY9xm|9peR7 z_~zM6(a&**bk*I2NQ9Z+DKeY6i*TRh+C17V>|9Pd{BgSS}!j7k8B#hX!;6nQX1|myt_P1{z5g2tvtzJfkM$tPUqqj1^ zX9-fQM|EnBLXx%k5N=44!twl{NV~l<>_J&$S2j{np|eJ?kjdr=fv<{C=;v+-xSW~T z%=(k3>+S*rQq~12M~pnkijJbR4>01Cztn-bn=q+Q?OWPZv;sAUl1kQg@{6U8jZhOu z7i>c3!H6Pq;`+z{PP1HRz{^b3!R@z`cj8YdZTqYER9%vC0KhPRf^rP{s}xZW-8>^_ zo9;QfV)$Lfbnsld;7JVjdWT1%{GM;Z`kfeVYkDJxubVd_5D?q@-SZ-3XQ@Gk7L@w?Orwkre?y{Wz)&q?CuJ?1?@8mz>(!)|*mfRJyKa+2@55o=y+5;i+5L3VQyOaJpRJ#S*)M_XCp^;5e!!2HsSS`Eg&GN(GuHC zLJh^xwk1*nGX(ASm>0&qE_$~Av(@{O2(h?=lQ97YQNij1wzcMX7j`lGf(ufS)#To+ zT6Cf2ih**;GpUM52iFg&n^=IpKYB_;sV|3<*uES$GftF?;n^7VHAy{?_%vc$=aNs4 zJpp70tt)sYr7&%iy6@QHv#Qn3W$aa2#S!w)_{MTgnbEc-r>f*!?ko3ht`#p3pEYtk zcl|=rJE$`K>g@W-WwxoSoEhb7t`;SoJD44V>R41lb#&&mdmmJF zPMuFGXM>aVwH+~1$RV~};)NtO;LujjQLs>0!kTiVwHs|tSNT2|&xO0a(!*ZDJwDFs zM$!-dz&|8hbDQyU!rH9HNptGd`rOT)I<)~&CE96%qn7f-l@Z6Y4mR)2FHOgU@8}9- z9vBcAC^5A#J6)~3X+S(>yYjw1F%#oEmR6`+x58b(ISvm!ix600(<>~EbuM%*J6-Mg z{6?;ZMQf6T+cQsd`Pb!P+3x zX#B4qm8TDEioIc<`1&@&8BADkK(N7=WF3>#K$ga6Mv&?>_3H1cElzYuLCQ{x{ zKRj2-y~wUvJ8k;9MNp=nF7H728a^w7G3qif9O=cWE8LAtHuW&RF5|MP#W;1W^#EAV zYv|$c`8!tUMJv=FS8wG?Nn*b4*ZVS5vglBGV=8($EO{$Ly@66`j0o zXy?2oH+1I3CMr?fL@A?X`K^|2HF64GS}r+mwJJ)&>xlcq!O?KPKDT8-{K9hI_;g&J zQrt~TCp4Dh`(!!#=FXZ;Eh~4N|{HWMvdvUh6@Oaq;O%|Mz zQ#2;uUjRr=*omHp&FyLD-VZ4BS7zAGcCg|i5Hqs*`7M}X*DQtNWaot9+)HDWP7%2` zZrkX5fk@1lCP5b$dMwzxOqwi}v(VX#sKx5k#wRM6Lfx3?oj-Z9f6Mg}BZDqFPjOla z>gwtkS3rlHlRk;!%x9dwrOBP07FbaqUiPDJ{gj=SjvqI1@xmy0HRixZ|9GlpBbDp$m^ep*<|hGo=RHZN?+Xu zV*m|X%I1+pdp{0t%<9ihOCFnE3@ge}-4glEyvqc>lnECHvmdTr2QC_CcNw|>SWKTQ zWFmTNVyQ3M@+L*a8Ta;98Q0)jui3S}UR&=M9hrpLQlJ9r1G= zcB^R6Xaal$32S*Y$C^S zK>PAOj7j4np3!x4I$BljScReA9sM-tdI8KQo|C)@-|X=kt`bGhIGni;KLFjVLku=&13kV)M{I&X9v3~O z3&0&I)*$Ip(c_l^RjKjydr5|}lvSb3nAJpvCjnqZ+(<*NzeHN%*HY1o+l%6T)z+p@ z^EkBjA0`OBucXE)u$R`4L~O>Bb^0HatZ^5vuD45$pgt-gMeyU8$48MzN^f^K?sT*eiFWgnvspyNCfRsl<0#7G*W^6LolS1OJnPz(#9zH)>G}9g z&XmZbPRwp?))Fy{pTnAPByMp%jn9*!Be5gd18oYK35Y0zMFE>P66Y?{V)H+w*;ViI z>zw4&ylsFnm0eNaqeGaOWKbDoHfcGq^T`|V-D%;p24 zK^Db=IO6j9>n%jUk&lh=b550F&AEnKnXc2){kL&GoT;BOs(gRnQR@6mA+1_JJIH4VuRn04lwOXl{4r3w7!cg$`%1sj$=svR@dRysC!MwMT;`^$R`cZ0CR zoSGEX?y?QJ?w8n6#|v|qD%`96Cq^mFUFE`U*S>Vyx`R=PAA9FZkCF>`r|v)B%x?MY z<9hDwyzPs#Wmc7y-5K$Fir(AU-dj4`>aPs!#MT-hvB&bT`K_DyGtpPo&s^~3kDJx2 zQ`H%jqZr$YxJ}R0DbBDHq_!(2y$COD;2}sJQpl zH2`0Y?6>jszJ`!0XEZJ`I29~>P`KVqzn2$~WTa}UU)~j2oVJ32xu-*esnA6%n{b_p zgnDj{+sS8_rri1gV(g+n-h(|}m}pxpeWv_F>osQ&=K6d655MvXFols`g7Y#HJ#P7B z?o)z^v3O%AKI$g2cz%i~UA+82uBA>QmdDZGWE@d)pYgy9Z#h1L|Dnz>soT;hz}%ee zEbV3z1N*WR&z?Ncc*TQhqf8Xhwm9h#^^2W1a^s1e0;;WGPB9bF@btyLmYEK()TOgP zGS_UqP>8Edb*ePJe-!BraP^TfgL$iUUE4F)!HWB6qV&RTmty4#r7d;eUKa-M_`#16 z1-Bf|4ZxQh*%%%aSWxF1FsEMLGB5uAE(+N;)aJC{G;%?Vc>4Xd6Y;Nf8HP<-RKbMS zyVc>Pry69P-`BOi&vnb;;I>#0n20`kPZq$uITvBqdu#{-dbHOwNi$noU{H@`9;&&z zow^MLeHZ9NdUAi)Yqf7kta^GCf34!YY!?R;?Zyyl1T@#oJH!8A$f*RYL@gS}=M9^1LA98bzRk(giBh1L1g_YvmIakt~E4Gm=A&jl}S zcgTWAS1}J?5JEvO5dHk0wCg={S~M7uMf#FXci5HlOx+xM#C-`3px~iJF}Z!6@a5}c z7_@9CtQJRNLCm8jnr1*pphG#L1n^5o*di7vEc9xD+TJ32J6VW!pqecO<%k{7ti!!; z$g`&Aj1kX8G>r3&7E;_SE^|`Y+doJd+=Nq3l*}{_1(q(-;>>8w)n(oZwJYszB{Jb( zcrRL>Qn?%Luu4t5>T)LB)?dq8;ketg=8M`lkZRpTpD~)r^U)s1zRLM8n`#ufysPr_(7u)%4MB^%CVhJPO1vU<(p;hF8@p~V&G z1FPWZe6(WCGiJBV*WbR!y{vr#<)_dcvsp~sF9UL`5a5z6I7{Q$N6p09z4&~$5KW`P zi6#wsaxX4tUiVX#$-1L+v)ha6@n&ND?m2_%gs+E}L(k|M=ZRHg?tqCA%Ct5QsY{yZ zt&=%wc(yMUNYhruxh?)0i3j0!oXqfrSLbU169NzqK_v?u$-+MJKox?I$roMW+Ddo3Vv)LDl+@C0YYcqJcEDTSmBf9R4NV zt>sBK`JG7}2zUvF&B0d&!cB8akI>>U6cqJCrc{lXMtI^! zzH|+|WhV*qOoNCp%Uz!s^wi=@y%_AGtp!`*-~qo^y~*N`8tu^(6@f0N!2QV5Uo38Z zuTc4P{@VR72Q*hvJhR9%#L7{Z29~=GT6VgnWlo;QU0b`ku!SmkPJVtSo6CbEm4ZtSNAk?@NL^%WEBmhIHqgy41wVvqtw&ZR7Vl- zbn0u1&&TwZBPz5ts%oZaYTwWwMd3j>Mwk28B4wW@ zEo?s88n{*WR7U3W5LFA|L6-7vRwkNFeDTyds4Ur#z|S1|;w2aV3+%lW9EH8fA>XES zIr8_rots?EK7+1%@yfFno0bheC*KyNKf{fCmnZC;d0Q`HIOtRpzuvKani`2bI=l5w z?R2$Eb%;0)WZ0Ha1ChtRmxT8sPm~&26L0{Iui@~+EmT{K`$&qu?GkrC5b;q^dQRVT z&a^&1NG1H>JnUWA)8A5$e!#ewkUz1#1ROql${8t(RBF}E*WR|)W z2Nrl4^-P!dPWGfzHwa(8>f~f3YJ|N`I@BH0UGTkFZ)91d&TUfa1-Grm%aTdvXGZ-B z9ew+yjxk{GQC}dGmMi)`Hm4C=<2)~C9=~S1=&#mWfb4|73k?O;##HB^y;Px=!|7vI zH>D26%wl|-Zu(BnsA2|6^XD@>2j9ybIAD;I>neY-Bas7Sgl72k2$#+K>gD)-> z{sy6y=dG$rZTTF0z~3+#F1w10MDDW;g>x0(lEXH;l4E_h#%tamGZ`?j^!kcm5t8M~ zy5@x&b{o?5_tVD%Uvj=W@}7QlDFdmmi4a)<^M^eQ^H+9}xBm#qs8aWIYNu;O(ftRI z?F1S(p{$I04@M!x>A;?(H?C7f6{nPAmZ$@X3c7|uDDVG|ulJ5>visIWv7$(^fJluB zN)u7(H7Xw9heM5XhLO=A59A7T9SoQz0kP&52ZH$7L7sOLz3bJ>DDUZCO|<{AdruAtv$z*O zY2_QyRIupNZN0e{DpluR6qq=q7;%_Mf~U>V!N-5u&4w7kCcyJgyKE&knSXXl5EtU0 ztBY9U>mKrQcQBSeT5!>}A(R|QWwU6_X9F67uj7_&@}E*}pM<>4^FiR z`Zx!{x^WgA)WA0YP7uw_6^EPOlip+zR021M=&ll*$3wDgYKo~AbuMYnd?R)MtOz2W zYvWe(rk(qF6-AI;7(9NLpn_3Jp{Rtm+>NKz8n9?aY5WCEN&<@BDzW~n{g=*ahJsnWw27X)F4eyQ}LbY zRH=jquuIuKh$=Ll2c4_8xoJ{fgwQ=Kx!E$qh z9mR$&4#eziap&dstK&Z1JLwlti4DO-Fieu6SbuT}IOisa=8&8(e%ns4=KAso=HqSX zsA_gn#xYpo+OLP_NN9C|q^;7I%XQ&Rw!i%3DO}!99!Mh@l|t?`x|n;nZ-s}KUA~xm z@n?~Yoos-$)Y$(tmYwf;&;OT+qY_MrO!DPk*~Qq8~L?6u^l zNd@huU;{^pO*?A`0?vCJ&?vrr^vU(Wqgip^4$>%NQjg>+L*+1gRX4v{w^ho(PAsck@3%B7tExT)p-U^w7EJ28Jv;AM(5$4i zexy_y%W0Cg-)}2JJT+Q-9Q7IIcvk&I-Wb;7%Lwaf;F~Z=guV&5gA=%WY-n(G)ynme z<23CG@V1l3*}W;j^?N9k%3isB!!MB%V{J}c*^L@fQ)?EeUkFchWqNJ8s;Gh0Fs9PZ@2Xlfh8IsVsl8Bj9Ye)*uFyn03%f#C` z@0cMa0r`$9TauBTJXN)ie=0cJPhA}FEHUfDSz6SDYk0H?t8Dj|sN_BJg!<)5(3(F8 zefl%iIYJr214$H4?})xq@J5))2-;j?D`V1KzZW`_j^glCPWVwZbSXpe5aIU>qcW5j z@whr^_hg7-;>!)*8%N(6qw0rciFt4F0Lxz-)2NS1taoP(4inHrRefnQ!(tCN>2cKZur#pSk&Qn=&MrNxeqn?JLbHuNlrXmY=xY zjv8vvCL&r(+-D^#{G3a^Sn0|L+|WVxl?R-XOU?6Hn4-4mx_LS||0H0Y)2ZNuA#xvy zY!THwDJ8vHNH#@=2+TT|I+YHA!z?f!VGDg*b3NBxV5sauL-mnFuL~5`VeQQ%9J-0) z&6HS>Ssy6^QPmy`@m2n&R@sheguR=tv<+q(3N4UrC@6c~EuD8laG^nmoV5A9A6JDW zNeYfXNSU3Tz+KR3y+@vakH&L5K=8ZzA=-(%Gg_xb~sJT{v7iaVL`TBJ=>lC$;h|<#5R&VVEFQT z%$@meSuALRAM-)~G+1LI!ixR5mILclAP81ROfwBxYtV!oop@fkdeGaHFl4Y~GY~TO z-X^sJM5_T^T!2i?t5-LgTwJD7?qoi!r8Oa_v}wGR2hA+9a`#?8PE`L~fyBaj=c}1x3SOcAxgu>cR-a8|`E?x58eLk1Ni{{6GQb3ddf;}s_`A7b+i zI2pf*837n;GaYjD-4o-4k4k}KVI_O=6nwkB(vTrhP1jr-v??u^Bh%~a7~AW7&=0V3 zfy&92&@QuTK40wURE#}MC_&CkR1!vjb`s<^aN$;0{Gx@5I?I8{r(EVkJ*lrD9YpGhFTbYVu@Cxm| z3e7Q016`O109wd7nuH?soMQfoVW^uW5JmVCpLsLR%2~4-Tlm`t5=J|z>WuEqw2~sm zO$^x-Fxnhoqg#izM%&3Pf0=NwvmfFGuUb)Fab52C%Op3N4QQZdqVQ`b-{X@e!mZi* zR?J}jYJDza=v_q2-IDjOe!Yfzj518iz*z>vNxy`RO1RW?YpS5czT=m|$(mD>>F_~; zJ|_XKB!hQbv+4_4N`Cw;$6w~pM&G~ zZZ(MNM-yXaXrv;*-ybYOldo!u`O9>x8-rG7a1k@dpz~P_v4gzX4B&$m0G23`OWHY+ z`cdk{mcJ);dLLyAA&U+-gKqj(NfkdklrjJed5-atUH&rNEvXvjVI&YU=Am1?h>f0X zZqe#qHvSa5I)vIca3m`afkc{P8a9sp_y-!&j#xiYay zgVt42&Gd17DmHP}%2Z$ON_u{PCNHFN{fw)DLA?3uR`;b3oi@tOa48aZBH>%6AZn8X zqOWOh4p?I667ofVqOqg9ZtF6hG(;Ov#$I(rK!~~S2^;&yNS>L4pCllTaId4~V z+C@rEj&FVjPDDbR(Xg|;`G;2kFH9ZLC^G@5%?~Id0K`%OUG_o1CHP_p;w7jmv%mnJ zR3}CICt#QpeD)Lpc^cR6W5X&Uq*NdR*-CR3oGf02kR?#GkpFxQyNB$<2oPINmi7p~FmV2Cr^2@f-gm&Y|PU$&`xd%zn88e7yOpAd|F$amL0x=o-H9 zRngY6?RRN~1IT_NCsPp0Lhi{za^JPrx$EW5lUWbd2c4{^6|I%)Libw zwb~d(=3aT?8fljO(BQ;2_o;K9ol6fi=CgSuEj>av?E35dq*j-xPzOYXZRMrPTk19( zQ`c&>R!kT&H0dg`HoiY=ypumpYD#=`4W<|MtEexN|3!sX7tW_Bvdl#yXMKuL1Mg;B zCTnl{gR zup%Wgt_u5sp`2VtViq+{{z7J=Bl5*wTM(vS`NM_|xDTyT-Lae^nLl&*4;kde?YXU4vkFWm@0iM1 zu-Be0$>R)Q)Gs>xSQ4}yyQtDg3)rAb0(V%_4blZgGh%7bd$_WjE#EPt8oU&bDD`AB%l@SGj?im@Ia z9q&{g`xTtbBmL2DxGdl@y-elK4BO$2e+Dlx`ugz5uBeIVLy#zcp1^wrV_JU};vH(j zO&IugPq8`nTeXPXQ`c<>m?a~Ju`kA0p(5HhMR*#28mS-{lY;RmT+5KQzE%$kOVy6* zM^?!{Wb)S;6-T0#XQM{5R}#eP!zpRvj_w6yA$-sbN5q(5cG|VR1d*ME`eFu))XW*D z*~iSSj*QZKozIkB9}5^`@67zjFPFBA-|i0dB|5{%Ks@(#)gn7!Sgzo+AfA_t5@r#>TI}TVl4fNEQHq`bMruG1YMUhJ7 zQ=nF}56#Nf`!4b+vCn<`vHYETy_VycRPXKk1}v)n#*gt8rZt}+O6rxjA)#D5+^b#G zYpn+=(vwLCe z5pb7(K}4Bs%Q_a~tAsxmUhNIqDb@6M5x?K2(h2>L@lt#HiEf7h?*8{gN1szo@^(WQ zfmSz7Dd~d!ajgv=xR!xPUbd##&Il;aNPRX7?S>mV*(kJyLG2Y^=k+?{ZB~X0%LkobVr-(z7=ZEeOMV9fOxtte3Apv@Yp_gm zdzcZzx)BkvW7pQp)=_~6g9x2h(B&oaui*vLief1G*qAlK0|N7F`1m4$E66*kRm0DB8OT8Push0}~c2-W*j>)R$ z-qb-7A{c&?CQGlRUH$Gi;A-LU>(k`kJ@^FO5qB>kH$JD&$ttjMDy!T-O4$@BWxUJ9 z$AgN!`G=RRBxa9U37K5k(E3el52xMC{gfXTS}P^Vkp-89V{0&tx(SXSQjIDa> zsfvW#cFcw8awyt@9>l?VRSq@uQrEhGW_iY#C*FjTcU5kc0$nM?f1Z0V!Fw98JK1OB z-eHF7FwZv%*Km%77WV_vr1VLAfp{aOryL@S4wn%=FGm&&`fncyWolBGU-i9>*^AOv zImq4u+xCA+5DrH8JO{4|wGK4eXTa+s71PFDdeG)w5ZGk(S;cMeE$9ZaLxolsbzYI9FD6wK@&=A>=`k|twQg?L z7p~;F$8{<`^BeH$+xP|SpZZJGkHSWm3+e0Hg>~5{wk76?35rBElx}=;Y|2TFWO9Gz zx9Iz{5mhajQG?Wv6&@f_@TPeqIJ$gFWLRIaa({+<=s_5Fg zeYj?0bg!A0BMN@?8vND^OA|$_*h4>eOaC&N&?AO_!jArBswzbvsx#U4QXHG0@@~$@ zpr6PaNo&oQ8AfwhnLnT1#G3f(a+Vp!2CXBD8)V=k)@R6CxZKU@pjV%h=!AmOEkZLD|YN@cig3AcCC-83ht^q0mJ2qmRmbX))T_O-2C&nH0- z;_ksFI%N=~?qB$=EWA;i$=$y5w(V0kiO{fx*c)Ym3`DMwQ{2LxD#}pCkn=CSky%Ql z>4XucV~^u4w5%K5hI&6eHl!5WjBY!5<~)yrS~6OM95fSUgRA-gZ!cZy(+K3_dSo#9 zlvbE=j5t)eiEc@(`4dst%@g%)XjJ*3_b&Q2Jsaw93ORO8tFqilPT7A^t6Pd65J7fH z4MkhUTC-JCa8C`pPp=3u{sZIGx;m^xQX0eKoyyzJZpC)zT)){5*i*=s;U>T@2p04} z_Dh(jD}}XA*7qE$1vme_Vl1guyi%0EZ(zqkxouTH8LQG?$YEjCry#Cn_{NQFmn#aP zzj{y))$z7qJ0GM&_>p@m+(PtJ83wtei}bTHynW(<&1YI66Tqs9(lwZ53Q07kY@*>o zxDM-9C&Ygzcg%nYc;l*?2_pSlz&;O?pcH<%1B5#v#80&69~6c?&T1rf1)8V;0VZ;>yIQu}12pjZ)?u%qDA|Uw6S-%EMmP$OU{EF^D`UB0Qa*KJmMTb5^vj&CniAe&4Ygyk9V|HRD8@VTrVLaY}aSiNA?ONMF3|Hb9O zY1!Eb3*2VwGOEUnI9gJcz?H_o~H0I3YVjdyIXhdOS zN&SlB*9tq%BQbh5*dx%Wivk)~XGA&TTDjHdpY^6aFyQRp@3}N!sKLbf-;aYDyyC%O z!D3PlR6*vmQ(n-U_MU|ly?U15tPl&W^O?>=t0B@5#e83G+D2=}Hpf`p*Cz~XmS{v)8oXEEvp=_v%={c_x6(d;H?Vg{Hdn-F zV(1gH1w|Ok8c@<=Y=OXGBg|O@$|2&x5`@}CYjui8)M*V0!k^N3{GgpEH=k*SAubOA z?z?hObJG_QSO-dK8;}BA|!r`*$nosn<$rSMtfljUU5So%$u`GbYUcTU$kHV5iDLb9rqVad9rzqyB$ap28zMtFUW=d0BwH2{;3NM(E zxq(lqr>D>@*wHSlo;j$@O?l?e%NhZhXDk1dvx>S#=d01odoUny5wR+$FeLN1>)VSl zO&=9tIRS|Uevd*QM910Iz(+I}u%2jS4;iy?oYUrCWiFNHb#*E4vSW0-A}l?wT4Td` zY$mN;`eMI)Q*h>|$Fj7QUfXcB!Nw(pZr}a)M#(GluNQubr)wRb6biH-f;TC6_+wLpMVE3uJTgY}fnzjGN?&-1##xGR)G)+YQtWR94>lY=#Bx;u{Xw_c% zF)mkQ#+7#)lV&w`rUZKSw6d1w{t>)7c7a{l+?VRj=-q8NwYh^}3s8;lGC3(zCa8R_ zJ0S4r)rk*ywdcOSBMq(r_KA?2m8-&w_f5*Ww!J$6hnhHKi%AnY-z;HO`QsE~_n@f|l^t}GkbVwK?aCAd)iZ$C7t?%KS;6!gnk%m;g0@!7_j>@}8p2q8 zuE>l22)gwoL-Lj?3-d0UUNO{%o;+E}yW?obC;MeH{nsdAxFpaJIP8odY~GNC+U}#DGsp4A z(wZ}l1$^(R+^3ojQ&gIx6}x4x~%Eo+IS|Kb|eX;ts#VLsTQ11- zj6TH4yiMk?F-6%flM!C^E>9syf)Bc7Ba|C*iss_>dD{6#b{vmTl?8p*s{CCcd;WID z`J5#a4+(qGTCbY*CowVPg*THg7pF4bMb4R{jNQiuq#8@QVsXmN(XVs<9Y( zx)rKLY$G-~t|di7Yg?}!`eaji)9&m`^Gt0Pl& zW9wov2?HLxm6l;^&relmbybGMcp8I*%#r3-NG z2G8gJWx5EkwLrwDk{i>ks`uSc>v3vD?_g8ed>DhO9a#VO}R`eR#(vw&)WcVn@ zCdSv^)6<1oQXg4{w=c!3aKbX|t{`&*Uyb?~R5UE3*-CW=iG zmQ+3c{d@%x)0kZGNVrV+P5M2c5rQ#GF2Pk^qk{Mj3QwT+eA zz;~)TZV$mL?`N}}FIr8zo$^F&4^J1%rx?HOR3PQp4Ac8Wk;IEOmN-=A9tZ8LIzvO! zg>i(|?Sot!a|6s-5S#)&)jMcsuo$#ieRM4;=xy0qXq7iDT_4bGULAzAGKv8@)2Yg# zzJEmEFVhuS7_3+Dz8XnVo?JLcB#dZ1$#F(~$jvK%{@~zR{{Kb9;2Mv((+VKof(y~p z!OZK(LPljS^nEb#BN%l>Z-V`cMT?|Dqcd%Fl_S3ph3^hCw3~P) z;=naOvZ7+X>D>aqu$h;Hwr=Y@^?Xa&E}SqLD{yBWMSepuA3;^p?oXGMM!3clb@Ymg z92qcgKdn(Cic3vzh7L8PhJ91OS-`bX5{)YA#(Y6Zw+7`J7J9Zu_BQTDM)v7Yp)9vw zL-~i>^bOsh8u5Hhlj}#H8v`APyc){lP$z*joA%-^j1_T?S$xx)hGDWkezPxVC=PAV z)8`?JDKBW?B7dsW5FvJLLLwo3@%-V=YXi8xuQLA&o7a!8cyPpo1nilB@WIBLcC=q- z9~o?ByLdP(?=Svoez^2ZZ zht4-HPZlp<$uL8!kD5gx|7_MtX!p+s`s% z{Qba2P09A{vQAM7@*?ENeV;NJ0xTyT!$VYS(^u?Mq-lciXdV3AB z^q_Pm^T!1&**s>dk)B#o8F?wYx^Fb5iak4p#4!q;eM#0JhA5=qog)el3$yKM9y2-c zR%2U%o|A=;wZ50M1V2hvTf%Rlt#4$Ddt0JpFAN0RaaU>WXJciy7cLMPgMK2bF0-5M2qsqUNRBE{5F_37N=G7_pvJc+%PV}_edT=7ah_Q z02VL|hy}+Ltp*JfPcKE>dUW*wE!Qmk^6)<&er|NO2Abmh>mj?U^i+sZy(!XYC{tJr zBB$>bL>`WScUd#J2-4guEeis=RMu5qX!fRn@tjEOJaM>H7kX@*=$M84R0x<-Cm5!q zX|}FiU!&>;kY_Vk9yQpr^2^mvXKp8b2+%I@iL;8;Q}^BwwqtDqn}^e|Z~olTO$t6*}o7ls?cYiTxXYnNT{5uy*9{KVQ&y zVN$=Jhn~@3Y%)A|&07|*v~!{0|KJVAy5?=)0Ovjexc;oHqQYp1Mg7#&ae3m7?;WVbv59Njhc*$jVZ0Z&8--4FDc zB?=y2qUS^$^r|_RMMa&Zf#&oxt0w?0()DaW@~8e-a7^J0L_od?0~sYp7}#zJxh*)o zva1X%q~7*%=--W|qgH8dpNl$+EHp2y@mJkOh?AjI<=<6uJz%n1k(S2rBoS!m-0^I6 zd**^iV(L2PqdqdL-pa!~p5e!j>yC7kJ%ocIsm4BgY!j@JRethzgG z@sNG#>k7!H2bze8sUX4U+9GFCf-yso&xJYEs0Tmxv82xd9k$a+#C)hhi_wvI8lpsE zho*6?<5hDInb&k*t3Tz6ihR!lbUajjC=D+BdVp+@kC{muyBEqhyY@8X49*IYm9pQ} zPHFaun-xTtFC4e|6S%T8J+eDkCq}*Qm^AH~8%b-A+;W^3xcua5eVwz#qf`|63_8E1 zYZN!Y5!dBfly}{@AuN{+BMJTZF89PY0AF%`%Xdptm|AkVm@bW7GM3)=uL_tB)iJGb z9NFe~cWR#=@nQr@%)8216fFdLz2J3@eP`E?;ey}tal|pN4!Yn_tiMZyVVdpp`}RMrYH7jUNkH*}Zz{!!;WITQx5fl{jA% zHMUal^Ei}O6OyZd8cxxew_LG)<*lkScGEphzf~r3`yf^CwwS~zJ*fYtOf5)rN%dVZ zmJIzJ0vfS@XyTH$5iK>)y|;7+EufTuHf0SU=C~o$=KcQWH4fuA9>&@ON)_I99FY8` zgZ?cgS_3p}z0XrvsP1@suslMh>4Ok58U10^uamK{gH9xx&*m-$Rs~tSAc2*TS>VkO z99XLusi_*uLAQ-kKZ3sEqKs&^a+E@3-_4&{7Ug<=5rQI!o5U2zqxfejONg>@Zjg2)LBP4t>jL*FO7)&dLhQNGx zGzGuw*y~}Ln_Mb0-a64|vrd5Et<9VUWsz46QrcWE+*oUKTyg{yaSN$7sZphNb>g)y zxgUpbg}Br=&NkTfuZO)`$8Pwty|-CPp#@7M1g43)QzpFIhHqo^#but#ZOZx$)ODdC*KQUTyp4xsSUma`F z_-^Q&^YxO>8>l+fm6c+-rw5$Q=p`Xo*|*dBid52;04g!ja9@OeR`Z#r@b5}qz2f0WP^p+f5rvM^GR zV~9~qcWlA9sQ+c+F-9YP-U8-qYnV-K$Udhhx(Fd{eTC{5g{hPS*4O`nv^$u&^!!D{ zCcZ~i=q_!Tz!Z8Uk zroZ%KHY5-Blb!F9JG3m(WVS$1upY%ii63i1t6}uR4ZZ@-0Kq*VSAdGylOyXu;6$ps zN&Cl#-;l<DAa7SbX z5-R$!{9aE>Mbf_q8z%DO4++Xt?}4!r8q0-g9NdA*}3->)y$_$54A? z+%g4nr**=K^*Cg-dDidBU_+SD{3LhN*l^2uhf+{q-1{~jeno4mg5KW`JBILq53-Y9|WBzziNitKs)$3!vY12e$f6Ebu z;fafAn=!P5#d>CePlVCHMy8p6(}lBlRvwj&(W4cfdX4YCGw82(BPizbKeqk4JQXq_ z@wPBw#-zBmKCC=OL)PFoLfq3Qzt8=#l~~DM;lL1efN5xP+L%^gP@@)t#6kb_tRkef zZ$xX>V0+EbK|lytAtOE&!or}~N{s>!Bz>Ootl}4RN@zKnwV8Zt2N9<>3v?~n&G-My zat@vNlnUyVj6st8|Dmy1R`CYO%v}3I`|^^EYyUD+;*8C+4(h8#HGqvk?UqEZ|DZyHQ#C_W4fTg1umutC2-u+@l zNv(<7`e~P9k~5tn6=ZPd0;8^m0Kv@~*^Wn;FqLX2*jnB%n+;W_?i^=VbiN-0+R6HT=_KT_0S87`~M-=-JL2!iqC1uFm0H;#Hj z`!qe%%(GsEamJDQArEph1SydMKA)HHE8WNX_YyNDHn6fXF7w%eY+BCV@_Y3T z+J8EQU>i#41r1YKU!f$f^{X^wF4RU+p20=M^(mia zFDp7Px$w)ih46!GH*`(n3!*85{^8Z?6Z-f>8#Dj8#2uO=u38fDEwj>STD8{}*bm`p z_gj?3?RV5rO#$`##=n=Zf4Bbdn)aC_40?M_4!=X~eecv9XqpnE*X@2#CyMOHuW`_P#flq43-a>R%>8Ulw!)fi2Ot+rthF-({%4Z9TcyuWZrU zx)^yA)eu@dH=bn>QTcq@d>No`UlJeOTVkS?638Sc3 z$?#^rk^JQd*zL2n)A{2a(@h}I(gS)b0Dv(k)ov}-%qE_At|83t`Lon-L8>B%g_fn} zz_$;EBlk_AE0>=9q&y)|%*#L8TzT83q4i^)aN&aOL!D}E53TX(%?BJO?-VZ9Kq5<` z=VN8B|5BPe)VTqZ*S~xJ7shMmu*6cqsQ^oGMcxl5e^0$=5yN^hsX=oC+FwzJ-91C+ zDZA(;6%Cg!PleQ$08xxT{hEdq$JY0T1yw)B;dDLYw~VXt^8MRrsSe8QK?pY=a{gY) z+vzP30o?L{32t~G?a>syIj?@ZeKSRRi@~|fp#zdB0a}Wuzf7V($|fTqEB|1YyN^eD zV2CS*4q8eNSBANS^W~b75p5Z$jRLyHV`!LPnr8#^Vqg%i_$h9KEP{kes5r$cp;8)@ z`tr7Dvcf(*F`baT!N5SG#p>ep*JBlqTZxf~MbjpzC?R*|W= zfNRTQ*luKXqTaXh@lyI-Qq1k0ITi}Keas8B3EPz^|2psm&lsvhUR>jgwp4YT|Fm(X z{Ks|)H$2k;_jc9Qv4-48)m#DlxpK~8iR1UJ!F#V_B3a=A#r&$WyedGarj~UHdcqZ`}T!g z)7PsI!7M^_Jiry7_q~0q0X)YJ%$ZZ`!DhTd=1qR3W&)6EJa)6d6S9A-{h)OPZDczN z_h1>ibqWa@*5v{xP|I`wr7-yM83(#olQmj z@OLGXBi&B?ZjZ?&i`k!g(aQOC^!JSi(Xq<`-O(DC_AhvKs{{^GSdFdli;fG~ z4xU!Rf%Eo?GWf6aOS;+_&~(uytA)4sd^szIm$W|OtL^eMn8TTbSv2PO>3)Ml$Zvi; z&(Leba!o3)b(xc6CAo{dbG}0zf;{UY><xSQetm5Fe)2g`@eF{X?+bRNR%_`60#erO{or1_fMJ0hUhkL_lYJn+#uhg{mf6_7x$DZ#I48nGom?KzL@f~ zCAx*UIpv@XFf?r1$=|0mHh8`4YmrIY64%0YYVhk{S17#&tV;=-3KmwCGqunG`mHZ` z^OHt7O6VS{&|MgLXjY!e)(&_&(tY60I{_WF1#pa4I23QuxqO-dQ4O%kO?&y-dkT>b z4{bM9wC~-4UfyhoD+z09{mZ0$1-qRK&!_j_15$g=QU%HpSmMA?g{r|Yk@v1{2Q`#& z64WP`qbo@U3kRJD2y6!e91_6pZ~u$kYn29EDhV{+Pa#6be{+x>oB-o*7)n2CP6`Bs z5qk=xqZ+#}R*ZOjX6_;lg(T&h1fE-B$X*FZL!$ZU%bv3A+WF=Z6Ne9~zyINJylke2 z`*&uI{QlZ)=q=z2Y|8OwKBA(76Tb!n_&uP3q%cD&WWn+B0s%sWRM_EzBnt{3<79UG z8e8DbLC{fiFsTU19fo;B=NUvaK2{i_9dsS#fYn_kS*13(%T41NXQ*fV7jI+*OVWcy z`ILiR`8|9brrD&kZ zwM`AD=&3ut0k9YRiI=(dwI^=2=lWVrS728OPRwJauVzgr&K;It_E`$2;}vH}p9b^I zIoCWe!U&bkX+D$A0@Li!toaRH%VLL70%B7i4ET0a_CBED7ahD9dKnqDgD;rv6@)S= z<{Z?=@P2s|B*4?f=9IQzP@eMVt%;(H=KQ{fa(ZR}K;2m2?KRQ4GaZS;_v!aoCx)+G zI5HO0M9SS5Ub^Rtr%ssTZ^h>!C$cZJnU%5jw)Kw2Y;`A&nFs9;4?@0Hwc%!q1J!YR z;p|V7<$k_U6nW=3|KlGoKg1}u+w;ib9RH#A5Yh^Uoo2Mj$gKTkmwZQT>7!z6Ao|3@ z2AiR##k4w(+#ix1nJK2Fnb7~3cThT${#lJ(z7ZBt#q0m#Y4z)+jQ5_U0&9udFKP&M z$PtJIrHaAgh9l?o*GbHZ4m(b2Yzq?JNX*N;Ei14*xA#uguI-0kldV zm3K)k74X6lruOX|p`-2x^Is8=RhNdShjD)>T$31uWa{oYA1TNRXKhMpRscnb&he_V zvzlS|KX&{`Vsd+&SGy_HBFIk$z5GeuZT?Rp;y0s4(9nU)(W+|0T{gAd*3)Y&RC)a4 zrdI0FyI(t*$5bk2ZcOe42O`+!cghre{hh8MvDM{aL|-rQbXM`Y=Y48w`^o0YHSXPf zuYDKdgxlY-yF!&r`AO)+Hsk#FEwWn1>t8FfVJCSj<+<$bf9xas(jRUVel>#Bla2Z< zHy#{5-+dWyc4Xu=DX9Nq@8rnI2)bS zz|d8Z!R|qK{q}7k^&I*-l6&4@NCE33o-OwQ}Mm#mLL zKTyPLkHVH)l|Hf`#5t85`yKqRi*a=NBK!06bU%|X)kaJOYba77D)=vxsu=Y=&MmOQ z{D$_Gyk{L@H5qtf>Glk|trq>ZSMPcfTgv7f&yDAbKCY<=v9Gl( zAt(LaGGXU(RRdq^E;`Il$?H}$RD7|Cc5klDk$ce}Y>&_A9@rB;m%E0p{)!HLJJz6D zjr7yF>Rw?!h}twwhL6rpA0M}ye+Wau;>~}#brBxk&nMrI*n)8h1GC%sK&TK2!m|0j z!{+)L<0%bR!s<3W6rD_Y_AxDmHdRGDLqRtyWX^^w_uf8siHcv+y$1&o9Y?k3E?@w0 zjj>NjiTuAO5C(h1{p0~ebyC+hj}+w-W(xABp_7~emgUhIa0*UBDYqKrlIZtg8yp1K zbD9AVdp3eTqz19`0?^1esEN}3B&YyUnod2&km@1h5P(OMuJ>>AVZLDcmnjU8$V);P zygRUu1JvvleF3q;J*}ZMB{MCLyWp7moL2=XnMQ(^n=(u#SD}I=&LY3QYp6QXLf(sC zb_2X$R9)cK1>%O47cf@?bEzjDbDV?!hF`6)s!BS&@Ar1NGGNKYaqc{9R{J^gw(Jf! z?JSZmg+oV4jwd|SJVcT8xw5i8P?Emh%3xm7vuT+ZVHe#E!3o}! z655R6wYK+uRYY79IPPa&2u$yW6dDvB%YQ0nb;jGz~}{K=+jIA%CXCGlOK zc+J7pZT9}WfVQ-sLJ{)(Om8Dza-7JCivvTVyqPd)QeTdM1i?CVAUBg`F8soig9wnG zNij}I&Z(>e2lb%q&n0DR7{?Eu$GNCFy!h&V2@Uuqh+uWVhVHly1+8r%ilG8<{)=0}CzSrLpRx|s`(NPy9RU6TvjB_(Y=#W> z5V-;9a157}`dS^>J!1l4M0mlggEqm$&C{hs8y3|;?*N+gj|XG))1sV_inJSQ70ZsS zsLbvoLO-;>WPhtpWeaqsCTIz)^fpK_dQ(DMVMiV<4xgt+USze4i3Fyp-RV=FVb}Ba zQ<*MjwC8%p(71@UF*EyhR=peFRDys01YTk)+2euMWK#G%r}a!C#x@whm_CH=xTTYD#Z09WRneQv`%w3xR(i?q zgjMN?OM}^%+PVVQ2DA*i#^$!^-Cl@eyOT_lDhzn1&G))gOFyvNNB1{#@|9_tFN$Q- zLl>`sO^%ITOX5qsFs~Ixjl7}ixa4Cjmnirx$iFs_&_#r6u-ZOcuMr%jy3j60%wSsx z110JL0Arsyk@}_s>r&#Q`X`%v_jxk)?&vzJ^ck$R#7;PMmiZkCJ?h=ekRax!x#aKr zTY3vW31%eB*C5v`jix{tDh?d{-s~N~UynkQOj^)KpjeAd#3S zYj>$l+Ve}%MW%-n@Zi=xBH3bY)HH-&unO5hGq>J{e9aHG*6R1si`cDn`;;^UbH#6S zY!9VaGSS%-(g=%(3dSkCv_J%}VE*c-sHfa>*c#|ej21(*+kF}JdpLwKh1l{)*`t>q zgt$#0W?~RqR~<1MBHOaK=_(X0{c8PxY?2vZJ*K=)riFe&bn1N|(a+4;#7-L;nK(`_ zi|g!j_fS4(g-e_~Fhaii_FrDp{~_J&fD2@qjmQ|_sKabLXb#d*BNrimzHY}$pu2X_ zMZ*AC-PAh*xIlEoC|KsvDf{z?`2#y-DcU)8y1P40c z>2J1lQwtzFjtI&c zgz;XimsVz*S{U$sm%vDE|96r>6QTZ=oP>BLL%m9<@X*Eoi?ufohq~|ohLuVYq9p5t zvW5y-!c@wdT@*4&Wy`*=Q-rcjB1#ytCnj5VlXa3%_I;SK?_(Kbww{mkJg@6_-M{Bv zp6593KWOF{Ixyem{eG=OFSoHrv7w!oV$}0>x8A+-)KULfKcLD;x!mc&pAxE})Wqn8 zmk%Af@)KM7B<5VKg|~vg(blFEFtq@Z1*|$LR=(mE zjb4c25Fv24ohKDP&cnijmHNfDq!kWHMw;Va8^VhN(5v?;N|T}8p-NRs2^9hcS{|i( z;`1U2JE(Nr_X|BN{OgBntspwzcFw=Cn@_OICtS@R->Td*97?!ujnKWl7cM#On=1zC zS%k&?xEu!cjm1mYOnXMV-2Mt*J}VNwZkchSH+Mk&vcu_%g{gByBi)^`Sl-Tz@iCnz zF7fMC_L9n~K|ZKFw5{y3UyBw)8R|okZG9&yST2tBgPf>}>En5KQ=|1QM`@TALO$mO zK|$mAD)Sw;n=#l8)AbWAhf^Yg)%YH-KI}X&_RM+KHzn9&2r_<@30#F%r3mJRu}JRx z#tXqke&T6_=WQMm+~hIqaALgI_Gi-2#dz7vv+*ql5cp0RGRG||rS8t5s4 z0(WzlJV+)d-zWjr#G(x+K~dS&TJWSTKO>8O3_qI}pS@_1886;YY3sb8#lP(Alwq&A%)=!(hAZxchwPlaXYm3k6xRIyLf%TS0=C`&=#|cx!1mas0tPQkl<|6yN<^->tzQuWB;$NY%gA1$p?f|5_Ym zlAEFbDf8F;9~4q~#&iP2%>Bv#6-gA>7!2|XM~^sv%O^l?S=e63=kfuN@9bzrW#->_ zU#$P)D6j?SADq>2F%`}8c&ipK$zqJ`&V3!+m?Swl8%6x39SZQ`O3V*J8euchripSK z0mb92CGJkgLNK!^fumg^Wd?V&7|ip-d}w;jLz^&%-lI7-D$ksY#6Az`r3DPAJ6Sh$ zFB4lo{G=7gxCu#}^KV*X>a=lGX`vx}_b&9R5Ei>^hJtSelq|D`1W!IHbH6*ldR@4p z&s-CPZ@!VGzmUpOyr570d9m6@H!XWa_B(~KHEIR9Vd!uGzY7Oiu?X&N7sHYz@-EJu zBD->c8Bf0#-a{GKlb}1WV_)bT$`COPWochZ4n++8G5RK z$Wj~(-FT7}`)=Cpoi{(*4xyFPEmDcN;YAvn$&dsfm9xb8u}!GS2I|zL))^mtRLwJG zNTlP@rkozJ#b{rzUbN!AgQt*S_Hu381kNSRa4KpYkt@BwMO@>6piM?Y{xEDU8bfwK zgJw=S1(Zr>!3CjmDlxm9d!crZ|AU|ChEJvO!YKKF7&I-~!6Na$lrVYzHwlw0`7PPB zu!x=uIs~ad(1i0#Jp*5`EjBTmyh!g5$CliG=!@@bFF`KnsZ&GqoAOJ}@XwZvnJ1Im zL}G=AhkoJD1({shW5-)WWe0Q)9M(bXI`=t@nkri1398)(+GQ;8?(;wEI_!?y|k8ct9WL7cJ}GMEN79b#!ZWgveDYq zssIghQJg~_+!3%`rR}_8C9pmWs+nCwFZB#2f#_yoTFXv8s2Lb!_xgCXRDB(UVmtOf ztdRRFRLOppDlwe7of%y4!hIjiJNX>Mh=L^oJwbJlxoLGp|Fu)wn9D@~jy!@E6wKKK z_QJ~9#pt!DEv{T>+&@HwEyWgbm3ZejKO9_LJ~kS~ecf|GPSfA+M6KQqULWq$N?Z?J z@m~LqN_^n9ZKg(uCi*9`LY?{4V>VRUGf{7bvJ1YQ`AW_O0=bc|3iqB>JI1 z-!BAY658|-UmX<)%#iv>lAdygze1k!#TY+v;P0=3uwM5s&g2-4~%x)qSajMDp*?SZ;89@>w8*< z(UiXlhe*uleeZ|v9*iqg(k5!mUlBmDWHgRu^p`@Y0Jns-e1qmo_**B$^D(u!u4?)E z>jT%=@-ooH67o?QMU#k2C9R4Z^~swyO^;ut0}U=ZHw2DT&H}g##fbYKoL4Se|6pO4DoKW_;~KeI@dWpxV?!w4lDQG@s0kOb|{N>O3D(schk^zI=Szkhwq$ccbuoZsu`jsaI=HPYr>7 z8iO3Wh#W>QvQMrTT53V!QUw`qY5nX-pf^?gg<5&s_Uz?C$b;PTV_WKtwD5^wD~hsz zokr^Qb2>+d(QQ=CMzzW)iu`@Y4805H<&AQ?k#~oR>1{Ax7j;(ZBWJ!s1W~>ECR}lX z=?uNHpFV*uPsg^bgT1WTBCBQ2AvN;c<5zy---+a*<&kv5)wF2N`0Z^dN2jDJ;-!;m z;YXmVNmYld+AT&Kpx=r=SRTu0?3V=%m(=83Ws|tiq4NeFg)izH&cDz8vQ+}bFNGeY zr%R;9`awtB9m`}EWpWLZ*tC915aZFK?B}>K~EUHlUFJ%I;xX5L6ly%t)9`7)F_} z225s68IC0PD(7vwjCO%H@MK0%XeFTMt6=R%L#2cD+}KAus&x7^o4;cvz7fe5&%egF zIp^x}$rnG=o~hYE4V1eo#e!M6dl2Rug;VB^I*I8ekB`Op`L2c-{$`I&CJP`|?gck; zKX#GMZsuBy9hy%@@_Sg0S+(rGM~V?px>Zpz zdG_bx$A`jk$#P?T&1jKDs#tD^DK}uLL)s!1ux~Z7zxv}^;403tovYz61O{}OL!DcL zIc#oIQs~Eku~Ya-9eoo>ngl2TNYW4epug)+)?gdj0Ny|Kq-LLhXo0&y_f-D%8qFF# zla>b;dIH%reW(V%8Nj!!Rag)c z+0L$-zD~(rf)_g)P74J;f^O{q1_44pmN`Pp@?m$+2ImASgGuy%XAH<+@WyUffZyfS z(2EWb34zZXE`6_3vF7k_FMQi~sU4h@% zfF4AO+7@gt)C!JuLqjKuEU^VfYFg!{*X$1(cpW&fGc(gpwl+H7u+iIuDr}Ub!Bptm z=Pl9j)JgJ06>I*XAplh{!JQGugKaiUNcK2yPE{- z#9_!^S0wsw&7np`W2^G`m=rdH6}NfllOP-VNJy*(alyio;fJm_`ANNV3yjle{Yb={o;$T) zt6{YtV%X=c`sn>|j`g9(yD!gIRJAi6Voe}fjQnA6b^m;4nl%u4Qicb&SjqEHeoO1O zAS*3~dW@ouZxxguEZ)(hcr*ljGmZB@QeQ{Rrj^2{?MJJks1V4=Q=vV-{2xcT@RsdG z@Z!@!4NiCyHQ!RHG`hkK*$QRJ(&AbKPC(y(xcf>=Urc^@{-Yj0sg23{d45e`7(8D& z81tLu>}W9!T%c{XZ*^mHPkOuMo`5s;HXh6wpP3;e3z}13m~mgTLFS5Q1%`?yf1KT~ z=Q*Hss@H3e*GFiI!pvY>Wt(%qjeGK}pz|VfLtIJa|A#mGWkOYM8%oD?m0%xrz=MpsuY?IV1x zqC~6DqwR+Dz=w6-H*?(lrxKK=%D8&^6qv2P1pBQ?Ar#`Q%^Gqa+l~KlHfhlq`R#YE zebhY<9AbBryip1cp92kpB7}eiLRz75he7CRuh;}cL&MvxkZ!jB$Wp^jH!utGpMs^_ zPyq6(51h{Gh3=;8MfZsV(GcR3D)s-8fQgT0Nk2ul14ZS{^~`XN?K@Yvd7SQ}VcpMn zdwP>APhI!$ za>CZVI6l`94wC4ync5I9QUoPy>#me(er{1^j2(*8wY>VQ>BsQT9}ti*P@t+oaBilb zp&>q8?{zz**mw4j_|@_{(T3pjD#oA;Nl~T!PT|pZmQU*TZrJR0%*&Za{60->D%5~uAY?sxlewBg&h&ILBr%0ViI)t z4@2o>q7zoa9|L)bN?1K{-ThOD9L$oAHH{OQf<>*SF!L(l0Sd_)oLi6?O`g!&^$e*- zIjhAj<^^L}+CKFnecMsGzK&V$DqwS8)S?V*iH+#$&Uhd}d%LREuJiUMf+tP??)4;y z!olkQ-YvQh4;x(qjVEiDC3FBX92*Mz5jXM0p}5dfv}%tX1ZZZV?{8^h$9RhJI%w8R_2fQFC#( zc(}-;$J$~X`em*<;}S`y#9w{pm3nuSQ|Vq!$0F=BX{_0cB#S#zm%mwxQDklr*n(Zc z$#AE>`IMruNEPVHW_OH42BDBtz9g%JK9szoYS8c9kPuQbRA-wJ^F7KHNw z_pNygoHbDP``-$tq`!FuDUn(sfJqsdTD<|`qf2TkMiXyad~BQXKO%Aw=~On!hM`fx zHevn_)#&Q=jw0R{H(E!>P+fC^1O34qBtIVl6h9jukCvBQns+;Eccd}=#YP$Cp?Oqz z23{y-w$CJlhj;|-iavt2m133Am>sv)O7j+zMlQo-$Fzw03ajvWbQjHeL3XUC^DLDjY%}anox}k5K3(YSxFimpEu~|-AnEq8lv?zr&!@BuMeRb@J8eRBjX_Ig zQ4hXL3Ep6Hf4y+WZ{emg1e=!i; ze=`ujWy$5&C}5lT2-|rQuBiee?G)@VrYpm-kZz>xm5MH{I9Wo^vZX0$s1Rc{6&f`J z;q=C?B8J5bZMOm(hvclCiduDJ3|o)h9qtHgP2^m4=aR?OZ0)@=eecH%@gSQ zZa@TGZ#|~SgDF$DkDTr7VVX#1Z&?kZFycgG3OhDO+QhoQ;URH>=+!PfJ3IBpfV@?) zuut;lsjEMBpyDXb+K7^;*_DRLO5KJ91?_KS*M?S#<$E>Rbi=;EbvL1vMHE?kt}HB! zE$hB{2-KwheIjyGqH~jd*P)CyeYHj^EglzBK8r{ZB$Y^9bqy*l>`veXE&?ZUN>XKy zw1!LD$5d{CMPK0Ma*%z`qVI}+o(p);oUtCu_fPr1JO4M4lKo!>gsguV5C)7!1@lE^ zX`@*?e*fbN@sDO{f;9RUIac+LXo=(Q|5wqH`F)D%4+Bgv zsdy359u| zVTZdTzun?5QRHIUS%xXPjL;FBYvpUSHkEcrx$?EJHSD2PyVy{loiw#pJz48F!+RN$ zQ?)#wm4PUj*VjsyB`~#~f#M#29*1eyM;^DM$=xeuO}4qwL3}?%Kd6Pb zR`B1I%4afUHyFLU?H$!3{InH~pX3}O-5vF?;@b;Xv zhr{-p1(jUw?>EWuQd3_BYKlx#05WE}^VFO({epn5$0`}}#32^Fv8p{pe_ut9f}L?h z%EVq83VM(+o=TCr@rNPF4RCXL0F=%eYOgiw2J;Ie*wJYx;|mK-vlkHGsgkjd4?QlY zY?YZ)ux~FQ0d1~r2z@KH16@m{mgK$7S_-Xs8M^X*-=Yjg=r#zDGLeT~g-)i?2Y3M^ zfd?6;W8m#c05iIlB{?5hlwnl`V-!mwi1gCX}7&CG=OPt>ScAp(6ADg8@xiT(S#2yk5({jWY4y)gf*A!oj4`at5WAF!7gnURJ_S(aiMj{S* zN@)w*yxZX-{EB$goAu`Dn(^{|$SZXT5~4NZK%e*3j;iL%7Y)z!aCLEQ$vi4cBrzzX z@^K}?kutwm-l*$^`G@8)U-k_8N+%8gn^_7JI&12s+05O-o8*p7BkF` z`_0QEwl3x}ifrU+mIwr2Vzb;N;WGu_(aoM!LFVNfw9uBY>TERLs)tJ<=K;hbr|~?h z;6S)RPMi3Yh0?#vGLO59=X5a$L30m1bg&|sn>`^jcJXuwIEYDxw0Tc?aD2mYR}Sz8 zw4c8FQ_lN7*k>@vNM5%##7Mb5K`RoE=>Gk1yy*ywpd9i?qh49v8-jf;Cf*#dq6+A-nDDd~O+q&R-gnN#k&CB`_D;F8#S7R6C`>+$aZZSv@m5i5T=dn%x zI*4iBaAoIsj#BY2ynla`hJ+)hl=u;WmJSaqP6KU5xux8;b0O5*N1<_d`nu978J+E{ zg-Ujz;@^$=dqx0mWR)3*?8XUiT%!H9yuRS5XZ!c44&Sx=$7-J44 z_M$c(F95OIKXM-Lf8;!ZU;gqLK;r;bh5onw0PsG^P+fWs1|-V;H$~4S^Z;tw0Q6li zz5o)*1Q^s12TaQap`l*eAXYEKus8g<<>@GU`E=?X9N6OS*3 zA|tNFCHE|w6l@)AudC8+R=^awOS)GpcdT(0nVQwSx=`^U&T@FPxZ=&o7`3gRpN-~N z@ZjCv*uCOay7fs+ZivfA(p4>5GW0RH&%H=i${Uasmi{q|^b^_a3J$lGU$yt1h5s&@ zxe)%#wJV6T$$)uCJxID;Ea1m=+OIXwRdsF<3qEW5SdA2UtDOYFy9I9Ojp7V^?d0V% zz7X+MnDU;pdT!|5%^&ZGxCS_pL@*?xF~~3BnFjZi?WAflAglvKCW(yZqm%T zj}gKMCM~&YKlNL13}oIMSuBpofd+?&cWh_U2-`Ww|I5kzGFFdd_BEWJ=IlfD2MYlF z;J&39z4Q=luW%KL7%l*qHpBJ)FnEKD{SVUUG~8$3?m099I|-lVSNVr1SPT_}*F2;_ zO$peOQ0x~Nj>aDMi#`jOfH*db1xeliDIXxu2DkKim!-{MU^U~<^$n^*^;b;>& z$Ceb8*w=45>vnBUThFTMS9ZJ(efiPx-L4RDqdPQ2QfcJrQ*h&V3h$_TB+I9>!mhhl z^$o@*Mnd6Tm~I($&1>I|II_av)fEy#G4Zb*nnE`fxkc3~b4=Q3W|l$fVo#>h>RQs` zj1X0+Tm96Ntt<39vpc$mxXB4XWG76aIjK(AQ|h7<&bO^P@9}6FXfkp2B!1}>rjEVj z?<*PcHe_qzg@1m%sa4{T3N5p~&JDY04>GIb9Zg3KUz5haMrW}*FwUNt1DQG6H4|iJ zBdtoWVtF+d>F>|~>0-!bjJ7u7&jvLOpeve~|1gy*ec;Edb5Id8>D?}Up`TB(+;*ZC z05v6lTntZhw93ax)HTA|Gg^ehW<=a2&QapFMZw?fqOAdxQ`t$Z({7o4xObj@l6@q~ zvd@YyD|SY3!g;1+bxbRDtv_U8?kOCr+4uq6C_R?|p~CH`OdGvf4Y{MRg>AhLrEp^c zE1oKy6l|PpOyoMfvE;cDoM$0(+bnAyzPxt%r?g{%waxdjh~_ETX`5N_765q8n-8e< zTWXUy-pf2^wtkcr7MQy6#^aE(OD7NLQJIgERprBXhQJJC>|c8hD|H|CA2D#$7_IJt z=wukvy72vrjq22^&?Ai(CvSXRof*F*8T24}`hj_(ZY`*;j6K>jq%cf^7-!C$9zi ztb9E_&u;>-sYkuHb`PsO`+u<&dqx=O0zBdt7@+Y?d(ShJQq zAEGCmAm+iY5JJgOwSj%N1IIo7b>Q(QTa5jWiYJznly)-vEO0^O|LuZ6|7C)hIrq1& zDVDuC2XOgvyJtU!IWk#Z6N1PtU!UI#zXrLK&1V7XEbrpvpM>^|ntd57<+IW{kD-Qo zA50f=7SLsRukOefaeck*%1G8%V~?OMsO_Rn4TXowkcg{lI{^R03oZ6z_`-)@Aa~Q0ACWJ1 zUlbqv{)fT7nCIJET(vU&Eq<^(yL{wmAgc(uz!Hko^B@dT;J=tLEdiWfs2Za zBxb(&j0W+hZ*;Ru9T+Fi-CHl;6f67?Qd)15;t%YVd$64=c4iMw9_YGo;Zt1}PJHkM zw-oEhy0+&2Uq>gtDD|KR60>MEYE1fgOZQ!5u~Mk;4v}oa#?FMCHJGTZ$xQ!<{Q9xN zT{4bWf6|$7w9!bNkk_>r=6xY4`Ok$_Pp4AvApj@0o0 z^Uu}iU_GGu5XWs(C7PoV&X8lx{K^(At9kVP4}0uTKSCB6xvS6SiH&!#eI5D^6;W7x zH!yqM8P4{9Fcv%oXR7wr6wPZ1q}3V{x52o}Y6vd%;J~}iMYGk~AGu%BZ?yv%kQI3W z0b))6vNz`y{J>A9!^A|E+kwIi;R>Hp*w&(+G=sO_0DXwEAR$w~ z1=?nl|C3<20n6%zH(3wyVqegH0tx_{QpiPQr*iesH3a{57tB*Ii?9U$VlZ%lSjuC- zwUHjaLv4SK?3BlAqbbr-KB#UdI0vK<8ZUnI9BmHL`wV(=GJP^WDYs;%_zGM9a}T{+ z42Q3;YI8f_lB1b?kyHpyG=}THcIVW14>U*yvgp6=}7f z%c9GoUm^CwBTFvFu}dyZl7_+2MCb^Xs8>o_-N?7>f8&yx#fQ7S)g+cbZ6m|s;o+=E z9t-B2%mg*hT6puy4LeL~XttdcD@Vsk%$R`G|nYfWt9Q};?kL-MicPJT^i^xj9HdZFQSd38pZ#%Q$%M^<=JaVwU zt>jJ#7;8L#C@b*mT)%<3!VS}?dO;}36VTL4E>1>d$}$q#7(Ak#fPehMUf;`I;d(Xa z=79>erR3bJ{ezj_r!I{lyspzB#hh^V!Sdu(;ljG5i}=v1J_RWBz+aJ+DsOw%(abSM z`;jB-;xuQpEL~pBxaA%EU?^f!9lvk4#pwUbZu|GV`>#w&#eXs>>33;TZmh*Iw7zMe}mSvjXIbyU&Z?9*Qd)^gMPNd5?A%l%qwS)^7V#A zem=DZ9gKv^PG1*6ox0duN_7}0HGd=gK>BHR#uPkjX2uUXSUfUWTvB;>?!8zF=WCMf zxcBn94XBI>?b?NN?^IV7-_s>MxvVD@dz`t5a*t%y9LN-(RlY%u5vaFTLY%V)fer(z zS6>7m4&EK^4(&Pv=M0te|A70cCs-`IW_REQA(l-l@wz~guoB&Ov1w65YxY^$?XHY> z+c`HWM<=+~nHmB}pW=4ZR0WjU2hAb;c|X>~vpdC2>&BwV-1K7&)9V$aBFp}-^tHni z)jRxxJ6rWtQu)Ibaa+nv$l?%t3a@2;3;PJ-9znh+vL@n-Hl_gear)h8;?unn@$@B2 z^{5^=?@k-R55s;ECNy4l`BU2V=q2mo`kc{WuwAI`g75;aK5Nw>eR|oNpBR!Dclpt# z7!xHUz1&7qQrBnH{7f3&-*@TX`1VNz{YzF9Wcr3chwcQFLo2ILh~G3&O+B?URrQ&-1;^OLI;?iw!gwPQ z7l-)b%2T1MKg*dwKxw^QjKf=JSFW-M>t&uHb?ml<- zjt#f^D_W)cK}R$nRR9t%@83I}^-}xxeXr*kZwcO<6E-8?yZ$i9%oM(iz1V~qY|Np( zLpwy0j0?pgcG$Ojj!$rgX{pKt((^!d6t=X;KNuRXdV2D49A;fK@=`)LOrc#>j+U!4 zlv8P$fjUIc_)&C0Mu>vCNv(s*&ACHqW*0{*e(%QnyGCd?^#lec{;r+RQ$~Hu<)wC? ziFi~2&BmKYNhS+Slzxz-Id)R3GrfkQZj-%OMq`G#rnZ>~^6`+UX ztsbi@0!HL!=(m*bk5KObTI3JE1bY;03?-CEE7GtaruE9({pt8yXeH6G?Z6)fUR)o1 zd=W?n4~M1z#eIhCFKT!j`|b)i39T9Y^!>MN>4cm2mACVKFhg8>0BVAohn7D_tl>ky z^V>lz8M;`v;3^tJ;ceF5{c9f<#Lr}gi8u9#hIzs#=901vPt{;sJ#a;4EoMfDX3T{Z zx0{ze6zy($cGsr1@Vj`(zYvb#nIX^|5zusA>$gv8lU8mTCvPtfHa5`W;E#gf2Ntj! zAN*?)GQGF#bQ(>n7n@M|)4=-hgv;znL;pHl1FzKi>dSjqo^Hby9q^U@D zL~5E96BB&R$l0Pa$}CiuY`29vM2f%{t-lmhtR7l#3GlkaanS2|U-UB65fwiK;Sav? z)wfJu#U+vJDElEc2`$izo9&hJM##g#LmTmct z;ERU~24u1^^);OR2Af^gquyyMuT%R`x}reGhsYUyN7q9mZsR!=DV4|b=b;fI48AWFXaTvg#zNN6R23*UK{^1XllV~LYLi(w_9Cw_%`HRx;az?h)z zv@;OoI=PL6!ozeP7dbABM!xIpK#1`$_SR>*W-yi3+c|%>dfg#Ow@X-sX#}6AmB|m& zS-YmuCuPT6gAa5{??lu}uW*fTsmmw7xep!z z{2qn=R*A7&CM~YHEJdy&gC&dVJcFwDB%2)F>bwr&57!V&>Se6>U2Z;p)oS|9$j3=d z_n`Ju)XcqmIh^9{N3P-OWFz4M3hNP;3au(nKV-dgIWzSPPV-qK=dW~5L!Lp(5yX^N z?;rJNsC}!#b`Vi-agoY0Rz{VHv?H2VPmwKp@n0@=I!YUcb$Y!doWEz9S}(l%HNLer zoYwIE{rgEx**Bh^0SW?NDB?S3)^8flqSYIm3`7mL+Jb$BT@BxtuiNU%4_z=1zlM8u zS>lJM1UE3ZNUDw8zaV|e*nA&IW%NxL4>dc0SZ-5^Ph#kOM$FQb=r_6=H-gc1KLcjI z5}{Kc9Q%zJJ)Ub$f)^NX;A_SfRE(=Y$)HMfp-w06a9+!`<((WiT2e2ffdsfOM|x5= zRr|~!$$lXOyip)rZ6g_=5`PDyul`3cy3GW5^)*_ z@P=SJ_j*y}o)&U1gPCdA7P8od$ehxu`R{>LpFp|p#6p|hcf9&96W^$rH%5VJ+6h7W zuCK9w%>8m+thOf=_3!s~vup#l?Y~tSHG-R6SdCY)zv1wHfch?w7qL50W7^#I_(j01 zx--3Setz%eUqfo<@ldmq83TK5Fr3Ja7~GL#WG>q6?Dis7-VJPsTbb!h#`;^(3F^Yc zwfk(@^0AJL$Af+`7UV^e>1F|G-sJtqU_%98`BeqKmC0mWn+g*|rt=Y&)bnDphJ8+r zQ|J{_Uf06nE1smn4YnEVMS7okI@s+jF5W;|hjOuwjBp9~95x=>$+=*~Kva|KP5SEa zAVdo8EGfBhI4Z*4aYZ|2HBSdR>`VLPe&8G%6A0CB=$uBZ=rgrJo>wVa3TE+=;)Z^D zy#DF#6|e7qP5WU5k5XOY^ZU?dw`elvTbzr1-wx05vWrg;B<<~OROWQ*uUR*)PwLz; zjsqsf9Z2arq`fob`N&Gc!`LgxPmX2xzQ-CRLxTjC)voX%h0P`#D;FUZ_Nxa%2=q<9 z@_dZlsRswI^SD_~ZzGtN=u*$pMR`OWBJX~hkKc*6e-STJboYM3@}s*Wwi`yP0dsJ?o{bMp)z< z=x!3dQp!Un$gcQSFx)o{QQtsYu9Jyvs1T^lMqC_>T^*rojZG>7{>0xAy#`;|+3bgI zf|bP7f5Z>oqzceqHTW1R`K&FTsyJij z6pb~Qrq<)iYk)6DZVf*Fj$cr(=v~6LR+G2$56r1LseGT78{$#w^44M>pKpDbU5@yX?(+m=6s;`kq8R(B)`z;h%>Dvfj(iT5Y}jE`jH*`Q*izpi zPAbhTV;IFm``CDH0nV#xSsNdd|8m9l9BaO-2S#^0D?B>d6_coS+2Y@_GecVfM9Z+@U^eIr+pZ)75LLNO-aOgry-?H+ykGqP$6Z`uN39 zS1qnc@#H2fOuJt)m}x*q4e9(+ zx;U11ksab~G4fa{@%Wg!)RoX7o}<*B^c!=Rw!4%(nfg?F*;pA7oo7(*JsX9P_6E?E zMIjHeF=7|3Ypi!K4B=7zhaqS?n~4V8i=fH$3IvTMC_I$g{737})B3OiA}PWIZCTZ2 za{!pzFaB)1GoX~k3ele8H?*1Ae}x8DxowN?sgzkq&1wfg=SS20*j|J?GPy85-@!%B z7)RfIM_K%63!SLw2&M!Tz{_S#iIvJaa@gV^v6VfFY3D}cI0@d)LY$B>oRF}sb5OO2 zWhgDYWBn73P?H$6e387B6weVNCRF7Cl1)$s%5Sny<@m!#;CG)AWk;=uC&~$;>A(@4 z(t@#ifl2$7ZLd7nc(*ppaFt0f*G2KpvlUz64MW4+5T*?+V&qUGv(4wgpvpfCk$34d zej3)=9%)I0a0iQ!oGDKo^u2OB+-yG|?&R16$V7hNM)ijX_nKVwr@}fJ7*;~4tawpp zTzwX{3blu1zHhB%FNyIxmTdPsi9j}cHgPZi-OsWc@F@Q0HgQ0{qD?@4`#w=pJkwZi z0{1VfV;Lsczz#R-&RCX*WRvg-y7(af zx+Sef!2sP75gjL9HFAK0y?*Vg7SvSJ6H4B8mH8&DBVy0kX+nZVxar2u^p-0V?iSpF zy$``_$h%+YW^MQYNuFQlVb7cVSmHQ(Yp&dnUq!8M(nh<d0bGI0D8$TH8l7sX&hMJMXDYueYFDtn!MBc7H_nud4r=wfVc{^TU zW3EKI_TBt^wpr}cUSVUe;{wz5SwK7EEbA&R<|6w5M*9V<*_Fz87DWS}Qx$Rvd zOH8EYyEa~0lD5x1f@mRP9`4yYefi8D3xW8o$8lDqCiS>wxQnFV@2Zi0 z8(DJd(Tf}39)MgmD{j5bo_nLki+;-d*WzsBv+&t`(>vh&S~giD)9;*>7V)4KOzcn# zd8(-n3{df0$Xf63=;HzZ83=ET!8!J`eP=ott&at|DezIQa5^FWFkd73t*FC6<@CMFE+OD>`HAtiT0e%|ZxLOe2iO3E9YG*LO?suWE>yUDfHQm1W#@Oxr=l%B4A9ySy zQd~o7O8jk|O#Pm&v}-2Ku4R{yAX6@iI7qwfO5I*E_V#NA76{S#Gc61K$i;N3a?6Pq zhywjX4X$hS)~Akg)h3|qs^1J`oh`JU!8PPhqgFc#{q3e#YF%rXh;O5_Uh(WHt1^=> z2wskk%d1qkztV&|^>ML5CA;;3!-yYD!YaOhW_&d!SD1ZT;UO+SA?|*5>ZN&oA#aui z1FfyXdb{Zci{@HyFB_|IKHqlsWRJa}2&u25>hY(Ib&~q0yvasguS2SHwDv5j7`AjR zW)-?jWPUarevKQ<21*$&P;>;CY_m68F3|{M;NgA9P6Rbb;*Mv;#%J5*zm(VPh+#y) z<~jr01)wXK!|kAAQ>-Bkgbpa)y7Zqc`Im_iJ5!+wn;DW$i&mvXI_n>X>N|R%6(YfZ zp1Pe?t$QhUH?QsxrOoW*I1bI1uBhCjr4fgO>dOuD~e z-_$iVaYQPph*qa~RyuNdu<=egH}7#dZKlyt&GSZo7>bMCmP?J9#sA*G? z2u`7>)vmeDb8Q7=$do8M^%QrOSt=csG~+bqG6->C^o&*nG&Jf4B)NX6)VFjoKF0?6 zD)XY~Yksrequ*3w`}Al~6-B$gtzwxHFd)8C)5I3@H32Q7(bY@+rk)Pt*ojOHFgOyk zz2JU3U~1I2Z(7$R`yS{w@zS<(YXDt6`zx0HRyMqED^p$|%{bLTSrx3taSZYy>lm`B zA>^%+XNV)J-Rc+b*`bP8=?;}Vfe;UP(>dsj$smZ5f&LtNNuS7fTQx-y|1f|fA#^CR*0lh^(=@}&-;JyRz4F73HLeb0r8SqVd8I!4prGo=@2*VP5fW2}A zpTy5p{GU?lJ+95W^~uXxa(|*pW^bI7+DbrC>uKhVFTqUin2xSs%i52k0?kN}t*yV+ z=><^ySvT|qjCN?K&%JBnQGL&Q9Ac{T*9iEIs@A@x3;|Ye-#LRTLmjM73zDM~_M({P zCZcIVG!*;^i`yuO(zyi`bHz_@i{74*uqFARPD3|zW6ro`ZK(@c$&612SI$G@f`?x6 zbHuhkiFO|*quA@OeVbLfrCTwvT8Z3)h{%h|q%dwSYWH;rUK#gUYzqO39o;StBYVtg zfX_;T04*l^vFFnZAKa*-gZ4wSFajz8wADJtr9Vm__EW7o&)?|)SlE;-6@eI?e5kpD z7@I%U;ugMZL8miQ_~A{`s@x~`sJ2h9^FYDKYJ(v8`n4>(p>cJdAsXu#b)DQl#ht#T#=XNRqD0ABJ@ly+IpT>>!c9AbY&h ze;AzR!W6TvN=*g1?pS#BlYzKfcsTL{$_+r;zYtx-Si1 zo*f@Qa@hx(?sy;GbS3nRzrCSVQL(XIL=C6%10WGvcn~bqWhOI+X5^*IKU#B?0zZ}e z_(c&p8CDVNcIG*^50xP~*iyeHfB2jt*pxz$glsyG)YMZ|ouX#!#uab@>Q+BJmw;?g za5FO(X+QokCuBgj268syay*~gmwHlJ@gvRl0Ir?}(Nio9?sA;`5`?jVBHDAYs#XnSa>8_UbJjNAijj_Vq z7UAVXE4!bTb?o?V3>iL)nL~Gx2Zv&zkC4xyEX9M%ttUQT*$nyCi-um;Rp(N6?jpVG zY_C_n(-7N;pSqI4QFQ{@oeDa7glNv7W$X^9a=NYID}r%LUl2S>d%p_iH7I3uIoID* zc8?s3#$9Tm2kWh=L&mXN>*QYo;L<7xrhr{tirosNT)byu55AnM3^@0ZcU4yd$sJnM z8}H#g{j#K3y}!OsoZhErM!7j;=$`%MC89aIYG8Y;igHt5-evquYU9?%Thz*Gp?`)N zx6aq-fLy#Iwu9=NMfxxe1qZ}Y-#B~2NbFA@>mo0kNJz7?_?4w>C@Ic3FvMJI{@OsX z&R+03Wg9zfdcL=eng^q7I~Q&I6Piv#n8x3#y%{67&`ePcQ;cT=V1u=0dSf9uEHOriJdlqw`fog z$DwEV*p2@%To|KDp_rzw=iINuel( z_Fty=2#VE54!}k>KtH>Q zmJ*e-1~_z%el3%jATjSr={Ib-iB?BW?yjs*gpW+@b$nZe`5IClQiZ}`qH1g-rUDa+8?kgvc+3aT%(~q;IyEkd3}mv9NZ4aI)&N?3qpB2NGO6L{WMUBE6dJR zp5_ZUT8%Mu>iQk*^@-%FlhM8S*-pfD7PNo;6z?;wQ;*Np?Ttu|C2O=n%it}ra3s6J zfx;!DiOJiUg_EHhWZpe^=be5W!jLwRUU$hPfNUJ%?lW?sYp_slCh@e=!|_z-W9C;2 za%kg5Z<()mxx}|h$a=S2=(J~jvSwL7v?Cqj+jVZzl2Dm*9xhpY^fb>R$)w{#-{G+c zT_+>FYUY^Y@k zUxvS6e(vp<*D+LsrfX|n7+s9)$9eO)kyvF%*mv?(`mx1nM$zog{$+P)!C>}|3wyc0F&`{rg8)rMRLCF&>UFk138t;q=53czCyByKlTIYD%sy+LyvqOsa0 z0a$4eEwgy_;2SGWE5%WRxjn7SMZK)$O_G-d)^$^B>#?u05xeW*n{a&pWrB%NB%jc^ zm^c0kCEOgHH65|pKM@|J5Q^s#{nV{8f*A)XtSfTjXXaDbk6JY_WHzBjb)jEJ<#}Za zFYbYLLVeugXQ{#9f@a1+&A_!ibowpna&12?`MjqyNuHGpJsbu(0Z!*=#<;#8^W0t6 ztI^WXDZz4l59$15Wo~PqKin+F%5Fb(B>27Ra7DJ_a#pv}%dhwyzHRib{*--HUnNmL_ZExk7N>0o7Z+`?#lZnpztB&P5MEe5mAf%4e1wrvI@TMN z^W9%dGD7jxt|d~smER-2Z6F-QYIkl3H6H4;h-ISQ_vCg(__((oXN~Y6Til=S8J@>Q z#f81}eo`4%8un8qRAC#8kzvvIRUdy=<$kKj*7%S>wvfib$I$H=BFDd8!sKjyJ6a5r zlQ}j$%EiAjRzu`cz1dTGYCx$;`YJtHa=(`?%ogTyFW9(5!_9dB_aGB#<7I=$b%X*5 z(UZtak}X~VXJ)$>6)#ek=drw0BZ6$JM7V#rb!rzy`1m}1uf!KOk$i0%0H_r8{yJJ$@DN_#-B$*GOZ z&>QJz@mTUN?m3i7Wq#q>o!|Ek&SIc%ugbsso(XTzk>dFIGV!_QKo^4@sR5`)pBwSF zR2kO-ebqq_GzH8$xEZFsea<2`8MkVD zF5vxJh@(zkAZ)d33Prl!sDue9cd7h6ew0!lz1d~Z%%|q~#I!Y>Y%zqa#73>CU!-^Y zhDyGW(mAdd$-nhYbqF)vYo+J=^i7R`iiK}T1TmrBfK33^NpLIQVW`eMdRRDici*ys z`Y>d-@WIf-qfH)>1-tFBUn-%k$+UdUVOO;8Ok=*lM8nt4f};<3%G10i8((jTt!7Un zPWbym*+_V;Sn-2UIaj#g;ot!&s|M_-`uOjT*ux`+Rn_lZQyt&B3fn$wWpJ)L96e(% zYWvnCwRY!f&!}%-vn4zRY_2bileNzrad|QI=t&LYNU-Xly7UtA@h>~tW_(EXXQ`{& z-tvwjc30@D8B)2R-^baKB>nkHQC@o)5BtP9uhCdd;mfJ3Ua5$x>?2tv={gG7=jt*W zHra|}+d4U;%89CMYDLNQVg4)kT=~R)8qe<9I4?LuN#YhS6<9ChFn531rUbs-@{{Eu zwgvALO~_QDteukgCN5;f-j7lkiEf(CHkY|9_w9FvOl-1{)m(@bLHCDM&+w6>!aA~Z zcS&Y8hFyy=&QTJqm76#CvR3wl25(|owl}qCg*_5pm4Vp6HyJH>IV=Z%DLMKCkF9jI zhBw^|771ZbP>htu!>%2{hM*l(2UCM-4-}WOrT*sQe>zeRwU=J!nmh?&m?Y44`uHi*VMNBfr6-55G){_h^RCLY0?RbRHZisBnLrhN-@$Q5fM=Y z0s?{{gkGdXq}QmFNDWe@Hv#D#5>k9Cc+PF_-1~m-kN9CHB$B=MUNhe^GvUAJjv^$y z+iMhUC-OWhtZN|pneNC2`7e|1C*NI&OP#kNYqo#zzSWhdTYYIH36HOSX{$*xIqmgY z;zx11#Lkb<*UF~Zd|q*G+1)M5P!Y;uLh)M21j}drlVYeGhranP9!MmJ-tg@0KmyYa z|G91(Gn=S&S%NtlRxd1TZ_1a&(x|6v8;lecn6T?Lgi}#&bs;UTtGNgBg9uqhibO%O z=rWQ3gY3)3zs>rRo;@sclnkRJ4I|dO*uaD5e3)Ha*U|NaZ zi92<3OiQ1QDWNg6Yyqi6v6a~|CtpMlR6brBvkxzBQY!z^@3Y!HVgDH!njkvt$o1gl z^_)8qEG>+JM00h>k$Xb7O*Qw|+%@rdd=85--tZsJU8qieXN>6PL)a4T)=k7>@85Sk zwYauyZfEmWWmQgwsmgV+oBwOE#?IJzw{NSN@5B8}ob{W|Tf%I_!Qe2$%O4|s5VCK& zFgIii=9fAGa}^B1-cLkL7!sO|AoPfKsf|)bPEwayJnE2<^^%<@u1QFo7!o(^uV0f! zWaqZ5mw1<09zn`my1I(pb_lIsGLoE4Isc=u_{$hTIG>?BKihL0uPmIe%DwL{ z`UeZb`3>L6N%nd}E^)3o^?`5T!x)~4Qj5G7HjMo%Wo_*ANk7d8>bLzViFWp;v9h9U z&{{;w#%Ly_m}PNAz6H;*+Xh-$-v+6pU;^mN^rCc1SrAhMKIWEvaB-Op&M7?mSa>;T za$Lr;SiE|A+{WV&awQ9-GvLy)#Ru*{;pV}}@rP7t=;8TG@5O7mFq}flbJ$9tX0C-b z-3l4#o4H~nKWBjVU=lfVtb)Wvx(&UH4U(v@COHke$nCGhZxjTB80Y9O|4IuK%p|-r z<2-fJlj>6-?5&@m!`uxEjD>N03|7IyRoKi?CC&ir_T&s1zvx%4^Chv;P6^_))v4l! zH& z$j(DmVRu%|zXNy)Y|*~Ame%fI$C106fWvue=Y3#kdd&`k2EiwjV3`1$f(3^8TQ!rZ zvs6voHN_C3e8=u4Cat`Z8M$*wveNE-X$_Pu(zG zY7r;&0PCQ8)~D}aZyxMt40{M$D-52<&ux*i7ZYt9R!TJV^@Xl0pa|!}YpUYv+i#V8 zE~{E)ti-TU>U7Y9c^1LXC##{GT%@DhS13sjkoLy}jf4x%uQv++jnDl!Plf)m#9a#BW zq=mMDqNM-Yefc29f}MbfVF-{vXriB;UTUZs@wJ=Z5s-t|{LYtQq$P>E;1+;aB4#*Oqv_`a^;>)4tqQaaUA zmhf#`)c;+xJ9>8>4F5ZA^CVBZ?kf3=dHBTudn58}QOKwIfz0e-=%U#y)xrun)|c{q zFo(497|ixEew4m^MEyQ~WGXe2X;3@Sq;?LsVZK zU{0P!JNa6d`%Jt&S84h6;pCadQzYgJXh)p`x9(Jii?6tlwSYohe+Pxs+cIZ zlQ+q=)&1#A+g1_E_|s*Yw|h+GJ43i#zJac|>YWDRgODgO$5RPmWM} z$?9i_DE+3GFjRy2C57I(LKpppxi^e#vMuv-Kb7xj$iZ5IF6gU6SGi#4PIdahb?(kC z_v71_T zWpt8AjPJe)_x|tSy36Nu1zeyaxbN-GZrd>==A)n*alybmBAe_WT4BJgjGDH1RA#PZ z_UTl_CW0e{i&@wFV-fT?AJj{yZ$+V9Ui{S|Bz;|HvzC}Mv)Q$PUN6Sh zH>+GG!@u1P*Dmjlk5dleoLw(GX@0V$SiFVjZrw-9OQlQBtF7as1yiD#d~gl_GWYUi zO^Y3GBy*$1A|ES=B0IX}KUAb}f7bavCeG#5J4RurL|p3a}S21%3e+ojIsH=>0$7GWK>Ooe2(ei5kliJ1$F1Gh>#EGD{v+-3Ugh$ z=(b^2*P_3kTak&#XQAvBFDqU9se6pD(@V=@(q_Ir?S-z2Zp-H1}pW0hbbsCK=+3t3--jCr;CmJ}4C=3VR zE;#spZMP>T9zT0iPGrnDtoMOS?Uwr!cd`j~r+-$bR@h0s^~ArQseeqS|C>?X;Dqjz zASCyI^@w4K0Y{)BDP5p@6AWQ#3Vf6TgeT|CblNJ;i(a1Qra3Q;%=UqKlR>JFqJ;6l z{k3KEVT6;qEw>}xX<{5(L=g(RqmUbvm8m_v8@CNvV}-C%nVhHxdbxMrNJMiLO&7nx zyj9YkAl6)(OtQW4T8el29k$ZA$t0R0`ksc`MY2Ai z9wplZ-65%rw|Lo>w}wtG?ZXQI+ug~>?c#%lVK@2M9@a3c-%&CXWvVQEG$qt}Vp%4& z8_|hoT~v`Gta;okS2X#-HFHiYndl;5YRa(xZsJ3w$nS}sfu@OARt}qz(xd#u_bRpR zd5NMdK{4hc4lZ9eb~JRk`JrFxl7viA(40xs$QDC^c!4^lj4emk1LlUY=c+C1A-x~? zx{U#;^&jZtj&-~QkC#*l1p6{LuA$LBV2Y!RKa% zGd$+0Zzj`H^E;UIU>A+1-HR?QC+?5yKUT3MRk_eVBR!NSWPP3(5sWwzq~HR#G6G;J&>N`D!D5F;U+PS0ue1r_z&lO;7ZEyY5Jj{T(j& zo7L;=Z`@$q>aE#txSiYjYptT^$as&r(K^%c*E7r4BOk0c z(PybSbPj3XJGS`&=iW-ECpS}D19sVjlFZKajf+gv*@C77#V}`XLpW3lF10ZOfS2a? zf})*5=*pBy!-pwXJ*fqanO}5rm$bNJsMpHT({!X zcu=FIpxq7$+mh~e7x6Q9yES6~W`PcP^QA@K{6JprTuDR9EeTa_PLqks0r| zS*DzNSDZBiB0L@>&oS<*gL1({Swhz<`AhobfIG-Bp!9P2n3XF9IG8#oY`mXg>(#yB z8?*jX!FOnxo42Pk?C2|e(|zzuuR(8cZp1fFKV+fnT2`|{Img_Rp`@r?Pr#${jaVKg zrMk(li3Z`=sqK}aoh7RD6-uGs0gb(DV)-Fdm1O`H?7`oK1|p`;a2P8=cGi)Pc|Wn- z<~S{pYg!h-0$|GM8eeWc*{8}f?^TE@W6Sz!h*xL7I0>l%zE;V0CF%2zm*yFf&<_kRZL-laBoYgil+Fx%Wu1_HBmUw7atT+ zS$H7)cT{$Fdj0_&gz5gLoDF7qvhu}v?7Ixwj_hO2rrZ~1G0Akrnqf!t<^8p;L8oSi z3j*lDpFZSD_^Nz^S{VeoEprin(NPg#$mPn|sxF==#|xfkq0seru8xtzF8YtLA`k5H z2rk*+mNW}!MT)ULy~W7%^1j+r+d$fh&H~796w*?&JeFunT}xMdXxh2C{uN{QiW{yg znk=OU>5II=9H7NE-KsS_m!3b;730fK6cEUmOf-Q)N^b*oZni+ z<%y3Kkf!JX{F%>=O5W^}7^a#KBZ={E!6z1I$pJtnO#6rmoUa8-yo+-Ce)rLL%ruLD zsI`e+ZSxgUf+nZ6V^8?kw68Ld55`3aE8H|w=>1k{kUFGan=1>CAt!j6TetffIzxJU00A03`{1>WB z>A;88cqIdK>BX5)bDO%UXQ7G(G8x9?YpIf#mysg-^YzydCL9}QoA5hG5s77NteB(_ zzLq{E6Rsf){=O^VlsI4A;CJK-$1ZVQ^CWeapL%^z&N{%6!G27T)ny8s<*ru7n5Dqe zCs!p_c2n@3|Hhp#Blq&ywEcK`m1qVe3OtQ+kg$_D$A3SB9m-JI_Yt2 zJEkHcw`BP83Gtvmk^hJQxRO4}e`n{`EQeY=rdSSfr15tkN^Z)zeyO`Ok1u^?rfNKc z-%Jgb18$udJc5|w-OE(111?v~`(jJr8K~C| zfF=dFuK_ZpiQWP@k)WVNS72Uk#|yFo<~MAWH&{de;C2PWS=?c|vA}1E6`0(3DQkho z{PchOz#Wx&acTv@`lf!FB76_xx5~D@9$l^Sn&HhuUX&8H}T#0_79NQd? zylZ@0cZh5iF}SXAg)91iC_2Ut&{KmGHJTUS+3l#fzP!9_IP-kLxXndcyJU#?cqr3h zx#ae(14^fxGZQ=om#m0!N(UIaYIn9b2=b6;Drf2^on?lc^MyRWs~CR5FvJ|}iG4yD z$@$4*)i35A^jKsg`MG{X#M#i$MY?g&g2U0T%l^@>eS$)%PethH=n;vZzPEf~=DF?s zCU@UNK2pwgX3Gju4Tfu(UjRN}yB$V<)VBIHOTL=UHqYgS(B~SnJv*P~OxxNjUzXXf zroe|GIhjrByt_R?ul=H!%@bVT2)E+ajAlpUEA!8cBSTnOiQZe8_*#BWDv&p;UVSjy z4;T)sZ?wx@0~FVZGMk9m^xOrL^{^sR)SWp^5$3znoWOI-MMvA>ROKO!zn9SS1N>N| z|MN8Wjf4cXXHdV*oO1z~u2+|EZQA0)GS&u1(O>d!P;={I_oMx(tnD6r2ag@lgYNds z3qMNXqUU9qyE^Vk28t10hvN^A{E}lDqs&m2)f^N5sqAUvJ3FA|VC>0&wPvz9*MaZr z%;1fkVT#?fnCAe5n5>L9pIxR*E-NDyE_-feKg7W`#^5?X4={vEXah|~=b&QujH+6Z z7Wt<&Hki)6FTC0ZucMpCX!yOsg9$_G-R=1?Dc)e}bMPMHXs)B~tu9D|eI1x^%#3vK z!~6kQxdsaMAk>KhpMy|?Ky1CaLX>-j2avAQnSGlA;t>YKqb1s4X4hBU7tB-`4q=i? zNPMa_p%&_3+@l47VdYCy72@n0+CNXg0NngfVCo0m-#(OuQa00bP9*2*j3FYobj(Ow z+2qCu^*m*ni73&ldOA*Cujc%wK?63bm2{?yuo4cw8qM|?j_boDJP*@K|zFsWZ+!ChFxIn z?D+;dJ!bOc9Qr(!3B>)4z5baICUkPFG~uu$!VMelw7(?$Q)Y+b$ACe)Xr6CD^F8Bm z^@B?3?%;CNG9JMy1PDAP15Z4ZhTUwz{y;Ox@4@j3=@J8;RCQLf=M54ppef>AAnqG9 zskjq*zJ+OEb?BfL+^C6cV_4u-l*oBpDaUpuXs+U)X8-%oJu^#i9GEO&-W!^GMhU@M zIZJkw!s)zKbT+1QCI zy`=kwDA6uCNXg9ZLqI}nv+)M@OyAqSv-nuHHxsN5+0`S&k4i36$;v{aPgHhb7LVSc zzq}g`UDJ0|KY1#mhc-I1I%heCf`859ktC$PWW2g+#L2PY32hfMYVOo*@g-n z#;W6_cYR>Wy#(q@lM`%y89JsvBf8-Fq5wq@q?D7;ps`JKE;0|;VgvT5i?hJM`2@tv zN)*}Oy!##!P}5EJkf!W~U8x_52V0JSY|@QfdMxAwpnTPg_dMe3TPhaX4M|*sd2U~ol#uP2TL)QN0lK%BT z>xy6btPW$qK(^4Qv}k4%**al~*KmTLLHa}Csr9_nm8-)E=mxX19gO8lo|%!hGqaEF z+ZdI8@N}DVlIQ9HPTMk9VLv`+TE$e){N7mQD=>E4Kn`NJ&7yDA4SHDKYFToz`eO~) z%%HtwW#}{V9rvuZ{J1OmEeu|4eTa@TTo#-*5fOgu(Xo`LMV^j_We1G)7vDl}904|k;`zOf(v_$2Hlp>te}A}qvq#-|Dt z#s0>w%*8yp;-&Xy+a)n+A_0RIE{j~yBO#Ufp1kU39wb;zMqQVe%M^gt)AklIFedk! z?O+5&*d0tXFk%BYsr!=FA>5=Nt$&gMPukRAUape z6Q8;rA~biL0N19}=oR#rYy`g(Mwp17xLPCwN)C@T^)|}!Y^R0dV(E{pD(rP)>8ypGx}hIS zN4u+BXq{QUX^POxB0oBST`@B)!ermxlR?QnryDubW9bhmJx=%372&~5X(4vTk(q+5 zyc#2q%u=k+!#c97CPMmBtnXW3h>t_F$r^sY=*Xv_R6V|xpCB$ZQn1J$3tL!{JqQJT z{r~yOq6|I*xqB?2Ns4;?E8!vwIRc%o6i91PoWRYnCS47x6%dF3LJ4iJbpf?{Vc?9> z%?qU!)1`$9{p}-VGcBkqB1OYDQ#4>#tykD`r4PMvTAr+>_AgPWpZxAhI>;hGWu%%l zKz>jVo^~0ihfDEGj37EeDUtnu1*Z^F+)p=XsXK1zYN6K;pli)~V&}OjQ`W&Gb8zS4 z7tkv#l!G*4Wh`KtQR)UZ(#MBrjVCWjnv|e zyc4vba+RYVm8lPDdHQii-GhU+BD#iAeYB}x5qA5&(eeTffZ}+*9@v{cNJBUBkw^X+ zldc7wWOj0(ny|vp{Nv3@VP5HP=?qon(@OVogmgf;ir9BccTK%ffBu+qFo*JUmn(r5 zX9Q++5~N}vew!({_`L{q;m=+LG>nn(yK@08<)#12nf5mae`UqcB}5G4!Fmdei35ZhCjey^+KBjlorF;%NDeS4PB?>ePy z20b#@g-o6MMJLJ%6^H0-VqWn{bwO>RPi-}dPJ|ono=J^cv5P<^`8(2ANLX1}E9&|n zNS~FWI-KVvUf7B7c=fn zt?hMM6;7sXsKU=W30ME3>rnrV0uTI;W%#qt#Q)asQOyP%L%Du~5j|=$CCjf<>|T#?Ujpt($*NSSGyiv$(s0)oIpqBoFB{CQm(gwJ z{m>J7dsvQ<`dswKo$D@7XDL6xc)dzOm;{M#2nqh`;{E|UY&{~RaTd}PLTj@Sm7NSd z@_{U1>c=+tG&`!C$+y343WTw+bCm`$osw8E!h=3y^TlPAY?<~Ok18X7(a9idgd~M| zAT6m(IIua&$^!6P1m_2(zA7b>YhxQJOh~r<_Mo%Iy&iy%(O?s$<^Q)sBtg{$%~46C zAfC+p-NC8AQQ8X^z}>}-9F&PCMwS@SmZ2*!Vv|vl-*jp%`#__NIq&X<9s@6!`FSl5 zH+6%yb|O<)>)#v#U<7KJY)t)GvfJSrzg{P_uiSArhrf54{go4 zC84brc6!NjW&kEgy6JhJQ|#Vi|G6CtX+?QHioSI19R09jd3OS%09n_6G4Hlh0DI9) z@1do2*{;+mFD*o@B2((FsV59g2L1EfcttvF;y z@Kh~rsn{jw|J`BtKbehib5v83E~5ZgeA>#Y!kN?dym+#|=-!1g#NVYQ^3ps2wrBF$ z6Wi(AG$A@3GIACk2S4w1HI3-;B$ zMVwJp+4I)A;32bvS$fC)zvsAsEDfq7A9>)4{!hmS`&#KNzi(|%B49OR!6(*@UizZH zyr^66$|avOL55OTK;(PsxJJ5e6~IUhx`i$uz%Sh?L=HhI`^vE63HHzubzCP1Ag@RP zVTj(r+22#d{;7$7h=L1V4JqBYRS@E2VnNE1|LHrlZ_K#Ci17;v5d(?D*6Ry-EK!UW0!z7p$%sSKM+E87_GBDxr{6lzixqpE6@RA=Dsi zA6HN=0cIFQ%Y(2tjr?*5+mA%+yk&ocvNga_D@xq(D4602m%BHEzRN&Spj|2r;Kxk(|1jdQ?|%X-q>F8t`gp0JV}}- z!D>yr=i3ZVUdk3^wkr;@)5}Q~8Vg*ZIN!X;C;UC(_3r!X(}psj6O2S@Q<2-yHKFFu zau^JCzrXA^Fji#+m<9DuD5$;HKTU~{XDodLDMBx<@Ww1nt(<(g&VOJ^TZ8Ts&UYLN zv^EsW8Vge14rPsX-QQiZ*Dfgj5& zoZF&THs4u*)yR7&8LIQe$IF?|11prypq%@0wE28$;Cf!CZKpxw!^N6vWSwt6ezFL~ zx`vYLNN4tHnZ^i@2s@!?BFXKK)izT z(x^lMEKG+kl23V0^3&A$Yb?>X*8zLQs%rP2OkWp5%Ni4VpFz$nm`+0F$W9Hg`TjWo z;b=Ln20(70B?iwPZr(fa3P6g;f(Jv)&Hvk4aaVge9m20BuvL&9X>ab7zbi=DB6gjK zXi5UO#z@Kzup84am|y7%1OwrA*iO7C--)b-`eKfSR)Kq+#$X1lF;Z{t>!*O_Nev|) zA=`*S$8^BlGe&a!0SpP;r)q55^5UywscUa>YpFDp=E2EJ+{}J3n}>KD6@g?j{ybS{ z%UQY2I$3GZiC#fGK7)t%^E&oC0i?#38Ed&{EV%FJ)2R#^Kxn5u%v4N3{&^U;`i%w< z+Hq3=qx~D)dK6AWw;VJwcn`<^zmEWIPphI&r&ZF+tAYC{hL-TR`R5cKMAm};-18S5 zme`f&PUr#^#3qa)$G~l703QqmeJ!sQB#+2tg1mo^+4!?N<2S&F+yE@aGw^)MqX1#Y z40PA4A;U*09r}Gwp+{WT{7dq7YODGl)oL#FUrSdvwMfD*4y+9>Y$MhhYc~@!x@9y6 zBu^`<{uCX+KEMu4_BWjV=DkxdQht0S#V_^+^FjH!Elk`e%WyMo7x}IXj%T*ZA0WUt zi)ezDM6H%CQctX1PkVTFVaIbxkpJq^Zhzmj&r_V*d@oC6`-eyA#)I7>2q7X#UoY!Z zY|#(Nd1WALVZ!z0^UBmb7G^E~zC*G?c$pvf=Z}7@dX2C7s_yM3BwvjmnlmWht=|On!#S|yUpYeS&0?V`2Wxr);cs|o zpiTX-iexbU3g^tRq}c2pY5hMSIzvs7eaGci2waSiFJnm}|7625#PK?A54vG1fE`na z{aP>El~uN65WQj28L*}fn@CG1>qjlqW|Bsu2hU?6l!HY`S68CK9epYT4cmdHLH1NV z{=FBlt~S5uIB(C8NFn*C?dD*Z5)# zd<}aJ;Z3q3TTc^wGigz-06HTCCq#bNLx6h}^dg6jzk{s1Da29WkX?EVV24PWWJY3t zCw5gAbmg1c&KO(#t=!?sVW`AO^f*+l19&M|hziHNC==js?@tE&OOESKxG(z>3{aQQ zLSzlVt{X$fr01Z!SpNkNvT=6{i0;7N3_g3v3?_Ap5YOT?4`)`>8q*DqB8gety@^s16&046Q z(Dv7X?y8Cp;z|8;+K>FxwIwOx@P6qJA3J0v2J<>BL)kb@eK~aAXIIK4aD!DUakbpB z57xKtT||CFEtbN8!=F0ZFK}g-$?gWIu#DsPp~k)?Ng&!k`UkAt^eyNkkQE(<;^hXj z`DW*=(IgW@m**%;H~S~*iS-FfkM#_16rF9d^ZW-6xpCWeWmHU?L^n=PS@=pe?!NkeP4GYUPsuE>8nsf;R zAch@^s!}K~xK+s0&Ak@zw6t{rb2?l0}q9>&pB`+RkW!9h7Ou&w^ zG0)KQk^4ZB0F_&jk5j@rHT=3B(f}aOS6crQ4J&3!z#hPGJTglNr*C_;Pn{u}_-zKW z6MXHQlbXQYlA~#+9IVD(B-v>o<=-dguwR}R26Q`Uy+Xr0jQ{({nNNs@5gBJVwo`aY zj`J{)j36=gokxs!kmDDkb`kpu{nBz4)pC+@-JnA>+HwqnBJ>0HCY=`c)=#HNmIE!I7Q9TP`pfP!k0GV!~+JrditGLbbmGacWGz$%*FQm2xkYda0`^ zUo${m#1pOWnUXRLRa|*dW0-;iQmR(S6986j#l!hWK?db*U}q!;jlIT+T0_LRxYEv- zogTazM{2aA)yzx6P@4e-Xu;>GC;H zttUV|z-Lu->fkGqg*Ru7=%lxeU&YjSKDDrN+l1Zxi@7r<7<27QsIUf`*}&W-+u|`Y zK4RpsYS~idEkulx)dTo*-r_qUO+X0s4Ov{9#1`XcTA4a@E?X52|A226UL#WyOeC3Ca z`JikTmM+RaLAZR(E33Xn)hy`ZsBG)SS32Jop zf;Er?_xErTrroIv$e#!6UOmVDu=DQ+(mgP>h%em%-$Ap0f=tCImjK)W-vUzH(d|Mx zN=_*jLv3-!Kfv!w1?alZ!kX+eft0`B3)vLBpreqW>V~AZLa#3_q_0Wbo#>wfu_z-z zqy`p%h_zupiz}7by626fQIQ;NwBcWnKP9itl)IGP#yz-art~k$od3W43{*Pwwk|&( zZX?@BR=)wj!kBlS8UIFC&noAn#fj|Wc+TUsUBgsS6P?P4poTC)OVhto-PT-=%5m5l=L+{v0x6ldpjq%GeBZiTSr6y2zl5?)_Y zWd6~gk7ytJ_$GI)-)KYWD!2MX{8tb7`Z7auX(>q@@s%CMnyG8v@M*~LG!Ai&TaCWm z6IRl{ap!(4P(~xO@Qzx+&A)2j=i)?WT9jOz3rIz zgltgys%&7F1T+48f>>Te&6do1?=xNAn#h}N{p^f>QoL=<@II7OTT)i=px^WJ@s%Bi z7y3st9KHMjyoIn$*uu^4RHTo5nwF?nmw2R#o72(I$L6NXt@I@g)|7hJ>gx_#@TV3J z#_{!}7>0hJNgQE*Mw8$UO>^1)Q$w&|iT$UP$|&+rJpWsw+*@FvHr*csH<7|M3CeQC zf)Q;o!E^su%qP=os#CQG^mnSea|#Z$XwT4-Z>6`xR*)hnIMN$o!v2Q>km}?$=>y3o z|E8t>?ZI=JH1+h##u5$xGeiXGj{rAw0*n49qu8m{Mrm~7`ujIO^HmxY-gYFyshh}- zy4tm$Ad~F^aqRp^#T1Ekvah@oZrY!ZpRqKR;O1bsy`PLUcavm?f=s?_G`cnETZ7F>!-7Cp*y{XszZ zYWEZ*1nCUfSN@EAvlCY+ZF&3ycLfg|CJCB7K;HY)t?>-rPiKn$xgl}6<)CIxp>@Z$ zE0fdZvDncAJq1Y;t6zSLC8^gU~uqOARdjTMr!`|7+TJ}U&Uq<@~#Dadc=H~?ntF%a!BPHe^2cerGSH>W=w!0qJF z0J+Gjuu~ZEUxZP-G^6k#8uvuwGKAE~a}DDLJQ)ZF>dt!Ra6!{jFI`kEa&6F1z#cId{1|t!5+VD1ZGKhmFv(sD2Y$#+OBuaMiC4Ule7^#pDhW_JvGp^+nd1OYEIQV zfCcx=fHRs>Q%QMWs!w2{2Hj!&k5}X=@3;0|fu-~TBJ&)w5ckCp{LsCr^gL7ugV(P) zB9!*z|LeiUcp>rK0gw%MV_%U;-TJEtwk&Q!8>&nlu&^*w+R&+lY|wU1e}|F!#CbLa zI<-P&fTKF4OJNpzDGpwHVB5LhU#v%*OB_U7HK)N;ZyJq&K!lPfw zj-1|P$L~8?Q86j)MEsR z6350VBW7V5E3V-__zI>v!$pUKqDtl7ZSVSZ`hsTu8gBYsrH@l@Ob8C?l{cmop8f(I zyE3zY^VPZ@4SB_o-GteKXJ`g|~43 z(p$L1mMYn3n1T_^jbq9a%SzA=UnvcHl6-3pof#m!%CLPgM7Ipa;k|8A`uxPqIWadm zvUB08*JoD-YGV}xA-X~T*m9}lzQnrwX1fTPadZj$($#!_m!6E`nu-8u{cFg`Ir~C| z$Fp5^S;<__56b%1;hOt!lTw_I)YJn27Y%Z2N7T@Tji$1K3G9K719Ry4%*XUz^o`!9 zlef!GDrfaM&&m5}Hw!N4CJeI2+E&7y-N}lG2N69HD)?a2Rxnai-(ppYX|TZ2g0btK z&m|GVnrBTb+ivcS!kn;{Czpj>kf9YF3k5GPV}EqE&`ri+Ei`6nO2vhC?wm$|_t+)b zJy;)SB`YQ{yk#EIn7>K-hW2HMztiKAfv@ERZ8d^{JX@I#R@g6; zuQ6=0()n;K?RMS;oyoRR+QIvTB*#4{pmhwKt(dOmMc;95TXEN5U%f7uK zq~~?kzRkO6+rwfenm>>qp$baxkcY@~Su2bn*yVXd?}SVnnMz#X;?;ne} z13r-*^j48t(Fjn;V_+{e=F68MjJ59+&M6( zyS}k-qkI?$i(CGm+tkXvX8Wbo6-)YrC&w2y7tJG_jZChwXjCfZTkH*B^v zi(_YX(xx%#!Uw0OI~3jZ)CV0|p!kgx7R;2jXu8m*@{63&pBlu@U8KTOvxZn{wA)UO z9SQg|9_OFG5I$vhE0Q`_7kf19EAmJzzL{upQ*Wa$9~Uq5r$M)R@X5?|he}?MRMO@! zN10E9b52RW4HvL+$N;wz?cV&$Q30HmV3Q68$|6mf&-hal{0|-QKk#BYdeXJ!Pg@4? zU%jsh+6h_BJIOLquKfNmf=CvcQPmgRjo!?$y01ns>5yWdFsNuv1~z@xkQG!Wpoydp zd|uFQraMsq*NwDe$#R^E6i$kpqq5-yNgu&&(`a7@3eaWrkPeU>=L?GQS0S6s z2(-EaJmCU{{EmGbN%MHtfI#c!qZj{@qyUONZ` zE#gjAIX@z11;l)n%|1@`?Sjj|xNS%ID95~j@2GnUfTJ^nP{)p3mZb&T?+3*`@Ah}X zR&{}j$o^%40^)qoLNBR0L{B-4aQLp0YYRu32y?7+)%#tYAH?tyB)yK3INxdQXXS&J*X1hHFG+2PQ`R z1l)_*Ydv8{p!QfcvV9bDu&d-;oBO$s7rrneYe5q*=W$d$^7~XhcF6i%!qIlaIM3mg z^R*IN7&t?e9%4(k2G0&bcV`j#v35StMH1;0n3|S9*;6{Bpz7lRaG7X8FHj3Z>+DCHu%C~0LIqNgnd!?|%N=#g=MQNsw)Pg{8W{6p+fN}u7fN>_B z!?o*qqYmbXg0>ZplPTerJuh~*r(!#UF&YS40_0G{y+>hlZ|eVsR{y$!902M`1j#rs-_n$^=MO>T*#KJ$s2WfKRj^D$)L(S7S{hIww>jz1 zIC_TIlhF}949PvfdYW1kc1a<4-0*6S5u^?X{E%AJV;P8$g&SHFmcA^%c*+~KT=_ea z3y@LJ{qYaNEMSJ7`hZ4)Kv_}4pgf?&gWwjbi`{0A_(eC(cV%pu1t8G+vjhlGA@OUD zpz{?OANhb?BJ^$aVY2D5kX8* z?}2RJ-fd?Bxm&GfI;Az?nIa#sRe(TT5A;NX_DbrGbyGNYh5C3GD27sdUz!^^MxNUQ z(48jF|2~WVe?aAE(;IMx4x^kTmTrVf+i75hcEgH*uBRY}iWTc){7fsyn{G-z-jomzY&mh~DV2-OT4%847P zERb++91(aw*#Go?=r*Ae$q8mxb7;61BzJaQj9)X`RZQr?uC4_Y%+W@!h`|#%!OsriBpA07V*)ub=945l4ovMovAnw#|o!`j2Vjer;(_@ z>-iZ0BJ$OI{UNYWO{PxhRiJ^E0qP(joho^B^>^fktb6$Wj@+0o5iCI+we_7~0a;hH zkNl?2Mr_^zW|jXsaGCzk*BCU#Z;n(L$5Cvu#7D?Z>D0~Z2>!nCvT^aEJwn$p9L?i` z9fs~6#?Y4%T`D*KLG#K&mLZh={oiPX6_1s~E`YHba*)B!+3lD$@tntyOfbQ=9~M}+ zv;FZA)DdzLY$@oL3jPh5{%_79O1Y%|d9OblNl}}sj8`dxr-D2|m z##QW|qm}92UjeR+aYd))W##5oN+p}uF|}&k)4K={Nx37~SvKoV z#MeLEQIi>B5@eI=weM6DSG+CJX#45*xn$R3gh}wu+H-QQKOQ%C_2FpxywEJ?yqab2sU zVg{|m$rF26t9d3OyObLcc1Ij-B1#foeb1OJ=HZ6Z3YQqIH5YE|#JunF_5Z$=8}?rN zXZU-K7}Mp8KZXT2dFMIOu8g7Cq|+DcyTP=nDd#eJ{)%Wpx^wqF`aNdr<~gRF{P5;I zxkVs+sUyoIDP^w9vkxV2Us^s#a@HF39~)+98(AXsfAANfJomr1X5_tf6x6%C9*~vu z=Rsxq>0%eZt(K2pi7!vSR8`(%0Zn}Kd006RW6xOsA+M1C`0#D!Eyv2wmW~^IneU1WcLGjkCyZ7~1CQ%X63M=512BhH}-}v^QsobJQGFs?4_* zKzjJN?rf?=5QYHvPk%=RPm=m{x~TD>5?124IIptk%-D&A!Q^V+!Q^cCrS_hJ*I_?$ z@Z~z$AGPRiO|7RdKRTu$cNZf4$Ok`sqN@UaacJ-o=fb_WI$0}!2!O&IT2cLX2=_Nn0%>Sxue7!=Xy)2K+}QMOG`LUFpt-Rb-W~*qQ-^&| zD@?Hky72Ryub=<`JgLpu(w!r7iUu*7xK}|1&n_1oVvBdz;FkSb&JAD+iV4Oq7#qVO z9~(gKANjDK)C>lVfQua2qI?Ocs*qh?f23c>TaV>ta$`X7)Mqq7u%LX;eT4b&^%q@; zxY`sPHCayvjd`CH9z^d{8|4Mvl}|M|%AAz*{aBn1@up@2zUUc{L!dBUBYD>N5o(8m zK}~2&l+{-nND2p!z>OnUfKcxgwD&#!4n5Oe{y(Xq!vJOf#faoLwu#Nl8rhGAkve(4 zET{idG#?pV(pd3Kkxx_f-~{9e?`|hggU&%P7vc|JYKb_c@y2gr%){B{h1v1$gH>zqCp2 zmpWs%6spGc{TA`16x(K_mqC+E&uoE?l$q8pcEWyXU;-Api`*6u&!3ENe1dB8z=MfD z@5vw&dWxK@yYgJu^3!gK?ktPMT_a|>-Tsyk3V$75ru4EpYd3V zQ$PFBck%ISo6VS%)cDVNx)51Q!S`qxMpv>X#PKyeS2I? z>-T@TMGhTAQW|s)T@WRe)OI-)Iq5DEgAUy&72TUHokXfZD3M7c6_Ru%HIkZ0(nWWs zd%8}yxzB9BwWs(TpWo+u`-9g^v-f_U{XFYg&sytwulIT-3_E&0R+Gn>%f5m2_;eIy zk7x`r?*;9uoki&!nx(M+&Po5vQg2ypwv+`}DJIFSP1*g>Pr)uP=jw&F+eM=WPtCmR z-}W6l`=D|Iuhe1fbI(y9=11PFor^OT?5q;hy&BD{)O?0%e}&r7e^HczR+ES1ZjPCI z#GH>%P#$?Qt3&>`%g4JkcdlZ6Nk$X=_D4R*l^3LPQhTm@BE#=PLhP-_rCs;}Pg9d3 z1OAD8<%@50T>fCP{eo-jESxu;qf`{Rcvnd&eX3qgS}8!frMeORr$a>?Zrz6x509$k z9ldMf$(}LHq@7i@&G9;t^$GclSX9F1fLgZ2nijKJx^iDX#x}4Z|;M0x1q)v0rV-AzMx=MIQ3cT@W@vlV%w66ZM z=1EXWMY|B9Wes{YdL(7SOt24ByV|gxTZ;`98V(wz$r~{~}JMq^UU-Kwu(eBWIVD+uzbJkcpQfFR@ z*kd`cCZ%_;;Fa&h!woMP;{*P5(FTu^M^_)em*H#oAOoRjnE$ocd#*ZHneNZ$DBO{r z?o@O8(nipK4WWHt*@vkfz`t-Pkuum~+Na}9aUvJr1x`nWNQ(V0Lv&(Ep?>96w7Z!} z<{x3S8}lFykL*Shj4;}5SqFRw^|4+%gg#VHs23LSi#37g`;sjxLBnS0#Uft;x7?`1 zwGr8}kMZjQ&&AA}NLw)C`uNx}w6l5qG%(1`!xn4uioMwftL}x+UQ<5(-iRKI=-<<$ ztTgf1CfzpT^$BE@>HAHBbWo_)?BczE{Oq$LdrU#721yTU?k4QyRnsa}dOCe`o9EU2 zO1SNQgH%w-rCc>Gz0zJ9SzrY$8p=hLj^((b{=YB%j{kQ`OT_#npUaL>-K zcCt;5CkV7>ngOJ7`3&2qq6kdI@0vwsAM)3}{+9ZJ<&dY8+^L@WDQBIPzIW@dDTMSh zR_*+2b)9K%&Nxz?c`T*BF2=a#QXAfXwr#7sv4;1+MgOR^HhWeS2x9X{QMeqXLu2v5 zs%4SS+~*3TTz0mj5G-lmurd24C&qZr)~vrGCRUcDtG~^7Io|KN>G;TM%%pq^a)GtZ z^(=W$?eO|r(Ne=rZgpD;f?v7g^v!RzT!x$!u2$&sOfuRJXQV3q2lx!?k(rbVk2THu$IF<#`zv&l&D%|a6{FK_1D<(|nB;&7%NC3}y}4~1 zZblqj+OpzQac7R-hvyH8ei41i4Z}|L^3iDhVhNGt{esV4r{6e;X0_U!Zh0(OL1@RN9rZifgEB(cDfM*-1v+h7jcBId5We59=HRM0qy6?Qfhry+kohh_OaS+G8uM9YVjSvs|;`Q-(<&NcKv?i)j)XuXowAm!X zp>08!8Q{H60l6JA2bZ#`G*j`c{Cx%>yZFyxCuJZ^iKDpJ2F@}_`zLJN>&ZPFqB04j z-*@ysNX-vH+2uqCjH$V3ykoo>!h__#KM2JWi9yt^?tn9?aisB)#hb#rkxq*|hBjqg zxZ6Cbe#301Xnn!Q62cd%KG{5_o_vyRr26|uazI?rEzN?0`tY!vD7ROdb0%*0-3a*{ zva+-AM0!~@7MJhXYGve_eEIj1Qxi|#>AuT1sa)-NaOR#R>6c7CqH~e9q@vX$@%IhY zBMeBtoSJ#VxcYFo=cra2Wk~+yGq;-~eRdwNBo=pxHWC#NWc`ui!ABZ;DmQP6IDq)i zb>O@!dT&=4-m%MOUpy_X?U>(To9@aGp9!aWLoi*>pWZ)Ek2sH@m(qn*FEh_6L??QY zZgd{rBD!X{GDvTo=pHpUb6M~FXgTEu;C`DWv>8RtbuV(x<1FAgo%?W*kPtu%r9lTb zRCn$_>%5O=CwTWVn$4x| zeOq3?Ge7a0(|E>{?5dWScJ$4ur`*dWBTX0DZ@ah$PAtCXIa1Jul>ITjsfBy$x0uY< z{52`|-8ZeJn_us$xf^VCIcJwP7c(gva34gg2kQ~<^{zVECox`b=bdTupk@$Sym6x7 z_K6syQQMc-lx(*X!UNh^2zQNC^cjvvmTBHat?Y2i`1Z7t9OZ`w(m`g%hfex!yWueM zm=>nH(i6*x#ik!7r($%<;)$?zhF5$t{?xpye*II?5*@7S(C_T)n8RoPeE4{I zj)Ccc9Qj8NBF*RoO_bHIwRT0qJ2U&>x%TF)n|2gVH|=%emCxHt8b9}9`8wQvs7>q% zf<4)5h1MPj?o{`xfP@{a5{xn0_Xq}2dU~&j=P^RZWxAD;)!=TSKA zwAa~hj&v{Ev*V_kVRe5nfEQ+bDCY{!PC&-g5$p?N>})f$8ldD~KpLGPdK4x&`$E3% zh*z~{^xcl9h=)6HcAOTNRHeKn9*wwjFDBWseZ=qY@f2lxY*_Mr>#LC3Efk7o|3@B< zf8*zH7GyKb9me+(d~P?PGJW>enAU3K*Mnf@DM5Ka2%MgGDwpeg^FBZ=Q@KIf?bWGp zCOy}UfwaXV8gzX!2R!o53x&h*W>={vNBk(C{LW86}1z6Y9+@`e(en9U_#qZhuP{Q-^2-gCKI{ zNsN)k;A7^FyC&~xoKi19|C6t=iC$Y=PCxXjH)o4NkXbk2e!})hVjZYIyJTqV=-QY?`MFEP`61*ownj(x0t+(%z_A=5}Rt&5-`6R@tvk*uqfP$52`| zz%F504f^=@dv=+c{NG+dk6dfemOt%c59&Vr(5yFanR}n|9;;8Rb!Ydx#x|G@2zq)O z3jfNbIJxq|KU^)i)>T&}eO1uwIJBen?XN8!O6|4D{^Rc-=G9H~wKK*Nd z!p5(Nv<-lrymt>*UO$$*bH_D*Vd`<|m(pi(5|-UNWc37f$=-X6=9)#8f9wwLw92Sl z7Jpuh6E)Uah{*<=>)-k6eyjKPHOuGC+WO|F0D}(>(LanV6UVG{#VG!tFZk)||M3f6 zX+rY7^h;mi*CQK2>EH>?^QuPog}lGC7kP^pe{l(9;TQwWMSvmtJTzp_i}?9y1Y9WdFN})AKf*Boh|NG$s}%<)*~|Pl_y_H( zvDNtD_Z82|X~kIOu8Mg~x6xeIXO31oaoRl1qkyL)vR4;2qMphc7qMMd0eu%Koz zVL6^gzaA^v4ky)}A38-7*jX0mO*B|*OBgs->sV2VG7h1PtU{t>h}D!8eJRU~_7H^r z*y1G#AIQ-xHIxp;qSoNYS9a#@e`HtEG>TlH9F`DG-~DMpopnIOA&A1w{t=z?hI${q zmMi$95X8IL1$2vfB-LU?0&wPvLBWX#L`RoAf)?*$LtAqO2K@ee_E|GdBP zjFWApvKBMco&(30b+m3W4vxP!kUvZH{$GxS8(ShaOG<#6nZB!J4d}DINePVsQ8#U` zlKKUnwn~+8!e^$GVLjr2^~1sC8@IZWr{`Ntmx_$Tkuihp8l8lbN< z-p=5v(T*dJ{3Nx1SV8qi^tbhXa!~Fwgy`M(r~ji zeJpHZtT@9sc7e_1x^cDBm2;f089pP7SXVADTfg=9Q+c#^$m=_3Te8xu=Ll^i;e|*J z*VDgcgA*H@>>+U4kvkkz>S2Dx&W>Ns&v@1QO~SSv-0Z`bW>%r3wzZ8V`|1bmZ|Dao!gt-5)KIkQAAM`Wqb?PGf$rpI><8pfj#)H?j z0OOl7f8#faRfXcsuRi07Z!Z^i$wWisk{-(xskdtiE>9hKA1LlWTN5qbQM5djE>zx3 zGoy%HO`scp3-vvCH`f*2hMjh_-S0g5ME;wE*PY)kV}Y<=*{)yh_25QqYZUF%E>(QL z>=tN|nw1uCAB}FFC$n>;YqQQmC(fhdK8h(XgDu)cAJXsGHT-+?HGd;NIQz4qJpJtf z+8j`G;>GM)r_XOi=j{~uJ=TJHCM!@D{p5kealDyiL&$x?>dIpj?{Z|*n|VZU?l===k-XS+KqPm3I9Zf_B_4^^H?`-6Tn zaG@kCFm*<=maO`v>ZZr`fX-FtXORl~G(G!CarZx0_1O-s;7fgSYCSEl z+_zH$a&|m-Rnj|DZ~HI80sK}qIEsH-wUMlRm{cgYdY1@Uux(Br#ncQxm;ZY7D)5&r z$J6q6;NSZcfSu}RGBl?G(wQ)WmhlwvgA}QwcvK(x_k8f5lEZ&|kpcaQGk-bjVapr> zt<*iacpf!Q?j;3qk!mqA1W#30fPaz|3veGgv^Jj~FE$7yD;7e$gKO1sB|_@m1rzyw zt*Eut+S^i_bZz7v&?pmSup(Kh^KHy}BDPjr_@~1eO>~XCLc=$S<%tfdS$G^|o0uu= z{|+kI7D%$`cVh|XP4nELTA@)Biyb7%hMq5qOJ1{xv{+k5T_$T)9htwFE&y$_h5t>W z!(2#x*CHwf19PBj-X3i06NEwLH8ju`>cUF&ZxO7*D|fTy2_xNom`Q0br8FG4HAAHq zYSg5!*+5RV&C|O|y5TZw6~UCZg|dic_>BCz@Yhn{k21&iR5ePk+2=7q&;9<3g){N9 z{B^Pm#0lV3-%K1C@;&2Y-?8rR(GBpHmFoTuw9W*kD;xa}_P;z&-I>YcTRx|~MATqB zLoiOS2~0w5Y9a(Pbbw*(D;VXpEoWsRcmdcC{Ry1VPH&e9M502(1Y~xQ?dm*#KU>^F z43MAW1n7x+M)aJOy4W&J1H=?BdOhD}DSikv84x@1e`5?#oh`N8d{VgHZBT*6r{RQU zi=>2Nw8=WjcdO0-_I~cGq|jrF!PdhM%fu90KgbZjg9j(``xJ*{X2DSZ;dZQmDcgl}}x) zSiR=vQQ#t-8)B@YCS(7^k3Iju)ko(7EfoA7gaQOc50&|FuWa-D0}(GJcl|EwNcb#F zm9OINTbLrz9XG3dU{Cy?HN$B=m-5#By-COPP+eGR&qbB@ClASm?2QebP#*2M$Zg?U zY8@S&c&ug<=|W8k+x?De@{IJV6CK*_)RKXPT9Oz}m}cJL>4MBN-z3i1(4HcMY!RiC zBIrpH72PJ}cw9t2U&eLWNA-P|-(DTLZgbP0X2Mt6K|5nrBXh&Wtz9PPf1_*VBV}Io zez^`$+C^fvxtJ4Qq4tlFQ3k8=#%NS-hb5CzRtQ;i577=D1pi*NLI$~+-}2Nqp`(?7 zy~0Hni@Cktl;J$=yjx2&}in9*sXswJw{du1*#sWw4qc`4bdiN>oUUC_i0MAgD>Qp;M1=|m| zNULs1T+OIrrFF_1_0`rSZNDU?y$My54l18rwhQVaOb0=+m7YrIuK73v>UC3(0-DBW zib*KxtM;NJn@&y#j{t|U;v8Uxe@*k>)3@EovNm6wSp1(e2qxLWro*8#Rs3)Alv?k~ zoNn@%^YLbyC;;!>j+bX4MRId%?EycbvqmWHcR*ISNZnfLnCnlO#5l-$<)76!=ddQ) z3`g?E%yCL4Kx#j_6c+$VbMMW8n0fx!9HUK(uurhiQ~RI4O`hS~g5Eh) z_Yt5W&pB{>e+Kt)sB{)F;Ow9p~ zmWzRrsTyZxa_6|}1m;Lq{)(5&RD;od0^ScW>us3ikit96qt{_Ja}J6!-i3@$k|7)8 z$bP_x7xmyr`5%MI?cD%tCoYf&aT@y&y%mHrXn~pcxJ_(qVam2y}FmsO);D5d^l705Lz(Z=T=-4MW7)6PA8Rgy0u4*K5L1 zLmyjffbQ%{HLu`Gd&yi0R?Yk+vG-|;YL&!9Moejtd7VJo%i*H0y=<5D?w0<#;NpP; z)f%_v|G*qH>P>M~Rp(8fx#Q>TNA?}-*?|*3<2mLI@4(uZ>o$pJ43TW4G=GzZ*Lfla zJFg4HWSu^z5;XhqDxo-%{VVPz{eZ8Fd61KFheD3rk&KrPg=}RwZ`77np%zL&(z!Q& zu&%D9^z*TM-G=f>q{igD#z3;3^o)qWx@pFx8gX^=zj~D?o~7b{e6sqei1{v5ivW2S zFMgX7aoWM!3l}UrC4E|tGN9+hjZ2ne8vlTOh)I~OE*M^y(p+U!&g9h$@v$=zG!1)P zm@956{0q7N9mQ?2@e3s7sJ$d@!bNz6;#qvn{7Ckl%EoanoudB&5~yF*CBdFgOcOJA zoq`0Unvbvq0U4a|FLK@;k0>9au1nIz&BB^`7VfZ8{9KPh#q!xVp6X*Z3n7AUf4a|T zz2o+mkf5|}Xh%qhtGWiAXM^O?g$dDx;y-8PXMp*R z=5qrGV_SGy;f#LD1hX052?Fmnzphnn8dH;m#~>Q*>edjvZ7F3uVC zUFQO2)WZv?%V%Km6?1JEZ#)_N_Q_Tp0zPqiK~UzzA2gAxtpHZZgU)q4tFA>ukalGt zFD)kR+Sf_z#=*X}3)kWC8{CFd)*(bmY>Ci{(6RNF50iDL>QUonAJaQZPv0LY42{TG zP)saKxs3{teDe12N?-7JQ+YtNl(3hV#Zk}APJ9oHpk$2!_GR(mjOT~JZp-%%00Pq zie=ca?!*zRsHKqdoyB>_%Yo_-B{p#Zw z{NV3DpZEPRl|PmMm(g+@(~EP;;8a!OnlNH2CFXdBt)2(wb^*YIzlyQZ z=1G9Emd_IbrQx}kprSflCc@Lf_VsTKX4b@1m7K2NSv~eA_=Lz*CM0F11>P`bE7#3m zJB)k*CW=9gi%|vGoX;LuTPHS?sL+4vHpHxJc@2$}1$)u91aOImH9Xj*!52(~dI1Fa zyBc2r97Q$!Bd2F=%|RK;Xo|h3OuJDgk46~Hxc)|HUdQKqI;3tZ5IuF7HoW}cc#0}^ zrhP2pLlhr!bU_Dv$95x|PUOfAmD3SiS@nx4FNY(59r#0Dza_0KU#--VE2rCLHsL*JfTXS7@P zt&^R8b(g}bIR8s|@#1M6yqgpap#=N)^dF2_D$T**9c;wBxAAs<7n;aGEZYg3x#`y< z=OdRVYX(V@p_GR_kVAdHD8Wc>$0UdB`YIn`A8vSi11Axl$_jSrB-2#VJUrXDlVWeH zEBhRZMy2rr#PqQ>svQaO^cxCzwzuj0K+AZuI-bP>NjmzfntVd|b)Upp=ANGxgNITQ zzChlcn@T{&iK@i^Zb;w@4L?FQ9_?58Vqm10IvrLM&CPLIZY1Eosd$MB5I zloS8prVY#N8>*Ci=G?vQ52@ucz1s#Dqlt>rhts)Mp4(P`*#e&5v_wVgEC+r(9BPDE zSR3>~O#o{jx$QcXb=Ie?co$c(;#KAtCv#hr@hRevp=%PQz zz#uOAO>pENke&Ys=}C-sh9E?1&7v{Z(4Kd9pR_aCe(uPj}zSSXe`e?5+`tz%J>`KF&3j>ym+G)Ls$u>tw zB0Iq;ns5}h7n&I+8=T8P`k&C4wU#UgC!xTRU$2n7U9camFx{LdoDivLct^D?#guv@stUVMgY z4pZtf;qvf?4U7+F*DK{M|CH{@=abuLWsFuRO?WfikP3%^l#{f_N6|ake?=-e zFT97CK4O=`+Aw)O+1I&mmY*6%n6+paRAWMVTVx&|rS-P!HqTp0=h#zq`e2aOBlsW@ zn&-l2clZn^fCRfY6AzBFA`zj`C^CcN;)e|xiIQmJWu2Ii#c+z2{VB0HJDlOX%^TXdGk*FaY$%p=~ zRbelsbP@6(AXW8dSJ2ZyOTkl@B(4nas3(qPir7w?g?LVWBwD_Ki*ntDp3*)XSf}JK za=BmTiVQ8bLcH+{Zbu;5cGEdJ1WtD zS}CyT{7W#KXqb83M#A{eEs-PG=g6F(CtKn-LuB@o?fWqlf29fZ^_}(0&8Mcpq;4b3 z(B*-pD35!|(6X6)o&Df47tDuBPohY z)?mT7FpZDIseRnhaS!{r9mtN|QIKIaYmLaPO2qdVNjFRp%hM7q&_&4HRhyAAM9m`V z?q7r(J2XzwdJ`J(s}hL^VdV8Q1QV^K>%r!DHyVR|=hdKBH`ik$)T4wqYSRNH3H?vF z090FtuNDHY*B9o52yb^+nJ14pPG@-uAmxFPf9#OAuPiNl^}S^+Rc;=0kIcA~S=(s0#8J^q#ruHheT#aUX`#n) zm6mko=UWfVDzWDQwKi?wge;~*?to@y2drLg9f8>;L7oFzyE=oMcB{j>N%USMB~!xH zD;tX^YCY5R#-5{UTdVjdX*WD8A8tT=df}!uY-)f5oRg;9^IWp=4C+~nrPaV9z05Q@ z-s6ZJ)aW+3Mdsmm(3+$AU|%KOB@Y=-;H%Z#T;vFGGj##2O^Tng2P2vMFYYnn(=TIo z9Q2h8Yj3PjNd6LCfr>U01wH45a1Kp;m(TeAbQ5+A>H`9qqrti?*CZ;Q?AKL6b<>iT zZxZWfDmjTZ*>~=}j~1N87m!dD$!-zkfldVVw0|^#()u2jf-YM1i9^jANBWYgd(c{= zCt3nCn)rtJ>#l#nu`Y;+D^kCe=)~EGK7=q$Z@-|r8NADhYSeTqlkcp4aZA>8jyo(j zt0#}&h+065>d?pgi>ii?eUq>ObyQW#NodQqLKbEVeN+dF|9u(>sbA;mbl{XQ`2#W#V<~!ElGF<0{AYaj z&9j$c?2&xslHJCw15A^HK?P?7lrJ(x38Wl0A$mQ;Hi`{SVaLn2_lfviCFa3vW?MSD zUkIR6Yj58r-2fP1>|LVhB!=Z-GMHVlzoQ6N6j0YKEX>axy`BE8Kh*9$E(_Lidl8T4= z#cmXkiv+^)>6ktFL%!o9UBqVq^as}pb<4v?43xAJmU&EoJdZ~o0t%FpDX4ChA0e^k zZtmpV%twcOup#mA=d|E=!nQWBL?cTONBgt|6_1aGR*eyrgmx$XJZqGx30Ik#XF8Tv z3r~Nn@1yL%U3tL33r6~1FEW+vgir<31!#asSq|XQGeg@*d z$(=6D1u^`m{7o&46fCpjo5T$fV`RF>8qW0*We)Y(_(puH$Efe|+kTSTsk^BEm&LIe z8=`|C5(kttctqGwC6G^Bi1-*l4cy75oW%`>c@CtxD_({WT*GSW5S&iIwTuVwwSKMB z7%d;}Lc}8{qlMj;wp^n-Zo__}|KmEUVD~xk3P}SArc=#_|El=A@AtEo!C!}{&V$44 zQ4jW6$q>TqYF5SXIko#ti_`NHfWOi=cDovJe9y%ek?L(J?0|N#7WlFB3xtLJ&8>F1 z8mk_j{)-$^%vwD0e0hNF{hKd%T3zFVvLlUBmM!L+{NC)VaGd!mZRu5?n7h=%MZ2Q3 zZxLQCRos{HX3ok?Zqt(k7u~n!cj>+{@fdrot3BiDbbmQ{t8J^709J^9(pV`f+kDt5 zJS^?^(87iPD1JB_;0EMduTFX9)-N}Xh1B4Pu>p-rC*Y^qsMt+wxaV5qsmnk$p3pPk^6ifnupRj5& z=7;Zf)c*aHuA{6pa0ZmH!v_6w8~LQwcQ~W4>gPVD@Q*RtE#9K?or4?#Zi&U#jS|WU z2Vo0v%s~r{?Fgl2TOwkx2jX4ZdT(NixYN*q<19rxq2PG1w@kfbo`L+az&fNkQbrh9 z$rL<*_dZ?MMC<+=9BJ`0J&EIkhR?$>FZ0+hDt zZy%+JOX0CA_+<*b>eY6lhnln@8w59$3>yeIu!=l16IMzf8Ao-S)Oq3-TRm>E-GEIb z5)#csiJ;iY@H=j{)yd-6F*?4{rHO44ve1OIu{Xnov^iQ;=8dU;W-7LF-w-Bxlo|ZZY1_D|9gVU zactpRL+?I|O2thk5<|#hs}bID(r!FDG(!7edV;)Z4zs2;=2&2*tuQ*Xc{-3 zGDVJagsg!oh;6k+bi&#W0G-9w|5L?`M1#>}pBfAkyu|3^j zgWqpvFj8-hwMIKmnd}dS8JPd)Knz5HoOTSkVt^0kqNNNhz&a?GFjkW!I1UErOr7fs(S=#!k=xUs zPs3mBDVSNY6&}349aOmG@(|oJ{-Kw_S!br>14fY@zI_pesv&CCKkM~$NhMX0DBtLZAe5RzOJy!T~T|$LvK_kj~sFk(>#Ki#p1V*f= zFb_?AJ^_0u`Z}9>!#3)VrW+2gV;&3!Y78z0syzMVP7zHs>k;;4UIF_)K&K!TbiXJ> zCvONz?oo{mf9qUM@JSTC3?Vk(-p60b7v`|E`#$Kp?+fxFERc&MRK5HL=i1TPPcQ4f%Xv}fsj~Y((T9A9#LQQY?CObmP}JpTlW!W)kRTcq$YPCz z>2D$7Z7sqnhQ+d7a3pAf6t?XtCYYQigDu-iSqBD2mS$Lx`zdM_KL;utNrVAs*dP2@3+=Tb0asJ@_yZ6egJ!W%2$s-tjgK35%BNt{t;D7JX?i{3X0OG589 z!bCB$1*uJj@Y2@zt7g0BgfD>IxoUJ zD^ECT{@xPHJV7j{Nx%{wWA?&`Awq3NagdW>>UzRR13Hr~EI!KNL7(Yiw7$=N9NEvE zSa1U&42&^+ykuCY20lxU-y}+iL7)H9k~hxew`8VOTXQy+VQ)v4?Tl+M_^|rhwBxM z6(|;vqvYn6wj!i!o(wXGTbCscL5q=bsc?*kv=bHQ`auhn0h1=`Z<0$1QG|ibQ{5Kd zdz{=XXrqZF!3KhcWYLntLOBm!C^!&|HLx}u|4M`sPxebHy$~;5{yy5k5?sQRMZ^lo z;=tB4AtQ~1S?0pmE5y@kg+C02J#H&OywbQsFCjjXX8z&ICYUrUu!RR!e;>0x9T+oc zE=V4_8alcYla*=aw1EbWn;I|u78&6v4D)ls7<~c;tOqHlO}{N7CJUJW;-#~5xmpz7 zjGba}OeEDaW+7i?WJF`=>!Qs9O{Za*fSC`$1l_0lKvEzaN^;C=P|D-B9t8 zSR>Rrr3|SQ`YLlI`TUnKa2^{^g7i z#Uia`9^q%=?&asr%v-VIu2!FeZyBRGqg~^|OCTQe3pc)SP+%pSkg|>^J>t=XbUcY2 z@#wI2ZD9On7qRWt2SW$D1*1U6v{D%GN&C^#YaKNMGn^#OJkG+_(jOk~u$wS$MM~Bu z`?9j@0>=$|KY9p=LfI;%<#}{VNWs%a-5BTZcVY|jQDtoL7%Eium7o+%ym~;M*BX!^ z8dD$N?RmmYH3*c9B(aN>W*(Y;Vnbj(@AsCj|DPa zZe3Z44vRja%y^`o0Jen_#-obd-`h13xuEr6Iaqt`y#d1^3r@F`)d-cMgcJdkMRkTfA7%DP*i}p^?MpV&TQ0r1VuULaGcT^Zf z7^!E>pnW|QKBhfJWCIUmEZilS)+vA$8B~qs;mc%XF}58HFxohu$d#qN=htG(TH0bo zbDv_yA@DK_!6{lbh{V{vMH}S^U%;s&b4`Y20P8(&!v7oxKLP;4jwi*x4IQj%Lfgc{ z;K6kxo+nOdOb!G7J~Vt7?j<@%!Z2JlVb7y;VlbX8n%)#UrXie(UZwo}03z4TWt|KE=T8AJXf76cwl$Zc{>QY@RsT|>EDa)lrm5UO|Ejug^4 z*I^8eOpvhQ=}z5khz&0;mBAadRjC)?#AA5kFoKnaO7R? z6UdfLMCPyzWCZK7%e!(SkL(;jMMw^^KHKiU{(<0+4eP7Rwwy@N33p#8xz%T&;9k1( zX#FWOuha~D&?^s~8&e$^Iu4?Tj2nWD0}FkX0%lZ>%l-<{V{8t4L_GIyiF?t4DuMPY zXPp_M?oQFw1E5EmVtl*A60B@n{9HR-{1}kn$1+2wM)n|M8YM6}An{^x7Egc1pn4<= zhRRYD>L~(EQe;FJ@HsBLEM7`>|GfZANl?b10-3o+G^T%amXXR&(sO_S`{Yfu z3)T*9&-_?YL9wC`?|urWlF%q;@&aXS0ucst1Ru?mpWncIQiRw4YYm810c~(D^)mvh z;QMOEEUXb#{!H0H*yj2u4P~B=Fzfxwr7^+(>2O9g;e%zZbGtf{`2|_?VcrH z0)`}h=?$e5?DO#rmz* zC4Sd-t(2q_0|Y017ad!bE?d+Uw0CY;=UVL+urP{|oRngeKYh}KQX%9}{`C#tEz=17 z^&ux{ZG;s?Mf2ZC@ojS#VOY=~`u8U&O5F*X;BLM4DsgDFRts}0WT z)FwS;#}W8Bdw7g5RZr2Mt_9ipw`TE8+OQ0og)Qg+E}ZASHyebyRfSH+j!gPPDn#52 zBaF=wyF0`caTXBdSZQ)qN$-;QP8qnfVP4IECAOxa1oYlUGH)9Gs#27iP_Vth1DY~` zi}Y7*KXhprOB%j|oGWr01SDtc1%3z-*M%tKjeQbV325MqBn^`45N zn-D@tiOF(RaoCODI$dL5Q`Ngt*wO`wmTgA#fL z1!tk@PRywZc7EDSIPR5^!u^X7-2S6a-jBOQFN%L9^wWFybnO%s^J=E%I0WryRjGA$T$u~#rr4QX0t*q;TU4Bi2Wu`bVly0b%1$|B zz$&Sb6^7{^gmH>JOBJ1=qgBb=#aPC1nz(&)yh*~u zOz<7ylo2gC8uaT{^cem$+~+5~r;HD0GqPY|+*CE;_eI0j>^3s9gy%6%E2Nx2OO6D| zAmcMbDQp?8^+9$qcNN<6Lq16F6TufGkI8oB{t1PT%s<5Pd!xh;02g|FA9xFcYebpY zTu=%-DI6KDjT5_!yWY@aaDPCg5FCxJC4UmQ9Q!D$14@4(QorD^Th7{+yUgT5ODH&Y zAmKygUq~&;>>%XHZvW&a`Y)w^r~h6+uPJg8J-}8s203yc^ULCIJ32NrMA}Weveu`7 z^!m|+>prDJHy3Z#N!8vj40OCyOHC!!}TjT4u4L}go=zFK*x?zT@Txnp2&QrtY%{Oa!7 z)RgycyLSe?m}Z@tG^l6sar4AU%bOT$OGME7+8aK~EzE89*CO=dyq>%v9Y!ybY?y2L z*!6z(y(i4o26ZYpBGt`~g@(Yht~KAbkz7$VN_ZEQ4g^IBS&+gx(+^T@_O&vflhqV0 zdPDgZzxHPInX6L(1dMYT^ivZ!P=xJrZ2#x}GY(1PEj9NdgE~it_9;6gfd*BohF^7@ zXqf)q=@9HnH?9iU%>HbmKdhL#l{Ox+m4-q!c_-i2mK#0_-2&|TQW41HSy{JMJ-cHD ze}9u$0Dfo{hupn)4&8opVErAu8w%Y(-C{vKT2;Zb&JFx%9brHnR($l-=n5$H{gK^E z5-&5!Whs#z8|}xn_F8GTngAb{emJm>r+U$%=0PQ9Z_R8u+4|@NBZvFPk}fzc<E+=A2(D$|!&>KV^mdY{$WV*B)CzCk5n zvq{eSHUm`6qA9J5e57D_caH|A==!}nnU`uSDgkAE=-dFKhU}zN)>@U{@qEyEwrXQi z^e*;%r&jkb`j)u~MlNrair)*OT8x{&*I|IG;V+lCR&D52oRdt zNf!Ap#j5-`LYHL-W(24=r4I&IybU|xR}-A1!Qf8dik{$C<7RXN)jG=xcvuNyuTm-- zsLLj3DP;8-Gsa`~CS`Y#kGTt?nkJ}DFm+IA-4MD|m8@V0r60P_Ux=AL*8vCTAN7N|RCO}v)wWOv_gD`s-7Hne7gbm^v?h>tiZ zueW=+ETnX4^A_t=<yA}QSQ7;t^kK9w zET^N<8^U`;u5$BeV?+DE6S85LW@s=xUT0sAdoFiu$8!Uk+D;_{L`_^u+xwkWzn$9P zN`Pj1?oE0Mue?(H%1%JOsu%bCSBAzH@_LwksL<#UYZ42SeM0f4Puu=f%I;U`fmg*f z#UT|3OCz(Z_7@;6xFz0RHH@+Czf*eu%ilIlC2VACNzX0^Hi2zTvhFzJrU}R86HQG^ z0f+J_!^U#y9~E~V+(pB1IH*_RLWC6>%8kEu@Z`46oIk{6$thz@E@1pzGsFb#bD{2C zPSAt%rvR@V4N1;@b$AtbuX7>KCTq}(+o7mw;l#UFa-~eqZZSABb-8n262 z;*7)k0KNtozE~PkR1 Date: Wed, 23 Mar 2022 11:08:23 +0800 Subject: [PATCH 164/455] Modify load-court function definitions and use cases --- docs/DeveloperGuide.md | 10 +++------- docs/UserGuide.md | 8 ++++---- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 3e0a4bed49b..6cc8676f619 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -668,19 +668,15 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli **Extensions** -* 1a. Provided filepath of image is invalid. +* 1a. Provided name of image is invalid. Use case ends. -* 1b. Provided name of image is invalid. +* 1b. Image does not exist. Use case ends. -* 1c. Image does not exist. - - Use case ends. - -* 1d. Image is not in `png` format. +* 1c. Image is not in `png` format. Use case ends. diff --git a/docs/UserGuide.md b/docs/UserGuide.md index aac9e108b22..a60072ddc30 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -224,13 +224,13 @@ Examples: Load a new background image in the strategy tab. -Format: `load-court FILEPATH` +Format: `load-court IMAGE_NAME` -* Loads the given image from the specified `FILEPATH`. -* File must exist and be in `png` format. +* Loads the given image from the filepath `courts/IMAGE_NAME.png`. +* File must exist and be in `png` format in a folder labelled `courts` in the same directory as the JAR file (will be automatically generated). Examples: -* `load-court images/basketball.png` loads and sets the image `basketball.png` as the background image of strategy tab. +* `load-court basketball` loads and sets the image `basketball.png` as the background image of strategy tab. ### Listing all the commands : `help` From adbd02fec339b75aac5623a00afc3542fc2df83a Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Wed, 23 Mar 2022 11:44:48 +0800 Subject: [PATCH 165/455] Replace ModelClassDiagram.png to include Task references --- docs/images/ModelClassDiagram.png | Bin 23564 -> 75857 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/ModelClassDiagram.png b/docs/images/ModelClassDiagram.png index d6e7a89dc0dad6aa7aae01e99013035a3944f6e7..b86bfb8c2dfcbd16ce2e44ff9d1f0b82ad93ff79 100644 GIT binary patch literal 75857 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 F{{m?~q_F@1 literal 23564 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 Date: Wed, 23 Mar 2022 11:48:41 +0800 Subject: [PATCH 166/455] Fix reference to load-court function in command summary of UG --- docs/UserGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index a60072ddc30..2bb272f91e6 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -272,6 +272,6 @@ Format: `exit` | **Del Weakness** | `weakness-del INDEX WEAKNESS_INDEX`
      e.g., `weakness-del 1 1` | | **Del Miscellaneous** | `misc-del INDEX NOTE_INDEX`
      e.g., `misc-del 1 1` | | **Clear Tasks** | `clear-t [d/DATE]`
      e.g., `clear-t 2022-10-10` | -| **Load BG Image** | `load-court FILEPATH`
      e.g., `load-court images/basketball.png` | +| **Load BG Image** | `load-court IMAGE_NAME`
      e.g., `load-court basketball` | | **Help** | `help` | | **Exit** | `exit` | From 060c246a90a67a2e4726dc80a1787574e8d7ac3b Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Wed, 23 Mar 2022 14:09:58 +0800 Subject: [PATCH 167/455] Modify other command classes to remove unused variables --- .../logic/commands/notecommands/AddMiscCommand.java | 7 ++----- .../logic/commands/notecommands/AddStrengthCommand.java | 7 ++----- .../logic/commands/notecommands/AddWeaknessCommand.java | 7 ++----- .../logic/commands/notecommands/DeleteMiscCommand.java | 6 ++---- .../logic/commands/notecommands/DeleteStrengthCommand.java | 7 ++----- .../logic/commands/notecommands/DeleteWeaknessCommand.java | 7 ++----- 6 files changed, 12 insertions(+), 29 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/notecommands/AddMiscCommand.java b/src/main/java/seedu/address/logic/commands/notecommands/AddMiscCommand.java index b9e1f231f45..9597a912050 100644 --- a/src/main/java/seedu/address/logic/commands/notecommands/AddMiscCommand.java +++ b/src/main/java/seedu/address/logic/commands/notecommands/AddMiscCommand.java @@ -1,5 +1,6 @@ package seedu.address.logic.commands.notecommands; +import static java.util.Objects.requireNonNull; import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; @@ -30,13 +31,8 @@ public class AddMiscCommand extends Command { + "1 " + "Surgery Scheduled for tomorrow"; - public static final String MESSAGE_NOT_IMPLEMENTED_YET = - "AddMisc command not implemented yet"; - public static final String MESSAGE_SUCCESS = "New miscellaneous note added: %1$s"; - public static final String MESSAGE_ARGUMENTS = "Index: %1$d, Misc: %2$s"; - private final Index index; private final Note misc; @@ -53,6 +49,7 @@ public AddMiscCommand(Index index, Note misc) { @Override public CommandResult execute(Model model) throws CommandException { + requireNonNull(model); List lastShownList = model.getFilteredPersonList(); if (index.getZeroBased() >= lastShownList.size()) { diff --git a/src/main/java/seedu/address/logic/commands/notecommands/AddStrengthCommand.java b/src/main/java/seedu/address/logic/commands/notecommands/AddStrengthCommand.java index cd3be828af6..afefa2b970b 100644 --- a/src/main/java/seedu/address/logic/commands/notecommands/AddStrengthCommand.java +++ b/src/main/java/seedu/address/logic/commands/notecommands/AddStrengthCommand.java @@ -1,5 +1,6 @@ package seedu.address.logic.commands.notecommands; +import static java.util.Objects.requireNonNull; import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; @@ -30,13 +31,8 @@ public class AddStrengthCommand extends Command { + "1 " + "Good at defense"; - public static final String MESSAGE_NOT_IMPLEMENTED_YET = - "AddStrength command not implemented yet"; - public static final String MESSAGE_SUCCESS = "New strength added: %1$s"; - public static final String MESSAGE_ARGUMENTS = "Index: %1$d, Strength: %2$s"; - private final Index index; private final Note strength; @@ -53,6 +49,7 @@ public AddStrengthCommand(Index index, Note strength) { @Override public CommandResult execute(Model model) throws CommandException { + requireNonNull(model); List lastShownList = model.getFilteredPersonList(); if (index.getZeroBased() >= lastShownList.size()) { diff --git a/src/main/java/seedu/address/logic/commands/notecommands/AddWeaknessCommand.java b/src/main/java/seedu/address/logic/commands/notecommands/AddWeaknessCommand.java index 28c3fbce007..4fd851efdac 100644 --- a/src/main/java/seedu/address/logic/commands/notecommands/AddWeaknessCommand.java +++ b/src/main/java/seedu/address/logic/commands/notecommands/AddWeaknessCommand.java @@ -1,5 +1,6 @@ package seedu.address.logic.commands.notecommands; +import static java.util.Objects.requireNonNull; import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; @@ -30,13 +31,8 @@ public class AddWeaknessCommand extends Command { + "1 " + "Poor endurance"; - public static final String MESSAGE_NOT_IMPLEMENTED_YET = - "AddWeakness command not implemented yet"; - public static final String MESSAGE_SUCCESS = "New weakness added: %1$s"; - public static final String MESSAGE_ARGUMENTS = "Index: %1$d, Weakness: %2$s"; - private final Index index; private final Note weakness; @@ -53,6 +49,7 @@ public AddWeaknessCommand(Index index, Note weakness) { @Override public CommandResult execute(Model model) throws CommandException { + requireNonNull(model); List lastShownList = model.getFilteredPersonList(); if (index.getZeroBased() >= lastShownList.size()) { diff --git a/src/main/java/seedu/address/logic/commands/notecommands/DeleteMiscCommand.java b/src/main/java/seedu/address/logic/commands/notecommands/DeleteMiscCommand.java index 07e2a7eec8e..219f5bf570b 100644 --- a/src/main/java/seedu/address/logic/commands/notecommands/DeleteMiscCommand.java +++ b/src/main/java/seedu/address/logic/commands/notecommands/DeleteMiscCommand.java @@ -1,5 +1,6 @@ package seedu.address.logic.commands.notecommands; +import static java.util.Objects.requireNonNull; import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; @@ -30,12 +31,8 @@ public class DeleteMiscCommand extends Command { + "1 " + "2"; - public static final String MESSAGE_NOT_IMPLEMENTED_YET = - "DeleteMisc command not implemented yet"; - public static final String MESSAGE_SUCCESS = "Miscellaneous note has been deleted: %1$s"; - public static final String MESSAGE_ARGUMENTS = "Index: %1$d, Index: %2$d"; private final Index index; private final Index noteIndex; @@ -53,6 +50,7 @@ public DeleteMiscCommand(Index index, Index noteIndex) { @Override public CommandResult execute(Model model) throws CommandException { + requireNonNull(model); List lastShownList = model.getFilteredPersonList(); if (index.getZeroBased() >= lastShownList.size()) { diff --git a/src/main/java/seedu/address/logic/commands/notecommands/DeleteStrengthCommand.java b/src/main/java/seedu/address/logic/commands/notecommands/DeleteStrengthCommand.java index 3aa9e706437..74d043bd8f3 100644 --- a/src/main/java/seedu/address/logic/commands/notecommands/DeleteStrengthCommand.java +++ b/src/main/java/seedu/address/logic/commands/notecommands/DeleteStrengthCommand.java @@ -1,5 +1,6 @@ package seedu.address.logic.commands.notecommands; +import static java.util.Objects.requireNonNull; import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; @@ -30,13 +31,8 @@ public class DeleteStrengthCommand extends Command { + "1 " + "2"; - public static final String MESSAGE_NOT_IMPLEMENTED_YET = - "DeleteStrength command not implemented yet"; - public static final String MESSAGE_SUCCESS = "Strength has been deleted: %1$s"; - public static final String MESSAGE_ARGUMENTS = "Index: %1$d, Index: %2$d"; - private final Index index; private final Index noteIndex; @@ -53,6 +49,7 @@ public DeleteStrengthCommand(Index index, Index noteIndex) { @Override public CommandResult execute(Model model) throws CommandException { + requireNonNull(model); List lastShownList = model.getFilteredPersonList(); if (index.getZeroBased() >= lastShownList.size()) { diff --git a/src/main/java/seedu/address/logic/commands/notecommands/DeleteWeaknessCommand.java b/src/main/java/seedu/address/logic/commands/notecommands/DeleteWeaknessCommand.java index 8b4ed5610b7..359484c41af 100644 --- a/src/main/java/seedu/address/logic/commands/notecommands/DeleteWeaknessCommand.java +++ b/src/main/java/seedu/address/logic/commands/notecommands/DeleteWeaknessCommand.java @@ -1,5 +1,6 @@ package seedu.address.logic.commands.notecommands; +import static java.util.Objects.requireNonNull; import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; @@ -30,13 +31,8 @@ public class DeleteWeaknessCommand extends Command { + "1 " + "2"; - public static final String MESSAGE_NOT_IMPLEMENTED_YET = - "DeleteWeakness command not implemented yet"; - public static final String MESSAGE_SUCCESS = "Weakness has been deleted: %1$s"; - public static final String MESSAGE_ARGUMENTS = "Index: %1$d, Index: %2$d"; - private final Index index; private final Index noteIndex; @@ -53,6 +49,7 @@ public DeleteWeaknessCommand(Index index, Index noteIndex) { @Override public CommandResult execute(Model model) throws CommandException { + requireNonNull(model); List lastShownList = model.getFilteredPersonList(); if (index.getZeroBased() >= lastShownList.size()) { From ff10e9f16f60e63265eb6354ff71276b82be8979 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 23 Mar 2022 14:42:48 +0800 Subject: [PATCH 168/455] Update sequence diagram image --- docs/images/FindPersonSequenceDiagram.png | Bin 50461 -> 51456 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/FindPersonSequenceDiagram.png b/docs/images/FindPersonSequenceDiagram.png index 20aa0ef74db441cc8e13749dfbda3ac7b5d007ee..77904c705794fdd5c9321508f1b42f92a97db8b5 100644 GIT binary patch literal 51456 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 NqA05>lYT|d?SH4H?6Uv> literal 0 HcmV?d00001 From 80ecae038f7ccb602d513c99e60d1e0ed499f4c7 Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Wed, 23 Mar 2022 20:49:47 +0800 Subject: [PATCH 184/455] Update DG to add user stories --- docs/DeveloperGuide.md | 43 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index df310e7da26..d1d7885c3af 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -182,6 +182,8 @@ The steps above are summarised using a sequence diagram as shown below. ### 4.2 Add players feature +#### 4.2.1 Implementation + This feature allows the user to add players to the strategy board. It is facilitated by `ModelManager` which makes use of the method `#addPlayer()` and `#updateFilteredPlayerList()` to add a new player to the strategy board. @@ -650,7 +652,46 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli Use case resumes at step 2. - +**Use case: Remove a player from the strategy board** + +**MSS** + +1. User requests to show all players on the strategy board +2. Coach2K22 shows players +3. User requests to remove a player from the strategy board +4. Coach2K22 shows the updated strategy board without the player + + Use case ends. + +**Extensions** +* 3a. The player name is invalid. + * 3a1. Coach2K22 shows an error message. + + Use case resumes at step 2. +* 3b. The player name is not on the strategy board. + * 3b1. Coach2K22 shows an error message. + + Use case resumes at step 2. +* 3c. The player name is not provided. + * 3c1. Coach2K22 shows an error message. + + Use case resumes at step 2. + +**Use case: Clear all players from the strategy board** + +**MSS** + +1. User requests to show all players on the strategy board +2. Coach2K22 shows players +3. User requests to clear all players from the strategy board +4. Coach2K22 shows the updated strategy board without any players + + Use case ends. + +**Extensions** +* 2a. The strategy board is empty. + + Use case ends. *{More to be added}* From 26cc7d62b372258624e9e9363dd25e5a5add3ffd Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Wed, 23 Mar 2022 20:49:56 +0800 Subject: [PATCH 185/455] Add parse exception check --- src/main/java/seedu/address/logic/parser/ParserUtil.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/seedu/address/logic/parser/ParserUtil.java b/src/main/java/seedu/address/logic/parser/ParserUtil.java index 93d5d023c04..5ad0e682042 100644 --- a/src/main/java/seedu/address/logic/parser/ParserUtil.java +++ b/src/main/java/seedu/address/logic/parser/ParserUtil.java @@ -31,6 +31,8 @@ public class ParserUtil { public static final String MESSAGE_INVALID_IMAGE = "Image does not exit."; + public static final String MESSAGE_INVALID_IMAGE_NAME = "Image should not contain \'/\' characters."; + /** * Parses {@code oneBasedIndex} into an {@code Index} and returns it. Leading and trailing whitespaces will be * trimmed. @@ -51,6 +53,9 @@ public static Index parseIndex(String oneBasedIndex) throws ParseException { */ public static Image parseImage(String imageName) throws ParseException { String trimmedName = imageName.trim(); + if (trimmedName.contains("/")) { + throw new ParseException(MESSAGE_INVALID_IMAGE_NAME); + } if (!Image.isValidImage(trimmedName)) { throw new ParseException(MESSAGE_INVALID_IMAGE); } From 7a8ec7a4ff4149044134c3fb75ccc7eccb175777 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 23 Mar 2022 21:04:37 +0800 Subject: [PATCH 186/455] Added FindPersonSequenceDiagram puml and png file --- docs/diagrams/FindPersonSequenceDiagram.puml | 66 +++++++++++++++++++ docs/images/FindPersonSequenceDiagram.png | Bin 53949 -> 32714 bytes 2 files changed, 66 insertions(+) create mode 100644 docs/diagrams/FindPersonSequenceDiagram.puml diff --git a/docs/diagrams/FindPersonSequenceDiagram.puml b/docs/diagrams/FindPersonSequenceDiagram.puml new file mode 100644 index 00000000000..a5ffedd667a --- /dev/null +++ b/docs/diagrams/FindPersonSequenceDiagram.puml @@ -0,0 +1,66 @@ +@startuml +!include style.puml + +box Logic LOGIC_COLOR_T1 +participant ":LogicManager" as LogicManager LOGIC_COLOR +participant ":Coach2K22Parser" as Coach2K22Parser LOGIC_COLOR +participant ":FindPersonCommandParser" as FindPersonCommandParser LOGIC_COLOR +participant "f:FindPersonCommand" as FindPersonCommand LOGIC_COLOR +participant ":CommandResult" as CommandResult LOGIC_COLOR +end box + +box Model MODEL_COLOR_T1 +participant ":Model" as Model MODEL_COLOR +end box +[-> LogicManager : execute(arg) +activate LogicManager + +LogicManager -> Coach2K22Parser : parseCommand(arg) +activate Coach2K22Parser + +create FindPersonCommandParser +Coach2K22Parser -> FindPersonCommandParser +activate FindPersonCommandParser + +FindPersonCommandParser --> Coach2K22Parser +deactivate FindPersonCommandParser + +Coach2K22Parser -> FindPersonCommandParser : parse(arg) +activate FindPersonCommandParser + +create FindPersonCommand +FindPersonCommandParser -> FindPersonCommand +activate FindPersonCommand + +FindPersonCommand --> FindPersonCommandParser : f +deactivate FindPersonCommand + +FindPersonCommandParser --> Coach2K22Parser : f +deactivate FindPersonCommandParser + +Coach2K22Parser --> LogicManager : f +deactivate Coach2K22Parser +destroy FindPersonCommandParser + +LogicManager -> FindPersonCommand : execute() +activate FindPersonCommand + +FindPersonCommand -> Model: updateFilteredPersonList(predicate) +activate Model + +Model --> FindPersonCommand +deactivate Model + +create CommandResult +FindPersonCommand -> CommandResult +activate CommandResult + +CommandResult <-- FindPersonCommand +deactivate CommandResult + +FindPersonCommand -->LogicManager : result +deactivate FindPersonCommand + +[<--LogicManager : result +deactivate LogicManager +@enduml diff --git a/docs/images/FindPersonSequenceDiagram.png b/docs/images/FindPersonSequenceDiagram.png index 48d2ab1455cc06c6da742fd4c29e7ba1abc2630f..90228ab8796ea2e18ac79b3d1f017588417bb1f3 100644 GIT binary patch literal 32714 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�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 XTh2Wcxz7P}79uaJd^=a>zTf`=OVoU& literal 53949 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%0A+PI%Hb>ffcwvhhM)0uLh@Qhe(Qfm~ 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 SL16>@)78@d?e(#9*Z&Xw!c;l{ From 56a009ffc70651488313d7019aa5799943a267c4 Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Wed, 23 Mar 2022 23:23:37 +0800 Subject: [PATCH 187/455] Implement load-court and include sample courts for testing purposes --- courts/soccer.png | Bin 0 -> 34181 bytes src/main/java/seedu/address/MainApp.java | 8 ++++++++ src/main/java/seedu/address/logic/Logic.java | 6 ++++++ .../seedu/address/logic/LogicManager.java | 5 +++++ .../address/logic/commands/CommandResult.java | 19 +++++++++++++++++- .../logic/commands/LoadCourtCommand.java | 10 ++++----- .../address/logic/parser/ParserUtil.java | 8 ++++++++ src/main/java/seedu/address/model/Model.java | 7 +++++++ .../seedu/address/model/ModelManager.java | 6 ++++++ .../address/model/ReadOnlyStrategyBoard.java | 6 ++++++ .../seedu/address/model/StrategyBoard.java | 16 +++++++++++++++ .../java/seedu/address/model/image/Image.java | 2 +- .../java/seedu/address/ui/MainWindow.java | 8 ++++++++ .../java/seedu/address/ui/StrategyPanel.java | 6 ------ 14 files changed, 94 insertions(+), 13 deletions(-) create mode 100644 courts/soccer.png diff --git a/courts/soccer.png b/courts/soccer.png new file mode 100644 index 0000000000000000000000000000000000000000..37aaf6e1c9bffa137eae94d2686ef6f9bab68551 GIT binary patch literal 34181 zcmeFZ^;?u(^f!9X(2XEU3djJ`DBY#N&{EQ&2+|-T4MW3&2n^jILrMwKLn9&Spma(J zQj#*%xp|)V{BZt&_dVyj&iA@>n47)!XYalCx>xPBiPq6lAtR&c`&!cNCrkO zeX;%Bs~kkz+h&vgm8WLxsz{i*j)lAg7d1XB5(dBdhhGoVEFp4yRc8O;a~>KoUp1AT zTGamdg%Vpb>L<m$E8R^@7LJGp&(~jQYe+c|DqDM3h(g$ zg-TR2$-hlGHZ%71LgBE~v9bWEPe_Q?`Hu(#BqDW*)sM!M9F=$=5Ox;RlT4dyX3kH~ z)czx&?>{J~s38gt$U5WvcY-i7r|XPAKHF9Q%~#(FAMqchZZIA2zdGUB0uTNprb&b3 z{qG|zR19)|8jV;|x=c?>f@u;CE3^N{#H6q=K|(p*d-~Bl;jR2%$N(Ol^k=~o=dCda z!4~WPCL~-9gG2vBUMR8WMR#$$3_q_45oFoX5wHdd=6T7Fi>9c?tPxL{y~9A$q-Qep7$r*Lk44DqnYFz_Zx>H!|Rn)N^o z8yrboz?e$Zg}|0vDP2#;Ww4Xs8a(~ueB4rzcCl|mJJMbS5x{|<idBlpG%{~pnVfkwq&xdn0 z>0@zAkfhgH^!+(SOZ$Fm5jV6WLznD3GThf^Y0~S(P^jkQ+~>X1Ho=u}r|~{XHz`Jt zXKByHgCk1v_X;9Pg5Ue%+^~^F!SECf61ByNntSNoJDX*TnUp5M>70=kDuWu_0#drD z9_uhn=)V6NkgM{v-g4;{0~4ep)K!*nr(@~Dme5HG2`i^He^gi1)(s_7nXX z9^rS+OVwoLI7=Tm`9p9|yFd(ZPv{Y9)b8Z- zdox)Hq1?&DZ@LTpEQmYa;R!V!C8*~UA$vRp|JzXNwHyi>dfePk;Q+Hu0B@fC8 z#FuIb_ABPw@y1yzP+?EgoX-uPBmy7r1LZ^xEMaOUtm%mz{%PL(j{|GEwSm7odhKgp z+bxKcSfa_U|C4$AGMJVXq1o9a&l%W?x5O!R5f)9L9d;H!1TR6+5FQSd5bHky{$ejC zt;tb`dZNYw)c0hUt+i&hV1SFy*`2G6xN96u%CH

      %Y?z9>cQ+H239#E|_ncfg8e` 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%0A?gvZPU$7KjXj_0DnUn*Qx1*;{ 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 G@c#vgveO&@ literal 0 HcmV?d00001 diff --git a/src/main/java/seedu/address/MainApp.java b/src/main/java/seedu/address/MainApp.java index e8c2003fbe7..e14477b6260 100644 --- a/src/main/java/seedu/address/MainApp.java +++ b/src/main/java/seedu/address/MainApp.java @@ -1,5 +1,6 @@ package seedu.address; +import java.io.File; import java.io.IOException; import java.nio.file.Path; import java.util.Optional; @@ -24,6 +25,7 @@ import seedu.address.model.StrategyBoard; import seedu.address.model.TaskBook; import seedu.address.model.UserPrefs; +import seedu.address.model.image.Image; import seedu.address.model.util.SampleDataUtil; import seedu.address.storage.AddressBookStorage; import seedu.address.storage.JsonAddressBookStorage; @@ -110,6 +112,12 @@ private Model initModelManager(Storage storage, ReadOnlyUserPrefs userPrefs) { logger.warning("Problem while reading from the file. Will be starting with an empty TaskBook"); initialTaskData = new TaskBook(); } + + File courtsDirectory = new File(Image.FILE_PATH); + if (!courtsDirectory.exists()) { + logger.warning("Courts directory not found. Will create an empty directory."); + courtsDirectory.mkdir(); + } return new ModelManager(initialAddressData, initialTaskData, new StrategyBoard(), userPrefs); } diff --git a/src/main/java/seedu/address/logic/Logic.java b/src/main/java/seedu/address/logic/Logic.java index 7d86b1dd07c..b7cbeecf595 100644 --- a/src/main/java/seedu/address/logic/Logic.java +++ b/src/main/java/seedu/address/logic/Logic.java @@ -8,6 +8,7 @@ import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.ReadOnlyAddressBook; +import seedu.address.model.image.Image; import seedu.address.model.person.Person; import seedu.address.model.task.Task; @@ -54,4 +55,9 @@ public interface Logic { * Set the user prefs' GUI settings. */ void setGuiSettings(GuiSettings guiSettings); + + /** + * Returns the image stored in StrategyPanel. + */ + Image getBackgroundImage(); } diff --git a/src/main/java/seedu/address/logic/LogicManager.java b/src/main/java/seedu/address/logic/LogicManager.java index e5f17d430a0..54311d0f7c8 100644 --- a/src/main/java/seedu/address/logic/LogicManager.java +++ b/src/main/java/seedu/address/logic/LogicManager.java @@ -14,6 +14,7 @@ import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.Model; import seedu.address.model.ReadOnlyAddressBook; +import seedu.address.model.image.Image; import seedu.address.model.person.Person; import seedu.address.model.task.Task; import seedu.address.storage.Storage; @@ -76,6 +77,10 @@ public ObservableList getFilteredPlayerList() { return model.getFilteredPlayerList(); } + public Image getBackgroundImage() { + return model.getStrategyBoard().getImage(); + } + @Override public Path getAddressBookFilePath() { return model.getAddressBookFilePath(); diff --git a/src/main/java/seedu/address/logic/commands/CommandResult.java b/src/main/java/seedu/address/logic/commands/CommandResult.java index a1f5df6b840..d0ba3fc9616 100644 --- a/src/main/java/seedu/address/logic/commands/CommandResult.java +++ b/src/main/java/seedu/address/logic/commands/CommandResult.java @@ -17,15 +17,27 @@ public class CommandResult { /** The application should exit. */ private final boolean exit; + /** The background image of StrategyBoard should be changed*/ + private final boolean isLoadImage; + /** * Constructs a {@code CommandResult} with the specified fields. */ - public CommandResult(String feedbackToUser, boolean showHelp, boolean exit) { + public CommandResult(String feedbackToUser, boolean showHelp, boolean exit, boolean isLoadImage) { this.feedbackToUser = requireNonNull(feedbackToUser); this.showHelp = showHelp; + this.isLoadImage = isLoadImage; this.exit = exit; } + /** + * Constructs a {@code CommandResult} with the specified fields, + * and isLoadImage set to false. + */ + public CommandResult(String feedbackToUser, boolean showHelp, boolean exit) { + this(feedbackToUser, showHelp, exit, false); + } + /** * Constructs a {@code CommandResult} with the specified {@code feedbackToUser}, * and other fields set to their default value. @@ -46,6 +58,11 @@ public boolean isExit() { return exit; } + public boolean isLoadImage() { + return isLoadImage; + } + + @Override public boolean equals(Object other) { if (other == this) { diff --git a/src/main/java/seedu/address/logic/commands/LoadCourtCommand.java b/src/main/java/seedu/address/logic/commands/LoadCourtCommand.java index 712daa1c0d3..0bb3d323ae8 100644 --- a/src/main/java/seedu/address/logic/commands/LoadCourtCommand.java +++ b/src/main/java/seedu/address/logic/commands/LoadCourtCommand.java @@ -2,9 +2,6 @@ import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; -import seedu.address.commons.core.Messages; -import seedu.address.logic.commands.Command; -import seedu.address.logic.commands.CommandResult; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; import seedu.address.model.image.Image; @@ -16,7 +13,7 @@ public class LoadCourtCommand extends Command { public static final String COMMAND_WORD = "load-court"; public static final String MESSAGE_USAGE = COMMAND_WORD - + ": Load an image from \'/courts/\' directory and sets as background image for the Strategy Panel. " + + ": Load an image from '/courts/' directory and sets as background image for the Strategy Panel. " + "Parameters: " + "IMAGE_NAME (" + Image.MESSAGE_CONSTRAINTS + ") " + "Example: " + COMMAND_WORD + " " @@ -38,7 +35,10 @@ public LoadCourtCommand(Image image) { @Override public CommandResult execute(Model model) throws CommandException { - return null; + requireAllNonNull(model); + model.replaceBackgroundImage(image); + + return new CommandResult(generateSuccessMessage(image), false, false, true); } /** diff --git a/src/main/java/seedu/address/logic/parser/ParserUtil.java b/src/main/java/seedu/address/logic/parser/ParserUtil.java index 5ad0e682042..b178c90bcac 100644 --- a/src/main/java/seedu/address/logic/parser/ParserUtil.java +++ b/src/main/java/seedu/address/logic/parser/ParserUtil.java @@ -2,6 +2,7 @@ import static java.util.Objects.requireNonNull; +import java.io.File; import java.util.Collection; import java.util.HashSet; import java.util.Set; @@ -33,6 +34,9 @@ public class ParserUtil { public static final String MESSAGE_INVALID_IMAGE_NAME = "Image should not contain \'/\' characters."; + public static final String MESSAGE_DIRECTORY_NOT_EXIST = "The " + Image.FILE_PATH + " directory does not exist!"; + + /** * Parses {@code oneBasedIndex} into an {@code Index} and returns it. Leading and trailing whitespaces will be * trimmed. @@ -53,6 +57,10 @@ public static Index parseIndex(String oneBasedIndex) throws ParseException { */ public static Image parseImage(String imageName) throws ParseException { String trimmedName = imageName.trim(); + File folder = new File(Image.FILE_PATH); + if (!folder.exists()) { + throw new ParseException(MESSAGE_DIRECTORY_NOT_EXIST); + } if (trimmedName.contains("/")) { throw new ParseException(MESSAGE_INVALID_IMAGE_NAME); } diff --git a/src/main/java/seedu/address/model/Model.java b/src/main/java/seedu/address/model/Model.java index 4c9313c294c..d9b23fc2c29 100644 --- a/src/main/java/seedu/address/model/Model.java +++ b/src/main/java/seedu/address/model/Model.java @@ -5,6 +5,7 @@ import javafx.collections.ObservableList; import seedu.address.commons.core.GuiSettings; +import seedu.address.model.image.Image; import seedu.address.model.person.Person; import seedu.address.model.task.Task; @@ -170,6 +171,12 @@ public interface Model { */ void addPlayer(String player); + /** + * Replaces the image contained in StrategyBoard with this image. + * {@code image} must be a valid image. + */ + void replaceBackgroundImage(Image image); + /** Returns an unmodifiable view of the filtered player list */ ObservableList getFilteredPlayerList(); diff --git a/src/main/java/seedu/address/model/ModelManager.java b/src/main/java/seedu/address/model/ModelManager.java index 346b3197eb5..d54b6e3b466 100644 --- a/src/main/java/seedu/address/model/ModelManager.java +++ b/src/main/java/seedu/address/model/ModelManager.java @@ -11,6 +11,7 @@ import javafx.collections.transformation.FilteredList; import seedu.address.commons.core.GuiSettings; import seedu.address.commons.core.LogsCenter; +import seedu.address.model.image.Image; import seedu.address.model.person.Person; import seedu.address.model.task.Task; @@ -241,6 +242,11 @@ public void addPlayer(String player) { updateFilteredPlayerList(PREDICATE_SHOW_ALL_PLAYERS); } + @Override + public void replaceBackgroundImage(Image image) { + strategyBoard.replaceImage(image); + } + /* @Override public void setPlayer(String target, editedTask) { diff --git a/src/main/java/seedu/address/model/ReadOnlyStrategyBoard.java b/src/main/java/seedu/address/model/ReadOnlyStrategyBoard.java index 03106c09784..466d5be40c4 100644 --- a/src/main/java/seedu/address/model/ReadOnlyStrategyBoard.java +++ b/src/main/java/seedu/address/model/ReadOnlyStrategyBoard.java @@ -1,6 +1,7 @@ package seedu.address.model; import javafx.collections.ObservableList; +import seedu.address.model.image.Image; /** * Unmodifiable view of a strategy board @@ -11,4 +12,9 @@ public interface ReadOnlyStrategyBoard { * This list will not contain any duplicate players. */ ObservableList getPlayerList(); + + /** + * Returns the background image of the Strategy Board. + */ + Image getImage(); } diff --git a/src/main/java/seedu/address/model/StrategyBoard.java b/src/main/java/seedu/address/model/StrategyBoard.java index 842fd15aef2..ca73950172d 100644 --- a/src/main/java/seedu/address/model/StrategyBoard.java +++ b/src/main/java/seedu/address/model/StrategyBoard.java @@ -5,6 +5,7 @@ import java.util.List; import javafx.collections.ObservableList; +import seedu.address.model.image.Image; import seedu.address.model.strategy.UniquePlayerList; /** @@ -13,6 +14,7 @@ */ public class StrategyBoard implements ReadOnlyStrategyBoard { private final UniquePlayerList players; + private Image backgroundImage; /* * The 'unusual' code block below is a non-static initialization block, sometimes used to avoid duplication * between constructors. See https://docs.oracle.com/javase/tutorial/java/javaOO/initial.html @@ -43,6 +45,20 @@ public void setPlayers(List players) { this.players.setPlayers(players); } + /** + * Replaces the contents of {@code backgroundImage} with {@code image}. + */ + public void replaceImage(Image image) { + this.backgroundImage = image; + } + + /** + * Returns the contents of {@code backgroundImage}. + */ + public Image getImage() { + return this.backgroundImage; + } + /** * Resets the existing data of this {@code StrategyBoard} with {@code newData}. */ diff --git a/src/main/java/seedu/address/model/image/Image.java b/src/main/java/seedu/address/model/image/Image.java index 86432fd180a..a4ddb144c6d 100644 --- a/src/main/java/seedu/address/model/image/Image.java +++ b/src/main/java/seedu/address/model/image/Image.java @@ -6,7 +6,7 @@ * Represents an Image in Coack2K22. */ public class Image { - private static final String FILE_PATH = "courts/"; //todo: Change filepath to reflect creating new directory outside of JAR file + public static final String FILE_PATH = "courts/"; public static final String MESSAGE_CONSTRAINTS = "Image must be a valid .png image and contained in \'" + FILE_PATH + "\'"; diff --git a/src/main/java/seedu/address/ui/MainWindow.java b/src/main/java/seedu/address/ui/MainWindow.java index 715fc6dc57d..7978618b739 100644 --- a/src/main/java/seedu/address/ui/MainWindow.java +++ b/src/main/java/seedu/address/ui/MainWindow.java @@ -176,6 +176,10 @@ private void handleExit() { primaryStage.hide(); } + private void handleLoadImage() { + strategyPanel.changeImageBackground(logic.getBackgroundImage().getImagePath()); + } + public PersonListPanel getPersonListPanel() { return personListPanel; } @@ -199,6 +203,10 @@ private CommandResult executeCommand(String commandText) throws CommandException handleExit(); } + if (commandResult.isLoadImage()) { + handleLoadImage(); + } + return commandResult; } catch (CommandException | ParseException e) { logger.info("Invalid command: " + commandText); diff --git a/src/main/java/seedu/address/ui/StrategyPanel.java b/src/main/java/seedu/address/ui/StrategyPanel.java index 9f89f45d359..a4bb540d244 100644 --- a/src/main/java/seedu/address/ui/StrategyPanel.java +++ b/src/main/java/seedu/address/ui/StrategyPanel.java @@ -1,9 +1,7 @@ package seedu.address.ui; -<<<<<<< HEAD import java.io.File; -======= import java.util.HashMap; import java.util.List; import java.util.Map; @@ -11,7 +9,6 @@ import javafx.collections.ListChangeListener; import javafx.collections.ObservableList; ->>>>>>> 7d7daaf7f11c014f341a1b965e78a2d20fced49c import javafx.event.EventHandler; import javafx.fxml.FXML; import javafx.geometry.VPos; @@ -19,11 +16,8 @@ import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.input.MouseEvent; -<<<<<<< HEAD import javafx.scene.layout.AnchorPane; -======= import javafx.scene.layout.Pane; ->>>>>>> 7d7daaf7f11c014f341a1b965e78a2d20fced49c import javafx.scene.layout.Region; import javafx.scene.layout.StackPane; import javafx.scene.paint.Color; From 30d664070cd6e7743604cb42bb95d06e373cfbcc Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Thu, 24 Mar 2022 00:19:59 +0800 Subject: [PATCH 188/455] Remove commented-out code --- src/main/java/seedu/address/ui/StrategyPanel.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/seedu/address/ui/StrategyPanel.java b/src/main/java/seedu/address/ui/StrategyPanel.java index a4bb540d244..1b7b58a85aa 100644 --- a/src/main/java/seedu/address/ui/StrategyPanel.java +++ b/src/main/java/seedu/address/ui/StrategyPanel.java @@ -85,7 +85,6 @@ public void handle(MouseEvent t) { */ public StrategyPanel(ObservableList playerList) { super(FXML); - //strategyImage.setImage((new Image((new File("courts/basketball.png").toURI().toString())))); strategyImage.fitWidthProperty().bind(strategyAnchorPane.widthProperty()); strategyImage.fitHeightProperty().bind(strategyAnchorPane.heightProperty()); strategyImage.toBack(); From 4ee828d547557cb8dd0c7c3f5db9646ff1d04f7b Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Thu, 24 Mar 2022 00:40:17 +0800 Subject: [PATCH 189/455] Add implementation of Clear Task in DeveloperGuide.md --- docs/DeveloperGuide.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index d1d7885c3af..10e0ce0b9ab 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -211,6 +211,29 @@ The steps above are summarised using a sequence diagram as shown below. * Pros: Easy to extend and manipulate attributes of a player. * Cons: Hard to implement. +### 4.3 Clear Tasks feature + +#### 4.3.1 Implementation + +This feature allows users to clear all tasks from the task list, or only tasks that correspond with a given date. +It is facilitated by the `ModelManager` which utilizes the method `deleteTask()` to delete each corresponding task one +by one, or sets a new `TaskBook` object to the `ModelManager` to refresh the task list. + +Given below is an example usage scenario of how the clear task mechanism behaves at each step. + +Step 1: The user inputs `clear-t 2022-10-10` to clear all tasks that correspond with the date `2022-10-10` in the task list. + +Step 2: This argument is passed into the `LogicManager` which calls on `Coach2K22Parser#parseCommand()` to find a suitable +parser class which corresponds with the provided command to parse the user's inputs. This initializes the `ClearTaskCommandParser`, +where its method `parse()` is called to process the user inputs. + +Step 3: The newly initialized `ClearTaskCommandParser` is then returned to the `LogicManager` for command execution. + +Step 4: During the command execution, the `ModelManager#deleteTask()` method is called multiple times to remove the +corresponding tasks from the internal task list. Inside the function call, the `ModelManager#updateFilteredTaskList()` +is also called, which updates the GUI to display the new task list. The command results are then generated and shown to +the user. + ### \[Proposed\] Undo/redo feature #### Proposed Implementation From 1b167265ee74876c0ac38e63a81da402ef58d508 Mon Sep 17 00:00:00 2001 From: Pragya Date: Thu, 24 Mar 2022 00:49:53 +0800 Subject: [PATCH 190/455] update UG with specific task command details --- docs/UserGuide.md | 60 ++++++++++++++++++++++++++++++++++------------- 1 file changed, 44 insertions(+), 16 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index e5bcd011ff1..90638d357dc 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -264,7 +264,13 @@ Format: `list-t` #### 2.2.2 Adding a task: `add-t` -* (To be filled up by @pragya) +Adds a task to our task list. + +Format: `add-t n/NAME d/DATE st/STARTTIME et/ENDTIME [t/TAG_NAME]…​` + +Examples: +* `add-t n/Welcome Tea d/24-04-2022 st/09:00 et/12:00 t/Socials` +

      @@ -277,14 +283,34 @@ Format: `list-t`
      :bulb: **Tip:** A task can have any number of tags (including 0)
      +
      :bulb: **Tip:** +A task can also be assigned to multiple persons (including 0) +
      #### 2.2.3 Deleting a task: `del-t` -* (To be filled up by @pragya) +Delete a task from our task list. + +Format: `del-t INDEX` + +Examples: +* `del-t 2` deletes the second task in the task list. + +**:information_source: Key things to take note of:**
      + +* Deletes the task at the specified `INDEX`. +* The index can be obtained by referring to the indicated task index on the displayed task list. +* Index values start from 1 and are always a positive integers. -#### 2.2.4 Editing a person: `edit-t` +#### 2.2.4 Editing a task: `edit-t` -* (To be filled up by @pragya) +Edit a task from our task list. + +Format: `edit-t INDEX [n/NAME] [d/DATE] [st/STARTTIME] [et/ENDTIME] [t/TAG_NAME]…​` + +Examples: +* `edit-t 2 d/29-04-2022 et/10:00` edits the date and end time of the second task into `29-04-2022` and `10:00` respectively. +* `edit-t 1 n/PR Event t/` edits the name of the first task to `PR Event` and clears all existing tags. #### 2.2.5 Clear all task entries : `clear-t` @@ -395,7 +421,9 @@ Example: #### 2.3.6 Export strategy board as image file: `export` -* (To be filled up by pragya) +Exports current view of the strategy board as an image to the users local device. + +Format: `export` ### 2.4 General @@ -447,16 +475,16 @@ Format: `exit` ### 4.2 Task Management -| Action | Format, Examples | -|--------------|--------------------------------------------------------------------------------------------| -| **List** | `list-p` | -| **Add** | (to be filled up by @pragya) | -| **Del** | (to be filled up by @pragya) | -| **Edit** | (to be filled up by @pragya) | -| **Clear** | `clear-t [d/DATE]`
      e.g., `clear-t 2022-10-10` | -| **Add Tag** | (to be filled up by @juayhee) | -| **Del Tag** | (to be filled up by @juayhee) | -| **Find** | `find-t [n/NAME]…​ [t/TAG]…​`
      e.g., `find-p n/Meeting n/Training t/team1 t/team2`| +| Action | Format, Examples | +|--------------|----------------------------------------------------------------------------------------------------------------------------------------| +| **List** | `list-t` | +| **Add** | `add-t n/NAME d/DATE st/STARTTIME et/ENDTIME [t/TAG_NAME]…​`
      e.g., `add-t n/Welcome Tea d/24-04-2022 st/09:00 et/12:00 t/Socials` | +| **Del** | `del-t INDEX`
      e.g., `del-t 1` | +| **Edit** | `edit-t INDEX [n/NAME] [d/DATE] [st/STARTTIME] [et/ENDTIME] [t/TAG_NAME]…​`
      e.g., `edit-t 2 d/29-04-2022 et/10:00` | +| **Clear** | `clear-t [d/DATE]`
      e.g., `clear-t 2022-10-10` | +| **Add Tag** | (to be filled up by @juayhee) | +| **Del Tag** | (to be filled up by @juayhee) | +| **Find** | `find-t [n/NAME]…​ [t/TAG]…​`
      e.g., `find-p n/Meeting n/Training t/team1 t/team2` | ### 4.3 Strategic Planning @@ -467,7 +495,7 @@ Format: `exit` | **Del** | `del-player PLAYER_NAME`
      e.g., `del-player Messi` | | **Clear** | `clear-player` | | **Move** | `move PLAYER_NAME X_COORDINATE Y_COORDINATE`
      e.g., `move Messi 0 0` | -| **Export** | (to be filled up by @pragya) | +| **Export** | `export` | ### 4.4 General From eb9f59d2be4431c6ef520240aaf1693fe8f5253b Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Thu, 24 Mar 2022 01:14:07 +0800 Subject: [PATCH 191/455] Add ClearTaskSequenceDiagrams --- docs/diagrams/ClearTaskSequenceDiagram.png | Bin 0 -> 41746 bytes docs/diagrams/ClearTaskSequenceDiagram.puml | 75 ++++++++++++++++++++ docs/images/ClearTaskSequenceDiagram.png | Bin 0 -> 41746 bytes 3 files changed, 75 insertions(+) create mode 100644 docs/diagrams/ClearTaskSequenceDiagram.png create mode 100644 docs/diagrams/ClearTaskSequenceDiagram.puml create mode 100644 docs/images/ClearTaskSequenceDiagram.png diff --git a/docs/diagrams/ClearTaskSequenceDiagram.png b/docs/diagrams/ClearTaskSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..fc0f5542c502ec1774fb7bb4b18845f40d5aecf6 GIT binary patch literal 41746 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 f=fcGq; LogicManager : execute("clear-t 2020-10-10") +activate LogicManager + +LogicManager -> Coach2K22Parser : parseCommand("clear-t 2020-10-10") +activate Coach2K22Parser + +create ClearTaskCommandParser +Coach2K22Parser -> ClearTaskCommandParser +activate ClearTaskCommandParser + +ClearTaskCommandParser --> Coach2K22Parser +deactivate ClearTaskCommandParser + +Coach2K22Parser -> ClearTaskCommandParser : parse("2020-10-10") +activate ClearTaskCommandParser + +create ClearTaskCommand +ClearTaskCommandParser -> ClearTaskCommand +activate ClearTaskCommand + +ClearTaskCommand --> ClearTaskCommandParser : p +deactivate ClearTaskCommand + +ClearTaskCommandParser --> Coach2K22Parser : p +deactivate ClearTaskCommandParser +'Hidden arrow to position the destroy marker below the end of the activation bar. +ClearTaskCommandParser -[hidden]-> Coach2K22Parser +destroy ClearTaskCommandParser + +Coach2K22Parser --> LogicManager : p +deactivate Coach2K22Parser + +LogicManager -> ClearTaskCommand : execute() +activate ClearTaskCommand + +Model -> ClearTaskCommand :getFilteredTaskList() + +loop size of TaskList +alt task.getDate() == date + ClearTaskCommand -> Model : deleteTask(task) + end +end +activate Model + +Model --> ClearTaskCommand +deactivate Model + +create CommandResult +ClearTaskCommand -> CommandResult +activate CommandResult + +CommandResult --> ClearTaskCommand +deactivate CommandResult + +ClearTaskCommand --> LogicManager : result +deactivate ClearTaskCommand + +[<--LogicManager +deactivate LogicManager +@enduml diff --git a/docs/images/ClearTaskSequenceDiagram.png b/docs/images/ClearTaskSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..fc0f5542c502ec1774fb7bb4b18845f40d5aecf6 GIT binary patch literal 41746 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 f=fcGq; Date: Thu, 24 Mar 2022 01:20:49 +0800 Subject: [PATCH 192/455] Add Design Consideration for Clear Task command --- docs/DeveloperGuide.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 10e0ce0b9ab..f9e9db18b1a 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -234,6 +234,20 @@ corresponding tasks from the internal task list. Inside the function call, the ` is also called, which updates the GUI to display the new task list. The command results are then generated and shown to the user. +The steps above are summarised using a sequence diagram as shown below. +![AddPlayerSequenceDiagram](images/ClearTaskSequenceDiagram.png) + +#### 4.3.2 Design consideration + +**Aspect: Should there be separate clear commands for clearing tasks and players:** + +* **Alternative 1 (current choice):** A separate command for clearing tasks and players. + * Pros: Easy to implement. + * Cons: Hard to extend. +* **Alternative 2:** A combined command for clearing tasks and player. + * Pros: Easier and more intuitive for the user to understand + * Cons: Hard to implement. + ### \[Proposed\] Undo/redo feature #### Proposed Implementation From b564b9cff0875e5b9dda657b203cc4daa7ed0e2d Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Thu, 24 Mar 2022 01:30:28 +0800 Subject: [PATCH 193/455] Replace ModelClassDiagram.png --- docs/diagrams/ModelClassDiagram.png | Bin 0 -> 30803 bytes docs/diagrams/ModelClassDiagram.puml | 15 +++++++++++++++ docs/images/ModelClassDiagram.png | Bin 75857 -> 30803 bytes 3 files changed, 15 insertions(+) create mode 100644 docs/diagrams/ModelClassDiagram.png diff --git a/docs/diagrams/ModelClassDiagram.png b/docs/diagrams/ModelClassDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..149c804e98011cd3777e7c3c0489d0ec1327fb80 GIT binary patch literal 30803 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\nReadOnlyUserPrefs" as ReadOnlyUserPrefs Class "<>\nModel" as Model Class AddressBook Class ModelManager +Class ReadOnlyStrategyBoard +Class StrategyBoard +Class TaskBook +Class UniqueTaskList +Class UniquePlayerList Class UserPrefs Class UniquePersonList @@ -19,6 +24,7 @@ Class Email Class Name Class Phone Class Tag +Class Task } @@ -27,6 +33,11 @@ HiddenOutside ..> Model AddressBook .up.|> ReadOnlyAddressBook +StrategyBoard .up.|> ReadOnlyStrategyBoard + +StrategyBoard *--> "1" UniquePlayerList + + ModelManager .up.|> Model Model .right.> ReadOnlyUserPrefs Model .left.> ReadOnlyAddressBook @@ -46,5 +57,9 @@ Name -[hidden]right-> Phone Phone -[hidden]right-> Address Address -[hidden]right-> Email +ModelManager --> "1" TaskBook +TaskBook *-->"1" UniqueTaskList +UniqueTaskList --> "*" Task ModelManager -->"~* filtered" Person + @enduml diff --git a/docs/images/ModelClassDiagram.png b/docs/images/ModelClassDiagram.png index b86bfb8c2dfcbd16ce2e44ff9d1f0b82ad93ff79..149c804e98011cd3777e7c3c0489d0ec1327fb80 100644 GIT binary patch literal 30803 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 F{{m?~q_F@1 From c737ded2c8ce0abb571a54a3b5d621a3259a2d22 Mon Sep 17 00:00:00 2001 From: Pragya Date: Thu, 24 Mar 2022 06:12:36 +0800 Subject: [PATCH 194/455] DG use cases and user stories --- docs/DeveloperGuide.md | 67 +++++++++++++++++++++++++++++++++++++++++- docs/UserGuide.md | 2 +- 2 files changed, 67 insertions(+), 2 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index d1d7885c3af..5c201a48313 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -332,7 +332,7 @@ schedules, and provides them with a platform to visualise defensive and offensiv Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unlikely to have) - `*` -| Priority | As a …​ | I want to …​ | So that I can…​ | +| Priority | As a …​ | I want to …​ | So that I can…​ | |----------|--------------------------|-----------------------------------------------------------------|------------------------------------------------------------------------------| | `* * *` | forgetful coach | enter team-specific or player note | look up these information | | `* * *` | coach | delete team-specific or player note | keep these information relevant and up-to-date | @@ -340,6 +340,9 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli | `* * *` | disorganized | add and tag new roles/teams to a contact | easily retrieve relevant information | | `* * *` | coach | easily retrieve contact information of relevant parties | quickly broadcast information to them | | `* * *` | organized coach | view players by their strengths and weaknesses | make informed decision on choosing the best person | +| `* * *` | disorganized coach | add existing and upcoming tasks | keep track of my schedule easily | +| `* * *` | disorganized coach | delete wrongly added or past tasks | organize my schedule better | +| `* * *` | strategic coach | save current formation information | plan my game plays and save strategies | | `* *` | lazy and forgetful coach | view a list of help commands and their descriptions | easily recall how to do a specific task | | `* *` | organised coach | view players by their strengths and weaknesses | make informed decisions on choosing the best person for a specific objective | | `*` | strategic coach | change the position of players (x-y coordinate) during the game | ensure my team works together | @@ -566,6 +569,53 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli Use case ends. + +**Use case: Add a task to the task list** + +**MSS** + +1. User requests to add a new task to the list +2. Coach2K22 shows a list with the newly added task + + Use case ends. + +**Extensions** + +* 1a. The parameters supplied by the user is invalid. + + * 1a1. Coach2K22 shows an error message. + + Use case ends. + +* 1b. Compulsory parameters not supplied by the user. + + * 1b1. Coach2K22 shows an error message. + + Use case ends. + +**Use case: Delete a task from the task list** + +**MSS** + +1. User requests to view the list of tasks +2. Coach2K22 shows a list of tasks +3. User requests to delete a specific task from the list +4. Coach2K22 deletes the task + + Use case ends. + +**Extensions** + +* 1a. The task list is empty. + + Use case ends. + +* 1b. The index requested does not exist. + + * 1b1. Coach2K22 shows an error message. + + Use case ends. + **Use case: Clear all tasks from task list** **MSS** @@ -695,6 +745,21 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli *{More to be added}* +**Use case: Save current strategy board** + +**MSS** + +1. User requests to save a snapshot of the strategy board. +2. Coach2k22 returns an image file of the strategy board. + + Use case ends. + +**Extensions** + +* 1a. User is not viewing the strategy board. + + Use case ends. + ### 6.4 Non-Functional Requirements 1. Should work on any _mainstream OS_ as long as it has Java `11` or above installed. diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 90638d357dc..49c7da9ab35 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -300,7 +300,7 @@ Examples: * Deletes the task at the specified `INDEX`. * The index can be obtained by referring to the indicated task index on the displayed task list. -* Index values start from 1 and are always a positive integers. +* Index values start from 1 and are always positive integers. #### 2.2.4 Editing a task: `edit-t` From c839362b53f4d8f912ff75b94add5bd99fe1855a Mon Sep 17 00:00:00 2001 From: Pragya Date: Thu, 24 Mar 2022 08:12:10 +0800 Subject: [PATCH 195/455] no message --- docs/DeveloperGuide.md | 31 +++++++++++ docs/diagrams/AddTaskSequenceDiagram.puml | 68 +++++++++++++++++++++++ 2 files changed, 99 insertions(+) create mode 100644 docs/diagrams/AddTaskSequenceDiagram.puml diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 5c201a48313..87154044eca 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -211,6 +211,37 @@ The steps above are summarised using a sequence diagram as shown below. * Pros: Easy to extend and manipulate attributes of a player. * Cons: Hard to implement. +### 4.3 Add tasks feature + +#### 4.3.1 Implementation + +This feature allows the user to add tasks to the task list. It is facilitated by `ModelManager` which +makes use of the method `#addTask()` and `#updateFilteredTaskList()` to add a new task to the task list. + +Given below is an example usage scenario of how the add task mechanism behaves at each step. + +Step 1: The user inputs `add-t n/Meet d/11-11-2022 st/11:00 et/01:00` to add a new task to the task list. + +Step 2: This argument is passed into `LogicManager` which calls on `Coach2K22Parser#parseCommand()` to find a suitable parser class to process the user inputs. This initialises the `AddTaskCommandParser` where its method `#parse()` is called to process the user inputs. + +Step 3: It then returns a newly initialised `AddTaskCommand` back to the `LogicManager` for command execution. + +Step 4: During the command execution, the `ModelManager#addTask()` is called which adds the new task to an internal list. Inside the function call, the `ModelManager#updateFilteredTaskList()` is also called which updates the GUI display. A new task named "Meet" with the subsequent date and time details is then shown in the task list. + +The steps above are summarised using a sequence diagram as shown below. +![AddPlayerSequenceDiagram](images/AddPlayerSequenceDiagram.png) + +#### 4.2.2 Design consideration + +**Aspect: Should there be an abstraction for players:** + +* **Alternative 1 (current choice):** Separate `add-t` command for creating a task. + * Pros: Easy to extend and modify. + * Cons: Not as intuitive for the user. +* **Alternative 2:** Single `add` command that adds tasks/persons depending on parameters. + * Pros: More intuitive for the user. + * Cons: Hard to implement. + ### \[Proposed\] Undo/redo feature #### Proposed Implementation diff --git a/docs/diagrams/AddTaskSequenceDiagram.puml b/docs/diagrams/AddTaskSequenceDiagram.puml new file mode 100644 index 00000000000..a260c031e0b --- /dev/null +++ b/docs/diagrams/AddTaskSequenceDiagram.puml @@ -0,0 +1,68 @@ +@startuml +!include style.puml + +box Logic LOGIC_COLOR_T1 +participant ":LogicManager" as LogicManager LOGIC_COLOR +participant ":Coach2K22Parser" as Coach2K22Parser LOGIC_COLOR +participant ":AddTaskCommandParser" as AddTaskCommandParser LOGIC_COLOR +participant "p:AddTaskCommand" as AddTaskCommand LOGIC_COLOR +participant ":CommandResult" as CommandResult LOGIC_COLOR +end box + +box Model MODEL_COLOR_T1 +participant ":Model" as Model MODEL_COLOR +end box + +[-> LogicManager : execute("add-t n/Meet ...") +activate LogicManager + +LogicManager -> Coach2K22Parser : parseCommand("add-t n/Meet ...") +activate Coach2K22Parser + +create AddTaskCommandParser +Coach2K22Parser -> AddTaskCommandParser +activate AddTaskCommandParser + +AddTaskCommandParser --> Coach2K22Parser +deactivate AddTaskCommandParser + +Coach2K22Parser -> AddTaskCommandParser : parse("n/Meet ...") +activate AddTaskCommandParser + +create AddTaskCommand +AddTaskCommandParser -> AddTaskCommand +activate AddTaskCommand + +AddTaskCommand --> AddTaskCommandParser : p +deactivate AddTaskCommand + +AddTaskCommandParser --> Coach2K22Parser : p +deactivate AddTaskCommandParser. +AddTaskCommandParser -[hidden]-> Coach2K22Parser +destroy AddTaskCommandParser + +Coach2K22Parser --> LogicManager : p +deactivate Coach2K22Parser + +LogicManager -> AddTaskCommand : execute() +activate AddTaskCommand + +AddTaskCommand -> Model : addTask("Meet ...") +activate Model + +Model --> AddTaskCommand +deactivate Model + +create CommandResult +AddTaskCommand -> CommandResult +activate CommandResult + +CommandResult --> AddTaskCommand +deactivate CommandResult + +AddTaskCommand --> LogicManager : result +deactivate AddTaskCommand + +[<--LogicManager +deactivate LogicManager +@enduml From 820d2b1dac57ce09922635f93f7e106d8fb4ae21 Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Thu, 24 Mar 2022 08:18:48 +0800 Subject: [PATCH 196/455] Replace ModelClassDiagram --- docs/diagrams/ModelClassDiagram.png | Bin 30803 -> 30891 bytes docs/diagrams/ModelClassDiagram.puml | 2 +- docs/images/ModelClassDiagram.png | Bin 30803 -> 30891 bytes 3 files changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/diagrams/ModelClassDiagram.png b/docs/diagrams/ModelClassDiagram.png index 149c804e98011cd3777e7c3c0489d0ec1327fb80..4fbfa3b9c73e0aaa1f89d18c6826fd27912c5c6d 100644 GIT binary patch literal 30891 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
      9s?J(x~S*cSOy$AXskFRu)SCiQ=;bkYPiZ_x= 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 Class "<>\nReadOnlyAddressBook" as ReadOnlyAddressBook Class "<>\nReadOnlyUserPrefs" as ReadOnlyUserPrefs Class "<>\nModel" as Model +Class "<>\nReadOnlyStrategyBoard" as ReadOnlyStrategyBoard Class AddressBook Class ModelManager -Class ReadOnlyStrategyBoard Class StrategyBoard Class TaskBook Class UniqueTaskList diff --git a/docs/images/ModelClassDiagram.png b/docs/images/ModelClassDiagram.png index 149c804e98011cd3777e7c3c0489d0ec1327fb80..4fbfa3b9c73e0aaa1f89d18c6826fd27912c5c6d 100644 GIT binary patch literal 30891 zcmd43Wmr~S7cTmMgpx`(7)W=wfPm87rPB4#U4nuLf=D;g4blyYf^>IxclVwT_`aXt zK4S`Qo`E1Ojgkfxs=@g$KV$UD2fm zKWOa5)a~Cutz9e(jqD*3hE|5Quj~yCC|=64Qhg~L{flPSQgQt!j$bfh1c+_=1oN62 zKN!a`%eX#?XkM>w@JRENQY9+wjzs@(=6tbrvg^E1#rZtOxt(uHPWm~2#@(?Ep0gT+ z0ph2Q&qEpRr!Oqma0GI~m-+QzV!F0`kwWYrT^w8}+_hk>$=7@yZzAxh*C^e9-Xzen zC2riRSR`8VBS}}66$|V0JZ=nsJ>IDimS@KsLHB&kUOqzg!m4<&BE55onBIoO`Ng&$ zG36_wSHPTZYAl`h8jd$DO{uqr zdAVjIUCYCLyM;lDI3*({Mr;Rz4tw^syc_3D?)P|g#kh9n6Rx+51SolRWvVkQMTavE zUlww`vl_8{(0iFf7r|!yAcJR%u3VGYYb4S#2C>C(Fd5JNQ^PWSiFN&}2Xj1NnQ~r4lB!U*r_m}eXyR@p+V{J!IS1pr zdgX;ZKV?gD>)O=yuR}B*;x7FSZz>tLsxa#0LKl!bkTcR4T%#W3`)ty?-z|7B&ft8q1*r2^8qw$v*#X&U}7 zA5(Hj2vsV7dCo3Tc6$1E-{A@R;d^)!gaX%rJf zJwy6Q;BlxziC_N=AtsL~fjb*jTY;4Jm*_Y?ch&$_EjsD1vZm!yAt&!^-aNCZuem>5 z@Qx{+9dnQ7d~ELM`%{-ATozoLi?4jGxlU2S_mA{yLvS2hYJTrB+SUe=Y(E1344D?Q zfJd$_lUM1Darj~J#?6m89dnL^bk={_))(8|lt zX#Ah7VaFWr_64930%{Xo-6>n30Lb0F{rw1SB5LYIZgklHeQ@bisjJwtlZ7sJnqVq| zu%ooc)WttOzS;TAFnwdf3!8U0o99=6tHh=W{%8MN&u<=z z>bJ&p7x20|&9s$`Wq*0<;FABNEkCbgsRoFRFLcg?xyIlr#QSkPPFufK{i)Gn?P8=> zxL(vSZQev%n?*ekF>F+%5-B5i2)9p$L7m&N)mW*iqa&w_t*tG!4B1m#78Vv?By`^W z4mM;A67Dz6K}uo+gO>;Wa->8jr^`vBs-dBwm*>aOsoK+D_2L-dQrqZgRe)Yepr zB1esRBiycwd1a6y0E-Mjz^DQC6f!glw?qN@5*fE7yIn0MlzE)OpFRGb* z6$`{$O)!qPY0go}E&VJQrw7ymwwwBW<4X(#5}ZskI+U*^CvtYv-EwuOhad`b|MqFvnpqicxG|6qN>c@{CnMt0SRvdJ<) zXNhiGy&`88p7((DOa$Oa_>NMt!9hrbm5SrzNfc``Wa73)OZ;^uf=OOVX5&}kF=)#3 z($NL>#l*yfTaB0Jk`!YK7Toar%*}@Lt~g(h5x?$PC5bGL@8+3?}7sJX_678rrd>q%pLy`KG(zhe__K z*_2u7;^H!vSy?gVnu|xo@*1Izl+6e&U<+H0|Le5mxwq5WKsN4Nle7mX#M}3U4STc> zD>kI@0Xt0H{^4B#ua~0E`=Hum-$6J$LXRB1@D%RFJ zjc@Om=7OyVUSI6LfB!x<$?y&^$A1(8(yCw_3E%=7)xH;Mcmun>dvj8qQ{Z7X_BHv| zVZbza^AKdB<%5|uNf(i-VE{{s?t)6*_bn0Kln4uqtzy+J|m`{ zzKvn}h0K-gJP0@L?Wto@2zTVp6H}v1`RHq7*D9y5gxsj{=X3^*s!ibZ)rRRlSIX!{ zu^M}ID%!nb3pZns#w`N8lVJ1I=T_m&GKEKydxZ9`e0v6#Bfm@FXZUabTrcswoh)?u z5JM=_ZLTuJx7&ogw|aTPTw+)H-`TfAPqs4cdkOhWxLc_xpE}i2I5d+a-h*WR*{6UR zEuCnr!;{S?fots6n%fV{1_$}EA+ln(z9fvE@G?3hx!+ZaKbm*R9~nNOY+?0{ zEk(a+m(Ms}U8y7+fXttza;HwXENc zf1X=mM;xs0^LL5c^|WOvhG)hk+9p$bbi6g)95VguH%ept>)NlKu;s2TH=nn{e#384 z>!uwrQR77{lx860JSd-TtOj>7^&ad$XT zv)~$UhT^lDn$WnJ&s(A+&h4k*Jh~+wO|WNH@)BKGRILOrx@D_J$dIzK#rY8x;oigf z%Z1klh!fDI+z0Y^yq!YmLftBwJD@9_3BPW3UirIYyZyh%={(CBQdaGwxNCJXEj-OJ zCC4bP+Bn{ECVBQ9GBY_ZxiCe_wI1l;Wqi9SGM07oxht}7-Oi$MVjojOXiQFcCWrWs zjU4;%*kn}*C7;yt)H5&Yd+1G_e^^o|Lx+w&c4&_Oc;Vw~v;U)evw(B-q&KRC%W`lz z-ea*dW*sZ{qm*Q@QJ(vT7{l^`XVmi6h)QHc-Ab^(ta4M}*>`L( zi{ZOC&>(Trr0US4;$_0>$+$0F0F2n zQ`g*!+Lr^lhNCSUR1S{7@bIV3p3Pq2upuhuXIZ^RR?JRR)?$;z*GQGM6#$E3ZK~(A z&oLW7ynvVta50KE=rwt=*yo_HyXTh>k=Cv&oR@W@5l{DIAE_*x3%pL^Ff){TVRJx; zn69&do`B`(h;JTG`(W^EgS}Zmim$&&tYh-?oz=}OwhoIF`ZNuR#k8;Y2d|#XvLTv@ zbELTz!=oq2R$x!gGa4Yq8#+8a8|%r&D&|u8QPhCOrLbgoXXbffC1UyQBHmfJL@--u zHOYimRhP(;l-KmAHDlzm^`7|2Mtttf#qvWpsSIFM0}^yh@yHkbnA%Nka=F@<^lG4( zul`zKt8cx7TgC98>`T|$o~_C$NSTy+pIT~k{Vw<5@;snSVDD{>wH;DcK}_n^jezFB zRF;2bzuH}-v@9BM zCCtnTs#opP_~NNN6=PZXvU%+=PVki1b0B&|xGAE9o-Iz?&r_=jK3i3p>nODDYrj~= z`XeU_x*6>zNKvc3z#B9Ml?g*8aIz;gszsgd($#oxP73aC0~@!uv>>Dj7R*QKADS1=q7X9Tn zK6nQ>2LuOXOm=V-#WIf4r?Vy9>_SG2&&10=;Iw!v^@L}CQ=v=`|6tKiWw~_Gmhzf6 zHO6Lk(1=sR^?Lra=D3$e@kiWzM9GzI@n&l}p@zLxx(gcWLFMZCZ}i_NmD9=`2Zsu) z-b9eIg5IqB?9rpmZaawyvY{07u?+XC0?Ar_4r+KKg z181i59O8t|RhOPnb*rgWtcDfRl&LiVF3h za2oGgE8g2kW7wCNVql9KlZW=7p~>h~mgc0D@>4k-C%szB6dStU_dev2i7`t7M|k6> z44c0;(>^e&R8=<{OuzHPE|zEIuQ%*)bbv=>H82wu&GgM6YTF9c&r#L<79sYF&olb| zu$OFt>c$d2xVs=IY$QjW4f&`4_F%}K5M9oC<3pX{W%NcGR!NXbp2R= z|1@1AsXsg$>qpntmxJ%i!BWMn9+UPu3m9nYGYN0JH}p5Oiw6kp41N#z`N<;7M3^4G zU{;~i=^hwVRqGG!s&m9S^^J41uKv(gH*Tq{Ir~<5vo=yUun$8^ul_WCDV0-WKGiAQ z_0+;SgY=I91NSBAw%qZ>bM;&6z|zA`-U5%=%^;3@tRY`D_OF?5&Z|Teor!!CNfsjm zUnr+5q+zz{+|-&xr#h!N+4``*FdP0@LPqa&1vO{EfvL_;-!>?+0Q>q$GS4c9*KxgR zoxl8R*Xgfgd(Wvf)~eYKI=bvBa|~5m6rJ|ukbHu2GP_NkpNCqWlj+p^`B4n^D3h{Z z2V5*4W;_-Mwd!B)iGP0(`4sn*BQwue)h8$Im7S@}M1W@lE$KqU8}Ef2elBR+DZc8$ zVy=WQ(N=GdMy9!Y)8ibW>-@a5Q1MK2;1ymqXG7@%AAj%3mZX52x@yo5gsA5S~IvxCm}yGSWsy}Mar`@Si919H0T*Miw^VJpYE zg?{*5^s1tDE!G#rsx`7)4F`yQ%IQ*eF%ozwP~N7?9FaVUkE!jr>}f8U?}mlAt1Zfo zhIZgC{4lqt*=Sx*wr|VV$cx~%TlSya?s=g583VA%w4YTP?lL4vqf&Jj{QYA?4>RqEw{d&bt@^BHnfT zPf+LQ%5ZJ>-NoH#YxSoCkP8WTRbqyM5JWRoMSyuKWi;m?hnaaQIk&O}paD5aecHUf zeBXCaeHG!Pa_Z*~9TE0RnEUC
      9s?J(x~S*cSOy$AXskFRu)SCiQ=;bkYPiZ_x= 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 Date: Thu, 24 Mar 2022 08:21:24 +0800 Subject: [PATCH 197/455] Replace ModelClassDiagram.png --- docs/diagrams/ModelClassDiagram.png | Bin 30891 -> 34483 bytes docs/diagrams/ModelClassDiagram.puml | 1 + docs/images/ModelClassDiagram.png | Bin 30891 -> 34483 bytes 3 files changed, 1 insertion(+) diff --git a/docs/diagrams/ModelClassDiagram.png b/docs/diagrams/ModelClassDiagram.png index 4fbfa3b9c73e0aaa1f89d18c6826fd27912c5c6d..b6bf16b86e805ad9951a6a1820f6d0ca87c2446d 100644 GIT binary patch literal 34483 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 me>k($k*Kd~QFO4{;E{KSen;*-~lKp#K2}HJvyB literal 30891 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

      9s?J(x~S*cSOy$AXskFRu)SCiQ=;bkYPiZ_x= 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 Address Address -[hidden]right-> Email ModelManager --> "1" TaskBook +ModelManager --> "1" StrategyBoard TaskBook *-->"1" UniqueTaskList UniqueTaskList --> "*" Task ModelManager -->"~* filtered" Person diff --git a/docs/images/ModelClassDiagram.png b/docs/images/ModelClassDiagram.png index 4fbfa3b9c73e0aaa1f89d18c6826fd27912c5c6d..b6bf16b86e805ad9951a6a1820f6d0ca87c2446d 100644 GIT binary patch literal 34483 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 me>k($k*Kd~QFO4{;E{KSen;*-~lKp#K2}HJvyB literal 30891 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

      9s?J(x~S*cSOy$AXskFRu)SCiQ=;bkYPiZ_x= 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 Date: Thu, 24 Mar 2022 08:23:38 +0800 Subject: [PATCH 198/455] no message --- docs/DeveloperGuide.md | 2 +- docs/images/AddTaskSequenceDiagram.png | Bin 0 -> 43797 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 docs/images/AddTaskSequenceDiagram.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 87154044eca..ea9d39da5ba 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -229,7 +229,7 @@ Step 3: It then returns a newly initialised `AddTaskCommand` back to the `LogicM Step 4: During the command execution, the `ModelManager#addTask()` is called which adds the new task to an internal list. Inside the function call, the `ModelManager#updateFilteredTaskList()` is also called which updates the GUI display. A new task named "Meet" with the subsequent date and time details is then shown in the task list. The steps above are summarised using a sequence diagram as shown below. -![AddPlayerSequenceDiagram](images/AddPlayerSequenceDiagram.png) +![AddTaskrSequenceDiagram](images/AddTaskSequenceDiagram.png) #### 4.2.2 Design consideration diff --git a/docs/images/AddTaskSequenceDiagram.png b/docs/images/AddTaskSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..063db59fa29ecd2e8f021d21744aab5f3bb8f2d7 GIT binary patch literal 43797 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 literal 0 HcmV?d00001 From f46fb4677375470ab1517b26ec3cc273437084ef Mon Sep 17 00:00:00 2001 From: Pragya Date: Thu, 24 Mar 2022 08:26:19 +0800 Subject: [PATCH 199/455] no message --- docs/DeveloperGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index ea9d39da5ba..f92c3640ff2 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -229,7 +229,7 @@ Step 3: It then returns a newly initialised `AddTaskCommand` back to the `LogicM Step 4: During the command execution, the `ModelManager#addTask()` is called which adds the new task to an internal list. Inside the function call, the `ModelManager#updateFilteredTaskList()` is also called which updates the GUI display. A new task named "Meet" with the subsequent date and time details is then shown in the task list. The steps above are summarised using a sequence diagram as shown below. -![AddTaskrSequenceDiagram](images/AddTaskSequenceDiagram.png) +![AddTaskSequenceDiagram](images/AddTaskSequenceDiagram.png) #### 4.2.2 Design consideration From abf8b72f9a45f28320aad72460259b799d6397a3 Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Thu, 24 Mar 2022 08:41:12 +0800 Subject: [PATCH 200/455] Fix error in image name --- docs/DeveloperGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index f9e9db18b1a..709508f073c 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -235,7 +235,7 @@ is also called, which updates the GUI to display the new task list. The command the user. The steps above are summarised using a sequence diagram as shown below. -![AddPlayerSequenceDiagram](images/ClearTaskSequenceDiagram.png) +![ClearTaskSequenceDiagram](images/ClearTaskSequenceDiagram.png) #### 4.3.2 Design consideration From b56ab9af9915583631699d42573cd8a778df7b7b Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Thu, 24 Mar 2022 11:15:33 +0800 Subject: [PATCH 201/455] Modify load-court function to remove dependency on LogicManager --- src/main/java/seedu/address/logic/Logic.java | 5 --- .../seedu/address/logic/LogicManager.java | 5 --- .../address/logic/commands/CommandResult.java | 33 +++++++++++++++---- .../logic/commands/LoadCourtCommand.java | 3 +- src/main/java/seedu/address/model/Model.java | 6 ---- .../seedu/address/model/ModelManager.java | 6 ---- .../address/model/ReadOnlyStrategyBoard.java | 5 --- .../seedu/address/model/StrategyBoard.java | 16 --------- .../java/seedu/address/ui/MainWindow.java | 9 ++--- 9 files changed, 33 insertions(+), 55 deletions(-) diff --git a/src/main/java/seedu/address/logic/Logic.java b/src/main/java/seedu/address/logic/Logic.java index b7cbeecf595..de41dc85c7e 100644 --- a/src/main/java/seedu/address/logic/Logic.java +++ b/src/main/java/seedu/address/logic/Logic.java @@ -55,9 +55,4 @@ public interface Logic { * Set the user prefs' GUI settings. */ void setGuiSettings(GuiSettings guiSettings); - - /** - * Returns the image stored in StrategyPanel. - */ - Image getBackgroundImage(); } diff --git a/src/main/java/seedu/address/logic/LogicManager.java b/src/main/java/seedu/address/logic/LogicManager.java index 54311d0f7c8..e5f17d430a0 100644 --- a/src/main/java/seedu/address/logic/LogicManager.java +++ b/src/main/java/seedu/address/logic/LogicManager.java @@ -14,7 +14,6 @@ import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.Model; import seedu.address.model.ReadOnlyAddressBook; -import seedu.address.model.image.Image; import seedu.address.model.person.Person; import seedu.address.model.task.Task; import seedu.address.storage.Storage; @@ -77,10 +76,6 @@ public ObservableList getFilteredPlayerList() { return model.getFilteredPlayerList(); } - public Image getBackgroundImage() { - return model.getStrategyBoard().getImage(); - } - @Override public Path getAddressBookFilePath() { return model.getAddressBookFilePath(); diff --git a/src/main/java/seedu/address/logic/commands/CommandResult.java b/src/main/java/seedu/address/logic/commands/CommandResult.java index d0ba3fc9616..039442569a5 100644 --- a/src/main/java/seedu/address/logic/commands/CommandResult.java +++ b/src/main/java/seedu/address/logic/commands/CommandResult.java @@ -4,6 +4,9 @@ import java.util.Objects; +import seedu.address.model.image.Image; + + /** * Represents the result of a command execution. */ @@ -11,22 +14,36 @@ public class CommandResult { private final String feedbackToUser; - /** Help information should be shown to the user. */ + /** + * Help information should be shown to the user. + */ private final boolean showHelp; - /** The application should exit. */ + /** + * The application should exit. + */ private final boolean exit; - /** The background image of StrategyBoard should be changed*/ + /** + * The background image of StrategyBoard should be changed + */ private final boolean isLoadImage; + /** + * The background image of StrategyBoard + */ + private final Image image; + /** * Constructs a {@code CommandResult} with the specified fields. + * #### 2.2.8 Locating tasks by keyword : `find-t` @@ -447,16 +465,16 @@ Format: `exit` ### 4.2 Task Management -| Action | Format, Examples | -|--------------|--------------------------------------------------------------------------------------------| -| **List** | `list-p` | -| **Add** | (to be filled up by @pragya) | -| **Del** | (to be filled up by @pragya) | -| **Edit** | (to be filled up by @pragya) | -| **Clear** | `clear-t [d/DATE]`
      e.g., `clear-t 2022-10-10` | -| **Add Tag** | (to be filled up by @juayhee) | -| **Del Tag** | (to be filled up by @juayhee) | -| **Find** | `find-t [n/NAME]…​ [t/TAG]…​`
      e.g., `find-p n/Meeting n/Training t/team1 t/team2`| +| Action | Format, Examples | +|--------------|---------------------------------------------------------------------------------------| +| **List** | `list-p` | +| **Add** | (to be filled up by @pragya) | +| **Del** | (to be filled up by @pragya) | +| **Edit** | (to be filled up by @pragya) | +| **Clear** | `clear-t [d/DATE]`
      e.g., `clear-t 2022-10-10` | +| **Add Tag** | `tag-add-t INDEX [t/TAG]`
      e.g., `tag-add-t 1 t/important` | +| **Del Tag** | `tag-del-t INDEX [t/TAG]`
      e.g., `tag-del-t 1 t/important` | +| **Find** | `find-t [n/NAME]…​ [t/TAG]…​`
      e.g., `find-p n/Meeting n/Training t/team1 t/team2` | ### 4.3 Strategic Planning From b739a9ca97ba87a4d8c4bcc2103b4565d983c63d Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Thu, 24 Mar 2022 22:12:10 +0800 Subject: [PATCH 212/455] Add test cases for load-court related classes --- .../logic/commands/LoadCourtCommand.java | 21 +++---- .../address/logic/parser/ParserUtil.java | 1 + .../logic/commands/LoadCourtCommandTest.java | 61 +++++++++++++++++++ .../logic/parser/AddressBookParserTest.java | 19 ++++++ .../parser/LoadCourtCommandParserTest.java | 48 +++++++++++++++ .../address/logic/parser/ParserUtilTest.java | 29 ++++++++- .../seedu/address/model/image/ImageTest.java | 6 +- .../seedu/address/testutil/TestImage.java | 42 +++++++++++++ 8 files changed, 211 insertions(+), 16 deletions(-) create mode 100644 src/test/java/seedu/address/logic/parser/LoadCourtCommandParserTest.java create mode 100644 src/test/java/seedu/address/testutil/TestImage.java diff --git a/src/main/java/seedu/address/logic/commands/LoadCourtCommand.java b/src/main/java/seedu/address/logic/commands/LoadCourtCommand.java index 0f60585b6cb..ea356dd1c0c 100644 --- a/src/main/java/seedu/address/logic/commands/LoadCourtCommand.java +++ b/src/main/java/seedu/address/logic/commands/LoadCourtCommand.java @@ -39,23 +39,22 @@ public LoadCourtCommand(Image image) { @Override public CommandResult execute(Model model) throws CommandException { requireAllNonNull(model); - checkIfThrowsException(); //throws if the image file cannot be instantiated + if (checkIfThrowsException()) { //throws if the image file cannot be instantiated + throw new CommandException(MESSAGE_IMAGE_INVALID); + + } + return new CommandResult(generateSuccessMessage(image), false, false, true, this.image); } /** * Creates a test javafx.scene.image object and checks if it throws an Exception. - * @return false if the image file can be instantiated - * @throws CommandException if png file cannot load + * @return false if the image file cannot be instantiated */ - public boolean checkIfThrowsException() throws CommandException { - try { - File imagePath = image.getImagePath(); - new javafx.scene.image.Image((imagePath.toURI().toString())); - } catch (NullPointerException | IllegalArgumentException e) { - throw new CommandException(MESSAGE_IMAGE_INVALID); - } - return false; + public boolean checkIfThrowsException() { + File imagePath = image.getImagePath(); + javafx.scene.image.Image testImage = new javafx.scene.image.Image((imagePath.toURI().toString())); + return testImage.isError(); } /** diff --git a/src/main/java/seedu/address/logic/parser/ParserUtil.java b/src/main/java/seedu/address/logic/parser/ParserUtil.java index 2b8ed859058..3366c150bed 100644 --- a/src/main/java/seedu/address/logic/parser/ParserUtil.java +++ b/src/main/java/seedu/address/logic/parser/ParserUtil.java @@ -56,6 +56,7 @@ public static Index parseIndex(String oneBasedIndex) throws ParseException { * @throws ParseException if the specified imageName is invalid. */ public static Image parseImage(String imageName) throws ParseException { + requireNonNull(imageName); String trimmedName = imageName.trim(); File folder = new File(Image.FILE_PATH); if (!folder.exists()) { diff --git a/src/test/java/seedu/address/logic/commands/LoadCourtCommandTest.java b/src/test/java/seedu/address/logic/commands/LoadCourtCommandTest.java index 8fd3ba3aa12..3994070ae72 100644 --- a/src/test/java/seedu/address/logic/commands/LoadCourtCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/LoadCourtCommandTest.java @@ -1,4 +1,65 @@ package seedu.address.logic.commands; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; +import static seedu.address.testutil.Assert.assertThrows; +import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; + +import org.junit.jupiter.api.Test; + +import javafx.application.Platform; +import seedu.address.model.Model; +import seedu.address.model.ModelManager; +import seedu.address.model.UserPrefs; +import seedu.address.model.image.Image; + public class LoadCourtCommandTest { + + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + + @Test + public void constructor_null_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> new LoadCourtCommand(null)); + } + + @Test + public void execute_invalidImage_throwsCommandException() { + Image imageTestEmpty = new Image(""); + Image imageTestInvalidSymbol = new Image("<"); + LoadCourtCommand command1 = new LoadCourtCommand(imageTestEmpty); + LoadCourtCommand command2 = new LoadCourtCommand(imageTestInvalidSymbol); + + Platform.startup(() -> { }); //need to startup Javafx platform before running image functions + + assertCommandFailure(command1, model, LoadCourtCommand.MESSAGE_IMAGE_INVALID); + assertCommandFailure(command2, model, LoadCourtCommand.MESSAGE_IMAGE_INVALID); + + Platform.exit(); + } + + @Test + public void equals() { + Image imageStub1 = new Image("test"); + Image imageStub2 = new Image("test2"); + LoadCourtCommand standardCommand = new LoadCourtCommand(imageStub1); + LoadCourtCommand standardCommand2 = new LoadCourtCommand(imageStub2); + + // same values -> returns true + LoadCourtCommand commandWithSameValues = new LoadCourtCommand(imageStub1); + assertTrue(standardCommand.equals(commandWithSameValues)); + + // same object -> returns true + assertTrue(standardCommand.equals(standardCommand)); + + // null -> returns false + assertFalse(standardCommand.equals(null)); + + // different types -> returns false + assertFalse(standardCommand.equals(new ClearCommand())); + + // different image -> returns false + assertFalse(standardCommand.equals(standardCommand2)); + } } diff --git a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java index 47c8efef4ea..8e8b5aa2216 100644 --- a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java +++ b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java @@ -25,6 +25,7 @@ import seedu.address.logic.commands.FindCommand; import seedu.address.logic.commands.HelpCommand; import seedu.address.logic.commands.ListCommand; +import seedu.address.logic.commands.LoadCourtCommand; import seedu.address.logic.commands.notecommands.AddMiscCommand; import seedu.address.logic.commands.notecommands.AddStrengthCommand; import seedu.address.logic.commands.notecommands.AddWeaknessCommand; @@ -32,6 +33,7 @@ import seedu.address.logic.commands.notecommands.DeleteStrengthCommand; import seedu.address.logic.commands.notecommands.DeleteWeaknessCommand; import seedu.address.logic.parser.exceptions.ParseException; +import seedu.address.model.image.Image; import seedu.address.model.name.PersonNameContainsKeywordsPredicate; import seedu.address.model.note.Note; import seedu.address.model.person.Person; @@ -39,6 +41,7 @@ import seedu.address.testutil.EditPersonDescriptorBuilder; import seedu.address.testutil.PersonBuilder; import seedu.address.testutil.PersonUtil; +import seedu.address.testutil.TestImage; public class AddressBookParserTest { @@ -119,6 +122,22 @@ public void parseCommand_deleteMisc() throws Exception { assertEquals(new DeleteMiscCommand(INDEX_SECOND_PERSON, NOTE_FIRST_INDEX), command); } + @Test + public void parseCommand_loadCourt() throws Exception { + TestImage.createTestImage(); + + Image imageStub = TestImage.getTestImage(); + String imageName = imageStub.imageName; + + LoadCourtCommand command = (LoadCourtCommand) parser.parseCommand( + LoadCourtCommand.COMMAND_WORD + " " + imageName + ); + assertEquals(new LoadCourtCommand(imageStub), command); + + TestImage.deleteTestImage(); + + } + @Test public void parseCommand_edit() throws Exception { Person person = new PersonBuilder().build(); diff --git a/src/test/java/seedu/address/logic/parser/LoadCourtCommandParserTest.java b/src/test/java/seedu/address/logic/parser/LoadCourtCommandParserTest.java new file mode 100644 index 00000000000..092a46d703d --- /dev/null +++ b/src/test/java/seedu/address/logic/parser/LoadCourtCommandParserTest.java @@ -0,0 +1,48 @@ +package seedu.address.logic.parser; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; +import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; + +import java.io.File; +import java.io.IOException; + +import org.junit.jupiter.api.Test; + +import seedu.address.logic.commands.LoadCourtCommand; +import seedu.address.model.image.Image; +import seedu.address.testutil.TestImage; + +public class LoadCourtCommandParserTest { + private LoadCourtCommandParser parser = new LoadCourtCommandParser(); + + @Test + public void parse_emptyArg_throwsParseException() { + assertParseFailure(parser, " ", + String.format(MESSAGE_INVALID_COMMAND_FORMAT, LoadCourtCommand.MESSAGE_USAGE)); + } + + @Test + public void parse_validArgs_returnsLoadCourtCommand() { + TestImage.createTestImage(); + Image testImage = TestImage.getTestImage(); + String testImageName = testImage.imageName; + LoadCourtCommand expectedLoadCourtCommand = new LoadCourtCommand(testImage); + + assertParseSuccess(parser, testImageName, expectedLoadCourtCommand); + + TestImage.deleteTestImage(); + } + + @Test + public void parse_invalidArgs_throwsParseException() { + assertParseFailure(parser, ".jpg", String.format( + MESSAGE_INVALID_COMMAND_FORMAT, LoadCourtCommand.MESSAGE_USAGE)); + + assertParseFailure(parser, "/", String.format( + MESSAGE_INVALID_COMMAND_FORMAT, LoadCourtCommand.MESSAGE_USAGE)); + + assertParseFailure(parser, "", String.format( + MESSAGE_INVALID_COMMAND_FORMAT, LoadCourtCommand.MESSAGE_USAGE)); + } +} diff --git a/src/test/java/seedu/address/logic/parser/ParserUtilTest.java b/src/test/java/seedu/address/logic/parser/ParserUtilTest.java index df553ed62cc..020d391e977 100644 --- a/src/test/java/seedu/address/logic/parser/ParserUtilTest.java +++ b/src/test/java/seedu/address/logic/parser/ParserUtilTest.java @@ -1,7 +1,6 @@ package seedu.address.logic.parser; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.*; import static seedu.address.logic.parser.ParserUtil.MESSAGE_INVALID_INDEX; import static seedu.address.logic.parser.ParserUtil.MESSAGE_INVALID_NOTE_INDEX; import static seedu.address.testutil.Assert.assertThrows; @@ -16,11 +15,13 @@ import org.junit.jupiter.api.Test; import seedu.address.logic.parser.exceptions.ParseException; +import seedu.address.model.image.Image; import seedu.address.model.name.Name; import seedu.address.model.person.Address; import seedu.address.model.person.Email; import seedu.address.model.person.Phone; import seedu.address.model.tag.Tag; +import seedu.address.testutil.TestImage; public class ParserUtilTest { private static final String INVALID_NAME = "R@chel"; @@ -216,4 +217,28 @@ public void parseTags_collectionWithValidTags_returnsTagSet() throws Exception { assertEquals(expectedTagSet, actualTagSet); } + + @Test + public void parseImage_null_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> ParserUtil.parseImage(null)); + } + + @Test + public void parseImage_invalidArgs_throwsParseException() { + assertThrows(ParseException.class, () -> ParserUtil.parseImage(" ")); + assertThrows(ParseException.class, () -> ParserUtil.parseImage("/")); + assertThrows(ParseException.class, () -> ParserUtil.parseImage("<.jpg")); + } + + @Test + public void parseImage_validArgs_returnsImage() throws ParseException { + TestImage testImageFile = new TestImage(); + Image expectedImage = testImageFile.getTestImage(); + String testImageName = expectedImage.imageName; + testImageFile.createTestImage(); + + assertEquals(expectedImage, ParserUtil.parseImage(testImageName)); + + testImageFile.deleteTestImage(); + } } diff --git a/src/test/java/seedu/address/model/image/ImageTest.java b/src/test/java/seedu/address/model/image/ImageTest.java index 0fe85f73b5d..a647cba849b 100644 --- a/src/test/java/seedu/address/model/image/ImageTest.java +++ b/src/test/java/seedu/address/model/image/ImageTest.java @@ -13,7 +13,7 @@ class ImageTest { private final String imageNameStub = "test"; private final String imageNameStub1 = "test2"; - private final String imageNameStub2 = "INCORRECT_FILE.jpeg"; + private final String imageNameStub2 = "<"; @Test public void constructor_null_throwsNullPointerException() { @@ -26,14 +26,14 @@ public void isValidFile_invalidPath_throws() { } @Test - void getImagePath_validPathName() { + public void getImagePath_validPathName() { Image image = new Image(imageNameStub); assertDoesNotThrow(() -> image.getImagePath()); } @Test - void testEquals() { + public void equals() { Image image = new Image(imageNameStub); Image image2 = new Image(imageNameStub); Image image3 = new Image(imageNameStub1); diff --git a/src/test/java/seedu/address/testutil/TestImage.java b/src/test/java/seedu/address/testutil/TestImage.java new file mode 100644 index 00000000000..17157739613 --- /dev/null +++ b/src/test/java/seedu/address/testutil/TestImage.java @@ -0,0 +1,42 @@ +package seedu.address.testutil; + +import java.io.File; +import java.io.IOException; + +import seedu.address.model.image.Image; + +/** + * Contains static methods to create sample png files for testing Image-related classes. + */ +public class TestImage { + + public static final String TEST_IMAGE_NAME = "testFile"; + + private static Image testImage = new Image("testFile"); + + /** + * Creates a sample png file for testing Image classes + */ + public static void createTestImage() { + File testFile = testImage.getImagePath(); + File testDirectory = new File(Image.FILE_PATH); + try { + testFile.mkdir(); //in case "courts" directory has not been created + testDirectory.createNewFile(); + } catch (IOException e) { + assert false : "Runtime should not reach here"; + } + } + + /** + * Deletes the sample png that was created. + */ + public static void deleteTestImage() { + File testFile = testImage.getImagePath(); + testFile.delete(); + } + + public static Image getTestImage() { + return testImage; + } +} From 7d034258afe6f786fd37ffef3d73eccc013dfdf8 Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Thu, 24 Mar 2022 22:14:08 +0800 Subject: [PATCH 213/455] Fix checkstyle violations --- .../address/logic/parser/LoadCourtCommandParserTest.java | 4 ---- src/test/java/seedu/address/logic/parser/ParserUtilTest.java | 3 ++- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/test/java/seedu/address/logic/parser/LoadCourtCommandParserTest.java b/src/test/java/seedu/address/logic/parser/LoadCourtCommandParserTest.java index 092a46d703d..184cffdfd81 100644 --- a/src/test/java/seedu/address/logic/parser/LoadCourtCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/LoadCourtCommandParserTest.java @@ -1,12 +1,8 @@ package seedu.address.logic.parser; -import static org.junit.jupiter.api.Assertions.assertFalse; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; -import java.io.File; -import java.io.IOException; - import org.junit.jupiter.api.Test; import seedu.address.logic.commands.LoadCourtCommand; diff --git a/src/test/java/seedu/address/logic/parser/ParserUtilTest.java b/src/test/java/seedu/address/logic/parser/ParserUtilTest.java index 020d391e977..7f3fc74d93e 100644 --- a/src/test/java/seedu/address/logic/parser/ParserUtilTest.java +++ b/src/test/java/seedu/address/logic/parser/ParserUtilTest.java @@ -1,6 +1,7 @@ package seedu.address.logic.parser; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import static seedu.address.logic.parser.ParserUtil.MESSAGE_INVALID_INDEX; import static seedu.address.logic.parser.ParserUtil.MESSAGE_INVALID_NOTE_INDEX; import static seedu.address.testutil.Assert.assertThrows; From aec654a484c89bd0144c2503afc1de2a91128dcf Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Thu, 24 Mar 2022 22:24:59 +0800 Subject: [PATCH 214/455] Fix errors in testing due to newly merged commits --- .../address/logic/commands/AddTaskCommandTest.java | 6 ++++-- .../logic/commands/ClearTaskCommandTest.java | 13 +++++++++---- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/test/java/seedu/address/logic/commands/AddTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/AddTaskCommandTest.java index 5a860219de4..2d6174b8bfa 100644 --- a/src/test/java/seedu/address/logic/commands/AddTaskCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddTaskCommandTest.java @@ -16,6 +16,7 @@ import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ModelManager; +import seedu.address.model.StrategyBoard; import seedu.address.model.TaskBook; import seedu.address.model.UserPrefs; import seedu.address.model.task.Task; @@ -26,7 +27,8 @@ */ public class AddTaskCommandTest { - private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); @Test public void constructor_nullTask_throwsNullPointerException() { @@ -43,7 +45,7 @@ public void execute_taskAcceptedByModel_success() throws Exception { String expectedMessage = String.format(AddTaskCommand.MESSAGE_SUCCESS, validTask); Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), - new TaskBook(model.getTaskBook()), new UserPrefs()); + new TaskBook(model.getTaskBook()), new StrategyBoard(), new UserPrefs()); expectedModel.addTask(validTask); assertCommandSuccess(addTaskCommand, model, expectedMessage, expectedModel); diff --git a/src/test/java/seedu/address/logic/commands/ClearTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/ClearTaskCommandTest.java index acba01ad64b..14ef38bc2a6 100644 --- a/src/test/java/seedu/address/logic/commands/ClearTaskCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/ClearTaskCommandTest.java @@ -16,6 +16,7 @@ import seedu.address.model.Model; import seedu.address.model.ModelManager; +import seedu.address.model.StrategyBoard; import seedu.address.model.TaskBook; import seedu.address.model.UserPrefs; import seedu.address.model.task.Date; @@ -27,7 +28,8 @@ public class ClearTaskCommandTest { private final Date dateStub = new Date("03-03-2000"); - private final Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + private final Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); @Test public void constructor_nullDate_throwsNullPointerException() { @@ -36,7 +38,8 @@ public void constructor_nullDate_throwsNullPointerException() { @Test public void execute_clearTaskBook_success() { - Model expectedModel = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + Model expectedModel = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); expectedModel.setTaskBook(new TaskBook()); assertCommandSuccess(new ClearTaskCommand(), model, ClearTaskCommand.MESSAGE_SUCCESS, expectedModel); @@ -44,7 +47,8 @@ public void execute_clearTaskBook_success() { @Test public void execute_validDate_success() { - Model expectedModel = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + Model expectedModel = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); TaskBook taskBook = new TaskBook(); taskBook.addTask(FIFTH_TASK); @@ -67,7 +71,8 @@ public void execute_invalidDate_throwsCommandException() { @Test public void execute_emptyTaskList_throwsCommandException() { - Model emptyTaskListModel = new ModelManager(getTypicalAddressBook(), new TaskBook(), new UserPrefs()); + Model emptyTaskListModel = new ModelManager(getTypicalAddressBook(), new TaskBook(), + new StrategyBoard(), new UserPrefs()); ClearTaskCommand clearTaskCommand = new ClearTaskCommand(); assertCommandFailure(clearTaskCommand, emptyTaskListModel, ClearTaskCommand.MESSAGE_EMPTY_LIST); From a3a76698dd444fa6683c7d124cb46361a218c527 Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Thu, 24 Mar 2022 22:35:58 +0800 Subject: [PATCH 215/455] Fix test cases --- .../logic/commands/LoadCourtCommandTest.java | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/src/test/java/seedu/address/logic/commands/LoadCourtCommandTest.java b/src/test/java/seedu/address/logic/commands/LoadCourtCommandTest.java index 3994070ae72..53209132cba 100644 --- a/src/test/java/seedu/address/logic/commands/LoadCourtCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/LoadCourtCommandTest.java @@ -9,7 +9,6 @@ import org.junit.jupiter.api.Test; -import javafx.application.Platform; import seedu.address.model.Model; import seedu.address.model.ModelManager; import seedu.address.model.UserPrefs; @@ -24,21 +23,6 @@ public void constructor_null_throwsNullPointerException() { assertThrows(NullPointerException.class, () -> new LoadCourtCommand(null)); } - @Test - public void execute_invalidImage_throwsCommandException() { - Image imageTestEmpty = new Image(""); - Image imageTestInvalidSymbol = new Image("<"); - LoadCourtCommand command1 = new LoadCourtCommand(imageTestEmpty); - LoadCourtCommand command2 = new LoadCourtCommand(imageTestInvalidSymbol); - - Platform.startup(() -> { }); //need to startup Javafx platform before running image functions - - assertCommandFailure(command1, model, LoadCourtCommand.MESSAGE_IMAGE_INVALID); - assertCommandFailure(command2, model, LoadCourtCommand.MESSAGE_IMAGE_INVALID); - - Platform.exit(); - } - @Test public void equals() { Image imageStub1 = new Image("test"); From 127eb29a64d2a30cca8a0d7c0ed57b1c633c90a9 Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Thu, 24 Mar 2022 22:37:51 +0800 Subject: [PATCH 216/455] Fix checkstyle violations --- .../java/seedu/address/logic/commands/LoadCourtCommandTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/test/java/seedu/address/logic/commands/LoadCourtCommandTest.java b/src/test/java/seedu/address/logic/commands/LoadCourtCommandTest.java index 53209132cba..2bb727cc46f 100644 --- a/src/test/java/seedu/address/logic/commands/LoadCourtCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/LoadCourtCommandTest.java @@ -2,7 +2,6 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; import static seedu.address.testutil.Assert.assertThrows; import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; From b44bf1cf1b4ad776866e6749d09572e186a09cbc Mon Sep 17 00:00:00 2001 From: juayhee Date: Thu, 24 Mar 2022 22:42:12 +0800 Subject: [PATCH 217/455] Update DG with user stories for add-tag-t --- docs/DeveloperGuide.md | 39 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 84e00848dc7..a909c686390 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -228,7 +228,7 @@ Step 3: It then returns a newly initialised `AddTagCommand` back to the `LogicMa Step 4: During the command execution, the `ModelManager#setPerson()` is called which edits the tags of the person with the user-supplied tags. The filtered person list is updated with `ModelManager#updateFilteredPersonList` to display the new information to the user. The steps above are summarised using a sequence diagram as shown below. -![AddTagSequenceDiagram] (images/AddTagSequenceDiagram.png) +![AddTagSequenceDiagram](images/AddTagSequenceDiagram.png) #### 4.3.2 Design consideration @@ -585,7 +585,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli * 2a. The list is empty. Use case ends. - +@ * 3a. The tag requested to remove does not exist for the person. * 3a1. Coach2K22 shows an error message. @@ -636,6 +636,41 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli Use case resumes at step 2. +**Use case: Add a tag to a task from task list** + +**MSS** + +1. User requests to list tasks +2. Coach2K22 shows a list of tasks +3. User requests to add a tag to a task of a specified index in the task list +4. Coach2k22 shows the updated details of the task list + + Use case ends. + +**Extensions** + +* 3a. The task list is empty. + + Use case ends. + +**Use case: Remove a tag from a task in task list** + +**MSS** + +1. User requests to list tasks +2. Coach2K22 shows a list of tasks +3. User requests to remove a tag from a task of a specified index in the task list +4. Coach2K22 shows the updated details of the task list + + Use case ends. + +**Extensions** + +* 3a. The task does not have that specified tag. + + Use case resumes at step 2. + + **Use case: Load new background image for strategy tab** **MSS** From effbebc66cadc5d68dd035d3659a165747500457 Mon Sep 17 00:00:00 2001 From: juayhee Date: Thu, 24 Mar 2022 22:42:44 +0800 Subject: [PATCH 218/455] Update formatting --- docs/UserGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index f42e673425b..c586a0150c0 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -327,7 +327,7 @@ Examples: **:information_source: Key things to take note of:**
      -* `TAG must be an exact match for it to be recognised. +* `TAG` must be an exact match for it to be recognised.

      + * Specifically used for loading background image for Strategy Panel. */ - public CommandResult(String feedbackToUser, boolean showHelp, boolean exit, boolean isLoadImage) { + public CommandResult(String feedbackToUser, boolean showHelp, boolean exit, boolean isLoadImage, Image image) { this.feedbackToUser = requireNonNull(feedbackToUser); this.showHelp = showHelp; this.isLoadImage = isLoadImage; + this.image = image; this.exit = exit; } @@ -35,7 +52,7 @@ public CommandResult(String feedbackToUser, boolean showHelp, boolean exit, bool * and isLoadImage set to false. */ public CommandResult(String feedbackToUser, boolean showHelp, boolean exit) { - this(feedbackToUser, showHelp, exit, false); + this(feedbackToUser, showHelp, exit, false, null); } /** @@ -58,10 +75,14 @@ public boolean isExit() { return exit; } - public boolean isLoadImage() { + public boolean isLoadImageCommand() { return isLoadImage; } + public Image getBackgroundImage() { + return image; + } + @Override public boolean equals(Object other) { diff --git a/src/main/java/seedu/address/logic/commands/LoadCourtCommand.java b/src/main/java/seedu/address/logic/commands/LoadCourtCommand.java index 0bb3d323ae8..fcee51e4908 100644 --- a/src/main/java/seedu/address/logic/commands/LoadCourtCommand.java +++ b/src/main/java/seedu/address/logic/commands/LoadCourtCommand.java @@ -36,9 +36,8 @@ public LoadCourtCommand(Image image) { @Override public CommandResult execute(Model model) throws CommandException { requireAllNonNull(model); - model.replaceBackgroundImage(image); - return new CommandResult(generateSuccessMessage(image), false, false, true); + return new CommandResult(generateSuccessMessage(image), false, false, true, this.image); } /** diff --git a/src/main/java/seedu/address/model/Model.java b/src/main/java/seedu/address/model/Model.java index d9b23fc2c29..15602927206 100644 --- a/src/main/java/seedu/address/model/Model.java +++ b/src/main/java/seedu/address/model/Model.java @@ -171,12 +171,6 @@ public interface Model { */ void addPlayer(String player); - /** - * Replaces the image contained in StrategyBoard with this image. - * {@code image} must be a valid image. - */ - void replaceBackgroundImage(Image image); - /** Returns an unmodifiable view of the filtered player list */ ObservableList getFilteredPlayerList(); diff --git a/src/main/java/seedu/address/model/ModelManager.java b/src/main/java/seedu/address/model/ModelManager.java index d54b6e3b466..346b3197eb5 100644 --- a/src/main/java/seedu/address/model/ModelManager.java +++ b/src/main/java/seedu/address/model/ModelManager.java @@ -11,7 +11,6 @@ import javafx.collections.transformation.FilteredList; import seedu.address.commons.core.GuiSettings; import seedu.address.commons.core.LogsCenter; -import seedu.address.model.image.Image; import seedu.address.model.person.Person; import seedu.address.model.task.Task; @@ -242,11 +241,6 @@ public void addPlayer(String player) { updateFilteredPlayerList(PREDICATE_SHOW_ALL_PLAYERS); } - @Override - public void replaceBackgroundImage(Image image) { - strategyBoard.replaceImage(image); - } - /* @Override public void setPlayer(String target, editedTask) { diff --git a/src/main/java/seedu/address/model/ReadOnlyStrategyBoard.java b/src/main/java/seedu/address/model/ReadOnlyStrategyBoard.java index 466d5be40c4..7b37797c9fd 100644 --- a/src/main/java/seedu/address/model/ReadOnlyStrategyBoard.java +++ b/src/main/java/seedu/address/model/ReadOnlyStrategyBoard.java @@ -12,9 +12,4 @@ public interface ReadOnlyStrategyBoard { * This list will not contain any duplicate players. */ ObservableList getPlayerList(); - - /** - * Returns the background image of the Strategy Board. - */ - Image getImage(); } diff --git a/src/main/java/seedu/address/model/StrategyBoard.java b/src/main/java/seedu/address/model/StrategyBoard.java index ca73950172d..842fd15aef2 100644 --- a/src/main/java/seedu/address/model/StrategyBoard.java +++ b/src/main/java/seedu/address/model/StrategyBoard.java @@ -5,7 +5,6 @@ import java.util.List; import javafx.collections.ObservableList; -import seedu.address.model.image.Image; import seedu.address.model.strategy.UniquePlayerList; /** @@ -14,7 +13,6 @@ */ public class StrategyBoard implements ReadOnlyStrategyBoard { private final UniquePlayerList players; - private Image backgroundImage; /* * The 'unusual' code block below is a non-static initialization block, sometimes used to avoid duplication * between constructors. See https://docs.oracle.com/javase/tutorial/java/javaOO/initial.html @@ -45,20 +43,6 @@ public void setPlayers(List players) { this.players.setPlayers(players); } - /** - * Replaces the contents of {@code backgroundImage} with {@code image}. - */ - public void replaceImage(Image image) { - this.backgroundImage = image; - } - - /** - * Returns the contents of {@code backgroundImage}. - */ - public Image getImage() { - return this.backgroundImage; - } - /** * Resets the existing data of this {@code StrategyBoard} with {@code newData}. */ diff --git a/src/main/java/seedu/address/ui/MainWindow.java b/src/main/java/seedu/address/ui/MainWindow.java index 7978618b739..60a94cca80c 100644 --- a/src/main/java/seedu/address/ui/MainWindow.java +++ b/src/main/java/seedu/address/ui/MainWindow.java @@ -17,6 +17,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.image.Image; /** * The Main Window. Provides the basic application layout containing @@ -176,8 +177,8 @@ private void handleExit() { primaryStage.hide(); } - private void handleLoadImage() { - strategyPanel.changeImageBackground(logic.getBackgroundImage().getImagePath()); + private void handleLoadImage(Image image) { + strategyPanel.changeImageBackground(image.getImagePath()); } public PersonListPanel getPersonListPanel() { @@ -203,8 +204,8 @@ private CommandResult executeCommand(String commandText) throws CommandException handleExit(); } - if (commandResult.isLoadImage()) { - handleLoadImage(); + if (commandResult.isLoadImageCommand()) { + handleLoadImage(commandResult.getBackgroundImage()); } return commandResult; From 307ad4d73b91f82d9cd3fa52a7bea4741168cb6c Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Thu, 24 Mar 2022 11:25:44 +0800 Subject: [PATCH 202/455] Undo merge of Rye-Catcher's PR --- src/main/java/seedu/address/MainApp.java | 8 +- src/main/java/seedu/address/logic/Logic.java | 3 - .../seedu/address/logic/LogicManager.java | 5 - .../commands/strategy/AddPlayerCommand.java | 65 ---- .../strategy/DeletePlayerCommand.java | 64 ---- .../logic/parser/AddressBookParser.java | 10 - .../strategy/AddPlayerCommandParser.java | 28 -- .../strategy/DeletePlayerCommandParser.java | 28 -- src/main/java/seedu/address/model/Model.java | 35 -- .../seedu/address/model/ModelManager.java | 68 +--- .../address/model/ReadOnlyStrategyBoard.java | 1 - .../seedu/address/model/StrategyBoard.java | 104 ------ .../model/strategy/UniquePlayerList.java | 110 ------ .../exceptions/DuplicatePlayerException.java | 10 - .../exceptions/PlayerNotFoundException.java | 7 - .../java/seedu/address/ui/MainWindow.java | 2 +- .../java/seedu/address/ui/StrategyPanel.java | 110 ++---- src/main/resources/view/StrategyPanel.fxml | 6 +- .../seedu/address/logic/LogicManagerTest.java | 3 +- .../commands/AddCommandIntegrationTest.java | 5 +- .../logic/commands/AddCommandTest.java | 36 -- .../logic/commands/AddMiscCommandTest.java | 5 +- .../commands/AddStrengthCommandTest.java | 5 +- .../logic/commands/AddTagCommandTest.java | 5 +- .../logic/commands/AddTaskCommandTest.java | 315 +++++------------- .../commands/AddWeaknessCommandTest.java | 5 +- .../logic/commands/ClearCommandTest.java | 7 +- .../logic/commands/DeleteCommandTest.java | 8 +- .../logic/commands/DeleteMiscCommandTest.java | 6 +- .../commands/DeleteStrengthCommandTest.java | 6 +- .../logic/commands/DeleteTagCommandTest.java | 5 +- .../logic/commands/DeleteTaskCommandTest.java | 6 +- .../commands/DeleteWeaknessCommandTest.java | 6 +- .../logic/commands/EditCommandTest.java | 12 +- .../logic/commands/FindCommandTest.java | 7 +- .../logic/commands/ListCommandTest.java | 6 +- .../seedu/address/model/ModelManagerTest.java | 15 +- 37 files changed, 151 insertions(+), 976 deletions(-) delete mode 100644 src/main/java/seedu/address/logic/commands/strategy/AddPlayerCommand.java delete mode 100644 src/main/java/seedu/address/logic/commands/strategy/DeletePlayerCommand.java delete mode 100644 src/main/java/seedu/address/logic/parser/strategy/AddPlayerCommandParser.java delete mode 100644 src/main/java/seedu/address/logic/parser/strategy/DeletePlayerCommandParser.java delete mode 100644 src/main/java/seedu/address/model/StrategyBoard.java delete mode 100644 src/main/java/seedu/address/model/strategy/UniquePlayerList.java delete mode 100644 src/main/java/seedu/address/model/strategy/exceptions/DuplicatePlayerException.java delete mode 100644 src/main/java/seedu/address/model/strategy/exceptions/PlayerNotFoundException.java diff --git a/src/main/java/seedu/address/MainApp.java b/src/main/java/seedu/address/MainApp.java index e14477b6260..dedacfe98f9 100644 --- a/src/main/java/seedu/address/MainApp.java +++ b/src/main/java/seedu/address/MainApp.java @@ -22,7 +22,6 @@ import seedu.address.model.ReadOnlyAddressBook; import seedu.address.model.ReadOnlyTaskBook; import seedu.address.model.ReadOnlyUserPrefs; -import seedu.address.model.StrategyBoard; import seedu.address.model.TaskBook; import seedu.address.model.UserPrefs; import seedu.address.model.image.Image; @@ -113,12 +112,7 @@ private Model initModelManager(Storage storage, ReadOnlyUserPrefs userPrefs) { initialTaskData = new TaskBook(); } - File courtsDirectory = new File(Image.FILE_PATH); - if (!courtsDirectory.exists()) { - logger.warning("Courts directory not found. Will create an empty directory."); - courtsDirectory.mkdir(); - } - return new ModelManager(initialAddressData, initialTaskData, new StrategyBoard(), userPrefs); + return new ModelManager(initialAddressData, initialTaskData, userPrefs); } private void initLogging(Config config) { diff --git a/src/main/java/seedu/address/logic/Logic.java b/src/main/java/seedu/address/logic/Logic.java index de41dc85c7e..b264d649764 100644 --- a/src/main/java/seedu/address/logic/Logic.java +++ b/src/main/java/seedu/address/logic/Logic.java @@ -38,9 +38,6 @@ public interface Logic { /** Returns an unmodifiable view of the filtered list of tasks */ ObservableList getFilteredTaskList(); - /** Returns an unmodifiable view of the filtered list of players */ - ObservableList getFilteredPlayerList(); - /** * Returns the user prefs' address book file path. */ diff --git a/src/main/java/seedu/address/logic/LogicManager.java b/src/main/java/seedu/address/logic/LogicManager.java index e5f17d430a0..fac02e54b07 100644 --- a/src/main/java/seedu/address/logic/LogicManager.java +++ b/src/main/java/seedu/address/logic/LogicManager.java @@ -71,11 +71,6 @@ public ObservableList getFilteredTaskList() { return model.getFilteredTaskList(); } - @Override - public ObservableList getFilteredPlayerList() { - return model.getFilteredPlayerList(); - } - @Override public Path getAddressBookFilePath() { return model.getAddressBookFilePath(); diff --git a/src/main/java/seedu/address/logic/commands/strategy/AddPlayerCommand.java b/src/main/java/seedu/address/logic/commands/strategy/AddPlayerCommand.java deleted file mode 100644 index 5139aac8904..00000000000 --- a/src/main/java/seedu/address/logic/commands/strategy/AddPlayerCommand.java +++ /dev/null @@ -1,65 +0,0 @@ -package seedu.address.logic.commands.strategy; - -import static java.util.Objects.requireNonNull; -import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; - -import seedu.address.logic.commands.Command; -import seedu.address.logic.commands.CommandResult; -import seedu.address.logic.commands.exceptions.CommandException; -import seedu.address.model.Model; - -/** - * Adds a player in the strategy panel - */ -public class AddPlayerCommand extends Command { - public static final String COMMAND_WORD = "add-player"; - - public static final String MESSAGE_USAGE = COMMAND_WORD - + ": Add a player in the strategy panel. " - + "Parameters: " - + "PLAYER_NAME (must be non-empty and not more than 50 characters)\n" - + "Example: " + COMMAND_WORD + " " - + "Lionel Messi"; - - public static final String MESSAGE_NOT_IMPLEMENTED_YET = - "AddPlayer command not implemented yet"; - - public static final String MESSAGE_SUCCESS = "New player added: %1$s"; - public static final String MESSAGE_DUPLICATE_PLAYER = "This player already exists in the PlayerList"; - - - private final String playerName; - - /** - * @param playerName the name of the player to be added - */ - public AddPlayerCommand(String playerName) { - requireAllNonNull(playerName); - this.playerName = playerName; - } - - @Override - public CommandResult execute(Model model) throws CommandException { - if (playerName.replace("/s", "").isEmpty()) { - throw new CommandException( - String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddPlayerCommand.MESSAGE_USAGE)); - } - requireNonNull(model); - - if (model.hasPlayer(playerName)) { - throw new CommandException(MESSAGE_DUPLICATE_PLAYER); - } - - model.addPlayer(playerName); - return new CommandResult(String.format(MESSAGE_SUCCESS, playerName)); - } - - - @Override - public boolean equals(Object other) { - return other == this // short circuit if same object - || (other instanceof AddPlayerCommand // instanceof handles nulls - && (playerName.equals(((AddPlayerCommand) other).playerName))); - } -} diff --git a/src/main/java/seedu/address/logic/commands/strategy/DeletePlayerCommand.java b/src/main/java/seedu/address/logic/commands/strategy/DeletePlayerCommand.java deleted file mode 100644 index fd3d677fd1c..00000000000 --- a/src/main/java/seedu/address/logic/commands/strategy/DeletePlayerCommand.java +++ /dev/null @@ -1,64 +0,0 @@ -package seedu.address.logic.commands.strategy; - -import static java.util.Objects.requireNonNull; -import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; - -import seedu.address.logic.commands.Command; -import seedu.address.logic.commands.CommandResult; -import seedu.address.logic.commands.exceptions.CommandException; -import seedu.address.model.Model; - -/** - * Deletes a player in the strategy panel - */ -public class DeletePlayerCommand extends Command { - public static final String COMMAND_WORD = "del-player"; - - public static final String MESSAGE_USAGE = COMMAND_WORD - + ": Delete a player in the strategy panel. " - + "Parameters: " - + "PLAYER_NAME (must be non-empty and not more than 50 characters)\n" - + "Example: " + COMMAND_WORD + " " - + "Lionel Messi"; - - public static final String MESSAGE_NOT_IMPLEMENTED_YET = - "DeletePlayer command not implemented yet"; - - public static final String MESSAGE_SUCCESS = "Player deleted: %1$s"; - public static final String MESSAGE_PLAYER_NOT_FOUND = "Player not found in the list: %1$s"; - - private final String playerName; - - /** - * @param playerName the name of the player to be added - */ - public DeletePlayerCommand(String playerName) { - requireAllNonNull(playerName); - this.playerName = playerName; - } - - @Override - public CommandResult execute(Model model) throws CommandException { - if (playerName.replace("/s", "").isEmpty()) { - throw new CommandException( - String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddPlayerCommand.MESSAGE_USAGE)); - } - - if (!model.hasPlayer(playerName)) { - throw new CommandException( - String.format(MESSAGE_PLAYER_NOT_FOUND, playerName)); - } - requireNonNull(model); - model.deletePlayer(playerName); - return new CommandResult(String.format(MESSAGE_SUCCESS, playerName)); - } - - - @Override - public boolean equals(Object other) { - return other == this // short circuit if same object - || (other instanceof DeletePlayerCommand // instanceof handles nulls - && (playerName.equals(((DeletePlayerCommand) other).playerName))); - } -} diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index d66491ff85e..d07250a8c18 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -27,8 +27,6 @@ import seedu.address.logic.commands.notecommands.DeleteMiscCommand; import seedu.address.logic.commands.notecommands.DeleteStrengthCommand; import seedu.address.logic.commands.notecommands.DeleteWeaknessCommand; -import seedu.address.logic.commands.strategy.AddPlayerCommand; -import seedu.address.logic.commands.strategy.DeletePlayerCommand; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.logic.parser.notecommandparsers.AddMiscCommandParser; import seedu.address.logic.parser.notecommandparsers.AddStrengthCommandParser; @@ -36,8 +34,6 @@ import seedu.address.logic.parser.notecommandparsers.DeleteMiscCommandParser; import seedu.address.logic.parser.notecommandparsers.DeleteStrengthCommandParser; import seedu.address.logic.parser.notecommandparsers.DeleteWeaknessCommandParser; -import seedu.address.logic.parser.strategy.AddPlayerCommandParser; -import seedu.address.logic.parser.strategy.DeletePlayerCommandParser; /** * Parses user input. @@ -126,12 +122,6 @@ public Command parseCommand(String userInput) throws ParseException { case LoadCourtCommand.COMMAND_WORD: return new LoadCourtCommandParser().parse(arguments); - case AddPlayerCommand.COMMAND_WORD: - return new AddPlayerCommandParser().parse(arguments); - - case DeletePlayerCommand.COMMAND_WORD: - return new DeletePlayerCommandParser().parse(arguments); - default: throw new ParseException(MESSAGE_UNKNOWN_COMMAND); } diff --git a/src/main/java/seedu/address/logic/parser/strategy/AddPlayerCommandParser.java b/src/main/java/seedu/address/logic/parser/strategy/AddPlayerCommandParser.java deleted file mode 100644 index 16177ca7c38..00000000000 --- a/src/main/java/seedu/address/logic/parser/strategy/AddPlayerCommandParser.java +++ /dev/null @@ -1,28 +0,0 @@ -package seedu.address.logic.parser.strategy; - -import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; - -import seedu.address.logic.commands.strategy.AddPlayerCommand; -import seedu.address.logic.parser.Parser; -import seedu.address.logic.parser.exceptions.ParseException; - -/** - * Parses input arguments and creates a new AddPlayerCommand object - */ - -public class AddPlayerCommandParser implements Parser { - /** - * Parses the given {@code String} of arguments in the context of the {@code AddPlayerCommand} - * and returns an {@code AddPlayerCommand} object for execution. - * @throws ParseException if the user input does not conform the expected format - */ - public AddPlayerCommand parse(String args) throws ParseException { - try { - String[] splitArgs = args.trim().split("\\s+", 1); - return new AddPlayerCommand(splitArgs[0]); - } catch (IndexOutOfBoundsException pe) { - throw new ParseException( - String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddPlayerCommand.MESSAGE_USAGE), pe); - } - } -} diff --git a/src/main/java/seedu/address/logic/parser/strategy/DeletePlayerCommandParser.java b/src/main/java/seedu/address/logic/parser/strategy/DeletePlayerCommandParser.java deleted file mode 100644 index a3748c29871..00000000000 --- a/src/main/java/seedu/address/logic/parser/strategy/DeletePlayerCommandParser.java +++ /dev/null @@ -1,28 +0,0 @@ -package seedu.address.logic.parser.strategy; - -import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; - -import seedu.address.logic.commands.strategy.DeletePlayerCommand; -import seedu.address.logic.parser.Parser; -import seedu.address.logic.parser.exceptions.ParseException; - -/** - * Parses input arguments and creates a new DeletePlayerCommand object - */ - -public class DeletePlayerCommandParser implements Parser { - /** - * Parses the given {@code String} of arguments in the context of the {@code DeletePlayerCommand} - * and returns an {@code DELETEPlayerCommand} object for execution. - * @throws ParseException if the user input does not conform the expected format - */ - public DeletePlayerCommand parse(String args) throws ParseException { - try { - String[] splitArgs = args.trim().split("\\s+", 1); - return new DeletePlayerCommand(splitArgs[0]); - } catch (IndexOutOfBoundsException pe) { - throw new ParseException( - String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeletePlayerCommand.MESSAGE_USAGE), pe); - } - } -} diff --git a/src/main/java/seedu/address/model/Model.java b/src/main/java/seedu/address/model/Model.java index 15602927206..66f42d7ab3c 100644 --- a/src/main/java/seedu/address/model/Model.java +++ b/src/main/java/seedu/address/model/Model.java @@ -16,7 +16,6 @@ public interface Model { /** {@code Predicate} that always evaluate to true */ Predicate PREDICATE_SHOW_ALL_PERSONS = unused -> true; Predicate PREDICATE_SHOW_ALL_TASKS = unused -> true; - Predicate PREDICATE_SHOW_ALL_PLAYERS = unused -> true; /** * Replaces user prefs data with the data in {@code userPrefs}. @@ -145,38 +144,4 @@ public interface Model { * @throws NullPointerException if {@code predicate} is null. */ void updateFilteredTaskList(Predicate predicate); - - /** - * Replaces strategy board data with the data in {@code strategy board}. - */ - void setStrategyBoard(ReadOnlyStrategyBoard strategyBoard); - - /** Returns the Strategy Board. **/ - ReadOnlyStrategyBoard getStrategyBoard(); - - /** - * Returns true if a player with the same identity as {@code player} exists in the strategy board. - */ - boolean hasPlayer(String player); - - /** - * Deletes the given player. - * The task must exist in the strategy board. - */ - void deletePlayer(String target); - - /** - * Adds the given player. - * {@code player} must not already exist in the strategy board. - */ - void addPlayer(String player); - - /** Returns an unmodifiable view of the filtered player list */ - ObservableList getFilteredPlayerList(); - - /** - * Updates the filter of the filtered player list to filter by the given {@code predicate}. - * @throws NullPointerException if {@code predicate} is null. - */ - void updateFilteredPlayerList(Predicate predicate); } diff --git a/src/main/java/seedu/address/model/ModelManager.java b/src/main/java/seedu/address/model/ModelManager.java index 346b3197eb5..7c29b8783e0 100644 --- a/src/main/java/seedu/address/model/ModelManager.java +++ b/src/main/java/seedu/address/model/ModelManager.java @@ -22,32 +22,27 @@ public class ModelManager implements Model { private final AddressBook addressBook; private final TaskBook taskBook; - private final StrategyBoard strategyBoard; private final UserPrefs userPrefs; private final FilteredList filteredPersons; private final FilteredList filteredTasks; - private final FilteredList filteredPlayers; /** * Initializes a ModelManager with the given addressBook and userPrefs. */ - public ModelManager(ReadOnlyAddressBook addressBook, ReadOnlyTaskBook taskBook, - ReadOnlyStrategyBoard strategyBoard, ReadOnlyUserPrefs userPrefs) { + public ModelManager(ReadOnlyAddressBook addressBook, ReadOnlyTaskBook taskBook, ReadOnlyUserPrefs userPrefs) { requireAllNonNull(addressBook, taskBook, userPrefs); logger.fine("Initializing with address book: " + addressBook + " and user prefs " + userPrefs); this.addressBook = new AddressBook(addressBook); this.taskBook = new TaskBook(taskBook); - this.strategyBoard = new StrategyBoard(strategyBoard); this.userPrefs = new UserPrefs(userPrefs); filteredPersons = new FilteredList<>(this.addressBook.getPersonList()); filteredTasks = new FilteredList<>(this.taskBook.getTaskList()); - filteredPlayers = new FilteredList<>(this.strategyBoard.getPlayerList()); } public ModelManager() { - this(new AddressBook(), new TaskBook(), new StrategyBoard(), new UserPrefs()); + this(new AddressBook(), new TaskBook(), new UserPrefs()); } //=========== UserPrefs ================================================================================== @@ -212,61 +207,6 @@ public void updateFilteredTaskList(Predicate predicate) { filteredTasks.setPredicate(predicate); } - //=========== Strategy Board ================================================================================ - - @Override - public void setStrategyBoard(ReadOnlyStrategyBoard strategyBoard) { - this.strategyBoard.resetData(strategyBoard); - } - - @Override - public ReadOnlyStrategyBoard getStrategyBoard() { - return strategyBoard; - } - - @Override - public boolean hasPlayer(String player) { - requireNonNull(player); - return strategyBoard.hasPlayer(player); - } - - @Override - public void deletePlayer(String target) { - strategyBoard.removePlayer(target); - } - - @Override - public void addPlayer(String player) { - strategyBoard.addPlayer(player); - updateFilteredPlayerList(PREDICATE_SHOW_ALL_PLAYERS); - } - - /* - @Override - public void setPlayer(String target, editedTask) { - requireAllNonNull(target, editedTask); - - taskBook.setTask(target, editedTask); - } - */ - - //=========== Filtered Player List Accessors ============================================================= - - /** - * Returns an unmodifiable view of the list of {@code Player} backed by the internal list of - * {@code versionedStrategyBoard} - */ - @Override - public ObservableList getFilteredPlayerList() { - return filteredPlayers; - } - - @Override - public void updateFilteredPlayerList(Predicate predicate) { - requireNonNull(predicate); - filteredPlayers.setPredicate(predicate); - } - @Override public boolean equals(Object obj) { // short circuit if same object @@ -285,9 +225,7 @@ public boolean equals(Object obj) { && userPrefs.equals(other.userPrefs) && filteredPersons.equals(other.filteredPersons) && taskBook.equals(other.taskBook) - && filteredTasks.equals(other.filteredTasks) - && strategyBoard.equals(other.strategyBoard) - && filteredPlayers.equals(other.filteredPlayers); + && filteredTasks.equals(other.filteredTasks); } } diff --git a/src/main/java/seedu/address/model/ReadOnlyStrategyBoard.java b/src/main/java/seedu/address/model/ReadOnlyStrategyBoard.java index 7b37797c9fd..03106c09784 100644 --- a/src/main/java/seedu/address/model/ReadOnlyStrategyBoard.java +++ b/src/main/java/seedu/address/model/ReadOnlyStrategyBoard.java @@ -1,7 +1,6 @@ package seedu.address.model; import javafx.collections.ObservableList; -import seedu.address.model.image.Image; /** * Unmodifiable view of a strategy board diff --git a/src/main/java/seedu/address/model/StrategyBoard.java b/src/main/java/seedu/address/model/StrategyBoard.java deleted file mode 100644 index 842fd15aef2..00000000000 --- a/src/main/java/seedu/address/model/StrategyBoard.java +++ /dev/null @@ -1,104 +0,0 @@ -package seedu.address.model; - -import static java.util.Objects.requireNonNull; - -import java.util.List; - -import javafx.collections.ObservableList; -import seedu.address.model.strategy.UniquePlayerList; - -/** - * Wraps all data at the strategy-board level - * Duplicates are not allowed (by .equals comparison) - */ -public class StrategyBoard implements ReadOnlyStrategyBoard { - private final UniquePlayerList players; - /* - * The 'unusual' code block below is a non-static initialization block, sometimes used to avoid duplication - * between constructors. See https://docs.oracle.com/javase/tutorial/java/javaOO/initial.html - * - * Note that non-static init blocks are not recommended to use. There are other ways to avoid duplication - * among constructors. - */ - { - players = new UniquePlayerList(); - } - - public StrategyBoard() {} - - /** - * Creates an StrategyBoard using the Players in the {@code toBeCopied} - */ - public StrategyBoard(ReadOnlyStrategyBoard toBeCopied) { - this(); - resetData(toBeCopied); - } - - //// list overwrite operations - - /** - * Replaces the contents of the player list with {@code players}. - */ - public void setPlayers(List players) { - this.players.setPlayers(players); - } - - /** - * Resets the existing data of this {@code StrategyBoard} with {@code newData}. - */ - public void resetData(ReadOnlyStrategyBoard newData) { - requireNonNull(newData); - - setPlayers(newData.getPlayerList()); - } - - //// player-level operations - - /** - * Returns true if a player with the same identity as {@code player} exists in the address book. - */ - public boolean hasPlayer(String player) { - requireNonNull(player); - return players.contains(player); - } - - /** - * Adds a player to the Strategy Board. - * The player must not already exist in the strategy board. - */ - public void addPlayer(String t) { - players.add(t); - } - - /** - * Removes {@code key} from this {@code StrategyBoard}. - * {@code key} must exist in the strategy board. - */ - public void removePlayer(String key) { - players.remove(key); - } - - //// util methods - - @Override - public String toString() { - return players.asUnmodifiableObservableList().size() + " players"; - } - - @Override - public ObservableList getPlayerList() { - return players.asUnmodifiableObservableList(); - } - - @Override - public boolean equals(Object other) { - return other == this // short circuit if same object - || (other instanceof StrategyBoard // instanceof handles nulls - && players.equals(((StrategyBoard) other).players)); - } - - @Override - public int hashCode() { - return players.hashCode(); - } -} diff --git a/src/main/java/seedu/address/model/strategy/UniquePlayerList.java b/src/main/java/seedu/address/model/strategy/UniquePlayerList.java deleted file mode 100644 index 8e278bf25e0..00000000000 --- a/src/main/java/seedu/address/model/strategy/UniquePlayerList.java +++ /dev/null @@ -1,110 +0,0 @@ -package seedu.address.model.strategy; - -import static java.util.Objects.requireNonNull; -import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; - -import java.util.Iterator; -import java.util.List; - -import javafx.collections.FXCollections; -import javafx.collections.ObservableList; -import seedu.address.model.strategy.exceptions.DuplicatePlayerException; -import seedu.address.model.strategy.exceptions.PlayerNotFoundException; - -/** - * A list of players that enforces uniqueness between its elements and does not allow nulls. - * - * Supports a minimal set of list operations. - */ -public class UniquePlayerList implements Iterable { - private final ObservableList internalList = FXCollections.observableArrayList(); - private final ObservableList internalUnmodifiableList = - FXCollections.unmodifiableObservableList(internalList); - - /** - * Returns true if the list contains an equivalent player as the given argument. - */ - public boolean contains(String toCheck) { - requireNonNull(toCheck); - return internalList.stream().anyMatch(toCheck::equals); - } - - /** - * Adds a player to the list. - * The player must not already exist in the list. - */ - public void add(String toAdd) { - requireNonNull(toAdd); - if (contains(toAdd)) { - throw new DuplicatePlayerException(); - } - internalList.add(toAdd); - } - - /** - * Removes the equivalent player from the list. - * The player must exist in the list. - */ - public void remove(String toRemove) { - requireNonNull(toRemove); - if (!internalList.remove(toRemove)) { - throw new PlayerNotFoundException(); - } - } - - public void setPlayers(UniquePlayerList replacement) { - requireNonNull(replacement); - internalList.setAll(replacement.internalList); - } - - /** - * Replaces the contents of this list with {@code players}. - * {@code players} must not contain duplicate players. - */ - public void setPlayers(List players) { - requireAllNonNull(players); - if (!playersAreUnique(players)) { - throw new DuplicatePlayerException(); - } - - internalList.setAll(players); - } - - /** - * Returns the backing list as an unmodifiable {@code ObservableList}. - */ - public ObservableList asUnmodifiableObservableList() { - return internalUnmodifiableList; - } - - @Override - public Iterator iterator() { - return internalList.iterator(); - } - - @Override - public boolean equals(Object other) { - return other == this // short circuit if same object - || (other instanceof UniquePlayerList // instanceof handles nulls - && internalList.equals(((UniquePlayerList) other).internalList)); - } - - @Override - public int hashCode() { - return internalList.hashCode(); - } - - /** - * Returns true if {@code players} contains only unique players. - */ - private boolean playersAreUnique(List players) { - for (int i = 0; i < players.size() - 1; i++) { - for (int j = i + 1; j < players.size(); j++) { - if (players.get(i).equals(players.get(j))) { - return false; - } - } - } - return true; - } -} diff --git a/src/main/java/seedu/address/model/strategy/exceptions/DuplicatePlayerException.java b/src/main/java/seedu/address/model/strategy/exceptions/DuplicatePlayerException.java deleted file mode 100644 index fd7aa695560..00000000000 --- a/src/main/java/seedu/address/model/strategy/exceptions/DuplicatePlayerException.java +++ /dev/null @@ -1,10 +0,0 @@ -package seedu.address.model.strategy.exceptions; - -/** - * Indicates that the operation will result in duplicate Players - */ -public class DuplicatePlayerException extends RuntimeException { - public DuplicatePlayerException() { - super("Operation would result in duplicate persons"); - } -} diff --git a/src/main/java/seedu/address/model/strategy/exceptions/PlayerNotFoundException.java b/src/main/java/seedu/address/model/strategy/exceptions/PlayerNotFoundException.java deleted file mode 100644 index 55a9a605f51..00000000000 --- a/src/main/java/seedu/address/model/strategy/exceptions/PlayerNotFoundException.java +++ /dev/null @@ -1,7 +0,0 @@ -package seedu.address.model.strategy.exceptions; - -/** - * Signals that the operation is unable to find the specified player. - */ -public class PlayerNotFoundException extends RuntimeException { -} diff --git a/src/main/java/seedu/address/ui/MainWindow.java b/src/main/java/seedu/address/ui/MainWindow.java index 60a94cca80c..47dab61b38d 100644 --- a/src/main/java/seedu/address/ui/MainWindow.java +++ b/src/main/java/seedu/address/ui/MainWindow.java @@ -124,7 +124,7 @@ void fillInnerParts() { personListPanelPlaceholder.getChildren().add(personListPanel.getRoot()); taskListPanel = new TaskListPanel(logic.getFilteredTaskList()); taskListPanelPlaceholder.getChildren().add(taskListPanel.getRoot()); - strategyPanel = new StrategyPanel(logic.getFilteredPlayerList()); + strategyPanel = new StrategyPanel(); strategyPanelPlaceholder.getChildren().add(strategyPanel.getRoot()); resultDisplay = new ResultDisplay(); diff --git a/src/main/java/seedu/address/ui/StrategyPanel.java b/src/main/java/seedu/address/ui/StrategyPanel.java index 1b7b58a85aa..5ce498ccf8f 100644 --- a/src/main/java/seedu/address/ui/StrategyPanel.java +++ b/src/main/java/seedu/address/ui/StrategyPanel.java @@ -2,123 +2,77 @@ import java.io.File; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.logging.Logger; - -import javafx.collections.ListChangeListener; -import javafx.collections.ObservableList; import javafx.event.EventHandler; import javafx.fxml.FXML; -import javafx.geometry.VPos; import javafx.scene.Cursor; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.input.MouseEvent; import javafx.scene.layout.AnchorPane; -import javafx.scene.layout.Pane; import javafx.scene.layout.Region; -import javafx.scene.layout.StackPane; import javafx.scene.paint.Color; import javafx.scene.paint.Paint; import javafx.scene.shape.Circle; -import javafx.scene.text.Font; -import javafx.scene.text.Text; -import seedu.address.MainApp; -import seedu.address.commons.core.LogsCenter; public class StrategyPanel extends UiPart { private static final String FXML = "StrategyPanel.fxml"; - private static final Logger logger = LogsCenter.getLogger(MainApp.class); - private static final Map table = new HashMap<>(); private static double orgSceneX; private static double orgSceneY; - private static double orgCenterX; - private static double orgCenterY; + private static double orgTranslateX; + private static double orgTranslateY; @FXML private ImageView strategyImage; @FXML private AnchorPane strategyAnchorPane; @FXML - private Pane playerView; + private Circle player1; + @FXML + private Circle player2; + @FXML + private Circle player3; // Credit to http://java-buddy.blogspot.com/2013/07/move-node-to-front.html - private final EventHandler pressHandler = + private EventHandler pressHandler = new EventHandler() { @Override public void handle(MouseEvent t) { orgSceneX = t.getSceneX(); orgSceneY = t.getSceneY(); - orgCenterX = ((StackPane) (t.getSource())).getLayoutX(); - orgCenterY = ((StackPane) (t.getSource())).getLayoutY(); - //logger.log(Level.INFO, "orgCenterX: {0}", new Object[]{orgCenterX}); - //logger.log(Level.INFO, "orgCenterY: {0}", new Object[]{orgCenterY}); + orgTranslateX = ((Circle) (t.getSource())).getTranslateX(); + orgTranslateY = ((Circle) (t.getSource())).getTranslateY(); } }; // Credit to http://java-buddy.blogspot.com/2013/07/move-node-to-front.html - private final EventHandler dragHandler = + private EventHandler dragHandler = new EventHandler() { @Override public void handle(MouseEvent t) { double offsetX = t.getSceneX() - orgSceneX; double offsetY = t.getSceneY() - orgSceneY; - double newCenterX = orgCenterX + offsetX; - double newCenterY = orgCenterY + offsetY; - StackPane tmp = (StackPane) (t.getSource()); - tmp.setLayoutX(newCenterX); - tmp.setLayoutY(newCenterY); - //logger.log(Level.INFO, "newCenterX: {0} new CenterY: {1}", - // new Object[]{offsetX + orgCenterX, offsetY + orgCenterY}); - //logger.log(Level.INFO, "newTrueX: {0} new TrueY: {1}", - // new Object[]{tmp.getCenterX(), tmp.getCenterY()}); + double newTranslateX = orgTranslateX + offsetX; + double newTranslateY = orgTranslateY + offsetY; + Circle tmp = (Circle) (t.getSource()); + tmp.setTranslateX(newTranslateX); + tmp.setTranslateY(newTranslateY); } }; /** * Creates a {@code StrategyPanel} with draggable circles. */ - public StrategyPanel(ObservableList playerList) { + public StrategyPanel() { super(FXML); strategyImage.fitWidthProperty().bind(strategyAnchorPane.widthProperty()); strategyImage.fitHeightProperty().bind(strategyAnchorPane.heightProperty()); strategyImage.toBack(); - - playerList.addListener((ListChangeListener) change -> { - while (change.next()) { - if (change.wasAdded()) { - changeOnAdd(change.getAddedSubList()); - } else if (change.wasRemoved()) { - changeOnDelete(change.getRemoved()); - } - } - }); - } - - private void changeOnAdd(List addedSubList) { - for (String playerName : addedSubList) { - if (table.containsKey(playerName)) { - continue; - } - StackPane stack = new StackPane(); - initStack(stack, playerName, 100, 100, 50, Color.BLUE); - playerView.getChildren().add(stack); - table.put(playerName, stack); - } - } - - private void changeOnDelete(List removeList) { - for (String playerName : removeList) { - if (table.containsKey(playerName)) { - playerView.getChildren().remove(table.get(playerName)); - table.remove(playerName); - } - } + initCircle(player1, 50, 100, 100, Color.RED); + initCircle(player2, 50, 200, 200, Color.LIGHTBLUE); + initCircle(player3, 30, 200, 200, Color.YELLOW); } /** @@ -135,27 +89,7 @@ private void initCircle(Circle circle, double rad, double x, double y, Paint col circle.setCenterX(x); circle.setCenterY(y); circle.setCursor(Cursor.HAND); - } - - private void initText(Text text, String value, double x, double y) { - text.setX(x); - text.setY(y); - text.setText(value); - text.setFont(Font.font("Arial", 24)); - double width = text.prefWidth(-1); - text.setX(250 - width / 2); - text.setTextOrigin(VPos.CENTER); - } - - private void initStack(StackPane stack, String name, double x, double y, double rad, Paint color) { - Text text = new Text(); - initText(text, name, x, y); - Circle cr = new Circle(); - initCircle(cr, rad, x, y, color); - text.xProperty().bind(cr.centerXProperty()); - text.yProperty().bind(cr.centerYProperty()); - stack.getChildren().addAll(cr, text); - stack.setOnMousePressed(pressHandler); - stack.setOnMouseDragged(dragHandler); + circle.setOnMousePressed(pressHandler); + circle.setOnMouseDragged(dragHandler); } } diff --git a/src/main/resources/view/StrategyPanel.fxml b/src/main/resources/view/StrategyPanel.fxml index a3206fb6d5b..491f8a19238 100644 --- a/src/main/resources/view/StrategyPanel.fxml +++ b/src/main/resources/view/StrategyPanel.fxml @@ -2,10 +2,12 @@ - + - + + + diff --git a/src/test/java/seedu/address/logic/LogicManagerTest.java b/src/test/java/seedu/address/logic/LogicManagerTest.java index f935f9b92f2..a3a371de142 100644 --- a/src/test/java/seedu/address/logic/LogicManagerTest.java +++ b/src/test/java/seedu/address/logic/LogicManagerTest.java @@ -25,7 +25,6 @@ import seedu.address.model.Model; import seedu.address.model.ModelManager; import seedu.address.model.ReadOnlyAddressBook; -import seedu.address.model.StrategyBoard; import seedu.address.model.TaskBook; import seedu.address.model.UserPrefs; import seedu.address.model.person.Person; @@ -137,7 +136,7 @@ private void assertCommandException(String inputCommand, String expectedMessage) private void assertCommandFailure(String inputCommand, Class expectedException, String expectedMessage) { Model expectedModel = new ModelManager(model.getAddressBook(), - new TaskBook(), new StrategyBoard(), new UserPrefs()); // Not fully implemented + new TaskBook(), new UserPrefs()); // Not fully implemented assertCommandFailure(inputCommand, expectedException, expectedMessage, expectedModel); } diff --git a/src/test/java/seedu/address/logic/commands/AddCommandIntegrationTest.java b/src/test/java/seedu/address/logic/commands/AddCommandIntegrationTest.java index 17ec89f93be..a622685c078 100644 --- a/src/test/java/seedu/address/logic/commands/AddCommandIntegrationTest.java +++ b/src/test/java/seedu/address/logic/commands/AddCommandIntegrationTest.java @@ -10,7 +10,6 @@ import seedu.address.model.Model; import seedu.address.model.ModelManager; -import seedu.address.model.StrategyBoard; import seedu.address.model.UserPrefs; import seedu.address.model.person.Person; import seedu.address.testutil.PersonBuilder; @@ -24,7 +23,7 @@ public class AddCommandIntegrationTest { @BeforeEach public void setUp() { - model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new StrategyBoard(), new UserPrefs()); + model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); } @Test @@ -32,7 +31,7 @@ public void execute_newPerson_success() { Person validPerson = new PersonBuilder().build(); Model expectedModel = new ModelManager(model.getAddressBook(), - model.getTaskBook(), new StrategyBoard(), new UserPrefs()); + model.getTaskBook(), new UserPrefs()); expectedModel.addPerson(validPerson); assertCommandSuccess(new AddCommand(validPerson), model, diff --git a/src/test/java/seedu/address/logic/commands/AddCommandTest.java b/src/test/java/seedu/address/logic/commands/AddCommandTest.java index 9ae70363b76..033c8be9103 100644 --- a/src/test/java/seedu/address/logic/commands/AddCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddCommandTest.java @@ -19,7 +19,6 @@ import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ReadOnlyAddressBook; -import seedu.address.model.ReadOnlyStrategyBoard; import seedu.address.model.ReadOnlyTaskBook; import seedu.address.model.ReadOnlyUserPrefs; import seedu.address.model.person.Person; @@ -210,41 +209,6 @@ public void updateFilteredTaskList(Predicate predicate) { throw new AssertionError("This method should not be called."); } - @Override - public void setStrategyBoard(ReadOnlyStrategyBoard strategyBoard) { - throw new AssertionError("This method should not be called."); - } - - @Override - public ReadOnlyStrategyBoard getStrategyBoard() { - throw new AssertionError("This method should not be called."); - } - - @Override - public boolean hasPlayer(String player) { - throw new AssertionError("This method should not be called."); - } - - @Override - public void deletePlayer(String target) { - throw new AssertionError("This method should not be called."); - } - - @Override - public void addPlayer(String player) { - throw new AssertionError("This method should not be called."); - } - - @Override - public ObservableList getFilteredPlayerList() { - throw new AssertionError("This method should not be called."); - } - - @Override - public void updateFilteredPlayerList(Predicate predicate) { - throw new AssertionError("This method should not be called."); - } - } /** diff --git a/src/test/java/seedu/address/logic/commands/AddMiscCommandTest.java b/src/test/java/seedu/address/logic/commands/AddMiscCommandTest.java index 4df993a1b7c..ae8e45851f6 100644 --- a/src/test/java/seedu/address/logic/commands/AddMiscCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddMiscCommandTest.java @@ -20,7 +20,6 @@ import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ModelManager; -import seedu.address.model.StrategyBoard; import seedu.address.model.TaskBook; import seedu.address.model.UserPrefs; import seedu.address.model.note.Note; @@ -32,8 +31,7 @@ public class AddMiscCommandTest { private static final String NOTE_STUB_1 = "Some note 1"; private static final String NOTE_STUB_2 = "Some note 2"; - private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), - new StrategyBoard(), new UserPrefs()); + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); @Test public void execute_addMiscUnfilteredList_success() { @@ -50,7 +48,6 @@ public void execute_addMiscUnfilteredList_success() { Model expectedModel = new ModelManager( new AddressBook(model.getAddressBook()), new TaskBook(model.getTaskBook()), - new StrategyBoard(), new UserPrefs()); expectedModel.setPerson(firstPerson, editedPerson); diff --git a/src/test/java/seedu/address/logic/commands/AddStrengthCommandTest.java b/src/test/java/seedu/address/logic/commands/AddStrengthCommandTest.java index 3b72fa3f2d5..1d118c177b5 100644 --- a/src/test/java/seedu/address/logic/commands/AddStrengthCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddStrengthCommandTest.java @@ -20,7 +20,6 @@ import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ModelManager; -import seedu.address.model.StrategyBoard; import seedu.address.model.TaskBook; import seedu.address.model.UserPrefs; import seedu.address.model.note.Note; @@ -32,8 +31,7 @@ public class AddStrengthCommandTest { private static final String NOTE_STUB_1 = "Some note 1"; private static final String NOTE_STUB_2 = "Some note 2"; - private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), - new StrategyBoard(), new UserPrefs()); + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); @Test public void execute_addStrengthUnfilteredList_success() { @@ -50,7 +48,6 @@ public void execute_addStrengthUnfilteredList_success() { Model expectedModel = new ModelManager( new AddressBook(model.getAddressBook()), new TaskBook(model.getTaskBook()), - new StrategyBoard(), new UserPrefs()); expectedModel.setPerson(firstPerson, editedPerson); diff --git a/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java b/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java index bba9345df04..2b47ea67110 100644 --- a/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java @@ -19,7 +19,6 @@ import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ModelManager; -import seedu.address.model.StrategyBoard; import seedu.address.model.TaskBook; import seedu.address.model.UserPrefs; import seedu.address.model.person.Person; @@ -32,8 +31,7 @@ class AddTagCommandTest { private static final String TAG1 = "TAG1"; // Test model - private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), - new StrategyBoard(), new UserPrefs()); + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); @Test void execute_addTagCommandUnfilteredList_success() { @@ -58,7 +56,6 @@ void execute_addTagCommandUnfilteredList_success() { Model expectedModel = new ModelManager( new AddressBook(model.getAddressBook()), new TaskBook(model.getTaskBook()), - new StrategyBoard(), new UserPrefs()); expectedModel.setPerson(firstPerson, editedPerson); diff --git a/src/test/java/seedu/address/logic/commands/AddTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/AddTaskCommandTest.java index ef9cf95890d..5a860219de4 100644 --- a/src/test/java/seedu/address/logic/commands/AddTaskCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddTaskCommandTest.java @@ -1,58 +1,118 @@ package seedu.address.logic.commands; -import static java.util.Objects.requireNonNull; -import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; import static seedu.address.testutil.Assert.assertThrows; - -import java.nio.file.Path; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.function.Predicate; +import static seedu.address.testutil.TypicalPersons.ALICE; +import static seedu.address.testutil.TypicalPersons.BENSON; +import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static seedu.address.testutil.TypicalTasks.FIRST_TASK; +import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; import org.junit.jupiter.api.Test; -import javafx.collections.ObservableList; -import seedu.address.commons.core.GuiSettings; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.AddressBook; import seedu.address.model.Model; -import seedu.address.model.ReadOnlyAddressBook; -import seedu.address.model.ReadOnlyStrategyBoard; -import seedu.address.model.ReadOnlyTaskBook; -import seedu.address.model.ReadOnlyUserPrefs; +import seedu.address.model.ModelManager; import seedu.address.model.TaskBook; -import seedu.address.model.person.Person; +import seedu.address.model.UserPrefs; import seedu.address.model.task.Task; import seedu.address.testutil.TaskBuilder; +/** + * Contains integration tests (interaction with the Model) and unit tests for AddTaskCommand. + */ public class AddTaskCommandTest { + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + @Test public void constructor_nullTask_throwsNullPointerException() { assertThrows(NullPointerException.class, () -> new AddTaskCommand(null)); } @Test - public void execute_taskAcceptedByModel_addSuccessful() throws Exception { - ModelStubAcceptingTaskAdded modelStub = new ModelStubAcceptingTaskAdded(); + public void execute_taskAcceptedByModel_success() throws Exception { + // empty persons list -> success Task validTask = new TaskBuilder().build(); - CommandResult commandResult = new AddTaskCommand(validTask).execute(modelStub); + AddTaskCommand addTaskCommand = new AddTaskCommand(validTask); + + String expectedMessage = String.format(AddTaskCommand.MESSAGE_SUCCESS, validTask); + + Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), + new TaskBook(model.getTaskBook()), new UserPrefs()); + expectedModel.addTask(validTask); + + assertCommandSuccess(addTaskCommand, model, expectedMessage, expectedModel); + } + + @Test + public void execute_personsNotInList_throwsCommandException() { + // task with one person not found in the address book -> throws an error + Task invalidTask = new TaskBuilder().withPersons("Johnson").build(); + AddTaskCommand addTaskCommand = new AddTaskCommand(invalidTask); + + String expectedMessage = String.format(AddTaskCommand.MESSAGE_CONTACT_NOT_FOUND, "Johnson"); + assertThrows(CommandException.class, + expectedMessage, () -> addTaskCommand.execute(model)); + + // task with only one person out of the rest found in the address book -> throws an error + invalidTask = new TaskBuilder().withPersons("Johnson", "Alice Pauline").build(); + AddTaskCommand addTaskCommand2 = new AddTaskCommand(invalidTask); + + assertThrows(CommandException.class, + expectedMessage, () -> addTaskCommand2.execute(model)); + + // task with multiple persons not found in the address book -> throws an error + invalidTask = new TaskBuilder().withPersons("Johnson", "Kenny").build(); + AddTaskCommand addTaskCommand3 = new AddTaskCommand(invalidTask); + + assertThrows(CommandException.class, + expectedMessage, () -> addTaskCommand3.execute(model)); + } + + @Test + public void execute_personsInConflictingTask_throwsCommandException() { + // task with same date, same time range, and same persons -> throws an error + Task invalidTask = new TaskBuilder() + .withDate("09-10-2022").withStartTime("09:00").withEndTime("10:00") + .withPersons(ALICE.getName().fullName, BENSON.getName().fullName).build(); + AddTaskCommand addTaskCommand = new AddTaskCommand(invalidTask); + + String expectedMessage = + String.format(AddTaskCommand.MESSAGE_SCHEDULE_CONFLICT, ALICE.getName().fullName); + assertThrows(CommandException.class, + expectedMessage, () -> addTaskCommand.execute(model)); - assertEquals(String.format(AddTaskCommand.MESSAGE_SUCCESS, validTask), commandResult.getFeedbackToUser()); - assertEquals(Arrays.asList(validTask), modelStub.tasksAdded); + // task with same date, overlapping time range, and same persons -> throws an error + invalidTask = new TaskBuilder() + .withDate("09-10-2022").withStartTime("09:30").withEndTime("10:30") + .withPersons(ALICE.getName().fullName, BENSON.getName().fullName).build(); + AddTaskCommand addTaskCommand2 = new AddTaskCommand(invalidTask); + + assertThrows(CommandException.class, + expectedMessage, () -> addTaskCommand2.execute(model)); + + // task with same date, overlapping time range, and only ALICE -> throws an error + invalidTask = new TaskBuilder() + .withDate("09-10-2022").withStartTime("09:30").withEndTime("10:30") + .withPersons(ALICE.getName().fullName).build(); + AddTaskCommand addTaskCommand3 = new AddTaskCommand(invalidTask); + + assertThrows(CommandException.class, + expectedMessage, () -> addTaskCommand3.execute(model)); } @Test public void execute_duplicateTask_throwsCommandException() { - Task validTask = new TaskBuilder().build(); - AddTaskCommand addTaskCommand = new AddTaskCommand(validTask); - ModelStub modelStub = new ModelStubWithTask(validTask); + Task duplicateTask = new TaskBuilder().withName(FIRST_TASK.getName().fullName).build(); + AddTaskCommand addTaskCommand = new AddTaskCommand(duplicateTask); assertThrows(CommandException.class, - AddTaskCommand.MESSAGE_DUPLICATE_TASK, () -> addTaskCommand.execute(modelStub)); + AddTaskCommand.MESSAGE_DUPLICATE_TASK, () -> addTaskCommand.execute(model)); } @Test @@ -78,213 +138,4 @@ public void equals() { // different person -> returns false assertFalse(addShareholderMeetCommand.equals(addWelcomeTeaCommand)); } - - /** - * Default model stub that has all the methods failing. - */ - private class ModelStub implements Model { - @Override - public void setUserPrefs(ReadOnlyUserPrefs userPrefs) { - throw new AssertionError("This method should not be called."); - } - - @Override - public ReadOnlyUserPrefs getUserPrefs() { - throw new AssertionError("This method should not be called."); - } - - @Override - public GuiSettings getGuiSettings() { - throw new AssertionError("This method should not be called."); - } - - @Override - public void setGuiSettings(GuiSettings guiSettings) { - throw new AssertionError("This method should not be called."); - } - - @Override - public Path getAddressBookFilePath() { - throw new AssertionError("This method should not be called."); - } - - @Override - public void setAddressBookFilePath(Path addressBookFilePath) { - throw new AssertionError("This method should not be called."); - } - - @Override - public Path getTaskBookFilePath() { - throw new AssertionError("This method should not be called."); - } - - @Override - public void setTaskBookFilePath(Path taskBookFilePath) { - throw new AssertionError("This method should not be called."); - } - - @Override - public void addPerson(Person person) { - throw new AssertionError("This method should not be called."); - } - - @Override - public void setAddressBook(ReadOnlyAddressBook newData) { - throw new AssertionError("This method should not be called."); - } - - @Override - public ReadOnlyAddressBook getAddressBook() { - throw new AssertionError("This method should not be called."); - } - - @Override - public boolean hasPerson(Person person) { - throw new AssertionError("This method should not be called."); - } - - @Override - public void deletePerson(Person target) { - throw new AssertionError("This method should not be called."); - } - - @Override - public void setPerson(Person target, Person editedPerson) { - throw new AssertionError("This method should not be called."); - } - - @Override - public ObservableList getFilteredPersonList() { - throw new AssertionError("This method should not be called."); - } - - @Override - public void updateFilteredPersonList(Predicate predicate) { - throw new AssertionError("This method should not be called."); - } - @Override - public void setTaskBook(ReadOnlyTaskBook taskBook) { - throw new AssertionError("This method should not be called."); - } - - @Override - public ReadOnlyTaskBook getTaskBook() { - throw new AssertionError("This method should not be called."); - } - - @Override - public boolean hasTask(Task task) { - throw new AssertionError("This method should not be called."); - } - - @Override - public void deleteTask(Task target) { - throw new AssertionError("This method should not be called."); - } - - @Override - public void addTask(Task task) { - throw new AssertionError("This method should not be called."); - } - - @Override - public void setTask(Task target, Task editedTask) { - throw new AssertionError("This method should not be called."); - } - - @Override - public ObservableList getFilteredTaskList() { - throw new AssertionError("This method should not be called."); - } - - @Override - public void updateFilteredTaskList(Predicate predicate) { - throw new AssertionError("This method should not be called."); - } - - @Override - public void setStrategyBoard(ReadOnlyStrategyBoard strategyBoard) { - throw new AssertionError("This method should not be called."); - } - - @Override - public ReadOnlyStrategyBoard getStrategyBoard() { - throw new AssertionError("This method should not be called."); - } - - @Override - public boolean hasPlayer(String player) { - throw new AssertionError("This method should not be called."); - } - - @Override - public void deletePlayer(String target) { - throw new AssertionError("This method should not be called."); - } - - @Override - public void addPlayer(String player) { - throw new AssertionError("This method should not be called."); - } - - @Override - public ObservableList getFilteredPlayerList() { - throw new AssertionError("This method should not be called."); - } - - @Override - public void updateFilteredPlayerList(Predicate predicate) { - throw new AssertionError("This method should not be called."); - } - - } - - /** - * A Model stub that contains a single task. - */ - private class ModelStubWithTask extends ModelStub { - private final Task task; - - ModelStubWithTask(Task task) { - requireNonNull(task); - this.task = task; - } - - @Override - public boolean hasTask(Task task) { - requireNonNull(task); - return this.task.isSameTask(task); - } - } - - /** - * A Model stub that always accept the task being added. - */ - private class ModelStubAcceptingTaskAdded extends ModelStub { - final ArrayList tasksAdded = new ArrayList<>(); - - @Override - public boolean hasTask(Task task) { - requireNonNull(task); - return tasksAdded.stream().anyMatch(task::isSameTask); - } - - @Override - public void addTask(Task task) { - requireNonNull(task); - tasksAdded.add(task); - } - - @Override - public ReadOnlyAddressBook getAddressBook() { - return new AddressBook(); - } - - @Override - public ReadOnlyTaskBook getTaskBook() { - return new TaskBook(); - } - - } - } diff --git a/src/test/java/seedu/address/logic/commands/AddWeaknessCommandTest.java b/src/test/java/seedu/address/logic/commands/AddWeaknessCommandTest.java index cda3e486aaa..a5915045149 100644 --- a/src/test/java/seedu/address/logic/commands/AddWeaknessCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddWeaknessCommandTest.java @@ -20,7 +20,6 @@ import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ModelManager; -import seedu.address.model.StrategyBoard; import seedu.address.model.TaskBook; import seedu.address.model.UserPrefs; import seedu.address.model.note.Note; @@ -32,8 +31,7 @@ public class AddWeaknessCommandTest { private static final String NOTE_STUB_1 = "Some note 1"; private static final String NOTE_STUB_2 = "Some note 2"; - private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), - new StrategyBoard(), new UserPrefs()); + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); @Test public void execute_addWeaknessUnfilteredList_success() { @@ -50,7 +48,6 @@ public void execute_addWeaknessUnfilteredList_success() { Model expectedModel = new ModelManager( new AddressBook(model.getAddressBook()), new TaskBook(model.getTaskBook()), - new StrategyBoard(), new UserPrefs()); expectedModel.setPerson(firstPerson, editedPerson); diff --git a/src/test/java/seedu/address/logic/commands/ClearCommandTest.java b/src/test/java/seedu/address/logic/commands/ClearCommandTest.java index 8a1d90e54ae..dcf191f4547 100644 --- a/src/test/java/seedu/address/logic/commands/ClearCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/ClearCommandTest.java @@ -9,7 +9,6 @@ import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ModelManager; -import seedu.address.model.StrategyBoard; import seedu.address.model.UserPrefs; public class ClearCommandTest { @@ -24,10 +23,8 @@ public void execute_emptyAddressBook_success() { @Test public void execute_nonEmptyAddressBook_success() { - Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), - new StrategyBoard(), new UserPrefs()); - Model expectedModel = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), - new StrategyBoard(), new UserPrefs()); + Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + Model expectedModel = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); expectedModel.setAddressBook(new AddressBook()); assertCommandSuccess(new ClearCommand(), model, ClearCommand.MESSAGE_SUCCESS, expectedModel); diff --git a/src/test/java/seedu/address/logic/commands/DeleteCommandTest.java b/src/test/java/seedu/address/logic/commands/DeleteCommandTest.java index f0512eaf221..3e63dacc7c8 100644 --- a/src/test/java/seedu/address/logic/commands/DeleteCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/DeleteCommandTest.java @@ -19,7 +19,6 @@ import seedu.address.logic.EditTaskDescriptor; import seedu.address.model.Model; import seedu.address.model.ModelManager; -import seedu.address.model.StrategyBoard; import seedu.address.model.UserPrefs; import seedu.address.model.person.Person; import seedu.address.model.task.Task; @@ -31,8 +30,7 @@ */ public class DeleteCommandTest { - private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), - new StrategyBoard(), new UserPrefs()); + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); @Test public void execute_validIndexUnfilteredList_success() { @@ -42,7 +40,7 @@ public void execute_validIndexUnfilteredList_success() { String expectedMessage = String.format(DeleteCommand.MESSAGE_DELETE_PERSON_SUCCESS, personToDelete); ModelManager expectedModel = new ModelManager(model.getAddressBook(), - model.getTaskBook(), new StrategyBoard(), new UserPrefs()); + model.getTaskBook(), new UserPrefs()); expectedModel.deletePerson(personToDelete); Task taskToAmend = model.getFilteredTaskList().get(TASK_FIRST_INDEX.getZeroBased()); @@ -72,7 +70,7 @@ public void execute_validIndexFilteredList_success() { String expectedMessage = String.format(DeleteCommand.MESSAGE_DELETE_PERSON_SUCCESS, personToDelete); Model expectedModel = new ModelManager(model.getAddressBook(), - model.getTaskBook(), new StrategyBoard(), new UserPrefs()); + model.getTaskBook(), new UserPrefs()); expectedModel.deletePerson(personToDelete); showNoPerson(expectedModel); diff --git a/src/test/java/seedu/address/logic/commands/DeleteMiscCommandTest.java b/src/test/java/seedu/address/logic/commands/DeleteMiscCommandTest.java index e4c5271215e..46798012ec6 100644 --- a/src/test/java/seedu/address/logic/commands/DeleteMiscCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/DeleteMiscCommandTest.java @@ -21,7 +21,6 @@ import seedu.address.logic.commands.notecommands.DeleteMiscCommand; import seedu.address.model.Model; import seedu.address.model.ModelManager; -import seedu.address.model.StrategyBoard; import seedu.address.model.UserPrefs; import seedu.address.model.note.Note; import seedu.address.model.person.Person; @@ -32,8 +31,7 @@ */ public class DeleteMiscCommandTest { - private final Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), - new StrategyBoard(), new UserPrefs()); + private final Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); @Test public void constructor_nullIndex_throwsNullPointerException() { @@ -55,7 +53,7 @@ public void execute_validNoteIndexUnfilteredList_success() throws Exception { String expectedMessage = String.format(DeleteMiscCommand.MESSAGE_SUCCESS, personWithModifiedMisc); ModelManager expectedModel = new ModelManager(model.getAddressBook(), - model.getTaskBook(), new StrategyBoard(), new UserPrefs()); + model.getTaskBook(), new UserPrefs()); deleteMiscCommand.execute(expectedModel); assertCommandSuccess(deleteMiscCommand, model, expectedMessage, expectedModel); } diff --git a/src/test/java/seedu/address/logic/commands/DeleteStrengthCommandTest.java b/src/test/java/seedu/address/logic/commands/DeleteStrengthCommandTest.java index f04c20b30f8..742e9b1ba4f 100644 --- a/src/test/java/seedu/address/logic/commands/DeleteStrengthCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/DeleteStrengthCommandTest.java @@ -21,7 +21,6 @@ import seedu.address.logic.commands.notecommands.DeleteStrengthCommand; import seedu.address.model.Model; import seedu.address.model.ModelManager; -import seedu.address.model.StrategyBoard; import seedu.address.model.UserPrefs; import seedu.address.model.note.Note; import seedu.address.model.person.Person; @@ -32,8 +31,7 @@ */ public class DeleteStrengthCommandTest { - private final Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), - new StrategyBoard(), new UserPrefs()); + private final Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); @Test public void constructor_nullIndex_throwsNullPointerException() { @@ -56,7 +54,7 @@ public void execute_validNoteIndexUnfilteredList_success() throws Exception { String expectedMessage = String.format(DeleteStrengthCommand.MESSAGE_SUCCESS, personWithModifiedStrength); ModelManager expectedModel = new ModelManager(model.getAddressBook(), - model.getTaskBook(), new StrategyBoard(), new UserPrefs()); + model.getTaskBook(), new UserPrefs()); deleteStrengthCommand.execute(expectedModel); assertCommandSuccess(deleteStrengthCommand, model, expectedMessage, expectedModel); } diff --git a/src/test/java/seedu/address/logic/commands/DeleteTagCommandTest.java b/src/test/java/seedu/address/logic/commands/DeleteTagCommandTest.java index 854dcde3bb8..a9d1f4c0b0e 100644 --- a/src/test/java/seedu/address/logic/commands/DeleteTagCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/DeleteTagCommandTest.java @@ -19,7 +19,6 @@ import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ModelManager; -import seedu.address.model.StrategyBoard; import seedu.address.model.TaskBook; import seedu.address.model.UserPrefs; import seedu.address.model.person.Person; @@ -32,8 +31,7 @@ class DeleteTagCommandTest { private static final String TAG_1 = "friends"; // ALICE has a tag called "friends" // Test model - private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), - new StrategyBoard(), new UserPrefs()); + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); @Test void execute_deleteTagCommandUnfilteredList_success() { @@ -58,7 +56,6 @@ void execute_deleteTagCommandUnfilteredList_success() { Model expectedModel = new ModelManager( new AddressBook(model.getAddressBook()), new TaskBook(model.getTaskBook()), - new StrategyBoard(), new UserPrefs()); expectedModel.setPerson(firstPerson, editedPerson); diff --git a/src/test/java/seedu/address/logic/commands/DeleteTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/DeleteTaskCommandTest.java index 2d247768e04..6a6899de2fe 100644 --- a/src/test/java/seedu/address/logic/commands/DeleteTaskCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/DeleteTaskCommandTest.java @@ -15,7 +15,6 @@ import seedu.address.commons.core.index.Index; import seedu.address.model.Model; import seedu.address.model.ModelManager; -import seedu.address.model.StrategyBoard; import seedu.address.model.UserPrefs; import seedu.address.model.task.Task; @@ -25,8 +24,7 @@ */ public class DeleteTaskCommandTest { - private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), - new StrategyBoard(), new UserPrefs()); + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); @Test public void execute_validIndexUnfilteredList_success() { @@ -36,7 +34,7 @@ public void execute_validIndexUnfilteredList_success() { String expectedMessage = String.format(DeleteTaskCommand.MESSAGE_DELETE_TASK_SUCCESS, taskToDelete); ModelManager expectedModel = new ModelManager(model.getAddressBook(), - model.getTaskBook(), new StrategyBoard(), new UserPrefs()); + model.getTaskBook(), new UserPrefs()); expectedModel.deleteTask(taskToDelete); assertCommandSuccess(deleteTaskCommand, model, expectedMessage, expectedModel); diff --git a/src/test/java/seedu/address/logic/commands/DeleteWeaknessCommandTest.java b/src/test/java/seedu/address/logic/commands/DeleteWeaknessCommandTest.java index 73df1d5d1f3..9cdd8b31fe6 100644 --- a/src/test/java/seedu/address/logic/commands/DeleteWeaknessCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/DeleteWeaknessCommandTest.java @@ -21,7 +21,6 @@ import seedu.address.logic.commands.notecommands.DeleteWeaknessCommand; import seedu.address.model.Model; import seedu.address.model.ModelManager; -import seedu.address.model.StrategyBoard; import seedu.address.model.UserPrefs; import seedu.address.model.note.Note; import seedu.address.model.person.Person; @@ -32,8 +31,7 @@ */ public class DeleteWeaknessCommandTest { - private final Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), - new StrategyBoard(), new UserPrefs()); + private final Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); @Test public void constructor_nullIndex_throwsNullPointerException() { @@ -56,7 +54,7 @@ public void execute_validNoteIndexUnfilteredList_success() throws Exception { String expectedMessage = String.format(DeleteWeaknessCommand.MESSAGE_SUCCESS, personWithModifiedWeakness); ModelManager expectedModel = new ModelManager(model.getAddressBook(), - model.getTaskBook(), new StrategyBoard(), new UserPrefs()); + model.getTaskBook(), new UserPrefs()); deleteWeaknessCommand.execute(expectedModel); assertCommandSuccess(deleteWeaknessCommand, model, expectedMessage, expectedModel); } diff --git a/src/test/java/seedu/address/logic/commands/EditCommandTest.java b/src/test/java/seedu/address/logic/commands/EditCommandTest.java index f408e99a88f..3127b0121e7 100644 --- a/src/test/java/seedu/address/logic/commands/EditCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/EditCommandTest.java @@ -26,7 +26,6 @@ import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ModelManager; -import seedu.address.model.StrategyBoard; import seedu.address.model.UserPrefs; import seedu.address.model.person.Person; import seedu.address.model.task.Task; @@ -39,8 +38,7 @@ */ public class EditCommandTest { - private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), - new StrategyBoard(), new UserPrefs()); + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); @Test public void execute_allFieldsSpecifiedUnfilteredList_success() { @@ -51,7 +49,7 @@ public void execute_allFieldsSpecifiedUnfilteredList_success() { String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), - model.getTaskBook(), new StrategyBoard(), new UserPrefs()); + model.getTaskBook(), new UserPrefs()); expectedModel.setPerson(model.getFilteredPersonList().get(0), editedPerson); Task taskToAmend = model.getFilteredTaskList().get(TASK_FIRST_INDEX.getZeroBased()); @@ -80,7 +78,7 @@ public void execute_someFieldsSpecifiedUnfilteredList_success() { String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), - model.getTaskBook(), new StrategyBoard(), new UserPrefs()); + model.getTaskBook(), new UserPrefs()); expectedModel.setPerson(lastPerson, editedPerson); assertCommandSuccess(editCommand, model, expectedMessage, expectedModel); @@ -94,7 +92,7 @@ public void execute_noFieldSpecifiedUnfilteredList_success() { String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), - model.getTaskBook(), new StrategyBoard(), new UserPrefs()); + model.getTaskBook(), new UserPrefs()); assertCommandSuccess(editCommand, model, expectedMessage, expectedModel); } @@ -111,7 +109,7 @@ public void execute_filteredList_success() { String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), - model.getTaskBook(), new StrategyBoard(), new UserPrefs()); + model.getTaskBook(), new UserPrefs()); expectedModel.setPerson(model.getFilteredPersonList().get(0), editedPerson); Task taskToAmend = model.getFilteredTaskList().get(TASK_FIRST_INDEX.getZeroBased()); diff --git a/src/test/java/seedu/address/logic/commands/FindCommandTest.java b/src/test/java/seedu/address/logic/commands/FindCommandTest.java index fa2f334f108..91eb69a5343 100644 --- a/src/test/java/seedu/address/logic/commands/FindCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/FindCommandTest.java @@ -19,7 +19,6 @@ import seedu.address.model.Model; import seedu.address.model.ModelManager; -import seedu.address.model.StrategyBoard; import seedu.address.model.UserPrefs; import seedu.address.model.name.PersonNameContainsKeywordsPredicate; import seedu.address.model.tag.TagContainsKeywordsPredicate; @@ -28,10 +27,8 @@ * Contains integration tests (interaction with the Model) for {@code FindCommand}. */ public class FindCommandTest { - private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), - new StrategyBoard(), new UserPrefs()); - private Model expectedModel = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), - new StrategyBoard(), new UserPrefs()); + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + private Model expectedModel = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); @Test public void equals() { diff --git a/src/test/java/seedu/address/logic/commands/ListCommandTest.java b/src/test/java/seedu/address/logic/commands/ListCommandTest.java index 9d7bbf57d72..33a3ab7e064 100644 --- a/src/test/java/seedu/address/logic/commands/ListCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/ListCommandTest.java @@ -11,7 +11,6 @@ import seedu.address.model.Model; import seedu.address.model.ModelManager; -import seedu.address.model.StrategyBoard; import seedu.address.model.UserPrefs; /** @@ -24,10 +23,9 @@ public class ListCommandTest { @BeforeEach public void setUp() { - model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), - new StrategyBoard(), new UserPrefs()); + model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); expectedModel = new ModelManager(model.getAddressBook(), - model.getTaskBook(), new StrategyBoard(), new UserPrefs()); + model.getTaskBook(), new UserPrefs()); } @Test diff --git a/src/test/java/seedu/address/model/ModelManagerTest.java b/src/test/java/seedu/address/model/ModelManagerTest.java index 0ecc98736c5..faeaeabaf0f 100644 --- a/src/test/java/seedu/address/model/ModelManagerTest.java +++ b/src/test/java/seedu/address/model/ModelManagerTest.java @@ -139,11 +139,10 @@ public void equals() { UserPrefs userPrefs = new UserPrefs(); TaskBook taskBook = new TaskBookBuilder().withTask(FIRST_TASK).withTask(SECOND_TASK).build(); TaskBook differentTaskBook = new TaskBook(); - StrategyBoard strategyBoard = new StrategyBoard(); // same values -> returns true - modelManager = new ModelManager(addressBook, taskBook, strategyBoard, userPrefs); - ModelManager modelManagerCopy = new ModelManager(addressBook, taskBook, strategyBoard, userPrefs); + modelManager = new ModelManager(addressBook, taskBook, userPrefs); + ModelManager modelManagerCopy = new ModelManager(addressBook, taskBook, userPrefs); assertTrue(modelManager.equals(modelManagerCopy)); // same object -> returns true @@ -156,23 +155,23 @@ public void equals() { assertFalse(modelManager.equals(5)); // different addressBook -> returns false - assertFalse(modelManager.equals(new ModelManager(differentAddressBook, taskBook, strategyBoard, userPrefs))); + assertFalse(modelManager.equals(new ModelManager(differentAddressBook, taskBook, userPrefs))); // different filteredPersonList -> returns false String[] pKeywords = ALICE.getName().fullName.split("\\s+"); modelManager.updateFilteredPersonList(new PersonNameContainsKeywordsPredicate(Arrays.asList(pKeywords))); - assertFalse(modelManager.equals(new ModelManager(addressBook, taskBook, strategyBoard, userPrefs))); + assertFalse(modelManager.equals(new ModelManager(addressBook, taskBook, userPrefs))); // resets modelManager to initial state for upcoming tests modelManager.updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); // different taskBook -> returns false - assertFalse(modelManager.equals(new ModelManager(addressBook, differentTaskBook, strategyBoard, userPrefs))); + assertFalse(modelManager.equals(new ModelManager(addressBook, differentTaskBook, userPrefs))); // different filteredTaskList -> returns false String[] tKeywords = FIRST_TASK.getName().fullName.split("\\s+"); modelManager.updateFilteredTaskList(new TaskNameContainsKeywordsPredicate(Arrays.asList(tKeywords))); - assertFalse(modelManager.equals(new ModelManager(addressBook, taskBook, strategyBoard, userPrefs))); + assertFalse(modelManager.equals(new ModelManager(addressBook, taskBook, userPrefs))); // resets modelManager to initial state for upcoming tests modelManager.updateFilteredTaskList(PREDICATE_SHOW_ALL_TASKS); @@ -180,6 +179,6 @@ public void equals() { // different userPrefs -> returns false UserPrefs differentUserPrefs = new UserPrefs(); differentUserPrefs.setAddressBookFilePath(Paths.get("differentFilePath")); - assertFalse(modelManager.equals(new ModelManager(addressBook, taskBook, strategyBoard, differentUserPrefs))); + assertFalse(modelManager.equals(new ModelManager(addressBook, taskBook, differentUserPrefs))); } } From 28b5a514799cc92f0453a32c5409a617ed8372cb Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Thu, 24 Mar 2022 11:28:11 +0800 Subject: [PATCH 203/455] Fix checkstyle violations --- src/main/java/seedu/address/MainApp.java | 2 -- src/main/java/seedu/address/logic/Logic.java | 1 - src/main/java/seedu/address/model/Model.java | 1 - 3 files changed, 4 deletions(-) diff --git a/src/main/java/seedu/address/MainApp.java b/src/main/java/seedu/address/MainApp.java index dedacfe98f9..71dac327b7a 100644 --- a/src/main/java/seedu/address/MainApp.java +++ b/src/main/java/seedu/address/MainApp.java @@ -1,6 +1,5 @@ package seedu.address; -import java.io.File; import java.io.IOException; import java.nio.file.Path; import java.util.Optional; @@ -24,7 +23,6 @@ import seedu.address.model.ReadOnlyUserPrefs; import seedu.address.model.TaskBook; import seedu.address.model.UserPrefs; -import seedu.address.model.image.Image; import seedu.address.model.util.SampleDataUtil; import seedu.address.storage.AddressBookStorage; import seedu.address.storage.JsonAddressBookStorage; diff --git a/src/main/java/seedu/address/logic/Logic.java b/src/main/java/seedu/address/logic/Logic.java index b264d649764..5e1f29acc2b 100644 --- a/src/main/java/seedu/address/logic/Logic.java +++ b/src/main/java/seedu/address/logic/Logic.java @@ -8,7 +8,6 @@ import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.ReadOnlyAddressBook; -import seedu.address.model.image.Image; import seedu.address.model.person.Person; import seedu.address.model.task.Task; diff --git a/src/main/java/seedu/address/model/Model.java b/src/main/java/seedu/address/model/Model.java index 66f42d7ab3c..d26a8ad2297 100644 --- a/src/main/java/seedu/address/model/Model.java +++ b/src/main/java/seedu/address/model/Model.java @@ -5,7 +5,6 @@ import javafx.collections.ObservableList; import seedu.address.commons.core.GuiSettings; -import seedu.address.model.image.Image; import seedu.address.model.person.Person; import seedu.address.model.task.Task; From a5abffd509b6d185f9480ed6f948c8bbdb2d450e Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Thu, 24 Mar 2022 11:34:10 +0800 Subject: [PATCH 204/455] Modify code for readability --- src/main/java/seedu/address/ui/MainWindow.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/ui/MainWindow.java b/src/main/java/seedu/address/ui/MainWindow.java index 47dab61b38d..a89e5796604 100644 --- a/src/main/java/seedu/address/ui/MainWindow.java +++ b/src/main/java/seedu/address/ui/MainWindow.java @@ -205,7 +205,8 @@ private CommandResult executeCommand(String commandText) throws CommandException } if (commandResult.isLoadImageCommand()) { - handleLoadImage(commandResult.getBackgroundImage()); + Image backGroundImage = commandResult.getBackgroundImage(); + handleLoadImage(backGroundImage); } return commandResult; From 168f82ae530b78bc33a1f538f0cefb03bad2389d Mon Sep 17 00:00:00 2001 From: juayhee Date: Thu, 24 Mar 2022 15:43:59 +0800 Subject: [PATCH 205/455] Add sequence diagram for adding tags --- docs/diagrams/AddTagSequenceDiagram.puml | 69 +++++++++++++++++++++++ docs/images/AddTagSequenceDiagram.png | Bin 0 -> 32576 bytes 2 files changed, 69 insertions(+) create mode 100644 docs/diagrams/AddTagSequenceDiagram.puml create mode 100644 docs/images/AddTagSequenceDiagram.png diff --git a/docs/diagrams/AddTagSequenceDiagram.puml b/docs/diagrams/AddTagSequenceDiagram.puml new file mode 100644 index 00000000000..c2fdb937259 --- /dev/null +++ b/docs/diagrams/AddTagSequenceDiagram.puml @@ -0,0 +1,69 @@ +@startuml +!include style.puml + +box Logic LOGIC_COLOR_T1 +participant ":LogicManager" as LogicManager LOGIC_COLOR +participant ":Coach2K22Parser" as Coach2K22Parser LOGIC_COLOR +participant ":AddTagCommandParser" as AddTagCommandParser LOGIC_COLOR +participant "p:AddTagCommand" as AddTagCommand LOGIC_COLOR +participant ":CommandResult" as CommandResult LOGIC_COLOR +end box + +box Model MODEL_COLOR_T1 +participant ":Model" as Model MODEL_COLOR +end box + +[-> LogicManager : execute("tag-add 1 t/friend") +activate LogicManager + +LogicManager -> Coach2K22Parser : parseCommand("tag-add 1 t/friend") +activate Coach2K22Parser + +create AddTagCommandParser +Coach2K22Parser -> AddTagCommandParser +activate AddTagCommandParser + +AddTagCommandParser --> Coach2K22Parser +deactivate AddTagCommandParser + +Coach2K22Parser -> AddTagCommandParser : parse("1 t/friend") +activate AddTagCommandParser + +create AddTagCommand +AddTagCommandParser -> AddTagCommand +activate AddTagCommand + +AddTagCommand --> AddTagCommandParser : p +deactivate AddTagCommand + +AddTagCommandParser --> Coach2K22Parser : p +deactivate AddTagCommandParser +'Hidden arrow to position the destroy marker below the end of the activation bar. +AddTagCommandParser -[hidden]-> Coach2K22Parser +destroy AddTagCommandParser + +Coach2K22Parser --> LogicManager : p +deactivate Coach2K22Parser + +LogicManager -> AddTagCommand : execute() +activate AddTagCommand + +AddTagCommand -> Model : setPerson(personToEdit, editedPerson) +activate Model + +Model --> AddTagCommand +deactivate Model + +create CommandResult +AddTagCommand -> CommandResult +activate CommandResult + +CommandResult --> AddTagCommand +deactivate CommandResult + +AddTagCommand --> LogicManager : result +deactivate AddTagCommand + +[<--LogicManager +deactivate LogicManager +@enduml diff --git a/docs/images/AddTagSequenceDiagram.png b/docs/images/AddTagSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..73562c23e05905d9b7f0ff073a018b2f001a70c7 GIT binary patch literal 32576 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 literal 0 HcmV?d00001 From 770f1a1339fb5edf9f84413a2a12433fd6e5f987 Mon Sep 17 00:00:00 2001 From: juayhee Date: Thu, 24 Mar 2022 18:02:13 +0800 Subject: [PATCH 206/455] Update DG --- docs/DeveloperGuide.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index d1d7885c3af..84e00848dc7 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -211,6 +211,38 @@ The steps above are summarised using a sequence diagram as shown below. * Pros: Easy to extend and manipulate attributes of a player. * Cons: Hard to implement. +### 4.3 Add tags feature + +#### 4.3.1 Implementation +This feature allows the user to add tags to contacts in the list. It is facilitated by `ModelManager` which +makes use of the method `#setPerson()` and `#updateFilteredPersonList()` to add tags to a contact. + +Given below is an example usage scenario of how the add tag mechanism behaves at each step. + +Step 1: The user inputs `tag-add 1 t/friend` to add the tag "friend" to the first contact in the list. + +Step 2: This argument is passed into `LogicManager` which calls on `Coach2K22Parser#parseCommand()` to find a suitable parser class to process the user inputs. This initialises the `AddTagCommandParser` where its method `#parse` is called to process the user inputs. + +Step 3: It then returns a newly initialised `AddTagCommand` back to the `LogicManager` for command execution. This `AddTagCommand` contains information about the new tag (in this case, "friend") + +Step 4: During the command execution, the `ModelManager#setPerson()` is called which edits the tags of the person with the user-supplied tags. The filtered person list is updated with `ModelManager#updateFilteredPersonList` to display the new information to the user. + +The steps above are summarised using a sequence diagram as shown below. +![AddTagSequenceDiagram] (images/AddTagSequenceDiagram.png) + + +#### 4.3.2 Design consideration + +**Aspect: Should the implementation use the existing edit functionalities in AB3:** +* **Alternative 1:** Use the current EditCommand class to edit a person's tags. + * Pros: Maintains abstraction and reuses code instead of writing new code. + * Cons: Creates a cyclic dependency, making the code base harder to maintain later on + +* **Alternative 2 (current choice):** Implement AddTagCommand independently, rewriting similar code + * Pros: Cleaner code and less dependencies + * Cons: Repetitive code that is not abstracted + + ### \[Proposed\] Undo/redo feature #### Proposed Implementation From 812fb0ca9c73cfb32345e5a44964a9e1ee6beb27 Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Thu, 24 Mar 2022 18:51:22 +0800 Subject: [PATCH 207/455] Add exception checks for Image --- .../logic/commands/LoadCourtCommand.java | 21 +++++++++++++++++-- .../address/logic/parser/ParserUtil.java | 2 +- .../java/seedu/address/model/image/Image.java | 4 +++- 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/LoadCourtCommand.java b/src/main/java/seedu/address/logic/commands/LoadCourtCommand.java index fcee51e4908..b3b48fb5c51 100644 --- a/src/main/java/seedu/address/logic/commands/LoadCourtCommand.java +++ b/src/main/java/seedu/address/logic/commands/LoadCourtCommand.java @@ -2,6 +2,7 @@ import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; +import java.io.File; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; import seedu.address.model.image.Image; @@ -21,6 +22,8 @@ public class LoadCourtCommand extends Command { public static final String MESSAGE_SUCCESS = "Image has been loaded: %1$s"; + public static final String MESSAGE_IMAGE_INVALID = "Provided image name is invalid!"; + private final Image image; /** @@ -29,17 +32,31 @@ public class LoadCourtCommand extends Command { */ public LoadCourtCommand(Image image) { requireAllNonNull(image); - this.image = image; } @Override public CommandResult execute(Model model) throws CommandException { requireAllNonNull(model); - + checkIfThrowsException(); //throws if the image file cannot be instantiated return new CommandResult(generateSuccessMessage(image), false, false, true, this.image); } + /** + * Creates a test javafx.scene.image object and checks if it throws an Exception. + * @return false if the image file can be instantiated + * @throws CommandException if png file cannot load + */ + public boolean checkIfThrowsException() throws CommandException { + try { + File imagePath = image.getImagePath(); + new javafx.scene.image.Image((imagePath.toURI().toString())); + } catch (NullPointerException | IllegalArgumentException e) { + throw new CommandException(MESSAGE_IMAGE_INVALID); + } + return false; + } + /** * Generates a command execution success message * {@code image}. diff --git a/src/main/java/seedu/address/logic/parser/ParserUtil.java b/src/main/java/seedu/address/logic/parser/ParserUtil.java index b178c90bcac..2b8ed859058 100644 --- a/src/main/java/seedu/address/logic/parser/ParserUtil.java +++ b/src/main/java/seedu/address/logic/parser/ParserUtil.java @@ -64,7 +64,7 @@ public static Image parseImage(String imageName) throws ParseException { if (trimmedName.contains("/")) { throw new ParseException(MESSAGE_INVALID_IMAGE_NAME); } - if (!Image.isValidImage(trimmedName)) { + if (!Image.isValidFile(trimmedName)) { throw new ParseException(MESSAGE_INVALID_IMAGE); } return new Image(trimmedName); diff --git a/src/main/java/seedu/address/model/image/Image.java b/src/main/java/seedu/address/model/image/Image.java index a4ddb144c6d..d7c98c5adf4 100644 --- a/src/main/java/seedu/address/model/image/Image.java +++ b/src/main/java/seedu/address/model/image/Image.java @@ -1,6 +1,7 @@ package seedu.address.model.image; import java.io.File; +import seedu.address.logic.commands.exceptions.CommandException; /** * Represents an Image in Coack2K22. @@ -26,12 +27,13 @@ public Image(String imageName) { * @param imageName The name of an image * @return true if the image exists */ - public static Boolean isValidImage(String imageName) { + public static Boolean isValidFile(String imageName) { String filePath = FILE_PATH + imageName + ".png"; File file = new File(filePath); return file.exists(); } + /** * Returns the File format of the image. * @return File object of the given image From c48246757209aec35ab3f8316318553f93b6bf4f Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Thu, 24 Mar 2022 18:52:00 +0800 Subject: [PATCH 208/455] Fix checkstyle violations --- src/main/java/seedu/address/logic/commands/LoadCourtCommand.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/seedu/address/logic/commands/LoadCourtCommand.java b/src/main/java/seedu/address/logic/commands/LoadCourtCommand.java index b3b48fb5c51..0f60585b6cb 100644 --- a/src/main/java/seedu/address/logic/commands/LoadCourtCommand.java +++ b/src/main/java/seedu/address/logic/commands/LoadCourtCommand.java @@ -3,6 +3,7 @@ import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; import java.io.File; + import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; import seedu.address.model.image.Image; From 4d2ec1da555ccc0a1f648acdc946207c9af5b99c Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Thu, 24 Mar 2022 19:34:14 +0800 Subject: [PATCH 209/455] Modify background image to resize automatically with window --- .../java/seedu/address/ui/StrategyPanel.java | 8 ++++--- src/main/resources/view/MainWindow.fxml | 4 ++-- src/main/resources/view/StrategyPanel.fxml | 3 +-- .../seedu/address/model/image/ImageTest.java | 22 +++++++++++++++++++ 4 files changed, 30 insertions(+), 7 deletions(-) create mode 100644 src/test/java/seedu/address/model/image/ImageTest.java diff --git a/src/main/java/seedu/address/ui/StrategyPanel.java b/src/main/java/seedu/address/ui/StrategyPanel.java index 5ce498ccf8f..c7807dd527e 100644 --- a/src/main/java/seedu/address/ui/StrategyPanel.java +++ b/src/main/java/seedu/address/ui/StrategyPanel.java @@ -67,9 +67,6 @@ public void handle(MouseEvent t) { */ public StrategyPanel() { super(FXML); - strategyImage.fitWidthProperty().bind(strategyAnchorPane.widthProperty()); - strategyImage.fitHeightProperty().bind(strategyAnchorPane.heightProperty()); - strategyImage.toBack(); initCircle(player1, 50, 100, 100, Color.RED); initCircle(player2, 50, 200, 200, Color.LIGHTBLUE); initCircle(player3, 30, 200, 200, Color.YELLOW); @@ -84,6 +81,11 @@ public void changeImageBackground(File file) { } private void initCircle(Circle circle, double rad, double x, double y, Paint color) { + strategyImage.setPreserveRatio(false); + strategyImage.fitWidthProperty().bind(strategyAnchorPane.widthProperty()); + strategyImage.fitHeightProperty().bind(strategyAnchorPane.heightProperty()); + strategyImage.setManaged(false); + strategyImage.toBack(); circle.setRadius(rad); circle.setFill(color); circle.setCenterX(x); diff --git a/src/main/resources/view/MainWindow.fxml b/src/main/resources/view/MainWindow.fxml index 0a5cc6d02b0..a8ba50455bc 100644 --- a/src/main/resources/view/MainWindow.fxml +++ b/src/main/resources/view/MainWindow.fxml @@ -74,12 +74,12 @@ - + - + diff --git a/src/main/resources/view/StrategyPanel.fxml b/src/main/resources/view/StrategyPanel.fxml index 491f8a19238..a5b4a1fc925 100644 --- a/src/main/resources/view/StrategyPanel.fxml +++ b/src/main/resources/view/StrategyPanel.fxml @@ -4,8 +4,7 @@ - - + diff --git a/src/test/java/seedu/address/model/image/ImageTest.java b/src/test/java/seedu/address/model/image/ImageTest.java new file mode 100644 index 00000000000..fae1690c6e6 --- /dev/null +++ b/src/test/java/seedu/address/model/image/ImageTest.java @@ -0,0 +1,22 @@ +package seedu.address.model.image; + +import org.junit.jupiter.api.Test; + +class ImageTest { + + @Test + void isValidFile() { + } + + @Test + void getImagePath() { + } + + @Test + void testEquals() { + } + + @Test + void testToString() { + } +} From 94a77884a3484679a2844c274c0c356a36a0a073 Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Thu, 24 Mar 2022 19:55:26 +0800 Subject: [PATCH 210/455] Add test for Image.java and fix checkstyle violations --- .../java/seedu/address/model/image/Image.java | 5 +-- .../logic/commands/LoadCourtCommandTest.java | 4 +++ .../seedu/address/model/image/ImageTest.java | 32 +++++++++++++++++-- 3 files changed, 37 insertions(+), 4 deletions(-) create mode 100644 src/test/java/seedu/address/logic/commands/LoadCourtCommandTest.java diff --git a/src/main/java/seedu/address/model/image/Image.java b/src/main/java/seedu/address/model/image/Image.java index d7c98c5adf4..728ce0a0865 100644 --- a/src/main/java/seedu/address/model/image/Image.java +++ b/src/main/java/seedu/address/model/image/Image.java @@ -1,8 +1,8 @@ package seedu.address.model.image; -import java.io.File; -import seedu.address.logic.commands.exceptions.CommandException; +import static java.util.Objects.requireNonNull; +import java.io.File; /** * Represents an Image in Coack2K22. */ @@ -19,6 +19,7 @@ public class Image { * @param imageName The name of an image */ public Image(String imageName) { + requireNonNull(imageName); this.imageName = imageName; } diff --git a/src/test/java/seedu/address/logic/commands/LoadCourtCommandTest.java b/src/test/java/seedu/address/logic/commands/LoadCourtCommandTest.java new file mode 100644 index 00000000000..8fd3ba3aa12 --- /dev/null +++ b/src/test/java/seedu/address/logic/commands/LoadCourtCommandTest.java @@ -0,0 +1,4 @@ +package seedu.address.logic.commands; + +public class LoadCourtCommandTest { +} diff --git a/src/test/java/seedu/address/model/image/ImageTest.java b/src/test/java/seedu/address/model/image/ImageTest.java index fae1690c6e6..0fe85f73b5d 100644 --- a/src/test/java/seedu/address/model/image/ImageTest.java +++ b/src/test/java/seedu/address/model/image/ImageTest.java @@ -1,22 +1,50 @@ package seedu.address.model.image; +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static seedu.address.testutil.Assert.assertThrows; + import org.junit.jupiter.api.Test; class ImageTest { + private final String imageNameStub = "test"; + private final String imageNameStub1 = "test2"; + private final String imageNameStub2 = "INCORRECT_FILE.jpeg"; + @Test - void isValidFile() { + public void constructor_null_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> new Image(null)); } @Test - void getImagePath() { + public void isValidFile_invalidPath_throws() { + assertFalse(Image.isValidFile(imageNameStub2)); + } + + @Test + void getImagePath_validPathName() { + Image image = new Image(imageNameStub); + + assertDoesNotThrow(() -> image.getImagePath()); } @Test void testEquals() { + Image image = new Image(imageNameStub); + Image image2 = new Image(imageNameStub); + Image image3 = new Image(imageNameStub1); + + assertEquals(image, image2); + assertNotEquals(image, image3); } @Test void testToString() { + Image image = new Image(imageNameStub); + assertNotNull(image.toString()); } } From 00acddfe1fb8a969cd9f92d4b8c997b847439690 Mon Sep 17 00:00:00 2001 From: juayhee Date: Thu, 24 Mar 2022 20:46:07 +0800 Subject: [PATCH 211/455] Update UG --- docs/UserGuide.md | 42 ++++++++++++++++++++++++++++++------------ 1 file changed, 30 insertions(+), 12 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index e5bcd011ff1..f42e673425b 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -306,11 +306,29 @@ Examples: #### 2.2.6 Adding a tag : `tag-add-t` -* (To be filled up by @juayhee) +Add a tag to a selected task from our task list. + +Format: `tag-add-t INDEX [t/TAG]` + +Examples: +* `tag-add-t 1 important` adds the tag "important" to the first task in the list. + #### 2.2.7 Deleting a tag : `tag-del-t` -* (To be filled up by @juayhee) +Delete a tag from a selected task in our task list. + +Format: `tag-del-t INDEX [t/TAG]` + +Examples: +* `tag-add-t 1 important` removes the tag "important" from the first task in the list. + +

      #### 2.2.8 Locating tasks by keyword : `find-t` From 3e9f65412966e551a836cd1437d637732640898d Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Thu, 24 Mar 2022 22:50:06 +0800 Subject: [PATCH 219/455] Rename TestImage class to TestImageCreator --- .../address/logic/parser/AddressBookParserTest.java | 8 ++++---- .../logic/parser/LoadCourtCommandParserTest.java | 8 ++++---- .../seedu/address/logic/parser/ParserUtilTest.java | 10 +++++----- .../testutil/{TestImage.java => TestImageCreator.java} | 2 +- 4 files changed, 14 insertions(+), 14 deletions(-) rename src/test/java/seedu/address/testutil/{TestImage.java => TestImageCreator.java} (97%) diff --git a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java index 8e8b5aa2216..28b9bdf095b 100644 --- a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java +++ b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java @@ -41,7 +41,7 @@ import seedu.address.testutil.EditPersonDescriptorBuilder; import seedu.address.testutil.PersonBuilder; import seedu.address.testutil.PersonUtil; -import seedu.address.testutil.TestImage; +import seedu.address.testutil.TestImageCreator; public class AddressBookParserTest { @@ -124,9 +124,9 @@ public void parseCommand_deleteMisc() throws Exception { @Test public void parseCommand_loadCourt() throws Exception { - TestImage.createTestImage(); + TestImageCreator.createTestImage(); - Image imageStub = TestImage.getTestImage(); + Image imageStub = TestImageCreator.getTestImage(); String imageName = imageStub.imageName; LoadCourtCommand command = (LoadCourtCommand) parser.parseCommand( @@ -134,7 +134,7 @@ public void parseCommand_loadCourt() throws Exception { ); assertEquals(new LoadCourtCommand(imageStub), command); - TestImage.deleteTestImage(); + TestImageCreator.deleteTestImage(); } diff --git a/src/test/java/seedu/address/logic/parser/LoadCourtCommandParserTest.java b/src/test/java/seedu/address/logic/parser/LoadCourtCommandParserTest.java index 184cffdfd81..db2cc67c267 100644 --- a/src/test/java/seedu/address/logic/parser/LoadCourtCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/LoadCourtCommandParserTest.java @@ -7,7 +7,7 @@ import seedu.address.logic.commands.LoadCourtCommand; import seedu.address.model.image.Image; -import seedu.address.testutil.TestImage; +import seedu.address.testutil.TestImageCreator; public class LoadCourtCommandParserTest { private LoadCourtCommandParser parser = new LoadCourtCommandParser(); @@ -20,14 +20,14 @@ public void parse_emptyArg_throwsParseException() { @Test public void parse_validArgs_returnsLoadCourtCommand() { - TestImage.createTestImage(); - Image testImage = TestImage.getTestImage(); + TestImageCreator.createTestImage(); + Image testImage = TestImageCreator.getTestImage(); String testImageName = testImage.imageName; LoadCourtCommand expectedLoadCourtCommand = new LoadCourtCommand(testImage); assertParseSuccess(parser, testImageName, expectedLoadCourtCommand); - TestImage.deleteTestImage(); + TestImageCreator.deleteTestImage(); } @Test diff --git a/src/test/java/seedu/address/logic/parser/ParserUtilTest.java b/src/test/java/seedu/address/logic/parser/ParserUtilTest.java index 7f3fc74d93e..aaa8f3baa7d 100644 --- a/src/test/java/seedu/address/logic/parser/ParserUtilTest.java +++ b/src/test/java/seedu/address/logic/parser/ParserUtilTest.java @@ -22,7 +22,7 @@ import seedu.address.model.person.Email; import seedu.address.model.person.Phone; import seedu.address.model.tag.Tag; -import seedu.address.testutil.TestImage; +import seedu.address.testutil.TestImageCreator; public class ParserUtilTest { private static final String INVALID_NAME = "R@chel"; @@ -233,13 +233,13 @@ public void parseImage_invalidArgs_throwsParseException() { @Test public void parseImage_validArgs_returnsImage() throws ParseException { - TestImage testImageFile = new TestImage(); - Image expectedImage = testImageFile.getTestImage(); + TestImageCreator testImageCreatorFile = new TestImageCreator(); + Image expectedImage = testImageCreatorFile.getTestImage(); String testImageName = expectedImage.imageName; - testImageFile.createTestImage(); + testImageCreatorFile.createTestImage(); assertEquals(expectedImage, ParserUtil.parseImage(testImageName)); - testImageFile.deleteTestImage(); + testImageCreatorFile.deleteTestImage(); } } diff --git a/src/test/java/seedu/address/testutil/TestImage.java b/src/test/java/seedu/address/testutil/TestImageCreator.java similarity index 97% rename from src/test/java/seedu/address/testutil/TestImage.java rename to src/test/java/seedu/address/testutil/TestImageCreator.java index 17157739613..a839a0d7287 100644 --- a/src/test/java/seedu/address/testutil/TestImage.java +++ b/src/test/java/seedu/address/testutil/TestImageCreator.java @@ -8,7 +8,7 @@ /** * Contains static methods to create sample png files for testing Image-related classes. */ -public class TestImage { +public class TestImageCreator { public static final String TEST_IMAGE_NAME = "testFile"; From 8bde8b8f8913ca958efa5e538aee58b302c9b2a9 Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Thu, 24 Mar 2022 23:32:48 +0800 Subject: [PATCH 220/455] Modify error message --- .../java/seedu/address/logic/commands/LoadCourtCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/logic/commands/LoadCourtCommand.java b/src/main/java/seedu/address/logic/commands/LoadCourtCommand.java index ea356dd1c0c..376ec1c0c50 100644 --- a/src/main/java/seedu/address/logic/commands/LoadCourtCommand.java +++ b/src/main/java/seedu/address/logic/commands/LoadCourtCommand.java @@ -23,7 +23,7 @@ public class LoadCourtCommand extends Command { public static final String MESSAGE_SUCCESS = "Image has been loaded: %1$s"; - public static final String MESSAGE_IMAGE_INVALID = "Provided image name is invalid!"; + public static final String MESSAGE_IMAGE_INVALID = "Provided image cannot be loaded!"; private final Image image; From 321a94bdd6529ad3682ef46989db13236cde6444 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Fri, 25 Mar 2022 06:50:17 +0800 Subject: [PATCH 221/455] Edit clear person command to support person tagging to tasks --- .../address/logic/commands/ClearCommand.java | 38 +++++++++++++++++++ .../logic/commands/ClearCommandTest.java | 19 ++++++++++ .../seedu/address/testutil/TypicalTasks.java | 2 +- 3 files changed, 58 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/logic/commands/ClearCommand.java b/src/main/java/seedu/address/logic/commands/ClearCommand.java index 1325dfa5749..32b361d6995 100644 --- a/src/main/java/seedu/address/logic/commands/ClearCommand.java +++ b/src/main/java/seedu/address/logic/commands/ClearCommand.java @@ -2,8 +2,19 @@ import static java.util.Objects.requireNonNull; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import seedu.address.logic.EditTaskDescriptor; import seedu.address.model.AddressBook; import seedu.address.model.Model; +import seedu.address.model.name.Name; +import seedu.address.model.tag.Tag; +import seedu.address.model.task.Date; +import seedu.address.model.task.EndTime; +import seedu.address.model.task.StartTime; +import seedu.address.model.task.Task; /** * Clears the address book. @@ -17,7 +28,34 @@ public class ClearCommand extends Command { @Override public CommandResult execute(Model model) { requireNonNull(model); + List unfilteredTaskList = model.getUnfilteredTaskList(); + + // update tasks after clearing the address book + for (Task task: unfilteredTaskList) { + EditTaskDescriptor editTaskDescriptor = new EditTaskDescriptor(); + Set persons = new HashSet<>(); + editTaskDescriptor.setPersons(persons); + Task editedTask = createEditedTask(task, editTaskDescriptor); + model.setTask(task, editedTask); + } model.setAddressBook(new AddressBook()); return new CommandResult(MESSAGE_SUCCESS); } + + /** + * Creates and returns a {@code Task} with the details of {@code taskToEdit} + * edited with {@code editTaskDescriptor}. + */ + public static Task createEditedTask(Task taskToEdit, EditTaskDescriptor editTaskDescriptor) { + assert taskToEdit != null; + + Name updatedName = editTaskDescriptor.getName().orElse(taskToEdit.getName()); + Date updatedDate = editTaskDescriptor.getDate().orElse(taskToEdit.getDate()); + StartTime updatedStartTime = editTaskDescriptor.getStartTime().orElse(taskToEdit.getStartTime()); + EndTime updatedEndTime = editTaskDescriptor.getEndTime().orElse(taskToEdit.getEndTime()); + Set updatedTags = editTaskDescriptor.getTags().orElse(taskToEdit.getTags()); + Set updatedPersons = editTaskDescriptor.getPersons().orElse(taskToEdit.getPersons()); + return new Task(updatedName, updatedDate, + updatedStartTime, updatedEndTime, updatedTags, updatedPersons); + } } diff --git a/src/test/java/seedu/address/logic/commands/ClearCommandTest.java b/src/test/java/seedu/address/logic/commands/ClearCommandTest.java index dcf191f4547..993cec2946a 100644 --- a/src/test/java/seedu/address/logic/commands/ClearCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/ClearCommandTest.java @@ -2,14 +2,24 @@ import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static seedu.address.testutil.TypicalTasks.FIRST_TASK; +import static seedu.address.testutil.TypicalTasks.SECOND_TASK; +import static seedu.address.testutil.TypicalTasks.THIRD_TASK; import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + import org.junit.jupiter.api.Test; import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ModelManager; +import seedu.address.model.TaskBook; import seedu.address.model.UserPrefs; +import seedu.address.model.task.Task; +import seedu.address.testutil.TaskBuilder; public class ClearCommandTest { @@ -25,6 +35,15 @@ public void execute_emptyAddressBook_success() { public void execute_nonEmptyAddressBook_success() { Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); Model expectedModel = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + + Task editedFirstTask = new TaskBuilder(FIRST_TASK).withPersons().build(); + Task editedSecondTask = new TaskBuilder(SECOND_TASK).withPersons().build(); + Task editedThirdTask = new TaskBuilder(THIRD_TASK).withPersons().build(); + List tasks = new ArrayList<>(Arrays.asList(editedFirstTask, editedSecondTask, editedThirdTask)); + TaskBook newTaskBook = new TaskBook(); + newTaskBook.setTasks(tasks); + + expectedModel.setTaskBook(newTaskBook); expectedModel.setAddressBook(new AddressBook()); assertCommandSuccess(new ClearCommand(), model, ClearCommand.MESSAGE_SUCCESS, expectedModel); diff --git a/src/test/java/seedu/address/testutil/TypicalTasks.java b/src/test/java/seedu/address/testutil/TypicalTasks.java index ac82d610089..e6b8b226b03 100644 --- a/src/test/java/seedu/address/testutil/TypicalTasks.java +++ b/src/test/java/seedu/address/testutil/TypicalTasks.java @@ -62,7 +62,7 @@ public class TypicalTasks { private TypicalTasks() {} // prevents instantiation /** - * Returns an {@code TaskBook} with all the typical persons. + * Returns an {@code TaskBook} with all the typical tasks. */ public static TaskBook getTypicalTaskBook() { TaskBook tb = new TaskBook(); From 80fbe6c710f946f08df6d02539ac177365037dca Mon Sep 17 00:00:00 2001 From: Pragya Date: Fri, 25 Mar 2022 13:22:17 +0800 Subject: [PATCH 222/455] Added edit task functionality --- .../address/logic/commands/EditCommand.java | 2 +- .../logic/commands/EditTaskCommand.java | 119 +++++++++++ .../logic/parser/AddressBookParser.java | 4 + .../logic/parser/EditTaskCommandParser.java | 101 +++++++++ .../java/seedu/address/model/TaskBook.java | 4 +- .../logic/commands/EditTaskCommandTest.java | 130 ++++++++++++ .../parser/EditTaskCommandParserTest.java | 193 ++++++++++++++++++ .../address/testutil/TypicalIndexes.java | 1 + 8 files changed, 551 insertions(+), 3 deletions(-) create mode 100644 src/main/java/seedu/address/logic/commands/EditTaskCommand.java create mode 100644 src/main/java/seedu/address/logic/parser/EditTaskCommandParser.java create mode 100644 src/test/java/seedu/address/logic/commands/EditTaskCommandTest.java create mode 100644 src/test/java/seedu/address/logic/parser/EditTaskCommandParserTest.java diff --git a/src/main/java/seedu/address/logic/commands/EditCommand.java b/src/main/java/seedu/address/logic/commands/EditCommand.java index a1b0d6fc292..1bdf598f3eb 100644 --- a/src/main/java/seedu/address/logic/commands/EditCommand.java +++ b/src/main/java/seedu/address/logic/commands/EditCommand.java @@ -35,7 +35,7 @@ */ public class EditCommand extends Command { - public static final String COMMAND_WORD = "edit-t"; + public static final String COMMAND_WORD = "edit-p"; public static final String MESSAGE_USAGE = COMMAND_WORD + ": Edits the details of the person identified " + "by the index number used in the displayed person list. " diff --git a/src/main/java/seedu/address/logic/commands/EditTaskCommand.java b/src/main/java/seedu/address/logic/commands/EditTaskCommand.java new file mode 100644 index 00000000000..b4a466cf1d1 --- /dev/null +++ b/src/main/java/seedu/address/logic/commands/EditTaskCommand.java @@ -0,0 +1,119 @@ +package seedu.address.logic.commands; + +import static java.util.Objects.requireNonNull; +import static seedu.address.logic.parser.CliSyntax.PREFIX_DATE; +import static seedu.address.logic.parser.CliSyntax.PREFIX_ENDTIME; +import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; +import static seedu.address.logic.parser.CliSyntax.PREFIX_STARTTIME; +import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; +import static seedu.address.model.Model.PREDICATE_SHOW_ALL_TASKS; + +import java.util.List; +import java.util.Set; + +import seedu.address.commons.core.Messages; +import seedu.address.commons.core.index.Index; +import seedu.address.logic.EditTaskDescriptor; +import seedu.address.logic.commands.exceptions.CommandException; +import seedu.address.model.Model; +import seedu.address.model.name.Name; +import seedu.address.model.tag.Tag; +import seedu.address.model.task.Date; +import seedu.address.model.task.EndTime; +import seedu.address.model.task.StartTime; +import seedu.address.model.task.Task; + +/** + * Edits the details of an existing person in the address book. + */ +public class EditTaskCommand extends Command { + + public static final String COMMAND_WORD = "edit-t"; + + public static final String MESSAGE_USAGE = COMMAND_WORD + ": Edits the details of the person identified " + + "by the index number used in the displayed person list. " + + "Existing values will be overwritten by the input values.\n" + + "Parameters: INDEX (must be a positive integer) " + + "[" + PREFIX_NAME + "NAME] " + + "[" + PREFIX_DATE + "DATE] " + + "[" + PREFIX_STARTTIME + "START TIME] " + + "[" + PREFIX_ENDTIME + "END TIME] " + + "[" + PREFIX_TAG + "TAG]...\n" + + "Example: " + COMMAND_WORD + " 1 " + + PREFIX_DATE + "22-12-2022 " + + PREFIX_ENDTIME + "23:59"; + + public static final String MESSAGE_EDIT_TASK_SUCCESS = "Edited Task: %1$s"; + public static final String MESSAGE_NOT_EDITED = "At least one field to edit must be provided."; + public static final String MESSAGE_DUPLICATE_TASK = "This task already exists in the address book."; + + private final Index index; + private final EditTaskDescriptor editTaskDescriptor; + + /** + * @param index of the task in the filtered task list to edit + * @param editTaskDescriptor details to edit the task with + */ + public EditTaskCommand(Index index, EditTaskDescriptor editTaskDescriptor) { + requireNonNull(index); + requireNonNull(editTaskDescriptor); + + this.index = index; + this.editTaskDescriptor = new EditTaskDescriptor(editTaskDescriptor); + } + + @Override + public CommandResult execute(Model model) throws CommandException { + requireNonNull(model); + List lastShownList = model.getFilteredTaskList(); + + if (index.getZeroBased() >= lastShownList.size()) { + throw new CommandException(Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX); + } + + Task taskToEdit = lastShownList.get(index.getZeroBased()); + Task editedTask = createEditedTask(taskToEdit, editTaskDescriptor); + + if (!taskToEdit.isSameTask(editedTask) && model.hasTask(editedTask)) { + throw new CommandException(MESSAGE_DUPLICATE_TASK); + } + + model.setTask(taskToEdit, editedTask); + model.updateFilteredTaskList(PREDICATE_SHOW_ALL_TASKS); + return new CommandResult(String.format(MESSAGE_EDIT_TASK_SUCCESS, editedTask)); + } + + /** + * Creates and returns a {@code Task} with the details of {@code taskToEdit} + * edited with {@code editTaskDescriptor}. + */ + private static Task createEditedTask(Task taskToEdit, EditTaskDescriptor editTaskDescriptor) { + assert taskToEdit != null; + + Name updatedName = editTaskDescriptor.getName().orElse(taskToEdit.getName()); + Date updatedDate = editTaskDescriptor.getDate().orElse(taskToEdit.getDate()); + StartTime updatedStartTime = editTaskDescriptor.getStartTime().orElse(taskToEdit.getStartTime()); + EndTime updatedEndTime = editTaskDescriptor.getEndTime().orElse(taskToEdit.getEndTime()); + Set updatedTags = editTaskDescriptor.getTags().orElse(taskToEdit.getTags()); + Set updatedPersons = editTaskDescriptor.getPersons().orElse(taskToEdit.getPersons()); + return new Task(updatedName, updatedDate, updatedStartTime, updatedEndTime, updatedTags, updatedPersons); + } + + @Override + public boolean equals(Object other) { + // short circuit if same object + if (other == this) { + return true; + } + + // instanceof handles nulls + if (!(other instanceof EditTaskCommand)) { + return false; + } + + // state check + EditTaskCommand e = (EditTaskCommand) other; + return index.equals(e.index) + && editTaskDescriptor.equals(e.editTaskDescriptor); + } +} diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index 1d25ef556a8..cd66a69383c 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -16,6 +16,7 @@ import seedu.address.logic.commands.DeleteTagCommand; import seedu.address.logic.commands.DeleteTaskCommand; import seedu.address.logic.commands.EditCommand; +import seedu.address.logic.commands.EditTaskCommand; import seedu.address.logic.commands.ExitCommand; import seedu.address.logic.commands.FindCommand; import seedu.address.logic.commands.FindTaskCommand; @@ -72,6 +73,9 @@ public Command parseCommand(String userInput) throws ParseException { case EditCommand.COMMAND_WORD: return new EditCommandParser().parse(arguments); + case EditTaskCommand.COMMAND_WORD: + return new EditTaskCommandParser().parse(arguments); + case DeleteCommand.COMMAND_WORD: return new DeleteCommandParser().parse(arguments); diff --git a/src/main/java/seedu/address/logic/parser/EditTaskCommandParser.java b/src/main/java/seedu/address/logic/parser/EditTaskCommandParser.java new file mode 100644 index 00000000000..31236bc734f --- /dev/null +++ b/src/main/java/seedu/address/logic/parser/EditTaskCommandParser.java @@ -0,0 +1,101 @@ +package seedu.address.logic.parser; + +import static java.util.Objects.requireNonNull; +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static seedu.address.logic.parser.CliSyntax.PREFIX_CONTACT; +import static seedu.address.logic.parser.CliSyntax.PREFIX_DATE; +import static seedu.address.logic.parser.CliSyntax.PREFIX_ENDTIME; +import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; +import static seedu.address.logic.parser.CliSyntax.PREFIX_STARTTIME; +import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; + +import java.util.Collection; +import java.util.Collections; +import java.util.Optional; +import java.util.Set; + +import seedu.address.commons.core.index.Index; +import seedu.address.logic.EditTaskDescriptor; +import seedu.address.logic.commands.EditTaskCommand; +import seedu.address.logic.parser.exceptions.ParseException; +import seedu.address.model.name.Name; +import seedu.address.model.tag.Tag; + +/** + * Parses input arguments and creates a new EditCommand object + */ +public class EditTaskCommandParser implements Parser { + + /** + * Parses the given {@code String} of arguments in the context of the EditTaskCommand + * and returns an EditTaskCommand object for execution. + * @throws ParseException if the user input does not conform the expected format + */ + public EditTaskCommand parse(String args) throws ParseException { + requireNonNull(args); + ArgumentMultimap argMultimap = + ArgumentTokenizer.tokenize(args, PREFIX_NAME, PREFIX_DATE, PREFIX_STARTTIME, + PREFIX_ENDTIME, PREFIX_TAG, PREFIX_CONTACT); + + Index index; + + try { + index = ParserUtil.parseIndex(argMultimap.getPreamble()); + } catch (ParseException pe) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, EditTaskCommand.MESSAGE_USAGE), pe); + } + + EditTaskDescriptor editTaskDescriptor = new EditTaskDescriptor(); + if (argMultimap.getValue(PREFIX_NAME).isPresent()) { + editTaskDescriptor.setName(ParserUtil.parseName(argMultimap.getValue(PREFIX_NAME).get())); + } + if (argMultimap.getValue(PREFIX_DATE).isPresent()) { + editTaskDescriptor.setDate(ParserUtil.parseDate(argMultimap.getValue(PREFIX_DATE).get())); + } + if (argMultimap.getValue(PREFIX_STARTTIME).isPresent()) { + editTaskDescriptor.setStartTime(ParserUtil.parseStartTime(argMultimap.getValue(PREFIX_STARTTIME).get())); + } + if (argMultimap.getValue(PREFIX_ENDTIME).isPresent()) { + editTaskDescriptor.setEndTime(ParserUtil.parseEndTime(argMultimap.getValue(PREFIX_ENDTIME).get())); + } + parseTagsForEdit(argMultimap.getAllValues(PREFIX_TAG)).ifPresent(editTaskDescriptor::setTags); + parsePersonsForEdit(argMultimap.getAllValues(PREFIX_CONTACT)).ifPresent(editTaskDescriptor::setPersons); + + if (!editTaskDescriptor.isAnyFieldEdited()) { + throw new ParseException(EditTaskCommand.MESSAGE_NOT_EDITED); + } + + return new EditTaskCommand(index, editTaskDescriptor); + } + + /** + * Parses {@code Collection tags} into a {@code Set} if {@code tags} is non-empty. + * If {@code tags} contain only one element which is an empty string, it will be parsed into a + * {@code Set} containing zero tags. + */ + private Optional> parseTagsForEdit(Collection tags) throws ParseException { + assert tags != null; + + if (tags.isEmpty()) { + return Optional.empty(); + } + Collection tagSet = tags.size() == 1 && tags.contains("") ? Collections.emptySet() : tags; + return Optional.of(ParserUtil.parseTags(tagSet)); + } + + /** + * Parses {@code Collection persons} into a {@code Set} if {@code persons} is non-empty. + * If {@code persons} contain only one element which is an empty string, it will be parsed into a + * {@code Set} containing zero persons]. + */ + private Optional> parsePersonsForEdit(Collection persons) throws ParseException { + assert persons != null; + + if (persons.isEmpty()) { + return Optional.empty(); + } + Collection nameSet = persons.size() == 1 && persons.contains("") ? Collections.emptySet() : persons; + return Optional.of(ParserUtil.parseNames(nameSet)); + } + +} diff --git a/src/main/java/seedu/address/model/TaskBook.java b/src/main/java/seedu/address/model/TaskBook.java index 46ba54d8dec..9cd5a286517 100644 --- a/src/main/java/seedu/address/model/TaskBook.java +++ b/src/main/java/seedu/address/model/TaskBook.java @@ -32,7 +32,7 @@ public class TaskBook implements ReadOnlyTaskBook { public TaskBook() {} /** - * Creates an AddressBook using the Persons in the {@code toBeCopied} + * Creates an TaskBook using the tasks in the {@code toBeCopied} */ public TaskBook(ReadOnlyTaskBook toBeCopied) { this(); @@ -61,7 +61,7 @@ public void resetData(ReadOnlyTaskBook newData) { //// task-level operations /** - * Returns true if a task with the same identity as {@code task} exists in the address book. + * Returns true if a task with the same identity as {@code task} exists in the task book. */ public boolean hasTask(Task task) { requireNonNull(task); diff --git a/src/test/java/seedu/address/logic/commands/EditTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/EditTaskCommandTest.java new file mode 100644 index 00000000000..175f4df3da7 --- /dev/null +++ b/src/test/java/seedu/address/logic/commands/EditTaskCommandTest.java @@ -0,0 +1,130 @@ +package seedu.address.logic.commands; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static seedu.address.logic.commands.CommandTestUtil.DESC_TASK1; +import static seedu.address.logic.commands.CommandTestUtil.DESC_TASK2; +import static seedu.address.logic.commands.CommandTestUtil.VALID_DATE_TASK1; +import static seedu.address.logic.commands.CommandTestUtil.VALID_NAME_TASK1; +import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_MEET; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; +import static seedu.address.testutil.TypicalIndexes.TASK_FIRST_INDEX; +import static seedu.address.testutil.TypicalIndexes.TASK_SECOND_INDEX; +import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; + +import org.junit.jupiter.api.Test; + +import seedu.address.commons.core.Messages; +import seedu.address.commons.core.index.Index; +import seedu.address.logic.EditTaskDescriptor; +import seedu.address.model.AddressBook; +import seedu.address.model.Model; +import seedu.address.model.ModelManager; +import seedu.address.model.UserPrefs; +import seedu.address.model.task.Task; +import seedu.address.testutil.EditTaskDescriptorBuilder; +import seedu.address.testutil.TaskBuilder; + +/** + * Contains integration tests (interaction with the Model) and unit tests for EditTaskCommand. + */ +public class EditTaskCommandTest { + + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + + @Test + public void execute_allFieldsSpecifiedUnfilteredList_success() { + Task editedTask = new TaskBuilder().build(); + EditTaskDescriptor descriptor = new EditTaskDescriptorBuilder(editedTask).build(); + EditTaskCommand editTaskCommand = new EditTaskCommand(TASK_FIRST_INDEX, descriptor); + + String expectedMessage = String.format(EditTaskCommand.MESSAGE_EDIT_TASK_SUCCESS, editedTask); + + Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), + model.getTaskBook(), new UserPrefs()); + expectedModel.setTask(model.getFilteredTaskList().get(0), editedTask); + + assertCommandSuccess(editTaskCommand, model, expectedMessage, expectedModel); + } + + @Test + public void execute_someFieldsSpecifiedUnfilteredList_success() { + Index indexLastTask = Index.fromOneBased(model.getFilteredTaskList().size()); + Task lastTask = model.getFilteredTaskList().get(indexLastTask.getZeroBased()); + + TaskBuilder taskInList = new TaskBuilder(lastTask); + Task editedTask = taskInList.withName(VALID_NAME_TASK1).withDate(VALID_DATE_TASK1) + .withTags(VALID_TAG_MEET).build(); + + EditTaskDescriptor descriptor = new EditTaskDescriptorBuilder().withName(VALID_NAME_TASK1) + .withDate(VALID_DATE_TASK1).withTags(VALID_TAG_MEET).build(); + EditTaskCommand editTaskCommand = new EditTaskCommand(indexLastTask, descriptor); + + String expectedMessage = String.format(EditTaskCommand.MESSAGE_EDIT_TASK_SUCCESS, editedTask); + + Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), + model.getTaskBook(), new UserPrefs()); + expectedModel.setTask(lastTask, editedTask); + + assertCommandSuccess(editTaskCommand, model, expectedMessage, expectedModel); + } + + @Test + public void execute_noFieldSpecifiedUnfilteredList_success() { + EditTaskCommand editTaskCommand = new EditTaskCommand(TASK_FIRST_INDEX, new EditTaskDescriptor()); + Task editedTask = model.getFilteredTaskList().get(TASK_FIRST_INDEX.getZeroBased()); + + String expectedMessage = String.format(EditTaskCommand.MESSAGE_EDIT_TASK_SUCCESS, editedTask); + + Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), + model.getTaskBook(), new UserPrefs()); + + assertCommandSuccess(editTaskCommand, model, expectedMessage, expectedModel); + } + + @Test + public void execute_duplicatePersonUnfilteredList_failure() { + Task firstTask = model.getFilteredTaskList().get(TASK_FIRST_INDEX.getZeroBased()); + EditTaskDescriptor descriptor = new EditTaskDescriptorBuilder(firstTask).build(); + EditTaskCommand editTaskCommand = new EditTaskCommand(TASK_SECOND_INDEX, descriptor); + + assertCommandFailure(editTaskCommand, model, EditTaskCommand.MESSAGE_DUPLICATE_TASK); + } + + @Test + public void execute_invalidPersonIndexUnfilteredList_failure() { + Index outOfBoundIndex = Index.fromOneBased(model.getFilteredTaskList().size() + 1); + EditTaskDescriptor descriptor = new EditTaskDescriptorBuilder().withName(VALID_NAME_TASK1).build(); + EditTaskCommand editTaskCommand = new EditTaskCommand(outOfBoundIndex, descriptor); + + assertCommandFailure(editTaskCommand, model, Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX); + } + + @Test + public void equals() { + final EditTaskCommand standardCommand = new EditTaskCommand(TASK_FIRST_INDEX, DESC_TASK1); + + // same values -> returns true + EditTaskDescriptor copyDescriptor = new EditTaskDescriptor(DESC_TASK1); + EditTaskCommand commandWithSameValues = new EditTaskCommand(TASK_FIRST_INDEX, copyDescriptor); + assertTrue(standardCommand.equals(commandWithSameValues)); + + // same object -> returns true + assertTrue(standardCommand.equals(standardCommand)); + + // null -> returns false + assertFalse(standardCommand.equals(null)); + + // different types -> returns false + assertFalse(standardCommand.equals(new ClearCommand())); + + // different index -> returns false + assertFalse(standardCommand.equals(new EditTaskCommand(TASK_SECOND_INDEX, DESC_TASK1))); + + // different descriptor -> returns false + assertFalse(standardCommand.equals(new EditTaskCommand(TASK_FIRST_INDEX, DESC_TASK2))); + } + +} diff --git a/src/test/java/seedu/address/logic/parser/EditTaskCommandParserTest.java b/src/test/java/seedu/address/logic/parser/EditTaskCommandParserTest.java new file mode 100644 index 00000000000..4181c9e62d9 --- /dev/null +++ b/src/test/java/seedu/address/logic/parser/EditTaskCommandParserTest.java @@ -0,0 +1,193 @@ +package seedu.address.logic.parser; + +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static seedu.address.logic.commands.CommandTestUtil.DATE_DESC_TASK1; +import static seedu.address.logic.commands.CommandTestUtil.DATE_DESC_TASK2; +import static seedu.address.logic.commands.CommandTestUtil.ENDTIME_DESC_TASK1; +import static seedu.address.logic.commands.CommandTestUtil.ENDTIME_DESC_TASK2; +import static seedu.address.logic.commands.CommandTestUtil.INVALID_TASK_DATE_DESC; +import static seedu.address.logic.commands.CommandTestUtil.INVALID_TASK_ENDTIME_DESC; +import static seedu.address.logic.commands.CommandTestUtil.INVALID_TASK_NAME_DESC; +import static seedu.address.logic.commands.CommandTestUtil.INVALID_TASK_STARTTIME_DESC; +import static seedu.address.logic.commands.CommandTestUtil.INVALID_TASK_TAG_DESC; +import static seedu.address.logic.commands.CommandTestUtil.NAME_DESC_TASK1; +import static seedu.address.logic.commands.CommandTestUtil.STARTTIME_DESC_TASK1; +import static seedu.address.logic.commands.CommandTestUtil.STARTTIME_DESC_TASK2; +import static seedu.address.logic.commands.CommandTestUtil.TAG_DESC_EVENT; +import static seedu.address.logic.commands.CommandTestUtil.TAG_DESC_MEET; +import static seedu.address.logic.commands.CommandTestUtil.VALID_DATE_TASK1; +import static seedu.address.logic.commands.CommandTestUtil.VALID_DATE_TASK2; +import static seedu.address.logic.commands.CommandTestUtil.VALID_ENDTIME_TASK1; +import static seedu.address.logic.commands.CommandTestUtil.VALID_ENDTIME_TASK2; +import static seedu.address.logic.commands.CommandTestUtil.VALID_NAME_TASK1; +import static seedu.address.logic.commands.CommandTestUtil.VALID_STARTTIME_TASK1; +import static seedu.address.logic.commands.CommandTestUtil.VALID_STARTTIME_TASK2; +import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_EVENT; +import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_MEET; +import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; +import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; +import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; +import static seedu.address.testutil.TypicalIndexes.TASK_FIRST_INDEX; +import static seedu.address.testutil.TypicalIndexes.TASK_SECOND_INDEX; +import static seedu.address.testutil.TypicalIndexes.TASK_THIRD_INDEX; + +import org.junit.jupiter.api.Test; + +import seedu.address.commons.core.index.Index; +import seedu.address.logic.EditTaskDescriptor; +import seedu.address.logic.commands.EditTaskCommand; +import seedu.address.model.name.Name; +import seedu.address.model.tag.Tag; +import seedu.address.model.task.Date; +import seedu.address.model.task.EndTime; +import seedu.address.model.task.StartTime; +import seedu.address.testutil.EditTaskDescriptorBuilder; + +public class EditTaskCommandParserTest { + + private static final String TAG_EMPTY = " " + PREFIX_TAG; + + private static final String MESSAGE_INVALID_FORMAT = + String.format(MESSAGE_INVALID_COMMAND_FORMAT, EditTaskCommand.MESSAGE_USAGE); + + private EditTaskCommandParser parser = new EditTaskCommandParser(); + + @Test + public void parse_missingParts_failure() { + // no index specified + assertParseFailure(parser, VALID_NAME_TASK1, MESSAGE_INVALID_FORMAT); + + // no field specified + assertParseFailure(parser, "1", EditTaskCommand.MESSAGE_NOT_EDITED); + + // no index and no field specified + assertParseFailure(parser, "", MESSAGE_INVALID_FORMAT); + } + + @Test + public void parse_invalidPreamble_failure() { + // negative index + assertParseFailure(parser, "-5" + NAME_DESC_TASK1, MESSAGE_INVALID_FORMAT); + + // zero index + assertParseFailure(parser, "0" + NAME_DESC_TASK1, MESSAGE_INVALID_FORMAT); + + // invalid arguments being parsed as preamble + assertParseFailure(parser, "1 some string", MESSAGE_INVALID_FORMAT); + + // invalid prefix being parsed as preamble + assertParseFailure(parser, "1 i/ string", MESSAGE_INVALID_FORMAT); + } + + @Test + public void parse_invalidValue_failure() { + assertParseFailure(parser, "1" + INVALID_TASK_NAME_DESC, Name.MESSAGE_CONSTRAINTS); + assertParseFailure(parser, "1" + INVALID_TASK_DATE_DESC, Date.MESSAGE_CONSTRAINTS); + assertParseFailure(parser, "1" + INVALID_TASK_STARTTIME_DESC, StartTime.MESSAGE_CONSTRAINTS); + assertParseFailure(parser, "1" + INVALID_TASK_ENDTIME_DESC, EndTime.MESSAGE_CONSTRAINTS); + assertParseFailure(parser, "1" + INVALID_TASK_TAG_DESC, Tag.MESSAGE_CONSTRAINTS); // invalid tag + + // invalid date followed by valid start time + assertParseFailure(parser, "1" + INVALID_TASK_DATE_DESC + STARTTIME_DESC_TASK1, Date.MESSAGE_CONSTRAINTS); + + // valid date followed by invalid date + assertParseFailure(parser, "1" + DATE_DESC_TASK2 + INVALID_TASK_DATE_DESC, Date.MESSAGE_CONSTRAINTS); + + // while parsing {@code PREFIX_TAG} alone will reset the tags of the {@code Task} being edited, + // parsing it together with a valid tag results in error + assertParseFailure(parser, "1" + TAG_DESC_MEET + TAG_DESC_EVENT + TAG_EMPTY, Tag.MESSAGE_CONSTRAINTS); + assertParseFailure(parser, "1" + TAG_DESC_MEET + TAG_EMPTY + TAG_DESC_EVENT, Tag.MESSAGE_CONSTRAINTS); + assertParseFailure(parser, "1" + TAG_EMPTY + TAG_DESC_MEET + TAG_DESC_EVENT, Tag.MESSAGE_CONSTRAINTS); + + // multiple invalid values, but only the first invalid value is captured + assertParseFailure(parser, "1" + INVALID_TASK_NAME_DESC + INVALID_TASK_DATE_DESC + + VALID_STARTTIME_TASK1 + VALID_DATE_TASK1, + Name.MESSAGE_CONSTRAINTS); + } + + @Test + public void parse_allFieldsSpecified_success() { + Index targetIndex = TASK_SECOND_INDEX; + String userInput = targetIndex.getOneBased() + DATE_DESC_TASK2 + TAG_DESC_MEET + + STARTTIME_DESC_TASK1 + ENDTIME_DESC_TASK1 + NAME_DESC_TASK1 + TAG_DESC_EVENT; + + EditTaskDescriptor descriptor = new EditTaskDescriptorBuilder().withName(VALID_NAME_TASK1) + .withDate(VALID_DATE_TASK2).withStartTime(VALID_STARTTIME_TASK1).withEndTime(VALID_ENDTIME_TASK1) + .withTags(VALID_TAG_MEET, VALID_TAG_EVENT).build(); + EditTaskCommand expectedCommand = new EditTaskCommand(targetIndex, descriptor); + + assertParseSuccess(parser, userInput, expectedCommand); + } + + @Test + public void parse_someFieldsSpecified_success() { + Index targetIndex = TASK_FIRST_INDEX; + String userInput = targetIndex.getOneBased() + DATE_DESC_TASK2 + STARTTIME_DESC_TASK1; + + EditTaskDescriptor descriptor = new EditTaskDescriptorBuilder().withDate(VALID_DATE_TASK2) + .withStartTime(VALID_STARTTIME_TASK1).build(); + EditTaskCommand expectedCommand = new EditTaskCommand(targetIndex, descriptor); + + assertParseSuccess(parser, userInput, expectedCommand); + } + + @Test + public void parse_oneFieldSpecified_success() { + // name + Index targetIndex = TASK_THIRD_INDEX; + String userInput = targetIndex.getOneBased() + NAME_DESC_TASK1; + EditTaskDescriptor descriptor = new EditTaskDescriptorBuilder().withName(VALID_NAME_TASK1).build(); + EditTaskCommand expectedCommand = new EditTaskCommand(targetIndex, descriptor); + assertParseSuccess(parser, userInput, expectedCommand); + + // Date + userInput = targetIndex.getOneBased() + DATE_DESC_TASK1; + descriptor = new EditTaskDescriptorBuilder().withDate(VALID_DATE_TASK1).build(); + expectedCommand = new EditTaskCommand(targetIndex, descriptor); + assertParseSuccess(parser, userInput, expectedCommand); + + // start time + userInput = targetIndex.getOneBased() + STARTTIME_DESC_TASK1; + descriptor = new EditTaskDescriptorBuilder().withStartTime(VALID_STARTTIME_TASK1).build(); + expectedCommand = new EditTaskCommand(targetIndex, descriptor); + assertParseSuccess(parser, userInput, expectedCommand); + + // end time + userInput = targetIndex.getOneBased() + ENDTIME_DESC_TASK1; + descriptor = new EditTaskDescriptorBuilder().withEndTime(VALID_ENDTIME_TASK1).build(); + expectedCommand = new EditTaskCommand(targetIndex, descriptor); + assertParseSuccess(parser, userInput, expectedCommand); + + // tags + userInput = targetIndex.getOneBased() + TAG_DESC_MEET; + descriptor = new EditTaskDescriptorBuilder().withTags(VALID_TAG_MEET).build(); + expectedCommand = new EditTaskCommand(targetIndex, descriptor); + assertParseSuccess(parser, userInput, expectedCommand); + } + + @Test + public void parse_multipleRepeatedFields_acceptsLast() { + Index targetIndex = TASK_FIRST_INDEX; + String userInput = targetIndex.getOneBased() + DATE_DESC_TASK1 + STARTTIME_DESC_TASK1 + ENDTIME_DESC_TASK1 + + TAG_DESC_MEET + DATE_DESC_TASK1 + STARTTIME_DESC_TASK1 + ENDTIME_DESC_TASK1 + TAG_DESC_MEET + + DATE_DESC_TASK2 + STARTTIME_DESC_TASK2 + ENDTIME_DESC_TASK2 + TAG_DESC_EVENT; + + EditTaskDescriptor descriptor = new EditTaskDescriptorBuilder().withDate(VALID_DATE_TASK2) + .withStartTime(VALID_STARTTIME_TASK2).withEndTime(VALID_ENDTIME_TASK2).withTags(VALID_TAG_MEET, + VALID_TAG_EVENT).build(); + EditTaskCommand expectedCommand = new EditTaskCommand(targetIndex, descriptor); + + assertParseSuccess(parser, userInput, expectedCommand); + } + + @Test + public void parse_resetTags_success() { + Index targetIndex = TASK_THIRD_INDEX; + String userInput = targetIndex.getOneBased() + TAG_EMPTY; + + EditTaskDescriptor descriptor = new EditTaskDescriptorBuilder().withTags().build(); + EditTaskCommand expectedCommand = new EditTaskCommand(targetIndex, descriptor); + + assertParseSuccess(parser, userInput, expectedCommand); + } +} diff --git a/src/test/java/seedu/address/testutil/TypicalIndexes.java b/src/test/java/seedu/address/testutil/TypicalIndexes.java index 6ce1df06045..fa564487c24 100644 --- a/src/test/java/seedu/address/testutil/TypicalIndexes.java +++ b/src/test/java/seedu/address/testutil/TypicalIndexes.java @@ -13,4 +13,5 @@ public class TypicalIndexes { public static final Index NOTE_SECOND_INDEX = Index.fromOneBased(2); public static final Index TASK_FIRST_INDEX = Index.fromOneBased(1); public static final Index TASK_SECOND_INDEX = Index.fromOneBased(2); + public static final Index TASK_THIRD_INDEX = Index.fromOneBased(2); } From ff1e65500173df735b0e1140546e4942ca95b0c9 Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Fri, 25 Mar 2022 14:45:39 +0800 Subject: [PATCH 223/455] Add rational comment on test case --- .../seedu/address/logic/parser/LoadCourtCommandParserTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/seedu/address/logic/parser/LoadCourtCommandParserTest.java b/src/test/java/seedu/address/logic/parser/LoadCourtCommandParserTest.java index db2cc67c267..3ad0e907e94 100644 --- a/src/test/java/seedu/address/logic/parser/LoadCourtCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/LoadCourtCommandParserTest.java @@ -32,7 +32,7 @@ public void parse_validArgs_returnsLoadCourtCommand() { @Test public void parse_invalidArgs_throwsParseException() { - assertParseFailure(parser, ".jpg", String.format( + assertParseFailure(parser, ".jpg", String.format(//'<' symbol is typically illegal for file names MESSAGE_INVALID_COMMAND_FORMAT, LoadCourtCommand.MESSAGE_USAGE)); assertParseFailure(parser, "/", String.format( From 8632eabd567aa6d0cacd5a97948af3eecf4e4527 Mon Sep 17 00:00:00 2001 From: Pragya Date: Fri, 25 Mar 2022 15:05:00 +0800 Subject: [PATCH 224/455] no message --- .../address/logic/parser/EditTaskCommandParserTest.java | 5 ++--- src/test/java/seedu/address/testutil/TypicalIndexes.java | 1 - 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/test/java/seedu/address/logic/parser/EditTaskCommandParserTest.java b/src/test/java/seedu/address/logic/parser/EditTaskCommandParserTest.java index 4181c9e62d9..82abd22de8c 100644 --- a/src/test/java/seedu/address/logic/parser/EditTaskCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/EditTaskCommandParserTest.java @@ -29,7 +29,6 @@ import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; import static seedu.address.testutil.TypicalIndexes.TASK_FIRST_INDEX; import static seedu.address.testutil.TypicalIndexes.TASK_SECOND_INDEX; -import static seedu.address.testutil.TypicalIndexes.TASK_THIRD_INDEX; import org.junit.jupiter.api.Test; @@ -134,7 +133,7 @@ public void parse_someFieldsSpecified_success() { @Test public void parse_oneFieldSpecified_success() { // name - Index targetIndex = TASK_THIRD_INDEX; + Index targetIndex = TASK_SECOND_INDEX; String userInput = targetIndex.getOneBased() + NAME_DESC_TASK1; EditTaskDescriptor descriptor = new EditTaskDescriptorBuilder().withName(VALID_NAME_TASK1).build(); EditTaskCommand expectedCommand = new EditTaskCommand(targetIndex, descriptor); @@ -182,7 +181,7 @@ public void parse_multipleRepeatedFields_acceptsLast() { @Test public void parse_resetTags_success() { - Index targetIndex = TASK_THIRD_INDEX; + Index targetIndex = TASK_SECOND_INDEX; String userInput = targetIndex.getOneBased() + TAG_EMPTY; EditTaskDescriptor descriptor = new EditTaskDescriptorBuilder().withTags().build(); diff --git a/src/test/java/seedu/address/testutil/TypicalIndexes.java b/src/test/java/seedu/address/testutil/TypicalIndexes.java index fa564487c24..6ce1df06045 100644 --- a/src/test/java/seedu/address/testutil/TypicalIndexes.java +++ b/src/test/java/seedu/address/testutil/TypicalIndexes.java @@ -13,5 +13,4 @@ public class TypicalIndexes { public static final Index NOTE_SECOND_INDEX = Index.fromOneBased(2); public static final Index TASK_FIRST_INDEX = Index.fromOneBased(1); public static final Index TASK_SECOND_INDEX = Index.fromOneBased(2); - public static final Index TASK_THIRD_INDEX = Index.fromOneBased(2); } From cf613db66c191351651af687d20923c95c73a28e Mon Sep 17 00:00:00 2001 From: simjunheng Date: Fri, 25 Mar 2022 15:54:49 +0800 Subject: [PATCH 225/455] Add the get-person feature and its relevant test cases --- .../java/seedu/address/commons/core/Tabs.java | 11 ++ .../address/logic/commands/CommandResult.java | 18 ++- .../address/logic/commands/ExitCommand.java | 4 +- .../logic/commands/GetPersonCommand.java | 95 ++++++++++++++ .../address/logic/commands/HelpCommand.java | 4 +- .../logic/parser/AddressBookParser.java | 4 + .../logic/parser/GetPersonCommandParser.java | 29 ++++ .../java/seedu/address/ui/MainWindow.java | 10 ++ src/main/resources/view/MainWindow.fxml | 2 +- .../typicalTasksTaskBook.json | 2 +- .../logic/commands/CommandResultTest.java | 22 +++- .../logic/commands/ExitCommandTest.java | 3 +- .../logic/commands/GetPersonCommandTest.java | 124 ++++++++++++++++++ .../logic/commands/HelpCommandTest.java | 3 +- .../parser/GetPersonCommandParserTest.java | 33 +++++ .../seedu/address/model/task/TaskTest.java | 16 +-- .../seedu/address/testutil/TypicalTasks.java | 2 +- 17 files changed, 356 insertions(+), 26 deletions(-) create mode 100644 src/main/java/seedu/address/commons/core/Tabs.java create mode 100644 src/main/java/seedu/address/logic/commands/GetPersonCommand.java create mode 100644 src/main/java/seedu/address/logic/parser/GetPersonCommandParser.java create mode 100644 src/test/java/seedu/address/logic/commands/GetPersonCommandTest.java create mode 100644 src/test/java/seedu/address/logic/parser/GetPersonCommandParserTest.java diff --git a/src/main/java/seedu/address/commons/core/Tabs.java b/src/main/java/seedu/address/commons/core/Tabs.java new file mode 100644 index 00000000000..bce0d2f0b00 --- /dev/null +++ b/src/main/java/seedu/address/commons/core/Tabs.java @@ -0,0 +1,11 @@ +package seedu.address.commons.core; + +/** + * Container for Tab Index. + */ +public class Tabs { + public static final int DEFAULT = -1; + public static final int CONTACT_TAB = 0; + public static final int TASK_TAB = 1; + public static final int STRATEGY_TAB = 2; +} diff --git a/src/main/java/seedu/address/logic/commands/CommandResult.java b/src/main/java/seedu/address/logic/commands/CommandResult.java index a1f5df6b840..0c28ff1974c 100644 --- a/src/main/java/seedu/address/logic/commands/CommandResult.java +++ b/src/main/java/seedu/address/logic/commands/CommandResult.java @@ -1,6 +1,7 @@ package seedu.address.logic.commands; import static java.util.Objects.requireNonNull; +import static seedu.address.commons.core.Tabs.DEFAULT; import java.util.Objects; @@ -17,13 +18,16 @@ public class CommandResult { /** The application should exit. */ private final boolean exit; + private final int tabPane; + /** * Constructs a {@code CommandResult} with the specified fields. */ - public CommandResult(String feedbackToUser, boolean showHelp, boolean exit) { + public CommandResult(String feedbackToUser, boolean showHelp, boolean exit, int tabPane) { this.feedbackToUser = requireNonNull(feedbackToUser); this.showHelp = showHelp; this.exit = exit; + this.tabPane = tabPane; } /** @@ -31,7 +35,7 @@ public CommandResult(String feedbackToUser, boolean showHelp, boolean exit) { * and other fields set to their default value. */ public CommandResult(String feedbackToUser) { - this(feedbackToUser, false, false); + this(feedbackToUser, false, false, DEFAULT); } public String getFeedbackToUser() { @@ -46,6 +50,10 @@ public boolean isExit() { return exit; } + public int getTabPane() { + return tabPane; + } + @Override public boolean equals(Object other) { if (other == this) { @@ -60,12 +68,13 @@ public boolean equals(Object other) { CommandResult otherCommandResult = (CommandResult) other; return feedbackToUser.equals(otherCommandResult.feedbackToUser) && showHelp == otherCommandResult.showHelp - && exit == otherCommandResult.exit; + && exit == otherCommandResult.exit + && tabPane == otherCommandResult.tabPane; } @Override public int hashCode() { - return Objects.hash(feedbackToUser, showHelp, exit); + return Objects.hash(feedbackToUser, showHelp, exit, tabPane); } @Override @@ -74,6 +83,7 @@ public String toString() { + "feedbackToUser='" + feedbackToUser + '\'' + ", showHelp=" + showHelp + ", exit=" + exit + + ", tabPane=" + tabPane + '}'; } } diff --git a/src/main/java/seedu/address/logic/commands/ExitCommand.java b/src/main/java/seedu/address/logic/commands/ExitCommand.java index 3dd85a8ba90..e7ed0d34abc 100644 --- a/src/main/java/seedu/address/logic/commands/ExitCommand.java +++ b/src/main/java/seedu/address/logic/commands/ExitCommand.java @@ -1,5 +1,7 @@ package seedu.address.logic.commands; +import static seedu.address.commons.core.Tabs.DEFAULT; + import seedu.address.model.Model; /** @@ -13,7 +15,7 @@ public class ExitCommand extends Command { @Override public CommandResult execute(Model model) { - return new CommandResult(MESSAGE_EXIT_ACKNOWLEDGEMENT, false, true); + return new CommandResult(MESSAGE_EXIT_ACKNOWLEDGEMENT, false, true, DEFAULT); } } diff --git a/src/main/java/seedu/address/logic/commands/GetPersonCommand.java b/src/main/java/seedu/address/logic/commands/GetPersonCommand.java new file mode 100644 index 00000000000..b9c38159bc7 --- /dev/null +++ b/src/main/java/seedu/address/logic/commands/GetPersonCommand.java @@ -0,0 +1,95 @@ +package seedu.address.logic.commands; + +import static java.util.Objects.requireNonNull; +import static seedu.address.commons.core.Tabs.CONTACT_TAB; +import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; + +import java.util.ArrayList; +import java.util.List; +import java.util.function.Predicate; + +import seedu.address.commons.core.Messages; +import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.exceptions.CommandException; +import seedu.address.model.Model; +import seedu.address.model.name.Name; +import seedu.address.model.person.Person; +import seedu.address.model.task.Task; + +/** + * Finds and lists all persons in address book whose name are in the specific task. + */ +public class GetPersonCommand extends Command { + + public static final String COMMAND_WORD = "get-person"; + + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Finds and lists all persons tagged to a specific task. " + + "The task is identified by the index number used in the TaskList.\n" + + "Parameters: INDEX (must be a positive integer)\n" + + "Example: " + COMMAND_WORD + " 1"; + + private final Index targetIndex; + + public GetPersonCommand(Index targetIndex) { + this.targetIndex = targetIndex; + } + + @Override + public CommandResult execute(Model model) throws CommandException { + requireNonNull(model); + model.updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); + List lastShownList = model.getFilteredTaskList(); + + if (targetIndex.getZeroBased() >= lastShownList.size()) { + throw new CommandException(Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX); + } + + Task indicatedTask = lastShownList.get(targetIndex.getZeroBased()); + List keywords = new ArrayList<>(); + for (Name name: indicatedTask.getPersons()) { + keywords.add(name.fullName); + } + CustomPersonNameContainsKeywordsPredicate predicate = + new CustomPersonNameContainsKeywordsPredicate(keywords); + model.updateFilteredPersonList(predicate); + + return new CommandResult( + String.format(Messages.MESSAGE_PERSONS_LISTED_OVERVIEW, model.getFilteredPersonList().size()), + false, false, CONTACT_TAB); + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof GetPersonCommand // instanceof handles nulls + && targetIndex.equals(((GetPersonCommand) other).targetIndex)); // state check + } + + /** + * Tests that a {@code Person}'s {@code Name} matches any of the keywords given. + * This class differs from {@code PersonNameContainsKeywordPredicate} as it takes in keywords that has + * more than one word + */ + public static class CustomPersonNameContainsKeywordsPredicate implements Predicate { + private final List keywords; + + public CustomPersonNameContainsKeywordsPredicate(List keywords) { + this.keywords = keywords; + } + + @Override + public boolean test(Person person) { + return keywords.stream() + .anyMatch(keyword -> person.getName().fullName.equals(keyword)); + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof CustomPersonNameContainsKeywordsPredicate // instanceof handles nulls + && keywords.equals(((CustomPersonNameContainsKeywordsPredicate) other).keywords)); // state check + } + } + +} diff --git a/src/main/java/seedu/address/logic/commands/HelpCommand.java b/src/main/java/seedu/address/logic/commands/HelpCommand.java index bf824f91bd0..379f74ab4db 100644 --- a/src/main/java/seedu/address/logic/commands/HelpCommand.java +++ b/src/main/java/seedu/address/logic/commands/HelpCommand.java @@ -1,5 +1,7 @@ package seedu.address.logic.commands; +import static seedu.address.commons.core.Tabs.DEFAULT; + import seedu.address.model.Model; /** @@ -16,6 +18,6 @@ public class HelpCommand extends Command { @Override public CommandResult execute(Model model) { - return new CommandResult(SHOWING_HELP_MESSAGE, true, false); + return new CommandResult(SHOWING_HELP_MESSAGE, true, false, DEFAULT); } } diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index 1d25ef556a8..31eba227c63 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -19,6 +19,7 @@ import seedu.address.logic.commands.ExitCommand; import seedu.address.logic.commands.FindCommand; import seedu.address.logic.commands.FindTaskCommand; +import seedu.address.logic.commands.GetPersonCommand; import seedu.address.logic.commands.HelpCommand; import seedu.address.logic.commands.ListCommand; import seedu.address.logic.commands.ListTaskCommand; @@ -90,6 +91,9 @@ public Command parseCommand(String userInput) throws ParseException { case FindTaskCommand.COMMAND_WORD: return new FindTaskCommandParser().parse(arguments); + case GetPersonCommand.COMMAND_WORD: + return new GetPersonCommandParser().parse(arguments); + case ListCommand.COMMAND_WORD: return new ListCommand(); diff --git a/src/main/java/seedu/address/logic/parser/GetPersonCommandParser.java b/src/main/java/seedu/address/logic/parser/GetPersonCommandParser.java new file mode 100644 index 00000000000..77895c35d39 --- /dev/null +++ b/src/main/java/seedu/address/logic/parser/GetPersonCommandParser.java @@ -0,0 +1,29 @@ +package seedu.address.logic.parser; + +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; + +import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.GetPersonCommand; +import seedu.address.logic.parser.exceptions.ParseException; + +/** + * Parses input arguments and creates a new GetPersonCommand object + */ +public class GetPersonCommandParser implements Parser { + + /** + * Parses the given {@code String} of arguments in the context of the GetPersonCommand + * and returns a GetPersonCommand object for execution. + * @throws ParseException if the user input does not conform the expected format + */ + public GetPersonCommand parse(String args) throws ParseException { + try { + Index index = ParserUtil.parseIndex(args); + return new GetPersonCommand(index); + } catch (ParseException pe) { + throw new ParseException( + String.format(MESSAGE_INVALID_COMMAND_FORMAT, GetPersonCommand.MESSAGE_USAGE), pe); + } + } + +} diff --git a/src/main/java/seedu/address/ui/MainWindow.java b/src/main/java/seedu/address/ui/MainWindow.java index 907162985e7..37ff646e367 100644 --- a/src/main/java/seedu/address/ui/MainWindow.java +++ b/src/main/java/seedu/address/ui/MainWindow.java @@ -5,6 +5,7 @@ import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.scene.control.MenuItem; +import javafx.scene.control.TabPane; import javafx.scene.control.TextInputControl; import javafx.scene.input.KeyCombination; import javafx.scene.input.KeyEvent; @@ -59,6 +60,9 @@ public class MainWindow extends UiPart { @FXML private StackPane statusbarPlaceholder; + @FXML + private TabPane tabPane; + /** * Creates a {@code MainWindow} with the given {@code Stage} and {@code Logic}. */ @@ -176,6 +180,10 @@ private void handleExit() { primaryStage.hide(); } + private void switchTab(int index) { + tabPane.getSelectionModel().select(index); + } + public PersonListPanel getPersonListPanel() { return personListPanel; } @@ -199,6 +207,8 @@ private CommandResult executeCommand(String commandText) throws CommandException handleExit(); } + switchTab(commandResult.getTabPane()); + return commandResult; } catch (CommandException | ParseException e) { logger.info("Invalid command: " + commandText); diff --git a/src/main/resources/view/MainWindow.fxml b/src/main/resources/view/MainWindow.fxml index 0a5cc6d02b0..638aec61b0a 100644 --- a/src/main/resources/view/MainWindow.fxml +++ b/src/main/resources/view/MainWindow.fxml @@ -46,7 +46,7 @@ - + diff --git a/src/test/data/JsonSerializableTaskBookTest/typicalTasksTaskBook.json b/src/test/data/JsonSerializableTaskBookTest/typicalTasksTaskBook.json index db42423a672..c36a45c43df 100644 --- a/src/test/data/JsonSerializableTaskBookTest/typicalTasksTaskBook.json +++ b/src/test/data/JsonSerializableTaskBookTest/typicalTasksTaskBook.json @@ -1,7 +1,7 @@ { "_comment": "TaskBook save file which contains the same Task values as in TypicalTasks#getTypicalTaskBook()", "tasks" : [ { - "name" : "Meeting", + "name" : "Meetings", "date" : "09-10-2022", "startTime" : "09:00", "endTime" : "10:00", diff --git a/src/test/java/seedu/address/logic/commands/CommandResultTest.java b/src/test/java/seedu/address/logic/commands/CommandResultTest.java index 19a062cbcf2..5f57fccd4fd 100644 --- a/src/test/java/seedu/address/logic/commands/CommandResultTest.java +++ b/src/test/java/seedu/address/logic/commands/CommandResultTest.java @@ -4,6 +4,8 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertNotEquals; import static org.junit.jupiter.api.Assertions.assertTrue; +import static seedu.address.commons.core.Tabs.CONTACT_TAB; +import static seedu.address.commons.core.Tabs.DEFAULT; import org.junit.jupiter.api.Test; @@ -14,7 +16,7 @@ public void equals() { // same values -> returns true assertTrue(commandResult.equals(new CommandResult("feedback"))); - assertTrue(commandResult.equals(new CommandResult("feedback", false, false))); + assertTrue(commandResult.equals(new CommandResult("feedback", false, false, DEFAULT))); // same object -> returns true assertTrue(commandResult.equals(commandResult)); @@ -29,10 +31,13 @@ public void equals() { assertFalse(commandResult.equals(new CommandResult("different"))); // different showHelp value -> returns false - assertFalse(commandResult.equals(new CommandResult("feedback", true, false))); + assertFalse(commandResult.equals(new CommandResult("feedback", true, false, DEFAULT))); // different exit value -> returns false - assertFalse(commandResult.equals(new CommandResult("feedback", false, true))); + assertFalse(commandResult.equals(new CommandResult("feedback", false, true, DEFAULT))); + + // different tab pane value -> returns false + assertFalse(commandResult.equals(new CommandResult("feedback", false, true, CONTACT_TAB))); } @Test @@ -46,17 +51,20 @@ public void hashcode() { assertNotEquals(commandResult.hashCode(), new CommandResult("different").hashCode()); // different showHelp value -> returns different hashcode - assertNotEquals(commandResult.hashCode(), new CommandResult("feedback", true, false).hashCode()); + assertNotEquals(commandResult.hashCode(), new CommandResult("feedback", true, false, DEFAULT).hashCode()); // different exit value -> returns different hashcode - assertNotEquals(commandResult.hashCode(), new CommandResult("feedback", false, true).hashCode()); + assertNotEquals(commandResult.hashCode(), new CommandResult("feedback", false, true, DEFAULT).hashCode()); + + // different tab pane value -> returns different hashcode + assertNotEquals(commandResult.hashCode(), new CommandResult("feedback", false, false, CONTACT_TAB).hashCode()); } @Test public void toStringTest() { - CommandResult commandResult = new CommandResult("feedback", true, false); + CommandResult commandResult = new CommandResult("feedback", true, false, DEFAULT); // same values -> returns same String assertEquals(commandResult.toString(), - new CommandResult("feedback", true, false).toString()); + new CommandResult("feedback", true, false, DEFAULT).toString()); } } diff --git a/src/test/java/seedu/address/logic/commands/ExitCommandTest.java b/src/test/java/seedu/address/logic/commands/ExitCommandTest.java index 9533c473875..37f8e26bfe3 100644 --- a/src/test/java/seedu/address/logic/commands/ExitCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/ExitCommandTest.java @@ -1,5 +1,6 @@ package seedu.address.logic.commands; +import static seedu.address.commons.core.Tabs.DEFAULT; import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; import static seedu.address.logic.commands.ExitCommand.MESSAGE_EXIT_ACKNOWLEDGEMENT; @@ -14,7 +15,7 @@ public class ExitCommandTest { @Test public void execute_exit_success() { - CommandResult expectedCommandResult = new CommandResult(MESSAGE_EXIT_ACKNOWLEDGEMENT, false, true); + CommandResult expectedCommandResult = new CommandResult(MESSAGE_EXIT_ACKNOWLEDGEMENT, false, true, DEFAULT); assertCommandSuccess(new ExitCommand(), model, expectedCommandResult, expectedModel); } } diff --git a/src/test/java/seedu/address/logic/commands/GetPersonCommandTest.java b/src/test/java/seedu/address/logic/commands/GetPersonCommandTest.java new file mode 100644 index 00000000000..0075bfd5edb --- /dev/null +++ b/src/test/java/seedu/address/logic/commands/GetPersonCommandTest.java @@ -0,0 +1,124 @@ +package seedu.address.logic.commands; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static seedu.address.commons.core.Tabs.CONTACT_TAB; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; +import static seedu.address.logic.commands.CommandTestUtil.showTaskAtIndex; +import static seedu.address.testutil.TypicalIndexes.TASK_FIRST_INDEX; +import static seedu.address.testutil.TypicalIndexes.TASK_SECOND_INDEX; +import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.jupiter.api.Test; + +import seedu.address.commons.core.Messages; +import seedu.address.commons.core.index.Index; +import seedu.address.model.Model; +import seedu.address.model.ModelManager; +import seedu.address.model.UserPrefs; +import seedu.address.model.name.Name; +import seedu.address.model.task.Task; + +/** + * Contains integration tests (interaction with the Model) and unit tests for + * {@code GetPersonCommand}. + */ +public class GetPersonCommandTest { + + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + private Model expectedModel = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + + @Test + public void execute_validIndexUnfilteredList_success() { + Task indicatedTask = model.getFilteredTaskList().get(TASK_FIRST_INDEX.getZeroBased()); + GetPersonCommand getPersonCommand = new GetPersonCommand(TASK_FIRST_INDEX); + + List keywords = new ArrayList<>(); + for (Name name: indicatedTask.getPersons()) { + keywords.add(name.fullName); + } + GetPersonCommand.CustomPersonNameContainsKeywordsPredicate predicate = + new GetPersonCommand.CustomPersonNameContainsKeywordsPredicate(keywords); + expectedModel.updateFilteredPersonList(predicate); + + String expectedMessage = String.format(Messages.MESSAGE_PERSONS_LISTED_OVERVIEW, + expectedModel.getFilteredPersonList().size()); + CommandResult expectedCommandResult = + new CommandResult(expectedMessage, false, false, CONTACT_TAB); + + assertCommandSuccess(getPersonCommand, model, expectedCommandResult, expectedModel); + } + + @Test + public void execute_invalidIndexUnfilteredList_throwsCommandException() { + Index outOfBoundIndex = Index.fromOneBased(model.getFilteredTaskList().size() + 1); + + GetPersonCommand getPersonCommand = new GetPersonCommand(outOfBoundIndex); + + assertCommandFailure(getPersonCommand, model, Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX); + } + + @Test + public void execute_validIndexFilteredList_success() { + showTaskAtIndex(model, TASK_FIRST_INDEX); + + Task indicatedTask = model.getFilteredTaskList().get(TASK_FIRST_INDEX.getZeroBased()); + GetPersonCommand getPersonCommand = new GetPersonCommand(TASK_FIRST_INDEX); + + List keywords = new ArrayList<>(); + for (Name name: indicatedTask.getPersons()) { + keywords.add(name.fullName); + } + GetPersonCommand.CustomPersonNameContainsKeywordsPredicate predicate = + new GetPersonCommand.CustomPersonNameContainsKeywordsPredicate(keywords); + expectedModel.updateFilteredPersonList(predicate); + showTaskAtIndex(expectedModel, TASK_FIRST_INDEX); + + String expectedMessage = String.format(Messages.MESSAGE_PERSONS_LISTED_OVERVIEW, + expectedModel.getFilteredPersonList().size()); + CommandResult expectedCommandResult = + new CommandResult(expectedMessage, false, false, CONTACT_TAB); + + assertCommandSuccess(getPersonCommand, model, expectedCommandResult, expectedModel); + } + + @Test + public void execute_invalidIndexFilteredList_throwsCommandException() { + showTaskAtIndex(model, TASK_FIRST_INDEX); + + Index outOfBoundIndex = TASK_SECOND_INDEX; + // ensures that outOfBoundIndex is still in bounds of task book + assertTrue(outOfBoundIndex.getZeroBased() < model.getTaskBook().getTaskList().size()); + + GetPersonCommand getPersonCommand = new GetPersonCommand(outOfBoundIndex); + + assertCommandFailure(getPersonCommand, model, Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX); + } + + @Test + public void equals() { + GetPersonCommand getPersonFirstCommand = new GetPersonCommand(TASK_FIRST_INDEX); + GetPersonCommand getPersonSecondCommand = new GetPersonCommand(TASK_SECOND_INDEX); + + // same object -> returns true + assertTrue(getPersonFirstCommand.equals(getPersonFirstCommand)); + + // same values -> returns true + GetPersonCommand getPersonFirstCommandCopy = new GetPersonCommand(TASK_FIRST_INDEX); + assertTrue(getPersonFirstCommand.equals(getPersonFirstCommandCopy)); + + // different types -> returns false + assertFalse(getPersonFirstCommand.equals(1)); + + // null -> returns false + assertFalse(getPersonFirstCommand.equals(null)); + + // different person -> returns false + assertFalse(getPersonFirstCommand.equals(getPersonSecondCommand)); + } +} diff --git a/src/test/java/seedu/address/logic/commands/HelpCommandTest.java b/src/test/java/seedu/address/logic/commands/HelpCommandTest.java index 4904fc4352e..36982ff6a85 100644 --- a/src/test/java/seedu/address/logic/commands/HelpCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/HelpCommandTest.java @@ -1,5 +1,6 @@ package seedu.address.logic.commands; +import static seedu.address.commons.core.Tabs.DEFAULT; import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; import static seedu.address.logic.commands.HelpCommand.SHOWING_HELP_MESSAGE; @@ -14,7 +15,7 @@ public class HelpCommandTest { @Test public void execute_help_success() { - CommandResult expectedCommandResult = new CommandResult(SHOWING_HELP_MESSAGE, true, false); + CommandResult expectedCommandResult = new CommandResult(SHOWING_HELP_MESSAGE, true, false, DEFAULT); assertCommandSuccess(new HelpCommand(), model, expectedCommandResult, expectedModel); } } diff --git a/src/test/java/seedu/address/logic/parser/GetPersonCommandParserTest.java b/src/test/java/seedu/address/logic/parser/GetPersonCommandParserTest.java new file mode 100644 index 00000000000..b4294973c65 --- /dev/null +++ b/src/test/java/seedu/address/logic/parser/GetPersonCommandParserTest.java @@ -0,0 +1,33 @@ +package seedu.address.logic.parser; + +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; +import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; +import static seedu.address.testutil.TypicalIndexes.TASK_FIRST_INDEX; + +import org.junit.jupiter.api.Test; + +import seedu.address.logic.commands.GetPersonCommand; + +/** + * As we are only doing white-box testing, our test cases do not cover path variations + * outside of the GetPersonCommand code. For example, inputs "1" and "1 abc" take the + * same path through the GetPersonCommand, and therefore we test only one of them. + * The path variation for those two cases occur inside the ParserUtil, and + * therefore should be covered by the ParserUtilTest. + */ +public class GetPersonCommandParserTest { + + private GetPersonCommandParser parser = new GetPersonCommandParser(); + + @Test + public void parse_validArgs_returnsGetPersonCommand() { + assertParseSuccess(parser, "1", new GetPersonCommand(TASK_FIRST_INDEX)); + } + + @Test + public void parse_invalidArgs_throwsParseException() { + assertParseFailure(parser, "a", String.format(MESSAGE_INVALID_COMMAND_FORMAT, + GetPersonCommand.MESSAGE_USAGE)); + } +} diff --git a/src/test/java/seedu/address/model/task/TaskTest.java b/src/test/java/seedu/address/model/task/TaskTest.java index a06fd74c144..c5c3e4b426b 100644 --- a/src/test/java/seedu/address/model/task/TaskTest.java +++ b/src/test/java/seedu/address/model/task/TaskTest.java @@ -28,7 +28,7 @@ public void isSameTask() { assertFalse(FIRST_TASK.isSameTask(null)); // same name, all other attributes different -> returns true - Task editedFirstTask = new TaskBuilder().withName("Meeting").withDate("09-01-2011") + Task editedFirstTask = new TaskBuilder().withName("Meetings").withDate("09-01-2011") .withStartTime("00:00").withEndTime("01:00").withTags("hello").build(); assertTrue(FIRST_TASK.isSameTask(editedFirstTask)); @@ -40,7 +40,7 @@ public void isSameTask() { assertFalse(FIRST_TASK.isSameTask(editedFirstTask)); // name with trailing spaces, all other attributes same -> returns false - editedFirstTask = new TaskBuilder().withName("Meeting ").withDate("09-10-2022") + editedFirstTask = new TaskBuilder().withName("Meetings ").withDate("09-10-2022") .withStartTime("09:00").withEndTime("10:00") .withTags("friends", "colleagues") .withPersons(ALICE.getName().fullName, BENSON.getName().fullName).build(); @@ -54,35 +54,35 @@ public void hasDateTimeConflict() { assertTrue(FIRST_TASK.hasDateTimeConflict(FIRST_TASK)); // non-conflicting time range, all attributes remains the same -> returns false - Task editedFirstTask = new TaskBuilder().withName("Meeting").withDate("09-10-2022") + Task editedFirstTask = new TaskBuilder().withName("Meetings").withDate("09-10-2022") .withStartTime("00:00").withEndTime("01:00") .withTags("friends", "colleagues") .withPersons(ALICE.getName().fullName, BENSON.getName().fullName).build(); assertFalse(FIRST_TASK.hasDateTimeConflict(editedFirstTask)); // different date, all attributes remains the same -> returns false - editedFirstTask = new TaskBuilder().withName("Meeting").withDate("10-10-2022") + editedFirstTask = new TaskBuilder().withName("Meetings").withDate("10-10-2022") .withStartTime("09:00").withEndTime("10:00") .withTags("friends", "colleagues") .withPersons(ALICE.getName().fullName, BENSON.getName().fullName).build(); assertFalse(FIRST_TASK.hasDateTimeConflict(editedFirstTask)); // conflicting time range v1, all attributes remains the same -> returns true - editedFirstTask = new TaskBuilder().withName("Meeting").withDate("09-10-2022") + editedFirstTask = new TaskBuilder().withName("Meetings").withDate("09-10-2022") .withStartTime("09:00").withEndTime("10:30") .withTags("friends", "colleagues") .withPersons(ALICE.getName().fullName, BENSON.getName().fullName).build(); assertTrue(FIRST_TASK.hasDateTimeConflict(editedFirstTask)); // conflicting time range v2, all attributes remains the same -> returns true - editedFirstTask = new TaskBuilder().withName("Meeting").withDate("09-10-2022") + editedFirstTask = new TaskBuilder().withName("Meetings").withDate("09-10-2022") .withStartTime("09:30").withEndTime("10:30") .withTags("friends", "colleagues") .withPersons(ALICE.getName().fullName, BENSON.getName().fullName).build(); assertTrue(FIRST_TASK.hasDateTimeConflict(editedFirstTask)); // edited start time is the same as the original end time, all attributes remains the same -> returns false - editedFirstTask = new TaskBuilder().withName("Meeting").withDate("09-10-2022") + editedFirstTask = new TaskBuilder().withName("Meetings").withDate("09-10-2022") .withStartTime("10:00").withEndTime("10:30") .withTags("friends", "colleagues") .withPersons(ALICE.getName().fullName, BENSON.getName().fullName).build(); @@ -93,7 +93,7 @@ public void hasDateTimeConflict() { @Test public void equals() { // same values -> returns true - Task firstTaskCopy = new TaskBuilder().withName("Meeting").withDate("09-10-2022") + Task firstTaskCopy = new TaskBuilder().withName("Meetings").withDate("09-10-2022") .withStartTime("09:00").withEndTime("10:00") .withTags("friends", "colleagues") .withPersons(ALICE.getName().fullName, BENSON.getName().fullName).build(); diff --git a/src/test/java/seedu/address/testutil/TypicalTasks.java b/src/test/java/seedu/address/testutil/TypicalTasks.java index ac82d610089..7534e27ff5b 100644 --- a/src/test/java/seedu/address/testutil/TypicalTasks.java +++ b/src/test/java/seedu/address/testutil/TypicalTasks.java @@ -25,7 +25,7 @@ * A utility class containing a list of {@code Task} objects to be used in tests. */ public class TypicalTasks { - public static final Task FIRST_TASK = new TaskBuilder().withName("Meeting").withDate("09-10-2022") + public static final Task FIRST_TASK = new TaskBuilder().withName("Meetings").withDate("09-10-2022") .withStartTime("09:00").withEndTime("10:00") .withTags("friends", "colleagues").withPersons(ALICE.getName().fullName, BENSON.getName().fullName).build(); public static final Task SECOND_TASK = new TaskBuilder().withName("Training").withDate("29-02-2020") From 9e3f44cf9ca6ac97dc132a6a91243f10786aa4dc Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Fri, 25 Mar 2022 16:33:25 +0800 Subject: [PATCH 226/455] Fix error in ModelClassDiagram --- docs/diagrams/ModelClassDiagram.png | Bin 34483 -> 35412 bytes docs/diagrams/ModelClassDiagram.puml | 3 ++- docs/images/ModelClassDiagram.png | Bin 34483 -> 35412 bytes 3 files changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/diagrams/ModelClassDiagram.png b/docs/diagrams/ModelClassDiagram.png index b6bf16b86e805ad9951a6a1820f6d0ca87c2446d..ed7f36f85b809549a9fb04427e2c3c37f38d8820 100644 GIT binary patch literal 35412 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%0Ds_9p)J~!Dn*3S>I&d`Mg18+2lG7) znZBUs_?vcMWJ=C6E1C0VV1ckm)>(be2`;jv4dzjH-4LA&!<5Ca`21!x; z#%mIwdM^QV13H0jmmU=RpXI<$bQ201Qi8((RJF-L#6ym$$u&FAs-ccVGL7!<6lZQw zlmdT{LKsbue?8V-xkS~_y9iB=tT3TGfH#B`f_<`KW54&5PfdD6akIAhYi|Z9K^@~Y z-A%C{XM#pVuns_q3bL-e$Bgmy3BZbHgG9pS!Bm|6epax*JBokJ8N|23q1fqPF5t@%e3 zW>c?^;u^FuQlNJeN`mPCH;4}^Cs0%IAI8*K1IENFADmitL zTca2MytN9twQTj_GF@C;cx`tt#$=@e3VH?xzK|I3E)T%$wSI}^@oEM{HH1HZ`icmm zIOhr!=d1$*1Aj;)P^83;C4igAci04b094CZhFz@E%xijriOpb6fci%D1#2)0k-71uh+pLaNIQEfwzHl28DQRcw(Zso9xGrRdZckT>+Ssw%cPl zW(y4r3=CgK{a@!i5t?WjhDD%1U}n32N7!4l$@ejyyE^}>W38(%j`h7SiQCQZTeyyQYA@-1S&97?cL_CpL8aRbmC__EG z{QOBz-@ktk4nTrCJcG?>1qhndVv)uG=J8n(rGryKe)g$1k>4pATNCK{5whs`XN!N& zj^+2XL1+cyH)?KsRiJT1py)|4vzBMo$%q&uj}(waRP?B+;UR;csWelczYq?~&82ZL zY4X+Z08$-ex7$`5Z(o`GJzuGrU6emS(?YykZ;5zK3jAmH_unY`Qv??l7Vf(u$ml+5 zd1|V`7eG=4OY|W3t*>$DutFUu4G7o|Bx4a}cSQMx+p z;*5BTIP0)-|8X-0`WwkJOPn<%YOJ@O5)r9NOEZBf$;7>uVNUnN&&{>%cQ#m=qQ>H` zc1}huW~LiX6Yw;EkbFl)fW#FSN3thQY10Vl|kJb~sAoKxq!%Z*j%>%GeMBzO)F zKJ$H5zpjJV=^jdYOh4T`@E}@~kb{7&S#`J^o1F^keGsOlZry!;pPdnNTfU@kcfDN0 zk@-#~G@OQ8eDvLugP<9RVZLq$x;hJ>5d^vxB{1+YGu#tO$ltYN@(DwIb0K83V4+7#xSgJ|fv1JsL zdmR7}(waMJ%sd&^rNz9nu3{pIMT1a^xzb9v zQzS#7_X*z(!vQ6$fE)8PYc*mJrviQ}mxf9O^q>K+yd(zuAc*&g9+GSrrIKg{Mn95k zYi(z$5RrV7FM<)74GE`NcE?#f;5icLGq{a|Nah{k^HBgPrK)P!*a%468(gqwr8>g1 z0EC4(ezE8RJ&SO}7<0LYEOB6!_4dK^2G1ldBAa*{k)sSLXdiWck*dkyui^CV!OJR< zyhDx$RkQ0=pviCz1$v0Xu$LB6;8hwZdajw!v9RH+*yuZ28&tdUv@rJ%AU`}8NRMOF zI1)LD=}X`62mKI$-DcV#<=WE3B>SwOyfb}(kYnC4P`^K4$Pd{3V;`Wp2Q*r_)MqA_ zmQ52(>lN@VT{)%JQJ_m7Jo+1esDWk(HJT|99Gk$vqx~g{SSBt;_U>wXBuBIP!#aR= zZR3T`NKk#9`&sHX)%huGzX)f~gVjS9inD>%lC-o95|HmTaCSng+uAIN0`19s^nuR{ z5Hb!vaFgNv;<0%P=+&w&guX{;l#`NZ>NT97Yl(4H4IglhYT!3nB8L6_skBO?nC4}v zU5_(ne$NpzB!;1Zpjs!ihRdeq1Lkt*D6Wd0>1qqSZL3>20gPCJhaIki5sYmOW`9e=Mo-{wR!s%Vsx3Mh_bDaV3})PIH*OQDZoWO&_)qw z_j^f5Dp+#Yovfwe{b*R6b1`Fmm2~W*EThqtoc%1c%4IC<1$3j0^zvpwU+Sa2Ts6p- zc)24}(WH8!)S?8U1Q9%c?n(7L==r1Dl$}*BzQH*krvoOd1DA%BjaEJTfjBGR@%C>9 zs?YoSDu|}qsi3e#c|S?lgnCI#n72-oon*^#5|V1K49WKS&UUG#E_WesSNReQ5T}V2 z)GR&5Bk)Vs;+T7T27@IkFWt#LXMXmG-*6nwuWO3y;w91J3SM3p4V-{$fiTuK0N;a)8SUAx6+l{M2cHwD4^Hb4v_9YTC@0Y>v z>62yu{k2}g%!6CFlri!wdn zluYfj#V~{(4wIA+iGRt{LHvp`CfRfbQCysTSeg%pEde_HGDkE;mThYd9$uSM+Cm4u zydj{xDV5IltkZ!RsmlzDHJz<2sBCx_%Z1(@yagXUqS#`nJ2NZc4BDq}w`MbROnWS& z_T6k}a_aJCDl#$w5{Zl2*JLEC2>%T=k(`~x>y!md+2|gSKB6tDEvAm%E@ zPn9efXUa2tNp*~gtSz^;usQWRAIs9$tqhZr9*;6ngvbS@H^%QFAu}1mBD85pdW$vGyG*Pa6>uF zGczT7it!fmv5qY|Wpvks^FavDx$vA|l2jaP+R^pZR#g$9q)k_977}cLI`DM+8ZFCj68}_c75#MjNIf^w12#+ZQZF+wnI0*3}S_8wn1G(e+f%bkfl_&B38=ML401-<~Zjs!~n< z7G(M)Vts65Fep^;WV~cgN(!8h57x;SqqGidBzl~FNcZ^kiWS(aV=f-7+P|WXFH3SJ zm3s%6=LEjvnV2+7JGEeS=J^EeoQjP{)uC83DtRvI>>_P-%k9K_9idP-B|Q;8>v_y+ zxAY!EaQeGWQpw-_b&?+%D#o;GA>%x8f%;6RX5pT)et$Y&Y#ZNh7-_aygxKTgg`4Y~t5Vh2>-+KLUMBNn)A?iXys*u=-$e@6 zjSPKvQ*B>$jh-aE={BhSQ3o%gvBc@tj6?vgxESj!|J4j)-0(!S$za(6|Mwq*r^dh7 zm(mAy8Tm`b$I-%z9Wp2t3XISTTI2?8-d0eeqQzg(H8AU2@0>-bw@1}kHB89@be^wul&o}59Al*eb`o)#tO)#~dkso7t8 zoIdhV(W>HnPq_|XfZ>~BpSF}Om&r0kd(#$eo|ulqR>0O^Fc+^9_&H%3_|lUlS4CRq z|EN*Ac#JH`mA!pLi}2y6V4GJa8Wnqb0sU+;6KmJ6iu9U%LWcOC66aqF3QgUE`@IH= zXeJ4jd`#`CcY=+juw`321yf30Vitwom3Cv3*4Hg2?E$-OTbLT1Fpe^&H)O|1B=F(3 z2hWtt$(y)*+gC)#n9wnho{hZ6Sflm9g6qJuYsoW8r^u<%%w6t&+Ey6&&kn~pjaudl zEP*MRlSd#KZT1TOe}2`pIl(l_CqhLbqRIdKd;gn`iUVjWS;75J&PsxToXE;(d3XMY zUf1DonbGx^^q1uP&o8u=BXWDm-3&@tA8D%Bew5i@!cFk`mkR`*v%?}gCl|S9Loe3KR_GOu9 z&oVg>6Ajg7)Fy`@0Tzyc{p;E0bZ;DCO{3LFl7#2$bGJvl`>*vik?n6{#=jnIo1bJY zv{jbiV$T#{2+|7-N*RtgKy_tw?r}jSv0Dblp44P8`4&e?oQH7}JoT*)j)H)ao~f6J z0+(;?IVsEQi~6xk$0x?@%OkJj&nIlJ8j>ZHj!KQlzFES6jl8g{_rrE&{_W4Ed@@VY zvl0nn^NiB*5}at{#~RIxpEJ1e zI-Z{OtE2vV#0c!;)1&< z!^wkmB!;?Xe%pFiFRsYENbXZl;g#aTF$vcW+Vc#X0lQIEbk{SY9;8u-k24=owpqYB zaB#70_koE_(d>hwNM%B6|7Tuhl53eQWWDn4Z%uav>2yzLfDz#8MB7Zqnm8v8e6xcs zl4s62e@->v%rEFqJK#tpZ2|nh`JM92TXAQsHE)CLYZIb6C0i6iHp>m~97Jpv`ngKS zt)XGyyz7;01#kAG5YR(3#g~lVP5rp;)c9xbXELeQUhmeT@a^vs-nF49Dp#)PXuou6 zglX$LX25w|Ky>eHaPP?|<&cj_Qt@1Dd%Ij(RrS(1;bNR6@c^L(jovj0@p}rl*S-U; z9{a^J9{`w?MQ<^CxPNCU?3EjF#c7JCAASy$N>H2X{fq=bk-^yA=s{C=C(puuBx(J+ z912Dx`xF(u=j!0w*tjsCTPC7APBd>i*GAfsm(c{ z0Rs+%L8DXtj{SLsXiEK0#wV1l!OYIQC$;w310T&hlpancn~;NK;XVRZmOz4^fbEQ4 zy*0l{Jy)q|x%bM10=cCLQ5kM}#<(`Bsw`aRp_T>UzscV#_AEAB^ge2E(P0Ardz zQlnR~tv|8t-m*^YW4c1Z6A&OXM>%8pI};YB(V5#LRIq5I>ao!{R>$ujoo23Yk5^Tr zxXhmRPdA`sjr%QQW@#We+$e~Ik+S$~;vH86J0pK@L86e2P=CyOtqp)JfO$HL={T7|HzUFXDRXd>hg5?{+RJ~2K05RX8=L6X zA`|Q{nhVLhyS>5f63fK&WcT$;uG0XwgZsX_eTAO1qUbjg310PIWRkzt7Ou=2xY;jz zU%{4I#SUND;90kf`{C@cAh_RE+-_0-Gi>oznM6kx(*a>HGXMlf=sBaD;@;P17v#LZ zIdUqBo*x`@K?o=J7Ubr(3E@497gMvYQ$UFUCWNb*js>RDc=udmC^cew)^?H2w|b!3 zzaD_7(E4EZ2m8ea$GsFWdw=;=bX0Pfbsf)j>&MooXDX;}%RWsW7+9H!O$J|Nm3Kye zOlD?iPnkhe=S{ZE{qDJRPSn5##|EI9 z{(O>#MpGcGmN#?My>;PEr(JKdIe%b5_i$g~SMiOQ1~rqIFLnBOBSnbo&Mh#!CQ*!W z@E|g={&s-PFa%@X-qsxq3#$!5%8?tZ%Wxf959T~j+I9b?zgD&m7IYJTc&~Qpr*~XP zo!8em`!(HW0Yei~H1zRIY#fOL$IjQoCA}yd#wDE&8DPj7 zK)kT4OXvIGgLIM4NNODHK3MZfR-i6via^ir%WWFK7MHGj9cmY`Q}qf|4piRg#t z*3$S@XSJO7tH6o)(zUu_2%7=tDf%*;5tNU}%5^QOuR+jvJD`!}j^4G=DUrP)N+$Nn)>hU@(SvZV+OCPh@f3p1yC#g;7n~~Xj-r#!7 ze;i!?u*0!o;|G!vnLl!SXfOy^KI|86p4RVosu^LjyX;R44}P|gdjj)8Qn7xb(xnmL zSQK;$ur$!`&M{_qwo||%M1_Rd9fZ~gl1~mKxuZS56^JUzO9FHv?=TfE^ELXW1OUg~ zat^T3oPrlz!F=YPasWF>+-T(}px|(Q|9T>x*f+%ve~oczL+oE4-2PxqwwwFyvaIpL zPv!?d2?(aXkrxKfz|2 z)6HTnQy9FH8f@d18p`0Hd)c1_`!-b1t2;bdQ!7i1Yt&sUE1psDr9Ia z{ZcIRig808--L-?^6$y}LCzOh*#7>r`_ypF73Z0g84#_y5TLl%+?X=?|c`ss_q6(8Oy^>z>S3= zR;*|#>IGq?UuM3N(R}AR-rIBAopn{Y%hk?))km=KyK=bmx!(~xI1X#GU;X^%c0CIA z`e$cKt^MXB$uGMwn|(+mt^gqDK5UKY$H+u%UZaN2q@>oA#KdwNUP<|9KpN}rYH5s+>9#A-b>?N3WZSg%*BZF6{bE8Ui z)*9Y(ms<+3lNtg#r<~to2QKT2q38WH%wWIX>>S)NcwxB^eudWPD_c=7x+vSS0rWtT z+>w^5Q|d*V0YDtZe|I1K!`AffElPuT&=+vr0c1j}j(wByqlO2BSS~YX^0zL-AikRd z$75>t=dR1jJc62>w|kB`usOhT@ULwR2HBVp;UZPf&lEPxJMuny7;tD^talgA4+pkA zxcIao*#U{Po4HG1`RW}uwUsWOFf3P3h8BJHsz(d@nM-w7f8UCPhJu=99c1Ij_x*(R z8D8dZJG}gfTo@;afz3{rwmRK5IDnF-Bgql~h^Sy6#oo&9O_9|;3F|Rgh_l|K=4`Im z$1+B8PlPK!+pUp+bzGtNt))7vJDWb3e5M#y9}ExK_Hs8GhG&F#>w>OH2ykflaWx&P zYkDr@6A<$Tpopa7#nQ_tDq!7NEq5AV=Zrt8$a!bis8}8zAAqr`ClvS`AjMuiWp`n4 zJ_HL01-U+FeZXnRm^C0C{alHQDL>4d10gOirTF}i-ex9Qr$xMD6PL?QtCV(;V|H!s zqcr9G>odf<&y(2Dm)>E5XDrwcTpfB&K@N8FTI(^t_OF^yyVg^jECYAo^ns_!KBa?))z^`GvUbp3a~?X;asU$y zU6?p%XEdiqCU`iD2ssEQ$yQIC>;!nn0fkj>R+m>E^^JThE@7Vp_Pbhgg5PMF(EdKI zO-iN))LuS~@SJl=;VJe`h3PzgEiTGXxt>XZUMWM2RC2RHaP`Cf$!VCzocZYuEy@6H zfaK~N1HaCO$7shEgn|J7tH`Q`jIxQ0jI7nFJ0Lo-i@-KQ7pQ&S>8_FD``zYrP(PU^ zm2!E!A$Ym^jVmsPa^&nrG-%>R&I2nAggJ&zktw`xhoffBv#0ac3$e1vclbBaKPrA8 z6c+p{aMUrL3La%c5MKZl+zMi^B@$r2+5a8%{!RNj{X~CnZvv~HWS)G%qM56!faI6$ zfHMBcu$0J}4x$Z>zK4@cZ=tEaydR^tsb+h7L*O7|!KFw5K_Vpg&H%muTGBlJ%-!Q% zvq$Sx9=Ua1Ah9!_siao}bV0*2@~r01ZM8OoAhvkb#5MhVdU~4dZ7@iHx;Mtf#r>HM zYVzH_#~bw(!oSM}t#N13!6N);D#&kn9eP7a+5`%NfH{u}$^LTs+PUN<`l2NWkfE676S8fXZ_lv!7+ zZ+HNdRp>MgY+9m-SVq2Do|E92ncFg4f#rxxQo$Tk3=Y=Dc*`4KGR0cVWLUb^8W4LVeEGtXLZ@;Y@ACz^0Xu;;7GgQ!hluf*kmxTCc zS9y1whROSAhh?+Jf#4$Z=Z{?E@24gUjMlqto?h>{;tZ$&zi@0aiSy5!>F-<`6aVUem>e5dKuR|Tc>==b+N@cRnuOhm$%bLFptd<^3{L_OmOM}BJIdDG-o|r&mvW}qcMH!r?N;?`*BAz5;PS1( z&8m|2tD$;oXZkbLhF5c9eqqZxCQw%FHJ&-7jnBbi0(Yz~5Ec5BP0V&va?7X;92o}? zQ@tCp*{R65H;hgkN-_;eEUEMrO9G(!{rxzF!|-qAw*qUExY%@2?@DbdhU#TAD)m*tdHL~k*YsCZUN&k5GO=NHrJ;5~wNL#QNi6sfSKT1r(baMm_6}h||>}phD$`q#?^OXAJ0fk?4 zO@Z}O6JbcogeR7(inhNG;1)4pQiOd&c=u|BN-^S}co?y%#AhNSPnyO;5#7oJnJF^& zblkPpE1$#FSBINFe)gzvOfFOR8pm~Qx-KvKM@0*`aZpd5N=lgOMDEa=NNjoFrva~O z6LJl%*(|Y({26vq>%z@OWESuN6w>y5a_4!+b%Uv9_cpi9;Sqz4&@Qe?$MY2zr9M9% z77O0mtCp9SfOu|gKQtirgeMr}#5Y1`JK%8f?8sbH3TN>*lox0qJ)C`J%aS zrz9WXhykSeaE{^G&1R48c8ocY>#%6OYrn3`G{tqb@?lbW)`TcC?c6&-*hcX(&Fy~C zMxjzw_E(MbQSeEc`xc|r_(p|p;=B0f{p32QjmL4 zA>f|YIv;ul@k#XL0DZjDKI^|HyhI7hBK~|*et2^Z)R(P;$c)iqiyg|%J<@6UqG1#a zrKOb{i&4?r(hc;uNGFvOIRv?|S1~DGahx1e!XvN^b!s@TPv@hcq8M)mslbW93L2FZ zBJm1x1t}E}H-cz%lj7sR?IkfTYu9u!0mbjakQq~Ao-;>3GXg#xwt==WOvq)#ws3C8 zKcCf%wzV=x{18X{n9fSXhu)m$psvAps0mL)Nepkx1ROw#LRs z6nOg~vtnH|uNoMjc9_VC3;G+FS6Tpkfd0`x6}dT|$h1;f9zZvT72)^>>b6C{kt zj@z85C_mVk>FVB-&mtNWM*=3I4D;F8dbD*9=^YGB{Jvcz!7PAT<9F$frx6!x=W2E~ zUg3y8)kBgRW7qjL^4Eu91%T~2CAit$litkZN(Y6)u-7gulad>@6()-L?A7`@d- zcRsQ?t03aI&0A8ROv!^d;6NOJ&J!p^$R6!d0zkTqaLT+V0GvW8ILo@7JT+-xe<&b3dfBW!z zuru7gBA=cr)xJeV%mst_JEs5g*kpoWM)po~{|~}Olm1JuAcFyk_5b!kgaEmU>$ndS z!e=JT27>|VdB~Xl>!bBm`>;ILC-H)u+@7#`95(%o&8)ZrQ%)~gVuO089|LfMfcZ&# zfg}^RSr(Yah2=A0`W!XB(;Cx`QwhCL4lJ1#D)WJ}KObAd(?3%YXmwKa`%*e*P6Wov zNsb%e?;aPiz?`M9^sx2n+r zi7II7W~0b`ao+Hofkr~Tc;tuxRjC%Y6|lMeQ$H2ApKzQIB`tA8?BPC)MX6Rs#HqW& zH%vBVZk}1;hyjBA7L@*+1wE?LU723j@9jhwu2=oVDGH-sBbFXRjsQndDo~-{S3lHM z`;@pTrFMzkZlN?~OL3LIKE>J#sk+eK&DJaYCO}ER6-Ze)4p} z)Z0?KDtYm3BAczumKos!1z*~H@#i5vW<1_M+f0EbWuU+JR$@VIWP)n2`_!b!2yLsg z?X}1g8sq}il&xMme#2=gwhW5C>rdx*m%Kc~^Eqjch!DXp=ckSZ+$?is=O12C;yMJh znz(ScI~o`h&QPm=NsW>{ZsqkJQF~vBzf}ijSuzrydtO|doOvOXls2>dj!lz;h^-F>GbH^ z*CN{n3usKWhjw`4L7Bd!)`ZzyJl>wdgNKGo%Z~M8AU~<`oDx+GO^{u!Z$aY``+nlZ zHekWEpsH)N!A0731otqIKp4TrFXwtducMB3<2ZyzCNWTWCDKF|IwOaXz7wWn zLuw@jGL9U|v0ez)Bp(-)9?st6!zDxU6&MyaoSOrGkL*S|4&2PYBX2q6GrUp(JQSwD zmC7z@3AgNI6(WX1+e)Y;V4^oV_hO>y%6WcM2TQL2wosL^o*v=n#<(J=kkKFmNwr&) z#v{XNRr{inaGITGoGPb;Ut}z23aQPSvsFGDX*5w|Pief{dGmu&ZaZeaLCG1fV-XTS znV&vMvKC2s|6P_4m=3S1y-5T2LtDEg^;Xd=Gvx~Hu6Q=S%(QX>_OcjbqnGzr*Uf_s zK4C~IBzL(5nLfBo5ANU;uZPZQtRzMM#W<*`X-V%Mg4XZulJ*V-hSX15dcoGEv~n+- zfp!on%-aN(8<1!MwbW&~WxF814blzo#iEsxE}nIqUR8>dXN@iu;Xxu*Yf9ozc5R$Q=Cg^uV}AeRFo+Ps{?3HpJ$VwN`(e`n`g+Cx;dYrBdv8aOK1 zoR88WXU(|9P(o241FnS@>WG{67uT1Ls3b`ZCexuWjQ+!BEv<}g+$6^adIkYbRNkiA z8(XXC|6>`)4u21B7%#jLd;4e4W^z4qfrS80*{IDt6*wt{`G?>5`>6b04SbZF+i-P~ zlm1uef4Tbqf9I~;E?IR25=-MM_3=1FjcJ3@@y+i4a?<~&ZW#ih{(L!^FRUEE2%tIw z0u}zt!x|S7ZO3c>&r|vj6NLCkd1PBs43by!v>tEY) zLuLK0i#UgYci{ b9f@$+CDTxihCdMBhkE};@^zuGhUfnRAbfR( literal 34483 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 me>k($k*Kd~QFO4{;E{KSen;*-~lKp#K2}HJvyB diff --git a/docs/diagrams/ModelClassDiagram.puml b/docs/diagrams/ModelClassDiagram.puml index 8917c27645f..568b8fa3a11 100644 --- a/docs/diagrams/ModelClassDiagram.puml +++ b/docs/diagrams/ModelClassDiagram.puml @@ -7,8 +7,8 @@ skinparam classBackgroundColor MODEL_COLOR Package Model <>{ Class "<>\nReadOnlyAddressBook" as ReadOnlyAddressBook Class "<>\nReadOnlyUserPrefs" as ReadOnlyUserPrefs -Class "<>\nModel" as Model Class "<>\nReadOnlyStrategyBoard" as ReadOnlyStrategyBoard +Class "<>\nModel" as Model Class AddressBook Class ModelManager Class StrategyBoard @@ -41,6 +41,7 @@ StrategyBoard *--> "1" UniquePlayerList ModelManager .up.|> Model Model .right.> ReadOnlyUserPrefs Model .left.> ReadOnlyAddressBook +Model .left.> ReadOnlyStrategyBoard ModelManager -left-> "1" AddressBook ModelManager -right-> "1" UserPrefs UserPrefs .up.|> ReadOnlyUserPrefs diff --git a/docs/images/ModelClassDiagram.png b/docs/images/ModelClassDiagram.png index b6bf16b86e805ad9951a6a1820f6d0ca87c2446d..ed7f36f85b809549a9fb04427e2c3c37f38d8820 100644 GIT binary patch literal 35412 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%0Ds_9p)J~!Dn*3S>I&d`Mg18+2lG7) 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 b9f@$+CDTxihCdMBhkE};@^zuGhUfnRAbfR( literal 34483 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 me>k($k*Kd~QFO4{;E{KSen;*-~lKp#K2}HJvyB From 868a3f86d89349516b27168ffa6310c16f51aac5 Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Fri, 25 Mar 2022 17:25:54 +0800 Subject: [PATCH 227/455] Fix strategyImage initialization being outside the constructor --- src/main/java/seedu/address/ui/StrategyPanel.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/main/java/seedu/address/ui/StrategyPanel.java b/src/main/java/seedu/address/ui/StrategyPanel.java index c7807dd527e..6a8c1559242 100644 --- a/src/main/java/seedu/address/ui/StrategyPanel.java +++ b/src/main/java/seedu/address/ui/StrategyPanel.java @@ -67,6 +67,7 @@ public void handle(MouseEvent t) { */ public StrategyPanel() { super(FXML); + initBackgroundImage(); initCircle(player1, 50, 100, 100, Color.RED); initCircle(player2, 50, 200, 200, Color.LIGHTBLUE); initCircle(player3, 30, 200, 200, Color.YELLOW); @@ -80,12 +81,18 @@ public void changeImageBackground(File file) { strategyImage.setImage((new Image((file.toURI().toString())))); } - private void initCircle(Circle circle, double rad, double x, double y, Paint color) { - strategyImage.setPreserveRatio(false); + /** + * Initializes the background image to allow it to resize automatically along with the window. + */ + private void initBackgroundImage() { + strategyImage.setPreserveRatio(false); //needs to be marked false to allow image to properly resize with window strategyImage.fitWidthProperty().bind(strategyAnchorPane.widthProperty()); strategyImage.fitHeightProperty().bind(strategyAnchorPane.heightProperty()); strategyImage.setManaged(false); - strategyImage.toBack(); + strategyImage.toBack(); //set image to back to avoid covering player icons + } + + private void initCircle(Circle circle, double rad, double x, double y, Paint color) { circle.setRadius(rad); circle.setFill(color); circle.setCenterX(x); From c23c25c6eeb1d7fbaeb1a8ae8719415737843042 Mon Sep 17 00:00:00 2001 From: juayhee Date: Sat, 26 Mar 2022 14:55:51 +0800 Subject: [PATCH 228/455] Change functionality of AddTagCommand to not require the tag qualifier t/ in order to add tags A tag can now be added like the following example: tag-add-p 1 friend (Instead of tag-add-p 1 t/friend) --- .../logic/parser/AddTagCommandParser.java | 32 ++++++++++++------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/src/main/java/seedu/address/logic/parser/AddTagCommandParser.java b/src/main/java/seedu/address/logic/parser/AddTagCommandParser.java index 419550f3209..edb6172685e 100644 --- a/src/main/java/seedu/address/logic/parser/AddTagCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/AddTagCommandParser.java @@ -4,6 +4,9 @@ import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; +import java.sql.Array; +import java.util.ArrayList; + import seedu.address.commons.core.index.Index; import seedu.address.commons.exceptions.IllegalValueException; import seedu.address.logic.commands.AddTagCommand; @@ -20,18 +23,23 @@ public class AddTagCommandParser implements Parser { */ public AddTagCommand parse(String args) throws ParseException { requireNonNull(args); - ArgumentMultimap argMultimap = ArgumentTokenizer.tokenize(args, PREFIX_TAG); - - // Get index with ParserUtil instead of ArgumentTokenizer methods - Index index; - try { - index = ParserUtil.parseIndex(argMultimap.getPreamble()); - } catch (IllegalValueException ive) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddTagCommand.MESSAGE_USAGE), ive); - } - - // Get tag name with ArgumentTokenizer - String tagName = argMultimap.getValue(PREFIX_TAG).orElse(""); + + // Tokenize all arguments + ArgumentMultimap argMultimap = ArgumentTokenizer.tokenize(args, new Prefix("")); + + // Convert the argMultimap into an ArrayList<> for easier access + // The @ArgumentTokenizer produces a map with 3 elements: + // Element 1: Whitespace + // Element 2: Index + // Element 3: tagName string + ArrayList values = new ArrayList<>(argMultimap.getAllValues(new Prefix(""))); + + // Get the index element in the ArrayList + int indexInt = Integer.parseInt(values.get(1)); + Index index = Index.fromOneBased(indexInt); // Convert to fromOneBased index since contact list starts from 1 + + // Get the tagName element in the ArrayList + String tagName = values.get(2); return new AddTagCommand(index, tagName); } From 264f908ebf1b5636ef7869da3ea068bc01855a2f Mon Sep 17 00:00:00 2001 From: juayhee Date: Sat, 26 Mar 2022 15:11:22 +0800 Subject: [PATCH 229/455] Add exception handling for when tags are not alphanumeric --- src/main/java/seedu/address/commons/core/Messages.java | 1 + .../java/seedu/address/logic/commands/AddTagCommand.java | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/address/commons/core/Messages.java b/src/main/java/seedu/address/commons/core/Messages.java index 663a64e1469..07ca115e280 100644 --- a/src/main/java/seedu/address/commons/core/Messages.java +++ b/src/main/java/seedu/address/commons/core/Messages.java @@ -12,5 +12,6 @@ public class Messages { public static final String MESSAGE_INVALID_NOTE_DISPLAYED_INDEX = "The note index provided is invalid"; public static final String MESSAGE_PERSONS_LISTED_OVERVIEW = "%1$d persons listed!"; public static final String MESSAGE_TASKS_LISTED_OVERVIEW = "%1$d tasks listed!"; + public static final String MESSAGE_INVALID_TAG = "Tags must be alphanumeric only!"; } diff --git a/src/main/java/seedu/address/logic/commands/AddTagCommand.java b/src/main/java/seedu/address/logic/commands/AddTagCommand.java index 9a99ba8aba7..04633902ef8 100644 --- a/src/main/java/seedu/address/logic/commands/AddTagCommand.java +++ b/src/main/java/seedu/address/logic/commands/AddTagCommand.java @@ -82,7 +82,7 @@ public CommandResult execute(Model model) throws CommandException { * @param personToEdit Person to be edited * @return New Person object with the tag added (tag list updated) */ - private Person addTagToPerson(Person personToEdit) { + private Person addTagToPerson(Person personToEdit) throws CommandException { // Keep all other fields the same Name updatedName = personToEdit.getName(); Phone updatedPhone = personToEdit.getPhone(); @@ -95,7 +95,11 @@ private Person addTagToPerson(Person personToEdit) { // Changing tags // Make modifiable copy since Person#getTags returns an unmodifiable Set Set tagList = new HashSet<>(personToEdit.getTags()); - tagList.add(new Tag(this.tagName)); + try { + tagList.add(new Tag(this.tagName)); + } catch (Exception e) { + throw new CommandException(Messages.MESSAGE_INVALID_TAG); + } return new Person(updatedName, updatedPhone, updatedEmail, updatedAddress, tagList, updatedStrengths, updatedWeaknesses, updatedMisc); From 5658461d0f1666be6a00186a9e1ae755724f75a4 Mon Sep 17 00:00:00 2001 From: juayhee Date: Sat, 26 Mar 2022 15:25:57 +0800 Subject: [PATCH 230/455] Update tests, fix checkstyle --- .../address/logic/parser/AddTagCommandParser.java | 10 +++++++--- .../address/logic/parser/AddTagCommandParserTest.java | 6 ++---- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/main/java/seedu/address/logic/parser/AddTagCommandParser.java b/src/main/java/seedu/address/logic/parser/AddTagCommandParser.java index edb6172685e..57161d217f8 100644 --- a/src/main/java/seedu/address/logic/parser/AddTagCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/AddTagCommandParser.java @@ -2,15 +2,13 @@ import static java.util.Objects.requireNonNull; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; -import java.sql.Array; import java.util.ArrayList; import seedu.address.commons.core.index.Index; -import seedu.address.commons.exceptions.IllegalValueException; import seedu.address.logic.commands.AddTagCommand; import seedu.address.logic.parser.exceptions.ParseException; +import seedu.address.model.tag.Tag; public class AddTagCommandParser implements Parser { /** @@ -40,6 +38,12 @@ public AddTagCommand parse(String args) throws ParseException { // Get the tagName element in the ArrayList String tagName = values.get(2); + try { + new Tag(tagName); + } catch (Exception e) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + AddTagCommand.MESSAGE_USAGE)); + } return new AddTagCommand(index, tagName); } diff --git a/src/test/java/seedu/address/logic/parser/AddTagCommandParserTest.java b/src/test/java/seedu/address/logic/parser/AddTagCommandParserTest.java index b71b820c2b3..67933c5e269 100644 --- a/src/test/java/seedu/address/logic/parser/AddTagCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/AddTagCommandParserTest.java @@ -18,15 +18,13 @@ class AddTagCommandParserTest { @Test void parse_validArgs_returnsAddTagCommand() { AddTagCommand expectedAddTagCommand = new AddTagCommand(INDEX_FIRST_PERSON, TAG1); - assertParseSuccess(parser, "1 t/TAG1", expectedAddTagCommand); - // Messy user input with multiple whitespaces - assertParseSuccess(parser, " 1 t/ TAG1", expectedAddTagCommand); + assertParseSuccess(parser, " 1 TAG1", expectedAddTagCommand); } @Test void parse_invalidArgs_throwsParseException() { assertParseFailure(parser, - "asdkfasdfl", + " 1 t/friend", String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddTagCommand.MESSAGE_USAGE)); } } From ef2e87de86057765e28958f98d223787b500f174 Mon Sep 17 00:00:00 2001 From: juayhee Date: Sat, 26 Mar 2022 15:41:26 +0800 Subject: [PATCH 231/455] Change functionality for DeleteTagCommand to not require tag qualifier t/ --- .../address/logic/commands/AddTagCommand.java | 1 + .../logic/parser/DeleteTagCommandParser.java | 33 ++++++++++++------- .../parser/DeleteTagCommandParserTest.java | 6 ++-- 3 files changed, 25 insertions(+), 15 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/AddTagCommand.java b/src/main/java/seedu/address/logic/commands/AddTagCommand.java index 9a99ba8aba7..30c8df26b6a 100644 --- a/src/main/java/seedu/address/logic/commands/AddTagCommand.java +++ b/src/main/java/seedu/address/logic/commands/AddTagCommand.java @@ -97,6 +97,7 @@ private Person addTagToPerson(Person personToEdit) { Set tagList = new HashSet<>(personToEdit.getTags()); tagList.add(new Tag(this.tagName)); + return new Person(updatedName, updatedPhone, updatedEmail, updatedAddress, tagList, updatedStrengths, updatedWeaknesses, updatedMisc); } diff --git a/src/main/java/seedu/address/logic/parser/DeleteTagCommandParser.java b/src/main/java/seedu/address/logic/parser/DeleteTagCommandParser.java index 6bd622208d9..81232cc0e33 100644 --- a/src/main/java/seedu/address/logic/parser/DeleteTagCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/DeleteTagCommandParser.java @@ -2,12 +2,13 @@ import static java.util.Objects.requireNonNull; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; + +import java.util.ArrayList; import seedu.address.commons.core.index.Index; -import seedu.address.commons.exceptions.IllegalValueException; import seedu.address.logic.commands.DeleteTagCommand; import seedu.address.logic.parser.exceptions.ParseException; +import seedu.address.model.tag.Tag; public class DeleteTagCommandParser implements Parser { /** @@ -20,20 +21,30 @@ public class DeleteTagCommandParser implements Parser { */ public DeleteTagCommand parse(String args) throws ParseException { requireNonNull(args); - ArgumentMultimap argMultimap = ArgumentTokenizer.tokenize(args, PREFIX_TAG); - // Get index with ParserUtil instead of ArgumentTokenizer methods - Index index; + // Tokenize all arguments + ArgumentMultimap argMultimap = ArgumentTokenizer.tokenize(args, new Prefix("")); + + // Convert the argMultimap into an ArrayList<> for easier access + // The @ArgumentTokenizer produces a map with 3 elements: + // Element 1: Whitespace + // Element 2: Index + // Element 3: tagName string + ArrayList values = new ArrayList<>(argMultimap.getAllValues(new Prefix(""))); + + // Get the index element in the ArrayList + int indexInt = Integer.parseInt(values.get(1)); + Index index = Index.fromOneBased(indexInt); // Convert to fromOneBased index since contact list starts from 1 + + // Get the tagName element in the ArrayList + String tagName = values.get(2); try { - index = ParserUtil.parseIndex(argMultimap.getPreamble()); - } catch (IllegalValueException ive) { + new Tag(tagName); + } catch (Exception e) { throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, - DeleteTagCommand.MESSAGE_USAGE), ive); + DeleteTagCommand.MESSAGE_USAGE)); } - // Get tag name with ArgumentTokenizer - String tagName = argMultimap.getValue(PREFIX_TAG).orElse(""); - return new DeleteTagCommand(index, tagName); } diff --git a/src/test/java/seedu/address/logic/parser/DeleteTagCommandParserTest.java b/src/test/java/seedu/address/logic/parser/DeleteTagCommandParserTest.java index c5c905b551e..63b7590ddeb 100644 --- a/src/test/java/seedu/address/logic/parser/DeleteTagCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/DeleteTagCommandParserTest.java @@ -18,15 +18,13 @@ class DeleteTagCommandParserTest { @Test void parse_validArgs_returnsDeleteTagCommand() { DeleteTagCommand expectedDeleteTagCommand = new DeleteTagCommand(INDEX_FIRST_PERSON, TAG1); - assertParseSuccess(parser, "1 t/friends", expectedDeleteTagCommand); - // Messy user input with multiple whitespaces - assertParseSuccess(parser, " 1 t/ friends", expectedDeleteTagCommand); + assertParseSuccess(parser, " 1 friends", expectedDeleteTagCommand); } @Test void parse_invalidArgs_throwsParseException() { assertParseFailure(parser, - "asdkfasdfl", + " 1 t/friend", String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteTagCommand.MESSAGE_USAGE)); } } From b83911f2fef85c9047ccc135e22f3c8732b65d6d Mon Sep 17 00:00:00 2001 From: simjunheng Date: Sun, 27 Mar 2022 11:12:42 +0800 Subject: [PATCH 232/455] Implements ruler for strategy panel --- src/main/resources/view/Extensions.css | 44 ++++++++++++++++++++++ src/main/resources/view/StrategyPanel.fxml | 5 ++- 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/src/main/resources/view/Extensions.css b/src/main/resources/view/Extensions.css index bfe82a85964..d4456ff3521 100644 --- a/src/main/resources/view/Extensions.css +++ b/src/main/resources/view/Extensions.css @@ -18,3 +18,47 @@ .tooltip-text { -fx-text-fill: white; } + +/* @@author simjunheng-reused */ +/* CSS for slider taken from https://stackoverflow.com/questions/53879734 */ + +.slider > .thumb, +.slider > .thumb:hover, +.slider:focused > .thumb{ + -fx-background-color: #ff6a6a; + -fx-background-insets: 2 0 -23 0; + -fx-padding: 1 1 0 1; + -fx-background-radius: 0; +} + +.slider:vertical > .thumb, +.slider:vertical > .thumb:hover, +.slider:vertical:focused > .thumb{ + -fx-background-color: #ff6a6a; + -fx-background-insets: 0 -23 0 2; + -fx-padding: 1 0 1 1; + -fx-background-radius: 0; +} + +.slider > .track, +.slider:vertical > .track { + -fx-background-color: transparent; + -fx-background-insets: 0; + -fx-background-radius: 0; + -fx-padding: 0; +} + +.slider > .axis { + -fx-tick-mark-stroke: transparent; + -fx-tick-label-font-size: 0.833333em; + -fx-tick-label-fill: #9a9a9a; + -fx-background-color: #333; +} + +.slider.axis-top > .axis { + -fx-side: TOP; +} + +.slider.axis-left > .axis { + -fx-side: LEFT; +} diff --git a/src/main/resources/view/StrategyPanel.fxml b/src/main/resources/view/StrategyPanel.fxml index a5b4a1fc925..f5913ff4fc6 100644 --- a/src/main/resources/view/StrategyPanel.fxml +++ b/src/main/resources/view/StrategyPanel.fxml @@ -1,5 +1,6 @@ + @@ -8,5 +9,7 @@ - + + + From ea1b00009440fed7d1ff959252a2a25b8c8e5c50 Mon Sep 17 00:00:00 2001 From: Pragya Date: Sun, 27 Mar 2022 11:23:23 +0800 Subject: [PATCH 233/455] uml bug --- docs/diagrams/AddTaskSequenceDiagram.puml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/diagrams/AddTaskSequenceDiagram.puml b/docs/diagrams/AddTaskSequenceDiagram.puml index a260c031e0b..fe250c48d0f 100644 --- a/docs/diagrams/AddTaskSequenceDiagram.puml +++ b/docs/diagrams/AddTaskSequenceDiagram.puml @@ -35,9 +35,8 @@ activate AddTaskCommand AddTaskCommand --> AddTaskCommandParser : p deactivate AddTaskCommand - AddTaskCommandParser --> Coach2K22Parser : p -deactivate AddTaskCommandParser. + AddTaskCommandParser -[hidden]-> Coach2K22Parser destroy AddTaskCommandParser From 4b2d7e350a07b69eedb5cc4ad9549e4ec59206dd Mon Sep 17 00:00:00 2001 From: juayhee Date: Sun, 27 Mar 2022 17:34:05 +0800 Subject: [PATCH 234/455] Update with syntax fixes --- docs/DeveloperGuide.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index a909c686390..d500caababf 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -219,7 +219,7 @@ makes use of the method `#setPerson()` and `#updateFilteredPersonList()` to add Given below is an example usage scenario of how the add tag mechanism behaves at each step. -Step 1: The user inputs `tag-add 1 t/friend` to add the tag "friend" to the first contact in the list. +Step 1: The user inputs `tag-add-p 1 friend` to add the tag "friend" to the first contact in the list. Step 2: This argument is passed into `LogicManager` which calls on `Coach2K22Parser#parseCommand()` to find a suitable parser class to process the user inputs. This initialises the `AddTagCommandParser` where its method `#parse` is called to process the user inputs. @@ -649,7 +649,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli **Extensions** -* 3a. The task list is empty. +* 2a. The task list is empty. Use case ends. @@ -666,10 +666,18 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli **Extensions** +* 1a. The task list is empty. + + Use case ends. + * 3a. The task does not have that specified tag. Use case resumes at step 2. +* 3b. The index provided is invalid. + + Use case resumes at step 2. + **Use case: Load new background image for strategy tab** From 1c6ff8d3d795bfd58666aa37be9c57dbca12c7d0 Mon Sep 17 00:00:00 2001 From: juayhee Date: Sun, 27 Mar 2022 17:34:59 +0800 Subject: [PATCH 235/455] Update syntax --- docs/UserGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index c586a0150c0..106c7c11581 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -318,7 +318,7 @@ Examples: Delete a tag from a selected task in our task list. -Format: `tag-del-t INDEX [t/TAG]` +Format: `tag-del-t INDEX TAG_NAME` Examples: * `tag-add-t 1 important` removes the tag "important" from the first task in the list. From 797005d683315826eaad9ef83a1b5b89e23c80e3 Mon Sep 17 00:00:00 2001 From: juayhee Date: Sun, 27 Mar 2022 17:36:04 +0800 Subject: [PATCH 236/455] Update syntax --- docs/diagrams/AddTagSequenceDiagram.puml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/diagrams/AddTagSequenceDiagram.puml b/docs/diagrams/AddTagSequenceDiagram.puml index c2fdb937259..09efe26187e 100644 --- a/docs/diagrams/AddTagSequenceDiagram.puml +++ b/docs/diagrams/AddTagSequenceDiagram.puml @@ -16,7 +16,7 @@ end box [-> LogicManager : execute("tag-add 1 t/friend") activate LogicManager -LogicManager -> Coach2K22Parser : parseCommand("tag-add 1 t/friend") +LogicManager -> Coach2K22Parser : parseCommand("tag-add-p 1 friend") activate Coach2K22Parser create AddTagCommandParser @@ -26,7 +26,7 @@ activate AddTagCommandParser AddTagCommandParser --> Coach2K22Parser deactivate AddTagCommandParser -Coach2K22Parser -> AddTagCommandParser : parse("1 t/friend") +Coach2K22Parser -> AddTagCommandParser : parse(" 1 friend") activate AddTagCommandParser create AddTagCommand From ff818456ba4445e1b5af69c305d90ffc3983def3 Mon Sep 17 00:00:00 2001 From: juayhee Date: Sun, 27 Mar 2022 17:47:24 +0800 Subject: [PATCH 237/455] Add classes for implementation of adding a tag to a task --- .../logic/commands/AddTagToTaskCommand.java | 13 +++++++++++++ .../logic/commands/AddTagToTaskCommandParser.java | 15 +++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 src/main/java/seedu/address/logic/commands/AddTagToTaskCommand.java create mode 100644 src/main/java/seedu/address/logic/commands/AddTagToTaskCommandParser.java diff --git a/src/main/java/seedu/address/logic/commands/AddTagToTaskCommand.java b/src/main/java/seedu/address/logic/commands/AddTagToTaskCommand.java new file mode 100644 index 00000000000..325725e30ff --- /dev/null +++ b/src/main/java/seedu/address/logic/commands/AddTagToTaskCommand.java @@ -0,0 +1,13 @@ +package seedu.address.logic.commands; + +import seedu.address.logic.commands.exceptions.CommandException; +import seedu.address.logic.parser.exceptions.ParseException; +import seedu.address.model.Model; + +public class AddTagToTaskCommand extends Command { + + public CommandResult execute(Model model) throws CommandException { + return null; + } + +} diff --git a/src/main/java/seedu/address/logic/commands/AddTagToTaskCommandParser.java b/src/main/java/seedu/address/logic/commands/AddTagToTaskCommandParser.java new file mode 100644 index 00000000000..7e91c797709 --- /dev/null +++ b/src/main/java/seedu/address/logic/commands/AddTagToTaskCommandParser.java @@ -0,0 +1,15 @@ +package seedu.address.logic.commands; + +import seedu.address.logic.parser.Parser; +import seedu.address.logic.parser.exceptions.ParseException; + +/** + * Parses input arguments and creates a new AddTaskCommand object + */ +public class AddTagToTaskCommandParser implements Parser { + + public AddTagToTaskCommand parse(String args) throws ParseException{ + return null; + } + +} From 70d6f1a599b7f3321c49de610bf0885d09add787 Mon Sep 17 00:00:00 2001 From: juayhee Date: Sun, 27 Mar 2022 18:09:25 +0800 Subject: [PATCH 238/455] Add classes for implementation of adding tags to tasks --- .../logic/commands/AddTagToTaskCommand.java | 18 +++++++ .../commands/AddTagToTaskCommandParser.java | 47 ++++++++++++++++++- .../logic/parser/AddTagCommandParser.java | 4 +- 3 files changed, 65 insertions(+), 4 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/AddTagToTaskCommand.java b/src/main/java/seedu/address/logic/commands/AddTagToTaskCommand.java index 325725e30ff..d802be167f3 100644 --- a/src/main/java/seedu/address/logic/commands/AddTagToTaskCommand.java +++ b/src/main/java/seedu/address/logic/commands/AddTagToTaskCommand.java @@ -1,10 +1,28 @@ package seedu.address.logic.commands; +import seedu.address.commons.core.index.Index; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.Model; public class AddTagToTaskCommand extends Command { + public static final String COMMAND_WORD = "tag-add-t"; + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Add a tag to a task from our task list. " + + "Parameters: " + + "INDEX (must be a positive integer) " + + "TAG NAME (must be non-empty)\n" + + "Example: " + COMMAND_WORD + " " + + "1 " + + "important"; + + public final Index index; + public final String tagName; + + public AddTagToTaskCommand(Index index, String tagName) { + this.index = index; + this.tagName = tagName; + } public CommandResult execute(Model model) throws CommandException { return null; diff --git a/src/main/java/seedu/address/logic/commands/AddTagToTaskCommandParser.java b/src/main/java/seedu/address/logic/commands/AddTagToTaskCommandParser.java index 7e91c797709..179279aaa6c 100644 --- a/src/main/java/seedu/address/logic/commands/AddTagToTaskCommandParser.java +++ b/src/main/java/seedu/address/logic/commands/AddTagToTaskCommandParser.java @@ -1,15 +1,58 @@ package seedu.address.logic.commands; +import static java.util.Objects.requireNonNull; +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; + +import java.util.ArrayList; + +import seedu.address.commons.core.index.Index; +import seedu.address.logic.parser.ArgumentMultimap; +import seedu.address.logic.parser.ArgumentTokenizer; import seedu.address.logic.parser.Parser; +import seedu.address.logic.parser.Prefix; import seedu.address.logic.parser.exceptions.ParseException; +import seedu.address.model.tag.Tag; /** * Parses input arguments and creates a new AddTaskCommand object */ public class AddTagToTaskCommandParser implements Parser { + /** + * Parses the given {@code String} of arguments in the context of the {@code AddTagToTaskCommandParser} + * and returns a {@code AddTagToTaskCommand} object for execution + * * @param args Input string by user EXCEPT COMMAND WORD + * + * @return AddTagToTaskCommand object with arguments loaded in + * @throws ParseException If the user input does not conform to the expected format + */ public AddTagToTaskCommand parse(String args) throws ParseException{ - return null; + requireNonNull(args); + + // Tokenize all arguments + ArgumentMultimap argMultimap = ArgumentTokenizer.tokenize(args, new Prefix("")); + + // Convert the argMultimap into an ArrayList<> for easier access + // The @ArgumentTokenizer produces a map with 3 elements: + // Element 1: Whitespace + // Element 2: Index + // Element 3: tagName string + ArrayList values = new ArrayList<>(argMultimap.getAllValues(new Prefix(""))); + + // Get the index element in the ArrayList + int indexInt = Integer.parseInt(values.get(1)); + Index index = Index.fromOneBased(indexInt); // Convert to fromOneBased index since contact list starts from 1 + + // Get the tagName element in the ArrayList + String tagName = values.get(2); + try { + new Tag(tagName); + } catch (Exception e) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + AddTagToTaskCommand.MESSAGE_USAGE)); + } + + return new AddTagToTaskCommand(index, tagName); } -} +} \ No newline at end of file diff --git a/src/main/java/seedu/address/logic/parser/AddTagCommandParser.java b/src/main/java/seedu/address/logic/parser/AddTagCommandParser.java index 57161d217f8..f5282e1a883 100644 --- a/src/main/java/seedu/address/logic/parser/AddTagCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/AddTagCommandParser.java @@ -12,8 +12,8 @@ public class AddTagCommandParser implements Parser { /** - * Parses the given {@code String} of arguments in the context of the {@code DeleteTagCommand} - * and returns a {@code DeleteTagCommand} object for execution + * Parses the given {@code String} of arguments in the context of the {@code AddTagCommand} + * and returns a {@code AddTagCommand} object for execution * * @param args Input string by user EXCEPT COMMAND WORD * * @return DeleteTagCommand object with arguments loaded in From e446a65478d625eaa42c2b1e4d36dd72854eca8e Mon Sep 17 00:00:00 2001 From: juayhee Date: Sun, 27 Mar 2022 18:13:32 +0800 Subject: [PATCH 239/455] Add case for AddTagToTaskCommand --- .../java/seedu/address/logic/parser/AddressBookParser.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index 54c9a72a869..0880876075c 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -8,6 +8,8 @@ import seedu.address.logic.commands.AddCommand; import seedu.address.logic.commands.AddTagCommand; +import seedu.address.logic.commands.AddTagToTaskCommand; +import seedu.address.logic.commands.AddTagToTaskCommandParser; import seedu.address.logic.commands.AddTaskCommand; import seedu.address.logic.commands.ClearCommand; import seedu.address.logic.commands.ClearTaskCommand; @@ -129,6 +131,9 @@ public Command parseCommand(String userInput) throws ParseException { case LoadCourtCommand.COMMAND_WORD: return new LoadCourtCommandParser().parse(arguments); + + case AddTagToTaskCommand.COMMAND_WORD: + return new AddTagToTaskCommandParser().parse(arguments); default: throw new ParseException(MESSAGE_UNKNOWN_COMMAND); From 301c0326559256fc5e08e8e50fc54849c4331476 Mon Sep 17 00:00:00 2001 From: juayhee Date: Sun, 27 Mar 2022 18:26:08 +0800 Subject: [PATCH 240/455] Implement part of AddTagToTaskCommand --- .../logic/commands/AddTagToTaskCommand.java | 46 ++++++++++++++++++- .../logic/parser/AddressBookParser.java | 2 +- 2 files changed, 46 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/AddTagToTaskCommand.java b/src/main/java/seedu/address/logic/commands/AddTagToTaskCommand.java index d802be167f3..1fbd3ab6fa4 100644 --- a/src/main/java/seedu/address/logic/commands/AddTagToTaskCommand.java +++ b/src/main/java/seedu/address/logic/commands/AddTagToTaskCommand.java @@ -1,9 +1,21 @@ package seedu.address.logic.commands; +import static java.util.Objects.requireNonNull; +import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; + +import java.util.List; +import java.util.Set; + +import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.Model; +import seedu.address.model.name.Name; +import seedu.address.model.task.Date; +import seedu.address.model.task.EndTime; +import seedu.address.model.task.StartTime; +import seedu.address.model.task.Task; public class AddTagToTaskCommand extends Command { public static final String COMMAND_WORD = "tag-add-t"; @@ -20,12 +32,44 @@ public class AddTagToTaskCommand extends Command { public final String tagName; public AddTagToTaskCommand(Index index, String tagName) { + requireAllNonNull(index, tagName); + this.index = index; this.tagName = tagName; } public CommandResult execute(Model model) throws CommandException { - return null; + requireNonNull(model); + List lastShownList = model.getFilteredTaskList(); + + // Exception when index out of bounds + if (index.getZeroBased() >= lastShownList.size()) { + throw new CommandException(Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX); + + Task taskToEdit = lastShownList.get(index.getZeroBased()); + Task editedTask; + } + } + /** + * Creates and returns a {@code Task} with a new tag {@code tagName} added to + * {@code taskToEdit} + * + * @param taskToEdit Person to be edited + * @return New Task object with the tag added (tag list updated) + */ + private Task addTaskToPerson(Task taskToEdit) throws CommandException { + // Keep all other fields the same + Name updatedName = taskToEdit.getName(); + Date updatedDate = taskToEdit.getDate(); + StartTime updatedStartTime = taskToEdit.getStartTime(); + EndTime updatedEndTime = taskToEdit.getEndTime(); + Set updatedPersons = taskToEdit.getPersons(); + + + + } + + } diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index 0880876075c..7e7395c54d1 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -131,7 +131,7 @@ public Command parseCommand(String userInput) throws ParseException { case LoadCourtCommand.COMMAND_WORD: return new LoadCourtCommandParser().parse(arguments); - + case AddTagToTaskCommand.COMMAND_WORD: return new AddTagToTaskCommandParser().parse(arguments); From 774da6d8be45d87a4219e511c4475400f30cefc3 Mon Sep 17 00:00:00 2001 From: juayhee Date: Sun, 27 Mar 2022 18:34:19 +0800 Subject: [PATCH 241/455] Implement AddTagToTaskCommand --- .../logic/commands/AddTagToTaskCommand.java | 43 +++++++++++++++++-- 1 file changed, 39 insertions(+), 4 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/AddTagToTaskCommand.java b/src/main/java/seedu/address/logic/commands/AddTagToTaskCommand.java index 1fbd3ab6fa4..780d58e2b6a 100644 --- a/src/main/java/seedu/address/logic/commands/AddTagToTaskCommand.java +++ b/src/main/java/seedu/address/logic/commands/AddTagToTaskCommand.java @@ -2,7 +2,11 @@ import static java.util.Objects.requireNonNull; import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; +import static seedu.address.logic.commands.AddTagCommand.MESSAGE_ADD_TAG_SUCCESS; +import static seedu.address.logic.commands.AddTagCommand.MESSAGE_DUPLICATE_TAG; +import static seedu.address.model.Model.PREDICATE_SHOW_ALL_TASKS; +import java.util.HashSet; import java.util.List; import java.util.Set; @@ -12,6 +16,7 @@ import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.Model; import seedu.address.model.name.Name; +import seedu.address.model.tag.Tag; import seedu.address.model.task.Date; import seedu.address.model.task.EndTime; import seedu.address.model.task.StartTime; @@ -27,6 +32,7 @@ public class AddTagToTaskCommand extends Command { + "Example: " + COMMAND_WORD + " " + "1 " + "important"; + public static final String MESSAGE_DUPlICATE_TAG_T = "This task already has this tag!"; public final Index index; public final String tagName; @@ -37,7 +43,7 @@ public AddTagToTaskCommand(Index index, String tagName) { this.index = index; this.tagName = tagName; } - + public CommandResult execute(Model model) throws CommandException { requireNonNull(model); List lastShownList = model.getFilteredTaskList(); @@ -45,13 +51,23 @@ public CommandResult execute(Model model) throws CommandException { // Exception when index out of bounds if (index.getZeroBased() >= lastShownList.size()) { throw new CommandException(Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX); + } + Task taskToEdit = lastShownList.get(index.getZeroBased()); + Task editedTask = addTagToTask(taskToEdit); - Task taskToEdit = lastShownList.get(index.getZeroBased()); - Task editedTask; + // Exception when a duplicate tag is added + Tag testTag = new Tag(this.tagName); + if (taskToEdit.getTags().contains(testTag)) { + throw new CommandException(MESSAGE_DUPlICATE_TAG_T); } + model.setTask(taskToEdit, editedTask); + model.updateFilteredTaskList(PREDICATE_SHOW_ALL_TASKS); + return new CommandResult(String.format(MESSAGE_ADD_TAG_SUCCESS, this.tagName)); + } + /** * Creates and returns a {@code Task} with a new tag {@code tagName} added to * {@code taskToEdit} @@ -59,7 +75,7 @@ public CommandResult execute(Model model) throws CommandException { * @param taskToEdit Person to be edited * @return New Task object with the tag added (tag list updated) */ - private Task addTaskToPerson(Task taskToEdit) throws CommandException { + private Task addTagToTask(Task taskToEdit) throws CommandException { // Keep all other fields the same Name updatedName = taskToEdit.getName(); Date updatedDate = taskToEdit.getDate(); @@ -67,9 +83,28 @@ private Task addTaskToPerson(Task taskToEdit) throws CommandException { EndTime updatedEndTime = taskToEdit.getEndTime(); Set updatedPersons = taskToEdit.getPersons(); + // Changing tags + // Make modifiable copy since Task#getTags returns an unmodifiable Set + Set tagList = new HashSet<>(taskToEdit.getTags()); + try { + tagList.add(new Tag(this.tagName)); + } catch (Exception e) { + throw new CommandException(Messages.MESSAGE_INVALID_TAG); + } + return new Task(updatedName, updatedDate, updatedStartTime, updatedEndTime, tagList, updatedPersons); } + @Override + public boolean equals(Object other) { + + return other == this // short circuit if same object + || (other instanceof AddTagToTaskCommand // instanceof handles nulls + && (index.equals(((AddTagToTaskCommand) other).index) + && tagName.equals((((AddTagToTaskCommand) other).tagName)))); + } } + + From 8ccaa6539930e918c537216916b882d08a730b4f Mon Sep 17 00:00:00 2001 From: juayhee Date: Sun, 27 Mar 2022 18:38:30 +0800 Subject: [PATCH 242/455] Fix checkstyle --- .../address/logic/commands/AddTagToTaskCommand.java | 12 ++++++++---- .../AddTagToTaskCommandParser.java | 11 ++++------- .../address/logic/parser/AddressBookParser.java | 1 - 3 files changed, 12 insertions(+), 12 deletions(-) rename src/main/java/seedu/address/logic/{commands => parser}/AddTagToTaskCommandParser.java (89%) diff --git a/src/main/java/seedu/address/logic/commands/AddTagToTaskCommand.java b/src/main/java/seedu/address/logic/commands/AddTagToTaskCommand.java index 780d58e2b6a..b609c9ec3a1 100644 --- a/src/main/java/seedu/address/logic/commands/AddTagToTaskCommand.java +++ b/src/main/java/seedu/address/logic/commands/AddTagToTaskCommand.java @@ -3,7 +3,6 @@ import static java.util.Objects.requireNonNull; import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; import static seedu.address.logic.commands.AddTagCommand.MESSAGE_ADD_TAG_SUCCESS; -import static seedu.address.logic.commands.AddTagCommand.MESSAGE_DUPLICATE_TAG; import static seedu.address.model.Model.PREDICATE_SHOW_ALL_TASKS; import java.util.HashSet; @@ -13,7 +12,6 @@ import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; import seedu.address.logic.commands.exceptions.CommandException; -import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.Model; import seedu.address.model.name.Name; import seedu.address.model.tag.Tag; @@ -32,11 +30,16 @@ public class AddTagToTaskCommand extends Command { + "Example: " + COMMAND_WORD + " " + "1 " + "important"; - public static final String MESSAGE_DUPlICATE_TAG_T = "This task already has this tag!"; + public static final String MESSAGE_DUPLICATE_TAG_T = "This task already has this tag!"; public final Index index; public final String tagName; + /** + * Public contructor for AddTagToTaskCommand + * @param index Index of target task + * @param tagName Tag to be added to the target task + */ public AddTagToTaskCommand(Index index, String tagName) { requireAllNonNull(index, tagName); @@ -44,6 +47,7 @@ public AddTagToTaskCommand(Index index, String tagName) { this.tagName = tagName; } + @Override public CommandResult execute(Model model) throws CommandException { requireNonNull(model); List lastShownList = model.getFilteredTaskList(); @@ -58,7 +62,7 @@ public CommandResult execute(Model model) throws CommandException { // Exception when a duplicate tag is added Tag testTag = new Tag(this.tagName); if (taskToEdit.getTags().contains(testTag)) { - throw new CommandException(MESSAGE_DUPlICATE_TAG_T); + throw new CommandException(MESSAGE_DUPLICATE_TAG_T); } model.setTask(taskToEdit, editedTask); diff --git a/src/main/java/seedu/address/logic/commands/AddTagToTaskCommandParser.java b/src/main/java/seedu/address/logic/parser/AddTagToTaskCommandParser.java similarity index 89% rename from src/main/java/seedu/address/logic/commands/AddTagToTaskCommandParser.java rename to src/main/java/seedu/address/logic/parser/AddTagToTaskCommandParser.java index 179279aaa6c..7542a600d40 100644 --- a/src/main/java/seedu/address/logic/commands/AddTagToTaskCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/AddTagToTaskCommandParser.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.parser; import static java.util.Objects.requireNonNull; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; @@ -6,10 +6,7 @@ import java.util.ArrayList; import seedu.address.commons.core.index.Index; -import seedu.address.logic.parser.ArgumentMultimap; -import seedu.address.logic.parser.ArgumentTokenizer; -import seedu.address.logic.parser.Parser; -import seedu.address.logic.parser.Prefix; +import seedu.address.logic.commands.AddTagToTaskCommand; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.tag.Tag; @@ -26,7 +23,7 @@ public class AddTagToTaskCommandParser implements Parser { * @throws ParseException If the user input does not conform to the expected format */ - public AddTagToTaskCommand parse(String args) throws ParseException{ + public AddTagToTaskCommand parse(String args) throws ParseException { requireNonNull(args); // Tokenize all arguments @@ -55,4 +52,4 @@ public AddTagToTaskCommand parse(String args) throws ParseException{ return new AddTagToTaskCommand(index, tagName); } -} \ No newline at end of file +} diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index 7e7395c54d1..d5a2a910c47 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -9,7 +9,6 @@ import seedu.address.logic.commands.AddCommand; import seedu.address.logic.commands.AddTagCommand; import seedu.address.logic.commands.AddTagToTaskCommand; -import seedu.address.logic.commands.AddTagToTaskCommandParser; import seedu.address.logic.commands.AddTaskCommand; import seedu.address.logic.commands.ClearCommand; import seedu.address.logic.commands.ClearTaskCommand; From 2a856efdbd0f433298643c430060e31ef7ab649c Mon Sep 17 00:00:00 2001 From: juayhee Date: Sun, 27 Mar 2022 18:40:25 +0800 Subject: [PATCH 243/455] Add test class for AddTagToTaskCommand --- .../commands/AddTagToTaskCommandTest.java | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 src/test/java/seedu/address/logic/commands/AddTagToTaskCommandTest.java diff --git a/src/test/java/seedu/address/logic/commands/AddTagToTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/AddTagToTaskCommandTest.java new file mode 100644 index 00000000000..36c7ad6c845 --- /dev/null +++ b/src/test/java/seedu/address/logic/commands/AddTagToTaskCommandTest.java @@ -0,0 +1,85 @@ +package seedu.address.logic.commands; + +import static org.junit.jupiter.api.Assertions.assertTrue; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; +import static seedu.address.logic.commands.CommandTestUtil.showPersonAtIndex; +import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; +import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_PERSON; +import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; + +import java.util.HashSet; +import java.util.Set; + +import org.junit.jupiter.api.Test; + +import seedu.address.commons.core.Messages; +import seedu.address.commons.core.index.Index; +import seedu.address.model.AddressBook; +import seedu.address.model.Model; +import seedu.address.model.ModelManager; +import seedu.address.model.TaskBook; +import seedu.address.model.UserPrefs; +import seedu.address.model.person.Person; +import seedu.address.model.tag.Tag; +import seedu.address.testutil.PersonBuilder; + +class AddTagToTaskCommandTest { + // Test tags + // Because PersonBuilder#withTags takes String ... instead of Set + private static final String TAG1 = "TAG1"; + + // Test model + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + + @Test + void execute_addTagCommandUnfilteredList_success() { + Person firstPerson = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); + + // Adding 1 more tag to the editedPerson + Set firstPersonTags = new HashSet<>(firstPerson.getTags()); // Copy of Set of ALICE (first person) + firstPersonTags.add(new Tag(TAG1)); + + // Convert Set to array for PersonBuilder#withTags + String[] firstPersonTagsStringArray = firstPersonTags + .stream() + .map(x -> x.tagName) + .toArray(String[]::new); + + Person editedPerson = new PersonBuilder(firstPerson).withTags(firstPersonTagsStringArray).build(); + + AddTagCommand addTagCommand = new AddTagCommand(INDEX_FIRST_PERSON, TAG1); + + String expectedMessage = String.format(AddTagCommand.MESSAGE_ADD_TAG_SUCCESS, TAG1); + + Model expectedModel = new ModelManager( + new AddressBook(model.getAddressBook()), + new TaskBook(model.getTaskBook()), + new UserPrefs()); + expectedModel.setPerson(firstPerson, editedPerson); + + assertCommandSuccess(addTagCommand, model, expectedMessage, expectedModel); + } + + @Test + public void execute_invalidPersonIndexFilteredList_failure() { + showPersonAtIndex(model, INDEX_FIRST_PERSON); + Index outOfBoundIndex = INDEX_SECOND_PERSON; + // ensures that outOfBoundIndex is still in bounds of address book list + assertTrue(outOfBoundIndex.getZeroBased() < model.getAddressBook().getPersonList().size()); + + AddTagCommand addTagCommand = new AddTagCommand(outOfBoundIndex, TAG1); + + assertCommandFailure(addTagCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + } + + @Test + public void equals() { + final AddTagCommand command = new AddTagCommand(INDEX_FIRST_PERSON, TAG1); + + // If they are the same objects, they are equal + assertTrue(command.equals(command)); + + } +} From 3ec472d0cf42599de4b135b8a2b22aad4a0a6e20 Mon Sep 17 00:00:00 2001 From: juayhee Date: Sun, 27 Mar 2022 19:22:45 +0800 Subject: [PATCH 244/455] Add tests for AddTagToTaskCommand --- .../logic/commands/AddTagToTaskCommand.java | 1 + .../commands/AddTagToTaskCommandTest.java | 46 +++++++++++-------- 2 files changed, 29 insertions(+), 18 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/AddTagToTaskCommand.java b/src/main/java/seedu/address/logic/commands/AddTagToTaskCommand.java index b609c9ec3a1..71380122152 100644 --- a/src/main/java/seedu/address/logic/commands/AddTagToTaskCommand.java +++ b/src/main/java/seedu/address/logic/commands/AddTagToTaskCommand.java @@ -31,6 +31,7 @@ public class AddTagToTaskCommand extends Command { + "1 " + "important"; public static final String MESSAGE_DUPLICATE_TAG_T = "This task already has this tag!"; + public static final String MESSAGE_ADD_TAG_SUCCESS = "Added tag: %1$s"; public final Index index; public final String tagName; diff --git a/src/test/java/seedu/address/logic/commands/AddTagToTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/AddTagToTaskCommandTest.java index 36c7ad6c845..a68c8bb115f 100644 --- a/src/test/java/seedu/address/logic/commands/AddTagToTaskCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddTagToTaskCommandTest.java @@ -4,8 +4,11 @@ import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; import static seedu.address.logic.commands.CommandTestUtil.showPersonAtIndex; +import static seedu.address.logic.commands.CommandTestUtil.showTaskAtIndex; import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_PERSON; +import static seedu.address.testutil.TypicalIndexes.TASK_FIRST_INDEX; +import static seedu.address.testutil.TypicalIndexes.TASK_SECOND_INDEX; import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; @@ -14,6 +17,8 @@ import org.junit.jupiter.api.Test; +import com.sun.javafx.scene.control.MultipleAdditionAndRemovedChange; + import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; import seedu.address.model.AddressBook; @@ -23,7 +28,9 @@ import seedu.address.model.UserPrefs; import seedu.address.model.person.Person; import seedu.address.model.tag.Tag; +import seedu.address.model.task.Task; import seedu.address.testutil.PersonBuilder; +import seedu.address.testutil.TaskBuilder; class AddTagToTaskCommandTest { // Test tags @@ -35,48 +42,51 @@ class AddTagToTaskCommandTest { @Test void execute_addTagCommandUnfilteredList_success() { - Person firstPerson = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); + Task firstTask = model.getFilteredTaskList().get(TASK_FIRST_INDEX.getZeroBased()); - // Adding 1 more tag to the editedPerson - Set firstPersonTags = new HashSet<>(firstPerson.getTags()); // Copy of Set of ALICE (first person) - firstPersonTags.add(new Tag(TAG1)); + // Adding 1 more tag to the firstTask + Set firstTaskTags = new HashSet<>(firstTask.getTags()); // Set copy of Shareholders Meeting (1st task) + firstTaskTags.add(new Tag(TAG1)); - // Convert Set to array for PersonBuilder#withTags - String[] firstPersonTagsStringArray = firstPersonTags + // Convert Set to array for TaskBuilder#withTags + String[] firstTaskTagsStringArray = firstTaskTags .stream() .map(x -> x.tagName) .toArray(String[]::new); - Person editedPerson = new PersonBuilder(firstPerson).withTags(firstPersonTagsStringArray).build(); + // Manually building the edited task + Task editedTask = new TaskBuilder(firstTask).withTags(firstTaskTagsStringArray).build(); - AddTagCommand addTagCommand = new AddTagCommand(INDEX_FIRST_PERSON, TAG1); + AddTagToTaskCommand addTagToTaskCommand = new AddTagToTaskCommand(TASK_FIRST_INDEX, TAG1); - String expectedMessage = String.format(AddTagCommand.MESSAGE_ADD_TAG_SUCCESS, TAG1); + String expectedMessage = String.format(AddTagToTaskCommand.MESSAGE_ADD_TAG_SUCCESS, TAG1); + // Manually building the expected model Model expectedModel = new ModelManager( new AddressBook(model.getAddressBook()), new TaskBook(model.getTaskBook()), new UserPrefs()); - expectedModel.setPerson(firstPerson, editedPerson); + expectedModel.setTask(firstTask, editedTask); + + assertCommandSuccess(addTagToTaskCommand, model, expectedMessage, expectedModel); - assertCommandSuccess(addTagCommand, model, expectedMessage, expectedModel); } @Test - public void execute_invalidPersonIndexFilteredList_failure() { - showPersonAtIndex(model, INDEX_FIRST_PERSON); - Index outOfBoundIndex = INDEX_SECOND_PERSON; + public void execute_invalidTagIndexFilteredList_failure() { + showTaskAtIndex(model, TASK_FIRST_INDEX); + Index outOfBoundIndex = TASK_SECOND_INDEX; // ensures that outOfBoundIndex is still in bounds of address book list - assertTrue(outOfBoundIndex.getZeroBased() < model.getAddressBook().getPersonList().size()); + assertTrue(outOfBoundIndex.getZeroBased() < model.getTaskBook().getTaskList().size()); - AddTagCommand addTagCommand = new AddTagCommand(outOfBoundIndex, TAG1); + AddTagToTaskCommand addTagToTaskCommand = new AddTagToTaskCommand(outOfBoundIndex, TAG1); - assertCommandFailure(addTagCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + assertCommandFailure(addTagToTaskCommand, model, Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX); } @Test public void equals() { - final AddTagCommand command = new AddTagCommand(INDEX_FIRST_PERSON, TAG1); + final AddTagToTaskCommand command = new AddTagToTaskCommand(INDEX_FIRST_PERSON, TAG1); // If they are the same objects, they are equal assertTrue(command.equals(command)); From 5cda4a09a2c13094176c7bd31adf66588b94113c Mon Sep 17 00:00:00 2001 From: juayhee Date: Sun, 27 Mar 2022 19:23:41 +0800 Subject: [PATCH 245/455] Update TypicalTasks to feature different task names so that Model#showTaskAtIndex only displays one task from the typical task book --- src/test/java/seedu/address/testutil/TypicalTasks.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/seedu/address/testutil/TypicalTasks.java b/src/test/java/seedu/address/testutil/TypicalTasks.java index ac82d610089..ec8d0aeb145 100644 --- a/src/test/java/seedu/address/testutil/TypicalTasks.java +++ b/src/test/java/seedu/address/testutil/TypicalTasks.java @@ -31,7 +31,7 @@ public class TypicalTasks { public static final Task SECOND_TASK = new TaskBuilder().withName("Training").withDate("29-02-2020") .withStartTime("14:00").withEndTime("16:00") .withTags("colleagues").withPersons(CARL.getName().fullName).build(); - public static final Task THIRD_TASK = new TaskBuilder().withName("Shareholder Meeting").withDate("29-02-2020") + public static final Task THIRD_TASK = new TaskBuilder().withName("Shareholder Conference").withDate("29-02-2020") .withStartTime("14:00").withEndTime("16:00") .withTags("colleagues").withPersons(BENSON.getName().fullName).build(); From c98015c729403211f57c5bf559eded3837c710d1 Mon Sep 17 00:00:00 2001 From: juayhee Date: Sun, 27 Mar 2022 19:27:36 +0800 Subject: [PATCH 246/455] Add tests for AddTagTotaskCommandParser --- .../parser/AddTagToTaskCommandParserTest.java | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/test/java/seedu/address/logic/parser/AddTagToTaskCommandParserTest.java diff --git a/src/test/java/seedu/address/logic/parser/AddTagToTaskCommandParserTest.java b/src/test/java/seedu/address/logic/parser/AddTagToTaskCommandParserTest.java new file mode 100644 index 00000000000..2396e9627d0 --- /dev/null +++ b/src/test/java/seedu/address/logic/parser/AddTagToTaskCommandParserTest.java @@ -0,0 +1,31 @@ +package seedu.address.logic.parser; + +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; +import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; +import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; + +import org.junit.jupiter.api.Test; + +import seedu.address.logic.commands.AddTagCommand; +import seedu.address.logic.commands.AddTagToTaskCommand; + +class AddTagToTaskCommandParserTest { + + private static final String TAG1 = "TAG1"; + private AddTagToTaskCommandParser parser = new AddTagToTaskCommandParser(); + + + @Test + void parse_validArgs_returnsAddTagToTaskCommand() { + AddTagToTaskCommand expectedAddTagToTaskCommand = new AddTagToTaskCommand(INDEX_FIRST_PERSON, TAG1); + assertParseSuccess(parser, " 1 TAG1", expectedAddTagToTaskCommand); + } + + @Test + void parse_invalidArgs_throwsParseException() { + assertParseFailure(parser, + " 1 t/important", // Tags can only be alphanumeric + String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddTagToTaskCommand.MESSAGE_USAGE)); + } +} From 71b0f53e3864f8396024889ea4739f92d8098daf Mon Sep 17 00:00:00 2001 From: juayhee Date: Sun, 27 Mar 2022 19:35:48 +0800 Subject: [PATCH 247/455] Update tests --- .../address/logic/commands/AddTagToTaskCommandTest.java | 6 ------ .../address/logic/parser/AddTagToTaskCommandParserTest.java | 1 - 2 files changed, 7 deletions(-) diff --git a/src/test/java/seedu/address/logic/commands/AddTagToTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/AddTagToTaskCommandTest.java index a68c8bb115f..a892ec95ca9 100644 --- a/src/test/java/seedu/address/logic/commands/AddTagToTaskCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddTagToTaskCommandTest.java @@ -3,10 +3,8 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; -import static seedu.address.logic.commands.CommandTestUtil.showPersonAtIndex; import static seedu.address.logic.commands.CommandTestUtil.showTaskAtIndex; import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; -import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_PERSON; import static seedu.address.testutil.TypicalIndexes.TASK_FIRST_INDEX; import static seedu.address.testutil.TypicalIndexes.TASK_SECOND_INDEX; import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; @@ -17,8 +15,6 @@ import org.junit.jupiter.api.Test; -import com.sun.javafx.scene.control.MultipleAdditionAndRemovedChange; - import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; import seedu.address.model.AddressBook; @@ -26,10 +22,8 @@ import seedu.address.model.ModelManager; import seedu.address.model.TaskBook; import seedu.address.model.UserPrefs; -import seedu.address.model.person.Person; import seedu.address.model.tag.Tag; import seedu.address.model.task.Task; -import seedu.address.testutil.PersonBuilder; import seedu.address.testutil.TaskBuilder; class AddTagToTaskCommandTest { diff --git a/src/test/java/seedu/address/logic/parser/AddTagToTaskCommandParserTest.java b/src/test/java/seedu/address/logic/parser/AddTagToTaskCommandParserTest.java index 2396e9627d0..40c209f564e 100644 --- a/src/test/java/seedu/address/logic/parser/AddTagToTaskCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/AddTagToTaskCommandParserTest.java @@ -7,7 +7,6 @@ import org.junit.jupiter.api.Test; -import seedu.address.logic.commands.AddTagCommand; import seedu.address.logic.commands.AddTagToTaskCommand; class AddTagToTaskCommandParserTest { From eb2e6fd5836c988cde7045f49567994d8327d785 Mon Sep 17 00:00:00 2001 From: juayhee Date: Sun, 27 Mar 2022 19:39:27 +0800 Subject: [PATCH 248/455] Update task title in typicalTasksTaskBook.json --- .../JsonSerializableTaskBookTest/typicalTasksTaskBook.json | 2 +- .../seedu/address/logic/commands/FindTaskCommandTest.java | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/test/data/JsonSerializableTaskBookTest/typicalTasksTaskBook.json b/src/test/data/JsonSerializableTaskBookTest/typicalTasksTaskBook.json index db42423a672..fdbf2e83b59 100644 --- a/src/test/data/JsonSerializableTaskBookTest/typicalTasksTaskBook.json +++ b/src/test/data/JsonSerializableTaskBookTest/typicalTasksTaskBook.json @@ -15,7 +15,7 @@ "tagged" : [ "colleagues" ], "persons" : ["Carl Kurz"] }, { - "name" : "Shareholder Meeting", + "name" : "Shareholder Conference", "date" : "29-02-2020", "startTime" : "14:00", "endTime" : "16:00", diff --git a/src/test/java/seedu/address/logic/commands/FindTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/FindTaskCommandTest.java index 2285104168f..73b005811c0 100644 --- a/src/test/java/seedu/address/logic/commands/FindTaskCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/FindTaskCommandTest.java @@ -7,7 +7,6 @@ import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; import static seedu.address.testutil.TypicalTasks.FIRST_TASK; -import static seedu.address.testutil.TypicalTasks.THIRD_TASK; import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; import java.util.Arrays; @@ -77,13 +76,13 @@ public void execute_zeroKeywords_noPersonAndTagFound() { public void execute_multipleKeywords_multiplePersonsAndTagsFound() { List nameList = Arrays.asList("Meeting", "Dinner"); List tagList = Arrays.asList("friends", "neighbours"); - String expectedMessage = String.format(MESSAGE_TASKS_LISTED_OVERVIEW, 2); + String expectedMessage = String.format(MESSAGE_TASKS_LISTED_OVERVIEW, 1); TaskNameContainsKeywordsPredicate namePredicate = prepareNamePredicate(nameList); TaskTagContainsKeywordsPredicate tagPredicate = prepareTagPredicate(tagList); FindTaskCommand command = new FindTaskCommand(namePredicate, tagPredicate); expectedModel.updateFilteredTaskList(namePredicate.or(tagPredicate)); assertCommandSuccess(command, model, expectedMessage, expectedModel); - assertEquals(Arrays.asList(FIRST_TASK, THIRD_TASK), model.getFilteredTaskList()); + assertEquals(Arrays.asList(FIRST_TASK), model.getFilteredTaskList()); } /** From e8c8943f8a582dc44c5aa389ff0e2b1a3c52a556 Mon Sep 17 00:00:00 2001 From: juayhee Date: Sun, 27 Mar 2022 19:47:14 +0800 Subject: [PATCH 249/455] Update method name to more accurately reflect what it does --- .../address/logic/commands/AddTagToTaskCommandTest.java | 4 ++-- .../java/seedu/address/logic/commands/CommandTestUtil.java | 6 +++--- .../seedu/address/logic/commands/ListTaskCommandTest.java | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/test/java/seedu/address/logic/commands/AddTagToTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/AddTagToTaskCommandTest.java index a892ec95ca9..1315829f065 100644 --- a/src/test/java/seedu/address/logic/commands/AddTagToTaskCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddTagToTaskCommandTest.java @@ -3,7 +3,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; -import static seedu.address.logic.commands.CommandTestUtil.showTaskAtIndex; +import static seedu.address.logic.commands.CommandTestUtil.showTaskAtName; import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; import static seedu.address.testutil.TypicalIndexes.TASK_FIRST_INDEX; import static seedu.address.testutil.TypicalIndexes.TASK_SECOND_INDEX; @@ -68,7 +68,7 @@ void execute_addTagCommandUnfilteredList_success() { @Test public void execute_invalidTagIndexFilteredList_failure() { - showTaskAtIndex(model, TASK_FIRST_INDEX); + showTaskAtName(model, TASK_FIRST_INDEX); Index outOfBoundIndex = TASK_SECOND_INDEX; // ensures that outOfBoundIndex is still in bounds of address book list assertTrue(outOfBoundIndex.getZeroBased() < model.getTaskBook().getTaskList().size()); diff --git a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java b/src/test/java/seedu/address/logic/commands/CommandTestUtil.java index 59011deba0c..cdeb7b4a4cb 100644 --- a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java +++ b/src/test/java/seedu/address/logic/commands/CommandTestUtil.java @@ -180,17 +180,17 @@ public static void showPersonAtIndex(Model model, Index targetIndex) { } /** - * Updates {@code model}'s filtered list to show only the task at the given {@code targetIndex} in the + * Updates {@code model}'s filtered list to show only the tasks with the given {@code Name} in the * {@code model}'s task book. */ - public static void showTaskAtIndex(Model model, Index targetIndex) { + public static void showTaskAtName(Model model, Index targetIndex) { assertTrue(targetIndex.getZeroBased() < model.getFilteredTaskList().size()); Task task = model.getFilteredTaskList().get(targetIndex.getZeroBased()); final String[] splitName = task.getName().fullName.split("\\s+"); model.updateFilteredTaskList(new TaskNameContainsKeywordsPredicate(Arrays.asList(splitName[0]))); - assertEquals(1, model.getFilteredTaskList().size()); + assertEquals(1, model.getFilteredTaskList().size()); // The task book contains only unique names } } diff --git a/src/test/java/seedu/address/logic/commands/ListTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/ListTaskCommandTest.java index f54c8384e07..969ac0011ab 100644 --- a/src/test/java/seedu/address/logic/commands/ListTaskCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/ListTaskCommandTest.java @@ -1,7 +1,7 @@ package seedu.address.logic.commands; import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; -import static seedu.address.logic.commands.CommandTestUtil.showTaskAtIndex; +import static seedu.address.logic.commands.CommandTestUtil.showTaskAtName; import static seedu.address.testutil.TypicalIndexes.TASK_SECOND_INDEX; import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; @@ -35,7 +35,7 @@ public void execute_listIsNotFiltered_showsSameList() { @Test public void execute_listIsFiltered_showsEverything() { - showTaskAtIndex(model, TASK_SECOND_INDEX); + showTaskAtName(model, TASK_SECOND_INDEX); assertCommandSuccess(new ListTaskCommand(), model, ListTaskCommand.MESSAGE_SUCCESS, expectedModel); } } From f7fb10a8b9d23e9803de55eba3ca9dc9d1f31e60 Mon Sep 17 00:00:00 2001 From: Pragya Date: Sun, 27 Mar 2022 20:45:50 +0800 Subject: [PATCH 250/455] no message --- docs/DeveloperGuide.md | 6 +++--- docs/UserGuide.md | 15 ++++++++------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index f92c3640ff2..1682b3cabed 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -616,13 +616,13 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli * 1a1. Coach2K22 shows an error message. - Use case ends. + Use case resumes at step 1. * 1b. Compulsory parameters not supplied by the user. * 1b1. Coach2K22 shows an error message. - Use case ends. + Use case resumes at step 1. **Use case: Delete a task from the task list** @@ -639,7 +639,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli * 1a. The task list is empty. - Use case ends. + Use case resumes at step 2. * 1b. The index requested does not exist. diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 49c7da9ab35..cbf74878138 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -266,7 +266,7 @@ Format: `list-t` Adds a task to our task list. -Format: `add-t n/NAME d/DATE st/STARTTIME et/ENDTIME [t/TAG_NAME]…​` +Format: `add-t n/NAME d/DATE st/STARTTIME et/ENDTIME [t/TAG_NAME]…​ [c/PERSON_NAME]…​` Examples: * `add-t n/Welcome Tea d/24-04-2022 st/09:00 et/12:00 t/Socials` @@ -280,11 +280,12 @@ Examples: -

      :bulb: **Tip:** -A task can have any number of tags (including 0) -
      -
      :bulb: **Tip:** -A task can also be assigned to multiple persons (including 0) +
      + +:bulb: **Tip:** A task can have any number of tags (including 0)
      + +:bulb: **Tip:** A task can also be assigned to multiple persons (including 0) +
      #### 2.2.3 Deleting a task: `del-t` @@ -306,7 +307,7 @@ Examples: Edit a task from our task list. -Format: `edit-t INDEX [n/NAME] [d/DATE] [st/STARTTIME] [et/ENDTIME] [t/TAG_NAME]…​` +Format: `edit-t INDEX [n/NAME] [d/DATE] [st/STARTTIME] [et/ENDTIME] [t/TAG_NAME]…​ [c/PERSON_NAME]…​` Examples: * `edit-t 2 d/29-04-2022 et/10:00` edits the date and end time of the second task into `29-04-2022` and `10:00` respectively. From 61cc93e3924eb0df473592ddd81474c27b164599 Mon Sep 17 00:00:00 2001 From: juayhee Date: Sun, 27 Mar 2022 22:48:52 +0800 Subject: [PATCH 251/455] Resolve merge conflict --- docs/DeveloperGuide.md | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index d500caababf..d1694ab97d3 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -242,7 +242,43 @@ The steps above are summarised using a sequence diagram as shown below. * Pros: Cleaner code and less dependencies * Cons: Repetitive code that is not abstracted +### 4.4 Clear Tasks feature +#### 4.4.1 Implementation + +This feature allows users to clear all tasks from the task list, or only tasks that correspond with a given date. +It is facilitated by the `ModelManager` which utilizes the method `deleteTask()` to delete each corresponding task one +by one, or sets a new `TaskBook` object to the `ModelManager` to refresh the task list. + +Given below is an example usage scenario of how the clear task mechanism behaves at each step. + +Step 1: The user inputs `clear-t 2022-10-10` to clear all tasks that correspond with the date `2022-10-10` in the task list. + +Step 2: This argument is passed into the `LogicManager` which calls on `Coach2K22Parser#parseCommand()` to find a suitable +parser class which corresponds with the provided command to parse the user's inputs. This initializes the `ClearTaskCommandParser`, +where its method `parse()` is called to process the user inputs. + +Step 3: The newly initialized `ClearTaskCommandParser` is then returned to the `LogicManager` for command execution. + +Step 4: During the command execution, the `ModelManager#deleteTask()` method is called multiple times to remove the +corresponding tasks from the internal task list. Inside the function call, the `ModelManager#updateFilteredTaskList()` +is also called, which updates the GUI to display the new task list. The command results are then generated and shown to +the user. + +The steps above are summarised using a sequence diagram as shown below. +![ClearTaskSequenceDiagram](images/ClearTaskSequenceDiagram.png) + +#### 4.4.2 Design consideration + +**Aspect: Should there be separate clear commands for clearing tasks and players:** + +* **Alternative 1 (current choice):** A separate command for clearing tasks and players. + * Pros: Easy to implement. + * Cons: Hard to extend. +* **Alternative 2:** A combined command for clearing tasks and player. + * Pros: Easier and more intuitive for the user to understand + * Cons: Hard to implement. + * ### \[Proposed\] Undo/redo feature #### Proposed Implementation From df01eccd468b38a630c66b952b5e484fe2c0e1d9 Mon Sep 17 00:00:00 2001 From: Pragya Date: Sun, 27 Mar 2022 22:53:44 +0800 Subject: [PATCH 252/455] no message --- docs/images/AddTaskSequenceDiagram.png | Bin 43797 -> 36973 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/AddTaskSequenceDiagram.png b/docs/images/AddTaskSequenceDiagram.png index 063db59fa29ecd2e8f021d21744aab5f3bb8f2d7..811c9877347ea97c8bfbadab0726840f3730ed79 100644 GIT binary patch literal 36973 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 literal 43797 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 From 0ac55fdedfe7eb333bc2c65a283136e5df9dc63e Mon Sep 17 00:00:00 2001 From: Pragya Date: Sun, 27 Mar 2022 23:02:19 +0800 Subject: [PATCH 253/455] no message --- docs/DeveloperGuide.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 99cc71b3f48..f325bec5775 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -210,8 +210,7 @@ The steps above are summarised using a sequence diagram as shown below. * **Alternative 2:** A player is an object of class `Player`. * Pros: Easy to extend and manipulate attributes of a player. * Cons: Hard to implement. - - + ### 4.3 Clear Tasks feature #### 4.3.1 Implementation From 1dd7202aa3ee0a80af27b825e7147317e9fc3baf Mon Sep 17 00:00:00 2001 From: juayhee Date: Mon, 28 Mar 2022 08:21:45 +0800 Subject: [PATCH 254/455] Update syntax --- docs/UserGuide.md | 20 ++++++++++---------- docs/diagrams/AddTagSequenceDiagram.puml | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 106c7c11581..7094fc15653 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -308,7 +308,7 @@ Examples: Add a tag to a selected task from our task list. -Format: `tag-add-t INDEX [t/TAG]` +Format: `tag-add-t INDEX TAG_NAME` Examples: * `tag-add-t 1 important` adds the tag "important" to the first task in the list. @@ -465,15 +465,15 @@ Format: `exit` ### 4.2 Task Management -| Action | Format, Examples | -|--------------|---------------------------------------------------------------------------------------| -| **List** | `list-p` | -| **Add** | (to be filled up by @pragya) | -| **Del** | (to be filled up by @pragya) | -| **Edit** | (to be filled up by @pragya) | -| **Clear** | `clear-t [d/DATE]`
      e.g., `clear-t 2022-10-10` | -| **Add Tag** | `tag-add-t INDEX [t/TAG]`
      e.g., `tag-add-t 1 t/important` | -| **Del Tag** | `tag-del-t INDEX [t/TAG]`
      e.g., `tag-del-t 1 t/important` | +| Action | Format, Examples | +|--------------|-----------------------------------------------------------------------------------| +| **List** | `list-p` | +| **Add** | (to be filled up by @pragya) | +| **Del** | (to be filled up by @pragya) | +| **Edit** | (to be filled up by @pragya) | +| **Clear** | `clear-t [d/DATE]`
      e.g., `clear-t 2022-10-10` | +| **Add Tag** | `tag-add-t INDEX TAG_NAME`
      e.g., `tag-add-t 1 important` | +| **Del Tag** | `tag-del-t INDEX TAG_NAME`
      e.g., `tag-del-t 1 important` | | **Find** | `find-t [n/NAME]…​ [t/TAG]…​`
      e.g., `find-p n/Meeting n/Training t/team1 t/team2` | ### 4.3 Strategic Planning diff --git a/docs/diagrams/AddTagSequenceDiagram.puml b/docs/diagrams/AddTagSequenceDiagram.puml index 09efe26187e..b1526e74018 100644 --- a/docs/diagrams/AddTagSequenceDiagram.puml +++ b/docs/diagrams/AddTagSequenceDiagram.puml @@ -13,7 +13,7 @@ box Model MODEL_COLOR_T1 participant ":Model" as Model MODEL_COLOR end box -[-> LogicManager : execute("tag-add 1 t/friend") +[-> LogicManager : execute("tag-add 1 friend") activate LogicManager LogicManager -> Coach2K22Parser : parseCommand("tag-add-p 1 friend") From 66c997b2cbb00eabdc7a34f2bfc103e465562fb8 Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Mon, 28 Mar 2022 22:34:27 +0800 Subject: [PATCH 255/455] Resolve merge conflicts --- src/main/java/seedu/address/ui/StrategyPanel.java | 5 ++--- src/main/resources/view/StrategyPanel.fxml | 6 +++++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/main/java/seedu/address/ui/StrategyPanel.java b/src/main/java/seedu/address/ui/StrategyPanel.java index d2a35d09fbf..7d3bb1de289 100644 --- a/src/main/java/seedu/address/ui/StrategyPanel.java +++ b/src/main/java/seedu/address/ui/StrategyPanel.java @@ -40,7 +40,7 @@ public class StrategyPanel extends UiPart { @FXML private Pane playerView; - + @FXML private ImageView strategyImage; @FXML private AnchorPane strategyAnchorPane; @@ -86,7 +86,7 @@ public void handle(MouseEvent t) { */ public StrategyPanel(ObservableList playerList) { super(FXML); - + initBackgroundImage(); playerList.addListener((ListChangeListener) change -> { while (change.next()) { if (change.wasAdded()) { @@ -117,7 +117,6 @@ private void changeOnDelete(List removeList) { table.remove(playerName); } } - initBackgroundImage(); } /** diff --git a/src/main/resources/view/StrategyPanel.fxml b/src/main/resources/view/StrategyPanel.fxml index e888e653dcc..ada9e74d852 100644 --- a/src/main/resources/view/StrategyPanel.fxml +++ b/src/main/resources/view/StrategyPanel.fxml @@ -5,7 +5,11 @@ - + From 082f14e06c1702a74f7a9be33d8ec960704800bd Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Mon, 28 Mar 2022 22:40:55 +0800 Subject: [PATCH 256/455] Fix checkStyle errors and testing errors. --- .../seedu/address/logic/parser/AddressBookParser.java | 2 +- src/main/java/seedu/address/ui/StrategyPanel.java | 5 ++--- .../seedu/address/logic/commands/FindTaskCommandTest.java | 7 +++++-- .../seedu/address/logic/commands/ListTaskCommandTest.java | 8 +++++--- .../address/logic/commands/LoadCourtCommandTest.java | 4 +++- 5 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index 8be0752375f..726f764201e 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -136,7 +136,7 @@ public Command parseCommand(String userInput) throws ParseException { case DeletePlayerCommand.COMMAND_WORD: return new DeletePlayerCommandParser().parse(arguments); - + case LoadCourtCommand.COMMAND_WORD: return new LoadCourtCommandParser().parse(arguments); diff --git a/src/main/java/seedu/address/ui/StrategyPanel.java b/src/main/java/seedu/address/ui/StrategyPanel.java index 7d3bb1de289..8efdd5eb683 100644 --- a/src/main/java/seedu/address/ui/StrategyPanel.java +++ b/src/main/java/seedu/address/ui/StrategyPanel.java @@ -1,5 +1,6 @@ package seedu.address.ui; +import java.io.File; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -7,8 +8,6 @@ import javafx.collections.ListChangeListener; import javafx.collections.ObservableList; -import java.io.File; - import javafx.event.EventHandler; import javafx.fxml.FXML; import javafx.geometry.VPos; @@ -16,8 +15,8 @@ import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.input.MouseEvent; -import javafx.scene.layout.Pane; import javafx.scene.layout.AnchorPane; +import javafx.scene.layout.Pane; import javafx.scene.layout.Region; import javafx.scene.layout.StackPane; import javafx.scene.paint.Color; diff --git a/src/test/java/seedu/address/logic/commands/FindTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/FindTaskCommandTest.java index 2285104168f..1dae114c23f 100644 --- a/src/test/java/seedu/address/logic/commands/FindTaskCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/FindTaskCommandTest.java @@ -18,6 +18,7 @@ import seedu.address.model.Model; import seedu.address.model.ModelManager; +import seedu.address.model.StrategyBoard; import seedu.address.model.UserPrefs; import seedu.address.model.name.TaskNameContainsKeywordsPredicate; import seedu.address.model.tag.TaskTagContainsKeywordsPredicate; @@ -25,8 +26,10 @@ * Contains integration tests (interaction with the Model) for {@code FindTaskCommand}. */ public class FindTaskCommandTest { - private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); - private Model expectedModel = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); + private Model expectedModel = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); @Test public void equals() { diff --git a/src/test/java/seedu/address/logic/commands/ListTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/ListTaskCommandTest.java index f54c8384e07..0027970d15e 100644 --- a/src/test/java/seedu/address/logic/commands/ListTaskCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/ListTaskCommandTest.java @@ -11,6 +11,7 @@ import seedu.address.model.Model; import seedu.address.model.ModelManager; +import seedu.address.model.StrategyBoard; import seedu.address.model.UserPrefs; /** @@ -23,9 +24,10 @@ public class ListTaskCommandTest { @BeforeEach public void setUp() { - model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); - expectedModel = new ModelManager(model.getAddressBook(), - model.getTaskBook(), new UserPrefs()); + model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); + expectedModel = new ModelManager(model.getAddressBook(), model.getTaskBook(), + new StrategyBoard(), new UserPrefs()); } @Test diff --git a/src/test/java/seedu/address/logic/commands/LoadCourtCommandTest.java b/src/test/java/seedu/address/logic/commands/LoadCourtCommandTest.java index 2bb727cc46f..4ea1be000ca 100644 --- a/src/test/java/seedu/address/logic/commands/LoadCourtCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/LoadCourtCommandTest.java @@ -10,12 +10,14 @@ import seedu.address.model.Model; import seedu.address.model.ModelManager; +import seedu.address.model.StrategyBoard; import seedu.address.model.UserPrefs; import seedu.address.model.image.Image; public class LoadCourtCommandTest { - private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); @Test public void constructor_null_throwsNullPointerException() { From dbdf45a365a93ff9c6edefc5131bc4a75789bd67 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Tue, 29 Mar 2022 04:08:55 +0800 Subject: [PATCH 257/455] Fix checkstyle --- .../java/seedu/address/logic/commands/ClearCommandTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/seedu/address/logic/commands/ClearCommandTest.java b/src/test/java/seedu/address/logic/commands/ClearCommandTest.java index d45c8892dba..8bef75ba425 100644 --- a/src/test/java/seedu/address/logic/commands/ClearCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/ClearCommandTest.java @@ -16,8 +16,8 @@ import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ModelManager; -import seedu.address.model.TaskBook; import seedu.address.model.StrategyBoard; +import seedu.address.model.TaskBook; import seedu.address.model.UserPrefs; import seedu.address.model.task.Task; import seedu.address.testutil.TaskBuilder; From b5f12f090f31b2d146baf59b146af1cfd31f5fbf Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Tue, 29 Mar 2022 04:41:35 +0800 Subject: [PATCH 258/455] Implement sort-strength command --- .../logic/commands/SortStrengthCommand.java | 53 +++++++++++++++++++ .../logic/parser/AddressBookParser.java | 4 ++ 2 files changed, 57 insertions(+) create mode 100644 src/main/java/seedu/address/logic/commands/SortStrengthCommand.java diff --git a/src/main/java/seedu/address/logic/commands/SortStrengthCommand.java b/src/main/java/seedu/address/logic/commands/SortStrengthCommand.java new file mode 100644 index 00000000000..c9389e1c13b --- /dev/null +++ b/src/main/java/seedu/address/logic/commands/SortStrengthCommand.java @@ -0,0 +1,53 @@ +package seedu.address.logic.commands; + +import static java.util.Objects.requireNonNull; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; + +import seedu.address.model.AddressBook; +import seedu.address.model.Model; +import seedu.address.model.person.Person; + +/** + * Sort the list of persons in the address book by strengths in descending order and display to the user. + */ +public class SortStrengthCommand extends Command { + + public static final String COMMAND_WORD = "sort-strength"; + + public static final String MESSAGE_SUCCESS = "Sorted all persons by most strengths"; + + /** + * Comparator that compares two Person objects by their total strengths. + * If total strengths of two Person objects are equal, then compare by least total weaknesses + */ + protected static final Comparator BY_STRENGTHS = new Comparator() { + @Override + public int compare(Person o1, Person o2) { + if (o1.getStrengths() == o2.getStrengths()) { //if total strengths are equal, order by least weaknesses + return o2.getWeaknesses().size() - o1.getWeaknesses().size(); + } else if (o1.getStrengths().size() > o2.getStrengths().size()) { + return -1; + } else { + return 1; + } + } + }; + + @Override + public CommandResult execute(Model model) { + requireNonNull(model); + List lastShownPersonList = model.getUnfilteredPersonList(); + List newPersonList = new ArrayList<>(lastShownPersonList); + AddressBook newAddressBook = new AddressBook(); + + newPersonList.sort(BY_STRENGTHS); + for (Person p : newPersonList) { + newAddressBook.addPerson(p); + } + model.setAddressBook(new AddressBook(newAddressBook)); //update address book with new sorted book + return new CommandResult(MESSAGE_SUCCESS); + } +} diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index 726f764201e..394621d3f3e 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -23,6 +23,7 @@ import seedu.address.logic.commands.ListCommand; import seedu.address.logic.commands.ListTaskCommand; import seedu.address.logic.commands.LoadCourtCommand; +import seedu.address.logic.commands.SortStrengthCommand; import seedu.address.logic.commands.notecommands.AddMiscCommand; import seedu.address.logic.commands.notecommands.AddStrengthCommand; import seedu.address.logic.commands.notecommands.AddWeaknessCommand; @@ -101,6 +102,9 @@ public Command parseCommand(String userInput) throws ParseException { case ListTaskCommand.COMMAND_WORD: return new ListTaskCommand(); + case SortStrengthCommand.COMMAND_WORD: + return new SortStrengthCommand(); + case AddStrengthCommand.COMMAND_WORD: return new AddStrengthCommandParser().parse(arguments); From 08a73c06a229de61be717ede8b4d235dfe5376dd Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Tue, 29 Mar 2022 05:02:11 +0800 Subject: [PATCH 259/455] Fix bug where duplicate notes can be added --- .../java/seedu/address/commons/core/Messages.java | 3 +++ .../logic/commands/notecommands/AddMiscCommand.java | 11 ++++++++--- .../commands/notecommands/AddStrengthCommand.java | 11 ++++++++--- .../commands/notecommands/AddWeaknessCommand.java | 11 ++++++++--- 4 files changed, 27 insertions(+), 9 deletions(-) diff --git a/src/main/java/seedu/address/commons/core/Messages.java b/src/main/java/seedu/address/commons/core/Messages.java index 07ca115e280..c2c26884f16 100644 --- a/src/main/java/seedu/address/commons/core/Messages.java +++ b/src/main/java/seedu/address/commons/core/Messages.java @@ -13,5 +13,8 @@ public class Messages { public static final String MESSAGE_PERSONS_LISTED_OVERVIEW = "%1$d persons listed!"; public static final String MESSAGE_TASKS_LISTED_OVERVIEW = "%1$d tasks listed!"; public static final String MESSAGE_INVALID_TAG = "Tags must be alphanumeric only!"; + public static final String MESSAGE_DUPLICATE_STRENGTH = "This strength already exists for this person!"; + public static final String MESSAGE_DUPLICATE_WEAKNESS = "This weakness already exists for this person!"; + public static final String MESSAGE_DUPLICATE_MISC = "This note already exists for this person!"; } diff --git a/src/main/java/seedu/address/logic/commands/notecommands/AddMiscCommand.java b/src/main/java/seedu/address/logic/commands/notecommands/AddMiscCommand.java index 9597a912050..0c5b022b266 100644 --- a/src/main/java/seedu/address/logic/commands/notecommands/AddMiscCommand.java +++ b/src/main/java/seedu/address/logic/commands/notecommands/AddMiscCommand.java @@ -57,13 +57,18 @@ public CommandResult execute(Model model) throws CommandException { } Person personToEdit = lastShownList.get(index.getZeroBased()); - List newMisc = new ArrayList<>(personToEdit.getMiscellaneous()); - newMisc.add(misc); + List newMiscList = new ArrayList<>(personToEdit.getMiscellaneous()); + + if (newMiscList.contains(misc)) { //makes sure note does not already exist for given person + throw new CommandException(Messages.MESSAGE_DUPLICATE_MISC); + } + + newMiscList.add(misc); Person editedPerson = new Person( personToEdit.getName(), personToEdit.getPhone(), personToEdit.getEmail(), personToEdit.getAddress(), personToEdit.getTags(), personToEdit.getStrengths(), - personToEdit.getWeaknesses(), newMisc); + personToEdit.getWeaknesses(), newMiscList); model.setPerson(personToEdit, editedPerson); model.updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); diff --git a/src/main/java/seedu/address/logic/commands/notecommands/AddStrengthCommand.java b/src/main/java/seedu/address/logic/commands/notecommands/AddStrengthCommand.java index afefa2b970b..e41418c2b24 100644 --- a/src/main/java/seedu/address/logic/commands/notecommands/AddStrengthCommand.java +++ b/src/main/java/seedu/address/logic/commands/notecommands/AddStrengthCommand.java @@ -57,12 +57,17 @@ public CommandResult execute(Model model) throws CommandException { } Person personToEdit = lastShownList.get(index.getZeroBased()); - List newStrength = new ArrayList<>(personToEdit.getStrengths()); - newStrength.add(strength); + List newStrengthList = new ArrayList<>(personToEdit.getStrengths()); + + if (newStrengthList.contains(strength)) { //makes sure note does not already exist for given person + throw new CommandException(Messages.MESSAGE_DUPLICATE_STRENGTH); + } + + newStrengthList.add(strength); Person editedPerson = new Person( personToEdit.getName(), personToEdit.getPhone(), personToEdit.getEmail(), - personToEdit.getAddress(), personToEdit.getTags(), newStrength, personToEdit.getWeaknesses(), + personToEdit.getAddress(), personToEdit.getTags(), newStrengthList, personToEdit.getWeaknesses(), personToEdit.getMiscellaneous()); model.setPerson(personToEdit, editedPerson); diff --git a/src/main/java/seedu/address/logic/commands/notecommands/AddWeaknessCommand.java b/src/main/java/seedu/address/logic/commands/notecommands/AddWeaknessCommand.java index 4fd851efdac..c8d4e0b7c29 100644 --- a/src/main/java/seedu/address/logic/commands/notecommands/AddWeaknessCommand.java +++ b/src/main/java/seedu/address/logic/commands/notecommands/AddWeaknessCommand.java @@ -57,12 +57,17 @@ public CommandResult execute(Model model) throws CommandException { } Person personToEdit = lastShownList.get(index.getZeroBased()); - List newWeakness = new ArrayList<>(personToEdit.getWeaknesses()); - newWeakness.add(weakness); + List newWeaknessList = new ArrayList<>(personToEdit.getWeaknesses()); + + if (newWeaknessList.contains(weakness)) { //makes sure note does not already exist for given person + throw new CommandException(Messages.MESSAGE_DUPLICATE_WEAKNESS); + } + + newWeaknessList.add(weakness); Person editedPerson = new Person( personToEdit.getName(), personToEdit.getPhone(), personToEdit.getEmail(), - personToEdit.getAddress(), personToEdit.getTags(), personToEdit.getStrengths(), newWeakness, + personToEdit.getAddress(), personToEdit.getTags(), personToEdit.getStrengths(), newWeaknessList, personToEdit.getMiscellaneous()); model.setPerson(personToEdit, editedPerson); From af8febd037fe313492e81419bba9228027dbcb70 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Tue, 29 Mar 2022 05:06:01 +0800 Subject: [PATCH 260/455] Fix tag-add test error --- .../logic/commands/AddTagToTaskCommandTest.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/test/java/seedu/address/logic/commands/AddTagToTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/AddTagToTaskCommandTest.java index 1315829f065..d4b0d098043 100644 --- a/src/test/java/seedu/address/logic/commands/AddTagToTaskCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddTagToTaskCommandTest.java @@ -17,11 +17,7 @@ import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; -import seedu.address.model.AddressBook; -import seedu.address.model.Model; -import seedu.address.model.ModelManager; -import seedu.address.model.TaskBook; -import seedu.address.model.UserPrefs; +import seedu.address.model.*; import seedu.address.model.tag.Tag; import seedu.address.model.task.Task; import seedu.address.testutil.TaskBuilder; @@ -32,7 +28,8 @@ class AddTagToTaskCommandTest { private static final String TAG1 = "TAG1"; // Test model - private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); @Test void execute_addTagCommandUnfilteredList_success() { @@ -59,6 +56,7 @@ void execute_addTagCommandUnfilteredList_success() { Model expectedModel = new ModelManager( new AddressBook(model.getAddressBook()), new TaskBook(model.getTaskBook()), + new StrategyBoard(), new UserPrefs()); expectedModel.setTask(firstTask, editedTask); From 6f7f70cddb113b6e9845d16f1a0ff1324378686e Mon Sep 17 00:00:00 2001 From: simjunheng Date: Tue, 29 Mar 2022 05:09:58 +0800 Subject: [PATCH 261/455] Fix checkstyle error --- .../address/logic/commands/AddTagToTaskCommandTest.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/test/java/seedu/address/logic/commands/AddTagToTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/AddTagToTaskCommandTest.java index d4b0d098043..9d189e4a0ca 100644 --- a/src/test/java/seedu/address/logic/commands/AddTagToTaskCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddTagToTaskCommandTest.java @@ -17,7 +17,12 @@ import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; -import seedu.address.model.*; +import seedu.address.model.AddressBook; +import seedu.address.model.Model; +import seedu.address.model.ModelManager; +import seedu.address.model.StrategyBoard; +import seedu.address.model.TaskBook; +import seedu.address.model.UserPrefs; import seedu.address.model.tag.Tag; import seedu.address.model.task.Task; import seedu.address.testutil.TaskBuilder; From 3671fb34dca612ea95c3d39b9eabe94d0b9fa23d Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Tue, 29 Mar 2022 05:16:02 +0800 Subject: [PATCH 262/455] Add test cases for ensuring duplicate check is working --- .../address/logic/commands/AddMiscCommandTest.java | 11 +++++++++++ .../logic/commands/AddStrengthCommandTest.java | 11 +++++++++++ .../logic/commands/AddWeaknessCommandTest.java | 11 +++++++++++ 3 files changed, 33 insertions(+) diff --git a/src/test/java/seedu/address/logic/commands/AddMiscCommandTest.java b/src/test/java/seedu/address/logic/commands/AddMiscCommandTest.java index 4df993a1b7c..9924d4b4990 100644 --- a/src/test/java/seedu/address/logic/commands/AddMiscCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddMiscCommandTest.java @@ -81,6 +81,17 @@ public void execute_invalidPersonIndexFilteredList_failure() { assertCommandFailure(addMiscCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); } + @Test + public void execute_duplicateMisc_failure() { + Person person = model.getFilteredPersonList().get(INDEX_SECOND_PERSON.getZeroBased()); + assert person.getMiscellaneous().size() > 0; + Note duplicateMisc = person.getMiscellaneous().get(0); + + AddMiscCommand addMiscCommand = new AddMiscCommand(INDEX_SECOND_PERSON, duplicateMisc); + + assertCommandFailure(addMiscCommand, model, Messages.MESSAGE_DUPLICATE_MISC); + } + @Test public void equals() { final AddMiscCommand standardCommand = new AddMiscCommand(INDEX_FIRST_PERSON, diff --git a/src/test/java/seedu/address/logic/commands/AddStrengthCommandTest.java b/src/test/java/seedu/address/logic/commands/AddStrengthCommandTest.java index 3b72fa3f2d5..2bd0424c5b5 100644 --- a/src/test/java/seedu/address/logic/commands/AddStrengthCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddStrengthCommandTest.java @@ -81,6 +81,17 @@ public void execute_invalidPersonIndexFilteredList_failure() { assertCommandFailure(addStrengthCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); } + @Test + public void execute_duplicateStrength_failure() { + Person person = model.getFilteredPersonList().get(INDEX_SECOND_PERSON.getZeroBased()); + assert person.getStrengths().size() > 0; + Note duplicateStrength = person.getStrengths().get(0); + + AddStrengthCommand addStrengthCommand = new AddStrengthCommand(INDEX_SECOND_PERSON, duplicateStrength); + + assertCommandFailure(addStrengthCommand, model, Messages.MESSAGE_DUPLICATE_STRENGTH); + } + @Test public void equals() { final AddStrengthCommand standardCommand = new AddStrengthCommand(INDEX_FIRST_PERSON, diff --git a/src/test/java/seedu/address/logic/commands/AddWeaknessCommandTest.java b/src/test/java/seedu/address/logic/commands/AddWeaknessCommandTest.java index cda3e486aaa..200ad8b5cc0 100644 --- a/src/test/java/seedu/address/logic/commands/AddWeaknessCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddWeaknessCommandTest.java @@ -81,6 +81,17 @@ public void execute_invalidPersonIndexFilteredList_failure() { assertCommandFailure(addWeaknessCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); } + @Test + public void execute_duplicateWeakness_failure() { + Person person = model.getFilteredPersonList().get(INDEX_SECOND_PERSON.getZeroBased()); + assert person.getWeaknesses().size() > 0; + Note duplicateWeakness = person.getWeaknesses().get(0); + + AddWeaknessCommand addWeaknessCommand = new AddWeaknessCommand(INDEX_SECOND_PERSON, duplicateWeakness); + + assertCommandFailure(addWeaknessCommand, model, Messages.MESSAGE_DUPLICATE_WEAKNESS); + } + @Test public void equals() { final AddWeaknessCommand standardCommand = new AddWeaknessCommand(INDEX_FIRST_PERSON, From bb19dc1b5234e9d06aeab847d81bf6884f5cc672 Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Tue, 29 Mar 2022 05:33:58 +0800 Subject: [PATCH 263/455] Implement sort-weakness command --- .../logic/commands/SortStrengthCommand.java | 7 +-- .../logic/commands/SortWeaknessCommand.java | 54 +++++++++++++++++++ .../logic/parser/AddressBookParser.java | 4 ++ 3 files changed, 62 insertions(+), 3 deletions(-) create mode 100644 src/main/java/seedu/address/logic/commands/SortWeaknessCommand.java diff --git a/src/main/java/seedu/address/logic/commands/SortStrengthCommand.java b/src/main/java/seedu/address/logic/commands/SortStrengthCommand.java index c9389e1c13b..5f2b6736299 100644 --- a/src/main/java/seedu/address/logic/commands/SortStrengthCommand.java +++ b/src/main/java/seedu/address/logic/commands/SortStrengthCommand.java @@ -11,7 +11,7 @@ import seedu.address.model.person.Person; /** - * Sort the list of persons in the address book by strengths in descending order and display to the user. + * Sort the list of persons in the address book by total strengths in descending order and display to the user. */ public class SortStrengthCommand extends Command { @@ -26,8 +26,9 @@ public class SortStrengthCommand extends Command { protected static final Comparator BY_STRENGTHS = new Comparator() { @Override public int compare(Person o1, Person o2) { - if (o1.getStrengths() == o2.getStrengths()) { //if total strengths are equal, order by least weaknesses - return o2.getWeaknesses().size() - o1.getWeaknesses().size(); + //if total strengths are equal, order by least weaknesses + if (o1.getStrengths().size() == o2.getStrengths().size()) { + return o1.getWeaknesses().size() - o2.getWeaknesses().size(); } else if (o1.getStrengths().size() > o2.getStrengths().size()) { return -1; } else { diff --git a/src/main/java/seedu/address/logic/commands/SortWeaknessCommand.java b/src/main/java/seedu/address/logic/commands/SortWeaknessCommand.java new file mode 100644 index 00000000000..535c887cb9f --- /dev/null +++ b/src/main/java/seedu/address/logic/commands/SortWeaknessCommand.java @@ -0,0 +1,54 @@ +package seedu.address.logic.commands; + +import static java.util.Objects.requireNonNull; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; + +import seedu.address.model.AddressBook; +import seedu.address.model.Model; +import seedu.address.model.person.Person; + +/** + * Sort the list of persons in the address book by total weaknesses in descending order and display to the user. + */ +public class SortWeaknessCommand extends Command { + + public static final String COMMAND_WORD = "sort-weakness"; + + public static final String MESSAGE_SUCCESS = "Sorted all persons by most weaknesses"; + + /** + * Comparator that compares two Person objects by their total weaknesses. + * If total weaknesses of two Person objects are equal, then compare by least total strengths + */ + protected static final Comparator BY_WEAKNESSES = new Comparator() { + @Override + public int compare(Person o1, Person o2) { + //if total weaknesses are equal, order by least strengths + if (o1.getWeaknesses().size() == o2.getWeaknesses().size()) { + return o1.getStrengths().size() - o2.getStrengths().size(); + } else if (o1.getWeaknesses().size() > o2.getWeaknesses().size()) { + return -1; + } else { + return 1; + } + } + }; + + @Override + public CommandResult execute(Model model) { + requireNonNull(model); + List lastShownPersonList = model.getUnfilteredPersonList(); + List newPersonList = new ArrayList<>(lastShownPersonList); + AddressBook newAddressBook = new AddressBook(); + + newPersonList.sort(BY_WEAKNESSES); + for (Person p : newPersonList) { + newAddressBook.addPerson(p); + } + model.setAddressBook(new AddressBook(newAddressBook)); //update address book with new sorted book + return new CommandResult(MESSAGE_SUCCESS); + } +} diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index 394621d3f3e..8f0da88bbb5 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -24,6 +24,7 @@ import seedu.address.logic.commands.ListTaskCommand; import seedu.address.logic.commands.LoadCourtCommand; import seedu.address.logic.commands.SortStrengthCommand; +import seedu.address.logic.commands.SortWeaknessCommand; import seedu.address.logic.commands.notecommands.AddMiscCommand; import seedu.address.logic.commands.notecommands.AddStrengthCommand; import seedu.address.logic.commands.notecommands.AddWeaknessCommand; @@ -105,6 +106,9 @@ public Command parseCommand(String userInput) throws ParseException { case SortStrengthCommand.COMMAND_WORD: return new SortStrengthCommand(); + case SortWeaknessCommand.COMMAND_WORD: + return new SortWeaknessCommand(); + case AddStrengthCommand.COMMAND_WORD: return new AddStrengthCommandParser().parse(arguments); From be5cab04381c74d0a49fa4bc1f89b88f296f34bd Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Tue, 29 Mar 2022 06:17:06 +0800 Subject: [PATCH 264/455] Add test cases for sort command classes --- .../commands/SortStrengthCommandTest.java | 36 +++++++ .../commands/SortWeaknessCommandTest.java | 36 +++++++ .../logic/parser/AddressBookParserTest.java | 14 +++ .../address/testutil/TypicalPersons.java | 98 ++++++++++++++++++- 4 files changed, 183 insertions(+), 1 deletion(-) create mode 100644 src/test/java/seedu/address/logic/commands/SortStrengthCommandTest.java create mode 100644 src/test/java/seedu/address/logic/commands/SortWeaknessCommandTest.java diff --git a/src/test/java/seedu/address/logic/commands/SortStrengthCommandTest.java b/src/test/java/seedu/address/logic/commands/SortStrengthCommandTest.java new file mode 100644 index 00000000000..cf73300485b --- /dev/null +++ b/src/test/java/seedu/address/logic/commands/SortStrengthCommandTest.java @@ -0,0 +1,36 @@ +package seedu.address.logic.commands; + +import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; +import static seedu.address.testutil.TypicalPersons.getGenericAddressBookWithSortedStrengths; +import static seedu.address.testutil.TypicalPersons.getGenericAddressBookWithUnsortedStrengths; +import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import seedu.address.model.Model; +import seedu.address.model.ModelManager; +import seedu.address.model.StrategyBoard; +import seedu.address.model.UserPrefs; + +/** + * Contains integration tests (interaction with the Model) and unit tests for SortStrengthCommand. + */ +public class SortStrengthCommandTest { + + private Model model; + private Model expectedModel; + + @BeforeEach + public void setUp() { + model = new ModelManager(getGenericAddressBookWithUnsortedStrengths(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); + expectedModel = new ModelManager(getGenericAddressBookWithSortedStrengths(), + model.getTaskBook(), new StrategyBoard(), new UserPrefs()); + } + + @Test + public void execute_unsortedList_success() { + assertCommandSuccess(new SortStrengthCommand(), model, SortStrengthCommand.MESSAGE_SUCCESS, expectedModel); + } +} diff --git a/src/test/java/seedu/address/logic/commands/SortWeaknessCommandTest.java b/src/test/java/seedu/address/logic/commands/SortWeaknessCommandTest.java new file mode 100644 index 00000000000..29731d0350f --- /dev/null +++ b/src/test/java/seedu/address/logic/commands/SortWeaknessCommandTest.java @@ -0,0 +1,36 @@ +package seedu.address.logic.commands; + +import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; +import static seedu.address.testutil.TypicalPersons.getGenericAddressBookWithSortedWeaknesses; +import static seedu.address.testutil.TypicalPersons.getGenericAddressBookWithUnsortedWeaknesses; +import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import seedu.address.model.Model; +import seedu.address.model.ModelManager; +import seedu.address.model.StrategyBoard; +import seedu.address.model.UserPrefs; + +/** + * Contains integration tests (interaction with the Model) and unit tests for SortWeaknessCommand. + */ +public class SortWeaknessCommandTest { + + private Model model; + private Model expectedModel; + + @BeforeEach + public void setUp() { + model = new ModelManager(getGenericAddressBookWithUnsortedWeaknesses(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); + expectedModel = new ModelManager(getGenericAddressBookWithSortedWeaknesses(), + model.getTaskBook(), new StrategyBoard(), new UserPrefs()); + } + + @Test + public void execute_unsortedList_success() { + assertCommandSuccess(new SortWeaknessCommand(), model, SortWeaknessCommand.MESSAGE_SUCCESS, expectedModel); + } +} diff --git a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java index 080061499a5..a98131775e9 100644 --- a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java +++ b/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java @@ -26,6 +26,8 @@ import seedu.address.logic.commands.HelpCommand; import seedu.address.logic.commands.ListCommand; import seedu.address.logic.commands.LoadCourtCommand; +import seedu.address.logic.commands.SortStrengthCommand; +import seedu.address.logic.commands.SortWeaknessCommand; import seedu.address.logic.commands.notecommands.AddMiscCommand; import seedu.address.logic.commands.notecommands.AddStrengthCommand; import seedu.address.logic.commands.notecommands.AddWeaknessCommand; @@ -175,6 +177,18 @@ public void parseCommand_list() throws Exception { assertTrue(parser.parseCommand(ListCommand.COMMAND_WORD + " 3") instanceof ListCommand); } + @Test + public void parseCommand_sortStrength() throws Exception { + assertTrue(parser.parseCommand(SortStrengthCommand.COMMAND_WORD) instanceof SortStrengthCommand); + assertTrue(parser.parseCommand(SortStrengthCommand.COMMAND_WORD + " 3") instanceof SortStrengthCommand); + } + + @Test + public void parseCommand_sortWeakness() throws Exception { + assertTrue(parser.parseCommand(SortWeaknessCommand.COMMAND_WORD) instanceof SortWeaknessCommand); + assertTrue(parser.parseCommand(SortWeaknessCommand.COMMAND_WORD + " 3") instanceof SortWeaknessCommand); + } + @Test public void parseCommand_unrecognisedInput_throwsParseException() { assertThrows(ParseException.class, String.format(MESSAGE_INVALID_COMMAND_FORMAT, HelpCommand.MESSAGE_USAGE), () diff --git a/src/test/java/seedu/address/testutil/TypicalPersons.java b/src/test/java/seedu/address/testutil/TypicalPersons.java index 43dc95b8de0..ec622adc71c 100644 --- a/src/test/java/seedu/address/testutil/TypicalPersons.java +++ b/src/test/java/seedu/address/testutil/TypicalPersons.java @@ -60,7 +60,27 @@ public class TypicalPersons { .withEmail(VALID_EMAIL_BOB).withAddress(VALID_ADDRESS_BOB).withTags(VALID_TAG_HUSBAND, VALID_TAG_FRIEND) .build(); - public static final String KEYWORD_MATCHING_MEIER = "Meier"; // A keyword that matches MEIER + //Manually added - Person's details for sort testing + private static final String noteStub1 = "something1"; + private static final String noteStub2 = "something2"; + private static final String noteStub3 = "something3"; + + public static final Person PERSON_A = new PersonBuilder().withName("PersonA") + .withStrengths(noteStub1, noteStub2, noteStub3).build(); + public static final Person PERSON_B = new PersonBuilder().withName("PersonB").withStrengths(noteStub1, noteStub2) + .withWeaknesses(noteStub1).build(); + public static final Person PERSON_C = new PersonBuilder().withName("PersonC").withStrengths(noteStub1, noteStub2) + .withWeaknesses(noteStub1, noteStub2).build(); + public static final Person PERSON_D = new PersonBuilder().withName("PersonD").withStrengths(noteStub1) + .withWeaknesses(noteStub1).build(); + public static final Person PERSON_E = new PersonBuilder().withName("PersonE") + .withWeaknesses(noteStub1, noteStub2, noteStub3).build(); + public static final Person PERSON_F = new PersonBuilder().withName("PersonF").withStrengths(noteStub1) + .withWeaknesses(noteStub1, noteStub2).build(); + public static final Person PERSON_G = new PersonBuilder().withName("PersonG").withStrengths(noteStub1, noteStub2) + .withWeaknesses(noteStub1, noteStub2).build(); + public static final Person PERSON_H = new PersonBuilder().withName("PersonH").withStrengths(noteStub1) + .withWeaknesses(noteStub1).build(); private TypicalPersons() {} // prevents instantiation @@ -75,7 +95,83 @@ public static AddressBook getTypicalAddressBook() { return ab; } + /** + * Returns an {@code AddressBook} with sorted list of persons for strength-sort test cases. + */ + public static AddressBook getGenericAddressBookWithSortedStrengths() { + AddressBook ab = new AddressBook(); + for (Person person : getGenericPersonsWithSortedStrengths()) { + ab.addPerson(person); + } + return ab; + } + + /** + * Returns an {@code AddressBook} with sorted list of persons for weakness-sort test cases. + */ + public static AddressBook getGenericAddressBookWithSortedWeaknesses() { + AddressBook ab = new AddressBook(); + for (Person person : getGenericPersonsWithSortedWeaknesses()) { + ab.addPerson(person); + } + return ab; + } + + /** + * Returns an {@code AddressBook} with unsorted list of persons for strength-sort test cases. + */ + public static AddressBook getGenericAddressBookWithUnsortedStrengths() { + AddressBook ab = new AddressBook(); + for (Person person : getGenericPersonsWithUnsortedStrengths()) { + ab.addPerson(person); + } + return ab; + } + + /** + * Returns an {@code AddressBook} with unsorted list of persons for weakness-sort test cases. + */ + public static AddressBook getGenericAddressBookWithUnsortedWeaknesses() { + AddressBook ab = new AddressBook(); + for (Person person : getGenericPersonsWithUnsortedWeaknesses()) { + ab.addPerson(person); + } + return ab; + } + public static List getTypicalPersons() { return new ArrayList<>(Arrays.asList(ALICE, BENSON, CARL, DANIEL, ELLE, FIONA, GEORGE)); } + + /** + * Returns unsorted persons for sort-strength test cases. + * @return list of persons + */ + public static List getGenericPersonsWithSortedStrengths() { + return new ArrayList<>(Arrays.asList(PERSON_A, PERSON_B, PERSON_C, PERSON_D)); + } + + /** + * Returns unsorted persons for sort-weakness test cases. + * @return list of persons + */ + public static List getGenericPersonsWithSortedWeaknesses() { + return new ArrayList<>(Arrays.asList(PERSON_E, PERSON_F, PERSON_G, PERSON_H)); + } + + /** + * Returns unsorted persons for sort-strength test cases. + * @return list of persons + */ + public static List getGenericPersonsWithUnsortedStrengths() { + return new ArrayList<>(Arrays.asList(PERSON_D, PERSON_A, PERSON_C, PERSON_B)); + } + + /** + * Returns unsorted persons for sort-weakness test cases. + * @return list of persons + */ + public static List getGenericPersonsWithUnsortedWeaknesses() { + return new ArrayList<>(Arrays.asList(PERSON_H, PERSON_E, PERSON_G, PERSON_F)); + } } From 6c7f141f5525ba76466b8fab6cf451f7ea8fb85b Mon Sep 17 00:00:00 2001 From: simjunheng Date: Tue, 29 Mar 2022 10:49:43 +0800 Subject: [PATCH 265/455] Edit assert statement in clear command --- src/main/java/seedu/address/logic/commands/ClearCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/logic/commands/ClearCommand.java b/src/main/java/seedu/address/logic/commands/ClearCommand.java index 32b361d6995..70307b7d4b5 100644 --- a/src/main/java/seedu/address/logic/commands/ClearCommand.java +++ b/src/main/java/seedu/address/logic/commands/ClearCommand.java @@ -47,7 +47,7 @@ public CommandResult execute(Model model) { * edited with {@code editTaskDescriptor}. */ public static Task createEditedTask(Task taskToEdit, EditTaskDescriptor editTaskDescriptor) { - assert taskToEdit != null; + requireNonNull(taskToEdit); Name updatedName = editTaskDescriptor.getName().orElse(taskToEdit.getName()); Date updatedDate = editTaskDescriptor.getDate().orElse(taskToEdit.getDate()); From bf61654f6713b5b4b113fb6663a351b078261141 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Tue, 29 Mar 2022 11:33:04 +0800 Subject: [PATCH 266/455] Amend grid in Strategy Panel --- .../java/seedu/address/ui/StrategyPanel.java | 7 +++++++ src/main/resources/view/StrategyPanel.fxml | 18 +++++++++--------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/src/main/java/seedu/address/ui/StrategyPanel.java b/src/main/java/seedu/address/ui/StrategyPanel.java index 8efdd5eb683..dbafc1d4b43 100644 --- a/src/main/java/seedu/address/ui/StrategyPanel.java +++ b/src/main/java/seedu/address/ui/StrategyPanel.java @@ -12,6 +12,7 @@ import javafx.fxml.FXML; import javafx.geometry.VPos; import javafx.scene.Cursor; +import javafx.scene.control.Slider; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.input.MouseEvent; @@ -43,6 +44,10 @@ public class StrategyPanel extends UiPart { private ImageView strategyImage; @FXML private AnchorPane strategyAnchorPane; + @FXML + private Slider vSlider; + @FXML + private Slider hSlider; // Credit to http://java-buddy.blogspot.com/2013/07/move-node-to-front.html @@ -86,6 +91,8 @@ public void handle(MouseEvent t) { public StrategyPanel(ObservableList playerList) { super(FXML); initBackgroundImage(); + vSlider.toBack(); + hSlider.toBack(); playerList.addListener((ListChangeListener) change -> { while (change.next()) { if (change.wasAdded()) { diff --git a/src/main/resources/view/StrategyPanel.fxml b/src/main/resources/view/StrategyPanel.fxml index 85452d50650..5a33ee79168 100644 --- a/src/main/resources/view/StrategyPanel.fxml +++ b/src/main/resources/view/StrategyPanel.fxml @@ -5,13 +5,13 @@ - - - - - + + + + + + + + + From 93d88ba8823c488576c86ae81da03d76ffbeb1c8 Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Tue, 29 Mar 2022 13:13:15 +0800 Subject: [PATCH 267/455] Implements move player feature --- .../seedu/address/commons/core/Messages.java | 2 +- src/main/java/seedu/address/logic/Logic.java | 3 +- .../seedu/address/logic/LogicManager.java | 3 +- .../commands/strategy/AddPlayerCommand.java | 6 +- .../strategy/DeletePlayerCommand.java | 6 +- .../commands/strategy/MovePlayerCommand.java | 78 +++++++++++++++++ .../logic/parser/AddressBookParser.java | 5 ++ .../seedu/address/logic/parser/CliSyntax.java | 3 +- .../strategy/MovePlayerCommandParser.java | 58 +++++++++++++ src/main/java/seedu/address/model/Model.java | 18 ++-- .../seedu/address/model/ModelManager.java | 21 +++-- .../address/model/ReadOnlyStrategyBoard.java | 3 +- .../seedu/address/model/StrategyBoard.java | 18 ++-- .../seedu/address/model/strategy/Player.java | 84 +++++++++++++++++++ .../model/strategy/UniquePlayerList.java | 37 +++++--- .../java/seedu/address/ui/StrategyPanel.java | 26 ++++-- .../logic/commands/AddCommandTest.java | 16 ++-- 17 files changed, 331 insertions(+), 56 deletions(-) create mode 100644 src/main/java/seedu/address/logic/commands/strategy/MovePlayerCommand.java create mode 100644 src/main/java/seedu/address/logic/parser/strategy/MovePlayerCommandParser.java create mode 100644 src/main/java/seedu/address/model/strategy/Player.java diff --git a/src/main/java/seedu/address/commons/core/Messages.java b/src/main/java/seedu/address/commons/core/Messages.java index 07ca115e280..b894e3ddd2c 100644 --- a/src/main/java/seedu/address/commons/core/Messages.java +++ b/src/main/java/seedu/address/commons/core/Messages.java @@ -13,5 +13,5 @@ public class Messages { public static final String MESSAGE_PERSONS_LISTED_OVERVIEW = "%1$d persons listed!"; public static final String MESSAGE_TASKS_LISTED_OVERVIEW = "%1$d tasks listed!"; public static final String MESSAGE_INVALID_TAG = "Tags must be alphanumeric only!"; - + public static final String MESSAGE_INVALID_PLAYER = "%1$s is not in the strategy board!"; } diff --git a/src/main/java/seedu/address/logic/Logic.java b/src/main/java/seedu/address/logic/Logic.java index 7d86b1dd07c..4d0d04516e9 100644 --- a/src/main/java/seedu/address/logic/Logic.java +++ b/src/main/java/seedu/address/logic/Logic.java @@ -9,6 +9,7 @@ import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.ReadOnlyAddressBook; import seedu.address.model.person.Person; +import seedu.address.model.strategy.Player; import seedu.address.model.task.Task; /** @@ -38,7 +39,7 @@ public interface Logic { ObservableList getFilteredTaskList(); /** Returns an unmodifiable view of the filtered list of players */ - ObservableList getFilteredPlayerList(); + ObservableList getFilteredPlayerList(); /** * Returns the user prefs' address book file path. diff --git a/src/main/java/seedu/address/logic/LogicManager.java b/src/main/java/seedu/address/logic/LogicManager.java index e5f17d430a0..cd9bdac26ac 100644 --- a/src/main/java/seedu/address/logic/LogicManager.java +++ b/src/main/java/seedu/address/logic/LogicManager.java @@ -15,6 +15,7 @@ import seedu.address.model.Model; import seedu.address.model.ReadOnlyAddressBook; import seedu.address.model.person.Person; +import seedu.address.model.strategy.Player; import seedu.address.model.task.Task; import seedu.address.storage.Storage; @@ -72,7 +73,7 @@ public ObservableList getFilteredTaskList() { } @Override - public ObservableList getFilteredPlayerList() { + public ObservableList getFilteredPlayerList() { return model.getFilteredPlayerList(); } diff --git a/src/main/java/seedu/address/logic/commands/strategy/AddPlayerCommand.java b/src/main/java/seedu/address/logic/commands/strategy/AddPlayerCommand.java index 5139aac8904..0d34470ca0a 100644 --- a/src/main/java/seedu/address/logic/commands/strategy/AddPlayerCommand.java +++ b/src/main/java/seedu/address/logic/commands/strategy/AddPlayerCommand.java @@ -8,6 +8,7 @@ import seedu.address.logic.commands.CommandResult; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; +import seedu.address.model.strategy.Player; /** * Adds a player in the strategy panel @@ -47,11 +48,12 @@ public CommandResult execute(Model model) throws CommandException { } requireNonNull(model); - if (model.hasPlayer(playerName)) { + Player player = new Player(playerName); + if (model.hasPlayer(player)) { throw new CommandException(MESSAGE_DUPLICATE_PLAYER); } - model.addPlayer(playerName); + model.addPlayer(player); return new CommandResult(String.format(MESSAGE_SUCCESS, playerName)); } diff --git a/src/main/java/seedu/address/logic/commands/strategy/DeletePlayerCommand.java b/src/main/java/seedu/address/logic/commands/strategy/DeletePlayerCommand.java index fd3d677fd1c..72398735934 100644 --- a/src/main/java/seedu/address/logic/commands/strategy/DeletePlayerCommand.java +++ b/src/main/java/seedu/address/logic/commands/strategy/DeletePlayerCommand.java @@ -8,6 +8,7 @@ import seedu.address.logic.commands.CommandResult; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; +import seedu.address.model.strategy.Player; /** * Deletes a player in the strategy panel @@ -45,12 +46,13 @@ public CommandResult execute(Model model) throws CommandException { String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddPlayerCommand.MESSAGE_USAGE)); } - if (!model.hasPlayer(playerName)) { + Player player = new Player(playerName); + if (!model.hasPlayer(player)) { throw new CommandException( String.format(MESSAGE_PLAYER_NOT_FOUND, playerName)); } requireNonNull(model); - model.deletePlayer(playerName); + model.deletePlayer(player); return new CommandResult(String.format(MESSAGE_SUCCESS, playerName)); } diff --git a/src/main/java/seedu/address/logic/commands/strategy/MovePlayerCommand.java b/src/main/java/seedu/address/logic/commands/strategy/MovePlayerCommand.java new file mode 100644 index 00000000000..40fd57fba4a --- /dev/null +++ b/src/main/java/seedu/address/logic/commands/strategy/MovePlayerCommand.java @@ -0,0 +1,78 @@ +package seedu.address.logic.commands.strategy; + +import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; +import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PLAYERS; + +import seedu.address.commons.core.Messages; +import seedu.address.logic.commands.Command; +import seedu.address.logic.commands.CommandResult; +import seedu.address.logic.commands.exceptions.CommandException; +import seedu.address.model.Model; +import seedu.address.model.strategy.Player; + +/** + * Moves the player to the specified location in the strategy board. + */ +public class MovePlayerCommand extends Command { + public static final String COMMAND_WORD = "move"; + + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Moves the player to the specified location.\n" + + "Parameters: " + + "PLAYER_NAME " + + "x/X_COORDINATE (must be non-negative integers) " + + "y/Y_COORDINATE (must be non-negative integers)\n" + + "Example: " + COMMAND_WORD + " " + "John" + " " + "x/10" + " " + "y/20"; + + public static final String MESSAGE_SUCCESS = "%1$s has been moved to the specified location: (%2$d, %3$d)."; + + private final String playerName; + private final int xCoordinate; + private final int yCoordinate; + + /** + * @param playerName the name of the player to move + * @param xCoordinate the x coordinate of the location to move to + * @param yCoordinate the y coordinate of the location to move to + */ + public MovePlayerCommand(String playerName, int xCoordinate, int yCoordinate) { + requireAllNonNull(playerName, xCoordinate, yCoordinate); + + this.playerName = playerName; + this.xCoordinate = xCoordinate; + this.yCoordinate = yCoordinate; + } + + @Override + public CommandResult execute(Model model) throws CommandException { + requireAllNonNull(model); + + Player player = new Player(playerName); + + if (!model.hasPlayer(player)) { + throw new CommandException(String.format(Messages.MESSAGE_INVALID_PLAYER, playerName)); + } + + Player editedPlayer = player.toCopy(); + + editedPlayer.setXCoord(xCoordinate); + editedPlayer.setYCoord(yCoordinate); + + //model.setPlayer(player, editedPlayer); + model.deletePlayer(player); + model.addPlayer(editedPlayer); + model.updateFilteredPlayerList(PREDICATE_SHOW_ALL_PLAYERS); + + return new CommandResult(String.format(MESSAGE_SUCCESS, playerName, xCoordinate, yCoordinate)); + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof MovePlayerCommand // instanceof handles nulls + && (playerName.equals(((MovePlayerCommand) other).playerName)) + && (xCoordinate == ((MovePlayerCommand) other).xCoordinate) + && (yCoordinate == ((MovePlayerCommand) other).yCoordinate)); + } +} + diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index bbb4e5c57b8..a1f74ae36c9 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -32,6 +32,7 @@ import seedu.address.logic.commands.notecommands.DeleteWeaknessCommand; import seedu.address.logic.commands.strategy.AddPlayerCommand; import seedu.address.logic.commands.strategy.DeletePlayerCommand; +import seedu.address.logic.commands.strategy.MovePlayerCommand; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.logic.parser.notecommandparsers.AddMiscCommandParser; import seedu.address.logic.parser.notecommandparsers.AddStrengthCommandParser; @@ -41,6 +42,7 @@ import seedu.address.logic.parser.notecommandparsers.DeleteWeaknessCommandParser; import seedu.address.logic.parser.strategy.AddPlayerCommandParser; import seedu.address.logic.parser.strategy.DeletePlayerCommandParser; +import seedu.address.logic.parser.strategy.MovePlayerCommandParser; /** * Parses user input. @@ -144,6 +146,9 @@ public Command parseCommand(String userInput) throws ParseException { case AddTagToTaskCommand.COMMAND_WORD: return new AddTagToTaskCommandParser().parse(arguments); + case MovePlayerCommand.COMMAND_WORD: + return new MovePlayerCommandParser().parse(arguments); + default: throw new ParseException(MESSAGE_UNKNOWN_COMMAND); } diff --git a/src/main/java/seedu/address/logic/parser/CliSyntax.java b/src/main/java/seedu/address/logic/parser/CliSyntax.java index 5037700eecc..f2e5871315c 100644 --- a/src/main/java/seedu/address/logic/parser/CliSyntax.java +++ b/src/main/java/seedu/address/logic/parser/CliSyntax.java @@ -15,5 +15,6 @@ public class CliSyntax { public static final Prefix PREFIX_DATE = new Prefix("d/"); public static final Prefix PREFIX_STARTTIME = new Prefix("st/"); public static final Prefix PREFIX_ENDTIME = new Prefix("et/"); - + public static final Prefix PREFIX_XCOORD = new Prefix("x/"); + public static final Prefix PREFIX_YCOORD = new Prefix("y/"); } diff --git a/src/main/java/seedu/address/logic/parser/strategy/MovePlayerCommandParser.java b/src/main/java/seedu/address/logic/parser/strategy/MovePlayerCommandParser.java new file mode 100644 index 00000000000..53b012bec30 --- /dev/null +++ b/src/main/java/seedu/address/logic/parser/strategy/MovePlayerCommandParser.java @@ -0,0 +1,58 @@ +package seedu.address.logic.parser.strategy; + +import static java.util.Objects.requireNonNull; +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static seedu.address.logic.parser.CliSyntax.PREFIX_XCOORD; +import static seedu.address.logic.parser.CliSyntax.PREFIX_YCOORD; + +import java.util.stream.Stream; + +import seedu.address.logic.commands.strategy.MovePlayerCommand; +import seedu.address.logic.parser.ArgumentMultimap; +import seedu.address.logic.parser.ArgumentTokenizer; +import seedu.address.logic.parser.Parser; +import seedu.address.logic.parser.Prefix; +import seedu.address.logic.parser.exceptions.ParseException; + +/** + * Parses input arguments and creates a new MovePlayerCommand object. + */ +public class MovePlayerCommandParser implements Parser { + + /** + * Parses the given {@code String} of arguments in the context of the MovePlayerCommand + * and returns an MovePlayerCommand object for execution. + * + * @return an MovePlayerCommand object for execution. + * @throws ParseException if the user input does not conform the expected format. + */ + @Override + public MovePlayerCommand parse(String args) throws ParseException { + requireNonNull(args); + + ArgumentMultimap argMultimap = + ArgumentTokenizer.tokenize(args, PREFIX_XCOORD, PREFIX_YCOORD); + if (!arePrefixesPresent(argMultimap, PREFIX_XCOORD, PREFIX_YCOORD) + || argMultimap.getPreamble().isEmpty()) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, MovePlayerCommand.MESSAGE_USAGE)); + } + + try { + int xCoord = Integer.parseInt(argMultimap.getValue(PREFIX_XCOORD).get()); + int yCoord = Integer.parseInt(argMultimap.getValue(PREFIX_YCOORD).get()); + String playerName = argMultimap.getPreamble(); + + return new MovePlayerCommand(playerName, xCoord, yCoord); + } catch (NumberFormatException e) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, MovePlayerCommand.MESSAGE_USAGE)); + } + } + + /** + * Returns true if none of the prefixes contains empty {@code Optional} values in the given + * {@code ArgumentMultimap}. + */ + private static boolean arePrefixesPresent(ArgumentMultimap argumentMultimap, Prefix... prefixes) { + return Stream.of(prefixes).allMatch(prefix -> argumentMultimap.getValue(prefix).isPresent()); + } +} diff --git a/src/main/java/seedu/address/model/Model.java b/src/main/java/seedu/address/model/Model.java index 4c9313c294c..e2ad197c92e 100644 --- a/src/main/java/seedu/address/model/Model.java +++ b/src/main/java/seedu/address/model/Model.java @@ -6,6 +6,7 @@ import javafx.collections.ObservableList; import seedu.address.commons.core.GuiSettings; import seedu.address.model.person.Person; +import seedu.address.model.strategy.Player; import seedu.address.model.task.Task; /** @@ -15,7 +16,7 @@ public interface Model { /** {@code Predicate} that always evaluate to true */ Predicate PREDICATE_SHOW_ALL_PERSONS = unused -> true; Predicate PREDICATE_SHOW_ALL_TASKS = unused -> true; - Predicate PREDICATE_SHOW_ALL_PLAYERS = unused -> true; + Predicate PREDICATE_SHOW_ALL_PLAYERS = unused -> true; /** * Replaces user prefs data with the data in {@code userPrefs}. @@ -156,26 +157,31 @@ public interface Model { /** * Returns true if a player with the same identity as {@code player} exists in the strategy board. */ - boolean hasPlayer(String player); + boolean hasPlayer(Player player); /** * Deletes the given player. * The task must exist in the strategy board. */ - void deletePlayer(String target); + void deletePlayer(Player target); /** * Adds the given player. * {@code player} must not already exist in the strategy board. */ - void addPlayer(String player); + void addPlayer(Player player); + + /** + * Replaces the given player {@code target} with {@code editedPlayer}. + */ + void setPlayer(Player target, Player editedPlayer); /** Returns an unmodifiable view of the filtered player list */ - ObservableList getFilteredPlayerList(); + ObservableList getFilteredPlayerList(); /** * Updates the filter of the filtered player list to filter by the given {@code predicate}. * @throws NullPointerException if {@code predicate} is null. */ - void updateFilteredPlayerList(Predicate predicate); + void updateFilteredPlayerList(Predicate predicate); } diff --git a/src/main/java/seedu/address/model/ModelManager.java b/src/main/java/seedu/address/model/ModelManager.java index 346b3197eb5..56746527fad 100644 --- a/src/main/java/seedu/address/model/ModelManager.java +++ b/src/main/java/seedu/address/model/ModelManager.java @@ -12,6 +12,7 @@ import seedu.address.commons.core.GuiSettings; import seedu.address.commons.core.LogsCenter; import seedu.address.model.person.Person; +import seedu.address.model.strategy.Player; import seedu.address.model.task.Task; /** @@ -26,7 +27,7 @@ public class ModelManager implements Model { private final UserPrefs userPrefs; private final FilteredList filteredPersons; private final FilteredList filteredTasks; - private final FilteredList filteredPlayers; + private final FilteredList filteredPlayers; /** * Initializes a ModelManager with the given addressBook and userPrefs. @@ -225,30 +226,28 @@ public ReadOnlyStrategyBoard getStrategyBoard() { } @Override - public boolean hasPlayer(String player) { + public boolean hasPlayer(Player player) { requireNonNull(player); return strategyBoard.hasPlayer(player); } @Override - public void deletePlayer(String target) { + public void deletePlayer(Player target) { strategyBoard.removePlayer(target); } @Override - public void addPlayer(String player) { + public void addPlayer(Player player) { strategyBoard.addPlayer(player); updateFilteredPlayerList(PREDICATE_SHOW_ALL_PLAYERS); } - /* @Override - public void setPlayer(String target, editedTask) { - requireAllNonNull(target, editedTask); + public void setPlayer(Player target, Player editedPlayer) { + requireAllNonNull(target, editedPlayer); - taskBook.setTask(target, editedTask); + strategyBoard.setPlayer(target, editedPlayer); } - */ //=========== Filtered Player List Accessors ============================================================= @@ -257,12 +256,12 @@ public void setPlayer(String target, editedTask) { * {@code versionedStrategyBoard} */ @Override - public ObservableList getFilteredPlayerList() { + public ObservableList getFilteredPlayerList() { return filteredPlayers; } @Override - public void updateFilteredPlayerList(Predicate predicate) { + public void updateFilteredPlayerList(Predicate predicate) { requireNonNull(predicate); filteredPlayers.setPredicate(predicate); } diff --git a/src/main/java/seedu/address/model/ReadOnlyStrategyBoard.java b/src/main/java/seedu/address/model/ReadOnlyStrategyBoard.java index 03106c09784..e0600a8eeb3 100644 --- a/src/main/java/seedu/address/model/ReadOnlyStrategyBoard.java +++ b/src/main/java/seedu/address/model/ReadOnlyStrategyBoard.java @@ -1,6 +1,7 @@ package seedu.address.model; import javafx.collections.ObservableList; +import seedu.address.model.strategy.Player; /** * Unmodifiable view of a strategy board @@ -10,5 +11,5 @@ public interface ReadOnlyStrategyBoard { * Returns an unmodifiable view of the player list. * This list will not contain any duplicate players. */ - ObservableList getPlayerList(); + ObservableList getPlayerList(); } diff --git a/src/main/java/seedu/address/model/StrategyBoard.java b/src/main/java/seedu/address/model/StrategyBoard.java index 842fd15aef2..507d2595329 100644 --- a/src/main/java/seedu/address/model/StrategyBoard.java +++ b/src/main/java/seedu/address/model/StrategyBoard.java @@ -5,6 +5,7 @@ import java.util.List; import javafx.collections.ObservableList; +import seedu.address.model.strategy.Player; import seedu.address.model.strategy.UniquePlayerList; /** @@ -39,7 +40,7 @@ public StrategyBoard(ReadOnlyStrategyBoard toBeCopied) { /** * Replaces the contents of the player list with {@code players}. */ - public void setPlayers(List players) { + public void setPlayers(List players) { this.players.setPlayers(players); } @@ -57,7 +58,7 @@ public void resetData(ReadOnlyStrategyBoard newData) { /** * Returns true if a player with the same identity as {@code player} exists in the address book. */ - public boolean hasPlayer(String player) { + public boolean hasPlayer(Player player) { requireNonNull(player); return players.contains(player); } @@ -66,7 +67,7 @@ public boolean hasPlayer(String player) { * Adds a player to the Strategy Board. * The player must not already exist in the strategy board. */ - public void addPlayer(String t) { + public void addPlayer(Player t) { players.add(t); } @@ -74,10 +75,15 @@ public void addPlayer(String t) { * Removes {@code key} from this {@code StrategyBoard}. * {@code key} must exist in the strategy board. */ - public void removePlayer(String key) { + public void removePlayer(Player key) { players.remove(key); } + public void setPlayer(Player target, Player editedPlayer) { + requireNonNull(editedPlayer); + + players.setPlayer(target, editedPlayer); + } //// util methods @Override @@ -86,7 +92,7 @@ public String toString() { } @Override - public ObservableList getPlayerList() { + public ObservableList getPlayerList() { return players.asUnmodifiableObservableList(); } @@ -101,4 +107,6 @@ public boolean equals(Object other) { public int hashCode() { return players.hashCode(); } + + } diff --git a/src/main/java/seedu/address/model/strategy/Player.java b/src/main/java/seedu/address/model/strategy/Player.java new file mode 100644 index 00000000000..f671645108a --- /dev/null +++ b/src/main/java/seedu/address/model/strategy/Player.java @@ -0,0 +1,84 @@ +package seedu.address.model.strategy; + +import static java.util.Objects.requireNonNull; + +import java.util.Objects; + +public class Player { + private static final int DEF_XCOORD = 100; + private static final int DEF_YCOORD = 100; + + private final String name; + private int xCoord; + private int yCoord; + + /** + * Creates a new player without specifying the coordinates + */ + public Player(String name) { + requireNonNull(name); + this.name = name; + this.xCoord = DEF_XCOORD; + this.yCoord = DEF_YCOORD; + } + + /** + * Creates a new player with specified coordinates + */ + public Player(String name, int xCoord, int yCoord) { + this.name = name; + this.xCoord = xCoord; + this.yCoord = yCoord; + } + + //Getters + public String getName() { + return name; + } + + public int getXCoord() { + return xCoord; + } + + public int getYCoord() { + return yCoord; + } + + //Setters + public void setXCoord(int xCoord) { + this.xCoord = xCoord; + } + + public void setYCoord(int yCoord) { + this.yCoord = yCoord; + } + + //uti methods + public Player toCopy() { + return new Player(name, xCoord, yCoord); + } + + /** + * Returns true if both players have the same name + * This defines a stronger notion of equality between two tasks. + */ + @Override + public boolean equals(Object other) { + if (other == this) { + return true; + } + + if (!(other instanceof Player)) { + return false; + } + + Player otherPlayer = (Player) other; + return otherPlayer.getName().equals(getName()); + } + + @Override + public int hashCode() { + // use this method for custom fields hashing instead of implementing your own + return Objects.hash(name, xCoord, yCoord); + } +} diff --git a/src/main/java/seedu/address/model/strategy/UniquePlayerList.java b/src/main/java/seedu/address/model/strategy/UniquePlayerList.java index 8e278bf25e0..7de747dbd02 100644 --- a/src/main/java/seedu/address/model/strategy/UniquePlayerList.java +++ b/src/main/java/seedu/address/model/strategy/UniquePlayerList.java @@ -16,15 +16,15 @@ * * Supports a minimal set of list operations. */ -public class UniquePlayerList implements Iterable { - private final ObservableList internalList = FXCollections.observableArrayList(); - private final ObservableList internalUnmodifiableList = +public class UniquePlayerList implements Iterable { + private final ObservableList internalList = FXCollections.observableArrayList(); + private final ObservableList internalUnmodifiableList = FXCollections.unmodifiableObservableList(internalList); /** * Returns true if the list contains an equivalent player as the given argument. */ - public boolean contains(String toCheck) { + public boolean contains(Player toCheck) { requireNonNull(toCheck); return internalList.stream().anyMatch(toCheck::equals); } @@ -33,7 +33,7 @@ public boolean contains(String toCheck) { * Adds a player to the list. * The player must not already exist in the list. */ - public void add(String toAdd) { + public void add(Player toAdd) { requireNonNull(toAdd); if (contains(toAdd)) { throw new DuplicatePlayerException(); @@ -45,23 +45,34 @@ public void add(String toAdd) { * Removes the equivalent player from the list. * The player must exist in the list. */ - public void remove(String toRemove) { + public void remove(Player toRemove) { requireNonNull(toRemove); if (!internalList.remove(toRemove)) { throw new PlayerNotFoundException(); } } - public void setPlayers(UniquePlayerList replacement) { - requireNonNull(replacement); - internalList.setAll(replacement.internalList); + /** + * Replaces the player {@code target} in the list with {@code editedPlayer}. + * {@code target} must exist in the list. + */ + public void setPlayer(Player target, Player editedPlayer) { + requireNonNull(target); + requireNonNull(editedPlayer); + + int index = internalList.indexOf(target); + if (index == -1) { + throw new PlayerNotFoundException(); + } + + internalList.set(index, editedPlayer); } /** * Replaces the contents of this list with {@code players}. * {@code players} must not contain duplicate players. */ - public void setPlayers(List players) { + public void setPlayers(List players) { requireAllNonNull(players); if (!playersAreUnique(players)) { throw new DuplicatePlayerException(); @@ -73,12 +84,12 @@ public void setPlayers(List players) { /** * Returns the backing list as an unmodifiable {@code ObservableList}. */ - public ObservableList asUnmodifiableObservableList() { + public ObservableList asUnmodifiableObservableList() { return internalUnmodifiableList; } @Override - public Iterator iterator() { + public Iterator iterator() { return internalList.iterator(); } @@ -97,7 +108,7 @@ public int hashCode() { /** * Returns true if {@code players} contains only unique players. */ - private boolean playersAreUnique(List players) { + private boolean playersAreUnique(List players) { for (int i = 0; i < players.size() - 1; i++) { for (int j = i + 1; j < players.size(); j++) { if (players.get(i).equals(players.get(j))) { diff --git a/src/main/java/seedu/address/ui/StrategyPanel.java b/src/main/java/seedu/address/ui/StrategyPanel.java index 8efdd5eb683..bc97b0b1d76 100644 --- a/src/main/java/seedu/address/ui/StrategyPanel.java +++ b/src/main/java/seedu/address/ui/StrategyPanel.java @@ -26,6 +26,7 @@ import javafx.scene.text.Text; import seedu.address.MainApp; import seedu.address.commons.core.LogsCenter; +import seedu.address.model.strategy.Player; public class StrategyPanel extends UiPart { private static final String FXML = "StrategyPanel.fxml"; @@ -83,34 +84,38 @@ public void handle(MouseEvent t) { /** * Creates a {@code StrategyPanel} with draggable circles. */ - public StrategyPanel(ObservableList playerList) { + public StrategyPanel(ObservableList playerList) { super(FXML); initBackgroundImage(); - playerList.addListener((ListChangeListener) change -> { + playerList.addListener((ListChangeListener) change -> { while (change.next()) { if (change.wasAdded()) { changeOnAdd(change.getAddedSubList()); } else if (change.wasRemoved()) { changeOnDelete(change.getRemoved()); + } else if (change.wasReplaced()) { + changeOnReplace(change.getRemoved(), change.getAddedSubList()); } } }); } - private void changeOnAdd(List addedSubList) { - for (String playerName : addedSubList) { + private void changeOnAdd(List addedSubList) { + for (Player player : addedSubList) { + String playerName = player.getName(); if (table.containsKey(playerName)) { continue; } StackPane stack = new StackPane(); - initStack(stack, playerName, 100, 100, 50, Color.BLUE); + initStack(stack, playerName, player.getXCoord(), player.getYCoord(), 50, Color.BLUE); playerView.getChildren().add(stack); table.put(playerName, stack); } } - private void changeOnDelete(List removeList) { - for (String playerName : removeList) { + private void changeOnDelete(List removeList) { + for (Player player : removeList) { + String playerName = player.getName(); if (table.containsKey(playerName)) { playerView.getChildren().remove(table.get(playerName)); table.remove(playerName); @@ -118,6 +123,11 @@ private void changeOnDelete(List removeList) { } } + private void changeOnReplace(List removeList, List addSubList) { + changeOnDelete(removeList); + changeOnAdd(addSubList); + } + /** * Changes the image contained in ImageView. * @param file the file reference for the image to be loaded @@ -163,6 +173,8 @@ private void initStack(StackPane stack, String name, double x, double y, double text.xProperty().bind(cr.centerXProperty()); text.yProperty().bind(cr.centerYProperty()); stack.getChildren().addAll(cr, text); + stack.setTranslateX(x); + stack.setTranslateY(y); stack.setOnMousePressed(pressHandler); stack.setOnMouseDragged(dragHandler); } diff --git a/src/test/java/seedu/address/logic/commands/AddCommandTest.java b/src/test/java/seedu/address/logic/commands/AddCommandTest.java index 9ae70363b76..5fd2da17e80 100644 --- a/src/test/java/seedu/address/logic/commands/AddCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddCommandTest.java @@ -23,6 +23,7 @@ import seedu.address.model.ReadOnlyTaskBook; import seedu.address.model.ReadOnlyUserPrefs; import seedu.address.model.person.Person; +import seedu.address.model.strategy.Player; import seedu.address.model.task.Task; import seedu.address.testutil.PersonBuilder; @@ -221,27 +222,32 @@ public ReadOnlyStrategyBoard getStrategyBoard() { } @Override - public boolean hasPlayer(String player) { + public boolean hasPlayer(Player player) { throw new AssertionError("This method should not be called."); } @Override - public void deletePlayer(String target) { + public void deletePlayer(Player target) { throw new AssertionError("This method should not be called."); } @Override - public void addPlayer(String player) { + public void addPlayer(Player player) { throw new AssertionError("This method should not be called."); } @Override - public ObservableList getFilteredPlayerList() { + public void setPlayer(Player target, Player editedPlayer) { throw new AssertionError("This method should not be called."); } @Override - public void updateFilteredPlayerList(Predicate predicate) { + public ObservableList getFilteredPlayerList() { + throw new AssertionError("This method should not be called."); + } + + @Override + public void updateFilteredPlayerList(Predicate predicate) { throw new AssertionError("This method should not be called."); } From 487ab264ab4d0dea9005738019ef47dda3202aa7 Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Tue, 29 Mar 2022 13:17:27 +0800 Subject: [PATCH 268/455] Add exceptions for negative integers --- .../logic/parser/strategy/MovePlayerCommandParser.java | 5 +++++ src/main/java/seedu/address/model/strategy/Player.java | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/address/logic/parser/strategy/MovePlayerCommandParser.java b/src/main/java/seedu/address/logic/parser/strategy/MovePlayerCommandParser.java index 53b012bec30..d35f2449005 100644 --- a/src/main/java/seedu/address/logic/parser/strategy/MovePlayerCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/strategy/MovePlayerCommandParser.java @@ -42,6 +42,11 @@ public MovePlayerCommand parse(String args) throws ParseException { int yCoord = Integer.parseInt(argMultimap.getValue(PREFIX_YCOORD).get()); String playerName = argMultimap.getPreamble(); + if (xCoord < 0 || yCoord < 0) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + MovePlayerCommand.MESSAGE_USAGE)); + } + return new MovePlayerCommand(playerName, xCoord, yCoord); } catch (NumberFormatException e) { throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, MovePlayerCommand.MESSAGE_USAGE)); diff --git a/src/main/java/seedu/address/model/strategy/Player.java b/src/main/java/seedu/address/model/strategy/Player.java index f671645108a..09ec88719c0 100644 --- a/src/main/java/seedu/address/model/strategy/Player.java +++ b/src/main/java/seedu/address/model/strategy/Player.java @@ -5,8 +5,8 @@ import java.util.Objects; public class Player { - private static final int DEF_XCOORD = 100; - private static final int DEF_YCOORD = 100; + private static final int DEF_XCOORD = 50; + private static final int DEF_YCOORD = 50; private final String name; private int xCoord; From a563ebb23635158ce19a4e12c0680c75618bbd46 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Tue, 29 Mar 2022 13:47:20 +0800 Subject: [PATCH 269/455] Add event listener to adjust slider max value according to window size --- .../java/seedu/address/ui/StrategyPanel.java | 29 +++++++++++++++++-- src/main/resources/view/StrategyPanel.fxml | 10 +++---- 2 files changed, 32 insertions(+), 7 deletions(-) diff --git a/src/main/java/seedu/address/ui/StrategyPanel.java b/src/main/java/seedu/address/ui/StrategyPanel.java index dbafc1d4b43..fb5bd153a43 100644 --- a/src/main/java/seedu/address/ui/StrategyPanel.java +++ b/src/main/java/seedu/address/ui/StrategyPanel.java @@ -6,6 +6,8 @@ import java.util.Map; import java.util.logging.Logger; +import javafx.beans.value.ChangeListener; +import javafx.beans.value.ObservableValue; import javafx.collections.ListChangeListener; import javafx.collections.ObservableList; import javafx.event.EventHandler; @@ -45,6 +47,8 @@ public class StrategyPanel extends UiPart { @FXML private AnchorPane strategyAnchorPane; @FXML + private AnchorPane playerAnchorPane; + @FXML private Slider vSlider; @FXML private Slider hSlider; @@ -91,8 +95,6 @@ public void handle(MouseEvent t) { public StrategyPanel(ObservableList playerList) { super(FXML); initBackgroundImage(); - vSlider.toBack(); - hSlider.toBack(); playerList.addListener((ListChangeListener) change -> { while (change.next()) { if (change.wasAdded()) { @@ -102,6 +104,29 @@ public StrategyPanel(ObservableList playerList) { } } }); + // brings slider to the back + vSlider.toBack(); + hSlider.toBack(); + sliderValueChangeOnWindowResize(); + } + + /** + * Listens to changes in the size of strategy anchor pane and reflects the + * value on the slider. + */ + private void sliderValueChangeOnWindowResize() { + strategyAnchorPane.widthProperty().addListener(new ChangeListener() { + @Override + public void changed(ObservableValue observable, Number oldValue, Number newValue) { + hSlider.setMax(Math.round(strategyAnchorPane.getWidth())); + } + }); + strategyAnchorPane.heightProperty().addListener(new ChangeListener() { + @Override + public void changed(ObservableValue observable, Number oldValue, Number newValue) { + vSlider.setMax(Math.round(strategyAnchorPane.getHeight())); + } + }); } private void changeOnAdd(List addedSubList) { diff --git a/src/main/resources/view/StrategyPanel.fxml b/src/main/resources/view/StrategyPanel.fxml index 5a33ee79168..69911a5a18f 100644 --- a/src/main/resources/view/StrategyPanel.fxml +++ b/src/main/resources/view/StrategyPanel.fxml @@ -6,12 +6,12 @@ - + - - + + - - + + From b16abbf59abcf7a04108b6ac4e01fb5d5593684b Mon Sep 17 00:00:00 2001 From: simjunheng Date: Tue, 29 Mar 2022 14:34:40 +0800 Subject: [PATCH 270/455] Fix test errors --- .../seedu/address/logic/commands/AddTagToTaskCommandTest.java | 4 ++-- .../java/seedu/address/logic/commands/CommandTestUtil.java | 2 +- .../seedu/address/logic/commands/ListTaskCommandTest.java | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/test/java/seedu/address/logic/commands/AddTagToTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/AddTagToTaskCommandTest.java index 9d189e4a0ca..b53fdc3a021 100644 --- a/src/test/java/seedu/address/logic/commands/AddTagToTaskCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/AddTagToTaskCommandTest.java @@ -3,7 +3,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; -import static seedu.address.logic.commands.CommandTestUtil.showTaskAtName; +import static seedu.address.logic.commands.CommandTestUtil.showTaskAtIndex; import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; import static seedu.address.testutil.TypicalIndexes.TASK_FIRST_INDEX; import static seedu.address.testutil.TypicalIndexes.TASK_SECOND_INDEX; @@ -71,7 +71,7 @@ void execute_addTagCommandUnfilteredList_success() { @Test public void execute_invalidTagIndexFilteredList_failure() { - showTaskAtName(model, TASK_FIRST_INDEX); + showTaskAtIndex(model, TASK_FIRST_INDEX); Index outOfBoundIndex = TASK_SECOND_INDEX; // ensures that outOfBoundIndex is still in bounds of address book list assertTrue(outOfBoundIndex.getZeroBased() < model.getTaskBook().getTaskList().size()); diff --git a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java b/src/test/java/seedu/address/logic/commands/CommandTestUtil.java index cdeb7b4a4cb..c69bc557f43 100644 --- a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java +++ b/src/test/java/seedu/address/logic/commands/CommandTestUtil.java @@ -183,7 +183,7 @@ public static void showPersonAtIndex(Model model, Index targetIndex) { * Updates {@code model}'s filtered list to show only the tasks with the given {@code Name} in the * {@code model}'s task book. */ - public static void showTaskAtName(Model model, Index targetIndex) { + public static void showTaskAtIndex(Model model, Index targetIndex) { assertTrue(targetIndex.getZeroBased() < model.getFilteredTaskList().size()); Task task = model.getFilteredTaskList().get(targetIndex.getZeroBased()); diff --git a/src/test/java/seedu/address/logic/commands/ListTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/ListTaskCommandTest.java index 736b69a394e..0027970d15e 100644 --- a/src/test/java/seedu/address/logic/commands/ListTaskCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/ListTaskCommandTest.java @@ -1,7 +1,7 @@ package seedu.address.logic.commands; import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; -import static seedu.address.logic.commands.CommandTestUtil.showTaskAtName; +import static seedu.address.logic.commands.CommandTestUtil.showTaskAtIndex; import static seedu.address.testutil.TypicalIndexes.TASK_SECOND_INDEX; import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; @@ -37,7 +37,7 @@ public void execute_listIsNotFiltered_showsSameList() { @Test public void execute_listIsFiltered_showsEverything() { - showTaskAtName(model, TASK_SECOND_INDEX); + showTaskAtIndex(model, TASK_SECOND_INDEX); assertCommandSuccess(new ListTaskCommand(), model, ListTaskCommand.MESSAGE_SUCCESS, expectedModel); } } From 8be5b6b0f84d85ceec48a252c3ade0729cc3cc53 Mon Sep 17 00:00:00 2001 From: juayhee Date: Tue, 29 Mar 2022 16:04:02 +0800 Subject: [PATCH 271/455] Add parser class for sorting tasks by date --- .../logic/parser/SortTaskByDateParser.java | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 src/main/java/seedu/address/logic/parser/SortTaskByDateParser.java diff --git a/src/main/java/seedu/address/logic/parser/SortTaskByDateParser.java b/src/main/java/seedu/address/logic/parser/SortTaskByDateParser.java new file mode 100644 index 00000000000..8b45358c08f --- /dev/null +++ b/src/main/java/seedu/address/logic/parser/SortTaskByDateParser.java @@ -0,0 +1,66 @@ +package seedu.address.logic.parser; + +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static seedu.address.logic.parser.CliSyntax.PREFIX_ADDRESS; +import static seedu.address.logic.parser.CliSyntax.PREFIX_EMAIL; +import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; +import static seedu.address.logic.parser.CliSyntax.PREFIX_PHONE; +import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; +import java.util.stream.Stream; + +import seedu.address.logic.commands.AddCommand; +import seedu.address.logic.parser.exceptions.ParseException; +import seedu.address.model.name.Name; +import seedu.address.model.note.Note; +import seedu.address.model.person.Address; +import seedu.address.model.person.Email; +import seedu.address.model.person.Person; +import seedu.address.model.person.Phone; +import seedu.address.model.tag.Tag; + +/** + * Parses input arguments and creates a new AddCommand object + */ +public class SortTaskByDateParser implements Parser { + + /** + * Parses the given {@code String} of arguments in the context of the AddCommand + * and returns an AddCommand object for execution. + * @throws ParseException if the user input does not conform the expected format + */ + public AddCommand parse(String args) throws ParseException { + ArgumentMultimap argMultimap = + ArgumentTokenizer.tokenize(args, PREFIX_NAME, PREFIX_PHONE, PREFIX_EMAIL, PREFIX_ADDRESS, PREFIX_TAG); + + if (!arePrefixesPresent(argMultimap, PREFIX_NAME, PREFIX_ADDRESS, PREFIX_PHONE, PREFIX_EMAIL) + || !argMultimap.getPreamble().isEmpty()) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddCommand.MESSAGE_USAGE)); + } + + Name name = ParserUtil.parseName(argMultimap.getValue(PREFIX_NAME).get()); + Phone phone = ParserUtil.parsePhone(argMultimap.getValue(PREFIX_PHONE).get()); + Email email = ParserUtil.parseEmail(argMultimap.getValue(PREFIX_EMAIL).get()); + Address address = ParserUtil.parseAddress(argMultimap.getValue(PREFIX_ADDRESS).get()); + Set tagList = ParserUtil.parseTags(argMultimap.getAllValues(PREFIX_TAG)); + List strengthList = new ArrayList<>(); + List weaknessList = new ArrayList<>(); + List miscList = new ArrayList<>(); + + Person person = new Person(name, phone, email, address, tagList, strengthList, weaknessList, miscList); + + return new AddCommand(person); + } + + /** + * Returns true if none of the prefixes contains empty {@code Optional} values in the given + * {@code ArgumentMultimap}. + */ + private static boolean arePrefixesPresent(ArgumentMultimap argumentMultimap, Prefix... prefixes) { + return Stream.of(prefixes).allMatch(prefix -> argumentMultimap.getValue(prefix).isPresent()); + } + +} From 00cf58e27f8aaeb14f281a3919d6b10438e83982 Mon Sep 17 00:00:00 2001 From: juayhee Date: Tue, 29 Mar 2022 16:44:49 +0800 Subject: [PATCH 272/455] Make Date class comparable --- src/main/java/seedu/address/model/task/Date.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/model/task/Date.java b/src/main/java/seedu/address/model/task/Date.java index 33845d984b6..41835a9c03c 100644 --- a/src/main/java/seedu/address/model/task/Date.java +++ b/src/main/java/seedu/address/model/task/Date.java @@ -12,7 +12,7 @@ * Represents a Task's date in the schedule book. * Guarantees: immutable; is valid as declared in {@link #isValidDate(String)} */ -public class Date { +public class Date implements Comparable { public static final String MESSAGE_CONSTRAINTS = "Date should be in the following format DD-MM-YYYY " + "and adhere to the following constraints: \n" + "1. YYYY should be a 4-digit numeric \n" @@ -65,5 +65,13 @@ public boolean equals(Object other) { public int hashCode() { return value.hashCode(); } + + @Override + public int compareTo(Date otherDate) { + // Covert to LocalDate and use LocalDate#compareTo since LocalDate implements Comparable + LocalDate date1 = LocalDate.parse(this.toString()); + LocalDate date2 = LocalDate.parse(otherDate.toString()); + return date1.compareTo(date2); // 1 means date1 is later than date2 + } } From 27d43bdb0d01d289c0d6af05f93f51bc70e908dd Mon Sep 17 00:00:00 2001 From: juayhee Date: Tue, 29 Mar 2022 17:04:43 +0800 Subject: [PATCH 273/455] Add SortTaskByDateCommand class --- .../logic/commands/SortTaskByDateCommand.java | 51 +++++++++++++++++++ .../logic/parser/SortTaskByDateParser.java | 4 +- 2 files changed, 53 insertions(+), 2 deletions(-) create mode 100644 src/main/java/seedu/address/logic/commands/SortTaskByDateCommand.java diff --git a/src/main/java/seedu/address/logic/commands/SortTaskByDateCommand.java b/src/main/java/seedu/address/logic/commands/SortTaskByDateCommand.java new file mode 100644 index 00000000000..24c1893adc5 --- /dev/null +++ b/src/main/java/seedu/address/logic/commands/SortTaskByDateCommand.java @@ -0,0 +1,51 @@ +package seedu.address.logic.commands; + +import static java.util.Objects.requireNonNull; + +import java.util.List; + +import seedu.address.commons.core.Messages; +import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.exceptions.CommandException; +import seedu.address.model.Model; +import seedu.address.model.task.Task; + +/** + * Deletes a task identified using its index from the TaskList. + */ +public class SortTaskByDateCommand extends Command { + + public static final String COMMAND_WORD = "sort-date"; + + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Sorts the task list by date, earlier dates first"; + + public static final String MESSAGE_DELETE_TASK_SUCCESS = "Sorted tasks by date"; + + private final Index targetIndex; + + public SortTaskByDateCommand(Index targetIndex) { + this.targetIndex = targetIndex; + } + + @Override + public CommandResult execute(Model model) throws CommandException { + requireNonNull(model); + List lastShownList = model.getFilteredTaskList(); + + if (targetIndex.getZeroBased() >= lastShownList.size()) { + throw new CommandException(Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX); + } + + Task taskToDelete = lastShownList.get(targetIndex.getZeroBased()); + model.deleteTask(taskToDelete); + return new CommandResult(String.format(MESSAGE_DELETE_TASK_SUCCESS, taskToDelete)); + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof DeleteTaskCommand // instanceof handles nulls + && targetIndex.equals(((DeleteTaskCommand) other).targetIndex)); // state check + } +} diff --git a/src/main/java/seedu/address/logic/parser/SortTaskByDateParser.java b/src/main/java/seedu/address/logic/parser/SortTaskByDateParser.java index 8b45358c08f..38191ed5683 100644 --- a/src/main/java/seedu/address/logic/parser/SortTaskByDateParser.java +++ b/src/main/java/seedu/address/logic/parser/SortTaskByDateParser.java @@ -25,14 +25,14 @@ /** * Parses input arguments and creates a new AddCommand object */ -public class SortTaskByDateParser implements Parser { +public class SortTaskByDateCommandParser implements Parser { /** * Parses the given {@code String} of arguments in the context of the AddCommand * and returns an AddCommand object for execution. * @throws ParseException if the user input does not conform the expected format */ - public AddCommand parse(String args) throws ParseException { + public SortTaskCommand parse(String args) throws ParseException { ArgumentMultimap argMultimap = ArgumentTokenizer.tokenize(args, PREFIX_NAME, PREFIX_PHONE, PREFIX_EMAIL, PREFIX_ADDRESS, PREFIX_TAG); From d2aea908dd745695589971c63e18a05269e958df Mon Sep 17 00:00:00 2001 From: juayhee Date: Tue, 29 Mar 2022 17:05:44 +0800 Subject: [PATCH 274/455] Convert to stub class --- .../logic/commands/SortTaskByDateCommand.java | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/SortTaskByDateCommand.java b/src/main/java/seedu/address/logic/commands/SortTaskByDateCommand.java index 24c1893adc5..f28788bb55b 100644 --- a/src/main/java/seedu/address/logic/commands/SortTaskByDateCommand.java +++ b/src/main/java/seedu/address/logic/commands/SortTaskByDateCommand.java @@ -22,30 +22,16 @@ public class SortTaskByDateCommand extends Command { public static final String MESSAGE_DELETE_TASK_SUCCESS = "Sorted tasks by date"; - private final Index targetIndex; - - public SortTaskByDateCommand(Index targetIndex) { - this.targetIndex = targetIndex; - } @Override public CommandResult execute(Model model) throws CommandException { requireNonNull(model); - List lastShownList = model.getFilteredTaskList(); - - if (targetIndex.getZeroBased() >= lastShownList.size()) { - throw new CommandException(Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX); - } - - Task taskToDelete = lastShownList.get(targetIndex.getZeroBased()); - model.deleteTask(taskToDelete); - return new CommandResult(String.format(MESSAGE_DELETE_TASK_SUCCESS, taskToDelete)); + return null; } @Override public boolean equals(Object other) { return other == this // short circuit if same object - || (other instanceof DeleteTaskCommand // instanceof handles nulls - && targetIndex.equals(((DeleteTaskCommand) other).targetIndex)); // state check + || (other instanceof SortTaskByDateCommand); // instanceof handles nulls } } From f978d2a9470e98b186a37168cc0f1d45bd14c9fd Mon Sep 17 00:00:00 2001 From: juayhee Date: Tue, 29 Mar 2022 17:10:19 +0800 Subject: [PATCH 275/455] Implement SortTaskByDateParser --- ....java => SortTaskByDateCommandParser.java} | 20 +++++-------------- 1 file changed, 5 insertions(+), 15 deletions(-) rename src/main/java/seedu/address/logic/parser/{SortTaskByDateParser.java => SortTaskByDateCommandParser.java} (65%) diff --git a/src/main/java/seedu/address/logic/parser/SortTaskByDateParser.java b/src/main/java/seedu/address/logic/parser/SortTaskByDateCommandParser.java similarity index 65% rename from src/main/java/seedu/address/logic/parser/SortTaskByDateParser.java rename to src/main/java/seedu/address/logic/parser/SortTaskByDateCommandParser.java index 38191ed5683..b721b2665fb 100644 --- a/src/main/java/seedu/address/logic/parser/SortTaskByDateParser.java +++ b/src/main/java/seedu/address/logic/parser/SortTaskByDateCommandParser.java @@ -13,6 +13,7 @@ import java.util.stream.Stream; import seedu.address.logic.commands.AddCommand; +import seedu.address.logic.commands.SortTaskByDateCommand; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.name.Name; import seedu.address.model.note.Note; @@ -25,34 +26,23 @@ /** * Parses input arguments and creates a new AddCommand object */ -public class SortTaskByDateCommandParser implements Parser { +public class SortTaskByDateCommandParser implements Parser { /** * Parses the given {@code String} of arguments in the context of the AddCommand * and returns an AddCommand object for execution. * @throws ParseException if the user input does not conform the expected format */ - public SortTaskCommand parse(String args) throws ParseException { + public SortTaskByDateCommand parse(String args) throws ParseException { ArgumentMultimap argMultimap = - ArgumentTokenizer.tokenize(args, PREFIX_NAME, PREFIX_PHONE, PREFIX_EMAIL, PREFIX_ADDRESS, PREFIX_TAG); + ArgumentTokenizer.tokenize(args); if (!arePrefixesPresent(argMultimap, PREFIX_NAME, PREFIX_ADDRESS, PREFIX_PHONE, PREFIX_EMAIL) || !argMultimap.getPreamble().isEmpty()) { throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddCommand.MESSAGE_USAGE)); } - Name name = ParserUtil.parseName(argMultimap.getValue(PREFIX_NAME).get()); - Phone phone = ParserUtil.parsePhone(argMultimap.getValue(PREFIX_PHONE).get()); - Email email = ParserUtil.parseEmail(argMultimap.getValue(PREFIX_EMAIL).get()); - Address address = ParserUtil.parseAddress(argMultimap.getValue(PREFIX_ADDRESS).get()); - Set tagList = ParserUtil.parseTags(argMultimap.getAllValues(PREFIX_TAG)); - List strengthList = new ArrayList<>(); - List weaknessList = new ArrayList<>(); - List miscList = new ArrayList<>(); - - Person person = new Person(name, phone, email, address, tagList, strengthList, weaknessList, miscList); - - return new AddCommand(person); + return new SortTaskByDateCommand(); } /** From 3d4cb560d45ff34a6cb5d0c33326143091dc0e30 Mon Sep 17 00:00:00 2001 From: juayhee Date: Tue, 29 Mar 2022 17:28:17 +0800 Subject: [PATCH 276/455] Implement SortTaskByDateCommand#execute --- .../logic/commands/SortTaskByDateCommand.java | 54 ++++++++++++++++++- 1 file changed, 52 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/SortTaskByDateCommand.java b/src/main/java/seedu/address/logic/commands/SortTaskByDateCommand.java index f28788bb55b..ca7aaddea26 100644 --- a/src/main/java/seedu/address/logic/commands/SortTaskByDateCommand.java +++ b/src/main/java/seedu/address/logic/commands/SortTaskByDateCommand.java @@ -2,12 +2,17 @@ import static java.util.Objects.requireNonNull; +import java.util.Collections; +import java.util.Comparator; import java.util.List; +import javax.management.ConstructorParameters; + import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; +import seedu.address.model.task.Date; import seedu.address.model.task.Task; /** @@ -20,13 +25,19 @@ public class SortTaskByDateCommand extends Command { public static final String MESSAGE_USAGE = COMMAND_WORD + ": Sorts the task list by date, earlier dates first"; - public static final String MESSAGE_DELETE_TASK_SUCCESS = "Sorted tasks by date"; + public static final String MESSAGE_SORT_TASKS_SUCCESS = "Sorted tasks by date"; + @Override public CommandResult execute(Model model) throws CommandException { requireNonNull(model); - return null; + List lastShownList = model.getFilteredTaskList(); // Unmodifiable tasklist of model + List listSortedByDate = sortTaskListByDate(lastShownList); + clearAllTasksInModel(model); + addAllTasksToModel(model, listSortedByDate); + + return new CommandResult(String.format(MESSAGE_SORT_TASKS_SUCCESS)); } @Override @@ -34,4 +45,43 @@ public boolean equals(Object other) { return other == this // short circuit if same object || (other instanceof SortTaskByDateCommand); // instanceof handles nulls } + + /** + * Sorts a List by date + * @param oldList List to be sorted + * @return List with tasks sorted by date + */ + private List sortTaskListByDate(List oldList) { + Comparator taskComparator = new Comparator() { + @Override + public int compare(Task t1, Task t2) { + return t1.getDate().compareTo(t2.getDate()); + } + }; + + Collections.sort(oldList, taskComparator); + + return oldList; + } + + /** + * Removes all tasks displayed in the current model + * @model Current model object + */ + private void clearAllTasksInModel(Model model) { + List lastShownList = model.getFilteredTaskList(); + for (Task t : lastShownList) { + model.deleteTask(t); + } + } + + /** + * Add tasks to the model according to the given list + * @ + */ + private void addAllTasksToModel(Model model, List taskList) { + for (Task t : taskList) { + model.addTask(t); + } + } } From 951b3a6968c061f0a3aa2f1cfdc9b42ca7d0552d Mon Sep 17 00:00:00 2001 From: juayhee Date: Tue, 29 Mar 2022 17:29:02 +0800 Subject: [PATCH 277/455] Update AddressBookParser.java with SortTaskByDateCommand --- .../java/seedu/address/logic/parser/AddressBookParser.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index be71a622a05..50c62b4404b 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -25,6 +25,7 @@ import seedu.address.logic.commands.ListCommand; import seedu.address.logic.commands.ListTaskCommand; import seedu.address.logic.commands.LoadCourtCommand; +import seedu.address.logic.commands.SortTaskByDateCommand; import seedu.address.logic.commands.notecommands.AddMiscCommand; import seedu.address.logic.commands.notecommands.AddStrengthCommand; import seedu.address.logic.commands.notecommands.AddWeaknessCommand; @@ -148,6 +149,9 @@ public Command parseCommand(String userInput) throws ParseException { case AddTagToTaskCommand.COMMAND_WORD: return new AddTagToTaskCommandParser().parse(arguments); + case SortTaskByDateCommand.COMMAND_WORD: + return new SortTaskByDateCommandParser().parse(arguments); + default: throw new ParseException(MESSAGE_UNKNOWN_COMMAND); } From 7f02e09bf19a8a8c28209e53d754c4b52a2139a5 Mon Sep 17 00:00:00 2001 From: juayhee Date: Tue, 29 Mar 2022 19:28:25 +0800 Subject: [PATCH 278/455] Implement SortTaskByDateCommand *Implementation details* -The class Task is now implements Comparable, so that SortTaskByDateCommand#execute may utilise Collections.sort(List, Comparator) to sort the task list. - The TaskBook of the active model is replaced by a new, blank TaskBook. The sorted task list is then set onto the new TaskBook, using TaskBook#setTasks --- .../logic/commands/SortTaskByDateCommand.java | 32 ++++++++----------- .../parser/SortTaskByDateCommandParser.java | 4 +-- .../java/seedu/address/model/task/Date.java | 11 ++----- .../java/seedu/address/model/task/Task.java | 28 ++++++++++++++-- 4 files changed, 44 insertions(+), 31 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/SortTaskByDateCommand.java b/src/main/java/seedu/address/logic/commands/SortTaskByDateCommand.java index ca7aaddea26..60c86fb3c4f 100644 --- a/src/main/java/seedu/address/logic/commands/SortTaskByDateCommand.java +++ b/src/main/java/seedu/address/logic/commands/SortTaskByDateCommand.java @@ -2,9 +2,12 @@ import static java.util.Objects.requireNonNull; +import java.util.ArrayList; +import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.List; +import java.util.stream.Collectors; import javax.management.ConstructorParameters; @@ -12,6 +15,7 @@ import seedu.address.commons.core.index.Index; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; +import seedu.address.model.TaskBook; import seedu.address.model.task.Date; import seedu.address.model.task.Task; @@ -28,12 +32,11 @@ public class SortTaskByDateCommand extends Command { public static final String MESSAGE_SORT_TASKS_SUCCESS = "Sorted tasks by date"; - @Override public CommandResult execute(Model model) throws CommandException { requireNonNull(model); - List lastShownList = model.getFilteredTaskList(); // Unmodifiable tasklist of model - List listSortedByDate = sortTaskListByDate(lastShownList); + List lastShownList = new ArrayList<>(model.getFilteredTaskList()); + List listSortedByDate = new ArrayList<>(sortTaskListByDate(lastShownList)); clearAllTasksInModel(model); addAllTasksToModel(model, listSortedByDate); @@ -48,40 +51,33 @@ public boolean equals(Object other) { /** * Sorts a List by date + * * @param oldList List to be sorted * @return List with tasks sorted by date */ private List sortTaskListByDate(List oldList) { - Comparator taskComparator = new Comparator() { - @Override - public int compare(Task t1, Task t2) { - return t1.getDate().compareTo(t2.getDate()); - } - }; - - Collections.sort(oldList, taskComparator); + Collections.sort(oldList, (t1, t2) -> t1.compareTo(t2)); return oldList; } /** * Removes all tasks displayed in the current model + * * @model Current model object */ private void clearAllTasksInModel(Model model) { - List lastShownList = model.getFilteredTaskList(); - for (Task t : lastShownList) { - model.deleteTask(t); - } + model.setTaskBook(new TaskBook()); } /** * Add tasks to the model according to the given list + * * @ */ private void addAllTasksToModel(Model model, List taskList) { - for (Task t : taskList) { - model.addTask(t); - } + TaskBook t = new TaskBook(); + t.setTasks(taskList); + model.setTaskBook(t); } } diff --git a/src/main/java/seedu/address/logic/parser/SortTaskByDateCommandParser.java b/src/main/java/seedu/address/logic/parser/SortTaskByDateCommandParser.java index b721b2665fb..3bd8d361e67 100644 --- a/src/main/java/seedu/address/logic/parser/SortTaskByDateCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/SortTaskByDateCommandParser.java @@ -37,9 +37,9 @@ public SortTaskByDateCommand parse(String args) throws ParseException { ArgumentMultimap argMultimap = ArgumentTokenizer.tokenize(args); - if (!arePrefixesPresent(argMultimap, PREFIX_NAME, PREFIX_ADDRESS, PREFIX_PHONE, PREFIX_EMAIL) + if (arePrefixesPresent(argMultimap, PREFIX_NAME, PREFIX_ADDRESS, PREFIX_PHONE, PREFIX_EMAIL) || !argMultimap.getPreamble().isEmpty()) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddCommand.MESSAGE_USAGE)); + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, SortTaskByDateCommand.MESSAGE_USAGE)); } return new SortTaskByDateCommand(); diff --git a/src/main/java/seedu/address/model/task/Date.java b/src/main/java/seedu/address/model/task/Date.java index 41835a9c03c..8f5d2a9877c 100644 --- a/src/main/java/seedu/address/model/task/Date.java +++ b/src/main/java/seedu/address/model/task/Date.java @@ -8,11 +8,13 @@ import java.time.format.DateTimeParseException; import java.time.format.ResolverStyle; +import seedu.address.logic.parser.exceptions.ParseException; + /** * Represents a Task's date in the schedule book. * Guarantees: immutable; is valid as declared in {@link #isValidDate(String)} */ -public class Date implements Comparable { +public class Date { public static final String MESSAGE_CONSTRAINTS = "Date should be in the following format DD-MM-YYYY " + "and adhere to the following constraints: \n" + "1. YYYY should be a 4-digit numeric \n" @@ -66,12 +68,5 @@ public int hashCode() { return value.hashCode(); } - @Override - public int compareTo(Date otherDate) { - // Covert to LocalDate and use LocalDate#compareTo since LocalDate implements Comparable - LocalDate date1 = LocalDate.parse(this.toString()); - LocalDate date2 = LocalDate.parse(otherDate.toString()); - return date1.compareTo(date2); // 1 means date1 is later than date2 - } } diff --git a/src/main/java/seedu/address/model/task/Task.java b/src/main/java/seedu/address/model/task/Task.java index ab882e358b6..b7c4c2ba494 100644 --- a/src/main/java/seedu/address/model/task/Task.java +++ b/src/main/java/seedu/address/model/task/Task.java @@ -2,7 +2,11 @@ import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; +import java.time.LocalDate; +import java.time.LocalDateTime; import java.time.LocalTime; +import java.time.format.DateTimeFormatter; +import java.time.format.ResolverStyle; import java.util.Collections; import java.util.HashSet; import java.util.Objects; @@ -11,13 +15,14 @@ import seedu.address.model.name.Name; import seedu.address.model.tag.Tag; -public class Task { +public class Task implements Comparable { //Identity fields private final Name name; private final Date date; private final StartTime startTime; private final EndTime endTime; + private String time; // Date + startTime for sorting comparisons in SortTaskByDateCommand //Data fields private final Set tags = new HashSet<>(); @@ -34,6 +39,7 @@ public Task(Name name, Date date, StartTime startTime, EndTime endTime, Set this.endTime = endTime; this.tags.addAll(tags); this.persons.addAll(persons); + this.time = this.date.toString() + " " + this.startTime.toString(); } //Getters @@ -53,8 +59,13 @@ public EndTime getEndTime() { return endTime; } + public String getTime() { + return time; + } + /** * Returns the start and end time values joined together for Task Card label + * * @return appended values of start and end time */ public String appendStartAndEndTime() { @@ -107,7 +118,7 @@ public boolean hasDateTimeConflict(Task otherTask) { // checks if time ranges overlap (exclusive) boolean timeConflict = thisTaskStart.isBefore(otherTaskEnd) - && otherTaskStart.isBefore(thisTaskEnd); + && otherTaskStart.isBefore(thisTaskEnd); return otherTask != null && otherTask.getDate().equals(getDate()) //test for same dates @@ -163,7 +174,7 @@ public String toString() { if (!persons.isEmpty()) { builder.append("; Persons: "); int count = 0; - for (Name name: persons) { + for (Name name : persons) { builder.append(name); builder.append(" "); } @@ -171,4 +182,15 @@ public String toString() { return builder.toString(); } + + @Override + public int compareTo(Task otherTask) { + DateTimeFormatter customFormat = DateTimeFormatter + .ofPattern("dd-MM-uuuu HH:mm").withResolverStyle(ResolverStyle.STRICT); + + LocalDateTime date1 = LocalDateTime.parse(this.getTime(), customFormat); + LocalDateTime date2 = LocalDateTime.parse(otherTask.getTime(), customFormat); + + return date1.compareTo(date2); + } } From 007c75b6ff0cdf8e1dc8a88a68888dfa7b9fdb32 Mon Sep 17 00:00:00 2001 From: juayhee Date: Tue, 29 Mar 2022 19:35:30 +0800 Subject: [PATCH 279/455] Fix checkstyle --- .../logic/commands/SortTaskByDateCommand.java | 10 +--------- .../parser/SortTaskByDateCommandParser.java | 16 +++------------- src/main/java/seedu/address/model/task/Date.java | 1 - src/main/java/seedu/address/model/task/Task.java | 1 - 4 files changed, 4 insertions(+), 24 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/SortTaskByDateCommand.java b/src/main/java/seedu/address/logic/commands/SortTaskByDateCommand.java index 60c86fb3c4f..3a066cda4c9 100644 --- a/src/main/java/seedu/address/logic/commands/SortTaskByDateCommand.java +++ b/src/main/java/seedu/address/logic/commands/SortTaskByDateCommand.java @@ -3,20 +3,12 @@ import static java.util.Objects.requireNonNull; import java.util.ArrayList; -import java.util.Collection; import java.util.Collections; -import java.util.Comparator; import java.util.List; -import java.util.stream.Collectors; -import javax.management.ConstructorParameters; - -import seedu.address.commons.core.Messages; -import seedu.address.commons.core.index.Index; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; import seedu.address.model.TaskBook; -import seedu.address.model.task.Date; import seedu.address.model.task.Task; /** @@ -50,7 +42,7 @@ public boolean equals(Object other) { } /** - * Sorts a List by date + * Sorts a task list by date * * @param oldList List to be sorted * @return List with tasks sorted by date diff --git a/src/main/java/seedu/address/logic/parser/SortTaskByDateCommandParser.java b/src/main/java/seedu/address/logic/parser/SortTaskByDateCommandParser.java index 3bd8d361e67..b0e53e9aab2 100644 --- a/src/main/java/seedu/address/logic/parser/SortTaskByDateCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/SortTaskByDateCommandParser.java @@ -5,23 +5,11 @@ import static seedu.address.logic.parser.CliSyntax.PREFIX_EMAIL; import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; import static seedu.address.logic.parser.CliSyntax.PREFIX_PHONE; -import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; import java.util.stream.Stream; -import seedu.address.logic.commands.AddCommand; import seedu.address.logic.commands.SortTaskByDateCommand; import seedu.address.logic.parser.exceptions.ParseException; -import seedu.address.model.name.Name; -import seedu.address.model.note.Note; -import seedu.address.model.person.Address; -import seedu.address.model.person.Email; -import seedu.address.model.person.Person; -import seedu.address.model.person.Phone; -import seedu.address.model.tag.Tag; /** * Parses input arguments and creates a new AddCommand object @@ -31,6 +19,7 @@ public class SortTaskByDateCommandParser implements Parser Date: Tue, 29 Mar 2022 19:53:51 +0800 Subject: [PATCH 280/455] Fix checkstyle --- .../seedu/address/logic/parser/AddTagCommandParser.java | 7 ++++++- .../address/logic/parser/AddTagToTaskCommandParser.java | 7 ++++++- .../seedu/address/logic/parser/DeleteTagCommandParser.java | 7 ++++++- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/main/java/seedu/address/logic/parser/AddTagCommandParser.java b/src/main/java/seedu/address/logic/parser/AddTagCommandParser.java index f5282e1a883..cbe2fe53538 100644 --- a/src/main/java/seedu/address/logic/parser/AddTagCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/AddTagCommandParser.java @@ -37,7 +37,12 @@ public AddTagCommand parse(String args) throws ParseException { Index index = Index.fromOneBased(indexInt); // Convert to fromOneBased index since contact list starts from 1 // Get the tagName element in the ArrayList - String tagName = values.get(2); + String tagName; + try { + tagName = values.get(2); + } catch (IndexOutOfBoundsException e) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddTagCommand.MESSAGE_USAGE)); + } try { new Tag(tagName); } catch (Exception e) { diff --git a/src/main/java/seedu/address/logic/parser/AddTagToTaskCommandParser.java b/src/main/java/seedu/address/logic/parser/AddTagToTaskCommandParser.java index 7542a600d40..5ff4b8f8c77 100644 --- a/src/main/java/seedu/address/logic/parser/AddTagToTaskCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/AddTagToTaskCommandParser.java @@ -41,7 +41,12 @@ public AddTagToTaskCommand parse(String args) throws ParseException { Index index = Index.fromOneBased(indexInt); // Convert to fromOneBased index since contact list starts from 1 // Get the tagName element in the ArrayList - String tagName = values.get(2); + String tagName; + try { + tagName = values.get(2); + } catch (IndexOutOfBoundsException e) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddTagToTaskCommand.MESSAGE_USAGE)); + } try { new Tag(tagName); } catch (Exception e) { diff --git a/src/main/java/seedu/address/logic/parser/DeleteTagCommandParser.java b/src/main/java/seedu/address/logic/parser/DeleteTagCommandParser.java index 81232cc0e33..d5fc742b8fd 100644 --- a/src/main/java/seedu/address/logic/parser/DeleteTagCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/DeleteTagCommandParser.java @@ -37,7 +37,12 @@ public DeleteTagCommand parse(String args) throws ParseException { Index index = Index.fromOneBased(indexInt); // Convert to fromOneBased index since contact list starts from 1 // Get the tagName element in the ArrayList - String tagName = values.get(2); + String tagName; + try { + tagName = values.get(2); + } catch (IndexOutOfBoundsException e) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteTagCommand.MESSAGE_USAGE)); + } try { new Tag(tagName); } catch (Exception e) { From aa88005b3884288921df88dae771cc1fe3091a17 Mon Sep 17 00:00:00 2001 From: juayhee Date: Tue, 29 Mar 2022 20:04:20 +0800 Subject: [PATCH 281/455] Add DeleteTagFromTaskCommandParser --- .../DeleteTagFromTaskCommandParser.java | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/main/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParser.java diff --git a/src/main/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParser.java b/src/main/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParser.java new file mode 100644 index 00000000000..8b4fd25afe6 --- /dev/null +++ b/src/main/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParser.java @@ -0,0 +1,55 @@ +package seedu.address.logic.parser; + +import static java.util.Objects.requireNonNull; +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; + +import java.util.ArrayList; + +import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.AddTagToTaskCommand; +import seedu.address.logic.parser.exceptions.ParseException; +import seedu.address.model.tag.Tag; + +/** + * Parses input arguments and creates a new AddTaskCommand object + */ +public class DeleteTagFromTaskCommandParser implements Parser { + /** + * Parses the given {@code String} of arguments in the context of the {@code DeleteTagFromTaskCommandParser} + * and returns a {@code DeleteTagFromTaskCommand} object for execution + * * @param args Input string by user EXCEPT COMMAND WORD + * + * @return DeleteTagFromTaskCommand object with arguments loaded in + * @throws ParseException If the user input does not conform to the expected format + */ + + public DeleteTagFromTaskCommand parse(String args) throws ParseException { + requireNonNull(args); + + // Tokenize all arguments + ArgumentMultimap argMultimap = ArgumentTokenizer.tokenize(args, new Prefix("")); + + // Convert the argMultimap into an ArrayList<> for easier access + // The @ArgumentTokenizer produces a map with 3 elements: + // Element 1: Whitespace + // Element 2: Index + // Element 3: tagName string + ArrayList values = new ArrayList<>(argMultimap.getAllValues(new Prefix(""))); + + // Get the index element in the ArrayList + int indexInt = Integer.parseInt(values.get(1)); + Index index = Index.fromOneBased(indexInt); // Convert to fromOneBased index since contact list starts from 1 + + // Get the tagName element in the ArrayList + String tagName = values.get(2); + try { + new Tag(tagName); + } catch (Exception e) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + DeleteTagFromTaskCommand.MESSAGE_USAGE)); + } + + return new DeleteTagFromTaskCommand(index, tagName); + } + +} From 2d8c20caa35b99bb60fc245b8b0725ab61e23aa9 Mon Sep 17 00:00:00 2001 From: juayhee Date: Tue, 29 Mar 2022 20:14:33 +0800 Subject: [PATCH 282/455] Implement delete tag from task command --- .../commands/DeleteTagFromTaskCommand.java | 118 ++++++++++++++++++ .../logic/parser/AddressBookParser.java | 4 + .../DeleteTagFromTaskCommandParser.java | 11 +- 3 files changed, 130 insertions(+), 3 deletions(-) create mode 100644 src/main/java/seedu/address/logic/commands/DeleteTagFromTaskCommand.java diff --git a/src/main/java/seedu/address/logic/commands/DeleteTagFromTaskCommand.java b/src/main/java/seedu/address/logic/commands/DeleteTagFromTaskCommand.java new file mode 100644 index 00000000000..24556114b71 --- /dev/null +++ b/src/main/java/seedu/address/logic/commands/DeleteTagFromTaskCommand.java @@ -0,0 +1,118 @@ +package seedu.address.logic.commands; + +import static java.util.Objects.requireNonNull; +import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; +import static seedu.address.model.Model.PREDICATE_SHOW_ALL_TASKS; + +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import seedu.address.commons.core.Messages; +import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.exceptions.CommandException; +import seedu.address.model.Model; +import seedu.address.model.name.Name; +import seedu.address.model.tag.Tag; +import seedu.address.model.task.Date; +import seedu.address.model.task.EndTime; +import seedu.address.model.task.StartTime; +import seedu.address.model.task.Task; + +public class DeleteTagFromTaskCommand extends Command { + public static final String COMMAND_WORD = "tag-del-t"; + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Delete a tag to a task from our task list. " + + "Parameters: " + + "INDEX (must be a positive integer) " + + "TAG NAME (must be non-empty)\n" + + "Example: " + COMMAND_WORD + " " + + "1 " + + "important"; + + public static final String MESSAGE_NO_SUCH_TAG_T = "This task does not have this tag!"; + public static final String MESSAGE_DEL_TAG_SUCCESS = "Deleted tag: %1$s"; + + public final Index index; + public final String tagName; + + /** + * Public contructor for AddTagToTaskCommand + * @param index Index of target task + * @param tagName Tag to be added to the target task + */ + public DeleteTagFromTaskCommand(Index index, String tagName) { + requireAllNonNull(index, tagName); + + this.index = index; + this.tagName = tagName; + } + + @Override + public CommandResult execute(Model model) throws CommandException { + requireNonNull(model); + List lastShownList = model.getFilteredTaskList(); + + // Exception when index out of bounds + if (index.getZeroBased() >= lastShownList.size()) { + throw new CommandException(Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX); + } + + + Task taskToEdit = lastShownList.get(index.getZeroBased()); + Task editedTask = deleteTagFromTask(taskToEdit); + + // Exception when a non-existent tag is indicated + Tag testTag = new Tag(this.tagName); + if (!taskToEdit.getTags().contains(testTag)) { + throw new CommandException(MESSAGE_NO_SUCH_TAG_T); + } + + + model.setTask(taskToEdit, editedTask); + model.updateFilteredTaskList(PREDICATE_SHOW_ALL_TASKS); + return new CommandResult(String.format(MESSAGE_DEL_TAG_SUCCESS, this.tagName)); + + } + + + /** + * Creates and returns a {@code Task} with a new tag {@code tagName} added to + * {@code taskToEdit} + * + * @param taskToEdit Person to be edited + * @return New Task object with the tag added (tag list updated) + */ + private Task deleteTagFromTask(Task taskToEdit) throws CommandException { + // Keep all other fields the same + Name updatedName = taskToEdit.getName(); + Date updatedDate = taskToEdit.getDate(); + StartTime updatedStartTime = taskToEdit.getStartTime(); + EndTime updatedEndTime = taskToEdit.getEndTime(); + Set updatedPersons = taskToEdit.getPersons(); + + // Changing tags + // Make modifiable copy since Task#getTags returns an unmodifiable Set + Set tagList = new HashSet<>(taskToEdit.getTags()); + try { + tagList.remove(new Tag(this.tagName)); + } catch (Exception e) { + throw new CommandException(Messages.MESSAGE_INVALID_TAG); + } + + return new Task(updatedName, updatedDate, updatedStartTime, updatedEndTime, tagList, updatedPersons); + + } + + @Override + public boolean equals(Object other) { + + return other == this // short circuit if same object + || (other instanceof DeleteTagFromTaskCommand // instanceof handles nulls + && (index.equals(((DeleteTagFromTaskCommand) other).index) + && tagName.equals((((DeleteTagFromTaskCommand) other).tagName)))); + } + +} + + diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index be71a622a05..3ae2305fdc9 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -15,6 +15,7 @@ import seedu.address.logic.commands.Command; import seedu.address.logic.commands.DeleteCommand; import seedu.address.logic.commands.DeleteTagCommand; +import seedu.address.logic.commands.DeleteTagFromTaskCommand; import seedu.address.logic.commands.DeleteTaskCommand; import seedu.address.logic.commands.EditCommand; import seedu.address.logic.commands.ExitCommand; @@ -148,6 +149,9 @@ public Command parseCommand(String userInput) throws ParseException { case AddTagToTaskCommand.COMMAND_WORD: return new AddTagToTaskCommandParser().parse(arguments); + case DeleteTagFromTaskCommand.COMMAND_WORD: + return new DeleteTagFromTaskCommandParser().parse(arguments); + default: throw new ParseException(MESSAGE_UNKNOWN_COMMAND); } diff --git a/src/main/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParser.java b/src/main/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParser.java index 8b4fd25afe6..901b7383b96 100644 --- a/src/main/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParser.java @@ -6,7 +6,8 @@ import java.util.ArrayList; import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.AddTagToTaskCommand; +import seedu.address.logic.commands.DeleteTagCommand; +import seedu.address.logic.commands.DeleteTagFromTaskCommand; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.tag.Tag; @@ -41,7 +42,12 @@ public DeleteTagFromTaskCommand parse(String args) throws ParseException { Index index = Index.fromOneBased(indexInt); // Convert to fromOneBased index since contact list starts from 1 // Get the tagName element in the ArrayList - String tagName = values.get(2); + String tagName; + try { + tagName = values.get(2); + } catch (IndexOutOfBoundsException e) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteTagFromTaskCommand.MESSAGE_USAGE)); + } try { new Tag(tagName); } catch (Exception e) { @@ -51,5 +57,4 @@ public DeleteTagFromTaskCommand parse(String args) throws ParseException { return new DeleteTagFromTaskCommand(index, tagName); } - } From b8d103b937b24fa65712d864980c3eb0701c31a9 Mon Sep 17 00:00:00 2001 From: juayhee Date: Tue, 29 Mar 2022 20:15:33 +0800 Subject: [PATCH 283/455] Fix checkstyle --- .../address/logic/parser/DeleteTagFromTaskCommandParser.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParser.java b/src/main/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParser.java index 901b7383b96..f02f2f37439 100644 --- a/src/main/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParser.java @@ -6,7 +6,6 @@ import java.util.ArrayList; import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.DeleteTagCommand; import seedu.address.logic.commands.DeleteTagFromTaskCommand; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.tag.Tag; @@ -46,7 +45,8 @@ public DeleteTagFromTaskCommand parse(String args) throws ParseException { try { tagName = values.get(2); } catch (IndexOutOfBoundsException e) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteTagFromTaskCommand.MESSAGE_USAGE)); + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + DeleteTagFromTaskCommand.MESSAGE_USAGE)); } try { new Tag(tagName); From 5c04112633b8e79a3c4dcc8015c3440daf8cdc0e Mon Sep 17 00:00:00 2001 From: juayhee Date: Tue, 29 Mar 2022 20:21:43 +0800 Subject: [PATCH 284/455] Delete unnecessary class --- .../logic/parser/AddressBookParser.java | 2 +- .../parser/SortTaskByDateCommandParser.java | 46 ------------------- 2 files changed, 1 insertion(+), 47 deletions(-) delete mode 100644 src/main/java/seedu/address/logic/parser/SortTaskByDateCommandParser.java diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index 50c62b4404b..bd801f2d251 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -150,7 +150,7 @@ public Command parseCommand(String userInput) throws ParseException { return new AddTagToTaskCommandParser().parse(arguments); case SortTaskByDateCommand.COMMAND_WORD: - return new SortTaskByDateCommandParser().parse(arguments); + return new SortTaskByDateCommand(); default: throw new ParseException(MESSAGE_UNKNOWN_COMMAND); diff --git a/src/main/java/seedu/address/logic/parser/SortTaskByDateCommandParser.java b/src/main/java/seedu/address/logic/parser/SortTaskByDateCommandParser.java deleted file mode 100644 index b0e53e9aab2..00000000000 --- a/src/main/java/seedu/address/logic/parser/SortTaskByDateCommandParser.java +++ /dev/null @@ -1,46 +0,0 @@ -package seedu.address.logic.parser; - -import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static seedu.address.logic.parser.CliSyntax.PREFIX_ADDRESS; -import static seedu.address.logic.parser.CliSyntax.PREFIX_EMAIL; -import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; -import static seedu.address.logic.parser.CliSyntax.PREFIX_PHONE; - -import java.util.stream.Stream; - -import seedu.address.logic.commands.SortTaskByDateCommand; -import seedu.address.logic.parser.exceptions.ParseException; - -/** - * Parses input arguments and creates a new AddCommand object - */ -public class SortTaskByDateCommandParser implements Parser { - - /** - * Parses the given {@code String} of arguments in the context of the AddCommand - * and returns an AddCommand object for execution. - * - * @throws ParseException if the user input does not conform the expected format - */ - public SortTaskByDateCommand parse(String args) throws ParseException { - ArgumentMultimap argMultimap = - ArgumentTokenizer.tokenize(args); - - if (arePrefixesPresent(argMultimap, PREFIX_NAME, PREFIX_ADDRESS, PREFIX_PHONE, PREFIX_EMAIL) - || !argMultimap.getPreamble().isEmpty()) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, - SortTaskByDateCommand.MESSAGE_USAGE)); - } - - return new SortTaskByDateCommand(); - } - - /** - * Returns true if none of the prefixes contains empty {@code Optional} values in the given - * {@code ArgumentMultimap}. - */ - private static boolean arePrefixesPresent(ArgumentMultimap argumentMultimap, Prefix... prefixes) { - return Stream.of(prefixes).allMatch(prefix -> argumentMultimap.getValue(prefix).isPresent()); - } - -} From 9396e0e287c94bd03e610d563d0c0c26cfba4d47 Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Tue, 29 Mar 2022 22:37:50 +0800 Subject: [PATCH 285/455] Add exception check for calling sort function on empty Address Book --- .../seedu/address/commons/core/Messages.java | 1 + .../logic/commands/SortStrengthCommand.java | 8 +++++++- .../logic/commands/SortWeaknessCommand.java | 8 +++++++- .../logic/commands/SortStrengthCommandTest.java | 17 ++++++++++++++--- .../logic/commands/SortWeaknessCommandTest.java | 17 ++++++++++++++--- 5 files changed, 43 insertions(+), 8 deletions(-) diff --git a/src/main/java/seedu/address/commons/core/Messages.java b/src/main/java/seedu/address/commons/core/Messages.java index 07ca115e280..9f506cf9a35 100644 --- a/src/main/java/seedu/address/commons/core/Messages.java +++ b/src/main/java/seedu/address/commons/core/Messages.java @@ -13,5 +13,6 @@ public class Messages { public static final String MESSAGE_PERSONS_LISTED_OVERVIEW = "%1$d persons listed!"; public static final String MESSAGE_TASKS_LISTED_OVERVIEW = "%1$d tasks listed!"; public static final String MESSAGE_INVALID_TAG = "Tags must be alphanumeric only!"; + public static final String MESSAGE_EMPTY_PERSON_LIST = "Person list is empty!"; } diff --git a/src/main/java/seedu/address/logic/commands/SortStrengthCommand.java b/src/main/java/seedu/address/logic/commands/SortStrengthCommand.java index 5f2b6736299..44483b910ff 100644 --- a/src/main/java/seedu/address/logic/commands/SortStrengthCommand.java +++ b/src/main/java/seedu/address/logic/commands/SortStrengthCommand.java @@ -6,6 +6,8 @@ import java.util.Comparator; import java.util.List; +import seedu.address.commons.core.Messages; +import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.person.Person; @@ -38,12 +40,16 @@ public int compare(Person o1, Person o2) { }; @Override - public CommandResult execute(Model model) { + public CommandResult execute(Model model) throws CommandException { requireNonNull(model); List lastShownPersonList = model.getUnfilteredPersonList(); List newPersonList = new ArrayList<>(lastShownPersonList); AddressBook newAddressBook = new AddressBook(); + if (newPersonList.isEmpty()) { + throw new CommandException(Messages.MESSAGE_EMPTY_PERSON_LIST); + } + newPersonList.sort(BY_STRENGTHS); for (Person p : newPersonList) { newAddressBook.addPerson(p); diff --git a/src/main/java/seedu/address/logic/commands/SortWeaknessCommand.java b/src/main/java/seedu/address/logic/commands/SortWeaknessCommand.java index 535c887cb9f..dba727bc162 100644 --- a/src/main/java/seedu/address/logic/commands/SortWeaknessCommand.java +++ b/src/main/java/seedu/address/logic/commands/SortWeaknessCommand.java @@ -6,6 +6,8 @@ import java.util.Comparator; import java.util.List; +import seedu.address.commons.core.Messages; +import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.person.Person; @@ -38,12 +40,16 @@ public int compare(Person o1, Person o2) { }; @Override - public CommandResult execute(Model model) { + public CommandResult execute(Model model) throws CommandException { requireNonNull(model); List lastShownPersonList = model.getUnfilteredPersonList(); List newPersonList = new ArrayList<>(lastShownPersonList); AddressBook newAddressBook = new AddressBook(); + if (newPersonList.isEmpty()) { + throw new CommandException(Messages.MESSAGE_EMPTY_PERSON_LIST); + } + newPersonList.sort(BY_WEAKNESSES); for (Person p : newPersonList) { newAddressBook.addPerson(p); diff --git a/src/test/java/seedu/address/logic/commands/SortStrengthCommandTest.java b/src/test/java/seedu/address/logic/commands/SortStrengthCommandTest.java index cf73300485b..ef249661470 100644 --- a/src/test/java/seedu/address/logic/commands/SortStrengthCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/SortStrengthCommandTest.java @@ -1,16 +1,19 @@ package seedu.address.logic.commands; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; import static seedu.address.testutil.TypicalPersons.getGenericAddressBookWithSortedStrengths; import static seedu.address.testutil.TypicalPersons.getGenericAddressBookWithUnsortedStrengths; -import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import seedu.address.commons.core.Messages; +import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ModelManager; import seedu.address.model.StrategyBoard; +import seedu.address.model.TaskBook; import seedu.address.model.UserPrefs; /** @@ -23,14 +26,22 @@ public class SortStrengthCommandTest { @BeforeEach public void setUp() { - model = new ModelManager(getGenericAddressBookWithUnsortedStrengths(), getTypicalTaskBook(), + model = new ModelManager(getGenericAddressBookWithUnsortedStrengths(), new TaskBook(), new StrategyBoard(), new UserPrefs()); expectedModel = new ModelManager(getGenericAddressBookWithSortedStrengths(), - model.getTaskBook(), new StrategyBoard(), new UserPrefs()); + new TaskBook(), new StrategyBoard(), new UserPrefs()); } @Test public void execute_unsortedList_success() { assertCommandSuccess(new SortStrengthCommand(), model, SortStrengthCommand.MESSAGE_SUCCESS, expectedModel); } + + @Test + public void execute_emptyList_throwsCommandException() { + Model emptyModel = new ModelManager(new AddressBook(), new TaskBook(), + new StrategyBoard(), new UserPrefs()); + + assertCommandFailure(new SortStrengthCommand(), emptyModel, Messages.MESSAGE_EMPTY_PERSON_LIST); + } } diff --git a/src/test/java/seedu/address/logic/commands/SortWeaknessCommandTest.java b/src/test/java/seedu/address/logic/commands/SortWeaknessCommandTest.java index 29731d0350f..522318c2e24 100644 --- a/src/test/java/seedu/address/logic/commands/SortWeaknessCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/SortWeaknessCommandTest.java @@ -1,16 +1,19 @@ package seedu.address.logic.commands; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; import static seedu.address.testutil.TypicalPersons.getGenericAddressBookWithSortedWeaknesses; import static seedu.address.testutil.TypicalPersons.getGenericAddressBookWithUnsortedWeaknesses; -import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import seedu.address.commons.core.Messages; +import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ModelManager; import seedu.address.model.StrategyBoard; +import seedu.address.model.TaskBook; import seedu.address.model.UserPrefs; /** @@ -23,14 +26,22 @@ public class SortWeaknessCommandTest { @BeforeEach public void setUp() { - model = new ModelManager(getGenericAddressBookWithUnsortedWeaknesses(), getTypicalTaskBook(), + model = new ModelManager(getGenericAddressBookWithUnsortedWeaknesses(), new TaskBook(), new StrategyBoard(), new UserPrefs()); expectedModel = new ModelManager(getGenericAddressBookWithSortedWeaknesses(), - model.getTaskBook(), new StrategyBoard(), new UserPrefs()); + new TaskBook(), new StrategyBoard(), new UserPrefs()); } @Test public void execute_unsortedList_success() { assertCommandSuccess(new SortWeaknessCommand(), model, SortWeaknessCommand.MESSAGE_SUCCESS, expectedModel); } + + @Test + public void execute_emptyList_throwsCommandException() { + Model emptyModel = new ModelManager(new AddressBook(), new TaskBook(), + new StrategyBoard(), new UserPrefs()); + + assertCommandFailure(new SortWeaknessCommand(), emptyModel, Messages.MESSAGE_EMPTY_PERSON_LIST); + } } From 9d9fe7a7be158c6ab7dca0fa2f86fe8098b382cb Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Wed, 30 Mar 2022 04:27:22 +0800 Subject: [PATCH 286/455] Add sort-strength and sort-weakness function definitions in UserGuide.md --- docs/UserGuide.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 228598f7787..4ad5bd43c21 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -253,6 +253,18 @@ Examples:
      +#### 2.1.15 Sorting list of persons by strengths : `sort-strength` + +Sorts the list of persons by total strengths in descending order. + +Format: `sort-strength` + +#### 2.1.16 Sorting list of persons by weaknesses : `sort-weakness` + +Sorts the list of persons by total weaknesses in descending order. + +Format: `sort-weaknesses` + ### 2.2 Task Management From cffb9e5ab544491b3826edb18316a7605def45f3 Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Wed, 30 Mar 2022 04:34:06 +0800 Subject: [PATCH 287/455] Add rational of strength/weakness functions and include link to JAR file --- docs/UserGuide.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 4ad5bd43c21..0ad257488d4 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -16,7 +16,7 @@ Coach2K22 is a desktop app that helps busy sports coaches **organise their overw 1. Ensure you have Java `11` or above installed in your Computer. -1. Download the latest '.jar' file. +1. Download the latest '.jar' file from [here](https://github.com/AY2122S2-CS2103T-W14-2/tp/releases). 1. Copy the file to the folder you want to use as the _home folder_ for your copy of Coach2k22. @@ -188,7 +188,7 @@ Add a miscellaneous note to a selected person from our contact list. Format: `misc-add INDEX NOTE_DESCRIPTION` Examples: -* `note-add 1 Likes ice cream` adds the miscellaneous note "Likes ice cream" to the 1st person in the contact list. +* `misc-add 1 Likes ice cream` adds the miscellaneous note "Likes ice cream" to the 1st person in the contact list. #### 2.1.12 Deleting a strength : `strength-del` @@ -478,6 +478,8 @@ Format: `exit` **Q**: How do I transfer my data to another Computer?
      **A**: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous Coach2k22 home folder. +**Q**: What is the purpose of having a separate command for listing player strengths and weaknesses
      +**A**: These functions allow coach to judge players based on their respective strengths/weaknesses for improved judgement of abilities, analyzing their liabilities, and strategically choosing the right player for the right purpose. -------------------------------------------------------------------------------------------------------------------- ## **4. Command summary** From 20d91e4178a5a73ed1435b7d6e556203edc0aa2a Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Wed, 30 Mar 2022 04:40:57 +0800 Subject: [PATCH 288/455] Add use cases for sort-strength and sort-weakness commands in DG --- docs/DeveloperGuide.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index b728579445a..70f94aedb64 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -657,6 +657,28 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli * 1d1. Coach2K22 shows an error message. Use case ends. + +**Use case: Sort address book by strengths in descending order** + +**MSS** + +1. User requests to sort the list of persons by total strengths +2. Coach2K22 shows the new sorted list of persons + + Use case ends. + +**Extensions** + +* 1a. The person list is empty. + + * 1a1. Coach2K22 shows an error message. + + Use case ends. + +**Use case: Sort address book by weaknesses in descending order** + +* This use case describes a similar interaction between the user and Coach2K22 to that of `Sort address book by strengths in descending order` + * Sorts list of persons by total weaknesses in descending order instead of total strengths **Use case: Add a tag to a person** From 5430d5a9125a2cd1e5bcd98d73622307e02f553d Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Wed, 30 Mar 2022 04:59:30 +0800 Subject: [PATCH 289/455] Modify PPP and User Guide Summary commands and add more user stories --- docs/DeveloperGuide.md | 32 ++++++++++++++++---------------- docs/UserGuide.md | 39 ++++++++++++++++++++------------------- docs/team/aalghrairy.md | 21 ++++++++++++++++++--- 3 files changed, 54 insertions(+), 38 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 70f94aedb64..ffb45785a47 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -467,22 +467,22 @@ schedules, and provides them with a platform to visualise defensive and offensiv Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unlikely to have) - `*` -| Priority | As a …​ | I want to …​ | So that I can…​ | -|----------|--------------------------|-----------------------------------------------------------------|------------------------------------------------------------------------------| -| `* * *` | forgetful coach | enter team-specific or player note | look up these information | -| `* * *` | coach | delete team-specific or player note | keep these information relevant and up-to-date | -| `* * *` | forgetful coach | remember the names of players on my team | look up them in case I forget | -| `* * *` | disorganized | add and tag new roles/teams to a contact | easily retrieve relevant information | -| `* * *` | coach | easily retrieve contact information of relevant parties | quickly broadcast information to them | -| `* * *` | organized coach | view players by their strengths and weaknesses | make informed decision on choosing the best person | -| `* * *` | disorganized coach | add existing and upcoming tasks | keep track of my schedule easily | -| `* * *` | disorganized coach | delete wrongly added or past tasks | organize my schedule better | -| `* * *` | strategic coach | save current formation information | plan my game plays and save strategies | -| `* *` | lazy and forgetful coach | view a list of help commands and their descriptions | easily recall how to do a specific task | -| `* *` | organised coach | view players by their strengths and weaknesses | make informed decisions on choosing the best person for a specific objective | -| `*` | strategic coach | change the position of players (x-y coordinate) during the game | ensure my team works together | -| `*` | coach | drag and drop a player into a calendar | plan scheduled events for them according to their needs | - +| Priority | As a …​ | I want to …​ | So that I can…​ | +|----------|---------------------------------|-----------------------------------------------------------------|------------------------------------------------------------------------------| +| `* * *` | forgetful coach | enter team-specific or player note | look up these information | +| `* * *` | coach | delete team-specific or player note | keep these information relevant and up-to-date | +| `* * *` | forgetful coach | remember the names of players on my team | look up them in case I forget | +| `* * *` | disorganized | add and tag new roles/teams to a contact | easily retrieve relevant information | +| `* * *` | coach | easily retrieve contact information of relevant parties | quickly broadcast information to them | +| `* * *` | organized coach | view players by their strengths and weaknesses | make informed decision on choosing the best person | +| `* * *` | disorganized coach | add existing and upcoming tasks | keep track of my schedule easily | +| `* * *` | disorganized coach | delete wrongly added or past tasks | organize my schedule better | +| `* * *` | strategic coach | save current formation information | plan my game plays and save strategies | +| `* *` | lazy and forgetful coach | view a list of help commands and their descriptions | easily recall how to do a specific task | +| `* *` | organised coach | view players by their strengths and weaknesses | make informed decisions on choosing the best person for a specific objective | +| `**` | organized and data-driven coach | sort my players by strengths and weaknesses | get a better understanding of how players compare | +| `*` | strategic coach | change the position of players (x-y coordinate) during the game | ensure my team works together | +| `*` | coach | drag and drop a player into a calendar | plan scheduled events for them according to their needs | ### 6.3 Use cases diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 0ad257488d4..9ec3da9d491 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -486,25 +486,26 @@ Format: `exit` ### 4.1 Contact Management -| Action | Format, Examples | -|-----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **List** | `list-p` | -| **Add** | `add-p n/NAME p/PHONE_NUMBER a/ADDRESS e/EMAIL [t/TAG_NAME]…​`
      e.g., `add-p n/Johnson p/83918273 a/Woodlands Avenue 4 e/johnson@gmail.com t/Hustlers` | -| **Del** | `del-p INDEX`
      e.g., `del-p 1` | -| **Edit** | `edit-p INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [t/TAG_NAME]…​`
      e.g., `edit-p 1 p/98273712 e/johndoe@example.com` | -| **Clear** | `clear-p` | -| **Add Tag** | `tag-add-p INDEX TAG_NAME`
      e.g., `tag-add-p 1 Public Relations` | -| **Del Tag** | `tag-del-p INDEX TAG_NAME`
      e.g., `tag-del-p 1 Team` | -| **Find** | `find-p [n/NAME]…​ [t/TAG]…​`
      e.g., `find-p n/Alex n/Charlotte t/team1 t/team2` | -| **Add Note** | `note-add INDEX NOTE_DESCRIPTION`
      e.g., `note-add 1 Surgery Scheduled for tomorrow` | -| **Del Note** | `note-del INDEX NOTE_INDEX`
      e.g., `note-del 1 1` | -| **Add Strength** | `strength-add INDEX STRENGTH_DESCRIPTION`
      e.g., `strength-add 1 Great stamina` | -| **Add Weakness** | `weakness-add INDEX WEAKNESS_DESCRIPTION`
      e.g., `weakness-add 1 Poor defensive abilities` | -| **Add Miscellaneous** | `misc-add INDEX NOTE_DESCRIPTION`
      e.g., `misc-add 1 Likes ice cream` | -| **Del Strength** | `strength-del INDEX STRENGTH_INDEX`
      e.g., `strength-del 1 1` | -| **Del Weakness** | `weakness-del INDEX WEAKNESS_INDEX`
      e.g., `weakness-del 1 1` | -| **Del Miscellaneous** | `misc-del INDEX NOTE_INDEX`
      e.g., `misc-del 1 1` | - +| Action | Format, Examples | +|------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **List** | `list-p` | +| **Add** | `add-p n/NAME p/PHONE_NUMBER a/ADDRESS e/EMAIL [t/TAG_NAME]…​`
      e.g., `add-p n/Johnson p/83918273 a/Woodlands Avenue 4 e/johnson@gmail.com t/Hustlers` | +| **Del** | `del-p INDEX`
      e.g., `del-p 1` | +| **Edit** | `edit-p INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [t/TAG_NAME]…​`
      e.g., `edit-p 1 p/98273712 e/johndoe@example.com` | +| **Clear** | `clear-p` | +| **Add Tag** | `tag-add-p INDEX TAG_NAME`
      e.g., `tag-add-p 1 Public Relations` | +| **Del Tag** | `tag-del-p INDEX TAG_NAME`
      e.g., `tag-del-p 1 Team` | +| **Find** | `find-p [n/NAME]…​ [t/TAG]…​`
      e.g., `find-p n/Alex n/Charlotte t/team1 t/team2` | +| **Add Note** | `note-add INDEX NOTE_DESCRIPTION`
      e.g., `note-add 1 Surgery Scheduled for tomorrow` | +| **Del Note** | `note-del INDEX NOTE_INDEX`
      e.g., `note-del 1 1` | +| **Add Strength** | `strength-add INDEX STRENGTH_DESCRIPTION`
      e.g., `strength-add 1 Great stamina` | +| **Add Weakness** | `weakness-add INDEX WEAKNESS_DESCRIPTION`
      e.g., `weakness-add 1 Poor defensive abilities` | +| **Add Miscellaneous** | `misc-add INDEX NOTE_DESCRIPTION`
      e.g., `misc-add 1 Likes ice cream` | +| **Del Strength** | `strength-del INDEX STRENGTH_INDEX`
      e.g., `strength-del 1 1` | +| **Del Weakness** | `weakness-del INDEX WEAKNESS_INDEX`
      e.g., `weakness-del 1 1` | +| **Del Miscellaneous** | `misc-del INDEX NOTE_INDEX`
      e.g., `misc-del 1 1` | +| **Sort by Strengths** | `sort-strength` | +| **Sort by Weaknesses** | `sort-weakness` | ### 4.2 Task Management diff --git a/docs/team/aalghrairy.md b/docs/team/aalghrairy.md index 18707455424..1edf9403dfb 100644 --- a/docs/team/aalghrairy.md +++ b/docs/team/aalghrairy.md @@ -9,7 +9,7 @@ schedules. It also provides them with a platform to visualise defensive and offe * **Code contributed**: [RepoSense link]( https://nus-cs2103-ay2122s2.github.io/tp-dashboard/?search=aalghrairy&breakdown=true) * **Enhancements Implemented:** - * Implemented `note-del` Command to delete notes from list for each contact + * Implemented `note-del` command to delete notes from list for each contact * Implemented GUI of TaskCard and TaskListPanel * Enhanced Note feature to include three different lists of notes for each contact * _Expanded `note-add` command to_`strength-add`, `weakness-add`, and `misc-add` @@ -17,14 +17,17 @@ https://nus-cs2103-ay2122s2.github.io/tp-dashboard/?search=aalghrairy&breakdown= * Improved GUI of PersonCard to better display three note lists _(Strengths, Weaknesses, and Miscellaneous)_ * Implemented `clear-t` command to clear all tasks or tasks for a given date * Implemented `load-court` command to load background image for strategy tab + * Required many instances of defensive programming due to reliance on external directories and files + * Implemented `sort-strength` and `sort-weakness` commands to sort the address book by total strengths/weaknesses in descending order respectively * **Contributions to the UG:** * Added feature definitions for the following functions (and included in command summary): - * (`strength-add`, `weakness-add`, `misc-add`, `strength-del`, `weakness-del`, `misc-del`, `clear-t`, `load-court`) + * (`strength-add`, `weakness-add`, `misc-add`, `strength-del`, `weakness-del`, `misc-del`, `clear-t`, `load-court`, `sort-strength`, `sort-weakness`) * **Contributions to the DG:** * Added the Product Scope and Glossary sections * Implemented the Model Component * Added some user stories: * `As an organised coach I can view players by their strengths and weaknesses so that I can make informed decisions on choosing the best person for a specific objective` + * `As an organized and data-driven coach I can sort my players by certain data so I can get better understanding of how players compare` * Added the following use cases: * Add a strength to a person * Add a weakness to a person @@ -32,18 +35,30 @@ https://nus-cs2103-ay2122s2.github.io/tp-dashboard/?search=aalghrairy&breakdown= * Delete a strength from a person * Delete a weakness from a person * Delete a miscellaneous note from a person + * Sort address book by strengths in descending order + * Sort address book by weaknesses in descending order * Clear all tasks from the task list * Clear all tasks for a specified date from task list * Load new background image for strategy tab * **Contributions to team-based tasks**: - * Replaced references to `AddressBook` with `Coach2K22` + * Replaced references to `AddressBook` with `Coach2K22` in Developer Guide * Maintained some issues to be implemented by all team members + * Maintained issue tracking for some individual tasks of respective team members * **Review/mentoring contributions**: * [#20](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/20) * [#21](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/21) + * [#22](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/22) + * [#24](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/24) + * [#25](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/25) * [#26](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/26) * [#38](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/38) + * [#55](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/55) + * [#63](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/63) * [#76](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/76) + * [#97](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/97) + * [#106](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/106) + * [#109](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/109) + * [#124](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/124) * **Contributions beyond the project team:** * Evidence of helping others: * [#197](https://github.com/nus-cs2103-AY2122S2/forum/issues/197) From 3b9f1df8c5acafba3ff2aa2f94962774f36a88ec Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Wed, 30 Mar 2022 05:03:52 +0800 Subject: [PATCH 290/455] Modify some conditions of load-court function --- docs/UserGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 9ec3da9d491..780701ec079 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -410,7 +410,7 @@ Examples: **:information_source: Key things to take note of:**
      * Loads the given image from the filepath `courts/IMAGE_NAME.png`. -* File must exist and be in `png` format in a folder labelled `courts` in the same directory as the JAR file (will be automatically generated). +* File must exist and be in `png` format in a folder labelled `courts` in the same directory as the JAR file (directory will be automatically generated). From 3a1972cd2824323d04834456902f79913027cede Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Wed, 30 Mar 2022 11:22:48 +0800 Subject: [PATCH 291/455] Amend trailing white space error --- src/main/java/seedu/address/logic/parser/AddressBookParser.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index d7cf979a322..a3717784ec6 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -153,7 +153,7 @@ public Command parseCommand(String userInput) throws ParseException { case MovePlayerCommand.COMMAND_WORD: return new MovePlayerCommandParser().parse(arguments); - + case SortTaskByDateCommand.COMMAND_WORD: return new SortTaskByDateCommand(); From c8adc3fa069ccd5948f52d8c7c3afe7f97f53c92 Mon Sep 17 00:00:00 2001 From: Pragya Date: Wed, 30 Mar 2022 11:32:55 +0800 Subject: [PATCH 292/455] edit task contact check and description bug fixes --- .../logic/commands/AddTaskCommand.java | 7 ++++-- .../logic/commands/EditTaskCommand.java | 22 ++++++++++++++++++- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/AddTaskCommand.java b/src/main/java/seedu/address/logic/commands/AddTaskCommand.java index f4a4a65a017..b833508131c 100644 --- a/src/main/java/seedu/address/logic/commands/AddTaskCommand.java +++ b/src/main/java/seedu/address/logic/commands/AddTaskCommand.java @@ -1,6 +1,7 @@ package seedu.address.logic.commands; import static java.util.Objects.requireNonNull; +import static seedu.address.logic.parser.CliSyntax.PREFIX_CONTACT; import static seedu.address.logic.parser.CliSyntax.PREFIX_DATE; import static seedu.address.logic.parser.CliSyntax.PREFIX_ENDTIME; import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; @@ -30,14 +31,16 @@ public class AddTaskCommand extends Command { + PREFIX_DATE + "DATE " + PREFIX_STARTTIME + "START TIME " + PREFIX_ENDTIME + "END TIME " - + "[" + PREFIX_TAG + "TAG]...\n" + + "[" + PREFIX_TAG + "TAG]..." + + "[" +PREFIX_CONTACT + "PERSON]...\n" + "Example: " + COMMAND_WORD + " " + PREFIX_NAME + "Investor introduction " + PREFIX_DATE + "08-04-2022 " + PREFIX_STARTTIME + "13:00 " + PREFIX_ENDTIME + "15:00 " + PREFIX_TAG + "funding " - + PREFIX_TAG + "meeting "; + + PREFIX_TAG + "meeting " + + PREFIX_CONTACT + "Alex Yeoh "; public static final String MESSAGE_SUCCESS = "New task added: %1$s"; public static final String MESSAGE_DUPLICATE_TASK = "This task already exists in the task book"; diff --git a/src/main/java/seedu/address/logic/commands/EditTaskCommand.java b/src/main/java/seedu/address/logic/commands/EditTaskCommand.java index b4a466cf1d1..b66666ff3e2 100644 --- a/src/main/java/seedu/address/logic/commands/EditTaskCommand.java +++ b/src/main/java/seedu/address/logic/commands/EditTaskCommand.java @@ -1,6 +1,7 @@ package seedu.address.logic.commands; import static java.util.Objects.requireNonNull; +import static seedu.address.logic.parser.CliSyntax.PREFIX_CONTACT; import static seedu.address.logic.parser.CliSyntax.PREFIX_DATE; import static seedu.address.logic.parser.CliSyntax.PREFIX_ENDTIME; import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; @@ -17,6 +18,7 @@ import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; import seedu.address.model.name.Name; +import seedu.address.model.person.Person; import seedu.address.model.tag.Tag; import seedu.address.model.task.Date; import seedu.address.model.task.EndTime; @@ -38,7 +40,8 @@ public class EditTaskCommand extends Command { + "[" + PREFIX_DATE + "DATE] " + "[" + PREFIX_STARTTIME + "START TIME] " + "[" + PREFIX_ENDTIME + "END TIME] " - + "[" + PREFIX_TAG + "TAG]...\n" + + "[" + PREFIX_TAG + "TAG]..." + + "[" +PREFIX_CONTACT + "PERSON]...\n" + "Example: " + COMMAND_WORD + " 1 " + PREFIX_DATE + "22-12-2022 " + PREFIX_ENDTIME + "23:59"; @@ -46,6 +49,8 @@ public class EditTaskCommand extends Command { public static final String MESSAGE_EDIT_TASK_SUCCESS = "Edited Task: %1$s"; public static final String MESSAGE_NOT_EDITED = "At least one field to edit must be provided."; public static final String MESSAGE_DUPLICATE_TASK = "This task already exists in the address book."; + public static final String MESSAGE_CONTACT_NOT_FOUND_IN_LIST = + "Cannot perform this edit on the task as this person does not exist in the contact list"; private final Index index; private final EditTaskDescriptor editTaskDescriptor; @@ -66,6 +71,7 @@ public EditTaskCommand(Index index, EditTaskDescriptor editTaskDescriptor) { public CommandResult execute(Model model) throws CommandException { requireNonNull(model); List lastShownList = model.getFilteredTaskList(); + List unfilteredPersonList = model.getUnfilteredPersonList(); if (index.getZeroBased() >= lastShownList.size()) { throw new CommandException(Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX); @@ -78,6 +84,20 @@ public CommandResult execute(Model model) throws CommandException { throw new CommandException(MESSAGE_DUPLICATE_TASK); } + Set persons = editedTask.getPersons(); + + for (Name name: persons) { + boolean notFound = true; + for (Person person: unfilteredPersonList) { + if (person.getName().equals(name)) { + notFound = false; + } + } + if (notFound) { + throw new CommandException(String.format(MESSAGE_CONTACT_NOT_FOUND_IN_LIST, name)); + } + } + model.setTask(taskToEdit, editedTask); model.updateFilteredTaskList(PREDICATE_SHOW_ALL_TASKS); return new CommandResult(String.format(MESSAGE_EDIT_TASK_SUCCESS, editedTask)); From 83efca78848c698866181d0ca939c50a2fec6a6b Mon Sep 17 00:00:00 2001 From: Pragya Date: Wed, 30 Mar 2022 12:11:01 +0800 Subject: [PATCH 293/455] edit task command --- src/main/java/seedu/address/logic/commands/AddTaskCommand.java | 2 +- src/main/java/seedu/address/logic/commands/EditTaskCommand.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/AddTaskCommand.java b/src/main/java/seedu/address/logic/commands/AddTaskCommand.java index b833508131c..0e9e54b7b49 100644 --- a/src/main/java/seedu/address/logic/commands/AddTaskCommand.java +++ b/src/main/java/seedu/address/logic/commands/AddTaskCommand.java @@ -32,7 +32,7 @@ public class AddTaskCommand extends Command { + PREFIX_STARTTIME + "START TIME " + PREFIX_ENDTIME + "END TIME " + "[" + PREFIX_TAG + "TAG]..." - + "[" +PREFIX_CONTACT + "PERSON]...\n" + + "[" + PREFIX_CONTACT + "PERSON]...\n" + "Example: " + COMMAND_WORD + " " + PREFIX_NAME + "Investor introduction " + PREFIX_DATE + "08-04-2022 " diff --git a/src/main/java/seedu/address/logic/commands/EditTaskCommand.java b/src/main/java/seedu/address/logic/commands/EditTaskCommand.java index b66666ff3e2..b980755c3c5 100644 --- a/src/main/java/seedu/address/logic/commands/EditTaskCommand.java +++ b/src/main/java/seedu/address/logic/commands/EditTaskCommand.java @@ -41,7 +41,7 @@ public class EditTaskCommand extends Command { + "[" + PREFIX_STARTTIME + "START TIME] " + "[" + PREFIX_ENDTIME + "END TIME] " + "[" + PREFIX_TAG + "TAG]..." - + "[" +PREFIX_CONTACT + "PERSON]...\n" + + "[" + PREFIX_CONTACT + "PERSON]...\n" + "Example: " + COMMAND_WORD + " 1 " + PREFIX_DATE + "22-12-2022 " + PREFIX_ENDTIME + "23:59"; From 6fcbfdbc10b0974995292af6d07b6b0c210549cd Mon Sep 17 00:00:00 2001 From: Pragya Date: Wed, 30 Mar 2022 12:17:27 +0800 Subject: [PATCH 294/455] gradle build check --- .../address/logic/commands/EditTaskCommandTest.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/test/java/seedu/address/logic/commands/EditTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/EditTaskCommandTest.java index 175f4df3da7..5c46cb37169 100644 --- a/src/test/java/seedu/address/logic/commands/EditTaskCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/EditTaskCommandTest.java @@ -22,6 +22,7 @@ import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ModelManager; +import seedu.address.model.StrategyBoard; import seedu.address.model.UserPrefs; import seedu.address.model.task.Task; import seedu.address.testutil.EditTaskDescriptorBuilder; @@ -32,7 +33,8 @@ */ public class EditTaskCommandTest { - private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new UserPrefs()); + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); @Test public void execute_allFieldsSpecifiedUnfilteredList_success() { @@ -43,7 +45,7 @@ public void execute_allFieldsSpecifiedUnfilteredList_success() { String expectedMessage = String.format(EditTaskCommand.MESSAGE_EDIT_TASK_SUCCESS, editedTask); Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), - model.getTaskBook(), new UserPrefs()); + model.getTaskBook(), new StrategyBoard(), new UserPrefs()); expectedModel.setTask(model.getFilteredTaskList().get(0), editedTask); assertCommandSuccess(editTaskCommand, model, expectedMessage, expectedModel); @@ -65,7 +67,7 @@ public void execute_someFieldsSpecifiedUnfilteredList_success() { String expectedMessage = String.format(EditTaskCommand.MESSAGE_EDIT_TASK_SUCCESS, editedTask); Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), - model.getTaskBook(), new UserPrefs()); + model.getTaskBook(), new StrategyBoard(), new UserPrefs()); expectedModel.setTask(lastTask, editedTask); assertCommandSuccess(editTaskCommand, model, expectedMessage, expectedModel); @@ -79,7 +81,7 @@ public void execute_noFieldSpecifiedUnfilteredList_success() { String expectedMessage = String.format(EditTaskCommand.MESSAGE_EDIT_TASK_SUCCESS, editedTask); Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), - model.getTaskBook(), new UserPrefs()); + model.getTaskBook(), new StrategyBoard(), new UserPrefs()); assertCommandSuccess(editTaskCommand, model, expectedMessage, expectedModel); } From 89cf14466e4dfef0f569d60456a88bb1948aa270 Mon Sep 17 00:00:00 2001 From: Pragya Date: Wed, 30 Mar 2022 13:34:43 +0800 Subject: [PATCH 295/455] added testcase to check for person validity --- .../logic/commands/EditTaskCommand.java | 2 +- .../logic/commands/EditTaskCommandTest.java | 32 +++++++++++++++++-- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/EditTaskCommand.java b/src/main/java/seedu/address/logic/commands/EditTaskCommand.java index b980755c3c5..41210975c2f 100644 --- a/src/main/java/seedu/address/logic/commands/EditTaskCommand.java +++ b/src/main/java/seedu/address/logic/commands/EditTaskCommand.java @@ -50,7 +50,7 @@ public class EditTaskCommand extends Command { public static final String MESSAGE_NOT_EDITED = "At least one field to edit must be provided."; public static final String MESSAGE_DUPLICATE_TASK = "This task already exists in the address book."; public static final String MESSAGE_CONTACT_NOT_FOUND_IN_LIST = - "Cannot perform this edit on the task as this person does not exist in the contact list"; + "Unable to edit task as the person %1$s cannot be found in the current address book"; private final Index index; private final EditTaskDescriptor editTaskDescriptor; diff --git a/src/test/java/seedu/address/logic/commands/EditTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/EditTaskCommandTest.java index 5c46cb37169..10fbb4d44c2 100644 --- a/src/test/java/seedu/address/logic/commands/EditTaskCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/EditTaskCommandTest.java @@ -9,6 +9,8 @@ import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_MEET; import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; +import static seedu.address.testutil.Assert.assertThrows; +import static seedu.address.testutil.TypicalPersons.CARL; import static seedu.address.testutil.TypicalIndexes.TASK_FIRST_INDEX; import static seedu.address.testutil.TypicalIndexes.TASK_SECOND_INDEX; import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; @@ -16,6 +18,7 @@ import org.junit.jupiter.api.Test; +import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; import seedu.address.logic.EditTaskDescriptor; @@ -87,7 +90,7 @@ public void execute_noFieldSpecifiedUnfilteredList_success() { } @Test - public void execute_duplicatePersonUnfilteredList_failure() { + public void execute_duplicateTaskUnfilteredList_failure() { Task firstTask = model.getFilteredTaskList().get(TASK_FIRST_INDEX.getZeroBased()); EditTaskDescriptor descriptor = new EditTaskDescriptorBuilder(firstTask).build(); EditTaskCommand editTaskCommand = new EditTaskCommand(TASK_SECOND_INDEX, descriptor); @@ -96,7 +99,7 @@ public void execute_duplicatePersonUnfilteredList_failure() { } @Test - public void execute_invalidPersonIndexUnfilteredList_failure() { + public void execute_invalidTaskIndexUnfilteredList_failure() { Index outOfBoundIndex = Index.fromOneBased(model.getFilteredTaskList().size() + 1); EditTaskDescriptor descriptor = new EditTaskDescriptorBuilder().withName(VALID_NAME_TASK1).build(); EditTaskCommand editTaskCommand = new EditTaskCommand(outOfBoundIndex, descriptor); @@ -104,6 +107,31 @@ public void execute_invalidPersonIndexUnfilteredList_failure() { assertCommandFailure(editTaskCommand, model, Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX); } + @Test + public void execute_personNotInList_throwsCommandException() { + // task with one person not found in the address book -> throws an error + EditTaskDescriptor invalidTask = new EditTaskDescriptorBuilder().withPersons("Alice").build(); + EditTaskCommand editTaskCommand = new EditTaskCommand(TASK_FIRST_INDEX, invalidTask); + + String expectedMessage = String.format(EditTaskCommand.MESSAGE_CONTACT_NOT_FOUND_IN_LIST, "Alice"); + assertThrows(CommandException.class, + expectedMessage, () -> editTaskCommand.execute(model)); + + // task with only one person out of the rest found in the address book -> throws an error + invalidTask = new EditTaskDescriptorBuilder().withPersons("Alice", CARL.getName().fullName).build(); + EditTaskCommand editTaskCommand2 = new EditTaskCommand(TASK_FIRST_INDEX, invalidTask); + + assertThrows(CommandException.class, + expectedMessage, () -> editTaskCommand2.execute(model)); + + // task with multiple persons not found in the address book -> throws an error + invalidTask = new EditTaskDescriptorBuilder().withPersons("Alice", "Kenny").build(); + EditTaskCommand editTaskCommand3 = new EditTaskCommand(TASK_FIRST_INDEX, invalidTask); + + assertThrows(CommandException.class, + expectedMessage, () -> editTaskCommand3.execute(model)); + } + @Test public void equals() { final EditTaskCommand standardCommand = new EditTaskCommand(TASK_FIRST_INDEX, DESC_TASK1); From d61b55747530c92a90109b2fe1ef1f20d8378a23 Mon Sep 17 00:00:00 2001 From: Pragya Date: Wed, 30 Mar 2022 13:38:14 +0800 Subject: [PATCH 296/455] checkstyle --- .../seedu/address/logic/commands/EditTaskCommandTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/seedu/address/logic/commands/EditTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/EditTaskCommandTest.java index 10fbb4d44c2..1df39a2d8a2 100644 --- a/src/test/java/seedu/address/logic/commands/EditTaskCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/EditTaskCommandTest.java @@ -10,18 +10,18 @@ import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; import static seedu.address.testutil.Assert.assertThrows; -import static seedu.address.testutil.TypicalPersons.CARL; import static seedu.address.testutil.TypicalIndexes.TASK_FIRST_INDEX; import static seedu.address.testutil.TypicalIndexes.TASK_SECOND_INDEX; +import static seedu.address.testutil.TypicalPersons.CARL; import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; import org.junit.jupiter.api.Test; -import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; import seedu.address.logic.EditTaskDescriptor; +import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ModelManager; From 1cdeb30a2c22f73d72633542eaaa45c80bbebf68 Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Wed, 30 Mar 2022 17:32:52 +0800 Subject: [PATCH 297/455] Modify user stories and rephrase use cases --- docs/DeveloperGuide.md | 5 ++--- docs/UserGuide.md | 2 -- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index ffb45785a47..ea49e8b7943 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -477,7 +477,6 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli | `* * *` | organized coach | view players by their strengths and weaknesses | make informed decision on choosing the best person | | `* * *` | disorganized coach | add existing and upcoming tasks | keep track of my schedule easily | | `* * *` | disorganized coach | delete wrongly added or past tasks | organize my schedule better | -| `* * *` | strategic coach | save current formation information | plan my game plays and save strategies | | `* *` | lazy and forgetful coach | view a list of help commands and their descriptions | easily recall how to do a specific task | | `* *` | organised coach | view players by their strengths and weaknesses | make informed decisions on choosing the best person for a specific objective | | `**` | organized and data-driven coach | sort my players by strengths and weaknesses | get a better understanding of how players compare | @@ -662,7 +661,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli **MSS** -1. User requests to sort the list of persons by total strengths +1. User requests to sort the list of persons by total number of strengths 2. Coach2K22 shows the new sorted list of persons Use case ends. @@ -678,7 +677,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli **Use case: Sort address book by weaknesses in descending order** * This use case describes a similar interaction between the user and Coach2K22 to that of `Sort address book by strengths in descending order` - * Sorts list of persons by total weaknesses in descending order instead of total strengths + * Sorts list of persons by total number of weaknesses in descending order instead of total number of strengths **Use case: Add a tag to a person** diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 780701ec079..f2d476afdcf 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -496,8 +496,6 @@ Format: `exit` | **Add Tag** | `tag-add-p INDEX TAG_NAME`
      e.g., `tag-add-p 1 Public Relations` | | **Del Tag** | `tag-del-p INDEX TAG_NAME`
      e.g., `tag-del-p 1 Team` | | **Find** | `find-p [n/NAME]…​ [t/TAG]…​`
      e.g., `find-p n/Alex n/Charlotte t/team1 t/team2` | -| **Add Note** | `note-add INDEX NOTE_DESCRIPTION`
      e.g., `note-add 1 Surgery Scheduled for tomorrow` | -| **Del Note** | `note-del INDEX NOTE_INDEX`
      e.g., `note-del 1 1` | | **Add Strength** | `strength-add INDEX STRENGTH_DESCRIPTION`
      e.g., `strength-add 1 Great stamina` | | **Add Weakness** | `weakness-add INDEX WEAKNESS_DESCRIPTION`
      e.g., `weakness-add 1 Poor defensive abilities` | | **Add Miscellaneous** | `misc-add INDEX NOTE_DESCRIPTION`
      e.g., `misc-add 1 Likes ice cream` | From e5868ba3987cd8b58ae89856759eb54623adf5c2 Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Wed, 30 Mar 2022 17:48:56 +0800 Subject: [PATCH 298/455] Rephrase possibly ambiguous instruction --- docs/UserGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index f2d476afdcf..ae2bc457229 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -410,7 +410,7 @@ Examples: **:information_source: Key things to take note of:**
      * Loads the given image from the filepath `courts/IMAGE_NAME.png`. -* File must exist and be in `png` format in a folder labelled `courts` in the same directory as the JAR file (directory will be automatically generated). +* File must exist and be in `png` format in a folder named `courts` in the same directory as the JAR file (folder will be automatically generated). From 444ed24f77bc04c4bbb886018a7a3be0347495ac Mon Sep 17 00:00:00 2001 From: Pragya Date: Wed, 30 Mar 2022 20:14:18 +0800 Subject: [PATCH 299/455] export functionality with disappear bug --- build.gradle | 6 +++ .../address/logic/commands/CommandResult.java | 16 +++++-- .../address/logic/commands/ExitCommand.java | 2 +- .../address/logic/commands/ExportCommand.java | 43 +++++++++++++++++++ .../logic/commands/GetPersonCommand.java | 2 +- .../address/logic/commands/HelpCommand.java | 2 +- .../logic/commands/LoadCourtCommand.java | 2 +- .../logic/parser/AddressBookParser.java | 27 ++---------- .../java/seedu/address/ui/MainWindow.java | 24 ++++++++++- .../java/seedu/address/ui/StrategyPanel.java | 36 ++++++++++++++++ 10 files changed, 129 insertions(+), 31 deletions(-) create mode 100644 src/main/java/seedu/address/logic/commands/ExportCommand.java diff --git a/build.gradle b/build.gradle index aaafb402b1d..5aa40b91211 100644 --- a/build.gradle +++ b/build.gradle @@ -56,6 +56,12 @@ dependencies { implementation group: 'org.openjfx', name: 'javafx-graphics', version: javaFxVersion, classifier: 'win' implementation group: 'org.openjfx', name: 'javafx-graphics', version: javaFxVersion, classifier: 'mac' implementation group: 'org.openjfx', name: 'javafx-graphics', version: javaFxVersion, classifier: 'linux' + implementation group: 'org.openjfx', name: 'javafx-swing', version: javaFxVersion, classifier: 'win' + implementation group: 'org.openjfx', name: 'javafx-swing', version: javaFxVersion, classifier: 'mac' + implementation group: 'org.openjfx', name: 'javafx-swing', version: javaFxVersion, classifier: 'linux' +// javafx { +// modules = [ 'javafx.controls', 'javafx.graphics', 'javafx.swing', 'javafx.base' ] +// } implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.7.0' implementation group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version: '2.7.4' diff --git a/src/main/java/seedu/address/logic/commands/CommandResult.java b/src/main/java/seedu/address/logic/commands/CommandResult.java index 5d7705717b1..410db0bc383 100644 --- a/src/main/java/seedu/address/logic/commands/CommandResult.java +++ b/src/main/java/seedu/address/logic/commands/CommandResult.java @@ -37,20 +37,25 @@ public class CommandResult { */ private final Image image; + /** + * The application should exit. + */ + private final boolean isExportCommand; /** * Constructs a {@code CommandResult} with the specified fields. *

      - * Specifically used for loading background image for Strategy Panel. + * Specifically used for Exporting Strategy panel image. */ public CommandResult(String feedbackToUser, boolean showHelp, boolean exit, int tabPane, - boolean isLoadImage, Image image) { + boolean isLoadImage, Image image, boolean isExportCommand) { this.feedbackToUser = requireNonNull(feedbackToUser); this.showHelp = showHelp; this.isLoadImage = isLoadImage; this.image = image; this.exit = exit; this.tabPane = tabPane; + this.isExportCommand = isExportCommand; } /** @@ -58,7 +63,7 @@ public CommandResult(String feedbackToUser, boolean showHelp, boolean exit, int * and other fields set to their default value. */ public CommandResult(String feedbackToUser) { - this(feedbackToUser, false, false, DEFAULT, false, null); + this(feedbackToUser, false, false, DEFAULT, false, null, false); } public String getFeedbackToUser() { @@ -85,6 +90,10 @@ public Image getBackgroundImage() { return image; } + public boolean isExportCommand() { + return isExportCommand; + } + @Override public boolean equals(Object other) { if (other == this) { @@ -119,6 +128,7 @@ public String toString() { + ", tabPane=" + tabPane + ", isLoadImage=" + isLoadImage + ", image=" + image + + ", isExportCommand=" + isExportCommand + '}'; } } diff --git a/src/main/java/seedu/address/logic/commands/ExitCommand.java b/src/main/java/seedu/address/logic/commands/ExitCommand.java index 30e40c73034..3c4d3cde3e3 100644 --- a/src/main/java/seedu/address/logic/commands/ExitCommand.java +++ b/src/main/java/seedu/address/logic/commands/ExitCommand.java @@ -15,7 +15,7 @@ public class ExitCommand extends Command { @Override public CommandResult execute(Model model) { - return new CommandResult(MESSAGE_EXIT_ACKNOWLEDGEMENT, false, true, DEFAULT, false, null); + return new CommandResult(MESSAGE_EXIT_ACKNOWLEDGEMENT, false, true, DEFAULT, false, null, false); } } diff --git a/src/main/java/seedu/address/logic/commands/ExportCommand.java b/src/main/java/seedu/address/logic/commands/ExportCommand.java new file mode 100644 index 00000000000..272bd33bfad --- /dev/null +++ b/src/main/java/seedu/address/logic/commands/ExportCommand.java @@ -0,0 +1,43 @@ +package seedu.address.logic.commands; + +import seedu.address.ui.MainWindow; +import seedu.address.logic.commands.exceptions.CommandException; +import seedu.address.model.Model; +import seedu.address.model.image.Image; +import seedu.address.logic.commands.exceptions.CommandException; + +import java.util.UUID; + +import static seedu.address.commons.core.Tabs.DEFAULT; +import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; + +public class ExportCommand extends Command{ + + public static final String COMMAND_WORD = "export"; + + public static final String MESSAGE_USAGE = COMMAND_WORD + + ": Exports current Strategy Panel as a .png image into user selected directory. " + + "Example: " + COMMAND_WORD; + + public static final String SHOWING_EXPORT_MESSAGE = "Strategy Panel is being exported."; + + private String fileName; + + /** + * Constructor for ExportCommand class. + */ + + @Override + public CommandResult execute(Model model) { + requireAllNonNull(model); + return new CommandResult(SHOWING_EXPORT_MESSAGE, false, true, DEFAULT, false, null, true); + } + + + /** + * Randomized file names + */ + private static String imageRandomFileString() { + return UUID.randomUUID().toString(); + } +} \ No newline at end of file diff --git a/src/main/java/seedu/address/logic/commands/GetPersonCommand.java b/src/main/java/seedu/address/logic/commands/GetPersonCommand.java index 2dfe934136e..a31c644b41d 100644 --- a/src/main/java/seedu/address/logic/commands/GetPersonCommand.java +++ b/src/main/java/seedu/address/logic/commands/GetPersonCommand.java @@ -56,7 +56,7 @@ public CommandResult execute(Model model) throws CommandException { return new CommandResult( String.format(Messages.MESSAGE_PERSONS_LISTED_OVERVIEW, model.getFilteredPersonList().size()), - false, false, CONTACT_TAB, false, null); + false, false, CONTACT_TAB, false, null, false); } @Override diff --git a/src/main/java/seedu/address/logic/commands/HelpCommand.java b/src/main/java/seedu/address/logic/commands/HelpCommand.java index b8e6dd6a514..f8269c9c759 100644 --- a/src/main/java/seedu/address/logic/commands/HelpCommand.java +++ b/src/main/java/seedu/address/logic/commands/HelpCommand.java @@ -18,6 +18,6 @@ public class HelpCommand extends Command { @Override public CommandResult execute(Model model) { - return new CommandResult(SHOWING_HELP_MESSAGE, true, false, DEFAULT, false, null); + return new CommandResult(SHOWING_HELP_MESSAGE, true, false, DEFAULT, false, null, false); } } diff --git a/src/main/java/seedu/address/logic/commands/LoadCourtCommand.java b/src/main/java/seedu/address/logic/commands/LoadCourtCommand.java index 43998238250..f1000572af8 100644 --- a/src/main/java/seedu/address/logic/commands/LoadCourtCommand.java +++ b/src/main/java/seedu/address/logic/commands/LoadCourtCommand.java @@ -46,7 +46,7 @@ public CommandResult execute(Model model) throws CommandException { } return new CommandResult(generateSuccessMessage(image), false, false, - DEFAULT, true, this.image); + DEFAULT, true, this.image, false); } /** diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index cc5c29b82a5..0beed38866d 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -6,29 +6,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -import seedu.address.logic.commands.AddCommand; -import seedu.address.logic.commands.AddTagCommand; -import seedu.address.logic.commands.AddTagToTaskCommand; -import seedu.address.logic.commands.AddTaskCommand; -import seedu.address.logic.commands.ClearCommand; -import seedu.address.logic.commands.ClearTaskCommand; -import seedu.address.logic.commands.Command; -import seedu.address.logic.commands.DeleteCommand; -import seedu.address.logic.commands.DeleteTagCommand; -import seedu.address.logic.commands.DeleteTaskCommand; -import seedu.address.logic.commands.EditCommand; -import seedu.address.logic.commands.EditTaskCommand; -import seedu.address.logic.commands.ExitCommand; -import seedu.address.logic.commands.FindCommand; -import seedu.address.logic.commands.FindTaskCommand; -import seedu.address.logic.commands.GetPersonCommand; -import seedu.address.logic.commands.HelpCommand; -import seedu.address.logic.commands.ListCommand; -import seedu.address.logic.commands.ListTaskCommand; -import seedu.address.logic.commands.LoadCourtCommand; -import seedu.address.logic.commands.SortStrengthCommand; -import seedu.address.logic.commands.SortTaskByDateCommand; -import seedu.address.logic.commands.SortWeaknessCommand; +import seedu.address.logic.commands.*; import seedu.address.logic.commands.notecommands.AddMiscCommand; import seedu.address.logic.commands.notecommands.AddStrengthCommand; import seedu.address.logic.commands.notecommands.AddWeaknessCommand; @@ -169,6 +147,9 @@ public Command parseCommand(String userInput) throws ParseException { case SortTaskByDateCommand.COMMAND_WORD: return new SortTaskByDateCommand(); + case ExportCommand.COMMAND_WORD: + return new ExportCommand(); + default: throw new ParseException(MESSAGE_UNKNOWN_COMMAND); } diff --git a/src/main/java/seedu/address/ui/MainWindow.java b/src/main/java/seedu/address/ui/MainWindow.java index 379c826ac03..3675e04d923 100644 --- a/src/main/java/seedu/address/ui/MainWindow.java +++ b/src/main/java/seedu/address/ui/MainWindow.java @@ -1,17 +1,29 @@ package seedu.address.ui; +import java.io.File; +import java.io.OutputStream; +import java.nio.file.Files; import java.util.logging.Logger; import javafx.event.ActionEvent; +import javafx.embed.swing.SwingFXUtils; import javafx.fxml.FXML; +import javafx.scene.Node; +import javafx.scene.Scene; +import javafx.scene.SnapshotParameters; import javafx.scene.control.MenuItem; import javafx.scene.control.TabPane; import javafx.scene.control.TextInputControl; +import javafx.scene.image.WritableImage; import javafx.scene.input.KeyCombination; import javafx.scene.input.KeyEvent; import javafx.scene.layout.AnchorPane; +import javafx.scene.layout.Region; import javafx.scene.layout.StackPane; +import javafx.scene.paint.Color; +import javafx.stage.FileChooser; import javafx.stage.Stage; +import javafx.stage.Window; import seedu.address.commons.core.GuiSettings; import seedu.address.commons.core.LogsCenter; import seedu.address.logic.Logic; @@ -20,6 +32,8 @@ import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.image.Image; +import javax.imageio.ImageIO; + /** * The Main Window. Provides the basic application layout containing * a menu bar and space where other JavaFX elements can be placed. @@ -181,7 +195,6 @@ private void handleExit() { primaryStage.hide(); } - private void switchTab(int index) { tabPane.getSelectionModel().select(index); } @@ -190,6 +203,10 @@ private void handleLoadImage(Image image) { strategyPanel.changeImageBackground(image.getImagePath()); } + private void handleExport() { + strategyPanel.captureAndSaveStrategyPanel(); + } + public PersonListPanel getPersonListPanel() { return personListPanel; } @@ -219,6 +236,11 @@ private CommandResult executeCommand(String commandText) throws CommandException Image backGroundImage = commandResult.getBackgroundImage(); handleLoadImage(backGroundImage); } + + if (commandResult.isExportCommand()) { + handleExport(); + } + return commandResult; } catch (CommandException | ParseException e) { logger.info("Invalid command: " + commandText); diff --git a/src/main/java/seedu/address/ui/StrategyPanel.java b/src/main/java/seedu/address/ui/StrategyPanel.java index d3db1ca25cf..002443827d4 100644 --- a/src/main/java/seedu/address/ui/StrategyPanel.java +++ b/src/main/java/seedu/address/ui/StrategyPanel.java @@ -1,6 +1,8 @@ package seedu.address.ui; +import java.awt.image.RenderedImage; import java.io.File; +import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -11,12 +13,14 @@ import javafx.collections.ListChangeListener; import javafx.collections.ObservableList; import javafx.event.EventHandler; +import javafx.embed.swing.SwingFXUtils; import javafx.fxml.FXML; import javafx.geometry.VPos; import javafx.scene.Cursor; import javafx.scene.control.Slider; import javafx.scene.image.Image; import javafx.scene.image.ImageView; +import javafx.scene.image.WritableImage; import javafx.scene.input.MouseEvent; import javafx.scene.layout.AnchorPane; import javafx.scene.layout.Pane; @@ -27,10 +31,13 @@ import javafx.scene.shape.Circle; import javafx.scene.text.Font; import javafx.scene.text.Text; +import javafx.stage.FileChooser; import seedu.address.MainApp; import seedu.address.commons.core.LogsCenter; import seedu.address.model.strategy.Player; +import javax.imageio.ImageIO; + public class StrategyPanel extends UiPart { private static final String FXML = "StrategyPanel.fxml"; private static final Logger logger = LogsCenter.getLogger(MainApp.class); @@ -210,4 +217,33 @@ private void initStack(StackPane stack, String name, double x, double y, double stack.setOnMousePressed(pressHandler); stack.setOnMouseDragged(dragHandler); } + + //https://stackoverflow.com/questions/38028825/javafx-save-view-of-pane-to-image + public void captureAndSaveStrategyPanel(){ + + FileChooser chooser = new FileChooser(); + + //include title name randomization + chooser.setInitialFileName("title" + ".png"); + chooser.getExtensionFilters().addAll( + new FileChooser.ExtensionFilter("PNG Files", "*.png")); + File file = chooser.showSaveDialog(null); + + if(file != null){ + try { +// //parameters +// SnapshotParameters sp = new SnapshotParameters(); +// sp.setFill(Color.TRANSPARENT); + + //no edits to capture area + WritableImage image = strategyAnchorPane.snapshot(null, null); + RenderedImage renderedImage = SwingFXUtils.fromFXImage(image, null); + + //Write the snapshot to the chosen file + ImageIO.write(renderedImage, "png", file); + } catch (IOException e) { + e.printStackTrace(); + } + } + } } From baf866fc44417e822209af95bc8d417dbf466ed1 Mon Sep 17 00:00:00 2001 From: Pragya Date: Wed, 30 Mar 2022 22:53:14 +0800 Subject: [PATCH 300/455] bug fix B^) --- src/main/java/seedu/address/logic/commands/ExportCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/logic/commands/ExportCommand.java b/src/main/java/seedu/address/logic/commands/ExportCommand.java index 272bd33bfad..f7989076145 100644 --- a/src/main/java/seedu/address/logic/commands/ExportCommand.java +++ b/src/main/java/seedu/address/logic/commands/ExportCommand.java @@ -30,7 +30,7 @@ public class ExportCommand extends Command{ @Override public CommandResult execute(Model model) { requireAllNonNull(model); - return new CommandResult(SHOWING_EXPORT_MESSAGE, false, true, DEFAULT, false, null, true); + return new CommandResult(SHOWING_EXPORT_MESSAGE, false, false, DEFAULT, false, null, true); } From dca4308bdd94a31f705422df00f10a1f7dff1159 Mon Sep 17 00:00:00 2001 From: Pragya Date: Thu, 31 Mar 2022 09:57:05 +0800 Subject: [PATCH 301/455] checkstyle and snapshot parameter fix --- build.gradle | 3 -- .../address/logic/commands/CommandResult.java | 4 +-- .../address/logic/commands/ExportCommand.java | 18 +++++------ .../logic/parser/AddressBookParser.java | 25 ++++++++++++++- .../java/seedu/address/ui/MainWindow.java | 14 --------- .../java/seedu/address/ui/StrategyPanel.java | 31 ++++++++++--------- .../logic/commands/CommandResultTest.java | 18 +++++------ .../logic/commands/ExitCommandTest.java | 2 +- .../logic/commands/GetPersonCommandTest.java | 4 +-- .../logic/commands/HelpCommandTest.java | 2 +- 10 files changed, 63 insertions(+), 58 deletions(-) diff --git a/build.gradle b/build.gradle index 5aa40b91211..913b04dd4b6 100644 --- a/build.gradle +++ b/build.gradle @@ -59,9 +59,6 @@ dependencies { implementation group: 'org.openjfx', name: 'javafx-swing', version: javaFxVersion, classifier: 'win' implementation group: 'org.openjfx', name: 'javafx-swing', version: javaFxVersion, classifier: 'mac' implementation group: 'org.openjfx', name: 'javafx-swing', version: javaFxVersion, classifier: 'linux' -// javafx { -// modules = [ 'javafx.controls', 'javafx.graphics', 'javafx.swing', 'javafx.base' ] -// } implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.7.0' implementation group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version: '2.7.4' diff --git a/src/main/java/seedu/address/logic/commands/CommandResult.java b/src/main/java/seedu/address/logic/commands/CommandResult.java index 410db0bc383..30792f5aa8a 100644 --- a/src/main/java/seedu/address/logic/commands/CommandResult.java +++ b/src/main/java/seedu/address/logic/commands/CommandResult.java @@ -38,14 +38,14 @@ public class CommandResult { private final Image image; /** - * The application should exit. + * The application should export image in user-selected directory. */ private final boolean isExportCommand; /** * Constructs a {@code CommandResult} with the specified fields. *

      - * Specifically used for Exporting Strategy panel image. + * Specifically used for load-court and export commands. */ public CommandResult(String feedbackToUser, boolean showHelp, boolean exit, int tabPane, boolean isLoadImage, Image image, boolean isExportCommand) { diff --git a/src/main/java/seedu/address/logic/commands/ExportCommand.java b/src/main/java/seedu/address/logic/commands/ExportCommand.java index f7989076145..6a1bd2f5fac 100644 --- a/src/main/java/seedu/address/logic/commands/ExportCommand.java +++ b/src/main/java/seedu/address/logic/commands/ExportCommand.java @@ -1,17 +1,13 @@ package seedu.address.logic.commands; -import seedu.address.ui.MainWindow; -import seedu.address.logic.commands.exceptions.CommandException; -import seedu.address.model.Model; -import seedu.address.model.image.Image; -import seedu.address.logic.commands.exceptions.CommandException; +import static seedu.address.commons.core.Tabs.DEFAULT; +import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; import java.util.UUID; -import static seedu.address.commons.core.Tabs.DEFAULT; -import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; +import seedu.address.model.Model; -public class ExportCommand extends Command{ +public class ExportCommand extends Command { public static final String COMMAND_WORD = "export"; @@ -19,7 +15,7 @@ public class ExportCommand extends Command{ + ": Exports current Strategy Panel as a .png image into user selected directory. " + "Example: " + COMMAND_WORD; - public static final String SHOWING_EXPORT_MESSAGE = "Strategy Panel is being exported."; + public static final String MESSAGE_EXPORT_ACKNOWLEDGEMENT = "Strategy Panel is being exported."; private String fileName; @@ -30,7 +26,7 @@ public class ExportCommand extends Command{ @Override public CommandResult execute(Model model) { requireAllNonNull(model); - return new CommandResult(SHOWING_EXPORT_MESSAGE, false, false, DEFAULT, false, null, true); + return new CommandResult(MESSAGE_EXPORT_ACKNOWLEDGEMENT, false, false, DEFAULT, false, null, true); } @@ -40,4 +36,4 @@ public CommandResult execute(Model model) { private static String imageRandomFileString() { return UUID.randomUUID().toString(); } -} \ No newline at end of file +} diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index 0beed38866d..de13d1229b2 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -6,7 +6,30 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -import seedu.address.logic.commands.*; +import seedu.address.logic.commands.AddCommand; +import seedu.address.logic.commands.AddTagCommand; +import seedu.address.logic.commands.AddTagToTaskCommand; +import seedu.address.logic.commands.AddTaskCommand; +import seedu.address.logic.commands.ClearCommand; +import seedu.address.logic.commands.ClearTaskCommand; +import seedu.address.logic.commands.Command; +import seedu.address.logic.commands.DeleteCommand; +import seedu.address.logic.commands.DeleteTagCommand; +import seedu.address.logic.commands.DeleteTaskCommand; +import seedu.address.logic.commands.EditCommand; +import seedu.address.logic.commands.EditTaskCommand; +import seedu.address.logic.commands.ExitCommand; +import seedu.address.logic.commands.ExportCommand; +import seedu.address.logic.commands.FindCommand; +import seedu.address.logic.commands.FindTaskCommand; +import seedu.address.logic.commands.GetPersonCommand; +import seedu.address.logic.commands.HelpCommand; +import seedu.address.logic.commands.ListCommand; +import seedu.address.logic.commands.ListTaskCommand; +import seedu.address.logic.commands.LoadCourtCommand; +import seedu.address.logic.commands.SortStrengthCommand; +import seedu.address.logic.commands.SortTaskByDateCommand; +import seedu.address.logic.commands.SortWeaknessCommand; import seedu.address.logic.commands.notecommands.AddMiscCommand; import seedu.address.logic.commands.notecommands.AddStrengthCommand; import seedu.address.logic.commands.notecommands.AddWeaknessCommand; diff --git a/src/main/java/seedu/address/ui/MainWindow.java b/src/main/java/seedu/address/ui/MainWindow.java index 3675e04d923..1181f91a978 100644 --- a/src/main/java/seedu/address/ui/MainWindow.java +++ b/src/main/java/seedu/address/ui/MainWindow.java @@ -1,29 +1,17 @@ package seedu.address.ui; -import java.io.File; -import java.io.OutputStream; -import java.nio.file.Files; import java.util.logging.Logger; import javafx.event.ActionEvent; -import javafx.embed.swing.SwingFXUtils; import javafx.fxml.FXML; -import javafx.scene.Node; -import javafx.scene.Scene; -import javafx.scene.SnapshotParameters; import javafx.scene.control.MenuItem; import javafx.scene.control.TabPane; import javafx.scene.control.TextInputControl; -import javafx.scene.image.WritableImage; import javafx.scene.input.KeyCombination; import javafx.scene.input.KeyEvent; import javafx.scene.layout.AnchorPane; -import javafx.scene.layout.Region; import javafx.scene.layout.StackPane; -import javafx.scene.paint.Color; -import javafx.stage.FileChooser; import javafx.stage.Stage; -import javafx.stage.Window; import seedu.address.commons.core.GuiSettings; import seedu.address.commons.core.LogsCenter; import seedu.address.logic.Logic; @@ -32,8 +20,6 @@ import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.image.Image; -import javax.imageio.ImageIO; - /** * The Main Window. Provides the basic application layout containing * a menu bar and space where other JavaFX elements can be placed. diff --git a/src/main/java/seedu/address/ui/StrategyPanel.java b/src/main/java/seedu/address/ui/StrategyPanel.java index 002443827d4..982848fdd6c 100644 --- a/src/main/java/seedu/address/ui/StrategyPanel.java +++ b/src/main/java/seedu/address/ui/StrategyPanel.java @@ -7,16 +7,18 @@ import java.util.List; import java.util.Map; import java.util.logging.Logger; +import javax.imageio.ImageIO; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.collections.ListChangeListener; import javafx.collections.ObservableList; -import javafx.event.EventHandler; import javafx.embed.swing.SwingFXUtils; +import javafx.event.EventHandler; import javafx.fxml.FXML; import javafx.geometry.VPos; import javafx.scene.Cursor; +import javafx.scene.SnapshotParameters; import javafx.scene.control.Slider; import javafx.scene.image.Image; import javafx.scene.image.ImageView; @@ -36,8 +38,6 @@ import seedu.address.commons.core.LogsCenter; import seedu.address.model.strategy.Player; -import javax.imageio.ImageIO; - public class StrategyPanel extends UiPart { private static final String FXML = "StrategyPanel.fxml"; private static final Logger logger = LogsCenter.getLogger(MainApp.class); @@ -218,22 +218,25 @@ private void initStack(StackPane stack, String name, double x, double y, double stack.setOnMouseDragged(dragHandler); } + /** + * Captures image of strategyAnchorPane and stores it in users local drive. + */ //https://stackoverflow.com/questions/38028825/javafx-save-view-of-pane-to-image - public void captureAndSaveStrategyPanel(){ + public void captureAndSaveStrategyPanel() { - FileChooser chooser = new FileChooser(); + FileChooser chooser = new FileChooser(); - //include title name randomization - chooser.setInitialFileName("title" + ".png"); - chooser.getExtensionFilters().addAll( - new FileChooser.ExtensionFilter("PNG Files", "*.png")); - File file = chooser.showSaveDialog(null); + //include title name randomization + chooser.setInitialFileName("title" + ".png"); + chooser.getExtensionFilters().addAll( + new FileChooser.ExtensionFilter("PNG Files", "*.png")); + File file = chooser.showSaveDialog(null); - if(file != null){ + if (file != null) { try { -// //parameters -// SnapshotParameters sp = new SnapshotParameters(); -// sp.setFill(Color.TRANSPARENT); + //parameters + SnapshotParameters sp = new SnapshotParameters(); + sp.setFill(Color.TRANSPARENT); //no edits to capture area WritableImage image = strategyAnchorPane.snapshot(null, null); diff --git a/src/test/java/seedu/address/logic/commands/CommandResultTest.java b/src/test/java/seedu/address/logic/commands/CommandResultTest.java index 0ff912805ab..990a2bb477d 100644 --- a/src/test/java/seedu/address/logic/commands/CommandResultTest.java +++ b/src/test/java/seedu/address/logic/commands/CommandResultTest.java @@ -16,7 +16,7 @@ public void equals() { // same values -> returns true assertTrue(commandResult.equals(new CommandResult("feedback"))); - assertTrue(commandResult.equals(new CommandResult("feedback", false, false, DEFAULT, false, null))); + assertTrue(commandResult.equals(new CommandResult("feedback", false, false, DEFAULT, false, null, false))); // same object -> returns true assertTrue(commandResult.equals(commandResult)); @@ -31,13 +31,13 @@ public void equals() { assertFalse(commandResult.equals(new CommandResult("different"))); // different showHelp value -> returns false - assertFalse(commandResult.equals(new CommandResult("feedback", true, false, DEFAULT, false, null))); + assertFalse(commandResult.equals(new CommandResult("feedback", true, false, DEFAULT, false, null, false))); // different exit value -> returns false - assertFalse(commandResult.equals(new CommandResult("feedback", false, true, DEFAULT, false, null))); + assertFalse(commandResult.equals(new CommandResult("feedback", false, true, DEFAULT, false, null, false))); // different tab pane value -> returns false - assertFalse(commandResult.equals(new CommandResult("feedback", false, true, CONTACT_TAB, false, null))); + assertFalse(commandResult.equals(new CommandResult("feedback", false, true, CONTACT_TAB, false, null, false))); } @Test @@ -52,22 +52,22 @@ public void hashcode() { // different showHelp value -> returns different hashcode assertNotEquals(commandResult.hashCode(), new CommandResult("feedback", true, false, - DEFAULT, false, null).hashCode()); + DEFAULT, false, null, false).hashCode()); // different exit value -> returns different hashcode assertNotEquals(commandResult.hashCode(), new CommandResult("feedback", false, true, - DEFAULT, false, null).hashCode()); + DEFAULT, false, null, false).hashCode()); // different tab pane value -> returns different hashcode assertNotEquals(commandResult.hashCode(), new CommandResult("feedback", false, false, - CONTACT_TAB, false, null).hashCode()); + CONTACT_TAB, false, null, false).hashCode()); } @Test public void toStringTest() { - CommandResult commandResult = new CommandResult("feedback", true, false, DEFAULT, false, null); + CommandResult commandResult = new CommandResult("feedback", true, false, DEFAULT, false, null, false); // same values -> returns same String assertEquals(commandResult.toString(), - new CommandResult("feedback", true, false, DEFAULT, false, null).toString()); + new CommandResult("feedback", true, false, DEFAULT, false, null, false).toString()); } } diff --git a/src/test/java/seedu/address/logic/commands/ExitCommandTest.java b/src/test/java/seedu/address/logic/commands/ExitCommandTest.java index 39d4561d038..3801b68fd85 100644 --- a/src/test/java/seedu/address/logic/commands/ExitCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/ExitCommandTest.java @@ -16,7 +16,7 @@ public class ExitCommandTest { @Test public void execute_exit_success() { CommandResult expectedCommandResult = new CommandResult(MESSAGE_EXIT_ACKNOWLEDGEMENT, false, true, - DEFAULT, false, null); + DEFAULT, false, null, false); assertCommandSuccess(new ExitCommand(), model, expectedCommandResult, expectedModel); } } diff --git a/src/test/java/seedu/address/logic/commands/GetPersonCommandTest.java b/src/test/java/seedu/address/logic/commands/GetPersonCommandTest.java index 29414af8210..bace9b50840 100644 --- a/src/test/java/seedu/address/logic/commands/GetPersonCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/GetPersonCommandTest.java @@ -52,7 +52,7 @@ public void execute_validIndexUnfilteredList_success() { String expectedMessage = String.format(Messages.MESSAGE_PERSONS_LISTED_OVERVIEW, expectedModel.getFilteredPersonList().size()); CommandResult expectedCommandResult = - new CommandResult(expectedMessage, false, false, CONTACT_TAB, false, null); + new CommandResult(expectedMessage, false, false, CONTACT_TAB, false, null, false); assertCommandSuccess(getPersonCommand, model, expectedCommandResult, expectedModel); } @@ -85,7 +85,7 @@ public void execute_validIndexFilteredList_success() { String expectedMessage = String.format(Messages.MESSAGE_PERSONS_LISTED_OVERVIEW, expectedModel.getFilteredPersonList().size()); CommandResult expectedCommandResult = - new CommandResult(expectedMessage, false, false, CONTACT_TAB, false, null); + new CommandResult(expectedMessage, false, false, CONTACT_TAB, false, null, false); assertCommandSuccess(getPersonCommand, model, expectedCommandResult, expectedModel); } diff --git a/src/test/java/seedu/address/logic/commands/HelpCommandTest.java b/src/test/java/seedu/address/logic/commands/HelpCommandTest.java index 4358d29ca83..761453d457e 100644 --- a/src/test/java/seedu/address/logic/commands/HelpCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/HelpCommandTest.java @@ -16,7 +16,7 @@ public class HelpCommandTest { @Test public void execute_help_success() { CommandResult expectedCommandResult = new CommandResult(SHOWING_HELP_MESSAGE, true, false, - DEFAULT, false, null); + DEFAULT, false, null, false); assertCommandSuccess(new HelpCommand(), model, expectedCommandResult, expectedModel); } } From 0662695a60c6d9cf80e564f6ed0a160df4db06d8 Mon Sep 17 00:00:00 2001 From: Pragya Date: Thu, 31 Mar 2022 10:04:27 +0800 Subject: [PATCH 302/455] parameter changes --- src/main/java/seedu/address/ui/StrategyPanel.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/ui/StrategyPanel.java b/src/main/java/seedu/address/ui/StrategyPanel.java index 982848fdd6c..5159bf56e02 100644 --- a/src/main/java/seedu/address/ui/StrategyPanel.java +++ b/src/main/java/seedu/address/ui/StrategyPanel.java @@ -239,7 +239,7 @@ public void captureAndSaveStrategyPanel() { sp.setFill(Color.TRANSPARENT); //no edits to capture area - WritableImage image = strategyAnchorPane.snapshot(null, null); + WritableImage image = strategyAnchorPane.snapshot(sp, null); RenderedImage renderedImage = SwingFXUtils.fromFXImage(image, null); //Write the snapshot to the chosen file From 3056b76f846e110512302b525c5dd8805d4f9455 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Thu, 31 Mar 2022 13:35:34 +0800 Subject: [PATCH 303/455] Add the following use cases into DG: find-t, get-person; Add the following commands into UG: get-person --- docs/DeveloperGuide.md | 71 +++++++++++++++++++++++++++++++++++++++--- docs/UserGuide.md | 33 +++++++++++++------- 2 files changed, 88 insertions(+), 16 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index b728579445a..51ceeb10227 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -743,13 +743,13 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli * 1a. The task list is empty. - Use case resumes at step 2. + Use case ends. -* 1b. The index requested does not exist. +* 3a. The index requested does not exist. - * 1b1. Coach2K22 shows an error message. + * 3a1. Coach2K22 shows an error message. - Use case ends. + Use case resumes at step 2 **Use case: Clear all tasks from task list** @@ -831,7 +831,70 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli Use case resumes at step 2. +**Use case: Find tasks by name or tag** + +**MSS** + +1. User requests to view the list of tasks +2. Coach2K22 shows a list of filtered tasks + Use case ends. + +**Extensions** + +* 1a. The given name and tag keywords cannot be found in Coach2K22. + + * 1a1. Coach2K22 shows an empty list. + + Use case ends. + +* 1b. The keyword provided is not indicated by a prefix e.g. `n/` or `t/`. + + * 1b1. Coach2K22 shows an error message. + + Use case ends. + +* 1c. No keywords are provided after the `find` command. + + * 1c1. Coach2K22 shows an error message. + + Use case ends. + +* 1d. Missing keyword after a prefix is given e.g. `n/` or `t/`. + + * 1d1. Coach2K22 shows an error message. + + Use case ends. + +**Use case: Find persons tagged to a task** + +**MSS** + +1. User requests to view the list of tasks +2. Coach2K22 shows a list of tasks +3. User requests to find persons tagged to a specified task from the list +4. Coach2K22 shows a filtered list containing the specified persons + + Use case ends. + +**Extensions** + +* 1a. The task list is empty. + + Use case ends. + +* 3a. The index requested does not exist. + + * 3a1. Coach2K22 shows an error message. + + Use case resumes at step 2 + +* 3b. No persons are tagged to the specified task. + + * 3b1. Coach2K22 shows an empty contact list. + + Use case ends + **Use case: Load new background image for strategy tab** **MSS** diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 228598f7787..1cc7898e38f 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -269,7 +269,7 @@ Adds a task to our task list. Format: `add-t n/NAME d/DATE st/STARTTIME et/ENDTIME [t/TAG_NAME]…​ [c/PERSON_NAME]…​` Examples: -* `add-t n/Welcome Tea d/24-04-2022 st/09:00 et/12:00 t/Socials` +* `add-t n/Welcome Tea d/24-04-2022 st/09:00 et/12:00 t/Socials c/Alex Yeoh`

      @@ -382,6 +382,15 @@ Examples:
      +#### 2.2.9 Locating contacts tagged to a task : `get-person` + +Pull out the contact information of persons tagged to a task. + +Format: `get-person INDEX` + +Examples: +* `get-person 2` pulls out the contact information of persons tagged to the second task. + ### 2.3 Strategic Planning #### 2.3.1 Load new background image : `load-court` @@ -494,17 +503,17 @@ Format: `exit` ### 4.2 Task Management -| Action | Format, Examples | -|--------------|-----------------------------------------------------------------------------------| -| **List** | `list-p` | -| **Add** | (to be filled up by @pragya) | -| **Del** | (to be filled up by @pragya) | -| **Edit** | (to be filled up by @pragya) | -| **Clear** | `clear-t [d/DATE]`
      e.g., `clear-t 2022-10-10` | -| **Add Tag** | `tag-add-t INDEX TAG_NAME`
      e.g., `tag-add-t 1 important` | -| **Del Tag** | `tag-del-t INDEX TAG_NAME`
      e.g., `tag-del-t 1 important` | -| **Find** | `find-t [n/NAME]…​ [t/TAG]…​`
      e.g., `find-p n/Meeting n/Training t/team1 t/team2` | - +| Action | Format, Examples | +|---------------|-----------------------------------------------------------------------------------| +| **List** | `list-p` | +| **Add** | `add-t n/NAME d/DATE st/STARTTIME et/ENDTIME [t/TAG_NAME]…​ [c/PERSON_NAME]…​`
      e.g., `add-t n/Welcome Tea d/24-04-2022 st/09:00 et/12:00 t/Socials c/Alex Yeoh`| +| **Del** | `del-t INDEX`
      e.g., `del-p 1` | +| **Edit** | `edit-t INDEX [n/NAME] [d/DATE] [st/STARTTIME] [et/ENDTIME] [t/TAG_NAME]…​ [c/PERSON_NAME]…​`
      e.g., `edit-t 2 d/29-04-2022 et/10:00`| +| **Clear** | `clear-t [d/DATE]`
      e.g., `clear-t 2022-10-10` | +| **Add Tag** | `tag-add-t INDEX TAG_NAME`
      e.g., `tag-add-t 1 important` | +| **Del Tag** | `tag-del-t INDEX TAG_NAME`
      e.g., `tag-del-t 1 important` | +| **Find** | `find-t [n/NAME]…​ [t/TAG]…​`
      e.g., `find-p n/Meeting n/Training t/team1 t/team2` | +| **Get Person**| `get-person INDEX`
      e.g., `get-person 2` | ### 4.3 Strategic Planning From e128460161c56705903feb97e9650ae7b7ed551c Mon Sep 17 00:00:00 2001 From: simjunheng Date: Thu, 31 Mar 2022 13:44:44 +0800 Subject: [PATCH 304/455] Fix bug in UG command summary --- docs/UserGuide.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 1cc7898e38f..5b68e37b1b1 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -503,17 +503,17 @@ Format: `exit` ### 4.2 Task Management -| Action | Format, Examples | -|---------------|-----------------------------------------------------------------------------------| -| **List** | `list-p` | -| **Add** | `add-t n/NAME d/DATE st/STARTTIME et/ENDTIME [t/TAG_NAME]…​ [c/PERSON_NAME]…​`
      e.g., `add-t n/Welcome Tea d/24-04-2022 st/09:00 et/12:00 t/Socials c/Alex Yeoh`| -| **Del** | `del-t INDEX`
      e.g., `del-p 1` | -| **Edit** | `edit-t INDEX [n/NAME] [d/DATE] [st/STARTTIME] [et/ENDTIME] [t/TAG_NAME]…​ [c/PERSON_NAME]…​`
      e.g., `edit-t 2 d/29-04-2022 et/10:00`| -| **Clear** | `clear-t [d/DATE]`
      e.g., `clear-t 2022-10-10` | -| **Add Tag** | `tag-add-t INDEX TAG_NAME`
      e.g., `tag-add-t 1 important` | -| **Del Tag** | `tag-del-t INDEX TAG_NAME`
      e.g., `tag-del-t 1 important` | -| **Find** | `find-t [n/NAME]…​ [t/TAG]…​`
      e.g., `find-p n/Meeting n/Training t/team1 t/team2` | -| **Get Person**| `get-person INDEX`
      e.g., `get-person 2` | +| Action | Format, Examples | +|----------------|-----------------------------------------------------------------------------------| +| **List** | `list-p` | +| **Add** | `add-t n/NAME d/DATE st/STARTTIME et/ENDTIME [t/TAG_NAME]…​ [c/PERSON_NAME]…​`
      e.g., `add-t n/Welcome Tea d/24-04-2022 st/09:00 et/12:00 t/Socials c/Alex Yeoh`| +| **Del** | `del-t INDEX`
      e.g., `del-p 1` | +| **Edit** | `edit-t INDEX [n/NAME] [d/DATE] [st/STARTTIME] [et/ENDTIME] [t/TAG_NAME]…​ [c/PERSON_NAME]…​`
      e.g., `edit-t 2 d/29-04-2022 et/10:00`| +| **Clear** | `clear-t [d/DATE]`
      e.g., `clear-t 2022-10-10` | +| **Add Tag** | `tag-add-t INDEX TAG_NAME`
      e.g., `tag-add-t 1 important` | +| **Del Tag** | `tag-del-t INDEX TAG_NAME`
      e.g., `tag-del-t 1 important` | +| **Find** | `find-t [n/NAME]…​ [t/TAG]…​`
      e.g., `find-p n/Meeting n/Training t/team1 t/team2` | +| **Get Person** | `get-person INDEX`
      e.g., `get-person 2` | ### 4.3 Strategic Planning From d4630d1411bd5dba3bb57755ecb9560a5ebc8225 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Thu, 31 Mar 2022 13:50:19 +0800 Subject: [PATCH 305/455] Add small amendments to move-player command in UG and remove the clear-player command --- docs/UserGuide.md | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 5b68e37b1b1..15bb546f72e 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -429,23 +429,14 @@ Format: `del-player PLAYER_NAME` Examples: * `del-player Messi` removes the player named `Messi` from the strategy board. -#### 2.3.4 Clearing all players: `clear-player` - -Clear all players from the strategy board. - -Format: `clear-player` - -Examples: -* `clear-player` clears all players from the strategy board. - #### 2.3.5 Moving a player to a coordinate: `move` Move a player to a coordinate on the strategy board. -Format: `move PLAYER_NAME X_COORDINATE Y_COORDINATE` +Format: `move PLAYER_NAME x/X_COORDINATE y/Y_COORDINATE` Example: -* `move Messi 0 0` moves the player named `Messi` to the top left corner of the strategy board. +* `move Messi x/0 y/0` moves the player named `Messi` to the top left corner of the strategy board. #### 2.3.6 Export strategy board as image file: `export` @@ -522,8 +513,7 @@ Format: `exit` | **Load BG Image** | `load-court IMAGE_NAME`
      e.g., `load-court basketball` | | **Add** | `add-player PLAYER_NAME`
      e.g., `add-player Messi` | | **Del** | `del-player PLAYER_NAME`
      e.g., `del-player Messi` | -| **Clear** | `clear-player` | -| **Move** | `move PLAYER_NAME X_COORDINATE Y_COORDINATE`
      e.g., `move Messi 0 0` | +| **Move** | `move PLAYER_NAME x/X_COORDINATE y/Y_COORDINATE`
      e.g., `move Messi x/0 y/0` | | **Export** | `export` | From d3776c0716f4b5c3c4b50e3d0f880723bcf24cfd Mon Sep 17 00:00:00 2001 From: simjunheng Date: Thu, 31 Mar 2022 13:53:44 +0800 Subject: [PATCH 306/455] Edit numbering in UG --- docs/UserGuide.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 15bb546f72e..00041ffeab3 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -429,7 +429,7 @@ Format: `del-player PLAYER_NAME` Examples: * `del-player Messi` removes the player named `Messi` from the strategy board. -#### 2.3.5 Moving a player to a coordinate: `move` +#### 2.3.4 Moving a player to a coordinate: `move` Move a player to a coordinate on the strategy board. @@ -438,7 +438,7 @@ Format: `move PLAYER_NAME x/X_COORDINATE y/Y_COORDINATE` Example: * `move Messi x/0 y/0` moves the player named `Messi` to the top left corner of the strategy board. -#### 2.3.6 Export strategy board as image file: `export` +#### 2.3.5 Export strategy board as image file: `export` Exports current view of the strategy board as an image to the users local device. From 4be198704baf6d73a767bbe6b58854747b12e3d0 Mon Sep 17 00:00:00 2001 From: juayhee Date: Thu, 31 Mar 2022 17:23:56 +0800 Subject: [PATCH 307/455] Update UG with sort task by date details --- docs/UserGuide.md | 58 +++++++++++++++++++++++++++-------------------- 1 file changed, 33 insertions(+), 25 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index ae2bc457229..1a85c97dd62 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -382,6 +382,13 @@ Examples: * `find-t t/team1` * `find-t n/Meeting n/Training t/team1 t/team2` + +#### 2.2.9 Sorting tasks by date : `sort-date` + +Sort the tasklist by date, in order of the task whose deadline is earlier. + +Format: `sort-date` +
      **:information_source: Key things to take note of:**
      @@ -486,37 +493,38 @@ Format: `exit` ### 4.1 Contact Management -| Action | Format, Examples | -|------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **List** | `list-p` | +| Action | Format, Examples | +|------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **List** | `list-p` | | **Add** | `add-p n/NAME p/PHONE_NUMBER a/ADDRESS e/EMAIL [t/TAG_NAME]…​`
      e.g., `add-p n/Johnson p/83918273 a/Woodlands Avenue 4 e/johnson@gmail.com t/Hustlers` | -| **Del** | `del-p INDEX`
      e.g., `del-p 1` | +| **Del** | `del-p INDEX`
      e.g., `del-p 1` | | **Edit** | `edit-p INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [t/TAG_NAME]…​`
      e.g., `edit-p 1 p/98273712 e/johndoe@example.com` | -| **Clear** | `clear-p` | -| **Add Tag** | `tag-add-p INDEX TAG_NAME`
      e.g., `tag-add-p 1 Public Relations` | -| **Del Tag** | `tag-del-p INDEX TAG_NAME`
      e.g., `tag-del-p 1 Team` | +| **Clear** | `clear-p` | +| **Add Tag** | `tag-add-p INDEX TAG_NAME`
      e.g., `tag-add-p 1 Public Relations` | +| **Del Tag** | `tag-del-p INDEX TAG_NAME`
      e.g., `tag-del-p 1 Team` | | **Find** | `find-p [n/NAME]…​ [t/TAG]…​`
      e.g., `find-p n/Alex n/Charlotte t/team1 t/team2` | -| **Add Strength** | `strength-add INDEX STRENGTH_DESCRIPTION`
      e.g., `strength-add 1 Great stamina` | -| **Add Weakness** | `weakness-add INDEX WEAKNESS_DESCRIPTION`
      e.g., `weakness-add 1 Poor defensive abilities` | -| **Add Miscellaneous** | `misc-add INDEX NOTE_DESCRIPTION`
      e.g., `misc-add 1 Likes ice cream` | -| **Del Strength** | `strength-del INDEX STRENGTH_INDEX`
      e.g., `strength-del 1 1` | -| **Del Weakness** | `weakness-del INDEX WEAKNESS_INDEX`
      e.g., `weakness-del 1 1` | -| **Del Miscellaneous** | `misc-del INDEX NOTE_INDEX`
      e.g., `misc-del 1 1` | -| **Sort by Strengths** | `sort-strength` | -| **Sort by Weaknesses** | `sort-weakness` | +| **Add Strength** | `strength-add INDEX STRENGTH_DESCRIPTION`
      e.g., `strength-add 1 Great stamina` | +| **Add Weakness** | `weakness-add INDEX WEAKNESS_DESCRIPTION`
      e.g., `weakness-add 1 Poor defensive abilities` | +| **Add Miscellaneous** | `misc-add INDEX NOTE_DESCRIPTION`
      e.g., `misc-add 1 Likes ice cream` | +| **Del Strength** | `strength-del INDEX STRENGTH_INDEX`
      e.g., `strength-del 1 1` | +| **Del Weakness** | `weakness-del INDEX WEAKNESS_INDEX`
      e.g., `weakness-del 1 1` | +| **Del Miscellaneous** | `misc-del INDEX NOTE_INDEX`
      e.g., `misc-del 1 1` | +| **Sort by Strengths** | `sort-strength` | +| **Sort by Weaknesses** | `sort-weakness`
      | ### 4.2 Task Management -| Action | Format, Examples | -|--------------|-----------------------------------------------------------------------------------| -| **List** | `list-p` | -| **Add** | (to be filled up by @pragya) | -| **Del** | (to be filled up by @pragya) | -| **Edit** | (to be filled up by @pragya) | -| **Clear** | `clear-t [d/DATE]`
      e.g., `clear-t 2022-10-10` | -| **Add Tag** | `tag-add-t INDEX TAG_NAME`
      e.g., `tag-add-t 1 important` | -| **Del Tag** | `tag-del-t INDEX TAG_NAME`
      e.g., `tag-del-t 1 important` | -| **Find** | `find-t [n/NAME]…​ [t/TAG]…​`
      e.g., `find-p n/Meeting n/Training t/team1 t/team2` | +| Action | Format, Examples | +|------------------|---------------------------------------------------------------------------------------| +| **List** | `list-p` | +| **Add** | (to be filled up by @pragya) | +| **Del** | (to be filled up by @pragya) | +| **Edit** | (to be filled up by @pragya) | +| **Clear** | `clear-t [d/DATE]`
      e.g., `clear-t 2022-10-10` | +| **Add Tag** | `tag-add-t INDEX TAG_NAME`
      e.g., `tag-add-t 1 important` | +| **Del Tag** | `tag-del-t INDEX TAG_NAME`
      e.g., `tag-del-t 1 important` | +| **Find** | `find-t [n/NAME]…​ [t/TAG]…​`
      e.g., `find-p n/Meeting n/Training t/team1 t/team2` | +| **Sort by Date** | `sort-date` | ### 4.3 Strategic Planning From 99f2878740e5d123da79b2f28ba48d383ea115a4 Mon Sep 17 00:00:00 2001 From: juayhee Date: Thu, 31 Mar 2022 17:28:21 +0800 Subject: [PATCH 308/455] Update DG with sort tasks by date command --- docs/DeveloperGuide.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index ea49e8b7943..7bffb877d58 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -959,6 +959,13 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli Use case ends. +**Use case: Sort task list by date** + +**MSS** + +1. User requests to sort the task list by date. +2. Coach2k22 shows the updated task list, sorted with the tasks with the earliest deadline at the top. + ### 6.4 Non-Functional Requirements 1. Should work on any _mainstream OS_ as long as it has Java `11` or above installed. From 8d3ee9fcf2dd513a35ca3538e690073a25e1722d Mon Sep 17 00:00:00 2001 From: juayhee Date: Thu, 31 Mar 2022 17:37:49 +0800 Subject: [PATCH 309/455] Add DeleteTagFromTaskCommand.java --- .../DeleteTagFromTaskCommandTest.java | 92 +++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 src/test/java/seedu/address/logic/commands/DeleteTagFromTaskCommandTest.java diff --git a/src/test/java/seedu/address/logic/commands/DeleteTagFromTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/DeleteTagFromTaskCommandTest.java new file mode 100644 index 00000000000..616e31a6559 --- /dev/null +++ b/src/test/java/seedu/address/logic/commands/DeleteTagFromTaskCommandTest.java @@ -0,0 +1,92 @@ +package seedu.address.logic.commands; + +import static org.junit.jupiter.api.Assertions.assertTrue; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; +import static seedu.address.logic.commands.CommandTestUtil.showTaskAtIndex; +import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; +import static seedu.address.testutil.TypicalIndexes.TASK_FIRST_INDEX; +import static seedu.address.testutil.TypicalIndexes.TASK_SECOND_INDEX; +import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; + +import java.util.HashSet; +import java.util.Set; + +import org.junit.jupiter.api.Test; + +import seedu.address.commons.core.Messages; +import seedu.address.commons.core.index.Index; +import seedu.address.model.AddressBook; +import seedu.address.model.Model; +import seedu.address.model.ModelManager; +import seedu.address.model.StrategyBoard; +import seedu.address.model.TaskBook; +import seedu.address.model.UserPrefs; +import seedu.address.model.tag.Tag; +import seedu.address.model.task.Task; +import seedu.address.testutil.TaskBuilder; + +class DeleteTagFromTaskCommandTest { + // Test tags + // Because PersonBuilder#withTags takes String ... instead of Set + private static final String TAG1 = "colleagues"; + + // Test model + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); + + @Test + void execute_deleteTagCommandUnfilteredList_success() { + Task firstTask = model.getFilteredTaskList().get(TASK_FIRST_INDEX.getZeroBased()); + + // Adding 1 more tag to the firstTask + Set firstTaskTags = new HashSet<>(firstTask.getTags()); // Set copy of Meetings (first task) + firstTaskTags.remove(new Tag(TAG1)); + + // Convert Set to array for TaskBuilder#withTags + String[] firstTaskTagsStringArray = firstTaskTags + .stream() + .map(x -> x.tagName) + .toArray(String[]::new); + + // Manually building the edited task + Task editedTask = new TaskBuilder(firstTask).withTags(firstTaskTagsStringArray).build(); + + DeleteTagFromTaskCommand deleteTagFromTaskCommand = new DeleteTagFromTaskCommand(TASK_FIRST_INDEX, TAG1); + + String expectedMessage = String.format(deleteTagFromTaskCommand.MESSAGE_DEL_TAG_SUCCESS, TAG1); + + // Manually building the expected model + Model expectedModel = new ModelManager( + new AddressBook(model.getAddressBook()), + new TaskBook(model.getTaskBook()), + new StrategyBoard(), + new UserPrefs()); + expectedModel.setTask(firstTask, editedTask); + + assertCommandSuccess(deleteTagFromTaskCommand, model, expectedMessage, expectedModel); + + } + + @Test + public void execute_invalidTagIndexFilteredList_failure() { + showTaskAtIndex(model, TASK_FIRST_INDEX); + Index outOfBoundIndex = TASK_SECOND_INDEX; + // ensures that outOfBoundIndex is still in bounds of address book list + assertTrue(outOfBoundIndex.getZeroBased() < model.getTaskBook().getTaskList().size()); + + AddTagToTaskCommand addTagToTaskCommand = new AddTagToTaskCommand(outOfBoundIndex, TAG1); + + assertCommandFailure(addTagToTaskCommand, model, Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX); + } + + @Test + public void equals() { + final AddTagToTaskCommand command = new AddTagToTaskCommand(INDEX_FIRST_PERSON, TAG1); + + // If they are the same objects, they are equal + assertTrue(command.equals(command)); + + } +} From 59803f50fdc99e1adc2b599af97508e73d9f9b3a Mon Sep 17 00:00:00 2001 From: juayhee Date: Thu, 31 Mar 2022 17:39:41 +0800 Subject: [PATCH 310/455] Add test for DeleteTagFromTaskCommandParser --- .../DeleteTagFromTaskCommandParserTest.java | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/test/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParserTest.java diff --git a/src/test/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParserTest.java b/src/test/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParserTest.java new file mode 100644 index 00000000000..4f53b1da820 --- /dev/null +++ b/src/test/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParserTest.java @@ -0,0 +1,31 @@ +package seedu.address.logic.parser; + +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; +import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; +import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; + +import org.junit.jupiter.api.Test; + +import seedu.address.logic.commands.AddTagToTaskCommand; +import seedu.address.logic.commands.DeleteTagFromTaskCommand; + +class DeleteTagFromTaskCommandParserTest { + + private static final String TAG1 = "TAG1"; + private DeleteTagFromTaskCommandParser parser = new DeleteTagFromTaskCommandParser(); + + + @Test + void parse_validArgs_returnsDeleteTagFromTasksCommand() { + DeleteTagFromTaskCommand expectedDeleteTagFromTaskCommand = new DeleteTagFromTaskCommand(INDEX_FIRST_PERSON, TAG1); + assertParseSuccess(parser, " 1 TAG1", expectedDeleteTagFromTaskCommand); + } + + @Test + void parse_invalidArgs_throwsParseException() { + assertParseFailure(parser, + " 1 t/important", // Tags can only be alphanumeric + String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteTagFromTaskCommand.MESSAGE_USAGE)); + } +} From 8aa7fc1e8c145ec4e308e1a879505cf24c17ad30 Mon Sep 17 00:00:00 2001 From: juayhee Date: Thu, 31 Mar 2022 17:59:10 +0800 Subject: [PATCH 311/455] Add tests for SortTaskByDateCommand --- .../commands/SortTaskByDateCommandTest.java | 100 ++++++++++++++++++ .../seedu/address/testutil/TypicalTasks.java | 3 + 2 files changed, 103 insertions(+) create mode 100644 src/test/java/seedu/address/logic/commands/SortTaskByDateCommandTest.java diff --git a/src/test/java/seedu/address/logic/commands/SortTaskByDateCommandTest.java b/src/test/java/seedu/address/logic/commands/SortTaskByDateCommandTest.java new file mode 100644 index 00000000000..aa9c2e2945c --- /dev/null +++ b/src/test/java/seedu/address/logic/commands/SortTaskByDateCommandTest.java @@ -0,0 +1,100 @@ +package seedu.address.logic.commands; + +import static org.junit.jupiter.api.Assertions.assertTrue; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; +import static seedu.address.logic.commands.CommandTestUtil.showPersonAtIndex; +import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; +import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_PERSON; +import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static seedu.address.testutil.TypicalTasks.EIGHTH_TASK; +import static seedu.address.testutil.TypicalTasks.FIRST_TASK; +import static seedu.address.testutil.TypicalTasks.NINTH_TASK; +import static seedu.address.testutil.TypicalTasks.SECOND_TASK; +import static seedu.address.testutil.TypicalTasks.THIRD_TASK; +import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; + +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +import org.junit.jupiter.api.Test; + +import seedu.address.commons.core.Messages; +import seedu.address.commons.core.index.Index; +import seedu.address.model.AddressBook; +import seedu.address.model.Model; +import seedu.address.model.ModelManager; +import seedu.address.model.StrategyBoard; +import seedu.address.model.TaskBook; +import seedu.address.model.UserPrefs; +import seedu.address.model.person.Person; +import seedu.address.model.tag.Tag; +import seedu.address.testutil.PersonBuilder; + +class SortTaskByDateCommandTest { + + // Test model + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); + + @Test + void execute_sortTaskByDate_success() { + + SortTaskByDateCommand sortTaskByDateCommand = new SortTaskByDateCommand(); + + String expectedMessage = String.format(SortTaskByDateCommand.MESSAGE_SORT_TASKS_SUCCESS); + + // Creating expected TaskBook + TaskBook expectedTaskBook = new TaskBook(); + expectedTaskBook.setTasks(Arrays.asList(SECOND_TASK, THIRD_TASK, FIRST_TASK)); + + Model expectedModel = new ModelManager( + new AddressBook(model.getAddressBook()), + new TaskBook(model.getTaskBook()), + new StrategyBoard(), + new UserPrefs()); + expectedModel.setTaskBook(expectedTaskBook); + + assertCommandSuccess(sortTaskByDateCommand, model, expectedMessage, expectedModel); + } + + @Test + public void execute_sortTaskByDateWithSameDay_success() { + + SortTaskByDateCommand sortTaskByDateCommand = new SortTaskByDateCommand(); + + String expectedMessage = String.format(SortTaskByDateCommand.MESSAGE_SORT_TASKS_SUCCESS); + + // Test taskbook + TaskBook testTaskBook = new TaskBook(); + testTaskBook.setTasks(Arrays.asList(EIGHTH_TASK, NINTH_TASK)); + + TaskBook expectedTaskBook = new TaskBook(); + expectedTaskBook.setTasks(Arrays.asList(NINTH_TASK, EIGHTH_TASK)); + + // Test model + Model model = new ModelManager(getTypicalAddressBook(), testTaskBook, + new StrategyBoard(), new UserPrefs()); + + // Expected model + Model expectedModel = new ModelManager( + new AddressBook(model.getAddressBook()), + new TaskBook(model.getTaskBook()), + new StrategyBoard(), + new UserPrefs()); + expectedModel.setTaskBook(expectedTaskBook); + + assertCommandSuccess(sortTaskByDateCommand, model, expectedMessage, expectedModel); + + } + + @Test + public void equals() { + final SortTaskByDateCommand command = new SortTaskByDateCommand(); + + // If they are the same objects, they are equal + assertTrue(command.equals(command)); + + } +} diff --git a/src/test/java/seedu/address/testutil/TypicalTasks.java b/src/test/java/seedu/address/testutil/TypicalTasks.java index a89c5c488d8..9963c04ba25 100644 --- a/src/test/java/seedu/address/testutil/TypicalTasks.java +++ b/src/test/java/seedu/address/testutil/TypicalTasks.java @@ -51,6 +51,9 @@ public class TypicalTasks { public static final Task EIGHTH_TASK = new TaskBuilder().withName("Training3").withDate("03-03-2000") .withStartTime("14:30").withEndTime("16:00") .withTags("team1").build(); + public static final Task NINTH_TASK = new TaskBuilder().withName("Training4").withDate("03-03-2000") + .withStartTime("13:30").withEndTime("16:00") + .withTags("team1").build(); // Manually added - Task details found in {@code CommandTestUtil} public static final Task TASK1 = new TaskBuilder().withName(VALID_NAME_TASK1).withDate(VALID_DATE_TASK1) From db6a784ded5a7b7b2530979a5f813b51971883f9 Mon Sep 17 00:00:00 2001 From: juayhee Date: Thu, 31 Mar 2022 18:18:06 +0800 Subject: [PATCH 312/455] Fix checkstyle --- .../logic/commands/SortTaskByDateCommandTest.java | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/src/test/java/seedu/address/logic/commands/SortTaskByDateCommandTest.java b/src/test/java/seedu/address/logic/commands/SortTaskByDateCommandTest.java index aa9c2e2945c..38a1e6be99c 100644 --- a/src/test/java/seedu/address/logic/commands/SortTaskByDateCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/SortTaskByDateCommandTest.java @@ -1,11 +1,7 @@ package seedu.address.logic.commands; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; -import static seedu.address.logic.commands.CommandTestUtil.showPersonAtIndex; -import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; -import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_PERSON; import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; import static seedu.address.testutil.TypicalTasks.EIGHTH_TASK; import static seedu.address.testutil.TypicalTasks.FIRST_TASK; @@ -15,22 +11,15 @@ import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; import java.util.Arrays; -import java.util.HashSet; -import java.util.Set; import org.junit.jupiter.api.Test; -import seedu.address.commons.core.Messages; -import seedu.address.commons.core.index.Index; import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ModelManager; import seedu.address.model.StrategyBoard; import seedu.address.model.TaskBook; import seedu.address.model.UserPrefs; -import seedu.address.model.person.Person; -import seedu.address.model.tag.Tag; -import seedu.address.testutil.PersonBuilder; class SortTaskByDateCommandTest { From 2edebf21a27a53365563d07662f54672d4582e33 Mon Sep 17 00:00:00 2001 From: juayhee Date: Thu, 31 Mar 2022 18:22:05 +0800 Subject: [PATCH 313/455] Fix checkstyle --- .../logic/parser/DeleteTagFromTaskCommandParserTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParserTest.java b/src/test/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParserTest.java index 4f53b1da820..df42db82d49 100644 --- a/src/test/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParserTest.java @@ -7,7 +7,6 @@ import org.junit.jupiter.api.Test; -import seedu.address.logic.commands.AddTagToTaskCommand; import seedu.address.logic.commands.DeleteTagFromTaskCommand; class DeleteTagFromTaskCommandParserTest { @@ -18,7 +17,8 @@ class DeleteTagFromTaskCommandParserTest { @Test void parse_validArgs_returnsDeleteTagFromTasksCommand() { - DeleteTagFromTaskCommand expectedDeleteTagFromTaskCommand = new DeleteTagFromTaskCommand(INDEX_FIRST_PERSON, TAG1); + DeleteTagFromTaskCommand expectedDeleteTagFromTaskCommand = + new DeleteTagFromTaskCommand(INDEX_FIRST_PERSON, TAG1); assertParseSuccess(parser, " 1 TAG1", expectedDeleteTagFromTaskCommand); } From be89901124c4aca72a968be78b162becf13915b0 Mon Sep 17 00:00:00 2001 From: juayhee Date: Thu, 31 Mar 2022 22:11:28 +0800 Subject: [PATCH 314/455] Add tests --- .../parser/DeleteTagFromTaskCommandParser.java | 3 ++- .../commands/DeleteTagFromTaskCommandTest.java | 17 +++++++++++++++-- .../DeleteTagFromTaskCommandParserTest.java | 12 ++++++++++++ 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/src/main/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParser.java b/src/main/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParser.java index f02f2f37439..4987adf9353 100644 --- a/src/main/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParser.java @@ -2,6 +2,7 @@ import static java.util.Objects.requireNonNull; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX; import java.util.ArrayList; @@ -45,7 +46,7 @@ public DeleteTagFromTaskCommand parse(String args) throws ParseException { try { tagName = values.get(2); } catch (IndexOutOfBoundsException e) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + throw new ParseException(String.format(MESSAGE_INVALID_TASK_DISPLAYED_INDEX, DeleteTagFromTaskCommand.MESSAGE_USAGE)); } try { diff --git a/src/test/java/seedu/address/logic/commands/DeleteTagFromTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/DeleteTagFromTaskCommandTest.java index 616e31a6559..d6d90903965 100644 --- a/src/test/java/seedu/address/logic/commands/DeleteTagFromTaskCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/DeleteTagFromTaskCommandTest.java @@ -76,17 +76,30 @@ public void execute_invalidTagIndexFilteredList_failure() { // ensures that outOfBoundIndex is still in bounds of address book list assertTrue(outOfBoundIndex.getZeroBased() < model.getTaskBook().getTaskList().size()); - AddTagToTaskCommand addTagToTaskCommand = new AddTagToTaskCommand(outOfBoundIndex, TAG1); + DeleteTagFromTaskCommand deleteTagFromTaskCommand = new DeleteTagFromTaskCommand(outOfBoundIndex, TAG1); + + assertCommandFailure(deleteTagFromTaskCommand, model, Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX); + } + + @Test + public void execute_invalidTagName_failure() { + String invalidTAG = ""; + + DeleteTagFromTaskCommand deleteTagFromTaskCommand = new DeleteTagFromTaskCommand(TASK_FIRST_INDEX, invalidTAG); + assertCommandFailure(deleteTagFromTaskCommand, model, Messages.MESSAGE_INVALID_TAG); - assertCommandFailure(addTagToTaskCommand, model, Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX); } @Test public void equals() { final AddTagToTaskCommand command = new AddTagToTaskCommand(INDEX_FIRST_PERSON, TAG1); + final AddTagToTaskCommand command2 = new AddTagToTaskCommand(INDEX_FIRST_PERSON, TAG1); // If they are the same objects, they are equal assertTrue(command.equals(command)); + // If they have the same index and tagName, they are equal (even though they are different objects) + assertTrue(command.equals(command2)); + } } diff --git a/src/test/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParserTest.java b/src/test/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParserTest.java index df42db82d49..11b8bb06329 100644 --- a/src/test/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParserTest.java @@ -1,6 +1,7 @@ package seedu.address.logic.parser; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX; import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; @@ -8,6 +9,7 @@ import org.junit.jupiter.api.Test; import seedu.address.logic.commands.DeleteTagFromTaskCommand; +import seedu.address.logic.parser.exceptions.ParseException; class DeleteTagFromTaskCommandParserTest { @@ -28,4 +30,14 @@ void parse_invalidArgs_throwsParseException() { " 1 t/important", // Tags can only be alphanumeric String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteTagFromTaskCommand.MESSAGE_USAGE)); } + + @Test + void parse_outOfBoundIndex_throwsCommandException() { + try{ + parser.parse(" 999 important"); + } catch (ParseException e) { + assert e.getMessage() == MESSAGE_INVALID_TASK_DISPLAYED_INDEX; + } + } + } From 84de3757baf2c57515724884e46bf5dbbca5f69d Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Fri, 1 Apr 2022 07:09:15 +0800 Subject: [PATCH 315/455] Update index.md and fix typo in README.md --- README.md | 2 +- docs/index.md | 18 ++++++++++++------ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 6c90f14b5f7..e2e95e5c58c 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ # Coach2K22 -* **Coach2K22** is a contact management appllication that helps busy sports coaches organise their overwhelming lists of contacts and messy weekly schedules. it also provides them with a platform to visualise defensive and offensive plays as the game unfolds.
      +* **Coach2K22** is a contact management application that helps busy sports coaches organise their overwhelming lists of contacts and messy weekly schedules. it also provides them with a platform to visualise defensive and offensive plays as the game unfolds.
      Example usages: * as a contact management utility for his players and relevant contacts diff --git a/docs/index.md b/docs/index.md index 7601dbaad0d..aaa2e4a25cf 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,17 +1,23 @@ --- layout: page -title: AddressBook Level-3 +title: Coach2K22 --- -[![CI Status](https://github.com/se-edu/addressbook-level3/workflows/Java%20CI/badge.svg)](https://github.com/se-edu/addressbook-level3/actions) -[![codecov](https://codecov.io/gh/se-edu/addressbook-level3/branch/master/graph/badge.svg)](https://codecov.io/gh/se-edu/addressbook-level3) +[![CI Status](https://github.com/AY2122S2-CS2103T-W14-2/tp/workflows/Java%20CI/badge.svg)](https://github.com/AY2122S2-CS2103T-W14-2/tp/actions) +[![codecov](https://codecov.io/gh/AY2122S2-CS2103T-W14-2/tp/branch/master/graph/badge.svg)](https://app.codecov.io/gh/AY2122S2-CS2103T-W14-2/tp) ![Ui](images/Ui.png) -**AddressBook is a desktop application for managing your contact details.** While it has a GUI, most of the user interactions happen using a CLI (Command Line Interface). +**Coach2K22 is a contact management application that helps busy sports coaches organise their overwhelming lists of contacts and messy weekly schedules. It also provides them with a platform to visualise defensive and offensive plays as the game unfolds.** While it has a GUI, most of the user interactions happen using a CLI (Command Line Interface). -* If you are interested in using AddressBook, head over to the [_Quick Start_ section of the **User Guide**](UserGuide.html#quick-start). -* If you are interested about developing AddressBook, the [**Developer Guide**](DeveloperGuide.html) is a good place to start. +Example usages: +* as a contact management utility for his players and relevant contacts +* as a visualiser for real-time play to aid decision making on the fly +* as an organisation tool for teams and organisations + +Guide: +* If you are interested in using Coach2K22, head over to the [_Quick Start_ section of the **User Guide**](UserGuide.html#quick-start). +* If you are interested about developing Coach2K22, the [**Developer Guide**](DeveloperGuide.html) is a good place to start. **Acknowledgements** From 2318e5541ab7e1bbfd3a83eea1b6c766cd7a5064 Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Fri, 1 Apr 2022 07:14:11 +0800 Subject: [PATCH 316/455] Update Ui.png --- docs/images/Ui.png | Bin 76099 -> 34291 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/Ui.png b/docs/images/Ui.png index 4c103c3b96cc2fa9b7e04e6da3b469f86d194f96..92e486690efb312f4d3a7c62b75c307965f01da0 100644 GIT binary patch literal 34291 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
      ECor2i{ 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 bK&sSFG}pe_sNw{wBzN?%t8?kk{@4E(3q{1y literal 76099 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 Date: Fri, 1 Apr 2022 07:17:04 +0800 Subject: [PATCH 317/455] Resize Ui.png --- docs/images/Ui.png | Bin 34291 -> 96926 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/Ui.png b/docs/images/Ui.png index 92e486690efb312f4d3a7c62b75c307965f01da0..fa33cf527a107582c9592a99ec7227eac8b26cb6 100644 GIT binary patch literal 96926 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 bK&sSFG}pe_sNw{wBzN?%t8?kk{@4E(3q{1y From cb77cf0dd0091e2e7a88d23e3ec1f946a3c355c6 Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Fri, 1 Apr 2022 07:23:20 +0800 Subject: [PATCH 318/455] Replace Ui.png to fix aspect ratio --- docs/images/Ui.png | Bin 96926 -> 99642 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/Ui.png b/docs/images/Ui.png index fa33cf527a107582c9592a99ec7227eac8b26cb6..2e8456639565765b8b1ac485aa5f1e0a761ae354 100644 GIT binary patch literal 99642 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 literal 96926 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 Date: Fri, 1 Apr 2022 07:28:09 +0800 Subject: [PATCH 319/455] Replace Ui.png to fix crop issue --- docs/images/Ui.png | Bin 99642 -> 98256 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/Ui.png b/docs/images/Ui.png index 2e8456639565765b8b1ac485aa5f1e0a761ae354..6e237ce466af6152e80bf0d17317c0498bfc1209 100644 GIT binary patch literal 98256 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≀q`e@O!J2Nwg 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 B~hZi!nw)k+r(5U0B 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 From 97d9665b234cf6a25bdec015022738077785e96f Mon Sep 17 00:00:00 2001 From: juayhee Date: Fri, 1 Apr 2022 19:38:39 +0800 Subject: [PATCH 320/455] Update docs/DeveloperGuide.md Co-authored-by: AAlghrairy <77106335+AAlghrairy@users.noreply.github.com> --- docs/DeveloperGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 7bffb877d58..88a06e9001a 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -965,7 +965,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli 1. User requests to sort the task list by date. 2. Coach2k22 shows the updated task list, sorted with the tasks with the earliest deadline at the top. - + Use case ends. ### 6.4 Non-Functional Requirements 1. Should work on any _mainstream OS_ as long as it has Java `11` or above installed. From b3f0b3b0b4245caf373b7311a0ae0eafc6708f38 Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Sat, 2 Apr 2022 09:45:37 +0800 Subject: [PATCH 321/455] Fix the special character in player name bug Add new constraints to player name and slightly change the parsing workflow of `AddPlayerCommand`. --- .../commands/strategy/AddPlayerCommand.java | 27 ++++++++----------- .../address/logic/parser/ParserUtil.java | 16 +++++++++++ .../strategy/AddPlayerCommandParser.java | 5 +++- .../seedu/address/model/strategy/Player.java | 14 ++++++++++ 4 files changed, 45 insertions(+), 17 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/strategy/AddPlayerCommand.java b/src/main/java/seedu/address/logic/commands/strategy/AddPlayerCommand.java index 0d34470ca0a..056d2fd5db1 100644 --- a/src/main/java/seedu/address/logic/commands/strategy/AddPlayerCommand.java +++ b/src/main/java/seedu/address/logic/commands/strategy/AddPlayerCommand.java @@ -1,7 +1,6 @@ package seedu.address.logic.commands.strategy; import static java.util.Objects.requireNonNull; -import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; import seedu.address.logic.commands.Command; @@ -19,7 +18,8 @@ public class AddPlayerCommand extends Command { public static final String MESSAGE_USAGE = COMMAND_WORD + ": Add a player in the strategy panel. " + "Parameters: " - + "PLAYER_NAME (must be non-empty and not more than 50 characters)\n" + + "PLAYER_NAME" + + "(must be non-empty, not more than 50 characters and does not contain \"/\")\n" + "Example: " + COMMAND_WORD + " " + "Lionel Messi"; @@ -30,31 +30,26 @@ public class AddPlayerCommand extends Command { public static final String MESSAGE_DUPLICATE_PLAYER = "This player already exists in the PlayerList"; - private final String playerName; + private final Player toAdd; /** - * @param playerName the name of the player to be added + * Creates an AddPlayerCommand to add the specified {@code Player}. */ - public AddPlayerCommand(String playerName) { - requireAllNonNull(playerName); - this.playerName = playerName; + public AddPlayerCommand(Player player) { + requireAllNonNull(player); + this.toAdd = player; } @Override public CommandResult execute(Model model) throws CommandException { - if (playerName.replace("/s", "").isEmpty()) { - throw new CommandException( - String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddPlayerCommand.MESSAGE_USAGE)); - } requireNonNull(model); - Player player = new Player(playerName); - if (model.hasPlayer(player)) { + if (model.hasPlayer(toAdd)) { throw new CommandException(MESSAGE_DUPLICATE_PLAYER); } - model.addPlayer(player); - return new CommandResult(String.format(MESSAGE_SUCCESS, playerName)); + model.addPlayer(toAdd); + return new CommandResult(String.format(MESSAGE_SUCCESS, toAdd.getName())); } @@ -62,6 +57,6 @@ public CommandResult execute(Model model) throws CommandException { public boolean equals(Object other) { return other == this // short circuit if same object || (other instanceof AddPlayerCommand // instanceof handles nulls - && (playerName.equals(((AddPlayerCommand) other).playerName))); + && (toAdd.equals(((AddPlayerCommand) other).toAdd))); } } diff --git a/src/main/java/seedu/address/logic/parser/ParserUtil.java b/src/main/java/seedu/address/logic/parser/ParserUtil.java index 3366c150bed..3c0fd878e0c 100644 --- a/src/main/java/seedu/address/logic/parser/ParserUtil.java +++ b/src/main/java/seedu/address/logic/parser/ParserUtil.java @@ -16,6 +16,7 @@ import seedu.address.model.person.Address; import seedu.address.model.person.Email; import seedu.address.model.person.Phone; +import seedu.address.model.strategy.Player; import seedu.address.model.tag.Tag; import seedu.address.model.task.Date; import seedu.address.model.task.EndTime; @@ -245,4 +246,19 @@ public static Note parseNote(String note) throws ParseException { } return new Note(trimmedNote); } + + /** + * Parses a {@code String playerName} into a {@code Player}. + * Leading and trailing whitespaces will be trimmed. + * + * @throws ParseException if the given {@code playerName} is invalid. + */ + public static Player paresPlayer(String playerName) throws ParseException { + requireNonNull(playerName); + String trimmedPlayerName = playerName.trim(); + if (!Player.isValidPlayer(trimmedPlayerName)) { + throw new ParseException(Player.MESSAGE_CONSTRAINTS); + } + return new Player(trimmedPlayerName); + } } diff --git a/src/main/java/seedu/address/logic/parser/strategy/AddPlayerCommandParser.java b/src/main/java/seedu/address/logic/parser/strategy/AddPlayerCommandParser.java index 16177ca7c38..88b214a59d6 100644 --- a/src/main/java/seedu/address/logic/parser/strategy/AddPlayerCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/strategy/AddPlayerCommandParser.java @@ -4,7 +4,9 @@ import seedu.address.logic.commands.strategy.AddPlayerCommand; import seedu.address.logic.parser.Parser; +import seedu.address.logic.parser.ParserUtil; import seedu.address.logic.parser.exceptions.ParseException; +import seedu.address.model.strategy.Player; /** * Parses input arguments and creates a new AddPlayerCommand object @@ -19,7 +21,8 @@ public class AddPlayerCommandParser implements Parser { public AddPlayerCommand parse(String args) throws ParseException { try { String[] splitArgs = args.trim().split("\\s+", 1); - return new AddPlayerCommand(splitArgs[0]); + Player player = ParserUtil.paresPlayer(splitArgs[0]); + return new AddPlayerCommand(player); } catch (IndexOutOfBoundsException pe) { throw new ParseException( String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddPlayerCommand.MESSAGE_USAGE), pe); diff --git a/src/main/java/seedu/address/model/strategy/Player.java b/src/main/java/seedu/address/model/strategy/Player.java index 09ec88719c0..8438ea95818 100644 --- a/src/main/java/seedu/address/model/strategy/Player.java +++ b/src/main/java/seedu/address/model/strategy/Player.java @@ -1,10 +1,14 @@ package seedu.address.model.strategy; import static java.util.Objects.requireNonNull; +import static seedu.address.commons.util.AppUtil.checkArgument; import java.util.Objects; public class Player { + public static final String MESSAGE_CONSTRAINTS = "Player name cannot be empty" + + " and must be not more then 50 characters" + + " and must not contain \"/\". \n"; private static final int DEF_XCOORD = 50; private static final int DEF_YCOORD = 50; @@ -17,6 +21,7 @@ public class Player { */ public Player(String name) { requireNonNull(name); + checkArgument(isValidPlayer(name), MESSAGE_CONSTRAINTS); this.name = name; this.xCoord = DEF_XCOORD; this.yCoord = DEF_YCOORD; @@ -26,11 +31,20 @@ public Player(String name) { * Creates a new player with specified coordinates */ public Player(String name, int xCoord, int yCoord) { + requireNonNull(name); + checkArgument(isValidPlayer(name), MESSAGE_CONSTRAINTS); this.name = name; this.xCoord = xCoord; this.yCoord = yCoord; } + /** + * Returns true if the given player name is a valid player name. + */ + public static boolean isValidPlayer(String playerName) { + return !playerName.isEmpty() && playerName.length() <= 50 && !playerName.contains("/"); + } + //Getters public String getName() { return name; From 8e65e4344a06f7421a49a60e185909f0237bd274 Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Sat, 2 Apr 2022 10:30:13 +0800 Subject: [PATCH 322/455] Update the player name constraints to 24 character long --- .../address/logic/commands/strategy/AddPlayerCommand.java | 2 +- src/main/java/seedu/address/model/strategy/Player.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/strategy/AddPlayerCommand.java b/src/main/java/seedu/address/logic/commands/strategy/AddPlayerCommand.java index 056d2fd5db1..82e90645304 100644 --- a/src/main/java/seedu/address/logic/commands/strategy/AddPlayerCommand.java +++ b/src/main/java/seedu/address/logic/commands/strategy/AddPlayerCommand.java @@ -19,7 +19,7 @@ public class AddPlayerCommand extends Command { + ": Add a player in the strategy panel. " + "Parameters: " + "PLAYER_NAME" - + "(must be non-empty, not more than 50 characters and does not contain \"/\")\n" + + "(must be non-empty, not more than 24 characters and does not contain \"/\")\n" + "Example: " + COMMAND_WORD + " " + "Lionel Messi"; diff --git a/src/main/java/seedu/address/model/strategy/Player.java b/src/main/java/seedu/address/model/strategy/Player.java index 8438ea95818..f6e199cf71b 100644 --- a/src/main/java/seedu/address/model/strategy/Player.java +++ b/src/main/java/seedu/address/model/strategy/Player.java @@ -7,7 +7,7 @@ public class Player { public static final String MESSAGE_CONSTRAINTS = "Player name cannot be empty" - + " and must be not more then 50 characters" + + " and must be not more then 24 characters" + " and must not contain \"/\". \n"; private static final int DEF_XCOORD = 50; private static final int DEF_YCOORD = 50; @@ -42,7 +42,7 @@ public Player(String name, int xCoord, int yCoord) { * Returns true if the given player name is a valid player name. */ public static boolean isValidPlayer(String playerName) { - return !playerName.isEmpty() && playerName.length() <= 50 && !playerName.contains("/"); + return !playerName.isEmpty() && playerName.length() <= 24 && !playerName.contains("/"); } //Getters From 2a733d98ad0c2144102178a73cb450369dd80b3f Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Sat, 2 Apr 2022 10:50:24 +0800 Subject: [PATCH 323/455] Update the UG to reflect the player name constraints --- docs/UserGuide.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index ccf146be8c0..26ee0421457 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -438,12 +438,25 @@ Format: `add-player PLAYER_NAME` Examples: * `add-player Messi` adds a new player named `Messi` in the strategy board. + +
      + +**:information_source: Key things to take note of:**
      + +* `PLAYER_NAME` is case-sensitive e.g. `John Cena` will NOT match `john Cena`. +* `PLAYER_NAME` name can not be empty and its length must be less or equal to `24` characters. +* `PLAYER_NAME` must be unique and can NOT contain the character `/`. + +
      + #### 2.3.3 Removing players: `del-player` Remove a player from the strategy board. Format: `del-player PLAYER_NAME` +As mentioned above, the player name is case-sensitive. + Examples: * `del-player Messi` removes the player named `Messi` from the strategy board. @@ -453,6 +466,8 @@ Move a player to a coordinate on the strategy board. Format: `move PLAYER_NAME x/X_COORDINATE y/Y_COORDINATE` +As mentioned above, the player name is case-sensitive. + Example: * `move Messi x/0 y/0` moves the player named `Messi` to the top left corner of the strategy board. From acf0756cff8eff0ea75e41891f93b375ab3bc2f9 Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Sat, 2 Apr 2022 10:52:05 +0800 Subject: [PATCH 324/455] Fix a typo in UG --- docs/UserGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 26ee0421457..a4b32b75954 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -444,7 +444,7 @@ Examples: **:information_source: Key things to take note of:**
      * `PLAYER_NAME` is case-sensitive e.g. `John Cena` will NOT match `john Cena`. -* `PLAYER_NAME` name can not be empty and its length must be less or equal to `24` characters. +* `PLAYER_NAME` can not be empty and its length must be less or equal to `24` characters. * `PLAYER_NAME` must be unique and can NOT contain the character `/`.
      From dc2c8918cea2d0f271a52567e64488ca20ac8ced Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Wed, 6 Apr 2022 04:01:59 +0800 Subject: [PATCH 325/455] Modify documentation of note and index based commands and fix parser bug --- docs/UserGuide.md | 25 ++++++++++++++++++- .../parser/exceptions/ParseException.java | 2 +- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index a4b32b75954..9aa457578f0 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -172,6 +172,13 @@ Format: `strength-add INDEX STRENGTH_DESCRIPTION` Examples: * `strength-add 1 Great stamina` adds the strength "Great stamina" to the 1st person in the contact list. +**:information_source: Key things to take note of:**
      + +* Adds a strength at the specified `INDEX`. +* `INDEX` refers to the index number shown in the displayed person list. +* The provided `INDEX` must be a valid (must be an unsigned non-zero integer and exists in the list). +* The `STRENGTH_DESCRIPTION` must not be greater than 50 characters. + #### 2.1.10 Adding a weakness : `weakness-add` Add a weakness to a selected person from our contact list. @@ -181,6 +188,13 @@ Format: `weakness-add INDEX WEAKNESS_DESCRIPTION` Examples: * `weakness-add 1 Poor defensive abilities` adds the weakness "Poor defensive abilities" to the 1st person in the contact list. +**:information_source: Key things to take note of:**
      + +* Adds a weakness at the specified `INDEX`. +* `INDEX` refers to the index number shown in the displayed person list. +* The provided `INDEX` must be a valid (must be an unsigned non-zero integer and exists in the list). +* The `WEAKNESS_DESCRIPTION` must not be greater than 50 characters. + #### 2.1.11 Adding a miscellaneous note : `misc-add` Add a miscellaneous note to a selected person from our contact list. @@ -190,6 +204,12 @@ Format: `misc-add INDEX NOTE_DESCRIPTION` Examples: * `misc-add 1 Likes ice cream` adds the miscellaneous note "Likes ice cream" to the 1st person in the contact list. +**:information_source: Key things to take note of:**
      + +* Adds a miscellaneous note at the specified `INDEX`. +* `INDEX` refers to the index number shown in the displayed person list. +* The provided `INDEX` must be a valid (must be an unsigned non-zero integer and exists in the list). +* The `NOTE_DESCRIPTION` must not be greater than 50 characters. #### 2.1.12 Deleting a strength : `strength-del` @@ -208,6 +228,7 @@ Examples: * The index refers to the index number shown in the displayed person list. * The strength index refers to the index number shown in the strength list of the respective person. * Both indices **must be a positive integer** 1, 2, 3, …​ +* Both indices must be valid (existing in their respective lists). @@ -228,7 +249,8 @@ Examples: * Deletes the weakness at the specified `INDEX`. * The index refers to the index number shown in the displayed person list. * The weakness index refers to the index number shown in the weakness list of the respective person. -* Both indices **must be a positive integer** 1, 2, 3, …​ +* Both indices **must be a positive integer** 1, 2, 3, …​ +* Both indices must be valid (existing in their respective lists). @@ -250,6 +272,7 @@ Examples: * The index refers to the index number shown in the displayed person list. * The note index refers to the index number shown in the misc. list of the respective person. * Both indices **must be a positive integer** 1, 2, 3, …​ +* Both indices must be valid (existing in their respective lists) diff --git a/src/main/java/seedu/address/logic/parser/exceptions/ParseException.java b/src/main/java/seedu/address/logic/parser/exceptions/ParseException.java index 158a1a54c1c..690ad897828 100644 --- a/src/main/java/seedu/address/logic/parser/exceptions/ParseException.java +++ b/src/main/java/seedu/address/logic/parser/exceptions/ParseException.java @@ -12,6 +12,6 @@ public ParseException(String message) { } public ParseException(String message, Throwable cause) { - super(message, cause); + super(message + "\nCause: " + cause.getMessage(), cause); } } From 2e5727be72591ea564f680ab7710bb35e15409aa Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Wed, 6 Apr 2022 04:13:12 +0800 Subject: [PATCH 326/455] Revert "Modify documentation of note and index based commands and fix parser bug" This reverts commit dc2c8918cea2d0f271a52567e64488ca20ac8ced. --- docs/UserGuide.md | 25 +------------------ .../parser/exceptions/ParseException.java | 2 +- 2 files changed, 2 insertions(+), 25 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 9aa457578f0..a4b32b75954 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -172,13 +172,6 @@ Format: `strength-add INDEX STRENGTH_DESCRIPTION` Examples: * `strength-add 1 Great stamina` adds the strength "Great stamina" to the 1st person in the contact list. -**:information_source: Key things to take note of:**
      - -* Adds a strength at the specified `INDEX`. -* `INDEX` refers to the index number shown in the displayed person list. -* The provided `INDEX` must be a valid (must be an unsigned non-zero integer and exists in the list). -* The `STRENGTH_DESCRIPTION` must not be greater than 50 characters. - #### 2.1.10 Adding a weakness : `weakness-add` Add a weakness to a selected person from our contact list. @@ -188,13 +181,6 @@ Format: `weakness-add INDEX WEAKNESS_DESCRIPTION` Examples: * `weakness-add 1 Poor defensive abilities` adds the weakness "Poor defensive abilities" to the 1st person in the contact list. -**:information_source: Key things to take note of:**
      - -* Adds a weakness at the specified `INDEX`. -* `INDEX` refers to the index number shown in the displayed person list. -* The provided `INDEX` must be a valid (must be an unsigned non-zero integer and exists in the list). -* The `WEAKNESS_DESCRIPTION` must not be greater than 50 characters. - #### 2.1.11 Adding a miscellaneous note : `misc-add` Add a miscellaneous note to a selected person from our contact list. @@ -204,12 +190,6 @@ Format: `misc-add INDEX NOTE_DESCRIPTION` Examples: * `misc-add 1 Likes ice cream` adds the miscellaneous note "Likes ice cream" to the 1st person in the contact list. -**:information_source: Key things to take note of:**
      - -* Adds a miscellaneous note at the specified `INDEX`. -* `INDEX` refers to the index number shown in the displayed person list. -* The provided `INDEX` must be a valid (must be an unsigned non-zero integer and exists in the list). -* The `NOTE_DESCRIPTION` must not be greater than 50 characters. #### 2.1.12 Deleting a strength : `strength-del` @@ -228,7 +208,6 @@ Examples: * The index refers to the index number shown in the displayed person list. * The strength index refers to the index number shown in the strength list of the respective person. * Both indices **must be a positive integer** 1, 2, 3, …​ -* Both indices must be valid (existing in their respective lists). @@ -249,8 +228,7 @@ Examples: * Deletes the weakness at the specified `INDEX`. * The index refers to the index number shown in the displayed person list. * The weakness index refers to the index number shown in the weakness list of the respective person. -* Both indices **must be a positive integer** 1, 2, 3, …​ -* Both indices must be valid (existing in their respective lists). +* Both indices **must be a positive integer** 1, 2, 3, …​ @@ -272,7 +250,6 @@ Examples: * The index refers to the index number shown in the displayed person list. * The note index refers to the index number shown in the misc. list of the respective person. * Both indices **must be a positive integer** 1, 2, 3, …​ -* Both indices must be valid (existing in their respective lists) diff --git a/src/main/java/seedu/address/logic/parser/exceptions/ParseException.java b/src/main/java/seedu/address/logic/parser/exceptions/ParseException.java index 690ad897828..158a1a54c1c 100644 --- a/src/main/java/seedu/address/logic/parser/exceptions/ParseException.java +++ b/src/main/java/seedu/address/logic/parser/exceptions/ParseException.java @@ -12,6 +12,6 @@ public ParseException(String message) { } public ParseException(String message, Throwable cause) { - super(message + "\nCause: " + cause.getMessage(), cause); + super(message, cause); } } From d8d256d725d6f2aab5ef67415ae00e5b59deccc4 Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Wed, 6 Apr 2022 04:14:25 +0800 Subject: [PATCH 327/455] Add clarifications for index and note related features for note commands --- docs/UserGuide.md | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index a4b32b75954..9aa457578f0 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -172,6 +172,13 @@ Format: `strength-add INDEX STRENGTH_DESCRIPTION` Examples: * `strength-add 1 Great stamina` adds the strength "Great stamina" to the 1st person in the contact list. +**:information_source: Key things to take note of:**
      + +* Adds a strength at the specified `INDEX`. +* `INDEX` refers to the index number shown in the displayed person list. +* The provided `INDEX` must be a valid (must be an unsigned non-zero integer and exists in the list). +* The `STRENGTH_DESCRIPTION` must not be greater than 50 characters. + #### 2.1.10 Adding a weakness : `weakness-add` Add a weakness to a selected person from our contact list. @@ -181,6 +188,13 @@ Format: `weakness-add INDEX WEAKNESS_DESCRIPTION` Examples: * `weakness-add 1 Poor defensive abilities` adds the weakness "Poor defensive abilities" to the 1st person in the contact list. +**:information_source: Key things to take note of:**
      + +* Adds a weakness at the specified `INDEX`. +* `INDEX` refers to the index number shown in the displayed person list. +* The provided `INDEX` must be a valid (must be an unsigned non-zero integer and exists in the list). +* The `WEAKNESS_DESCRIPTION` must not be greater than 50 characters. + #### 2.1.11 Adding a miscellaneous note : `misc-add` Add a miscellaneous note to a selected person from our contact list. @@ -190,6 +204,12 @@ Format: `misc-add INDEX NOTE_DESCRIPTION` Examples: * `misc-add 1 Likes ice cream` adds the miscellaneous note "Likes ice cream" to the 1st person in the contact list. +**:information_source: Key things to take note of:**
      + +* Adds a miscellaneous note at the specified `INDEX`. +* `INDEX` refers to the index number shown in the displayed person list. +* The provided `INDEX` must be a valid (must be an unsigned non-zero integer and exists in the list). +* The `NOTE_DESCRIPTION` must not be greater than 50 characters. #### 2.1.12 Deleting a strength : `strength-del` @@ -208,6 +228,7 @@ Examples: * The index refers to the index number shown in the displayed person list. * The strength index refers to the index number shown in the strength list of the respective person. * Both indices **must be a positive integer** 1, 2, 3, …​ +* Both indices must be valid (existing in their respective lists). @@ -228,7 +249,8 @@ Examples: * Deletes the weakness at the specified `INDEX`. * The index refers to the index number shown in the displayed person list. * The weakness index refers to the index number shown in the weakness list of the respective person. -* Both indices **must be a positive integer** 1, 2, 3, …​ +* Both indices **must be a positive integer** 1, 2, 3, …​ +* Both indices must be valid (existing in their respective lists). @@ -250,6 +272,7 @@ Examples: * The index refers to the index number shown in the displayed person list. * The note index refers to the index number shown in the misc. list of the respective person. * Both indices **must be a positive integer** 1, 2, 3, …​ +* Both indices must be valid (existing in their respective lists) From 9d9e29d9e7da72bc261a7c19351b4a6bde497c09 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 6 Apr 2022 11:13:05 +0800 Subject: [PATCH 328/455] Fix Documentation Bugs in UG --- docs/UserGuide.md | 92 ++++++++++++++++++++++++++++++----------------- 1 file changed, 59 insertions(+), 33 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index a4b32b75954..b5963848dba 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -28,13 +28,13 @@ Coach2K22 is a desktop app that helps busy sports coaches **organise their overw * **`list-p`** : Lists all contacts. - * **`add-p`**`n/John Doe p/98765432 e/johnd@example.com` : Adds a contact named `John Doe`. + * **`add-p`**`n/Johnson p/83918273 a/Woodlands Avenue 4 e/johnson@gmail.com t/Hustlers` : Adds a contact named `Johnson`. * **`del-p`**`3` : Deletes the 3rd contact shown in the current list. * **`exit`** : Exits the app. -1. Refer to the [Features](#features) below for details of each command. +1. Refer to the [Features](##2.features) below for details of each command. ### 1.2 User Guide Icons @@ -52,7 +52,7 @@ Coach2K22 is a desktop app that helps busy sports coaches **organise their overw **:information_source: Notes about the command format:**
      * Words in `UPPER_CASE` are the parameters to be supplied by the user.
      - e.g. in `add n/NAME`, `NAME` is a parameter which can be used as `add n/John Doe`. + e.g. in `add-p n/NAME`, `NAME` is a parameter which can be used as `add-p n/John Doe`. * Items in square brackets are optional.
      e.g `n/NAME [t/TAG]` can be used as `n/John Doe t/friend` or as `n/John Doe`. @@ -96,7 +96,7 @@ A person can have any number of tags (including 0) Delete a person from our contact list. -Format: `del INDEX` +Format: `del-p INDEX` Examples: * `del-p 1` deletes the first person in the contact list. @@ -121,11 +121,18 @@ Format: `clear-p` Add tags to a selected person from our contact list. -Format: `tag-add INDEX TAG_NAME` +Format: `tag-add-p INDEX TAG_NAME` Examples: -* `tag-add 1 Public Relations` adds the tag `Public Relations` to the first person in the contact list. +* `tag-add-p 1 public` adds the tag `public` to the first person in the contact list. +
      + +**:information_source: Key things to take note of:**
      + +* The tag name should not contain spaces and should be alphanumeric. + +
      #### 2.1.7 Deleting a tag : `tag-del-p` @@ -134,15 +141,23 @@ Add tags to a selected person from our contact list. Format: `tag-del-p INDEX TAG_NAME` Examples: -* `tag-del 1 Team` deletes the tag `Team` from the first person in the contact list. +* `tag-del 1 team` deletes the tag `team` from the first person in the contact list. + +
      + +**:information_source: Key things to take note of:**
      +* The tag name should not contain spaces and should be alphanumeric. +* The tag name is case-sensitive and must be an exact match for it to be recognised. + +
      #### 2.1.8 Locating persons by keyword : `find-p` Find persons matching any of the given keywords from our contact list. Users can choose to find by `NAME`(s), `TAG`(s), or both. -Format: `find [n/NAME]…​ [t/TAG]…​` +Format: `find-p [n/NAME]…​ [t/TAG]…​` Examples: * `find-p n/Alan t/team1` @@ -159,6 +174,7 @@ Examples: * The order of the keywords does not matter e.g. `n/hans n/bo` will return the same result as `n/bo n/hans`. * Only full words will be matched e.g. `Han` will not match `Hans`. * Persons matching at least one keyword will be returned e.g. `n/Hans n/Bo` will return the persons `Hans Gruber` and `Bo Yang`. +* Keywords should not contain spaces and should be alphanumeric. @@ -332,14 +348,14 @@ Clear all tasks or tasks on a selected date from our task list. Format: `clear-t [d/DATE]` Examples: -* `clear-t 2022-10-10` clears all tasks on the date given. +* `clear-t 10-10-2022` clears all tasks on the date given.
      **:information_source: Key things to take note of:**
      * Clears all tasks on the specified `DATE`. -* Date must be in the format `yyyy-mm-dd`. +* Date must be in the format `dd-mm-yyyy`.
      @@ -352,6 +368,13 @@ Format: `tag-add-t INDEX TAG_NAME` Examples: * `tag-add-t 1 important` adds the tag "important" to the first task in the list. +
      + +**:information_source: Key things to take note of:**
      + +* The tag name should not contain spaces and should be alphanumeric. + +
      #### 2.2.7 Deleting a tag : `tag-del-t` @@ -360,13 +383,15 @@ Delete a tag from a selected task in our task list. Format: `tag-del-t INDEX TAG_NAME` Examples: -* `tag-add-t 1 important` removes the tag "important" from the first task in the list. +* `tag-del-t 1 important` removes the tag "important" from the first task in the list.
      **:information_source: Key things to take note of:**
      -* `TAG` must be an exact match for it to be recognised. +* The tag name should not contain spaces and should be alphanumeric. +* The tag name is case-sensitive and must be an exact match for it to be recognised. +
      #### 2.2.8 Locating tasks by keyword : `find-t` @@ -391,6 +416,7 @@ Examples: * The order of the keywords does not matter e.g. `n/meeting n/shareholder` will return the same result as `n/shareholder n/meeting`. * Only full words will be matched e.g. `Meeting` will not match `Meetings`. * Tasks matching at least one keyword will be returned e.g. `n/Meeting n/Shareholders` will return the persons `Engagement with Shareholders` and `Annual Meeting`. +* Keywords should not contain spaces and should be alphanumeric. @@ -507,24 +533,24 @@ Format: `exit` ### 4.1 Contact Management -| Action | Format, Examples | -|------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **List** | `list-p` | -| **Add** | `add-p n/NAME p/PHONE_NUMBER a/ADDRESS e/EMAIL [t/TAG_NAME]…​`
      e.g., `add-p n/Johnson p/83918273 a/Woodlands Avenue 4 e/johnson@gmail.com t/Hustlers` | -| **Del** | `del-p INDEX`
      e.g., `del-p 1` | -| **Edit** | `edit-p INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [t/TAG_NAME]…​`
      e.g., `edit-p 1 p/98273712 e/johndoe@example.com` | -| **Clear** | `clear-p` | -| **Add Tag** | `tag-add-p INDEX TAG_NAME`
      e.g., `tag-add-p 1 Public Relations` | -| **Del Tag** | `tag-del-p INDEX TAG_NAME`
      e.g., `tag-del-p 1 Team` | -| **Find** | `find-p [n/NAME]…​ [t/TAG]…​`
      e.g., `find-p n/Alex n/Charlotte t/team1 t/team2` | -| **Add Strength** | `strength-add INDEX STRENGTH_DESCRIPTION`
      e.g., `strength-add 1 Great stamina` | -| **Add Weakness** | `weakness-add INDEX WEAKNESS_DESCRIPTION`
      e.g., `weakness-add 1 Poor defensive abilities` | -| **Add Miscellaneous** | `misc-add INDEX NOTE_DESCRIPTION`
      e.g., `misc-add 1 Likes ice cream` | -| **Del Strength** | `strength-del INDEX STRENGTH_INDEX`
      e.g., `strength-del 1 1` | -| **Del Weakness** | `weakness-del INDEX WEAKNESS_INDEX`
      e.g., `weakness-del 1 1` | -| **Del Miscellaneous** | `misc-del INDEX NOTE_INDEX`
      e.g., `misc-del 1 1` | -| **Sort by Strengths** | `sort-strength` | -| **Sort by Weaknesses** | `sort-weakness`
      | +| Action | Format, Examples | +|--------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **List** | `list-p` | +| **Add** | `add-p n/NAME p/PHONE_NUMBER a/ADDRESS e/EMAIL [t/TAG_NAME]…​`
      e.g., `add-p n/Johnson p/83918273 a/Woodlands Avenue 4 e/johnson@gmail.com t/Hustlers` | +| **Delete** | `del-p INDEX`
      e.g., `del-p 1` | +| **Edit** | `edit-p INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [t/TAG_NAME]…​`
      e.g., `edit-p 1 p/98273712 e/johndoe@example.com` | +| **Clear** | `clear-p` | +| **Add Tag** | `tag-add-p INDEX TAG_NAME`
      e.g., `tag-add-p 1 public` | +| **Delete Tag** | `tag-del-p INDEX TAG_NAME`
      e.g., `tag-del-p 1 team` | +| **Find** | `find-p [n/NAME]…​ [t/TAG]…​`
      e.g., `find-p n/Alex n/Charlotte t/team1 t/team2` | +| **Add Strength** | `strength-add INDEX STRENGTH_DESCRIPTION`
      e.g., `strength-add 1 Great stamina` | +| **Add Weakness** | `weakness-add INDEX WEAKNESS_DESCRIPTION`
      e.g., `weakness-add 1 Poor defensive abilities` | +| **Add Miscellaneous** | `misc-add INDEX NOTE_DESCRIPTION`
      e.g., `misc-add 1 Likes ice cream` | +| **Delete Strength** | `strength-del INDEX STRENGTH_INDEX`
      e.g., `strength-del 1 1` | +| **Delete Weakness** | `weakness-del INDEX WEAKNESS_INDEX`
      e.g., `weakness-del 1 1` | +| **Delete Miscellaneous** | `misc-del INDEX NOTE_INDEX`
      e.g., `misc-del 1 1` | +| **Sort by Strengths** | `sort-strength` | +| **Sort by Weaknesses** | `sort-weakness`
      | ### 4.2 Task Management @@ -532,11 +558,11 @@ Format: `exit` |------------------|-----------------------------------------------------------------------------------| | **List** | `list-t` | | **Add** | `add-t n/NAME d/DATE st/STARTTIME et/ENDTIME [t/TAG_NAME]…​ [c/PERSON_NAME]…​`
      e.g., `add-t n/Welcome Tea d/24-04-2022 st/09:00 et/12:00 t/Socials c/Alex Yeoh`| -| **Del** | `del-t INDEX`
      e.g., `del-p 1` | +| **Delete** | `del-t INDEX`
      e.g., `del-p 1` | | **Edit** | `edit-t INDEX [n/NAME] [d/DATE] [st/STARTTIME] [et/ENDTIME] [t/TAG_NAME]…​ [c/PERSON_NAME]…​`
      e.g., `edit-t 2 d/29-04-2022 et/10:00`| | **Clear** | `clear-t [d/DATE]`
      e.g., `clear-t 2022-10-10` | | **Add Tag** | `tag-add-t INDEX TAG_NAME`
      e.g., `tag-add-t 1 important` | -| **Del Tag** | `tag-del-t INDEX TAG_NAME`
      e.g., `tag-del-t 1 important` | +| **Delete Tag** | `tag-del-t INDEX TAG_NAME`
      e.g., `tag-del-t 1 important` | | **Find** | `find-t [n/NAME]…​ [t/TAG]…​`
      e.g., `find-p n/Meeting n/Training t/team1 t/team2` | | **Get Person** | `get-person INDEX`
      e.g., `get-person 2` | | **Sort By Date** | `sort-date` | @@ -547,7 +573,7 @@ Format: `exit` |-------------------|-------------------------------------------------------------------------| | **Load BG Image** | `load-court IMAGE_NAME`
      e.g., `load-court basketball` | | **Add** | `add-player PLAYER_NAME`
      e.g., `add-player Messi` | -| **Del** | `del-player PLAYER_NAME`
      e.g., `del-player Messi` | +| **Delete** | `del-player PLAYER_NAME`
      e.g., `del-player Messi` | | **Move** | `move PLAYER_NAME x/X_COORDINATE y/Y_COORDINATE`
      e.g., `move Messi x/0 y/0` | | **Export** | `export` | From b4b577051808f30ec488e6c5c5529ef27465cfdb Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 6 Apr 2022 11:16:54 +0800 Subject: [PATCH 329/455] Fix broken hyperlink to features section --- docs/UserGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index b5963848dba..905f96b1673 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -34,7 +34,7 @@ Coach2K22 is a desktop app that helps busy sports coaches **organise their overw * **`exit`** : Exits the app. -1. Refer to the [Features](##2.features) below for details of each command. +1. Refer to the [Features](#2-features) below for details of each command. ### 1.2 User Guide Icons From 7760a844e96daa7c077fe2239be3b9bf218d2097 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 6 Apr 2022 11:27:01 +0800 Subject: [PATCH 330/455] Fix documentation bugs --- docs/UserGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 905f96b1673..3fc27f2e78a 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -348,7 +348,7 @@ Clear all tasks or tasks on a selected date from our task list. Format: `clear-t [d/DATE]` Examples: -* `clear-t 10-10-2022` clears all tasks on the date given. +* `clear-t d/10-10-2022` clears all tasks on the date given.
      From 18d4ce474b4b9b87805520a6122e84edf4893789 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 6 Apr 2022 12:05:44 +0800 Subject: [PATCH 331/455] Fix documentation bugs --- docs/UserGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 3fc27f2e78a..7f1c5d20a78 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -141,7 +141,7 @@ Add tags to a selected person from our contact list. Format: `tag-del-p INDEX TAG_NAME` Examples: -* `tag-del 1 team` deletes the tag `team` from the first person in the contact list. +* `tag-del-p 1 team` deletes the tag `team` from the first person in the contact list.
      From a7684c17ef395b489dbf2687e5ad7fdbf3710aa6 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 6 Apr 2022 16:41:25 +0800 Subject: [PATCH 332/455] Add "About the User Guide" section into UG --- docs/UserGuide.md | 186 +++++++++++++++++++++++++++------------------- 1 file changed, 108 insertions(+), 78 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 22c8e698901..9bde6a004f7 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -10,46 +10,56 @@ title: User Guide -------------------------------------------------------------------------------------------------------------------- ## **1. Introduction** -Coach2K22 is a desktop app that helps busy sports coaches **organise their overwhelming lists of contacts and messy weekly schedules.** It also provides them with a **platform to visualise defensive and offensive plays** as the game unfolds +Coach2K22 is a desktop app that helps busy sports coaches **organise their overwhelming lists of contacts and messy weekly schedules.** It also provides them with a **platform to visualise defensive and offensive plays** as the game unfolds. -### 1.1 Quick Start +This application is **optimized for use via a Command Line Interface** (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, Coach2K22 can get your administrative tasks done faster than traditional GUI apps. -1. Ensure you have Java `11` or above installed in your Computer. +-------------------------------------------------------------------------------------------------------------------- -1. Download the latest '.jar' file from [here](https://github.com/AY2122S2-CS2103T-W14-2/tp/releases). +## **2. About the User Guide** -1. Copy the file to the folder you want to use as the _home folder_ for your copy of Coach2k22. +### 2.1 Purpose +This User Guide provides an in-depth documentation of our product to help familarise you with Coach2K22. You can refer to [Structure](#22-structure) to find out what's included in this document. -1. Double-click the file to start the app. The GUI similar to the below should appear in a few seconds. Note how the app contains some sample data.
      - ![Ui](images/Ui.png) - -1. Type the command in the command box and press Enter to execute it. e.g. typing **`help`** and pressing Enter will list all the possible commands.
      - Some example commands you can try: +### 2.2 Structure +This User Guide consist of six sections: [Introduction](#1-introduction), [About the User Guide](#2-about-the-user-guide), [Quick Start](#3-quick-start), [Features](#4-features), [FAQ](#5-faq), and [Command Summary](#6-command-summary). - * **`list-p`** : Lists all contacts. +* The **Introduction** section provides a general overview of what our product does. - * **`add-p`**`n/Johnson p/83918273 a/Woodlands Avenue 4 e/johnson@gmail.com t/Hustlers` : Adds a contact named `Johnson`. +* The **About the User Guide** section introduces you to icons and unfamiliar terms used throughout this document. - * **`del-p`**`3` : Deletes the 3rd contact shown in the current list. +* The **Quick Start** section provides you with the basic information to set up and use our product properly. - * **`exit`** : Exits the app. +* The **Features** section provides you with step-by-step instructions for every product feature. -1. Refer to the [Features](#2-features) below for details of each command. +* The **FAQ** section provides you with the answer to commonly asked questions. -### 1.2 User Guide Icons +* The **Command Summary** section provides a summary to every feature's format and usage examples. -| Icon | Meaning | -|--------------------|---------------------------------------------------------------| -|:information_source:| This icon indicates important information to be taken note of | -|:bulb: | This icon indicates useful tips for the users | +A table of content is also provided at the start of this document to allow you to navigate to each section easily. --------------------------------------------------------------------------------------------------------------------- +### 2.3 User Guide Icons +The table below shows the icons used in this document with its associated meaning. -## **2. Features** +| Icon | Meaning | +|---------------------------------------------------------------------------|---------------------------------------------------------------| +|
      :information_source:
      | This icon indicates important information to be taken note of | +|
      :bulb:
      | This icon indicates useful tips for the users | -
      +### 2.4 Glossary +The table below describes the terms used in this document with its accompanying definitions. + +| Term | Definition | +|--------------------|------------------------------------------------------------------------------------------------| +|**GUI** | The *Graphical User Interface (GUI)* allows program interaction through graphics | +|**CLI** | The *Command Line Interface (CLI)* allows program interaction through commands | +|**Command** | An instruction to the program to perform a specific task or operation
      e.g., `list-p` | +|**Prefix** | An indicator used to mark the start of a *Parameter*
      e.g., `n/` `st/` | +|**Parameter** | A value supplied by the user in a command
      e.g., `NAME` `START_TIME` | +|**Command Format** | The *Command Format* describes the arrangement of the *Command*, *Prefix*, and *Parameter*
      e.g., `add-p n/NAME p/PHONE_NUMBER a/ADDRESS e/EMAIL` | -**:information_source: Notes about the command format:**
      +### 2.5 Notes about the Command Format +This subsection describes some noteworthy information about the command format that will be useful in guiding you through the [Features](#4-features) section. * Words in `UPPER_CASE` are the parameters to be supplied by the user.
      e.g. in `add-p n/NAME`, `NAME` is a parameter which can be used as `add-p n/John Doe`. @@ -69,17 +79,47 @@ Coach2K22 is a desktop app that helps busy sports coaches **organise their overw * Extraneous parameters for commands that do not take in parameters (such as `help`, `list`, `exit` and `clear`) will be ignored.
      e.g. if the command specifies `help 123`, it will be interpreted as `help`. -
      -### 2.1 Contact Management -#### 2.1.1 Listing all contacts : `list-p` +-------------------------------------------------------------------------------------------------------------------- + +## **3. Quick Start** + +1. Ensure you have Java `11` or above installed in your Computer. + +1. Download the latest `Coach2K22.jar` file from [here](https://github.com/AY2122S2-CS2103T-W14-2/tp/releases). + +1. Copy the file to the folder you want to use as the _home folder_ for your copy of Coach2K22. + +1. Double-click the file to start the app. The GUI similar to the below should appear in a few seconds. Note how the app contains some sample data.
      + ![Ui](images/Ui.png) + +1. Type the command in the command box and press Enter to execute it. e.g. typing **`help`** and pressing Enter will list all the possible commands.
      + Some example commands you can try: + + * **`list-p`** : Lists all contacts. + + * **`add-p`**`n/Johnson p/83918273 a/Woodlands Avenue 4 e/johnson@gmail.com t/Hustlers` : Adds a contact named `Johnson`. + + * **`del-p`**`3` : Deletes the 3rd contact shown in the current list. + + * **`exit`** : Exits the app. + +1. Refer to the [Features](#4-features) below for details of each command. + +-------------------------------------------------------------------------------------------------------------------- + +## **4. Features** + +### 4.1 Contact Management + +#### 4.1.1 Listing all contacts : `list-p` Shows a list of all persons in our contact list. Format: `list-p` -#### 2.1.2 Adding a person: `add-p` +#### 4.1.2 Adding a person: `add-p` Adds a person to our contact list. @@ -92,7 +132,7 @@ Examples: A person can have any number of tags (including 0)
      -#### 2.1.3 Deleting a person: `del-p` +#### 4.1.3 Deleting a person: `del-p` Delete a person from our contact list. @@ -101,7 +141,7 @@ Format: `del-p INDEX` Examples: * `del-p 1` deletes the first person in the contact list. -#### 2.1.4 Editing a person: `edit-p` +#### 4.1.4 Editing a person: `edit-p` Edit a person from our contact list. @@ -111,13 +151,13 @@ Examples: * `edit-p 1 p/98273712 e/johndoe@example.com` edits the phone number and email addresses of the 1st person into `98273712` and `johndoe@example.com` respectively. * `edit-p 2 n/Alan Walker t/` edits the name of the 2nd person and clear all existing tags. -#### 2.1.5 Clearing all contact entries: `clear-p` +#### 4.1.5 Clearing all contact entries: `clear-p` Clear all entries from our contact list. Format: `clear-p` -#### 2.1.6 Adding a tag : `tag-add-p` +#### 4.1.6 Adding a tag : `tag-add-p` Add tags to a selected person from our contact list. @@ -134,7 +174,7 @@ Examples:
      -#### 2.1.7 Deleting a tag : `tag-del-p` +#### 4.1.7 Deleting a tag : `tag-del-p` Add tags to a selected person from our contact list. @@ -152,7 +192,7 @@ Examples: -#### 2.1.8 Locating persons by keyword : `find-p` +#### 4.1.8 Locating persons by keyword : `find-p` Find persons matching any of the given keywords from our contact list. Users can choose to find by `NAME`(s), `TAG`(s), or both. @@ -179,7 +219,7 @@ Examples: -#### 2.1.9 Adding a strength : `strength-add` +#### 4.1.9 Adding a strength : `strength-add` Add a strength to a selected person from our contact list. @@ -195,7 +235,7 @@ Examples: * The provided `INDEX` must be a valid (must be an unsigned non-zero integer and exists in the list). * The `STRENGTH_DESCRIPTION` must not be greater than 50 characters. -#### 2.1.10 Adding a weakness : `weakness-add` +#### 4.1.10 Adding a weakness : `weakness-add` Add a weakness to a selected person from our contact list. @@ -211,7 +251,7 @@ Examples: * The provided `INDEX` must be a valid (must be an unsigned non-zero integer and exists in the list). * The `WEAKNESS_DESCRIPTION` must not be greater than 50 characters. -#### 2.1.11 Adding a miscellaneous note : `misc-add` +#### 4.1.11 Adding a miscellaneous note : `misc-add` Add a miscellaneous note to a selected person from our contact list. @@ -227,7 +267,7 @@ Examples: * The provided `INDEX` must be a valid (must be an unsigned non-zero integer and exists in the list). * The `NOTE_DESCRIPTION` must not be greater than 50 characters. -#### 2.1.12 Deleting a strength : `strength-del` +#### 4.1.12 Deleting a strength : `strength-del` Delete a strength from a selected person from our contact list. @@ -249,7 +289,7 @@ Examples: -#### 2.1.13 Deleting a weakness : `weakness-del` +#### 4.1.13 Deleting a weakness : `weakness-del` Delete the weakness from a selected person from our contact list. @@ -271,7 +311,7 @@ Examples: -#### 2.1.14 Deleting a miscellaneous note : `misc-del` +#### 4.1.14 Deleting a miscellaneous note : `misc-del` Delete the miscellaneous note from a selected person from our contact list. @@ -292,28 +332,28 @@ Examples: -#### 2.1.15 Sorting list of persons by strengths : `sort-strength` +#### 4.1.15 Sorting list of persons by strengths : `sort-strength` Sorts the list of persons by total strengths in descending order. Format: `sort-strength` -#### 2.1.16 Sorting list of persons by weaknesses : `sort-weakness` +#### 4.1.16 Sorting list of persons by weaknesses : `sort-weakness` Sorts the list of persons by total weaknesses in descending order. Format: `sort-weaknesses` -### 2.2 Task Management +### 4.2 Task Management -#### 2.2.1 Listing all tasks : `list-t` +#### 4.2.1 Listing all tasks : `list-t` Shows a list of all tasks in our task list. Format: `list-t` -#### 2.2.2 Adding a task: `add-t` +#### 4.2.2 Adding a task: `add-t` Adds a task to our task list. @@ -339,7 +379,7 @@ Examples: -#### 2.2.3 Deleting a task: `del-t` +#### 4.2.3 Deleting a task: `del-t` Delete a task from our task list. @@ -354,7 +394,7 @@ Examples: * The index can be obtained by referring to the indicated task index on the displayed task list. * Index values start from 1 and are always positive integers. -#### 2.2.4 Editing a task: `edit-t` +#### 4.2.4 Editing a task: `edit-t` Edit a task from our task list. @@ -364,7 +404,7 @@ Examples: * `edit-t 2 d/29-04-2022 et/10:00` edits the date and end time of the second task into `29-04-2022` and `10:00` respectively. * `edit-t 1 n/PR Event t/` edits the name of the first task to `PR Event` and clears all existing tags. -#### 2.2.5 Clear all task entries : `clear-t` +#### 4.2.5 Clear all task entries : `clear-t` Clear all tasks or tasks on a selected date from our task list. @@ -382,7 +422,7 @@ Examples: -#### 2.2.6 Adding a tag : `tag-add-t` +#### 4.2.6 Adding a tag : `tag-add-t` Add a tag to a selected task from our task list. @@ -399,7 +439,7 @@ Examples: -#### 2.2.7 Deleting a tag : `tag-del-t` +#### 4.2.7 Deleting a tag : `tag-del-t` Delete a tag from a selected task in our task list. @@ -417,7 +457,7 @@ Examples: -#### 2.2.8 Locating tasks by keyword : `find-t` +#### 4.2.8 Locating tasks by keyword : `find-t` Find tasks matching any of the given keywords from our task list. Users can choose to find by `NAME`(s), `TAG`(s), or both. @@ -443,7 +483,7 @@ Examples: -#### 2.2.9 Locating contacts tagged to a task : `get-person` +#### 4.2.9 Locating contacts tagged to a task : `get-person` Pull out the contact information of persons tagged to a task. @@ -452,15 +492,15 @@ Format: `get-person INDEX` Examples: * `get-person 2` pulls out the contact information of persons tagged to the second task. -#### 2.2.10 Sorting tasks by date : `sort-date` +#### 4.2.10 Sorting tasks by date : `sort-date` Sort the task list by date, in order of the task whose deadline is earlier. Format: `sort-date` -### 2.3 Strategic Planning +### 4.3 Strategic Planning -#### 2.3.1 Load new background image : `load-court` +#### 4.3.1 Load new background image : `load-court` Load a new background image in the strategy tab. @@ -478,7 +518,7 @@ Examples: -#### 2.3.2 Adding new players: `add-player` +#### 4.3.2 Adding new players: `add-player` Add a new player to the strategy board. @@ -498,7 +538,7 @@ Examples: -#### 2.3.3 Removing players: `del-player` +#### 4.3.3 Removing players: `del-player` Remove a player from the strategy board. @@ -509,7 +549,7 @@ As mentioned above, the player name is case-sensitive. Examples: * `del-player Messi` removes the player named `Messi` from the strategy board. -#### 2.3.4 Moving a player to a coordinate: `move` +#### 4.3.4 Moving a player to a coordinate: `move` Move a player to a coordinate on the strategy board. @@ -520,30 +560,29 @@ As mentioned above, the player name is case-sensitive. Example: * `move Messi x/0 y/0` moves the player named `Messi` to the top left corner of the strategy board. -#### 2.3.5 Export strategy board as image file: `export` +#### 4.3.5 Export strategy board as image file: `export` Exports current view of the strategy board as an image to the users local device. Format: `export` -### 2.4 General +### 4.4 General -#### 2.4.1 Viewing help: `help` +#### 4.4.1 Viewing help: `help` Shows a message explaining how to access the help page. Format: `help` -#### 2.4.2 Exiting the program : `exit` +#### 4.4.2 Exiting the program : `exit` Exits the program. Format: `exit` - -------------------------------------------------------------------------------------------------------------------- -## **3. FAQ** +## **5. FAQ** **Q**: How do I transfer my data to another Computer?
      **A**: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous Coach2k22 home folder. @@ -552,9 +591,9 @@ Format: `exit` **A**: These functions allow coach to judge players based on their respective strengths/weaknesses for improved judgement of abilities, analyzing their liabilities, and strategically choosing the right player for the right purpose. -------------------------------------------------------------------------------------------------------------------- -## **4. Command summary** +## **6. Command summary** -### 4.1 Contact Management +### 6.1 Contact Management | Action | Format, Examples | |--------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -575,7 +614,7 @@ Format: `exit` | **Sort by Strengths** | `sort-strength` | | **Sort by Weaknesses** | `sort-weakness`
      | -### 4.2 Task Management +### 6.2 Task Management | Action | Format, Examples | |------------------|-----------------------------------------------------------------------------------| @@ -590,7 +629,7 @@ Format: `exit` | **Get Person** | `get-person INDEX`
      e.g., `get-person 2` | | **Sort By Date** | `sort-date` | -### 4.3 Strategic Planning +### 6.3 Strategic Planning | Action | Format, Examples | |-------------------|-------------------------------------------------------------------------| @@ -601,19 +640,10 @@ Format: `exit` | **Export** | `export` | -### 4.4 General +### 6.4 General | Action | Format, Examples | |--------------|-------------------------| | **Help** | `help` | | **Exit** | `exit` | --------------------------------------------------------------------------------------------------------------------- - -## **5. Glossary** - -| Term | Definition | -|--------------------|----------------------------------------------------------------------------------| -|**GUI** | The *Graphical User Interface (GUI)* allows program interaction through graphics | -|**CLI** | The *Command Line Interface (CLI)* allows program interaction through commands | - From fcae4c9fb5037aeb08f5421771cdcc8af08f9279 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 6 Apr 2022 17:14:59 +0800 Subject: [PATCH 333/455] Fix UG bugs --- docs/UserGuide.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 9bde6a004f7..0f5ec735e89 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -228,6 +228,8 @@ Format: `strength-add INDEX STRENGTH_DESCRIPTION` Examples: * `strength-add 1 Great stamina` adds the strength "Great stamina" to the 1st person in the contact list. +
      + **:information_source: Key things to take note of:**
      * Adds a strength at the specified `INDEX`. @@ -235,6 +237,8 @@ Examples: * The provided `INDEX` must be a valid (must be an unsigned non-zero integer and exists in the list). * The `STRENGTH_DESCRIPTION` must not be greater than 50 characters. +
      + #### 4.1.10 Adding a weakness : `weakness-add` Add a weakness to a selected person from our contact list. @@ -244,6 +248,8 @@ Format: `weakness-add INDEX WEAKNESS_DESCRIPTION` Examples: * `weakness-add 1 Poor defensive abilities` adds the weakness "Poor defensive abilities" to the 1st person in the contact list. +
      + **:information_source: Key things to take note of:**
      * Adds a weakness at the specified `INDEX`. @@ -251,6 +257,8 @@ Examples: * The provided `INDEX` must be a valid (must be an unsigned non-zero integer and exists in the list). * The `WEAKNESS_DESCRIPTION` must not be greater than 50 characters. +
      + #### 4.1.11 Adding a miscellaneous note : `misc-add` Add a miscellaneous note to a selected person from our contact list. @@ -260,6 +268,8 @@ Format: `misc-add INDEX NOTE_DESCRIPTION` Examples: * `misc-add 1 Likes ice cream` adds the miscellaneous note "Likes ice cream" to the 1st person in the contact list. +
      + **:information_source: Key things to take note of:**
      * Adds a miscellaneous note at the specified `INDEX`. @@ -267,6 +277,8 @@ Examples: * The provided `INDEX` must be a valid (must be an unsigned non-zero integer and exists in the list). * The `NOTE_DESCRIPTION` must not be greater than 50 characters. +
      + #### 4.1.12 Deleting a strength : `strength-del` Delete a strength from a selected person from our contact list. From 5c8f9d3baf7b52eb8d86f7651e77bafbe916a0ad Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 6 Apr 2022 18:31:32 +0800 Subject: [PATCH 334/455] Update personal PPP --- docs/team/simjunheng.md | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/docs/team/simjunheng.md b/docs/team/simjunheng.md index 08fa0907089..040484e0bb9 100644 --- a/docs/team/simjunheng.md +++ b/docs/team/simjunheng.md @@ -8,14 +8,33 @@ schedules. It also provides them with a platform to visualise defensive and offe * **Code contributed**: [RepoSense link]( https://nus-cs2103-ay2122s2.github.io/tp-dashboard/?search=simjunheng&breakdown=true) * **Enhancement implemented** - * _to be added soon_ + * Implemented `find-p` command to find persons by tags and names (PR: [#24](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/24)) + * Implemented `find-t` command to find tasks by tags and names (PR: [#79](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/79)) + * Implemented `get-person` command to retrieve the contact information of persons tagged to a specific task (PR: [#100](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/100)) + * Added JavaFX Sliders to complement the `move` command (PR: [#106](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/106)) + * Partially implemented the `add-t` command to allow persons to be tagged to task (PR: [#76](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/76)) + * Implemented checks in the `clear-p`, `delete-p`, and `edit-p` commands to ensure that changes in the person list are also reflected in the task list (PR: [#76](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/76), [#97](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/97)) + * Added JavaFX Tab Panes to accommodate task list and strategies (PR: [#37](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/37)) * **Contributions to the UG** - * _to be added soon_ + * Added the documentation for the following features `find-p`, `find-t`, `get-person` (PR: [#86](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/86), [#139](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/139)) + * Added **About the User Guide** section to improve front matter of the user guide (PR: [#214](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/214)) + * Added section numberings throughout the user guide (PR: [#86](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/86)) * **Contributions to the DG** - * _to be added soon_ + * Added the following use cases: + * Find tasks by name or tag (PR: [#139](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/139)) + * Find persons by name or tag (PR: [#24](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/24) + * Find persons tagged to a task (PR: [#139](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/139)) + * Added the implementation and design consideration for **Find Persons** feature (PR: [#86](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/86)) * **Contributions to team-based tasks** - * _to be added soon_ + * Released JAR file for v1.2 and v1.3 + * Update collaborative project notes for v1.2 and v1.3 features demo + * Categorised PE-D issues with labels to make bug triage easier + * Enabled assertions in build.gradle * **Review/mentoring contributions** - * _to be added soon_ + * PR: [#65](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/65) + * PR: [#93](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/93) + * PR: [#96](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/96) + * PR: [#99](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/99) + * PR: [#137](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/137) * **Contributions beyond the project team** - * _to be added soon_ + * _to be added soon_ From c41af106636ea688dbfaf007f94db4eab94a1739 Mon Sep 17 00:00:00 2001 From: juayhee Date: Wed, 6 Apr 2022 20:19:58 +0800 Subject: [PATCH 335/455] Fix sort-date replacing all existing task date NOT current in the filtered view --- .../address/logic/commands/SortTaskByDateCommand.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/SortTaskByDateCommand.java b/src/main/java/seedu/address/logic/commands/SortTaskByDateCommand.java index 3a066cda4c9..4312b45d69c 100644 --- a/src/main/java/seedu/address/logic/commands/SortTaskByDateCommand.java +++ b/src/main/java/seedu/address/logic/commands/SortTaskByDateCommand.java @@ -29,8 +29,13 @@ public CommandResult execute(Model model) throws CommandException { requireNonNull(model); List lastShownList = new ArrayList<>(model.getFilteredTaskList()); List listSortedByDate = new ArrayList<>(sortTaskListByDate(lastShownList)); - clearAllTasksInModel(model); - addAllTasksToModel(model, listSortedByDate); + + int filteredListSize = lastShownList.size(); + for (int i = 0; i < filteredListSize; i++) { + model.deleteTask(lastShownList.get(i)); + model.addTask(lastShownList.get(i)); + } + return new CommandResult(String.format(MESSAGE_SORT_TASKS_SUCCESS)); } From 0e77dbb4119370ce82ceaa802f7ca412f022b1fd Mon Sep 17 00:00:00 2001 From: juayhee Date: Wed, 6 Apr 2022 20:26:35 +0800 Subject: [PATCH 336/455] Remove unnecessary lines of code --- .../logic/commands/SortTaskByDateCommand.java | 22 +------------------ 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/SortTaskByDateCommand.java b/src/main/java/seedu/address/logic/commands/SortTaskByDateCommand.java index 4312b45d69c..33bb9c88d9f 100644 --- a/src/main/java/seedu/address/logic/commands/SortTaskByDateCommand.java +++ b/src/main/java/seedu/address/logic/commands/SortTaskByDateCommand.java @@ -35,7 +35,7 @@ public CommandResult execute(Model model) throws CommandException { model.deleteTask(lastShownList.get(i)); model.addTask(lastShownList.get(i)); } - + return new CommandResult(String.format(MESSAGE_SORT_TASKS_SUCCESS)); } @@ -57,24 +57,4 @@ private List sortTaskListByDate(List oldList) { return oldList; } - - /** - * Removes all tasks displayed in the current model - * - * @model Current model object - */ - private void clearAllTasksInModel(Model model) { - model.setTaskBook(new TaskBook()); - } - - /** - * Add tasks to the model according to the given list - * - * @ - */ - private void addAllTasksToModel(Model model, List taskList) { - TaskBook t = new TaskBook(); - t.setTasks(taskList); - model.setTaskBook(t); - } } From 203ecd2decf4a39edd09bdc223f418114fd84bb8 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 6 Apr 2022 21:25:22 +0800 Subject: [PATCH 337/455] Fix incorrect error message --- .../logic/parser/FindCommandParser.java | 4 +-- .../logic/parser/FindTaskCommandParser.java | 4 +-- .../address/logic/parser/ParserUtil.java | 32 ++++++++++++++++++- 3 files changed, 35 insertions(+), 5 deletions(-) diff --git a/src/main/java/seedu/address/logic/parser/FindCommandParser.java b/src/main/java/seedu/address/logic/parser/FindCommandParser.java index 36b9b84b86d..23c5e2b055a 100644 --- a/src/main/java/seedu/address/logic/parser/FindCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/FindCommandParser.java @@ -38,12 +38,12 @@ public FindCommand parse(String args) throws ParseException { // checks if names are valid for (String name: nameKeywords) { - ParserUtil.parseName(name); + ParserUtil.parseNameKeyword(name); } // check if tags are valid for (String tag: tagKeywords) { - ParserUtil.parseTag(tag); + ParserUtil.parseTagKeyword(tag); } return new FindCommand(new PersonNameContainsKeywordsPredicate(nameKeywords), diff --git a/src/main/java/seedu/address/logic/parser/FindTaskCommandParser.java b/src/main/java/seedu/address/logic/parser/FindTaskCommandParser.java index 9bb62c3aa7d..f83037a3015 100644 --- a/src/main/java/seedu/address/logic/parser/FindTaskCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/FindTaskCommandParser.java @@ -38,12 +38,12 @@ public FindTaskCommand parse(String args) throws ParseException { // checks if names are valid for (String name: nameKeywords) { - ParserUtil.parseName(name); + ParserUtil.parseNameKeyword(name); } // check if tags are valid for (String tag: tagKeywords) { - ParserUtil.parseTag(tag); + ParserUtil.parseTagKeyword(tag); } return new FindTaskCommand(new TaskNameContainsKeywordsPredicate(nameKeywords), diff --git a/src/main/java/seedu/address/logic/parser/ParserUtil.java b/src/main/java/seedu/address/logic/parser/ParserUtil.java index 3c0fd878e0c..d29d320d86f 100644 --- a/src/main/java/seedu/address/logic/parser/ParserUtil.java +++ b/src/main/java/seedu/address/logic/parser/ParserUtil.java @@ -37,7 +37,7 @@ public class ParserUtil { public static final String MESSAGE_DIRECTORY_NOT_EXIST = "The " + Image.FILE_PATH + " directory does not exist!"; - + public static final String MESSAGE_INVALID_KEYWORD = "Keywords should be alphanumeric and should not be blank."; /** * Parses {@code oneBasedIndex} into an {@code Index} and returns it. Leading and trailing whitespaces will be * trimmed. @@ -100,6 +100,21 @@ public static Name parseName(String name) throws ParseException { return new Name(trimmedName); } + /** + * Parses a {@code String nameKeyword} into a {@code Name}. + * Leading and trailing whitespaces will be trimmed. + * + * @throws ParseException if the given {@code nameKeyword} is invalid or contain spaces. + */ + public static Name parseNameKeyword(String nameKeyword) throws ParseException { + requireNonNull(nameKeyword); + String trimmedName = nameKeyword.trim(); + if (!Name.isValidName(trimmedName) || trimmedName.split("\\s+").length != 1) { + throw new ParseException(MESSAGE_INVALID_KEYWORD); + } + return new Name(trimmedName); + } + /** * Parses {@code Collection names} into a {@code Set}. */ @@ -220,6 +235,21 @@ public static Tag parseTag(String tag) throws ParseException { return new Tag(trimmedTag); } + /** + * Parses a {@code String tagKeyword} into a {@code Tag}. + * Leading and trailing whitespaces will be trimmed. + * + * @throws ParseException if the given {@code tagKeyword} is invalid. + */ + public static Tag parseTagKeyword(String tagKeyword) throws ParseException { + requireNonNull(tagKeyword); + String trimmedTag = tagKeyword.trim(); + if (!Tag.isValidTagName(trimmedTag) || trimmedTag.split("\\s+").length != 1) { + throw new ParseException(MESSAGE_INVALID_KEYWORD); + } + return new Tag(trimmedTag); + } + /** * Parses {@code Collection tags} into a {@code Set}. */ From 0fccf372cd3ed5b667bb460a216318d3ce8feb79 Mon Sep 17 00:00:00 2001 From: juayhee Date: Wed, 6 Apr 2022 22:43:14 +0800 Subject: [PATCH 338/455] Fix unintended behaviour. sort-date now also retains the previous view generated by any filtering commands like find --- .../logic/commands/SortTaskByDateCommand.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/SortTaskByDateCommand.java b/src/main/java/seedu/address/logic/commands/SortTaskByDateCommand.java index 33bb9c88d9f..a711512fd68 100644 --- a/src/main/java/seedu/address/logic/commands/SortTaskByDateCommand.java +++ b/src/main/java/seedu/address/logic/commands/SortTaskByDateCommand.java @@ -7,6 +7,7 @@ import java.util.List; import seedu.address.logic.commands.exceptions.CommandException; +import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.TaskBook; import seedu.address.model.task.Task; @@ -27,15 +28,14 @@ public class SortTaskByDateCommand extends Command { @Override public CommandResult execute(Model model) throws CommandException { requireNonNull(model); - List lastShownList = new ArrayList<>(model.getFilteredTaskList()); - List listSortedByDate = new ArrayList<>(sortTaskListByDate(lastShownList)); + List lastShownTaskList = new ArrayList<>(model.getUnfilteredTaskList()); + List listSortedByDate = new ArrayList<>(sortTaskListByDate(lastShownTaskList)); + TaskBook newTaskBook = new TaskBook(); - int filteredListSize = lastShownList.size(); - for (int i = 0; i < filteredListSize; i++) { - model.deleteTask(lastShownList.get(i)); - model.addTask(lastShownList.get(i)); + for (Task t : listSortedByDate) { + newTaskBook.addTask(t); } - + model.setTaskBook(newTaskBook); return new CommandResult(String.format(MESSAGE_SORT_TASKS_SUCCESS)); } From e315b1791dfa0db2095b47589c76ef8a7474fe2f Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Thu, 7 Apr 2022 04:04:44 +0800 Subject: [PATCH 339/455] Fix case insensitive note bug and add additional test cases --- .../java/seedu/address/model/note/Note.java | 2 +- .../seedu/address/model/note/NoteTest.java | 34 ++++++++++++++++++- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/address/model/note/Note.java b/src/main/java/seedu/address/model/note/Note.java index 79f5c543d9b..ec0791b10a0 100644 --- a/src/main/java/seedu/address/model/note/Note.java +++ b/src/main/java/seedu/address/model/note/Note.java @@ -37,7 +37,7 @@ public static boolean isValidNote(String test) { public boolean equals(Object other) { return other == this // short circuit if same object || (other instanceof Note // instanceof handles nulls - && note.equals(((Note) other).note)); // state check + && note.equalsIgnoreCase(((Note) other).note)); // state check } @Override diff --git a/src/test/java/seedu/address/model/note/NoteTest.java b/src/test/java/seedu/address/model/note/NoteTest.java index 2e68c970e98..36a294f0443 100644 --- a/src/test/java/seedu/address/model/note/NoteTest.java +++ b/src/test/java/seedu/address/model/note/NoteTest.java @@ -1,5 +1,7 @@ package seedu.address.model.note; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import static seedu.address.testutil.Assert.assertThrows; import org.junit.jupiter.api.Test; @@ -26,7 +28,37 @@ public void constructor_invalidNote_throwsIllegalArgumentException() { @Test public void isValidNote() { - // null tag name + //null tag name assertThrows(NullPointerException.class, () -> Note.isValidNote(null)); + + //valid note + assertTrue(Note.isValidNote("note")); + + //over 50 characters + assertFalse(Note.isValidNote("ValidValidValidValidValidValidValidValidValidValidValid")); + } + + @Test + public void equals() { + Note note = new Note("something"); + Note differentNote = new Note("something else"); + + Note noteCopy = new Note("something"); + Note noteCaseInsensitiveCopy = new Note("SomEthiNg"); + + //same object reference + assertTrue(note.equals(note)); + + //same contents + assertTrue(note.equals(noteCopy)); + + //random capitals (equals is case sensitive + assertTrue(note.equals(noteCaseInsensitiveCopy)); + + //null + assertFalse(note.equals(null)); + + //different contents + assertFalse(note.equals(differentNote)); } } From 9da44116620c61d8f747ce144c9b51d7b36496ea Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Thu, 7 Apr 2022 08:49:42 +0800 Subject: [PATCH 340/455] Add additional review points to PPP --- docs/team/aalghrairy.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/team/aalghrairy.md b/docs/team/aalghrairy.md index 1edf9403dfb..61489c1380e 100644 --- a/docs/team/aalghrairy.md +++ b/docs/team/aalghrairy.md @@ -44,6 +44,8 @@ https://nus-cs2103-ay2122s2.github.io/tp-dashboard/?search=aalghrairy&breakdown= * Replaced references to `AddressBook` with `Coach2K22` in Developer Guide * Maintained some issues to be implemented by all team members * Maintained issue tracking for some individual tasks of respective team members + * Including ensuring milestones, assignees, and labels were properly selected + * Modifyed the Index.md file * **Review/mentoring contributions**: * [#20](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/20) * [#21](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/21) @@ -59,6 +61,10 @@ https://nus-cs2103-ay2122s2.github.io/tp-dashboard/?search=aalghrairy&breakdown= * [#106](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/106) * [#109](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/109) * [#124](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/124) + * [#140](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/140) + * [#142](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/142) + * [#143](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/143) + * [#212](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/212) * **Contributions beyond the project team:** * Evidence of helping others: * [#197](https://github.com/nus-cs2103-AY2122S2/forum/issues/197) From ea14040c498f6413baa3dd063878af8da9771f28 Mon Sep 17 00:00:00 2001 From: juayhee Date: Thu, 7 Apr 2022 15:59:49 +0800 Subject: [PATCH 341/455] Fix checkstyle --- .../address/logic/commands/DeleteTagFromTaskCommandTest.java | 4 ++-- .../logic/parser/DeleteTagFromTaskCommandParserTest.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/test/java/seedu/address/logic/commands/DeleteTagFromTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/DeleteTagFromTaskCommandTest.java index d6d90903965..3ea595f9e69 100644 --- a/src/test/java/seedu/address/logic/commands/DeleteTagFromTaskCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/DeleteTagFromTaskCommandTest.java @@ -83,9 +83,9 @@ public void execute_invalidTagIndexFilteredList_failure() { @Test public void execute_invalidTagName_failure() { - String invalidTAG = ""; + String invalidTag = ""; - DeleteTagFromTaskCommand deleteTagFromTaskCommand = new DeleteTagFromTaskCommand(TASK_FIRST_INDEX, invalidTAG); + DeleteTagFromTaskCommand deleteTagFromTaskCommand = new DeleteTagFromTaskCommand(TASK_FIRST_INDEX, invalidTag); assertCommandFailure(deleteTagFromTaskCommand, model, Messages.MESSAGE_INVALID_TAG); } diff --git a/src/test/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParserTest.java b/src/test/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParserTest.java index 11b8bb06329..eb5dc3809cf 100644 --- a/src/test/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParserTest.java @@ -33,7 +33,7 @@ void parse_invalidArgs_throwsParseException() { @Test void parse_outOfBoundIndex_throwsCommandException() { - try{ + try { parser.parse(" 999 important"); } catch (ParseException e) { assert e.getMessage() == MESSAGE_INVALID_TASK_DISPLAYED_INDEX; From e079b177cc7d9ebb561f5f72751f8375d6c8082e Mon Sep 17 00:00:00 2001 From: juayhee Date: Thu, 7 Apr 2022 16:28:28 +0800 Subject: [PATCH 342/455] Fix checkstyle --- .../seedu/address/logic/commands/SortTaskByDateCommand.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/SortTaskByDateCommand.java b/src/main/java/seedu/address/logic/commands/SortTaskByDateCommand.java index a711512fd68..7139a0a6f97 100644 --- a/src/main/java/seedu/address/logic/commands/SortTaskByDateCommand.java +++ b/src/main/java/seedu/address/logic/commands/SortTaskByDateCommand.java @@ -7,7 +7,6 @@ import java.util.List; import seedu.address.logic.commands.exceptions.CommandException; -import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.TaskBook; import seedu.address.model.task.Task; @@ -32,7 +31,7 @@ public CommandResult execute(Model model) throws CommandException { List listSortedByDate = new ArrayList<>(sortTaskListByDate(lastShownTaskList)); TaskBook newTaskBook = new TaskBook(); - for (Task t : listSortedByDate) { + for (Task t : listSortedByDate) { newTaskBook.addTask(t); } model.setTaskBook(newTaskBook); From 4c4685dce88bee656e68485515fc27ad3ab37df1 Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Thu, 7 Apr 2022 21:13:31 +0800 Subject: [PATCH 343/455] Update xiaoteng's PPP --- docs/team/rye-catcher.md | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/docs/team/rye-catcher.md b/docs/team/rye-catcher.md index a0acccd6703..028cdf53c97 100644 --- a/docs/team/rye-catcher.md +++ b/docs/team/rye-catcher.md @@ -8,14 +8,35 @@ schedules. It also provides them with a platform to visualise defensive and offe * **Code contributed**: [RepoSense link]( https://nus-cs2103-ay2122s2.github.io/tp-dashboard/?search=rye-catcher&breakdown=true&sort=groupTitle&sortWithin=title&since=2022-02-18&timeframe=commit&mergegroup=&groupSelect=groupByRepos&checkedFileTypes=docs~functional-code~test-code~other) * **Enhancement implemented** - * _to be added soon_ + * Implemented `add-player` command to add a new player to the strategy board (PR: [#85](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/85)) + * Implemented `del-player` command to delete a player from the strategy board (PR: [#85](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/85)) + * Implemented `move` command to move a player on the strategy board (PR: [#122](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/122)) + * Implemented drag and move features on the strategy board (PR: [#61](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/61)) + * Partially implemented note features to allow users to add notes to the contacts (PR: [#38](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/38)) * **Contributions to the UG** - * _to be added soon_ + * Added the documentation for the following features `add-player`, `del-player`, and `move` (PR: [#92](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/92)) * **Contributions to the DG** - * _to be added soon_ + * Added the following use cases to the documentation: + * Add a new player to the strategy board (PR: [#92](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/92)) + * Remove a player from the strategy board (PR: [#92](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/92)) + * Added the implementation and design consideration for **Add Players** feature (PR: [#92](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/92)) * **Contributions to team-based tasks** * _to be added soon_ * **Review/mentoring contributions** - * _to be added soon_ + * PR: [#16](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/16) + * PR: [#20](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/20) + * PR: [#21](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/21) + * PR: [#24](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/24) + * PR: [#48](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/48) + * PR: [#72](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/72) + * PR: [#83](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/83) + * PR: [#86](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/86) + * PR: [#91](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/91) + * PR: [#93](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/93) + * PR: [#94](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/94) + * PR: [#95](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/95) + * PR: [#96](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/96) + * PR: [#100](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/100) + * PR: [#115](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/115) * **Contributions beyond the project team** * _to be added soon_ From 5defa774cb36609b44a4c0c93525e04ec17a1564 Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Fri, 8 Apr 2022 01:19:37 +0800 Subject: [PATCH 344/455] Fix courts directory not generating and fix related documentation bugs --- courts/basketball.png | Bin 16476 -> 0 bytes courts/soccer.png | Bin 34181 -> 0 bytes docs/UserGuide.md | 4 +++- src/main/java/seedu/address/MainApp.java | 16 ++++++++++++++++ 4 files changed, 19 insertions(+), 1 deletion(-) delete mode 100644 courts/basketball.png delete mode 100644 courts/soccer.png diff --git a/courts/basketball.png b/courts/basketball.png deleted file mode 100644 index f3f53bfbddcfd1fc9f5a5c41e0c40a2e2a717d89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16476 zcmbVz1yo$ivgqJWaEIV91ed{Gf;$8!xRYQ>Ah;yByZhko5D4z>?t>>GNCH9rKyuDK z_uc#cTK~^lOtZVHt4q47dUy5QFWhecu;gXrWB@QQ09YMZ9RT2d84w6SMnptHL_kJD zLP9}7Mn%WNKu1GEC&s~jf=5pBl!BaujEs_&m4T9)nTCvvkr&9!&cV&i{gi=Un2%G4 zm5ZAb1_cEL9Sxlb1A~Z@ij0c$|M_#@1;9pziH1#sgP{h%V#B~;!`$}(IH7DlegJ=e zU=ZNpU=jax!~ES1fPsUBM?kz^0-(b|CBuTlf`aCsru_O0Z4uB+hXAm?2(XKc1)BK} zW8l>Y)HUVg2;|{)vVElk0rC&%0Dy3ttH)l6<=H{zG=a=Aw!XcBzP(x_hs-k0+-xtY z20@ylsr`zz14qI&^F09lt0>qo`s|u#5nH4G^W|ZD1^`I-mxND8 z$0x@HP$YU)0eAqdDg*#*s44<=iM_eqL8L(K9ME(?p87Ku6=Q4&@MUln3}b9C9kPSz ziCrS&uqpt682KhL-NohW)!V*jHmuKV=U5g$2zG=;w%gZcSID2pXxdzFIW}0937|-cP3& zr}bgteeu-s00hnX!TD)sH>)xoct8S<4q$%g*EFj!Dc3BsZ(vp2Ar_M^Kss=>Yjv5K zYHtAmfXU0q1Cy;$+!0Ln!una1;P~omYofh>g*msdHBGLWjgSqacO|g29nCodp9@uD zCu_o99`1VA=kX?FKnOFXW(`0ArS)TTgN`JI|D(+lQ_jx3<3uBBN$h`}Zp~$!CCyJ> zHuEY!{|Ew)ds_aw@JQi37b15_pM!iAq5t4{u-a{Zw7bxM6um8O4I^=2~WH z-H3bC^~{ZWP|O#_vd>4k2@>wc=Cvoh3bxwwK5upZ3OBB@CoIIzXGc+$<2NFrOAcEOMo!O@W{dN#Dk^i%u1WaU zRdzcC6aYzPq*kPg4;p?W>&*{qwsQ5F~IP z)Ul!K%WeCJ(2j7&>k}qMI~w1zh*P}KS~mGBma0>tFNrS>oZV`Cq_3j4TXQlN*Srl= zmTpJ910NSCxyyC$ zQt#DMmx~qh6;XxVjZ3FX&&tXlo$H?w1+A^lU58dj0{N>fU+`~NIO`ot85q>@QTv@l#8rIO$E8W3qV(in+%0fyyI%tU zNJl<&*X!W#9qhs)?7je)g0#FskCe8R8;1fH;vYq)8(%Yw+cKLyEG>9$uC7}5o`VUO z&dPUVJoe6YR=%7a?MA-WUAHn4RpC|TJ25RHcv4O_yC>O!q+j9w$%V{ja!e;MTMYia z8|2t7k-gujBhoFyLq~mdoH?r9%6TV@|3q^n()}({&Z5Z-Xs!+*r-d0GgX8}}e0vh#cj18O- z^?a#b!qWvj7clbRzdRM#;hcl_MUL%4P@sgbax`%~NyO@Y36(N0qX10SPH}T|o|K9p zkD$+_3Zp(->(Xw?FhAoohVFZ?eEn+sdvhvu&t8#c-kD^n%KO6VQ1Vv2 ztsjOrd0_ETjZhYMb@X3?SF;EkD=VCqc`H0UINLO8V~x1;Qek_&=>C=T3LergB|JR9 z?@776`?{d6h)0G?{L+VK8ex$)gnOyff&YWJV4F+xuRWVk$O*?Q4XZusN-N@iE#`fk z_0+^pG1y-HGkJesMyMA0n$4gI6&c_w@fjHw3tLR=;>(EJSU2&!AhV`}qIs*KX!_E0 zxEf^TcVby5Te&4W%Z_Jmgv0|hvk7jN8JSc8CH{Udi%Kh_sta|IhxJ0M{Llb+v{+bJ zD5?PHmjtO!tKM!X=gcFCqj^!!WhJgY`y~8&`<_+>C&x(+eMy27>3;i}UI$!)V-1qy zXXG_pKYi5FAQ$HK$sW#n-E?J&X(gNuA|iF;6o<9bOm^sr)sNkgq7ma!Zv(Jv1;;7u z!)%wIgok%4K9J;X^6cy_Eo2G4(TQxGz(%H{p0S_NWoob63-|PgI>;!Ck zUG;K_nK~>0j2JwY4lG@8B2Ew$05)3;3A!+#JJ=q878C{x2ZM}`f`W(u2M-4o0~QVd zkARIsKuN{UA+Cmqg{x`e&BX&!*U0I_r{UxllhE>;q@{BXsF{*94eZ*K zQjMjTG5aR%e+u18B13n{Frt88$iupRmYN&bNurn7fubk<$2GCT>1npQxv(o*15Bex zW^DfIRtFp58y%@^Hur!Y;Hsz5^m?#H%PC>q-8}&O#_vDdOKAVa7Mso29^mb}u;uqY z)7Phj4S#waPVNCJM?FT%%XeAx!Jir%Z$&Gy-@kfw?PL5mj?>BQ|3vvs=I5vW2mG*Q zA1KYAq-5`W=ArGU`QJn;p+tu9Kk0iMtf{j!#Ifzo z#6^LmujDeB%NxUk<#2CGDCfc&P zKbk7^G|=^Vz_-ZYZ{B$4(0`(C%sTt(9{vO83Ox-H#@<)~?nfbRsz|-#MfIQ#U^C+} zFgui=?505Hfntz8VBA14kRC8ZQ9Won`>O8&;qOF|?*V;(i2tFaq!V4t0a7O*(V89T zwHK&58g|}6tH;+ZnYK5Gkj!P3d5}utQR3fR|0VC=5;2qH{?@=hdj6XVpc){6sroDf zbv;LQzr8C=9ZyrAF)o9eU*A5+S}=F@<58XQ7+F@_2#PG`KFP^C>R57)eny^Q#ZDT`4>U3$OoSa(J3gZEG@qY?wV8TZqj;C)^W<# zNYImkS@+b|4UpEaPba^ElldykdB zhEPmUUoyPyiGunBZrav!s4Io6p3*=aZ3OZ&7V3tk@4tMauK@ZXnO^9#D6ll&VCHw% z$>&k1i=TGkx~-x~EQ9!B1B%5Wf0A7GsgET5VZoBj*t8aNmBdYw`)V=Ven_Oc3}iw| zQd*|JVJkLQ4|5teUldhXtm%V$5Vnx9j$@cDeXRWIH#fY$xoQ0;H$9M_F(No_&k0$JG+*rQU^n-Lid0N@iYNf@^)C?hbOxUfqyO1S#oUWEKOH2IMqj6!N|+i zGpP!}2U`{h^~a`r!KuFP0x7A(?(TANW@$nEe)JFFxtD3U)(l1cj4i2MG23zH@BY=0 zKQ-sV#j(Z20Gy6Rt+6z8h|&pvel~jPK^Rlw!Xq}>8&^wJh&iR&NPrcXzzmU>E+kzz zpRgAc*ydy*XDfZWL-PYZ<{nU7#3z~9xR%R79rY)7T@~5J@7>YGqx6nrY7q40KNbvaX2F+F5 zA~aG;+eKAsK+{otq&BE}vnfD=IM@glYTsQWJ7-!wx|Gv&ArE+dBhGym_1zfyFpe@b zF#c6{CEu^0{&bBn{+T?RZjL+{?||BIl{Xq@chRyBi+A^7@zR5Kn9kGz4gO?FFQ!aZ zY(&Akh*@;n@<|HX+w4dYjGN;(^kg>nErlx*(REuuZR#hO$iu2_2@fnG+M{t=!AeB$ z49i%Wbh6N=f8_`Nlu353nn|-Yjh@@^XV&cMtzbJ30xGDf$7|*~(5A@+L<>H5_$MRX z+xSoTMxBSh4i`wHqRLT85>YNl@rbf$+bd{cbZ_XaED-%nD3dx5>=iL{@*=>EU?Q5T zE+flGdm|ka$|3z^P>Vk|+cI3u9GY}x%|Pf@+&ok)@)o!}QmgGbcIv*{LQFG!)ZTd< zYOX97Vewm%HUxBVzT*9L&h(f|w@6l*na73wHxFwQIqNKbp1J)t2M*m~(T_^QLH!=U zFjMZVdW(MxQLgU9C$Wp4_t%tI(rK}of#?h_21$O`Qnsx4IT>9`iKCev?=J@ea3@RJ zAG_zbT&tfbna+Tm3jE5xb&m_Oe_wOA)ei#|OYL>mGIoeB?txo@(AWnJBi-A$caOoL zfgKUhg{_ojU1d{yS)$gxRjR-=2W4G)$#c?V88g1jQqL{?8R)n>=ZXZ({lZ&fw3NMG zl2IB_i%W%)DfiI9B3CH-A_|>vYt2cSFSovI75JQA^d&o2*DaFWzr=hJu5#69muT#X z-n2A{_d`u9?uykyOd#F4A_HlL{Yb%L7PKX=9cLQrN=6m)dn%s=VC<;8d}`g6W14u4 zVQrYJ@jkVs#bR?%`*mo#Ze6-xK*Q?~?~JogT&7q5PD^LuP;LIiVnq;iX1rk+!2-*cK=ej>gU6nY}J19?=5# zoDX22g=kB6GZOo|oo3`E@i)xx3mTmNAS-|y|4vr*vsdylTwi_wd?v1v!C>{-x$0@k zaUBZkF5>HoH7%vtz#VcB;bMYuc&3MGAC#=ALZb-@{py#7I1;}8B~^g-V;BzzE-C}4 z9Jr&rI6(HTLwsou+_cL`;S;_4vG0$kSewgWB(p4QE_`1W;U4j8k*Vi)i5f!0Pu7;k z9hl|MZQYjAjTO}7*Ax~oPVQx4&RAU4seLlivojqx?KslpX@&2Q`oYgvhB%;eor5r$YV?7m;##iO zTnQa@b&dSxZh|nE;9f^33_0ME*;(UDx`YA*0i|losa*=GG#6VqXD4YC&~}|w7^v>$ zB;*D)e>(KL`3fIT{uYNu949_u!QG*jt#Vzu8PHq}Y2-nK4RqZX_kg#@ZYfS72eXb9 zK7bMSG7ggu#0K3bH4F8QjC7zhj%2Td;r8ukRV?**CEfWB8u?mk>54T5@+fjzlLQcg z&RU%S%j#*o1AI-(MtHt>(je9;mJyb)=Vg>JWv;!P(zthouA4HOtYGQU4^!MkEhIgz z&+)A0C()i>6K8t7kNh2=^0x7>ZzbfLx!7160%WN_7se{TG`&7-Z)?7jFugAEP;A^| zO(tb3I#4XWlQ0ovDW=3Cjjz@TUO^NQa`NK(C{*URo%FQKSZFMT#OWTOEUKeCOdq?H z_Kn1=t3CEDDa=iI*q)0LYpPG&J%Ak~?>beys&@O*zSzb>$umJ^WlmgO0vSFMxgB&q zX|w*5sGZ=+Js<#lP9#Vt8QU2r6{o?HCU#n(u5yH=i|WE1^-<>M2M`Xq zssr<`o?nDPR7d3tFGSBUj%zFu40%+*IojB^x>XA<2VwgulT^x25AFdF#39Q*8-aIQ z(6zx}Q4g>GdL)%K=)Dwyj;W@F%ICAMMF{}j!1y*t!9}mB_ zQijk^OmiN<9y91QC?wLH2E@XprH{1Hh%T&O0o|Max>!#Fz767fn&9I zj?8e$y*|T(E}+&bc%hM!{SlGbZWoNQhC_$GPn5y&uGRdk`(qz*ytbZ=e$g7N;(%?f zh;c+FRaf>*lTRrj9QJ@s{6(M+fJNcby9>T?TGT2Awb= z)uui}5PzzT;LmF_Nd8NvOe;D^dOi zK>5{zse_gY`)z4C_zNb~^yBeMucO^2Kn-}Egt{<#WvMEuocg)MXu7uWLe zhS}3m0SU@`({TLCk~z6SO5OEV=|%~hy~X7GTecA{%*D;b@yf#t2Y6@%k=z^8%f_p(5fn6< zN8Eq4k=`E)QoCrTuw3s4bmJggo3Csc5DdrrucmZPJEDgN_R75EVh$_NwG9EmN0{$p znKQ=T19&;Ko%&^bkSu2c`dqqaq?(zVQ_YvG^u_9}QJS4-49BvDxG5MHF>Q@GWM=LG z*?40we$}KsJ@AvYO>YoKCxSQ|+L>m!zEKaK5dS!%8C&>x5-mPai_k*3)VR>8gn7k&i_&OLX#z?IC>t zNk$yt+r_=Ie#y<6F5y=6#M8dug+5Ih39fU@741v(Q?ct$#wpL*UhajAQv}Gk?y;~4 zqjvG197-{Z86W)EV9zRudnCr zN~^yWLC=wH^-6>>S+97RG~Oi7dFP^{B_}U&Yma34_m=Dd=! WOyX+2mO|JxC;ZF$PCe^s})!;Y&GGy;Fg#tY~FthNE z9diO-OFhkfm)oeVn7++I;+l33sBLh}lm>Ha&)CLa>D96n0OffJC&EXI$cz((OU%O( zPy-Yxby)oq%TZ+eRHU>Er-gM=ygKN$oFgfjiEv_Tac!NNooo~=YzY>(!cQHVkT^o` z0ZFkChqo`$C#ioXW|>^j7J;gA5narc+UV&aPhmfA&9q{MnVIut#VQxeTz-I)Z+1eR z$@V&}i8nZowB9!y>W9Sma`nO;UU-{VoCfi4sTPfrZ5CAKZ(1UPp6`Lin%|7K2oaxA zTl&%kHeq?%57lb_Q?)kJgE5M$Me1S4z#J3UF4v8b>=_U*kbOS9nY7SIwogK?j)J9_ z|G5<;EzumO5n~){N>S_CNWDNI33yPkp-WQEZAMRNpf(qz3OPIx9uCYsR6=c5HnAB2 zfo}nY&K;}&kza#FrA~NfSnx^+j(TtQ9XafFP5+77sza67w87FyFfnkhrhUKOX9L? z1xVASydX<S?%u$ZdTg`;3$z_X9TS7W@iZ^(Kx@p+6nA|?ts39P9uR4N#I zJdwZgul3n5wdRhVjZ^n4=GhB<1$tP7eJUJU5%kU#ZSqc~Pw*^U?x zrN>I3+NG09--uAlU4ctJl^GIgq#0TMx$(h5t@@(9DnY6ITOeAQjV#eRhg|Mpt~!2y1MlQttYlk;%Q!wXspRF{BP|67&ZcT;1T0gfU;-Zfyzc=} zx&toiSE2vAPN^qMt3^V?wLnPBcjvK5CdP)aFa%;&4j zOk$WP?uSr`71+xA!Q&wFcg{Baz4!vE7hS6wZ7U1sERaS6ex%c2eIx*rsn0p+MNCDZ zd=_+L%g9mBoQf~ceHSjPgaW*@M3sn5csEGBEIy7K6r?O zNV7GJU)l}@yndaWnIu(qR7N#%sIR89K%gHziO+wz7nsqd$xG~7=U5k$|Jp(28s@)d zXJP@{U2K6UOzUP=2YKJIG$;KlscEHZ?rkL@3J0cY)+cSCv3~`-E8%mE!0#2Ri>k<| zAfN$_Ke=0fI;%iEi}vqkJX%HhbcQXHXi6gnSbMnGsotQR zex}HpLpx4M+fYlF*7NZBi9MK4q-qY-_jj@Z#?K$dnIt;Vz8iiGk#I{c8s%zkq@uHq zOS)#5*G?eM3tT@T#rJyZq4$#Q9x$t~c|OqI{r$`qLm
      dhbij57`J(tAC~IWfb*@ z5cs%c7<C0e-|7GW90sJz=%k|3zVGb`g&bbtoWs1+# zqA(8BuuIUmgw&%Z9V8iM4dF2U{@q}-;-tAnJ>Ps{r+bv{VnKryqojFG_G6)OvVzGx zUe%JLDyCn((rsdhS~_2tuR`|e-e)4txF|VAI>-y>>M)+{2q~M72eAp!MqmSlF*3UZ zwd!XA6Q-tySI@&VFj&AytEyG^fDx!Ge#d`^W{oP@ib}kjxJ)>)0fH4<3_oSE?)E~8 zFZC0?q1vLUH_zpruL_JKPIfQcMu~D!=Y`q?(fVNZiEx<6RfQq3-Te)64LL=1LDEZO9a*sA+?&Qa_BznPEdX7%jif$HxSjyvd3R6WbjoiWFirg z=C-3#04y`9#~@=r8&eblXX+(xjh3iKhwYx_^fRE`LXwWp?OBF=jcwYUone1zFELbUK=pZhOx#I=U2dDLDT$CA0gvT46Y zcTtCneCZvX5u#LF&&NQ^iW?%oT8$~B=JDmAc>4KS#}=FQ9gEUY#};n2R&jyg_i|Ae z@oM>2TDX3~mVt47@SQxz`>7?n8j7E$fwT%5qw@v&gi@dlamtwB;37GBO$y0MZF8); zFucMP>ir|W%|jOC241G!p<{woURS|fcf6GOWu}rqx%6p~;Q!4#Ob7m&l+vFfsJBELLvrO`w*KS)r`P-R;=;^p0lKrq7N(+sT-(C-Sy^H%wQx(#9QSOe<#(67-bZ5JA_mF@0Qp9` zTpFs%^qlTuj1m;og0s7NGOMzPOxVIbNJ^5!uhS0tH6nq)HzD%pvBICB#xAo>L1enBhBDaBK* z!M@=TS})ui;}D`okJ(qRbpXBspNB2zj%pTW?fLZZR?C64oM+DcXDu4&j+8R6J8j$0?k2x-6~_LSH)Y^s-3>Dhad!W)%qh$RZC6tbz89xsTFD;gCTFMxc~ zlRxQw7S)m?EAi1OQxIgRO7(0#Xm-Q&&2eaN_^Tx1Wp^cGZCEn8sQ2z=@pFNYo2}`4 zz;r#0P>3$@k{}3|bHahvlECh-dJ<9QicOrlcz*PCY;LKG!8eNVUr!9#cFF+ zb*01wDS^Xv_g8%4dZSYjiDr?(U=#2f}D3j#@j{R6=)g z7NgoMkew(CS>}h!B>cC-)Si1lx@EJ)kI#O-pdNH8k~gslEaE6~>hbmfD|&{RR3$$3 zWy%r3?NLVSne=Qy*T2qEZC46FUYZ9pZ3t6OLbrs?)3=zuqr@dEgp(FO?_GYjG1~`< zG=MBkqn(pi{66ISbGZ6YLu*Gga2N!o3Pl%-L|Yp4GELR_q<2RG=kc~?H0wzV821>E z&8@v3#kfS(oMsy?Nf0O{a?-BZya%9o{0vu;Z>8gGejDdp_jDk_EP(RmNjlXZxuCC< z|E%d<_5nT<8IYJ}P!B^7Sb&;H$AhBWYe@;$Qs+mrC@7f+k1z1T%hyw+R@M&py^y6lXge7S2oVS! zQ65)R8A*Z=x|V&mmYqQi&uD$qTm8>^ioL#{qf%)2C-Hc>*$@PgXBscxjedKk6B@*6 znqJ-FTbOW8A;Zn+bOQ<}3khiWS4HEo+WA=QT8|@j=5|l%Axv=YDe42S_C)jXbQTY3 zVCm-P9!xQ7E(i39c5zG0fC;qg@fp+P)av5=IcM1DG$FRovw7H+l;u&p>(&~jl(#r3 zA<|wTvOZB3)m?g{Z2t?YDd@{^fdPm`NN=-mZfc0^u{fn#70eG;_Xb)V5IX;1@pyV4 zsB$#~t#!CB6Qi*RaXb^xOnK#|hs)aMHF@UDck%g6ghJmChK#wTzW;9aJH+J7Vx<{_ zmSopxkx)chaIjbGLJqVt0X2wsmbt{tQrARo0t1n{QlP{$htY;a+wWZ#G+6Ew&q8iZ zH0dEz2Ki&u7W_X5F@^)a^KV{R?WVJ|4=w5ZDpg9e0`!F={I=8Ydf;iu*{?q9d%)SV zw$Gpw@AqP#>-GaVk3RHpZ$-hPd?>2ty-5%3BpG6+_(@8fA%>djp{FH!QxWC?kD`ZH zImfV?`l6UM3`s63NjHH&12{6Af!TZ(_M>O!c;@g+p|L*rrk_y8di>J%@8W0UL-A8n zJv%=Zj|S`)e0?O3MYQeTWgl$b8rwLRs2nEKT~;9V zoJKNHd+P5~)WYH;g$tChgA$La+lK@E%(@Qf5$hjdZgGx1CcOsQB9Dp0IEK1U5Tz&8 zVZHdTx4Mf#aCxpYEqIO*C4Fw`Rsai@LDidx7Z24(liv77)D^BMAs!yi{+ML9jtyO` zwE^1`9bA!9xVdV>Q!ji6wuZ_r8+x|fKa&?O#fYtg1Y@XvuCpWOu$~hzoh*}{n4^Y%=jlL;M9}gP3rUY2 zPjHRtXcwZi{m~y7Vf6D`{B`@!Z!x9oc*MSXB|4(}v)~Uxv=2b=>>rH(E0JEF%6MDm zAq2$XK;N=U(;(lVVuC1qX<D&cDhAjH2nGCS#@fKUA&%)pvC&F>jWAj$N zu)VBHPQ!HRv+-ZVB4gB7d!NFyRH?5SZsW78u)T2ahE!^U+ugsKF)a2NL+>tB$2|~u zzbJPJB_Mp9f9>~=#{A(4O7-75|DgQo{0D4Q_!0BJHBXKs?g7zD>hL9n3Om40Jy^Jw zH0H)E&)*MTn)iO6;cd&ZR5WIh{C|GzT%?m3FNG56dZVTxrmDc{i)~V4V1@;fQ(gP+ zmBQg!kMWgZF^+Kf|Njv$B4(tdoHZq09yCaQV&a>Ikh(bKbl23Xy=1!ADc&%zn>Q6-C!{X_ddl#ZS%)O|7!kp{tdIj_B>nbd$1eS3(e@D zhLeK&(SzY~eSRD6KP=DsVENndBrB{pDx$~vzxYB9S5_r771|Qj7qnI*8eO7}w~@`u zf01{XK(F&9Ho~qHe`a9y?uK3?P;GdG1E@T$BTlnFwl#F(<(QTxgY2^a5K%^B+W zVrm5lI7Wq1BX#4cg>0YoB4KIrEGXRrT=m3bCdK<2_R}!NW;!A|e7a5z&sV}$+|mog zubZtT`qpd~BHx=DDpaD3M5nzXA>un1&q?aYby+!a|0YtQJ5e18MevJc;X)a~DQ>C5 zs-~$FcNHA#=;GqdfPY$==*n!C`i3UQ>_F7~a>{Ww3yDPFY?(fEJeM|(D<|l}c`PX0 zMWx4;ife3Ybn#oYRdqcd0`@FvgLRJWTjqV8t}qHXYJ#|T&(`dJjjJqyN;zPq3YYAc zRV=;|c(V>HF+tns;~WTHTN*CDAI%D@ z0hMz5rWl=Bt$BFQAXnugslKri@58U$?#Q%uc)=i*9fQ6iy>Ev~PdhI=icQ6?QTdWT z^1Vq_k9W?hOkGc?XP=~Vji<@c&q2$E#K9Q0r-4$n)CP0)@{(WD?9`fg)(?HX&e7UJbt`=yuqpNJZav|6{g$65 z4T(rQEBP%C1>0FtRi3Rop{z6U^HgH^!^KDX;hD`;u3SPLZYRi6LQ)IPx+3fsHx||1 z>>D#~>HS$E%}V6XgVtAXJFKglnxtw&~iMn#j2Wu z**t|SN#t1$H;JR%Hs_wI=d5W#t6+fa;>eWDiNV}NgE;1$xxaY)9WirXx2$Jv(WCNB z?YAE?!AH57t6La<>|riF=RrFW_@}$z7`g; zTo4eYNU>Q|N&IUv0{5X?GIS3K_RXKLBX_W|t?zm^h<3P}-pv4;PKBdnn84l?C9NpD zms?12HmN?kms^lF{`i~=eO7zozF+*Y?Od~a&4bD0t1y162vQFuu_eG&8N$?>h!6G8Tp~FINwEvxw;Blxp zIMuLlDcPYZNjzs00eY#OTSCLc)GxMLtdmAH;M?!}>u?Wg=^mhSMjwl1FTueS!l zl&P98K{j1JUztvu0jCrN0x{)t?B>g}%q^G23OY3P*iPV;I#T3g@h;QNQ4bg&V z5aH@xJub{n8gc9=yOh*xMUHDgM$fBO^<@a&L9va6uw zFsdEI{0I{QBA+$=MLf&l*XYm-1xrK0q#xP&WDDEIN-I}nI-47)qFXP069Swbm?MNy zYH~Ch>W1XBR5jc-Exg5~`%)yb4}kvwVLAB&&f0GhbOez%wv<}tG)OFu9sY)>7M*{r z;)8iL-sxVz5a{+zB19g31haTXPvzxTnF!gI!_2>pZ4NLl*xW1~NWqM|+L8RLuNsAi$_Q_Xii4%Rb%DME zGT4~pOha#jBhtgjqIFdL1_o8dB3eq(>wFjag<+Q~B>B-JZ<4B$BI2s#ZL#R9wNNdD zinL9guS<4?AgZOUUCwQb!E&gY!%kRsH2u`s?Qyw;u^X+1lDINw6cN-uWu$i$z_L4# ziBKI&q@bq|N4`9G_avAEvcQrV;QaBUl$;TCJ4d;j4{6IlMz*B-v|f(4uI{~F$E}fb zxQ&FC@ry*>B%Xih8~`gRO}L~#uuuJl5h14@CPSZF_~a$4Q#7&$mGWZb%Ry-;Y@Nwv zo?XF|aa(%WqP4Lx$@3xz?dB2t8$;kF;{}i9r=bXa&87JPYxAQPOCRPs(s&^O^1!@^ z+N%RzCbD|;L`iAhnXJYW3<`~;pU_{2$yx)GNgY$!>KbFFx(>g<%X*)yS98`+H(q~L zlXSDJpVBmYs{2IOt!BTi*oFTdps&V`FLU|E`7R!r5_&Bj*ZOs5N(w|dZeJRQ@N%D* z@tv#ahqrn5;@_uU#F>s!l&!7)C8{ZMOn~(0lm^nzD@sd-+y`B{5+a67 zTcO?$a^F3U&ErpE1vTt7-LZw&0hhO>{`u3sX;gYXa^=y9J)+XRMWb=N`?0VR|##j_`A&p|!9H%cvZn9fnBogF! zTbmgA^ZDfKKkncf6K5kf`SR0um(X#~eF%ZyL#&I(G5FMmFVA0c^w= zUf1-T0nI)YhC1#Ogu*5c=-3PKO;S0C1huPLk+sNn47)!XYalCx>xPBiPq6lAtR&c`&!cNCrkO zeX;%Bs~kkz+h&vgm8WLxsz{i*j)lAg7d1XB5(dBdhhGoVEFp4yRc8O;a~>KoUp1AT zTGamdg%Vpb>L<m$E8R^@7LJGp&(~jQYe+c|DqDM3h(g$ zg-TR2$-hlGHZ%71LgBE~v9bWEPe_Q?`Hu(#BqDW*)sM!M9F=$=5Ox;RlT4dyX3kH~ z)czx&?>{J~s38gt$U5WvcY-i7r|XPAKHF9Q%~#(FAMqchZZIA2zdGUB0uTNprb&b3 z{qG|zR19)|8jV;|x=c?>f@u;CE3^N{#H6q=K|(p*d-~Bl;jR2%$N(Ol^k=~o=dCda z!4~WPCL~-9gG2vBUMR8WMR#$$3_q_45oFoX5wHdd=6T7Fi>9c?tPxL{y~9A$q-Qep7$r*Lk44DqnYFz_Zx>H!|Rn)N^o z8yrboz?e$Zg}|0vDP2#;Ww4Xs8a(~ueB4rzcCl|mJJMbS5x{|<idBlpG%{~pnVfkwq&xdn0 z>0@zAkfhgH^!+(SOZ$Fm5jV6WLznD3GThf^Y0~S(P^jkQ+~>X1Ho=u}r|~{XHz`Jt zXKByHgCk1v_X;9Pg5Ue%+^~^F!SECf61ByNntSNoJDX*TnUp5M>70=kDuWu_0#drD z9_uhn=)V6NkgM{v-g4;{0~4ep)K!*nr(@~Dme5HG2`i^He^gi1)(s_7nXX z9^rS+OVwoLI7=Tm`9p9|yFd(ZPv{Y9)b8Z- zdox)Hq1?&DZ@LTpEQmYa;R!V!C8*~UA$vRp|JzXNwHyi>dfePk;Q+Hu0B@fC8 z#FuIb_ABPw@y1yzP+?EgoX-uPBmy7r1LZ^xEMaOUtm%mz{%PL(j{|GEwSm7odhKgp z+bxKcSfa_U|C4$AGMJVXq1o9a&l%W?x5O!R5f)9L9d;H!1TR6+5FQSd5bHky{$ejC zt;tb`dZNYw)c0hUt+i&hV1SFy*`2G6xN96u%CH

      %Y?z9>cQ+H239#E|_ncfg8e` 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%0A?gvZPU$7KjXj_0DnUn*Qx1*;{ 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 G@c#vgveO&@ diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 22c8e698901..de50eb58e76 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -473,8 +473,10 @@ Examples: **:information_source: Key things to take note of:**
      +* A folder named `courts` will be automatically generated in the same directory as the JAR file +* Image must be in `png` format and be contained in the aforementioned `courts` directory. * Loads the given image from the filepath `courts/IMAGE_NAME.png`. -* File must exist and be in `png` format in a folder named `courts` in the same directory as the JAR file (folder will be automatically generated). + diff --git a/src/main/java/seedu/address/MainApp.java b/src/main/java/seedu/address/MainApp.java index 2f266ebbe21..3535a2fa217 100644 --- a/src/main/java/seedu/address/MainApp.java +++ b/src/main/java/seedu/address/MainApp.java @@ -1,5 +1,6 @@ package seedu.address; +import java.io.File; import java.io.IOException; import java.nio.file.Path; import java.util.Optional; @@ -72,6 +73,8 @@ public void init() throws Exception { logic = new LogicManager(model, storage); ui = new UiManager(logic); + + initCourtsDirectory(); } /** @@ -186,6 +189,19 @@ protected UserPrefs initPrefs(UserPrefsStorage storage) { return initializedPrefs; } + /** + * Creates the "/courts" directory if it does not already exist. + */ + protected void initCourtsDirectory() { + File courtDirectory = new File("courts"); + + if (!courtDirectory.exists()) { + courtDirectory.mkdir(); + logger.warning( + "Problem while reading from courts directory. Will be creating a new courts directory."); + } + } + @Override public void start(Stage primaryStage) { logger.info("Starting Coach2K22 " + MainApp.VERSION); From 003261799b3aff5a848356b93e8a9eac297a2065 Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Fri, 8 Apr 2022 01:58:05 +0800 Subject: [PATCH 345/455] Fix test errors --- src/main/java/seedu/address/MainApp.java | 6 ++++-- .../java/seedu/address/testutil/TestImageCreator.java | 8 +++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/main/java/seedu/address/MainApp.java b/src/main/java/seedu/address/MainApp.java index 3535a2fa217..b36d3d8a437 100644 --- a/src/main/java/seedu/address/MainApp.java +++ b/src/main/java/seedu/address/MainApp.java @@ -195,10 +195,12 @@ protected UserPrefs initPrefs(UserPrefsStorage storage) { protected void initCourtsDirectory() { File courtDirectory = new File("courts"); + //Ensures that the "courts" directory exists. If it does, ensure it is not being mistaken for + // a similarly named file if (!courtDirectory.exists()) { courtDirectory.mkdir(); - logger.warning( - "Problem while reading from courts directory. Will be creating a new courts directory."); + logger.info( + "Courts directory cannot be found. Will be creating a new courts directory."); } } diff --git a/src/test/java/seedu/address/testutil/TestImageCreator.java b/src/test/java/seedu/address/testutil/TestImageCreator.java index a839a0d7287..473cf782ecb 100644 --- a/src/test/java/seedu/address/testutil/TestImageCreator.java +++ b/src/test/java/seedu/address/testutil/TestImageCreator.java @@ -19,10 +19,12 @@ public class TestImageCreator { */ public static void createTestImage() { File testFile = testImage.getImagePath(); - File testDirectory = new File(Image.FILE_PATH); + File testDirectory = new File( Image.FILE_PATH); try { - testFile.mkdir(); //in case "courts" directory has not been created - testDirectory.createNewFile(); + if (!testDirectory.exists()) { + testDirectory.mkdir(); //in case "courts" directory has not been created + } + testFile.createNewFile(); } catch (IOException e) { assert false : "Runtime should not reach here"; } From 2d6aa7b552d6dd05d716dfb9ffd00d1d495e1fdd Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Fri, 8 Apr 2022 02:03:19 +0800 Subject: [PATCH 346/455] Add additional clarification to example in User Guide --- docs/UserGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index de50eb58e76..a8034e14243 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -467,7 +467,7 @@ Load a new background image in the strategy tab. Format: `load-court IMAGE_NAME` Examples: -* `load-court basketball` loads and sets the image `basketball.png` as the background image of strategy tab. +* `load-court basketball` loads would set the image from the filepath `courts/basketball.png` as the background image of strategy tab (if it exists).

      From bb71ea98b3c6060c803551037281fca2f1805a34 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Fri, 8 Apr 2022 14:16:10 +0800 Subject: [PATCH 347/455] Add AddPerson, EditPerson, DeletePerson, ClearPerson, DeleteTask, EditTask, FindTask, GetPerson in implementation section --- docs/DeveloperGuide.md | 467 +++++++++++------- docs/diagrams/AddPersonSequenceDiagram.puml | 67 +++ docs/diagrams/AddTaskSequenceDiagram.puml | 8 +- docs/diagrams/ClearPersonSequenceDiagram.puml | 65 +++ .../diagrams/DeletePersonSequenceDiagram.puml | 82 +++ docs/diagrams/DeleteTaskSequenceDiagram.puml | 67 +++ docs/diagrams/EditPersonSequenceDiagram.puml | 82 +++ docs/diagrams/EditTaskSequenceDiagram.puml | 67 +++ docs/diagrams/FindPersonSequenceDiagram.puml | 2 +- docs/diagrams/FindTaskSequenceDiagram.puml | 66 +++ docs/diagrams/GetPersonSequenceDiagram.puml | 66 +++ docs/images/AddPersonSequenceDiagram.png | Bin 0 -> 20663 bytes docs/images/AddTaskSequenceDiagram.png | Bin 36973 -> 31551 bytes docs/images/ClearPersonSequenceDiagram.png | Bin 0 -> 27818 bytes docs/images/DeletePersonSequenceDiagram.png | Bin 0 -> 25925 bytes docs/images/DeleteTaskSequenceDiagram.png | Bin 0 -> 28635 bytes docs/images/EditPersonSequenceDiagram.png | Bin 0 -> 45808 bytes docs/images/EditTaskSequenceDiagram.png | Bin 0 -> 31751 bytes docs/images/FindPersonSequenceDiagram.png | Bin 32714 -> 18678 bytes docs/images/FindTaskSequenceDiagram.png | Bin 0 -> 23134 bytes docs/images/GetPersonSequenceDiagram.png | Bin 0 -> 23849 bytes 21 files changed, 861 insertions(+), 178 deletions(-) create mode 100644 docs/diagrams/AddPersonSequenceDiagram.puml create mode 100644 docs/diagrams/ClearPersonSequenceDiagram.puml create mode 100644 docs/diagrams/DeletePersonSequenceDiagram.puml create mode 100644 docs/diagrams/DeleteTaskSequenceDiagram.puml create mode 100644 docs/diagrams/EditPersonSequenceDiagram.puml create mode 100644 docs/diagrams/EditTaskSequenceDiagram.puml create mode 100644 docs/diagrams/FindTaskSequenceDiagram.puml create mode 100644 docs/diagrams/GetPersonSequenceDiagram.puml create mode 100644 docs/images/AddPersonSequenceDiagram.png create mode 100644 docs/images/ClearPersonSequenceDiagram.png create mode 100644 docs/images/DeletePersonSequenceDiagram.png create mode 100644 docs/images/DeleteTaskSequenceDiagram.png create mode 100644 docs/images/EditPersonSequenceDiagram.png create mode 100644 docs/images/EditTaskSequenceDiagram.png create mode 100644 docs/images/FindTaskSequenceDiagram.png create mode 100644 docs/images/GetPersonSequenceDiagram.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 0b48b74315a..c7dea1463f5 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -148,112 +148,219 @@ Classes used by multiple components are in the `seedu.addressbook.commons` packa This section describes some noteworthy details on how certain features are implemented. -### 4.1 Find persons feature +### 4.1 Contact Management -#### 4.1.1 Implementation +#### 4.1.1 Add Feature -This feature allows the user to display selected persons in the contact list. It is facilitated by `ModelManager` which -makes use of the method `#updateFilteredPersonList()` to find persons by name or tag. +##### Implementation -Given below is an example usage scenario of how the find person mechanism behaves at each step. +This feature allows the user to add persons to the person list. It is facilitated by `ModelManager` which +makes use of the method `#addPerson()` to add a new person to the person list. -Step 1: The user inputs `find n/Alex t/friends` to find selected persons. +Given below is an example usage scenario of how the add person mechanism behaves at each step. -Step 2: This argument is passed into `LogicManager` which calls on `Coach2K22Parser#parseCommand()` to find a suitable parser class to process the user inputs. This initialises the `FindPersonCommandParser` where its method `#parse()` is called to process the user inputs. +Step 1: The user inputs `add-p n/Johnson p/83918273 a/Woodlands Avenue 4 e/johnson@gmail.com` to add a new person to the person list. -Step 3: It then returns a newly initialised `FindPersonCommand` back to the `LogicManager` for command execution. +Step 2: This argument is passed into `LogicManager` which calls on `Coach2K22Parser#parseCommand()` to find a suitable parser class to process the user inputs. This initialises the `AddPersonCommandParser` where its method `#parse()` is called to process the user inputs. -Step 4: During the command execution, the `ModelManager#updateFilteredPersonList()` is called which updates the GUI display with only selected persons shown in the contact list. The command results are then generated and shown to the user. +Step 3: It then returns a newly initialised `AddPersonCommand` back to the `LogicManager` for command execution. + +Step 4: During the command execution, the `ModelManager#addPerson()` is called which adds the new person to an internal list and updates the GUI display. A new contact named "Johnson" with his relevant details is then shown in the person list. The steps above are summarised using a sequence diagram as shown below. -![FindPersonSequenceDiagram](images/FindPersonSequenceDiagram.png) +![AddPersonSequenceDiagram](images/AddPersonSequenceDiagram.png) -#### 4.1.2 Design consideration +##### Design Consideration -**Aspect: Should there be a separate find command for name and tag:** +**Aspect: Should there be an abstraction for persons:** -* **Alternative 1 (current choice):** A combined command for finding name and tag. - * Pros: Easy to implement. - * Cons: Users may have to remember more prefixes. +* **Alternative 1 (current choice):** Separate `add-p` command for creating a person. + * Pros: Easy to extend and modify. + * Cons: Not as intuitive for the user. +* **Alternative 2:** Single `add` command that adds tasks/persons depending on parameters. + * Pros: More intuitive for the user. -* **Alternative 2:** A separate command for finding name and tag. - * Pros: Commands may be more intuitive to the users. - * Cons: Possible violation of the DRY principle. +#### 4.1.2 Delete Feature -### 4.2 Add players feature +##### Implementation -#### 4.2.1 Implementation +This feature allows the user to delete persons from the person list. It is facilitated by `ModelManager` which +makes use of the method `#deletePerson()` to delete a person from the person list. The method `#setTask()` is also called to ensure that the deleted person is removed from all tasks. -This feature allows the user to add players to the strategy board. It is facilitated by `ModelManager` which -makes use of the method `#addPlayer()` and `#updateFilteredPlayerList()` to add a new player to the strategy board. +Given below is an example usage scenario of how the delete person mechanism behaves at each step. -Given below is an example usage scenario of how the add player mechanism behaves at each step. +Step 1: The user inputs `del-p 1` to delete the first person in the person list. -Step 1: The user inputs `add-player Cena` to add a new player to the strategy board. +Step 2: This argument is passed into `LogicManager` which calls on `Coach2K22Parser#parseCommand()` to find a suitable parser class to process the user inputs. This initialises the `DeletePersonCommandParser` where its method `#parse()` is called to process the user inputs. -Step 2: This argument is passed into `LogicManager` which calls on `Coach2K22Parser#parseCommand()` to find a suitable parser class to process the user inputs. This initialises the `AddPlayerCommandParser` where its method `#parse()` is called to process the user inputs. +Step 3: It then returns a newly initialised `DeletePersonCommand` back to the `LogicManager` for command execution. -Step 3: It then returns a newly initialised `AddPlayerCommand` back to the `LogicManager` for command execution. +Step 4: During the command execution, the `ModelManager#setTask()` method is called multiple times to remove the +corresponding person from all the tasks in the task list. After which, the `ModelManager#deletePerson()` method is called to delete the specified person from the person list. -Step 4: During the command execution, the `ModelManager#addPlayer()` is called which adds the new player to an internal list. Inside the function call, the `ModelManager#updateFilteredPlayerList()` is also called which updates the GUI display a new player named "Cena" shown in the strategy board. The command results are then generated and shown to the user. +Step 5: The GUI display is then updated to show a new contact and task list without the deleted person. The steps above are summarised using a sequence diagram as shown below. -![AddPlayerSequenceDiagram](images/AddPlayerSequenceDiagram.png) +![DeletePersonSequenceDiagram](images/DeletePersonSequenceDiagram.png) -#### 4.2.2 Design consideration +##### Design Consideration -**Aspect: Should there be an abstraction for players:** +**Aspect: Should there be an abstraction for persons:** -* **Alternative 1 (current choice):** A player is a String of player name. +* **Alternative 1 (current choice):** Separate `del-p` command for deleting a person. + * Pros: Easy to extend and modify. + * Cons: Not as intuitive for the user. +* **Alternative 2:** Single `del` command that deletes tasks/persons depending on parameters. + * Pros: More intuitive for the user. + +#### 4.1.3 Edit Feature + +##### Implementation + +This feature allows the user to edit persons from the person list. It is facilitated by `ModelManager` which +makes use of the method `#setPerson()` to update a person from the person list. If the person's name is edited in this process, the method `#setTask()` will be called to ensure all tasks tagged with this person is updated according. + +Given below is an example usage scenario of how the edit person mechanism behaves at each step. + +Step 1: The user inputs `edit-p 1 n/Johnson` to edit the first person in the person list. + +Step 2: This argument is passed into `LogicManager` which calls on `Coach2K22Parser#parseCommand()` to find a suitable parser class to process the user inputs. This initialises the `EditPersonCommandParser` where its method `#parse()` is called to process the user inputs. + +Step 3: It then returns a newly initialised `EditPersonCommand` back to the `LogicManager` for command execution. + +Step 4: During the command execution, the `ModelManager#setTask()` method is called multiple times to update the +name of the corresponding person in all the tasks. After which, the `ModelManager#setPerson()` method is called to update the specified person in the person list. + +Step 5: The GUI display is then updated to show a new contact and task list with the updated person details. + +The steps above are summarised using a sequence diagram as shown below. +![EditPersonSequenceDiagram](images/EditPersonSequenceDiagram.png) + +##### Design Consideration + +**Aspect: Should there be an abstraction for persons:** + +* **Alternative 1 (current choice):** Separate `edit-p` command for editing a person. + * Pros: Easy to extend and modify. + * Cons: Not as intuitive for the user. +* **Alternative 2:** Single `edit` command that edits tasks/persons depending on parameters. + * Pros: More intuitive for the user. + +#### 4.1.4 Clear Feature + +##### Implementation + +This feature allows users to clear all persons from the person list. +It is facilitated by the `ModelManager` which sets a new `AddressBook` object to the `ModelManager` to clear the person list. The method `#setTask()` will also be called to ensure all tasks do not have any persons tagged to it. + +Given below is an example usage scenario of how the clear person mechanism behaves at each step. + +Step 1: The user inputs `clear-p` to clear all persons from the person list. + +Step 2: This argument is passed into the `LogicManager` which calls on `Coach2K22Parser#parseCommand()` to find a suitable +parser class which corresponds with the provided command to parse the user's inputs. + +Step 3: Since there are no arguments for this command, a newly initialised `ClearPersonCommand` is returned to the `LogicManager` for command execution. + +Step 4: During the command execution, the `ModelManager#setTask()` method is called multiple times to delete persons in all the tasks. After which, a new `AddressBook` object is passed into the `ModelManager#setAddressBook()` method which clears out the person list. + +Step 5: The GUI display is then updated to show an empty contact and new task list without any persons tagged to the tasks. + +The steps above are summarised using a sequence diagram as shown below. +![ClearPersonSequenceDiagram](images/ClearPersonSequenceDiagram.png) + +##### Design Consideration + +**Aspect: Should there be separate clear commands for clearing tasks and persons:** + +* **Alternative 1 (current choice):** A separate command for clearing tasks and persons. * Pros: Easy to implement. * Cons: Hard to extend. -* **Alternative 2:** A player is an object of class `Player`. - * Pros: Easy to extend and manipulate attributes of a player. +* **Alternative 2:** A combined command for clearing tasks and persons. + earPer * Pros: Easier and more intuitive for the user to understand * Cons: Hard to implement. - -### 4.3 Clear Tasks feature -#### 4.3.1 Implementation +#### 4.1.5 Add Tags Feature -This feature allows users to clear all tasks from the task list, or only tasks that correspond with a given date. -It is facilitated by the `ModelManager` which utilizes the method `deleteTask()` to delete each corresponding task one -by one, or sets a new `TaskBook` object to the `ModelManager` to refresh the task list. +##### Implementation +This feature allows the user to add tags to contacts in the list. It is facilitated by `ModelManager` which +makes use of the method `#setPerson()` and `#updateFilteredPersonList()` to add tags to a contact. -Given below is an example usage scenario of how the clear task mechanism behaves at each step. +Given below is an example usage scenario of how the add tag mechanism behaves at each step. -Step 1: The user inputs `clear-t 2022-10-10` to clear all tasks that correspond with the date `2022-10-10` in the task list. +Step 1: The user inputs `tag-add-p 1 friend` to add the tag "friend" to the first contact in the list. -Step 2: This argument is passed into the `LogicManager` which calls on `Coach2K22Parser#parseCommand()` to find a suitable -parser class which corresponds with the provided command to parse the user's inputs. This initializes the `ClearTaskCommandParser`, -where its method `parse()` is called to process the user inputs. +Step 2: This argument is passed into `LogicManager` which calls on `Coach2K22Parser#parseCommand()` to find a suitable parser class to process the user inputs. This initialises the `AddTagCommandParser` where its method `#parse` is called to process the user inputs. -Step 3: The newly initialized `ClearTaskCommandParser` is then returned to the `LogicManager` for command execution. +Step 3: It then returns a newly initialised `AddTagCommand` back to the `LogicManager` for command execution. This `AddTagCommand` contains information about the new tag (in this case, "friend") -Step 4: During the command execution, the `ModelManager#deleteTask()` method is called multiple times to remove the -corresponding tasks from the internal task list. Inside the function call, the `ModelManager#updateFilteredTaskList()` -is also called, which updates the GUI to display the new task list. The command results are then generated and shown to -the user. +Step 4: During the command execution, the `ModelManager#setPerson()` is called which edits the tags of the person with the user-supplied tags. The filtered person list is updated with `ModelManager#updateFilteredPersonList` to display the new information to the user. The steps above are summarised using a sequence diagram as shown below. -![ClearTaskSequenceDiagram](images/ClearTaskSequenceDiagram.png) +![AddTagSequenceDiagram](images/AddTagSequenceDiagram.png) -#### 4.3.2 Design consideration -**Aspect: Should there be separate clear commands for clearing tasks and players:** +##### Design Consideration -* **Alternative 1 (current choice):** A separate command for clearing tasks and players. +**Aspect: Should the implementation use the existing edit functionalities in AB3:** +* **Alternative 1:** Use the current EditCommand class to edit a person's tags. + * Pros: Maintains abstraction and reuses code instead of writing new code. + * Cons: Creates a cyclic dependency, making the code base harder to maintain later on + +* **Alternative 2 (current choice):** Implement AddTagCommand independently, rewriting similar code + * Pros: Cleaner code and less dependencies + * Cons: Repetitive code that is not abstracted + +#### 4.1.6 Find Feature + +##### Implementation + +This feature allows the user to display selected persons in the contact list. It is facilitated by `ModelManager` which +makes use of the method `#updateFilteredPersonList()` to find persons by name or tag. + +Given below is an example usage scenario of how the find person mechanism behaves at each step. + +Step 1: The user inputs `find n/Alex t/friends` to find selected persons. + +Step 2: This argument is passed into `LogicManager` which calls on `Coach2K22Parser#parseCommand()` to find a suitable parser class to process the user inputs. This initialises the `FindPersonCommandParser` where its method `#parse()` is called to process the user inputs. + +Step 3: It then returns a newly initialised `FindPersonCommand` back to the `LogicManager` for command execution. + +Step 4: During the command execution, the `ModelManager#updateFilteredPersonList()` is called which updates the GUI display with only selected persons shown in the contact list. The command results are then generated and shown to the user. + +The steps above are summarised using a sequence diagram as shown below. +![FindPersonSequenceDiagram](images/FindPersonSequenceDiagram.png) + +##### Design Consideration + +**Aspect: Should there be a separate find command for name and tag:** + +* **Alternative 1 (current choice):** A combined command for finding name and tag. + * Pros: Easy to implement. + * Cons: Users may have to remember more prefixes. + +* **Alternative 2:** A separate command for finding name and tag. + * Pros: Commands may be more intuitive to the users. + * Cons: Possible violation of the DRY principle. + +**Aspect: Should there be separate find commands for finding tasks and persons:** + +* **Alternative 1 (current choice):** A separate command for finding tasks and persons. * Pros: Easy to implement. * Cons: Hard to extend. -* **Alternative 2:** A combined command for clearing tasks and player. - * Pros: Easier and more intuitive for the user to understand + +* **Alternative 2:** A combined command for finding tasks and persons. + * Pros: Easier and more intuitive for the user to understand. * Cons: Hard to implement. -### 4.4 Add tasks feature +### 4.2 Task Management -#### 4.4.1 Implementation +#### 4.2.1 Add Feature + +##### Implementation This feature allows the user to add tasks to the task list. It is facilitated by `ModelManager` which -makes use of the method `#addTask()` and `#updateFilteredTaskList()` to add a new task to the task list. +makes use of the method `#addTask()` to add a new task to the task list. Given below is an example usage scenario of how the add task mechanism behaves at each step. @@ -263,14 +370,14 @@ Step 2: This argument is passed into `LogicManager` which calls on `Coach2K22Par Step 3: It then returns a newly initialised `AddTaskCommand` back to the `LogicManager` for command execution. -Step 4: During the command execution, the `ModelManager#addTask()` is called which adds the new task to an internal list. Inside the function call, the `ModelManager#updateFilteredTaskList()` is also called which updates the GUI display. A new task named "Meet" with the subsequent date and time details is then shown in the task list. +Step 4: During the command execution, the `ModelManager#addTask()` is called which adds the new task to an internal list and updates the GUI display. A new task named "Meet" with the subsequent date and time details is then shown in the task list. The steps above are summarised using a sequence diagram as shown below. ![AddTaskSequenceDiagram](images/AddTaskSequenceDiagram.png) -#### 4.4.2 Design consideration +##### Design Consideration -**Aspect: Should there be an abstraction for players:** +**Aspect: Should there be an abstraction for tasks:** * **Alternative 1 (current choice):** Separate `add-t` command for creating a task. * Pros: Easy to extend and modify. @@ -278,40 +385,69 @@ The steps above are summarised using a sequence diagram as shown below. * **Alternative 2:** Single `add` command that adds tasks/persons depending on parameters. * Pros: More intuitive for the user. -### 4.3 Add tags feature +#### 4.2.2 Delete Feature -#### 4.3.1 Implementation -This feature allows the user to add tags to contacts in the list. It is facilitated by `ModelManager` which -makes use of the method `#setPerson()` and `#updateFilteredPersonList()` to add tags to a contact. +##### Implementation -Given below is an example usage scenario of how the add tag mechanism behaves at each step. +This feature allows the user to delete tasks from the task list. It is facilitated by `ModelManager` which +makes use of the method `#deleteTask()` to delete a task from the task list. -Step 1: The user inputs `tag-add-p 1 friend` to add the tag "friend" to the first contact in the list. +Given below is an example usage scenario of how the delete task mechanism behaves at each step. -Step 2: This argument is passed into `LogicManager` which calls on `Coach2K22Parser#parseCommand()` to find a suitable parser class to process the user inputs. This initialises the `AddTagCommandParser` where its method `#parse` is called to process the user inputs. +Step 1: The user inputs `del-t 1` to delete the first task in the task list. -Step 3: It then returns a newly initialised `AddTagCommand` back to the `LogicManager` for command execution. This `AddTagCommand` contains information about the new tag (in this case, "friend") +Step 2: This argument is passed into `LogicManager` which calls on `Coach2K22Parser#parseCommand()` to find a suitable parser class to process the user inputs. This initialises the `DeleteTaskCommandParser` where its method `#parse()` is called to process the user inputs. -Step 4: During the command execution, the `ModelManager#setPerson()` is called which edits the tags of the person with the user-supplied tags. The filtered person list is updated with `ModelManager#updateFilteredPersonList` to display the new information to the user. +Step 3: It then returns a newly initialised `DeleteTaskCommand` back to the `LogicManager` for command execution. + +Step 4: During the command execution, the `ModelManager#deleteTask()` is called which deletes the specified person from an internal list and updates the GUI display. A new task list without the deleted task then shown. The steps above are summarised using a sequence diagram as shown below. -![AddTagSequenceDiagram](images/AddTagSequenceDiagram.png) +![DeleteTaskSequenceDiagram](images/DeleteTaskSequenceDiagram.png) +##### Design Consideration -#### 4.3.2 Design consideration +**Aspect: Should there be an abstraction for tasks:** -**Aspect: Should the implementation use the existing edit functionalities in AB3:** -* **Alternative 1:** Use the current EditCommand class to edit a person's tags. - * Pros: Maintains abstraction and reuses code instead of writing new code. - * Cons: Creates a cyclic dependency, making the code base harder to maintain later on +* **Alternative 1 (current choice):** Separate `del-t` command for deleting a task. + * Pros: Easy to extend and modify. + * Cons: Not as intuitive for the user. +* **Alternative 2:** Single `del` command that deletes tasks/persons depending on parameters. + * Pros: More intuitive for the user. -* **Alternative 2 (current choice):** Implement AddTagCommand independently, rewriting similar code - * Pros: Cleaner code and less dependencies - * Cons: Repetitive code that is not abstracted +#### 4.2.3 Edit Feature + +##### Implementation -### 4.4 Clear Tasks feature +This feature allows the user to edit tasks from the task list. It is facilitated by `ModelManager` which +makes use of the method `#setTask()` to update a task from the task list. + +Given below is an example usage scenario of how the edit task mechanism behaves at each step. + +Step 1: The user inputs `edit-p 1 n/Meeting` to edit the first task in the task list. + +Step 2: This argument is passed into `LogicManager` which calls on `Coach2K22Parser#parseCommand()` to find a suitable parser class to process the user inputs. This initialises the `EditTaskCommandParser` where its method `#parse()` is called to process the user inputs. + +Step 3: It then returns a newly initialised `EditTaskCommand` back to the `LogicManager` for command execution. + +Step 4: During the command execution, the `ModelManager#setTask()` is called which edits the specified task from an internal list and updates the GUI display. A new task list with the updated task details is then shown. + +The steps above are summarised using a sequence diagram as shown below. +![EditTaskSequenceDiagram](images/EditTaskSequenceDiagram.png) -#### 4.4.1 Implementation +##### Design Consideration + +**Aspect: Should there be an abstraction for tasks:** + +* **Alternative 1 (current choice):** Separate `edit-t` command for editing a task. + * Pros: Easy to extend and modify. + * Cons: Not as intuitive for the user. +* **Alternative 2:** Single `edit` command that edits tasks/persons depending on parameters. + * Pros: More intuitive for the user. + +#### 4.2.4 Clear Feature + +##### Implementation This feature allows users to clear all tasks from the task list, or only tasks that correspond with a given date. It is facilitated by the `ModelManager` which utilizes the method `deleteTask()` to delete each corresponding task one @@ -335,7 +471,7 @@ the user. The steps above are summarised using a sequence diagram as shown below. ![ClearTaskSequenceDiagram](images/ClearTaskSequenceDiagram.png) -#### 4.4.2 Design consideration +##### Design Consideration **Aspect: Should there be separate clear commands for clearing tasks and players:** @@ -345,92 +481,103 @@ The steps above are summarised using a sequence diagram as shown below. * **Alternative 2:** A combined command for clearing tasks and player. * Pros: Easier and more intuitive for the user to understand * Cons: Hard to implement. - * -### \[Proposed\] Undo/redo feature - -#### Proposed Implementation -The proposed undo/redo mechanism is facilitated by `VersionedAddressBook`. It extends `AddressBook` with an undo/redo history, stored internally as an `addressBookStateList` and `currentStatePointer`. Additionally, it implements the following operations: +#### 4.2.5 Find Feature -* `VersionedAddressBook#commit()` — Saves the current address book state in its history. -* `VersionedAddressBook#undo()` — Restores the previous address book state from its history. -* `VersionedAddressBook#redo()` — Restores a previously undone address book state from its history. +##### Implementation -These operations are exposed in the `Model` interface as `Model#commitAddressBook()`, `Model#undoAddressBook()` and `Model#redoAddressBook()` respectively. +This feature allows the user to display selected tasks in the task list. It is facilitated by `ModelManager` which +makes use of the method `#updateFilteredTaskList()` to find tasks by name or tag. -Given below is an example usage scenario and how the undo/redo mechanism behaves at each step. +Given below is an example usage scenario of how the find task mechanism behaves at each step. -Step 1. The user launches the application for the first time. The `VersionedAddressBook` will be initialized with the initial address book state, and the `currentStatePointer` pointing to that single address book state. +Step 1: The user inputs `find n/meeting t/friends` to find selected tasks. -![UndoRedoState0](images/UndoRedoState0.png) +Step 2: This argument is passed into `LogicManager` which calls on `Coach2K22Parser#parseCommand()` to find a suitable parser class to process the user inputs. This initialises the `FindTaskCommandParser` where its method `#parse()` is called to process the user inputs. -Step 2. The user executes `delete 5` command to delete the 5th person in the address book. The `delete` command calls `Model#commitAddressBook()`, causing the modified state of the address book after the `delete 5` command executes to be saved in the `addressBookStateList`, and the `currentStatePointer` is shifted to the newly inserted address book state. +Step 3: It then returns a newly initialised `FindTaskCommand` back to the `LogicManager` for command execution. -![UndoRedoState1](images/UndoRedoState1.png) +Step 4: During the command execution, the `ModelManager#updateFilteredTaskList()` is called which updates the GUI display with only selected tasks shown in the task list. The command results are then generated and shown to the user. -Step 3. The user executes `add n/David …​` to add a new person. The `add` command also calls `Model#commitAddressBook()`, causing another modified address book state to be saved into the `addressBookStateList`. - -![UndoRedoState2](images/UndoRedoState2.png) - -
      :information_source: **Note:** If a command fails its execution, it will not call `Model#commitAddressBook()`, so the address book state will not be saved into the `addressBookStateList`. +The steps above are summarised using a sequence diagram as shown below. +![FindTaskSequenceDiagram](images/FindTaskSequenceDiagram.png) -
      +##### Design Consideration -Step 4. The user now decides that adding the person was a mistake, and decides to undo that action by executing the `undo` command. The `undo` command will call `Model#undoAddressBook()`, which will shift the `currentStatePointer` once to the left, pointing it to the previous address book state, and restores the address book to that state. +**Aspect: Should there be a separate find command for name and tag:** -![UndoRedoState3](images/UndoRedoState3.png) +* **Alternative 1 (current choice):** A combined command for finding name and tag. + * Pros: Easy to implement. + * Cons: Users may have to remember more prefixes. -
      :information_source: **Note:** If the `currentStatePointer` is at index 0, pointing to the initial AddressBook state, then there are no previous AddressBook states to restore. The `undo` command uses `Model#canUndoAddressBook()` to check if this is the case. If so, it will return an error to the user rather -than attempting to perform the undo. +* **Alternative 2:** A separate command for finding name and tag. + * Pros: Commands may be more intuitive to the users. + * Cons: Possible violation of the DRY principle. -
      +**Aspect: Should there be separate find commands for finding tasks and persons:** -The following sequence diagram shows how the undo operation works: +* **Alternative 1 (current choice):** A separate command for finding tasks and persons. + * Pros: Easy to implement. + * Cons: Hard to extend. + +* **Alternative 2:** A combined command for finding tasks and persons. + * Pros: Easier and more intuitive for the user to understand. + * Cons: Hard to implement. -![UndoSequenceDiagram](images/UndoSequenceDiagram.png) +#### 4.2.5 Get Person Feature -
      :information_source: **Note:** The lifeline for `UndoCommand` should end at the destroy marker (X) but due to a limitation of PlantUML, the lifeline reaches the end of diagram. +##### Implementation -
      +This feature allows the user to retrieve contact details of persons tagged to a selected task in the task list. It is facilitated by `ModelManager` which +makes use of the method `#updateFilteredPersonList()` to get persons tagged to a task. -The `redo` command does the opposite — it calls `Model#redoAddressBook()`, which shifts the `currentStatePointer` once to the right, pointing to the previously undone state, and restores the address book to that state. +Given below is an example usage scenario of how the get person mechanism behaves at each step. -
      :information_source: **Note:** If the `currentStatePointer` is at index `addressBookStateList.size() - 1`, pointing to the latest address book state, then there are no undone AddressBook states to restore. The `redo` command uses `Model#canRedoAddressBook()` to check if this is the case. If so, it will return an error to the user rather than attempting to perform the redo. +Step 1: The user inputs `get-person 1` to retrieve contact details of persons tagged to the first task. -
      +Step 2: This argument is passed into `LogicManager` which calls on `Coach2K22Parser#parseCommand()` to find a suitable parser class to process the user inputs. This initialises the `GetPersonCommandParser` where its method `#parse()` is called to process the user inputs. -Step 5. The user then decides to execute the command `list`. Commands that do not modify the address book, such as `list`, will usually not call `Model#commitAddressBook()`, `Model#undoAddressBook()` or `Model#redoAddressBook()`. Thus, the `addressBookStateList` remains unchanged. +Step 3: It then returns a newly initialised `GetPersonCommand` back to the `LogicManager` for command execution. -![UndoRedoState4](images/UndoRedoState4.png) +Step 4: During the command execution, the `ModelManager#updateFilteredPersonList()` is called. The GUI display then updates the person list - showing only the contact details of persons tagged to the specified task. -Step 6. The user executes `clear`, which calls `Model#commitAddressBook()`. Since the `currentStatePointer` is not pointing at the end of the `addressBookStateList`, all address book states after the `currentStatePointer` will be purged. Reason: It no longer makes sense to redo the `add n/David …​` command. This is the behavior that most modern desktop applications follow. +The steps above are summarised using a sequence diagram as shown below. +![GetPersonSequenceDiagram](images/GetPersonSequenceDiagram.png) + +### 4.3 Strategic Planning -![UndoRedoState5](images/UndoRedoState5.png) +#### 4.3.1 Add Feature -The following activity diagram summarizes what happens when a user executes a new command: +##### Implementation - +This feature allows the user to add players to the strategy board. It is facilitated by `ModelManager` which +makes use of the method `#addPlayer()` and `#updateFilteredPlayerList()` to add a new player to the strategy board. -#### Design considerations: +Given below is an example usage scenario of how the add player mechanism behaves at each step. -**Aspect: How undo & redo executes:** +Step 1: The user inputs `add-player Cena` to add a new player to the strategy board. -* **Alternative 1 (current choice):** Saves the entire address book. - * Pros: Easy to implement. - * Cons: May have performance issues in terms of memory usage. +Step 2: This argument is passed into `LogicManager` which calls on `Coach2K22Parser#parseCommand()` to find a suitable parser class to process the user inputs. This initialises the `AddPlayerCommandParser` where its method `#parse()` is called to process the user inputs. -* **Alternative 2:** Individual command knows how to undo/redo by - itself. - * Pros: Will use less memory (e.g. for `delete`, just save the person being deleted). - * Cons: We must ensure that the implementation of each individual command are correct. +Step 3: It then returns a newly initialised `AddPlayerCommand` back to the `LogicManager` for command execution. -_{more aspects and alternatives to be added}_ +Step 4: During the command execution, the `ModelManager#addPlayer()` is called which adds the new player to an internal list and updates the GUI display with a new player named "Cena" shown in the strategy board. The command results are then generated and shown to the user. -### \[Proposed\] Data archiving +The steps above are summarised using a sequence diagram as shown below. +![AddPlayerSequenceDiagram](images/AddPlayerSequenceDiagram.png) -_{Explain here how the data archiving feature will be implemented}_ +##### Design Consideration +**Aspect: Should there be an abstraction for players:** +* **Alternative 1 (current choice):** A player is a String of player name. + * Pros: Easy to implement. + * Cons: Hard to extend. +* **Alternative 2:** A player is an object of class `Player`. + * Pros: Easy to extend and manipulate attributes of a player. + * Cons: Hard to implement. + + -------------------------------------------------------------------------------------------------------------------- ## **5. Documentation, logging, testing, configuration, dev-ops** @@ -488,6 +635,8 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli (For all use cases below, the **System** is `Coach2K22` and the **Actor** is the `user`, unless specified otherwise) +#### 6.3.1 Contact Management + **Use case: Add a person** **MSS** @@ -726,6 +875,8 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli Use case ends. +#### 6.3.2 Task Management + **Use case: Add a task to the task list** **MSS** @@ -915,29 +1066,8 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli * 3b1. Coach2K22 shows an empty contact list. Use case ends - -**Use case: Load new background image for strategy tab** - -**MSS** - -1. User requests load a new background image. -2. Coach2k22 shows the updated strategy tab with the new background image. - - Use case ends. - -**Extensions** - -* 1a. Provided name of image is invalid. - Use case ends. - -* 1b. Image does not exist. - - Use case ends. - -* 1c. Image is not in `png` format. - - Use case ends. +#### 6.3.3 Strategic Planning **Use case: Add a new player to the strategy board** @@ -963,7 +1093,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli * 3c1. Coach2K22 shows an error message. Use case resumes at step 2. - + **Use case: Remove a player from the strategy board** **MSS** @@ -989,39 +1119,30 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli Use case resumes at step 2. -**Use case: Clear all players from the strategy board** +**Use case: Load new background image for strategy tab** **MSS** -1. User requests to show all players on the strategy board -2. Coach2K22 shows players -3. User requests to clear all players from the strategy board -4. Coach2K22 shows the updated strategy board without any players +1. User requests load a new background image. +2. Coach2k22 shows the updated strategy tab with the new background image. Use case ends. **Extensions** -* 2a. The strategy board is empty. - - Use case ends. - -*{More to be added}* - -**Use case: Save current strategy board** -**MSS** +* 1a. Provided name of image is invalid. -1. User requests to save a snapshot of the strategy board. -2. Coach2k22 returns an image file of the strategy board. + Use case ends. - Use case ends. +* 1b. Image does not exist. -**Extensions** + Use case ends. -* 1a. User is not viewing the strategy board. +* 1c. Image is not in `png` format. Use case ends. + ### 6.4 Non-Functional Requirements 1. Should work on any _mainstream OS_ as long as it has Java `11` or above installed. diff --git a/docs/diagrams/AddPersonSequenceDiagram.puml b/docs/diagrams/AddPersonSequenceDiagram.puml new file mode 100644 index 00000000000..10960ffe667 --- /dev/null +++ b/docs/diagrams/AddPersonSequenceDiagram.puml @@ -0,0 +1,67 @@ +@startuml +!include style.puml + +box Logic LOGIC_COLOR_T1 +participant ":LogicManager" as LogicManager LOGIC_COLOR +participant ":Coach2K22Parser" as Coach2K22Parser LOGIC_COLOR +participant ":AddPersonCommandParser" as AddPersonCommandParser LOGIC_COLOR +participant "p:AddPersonCommand" as AddPersonCommand LOGIC_COLOR +participant ":CommandResult" as CommandResult LOGIC_COLOR +end box + +box Model MODEL_COLOR_T1 +participant ":Model" as Model MODEL_COLOR +end box + +[-> LogicManager : execute("add-p n/Johnson ...") +activate LogicManager + +LogicManager -> Coach2K22Parser : parseCommand("n/Johnson ...") +activate Coach2K22Parser + +create AddPersonCommandParser +Coach2K22Parser -> AddPersonCommandParser +activate AddPersonCommandParser + +AddPersonCommandParser --> Coach2K22Parser +deactivate AddPersonCommandParser + +Coach2K22Parser -> AddPersonCommandParser : parse("n/Johnson ...") +activate AddPersonCommandParser + +create AddPersonCommand +AddPersonCommandParser -> AddPersonCommand +activate AddPersonCommand + +AddPersonCommand --> AddPersonCommandParser : p +deactivate AddPersonCommand +AddPersonCommandParser --> Coach2K22Parser : p + +AddPersonCommandParser -[hidden]-> Coach2K22Parser +destroy AddPersonCommandParser + +Coach2K22Parser --> LogicManager : p +deactivate Coach2K22Parser + +LogicManager -> AddPersonCommand : execute() +activate AddPersonCommand + +AddPersonCommand -> Model : addPerson("Johnson ...") +activate Model + +Model --> AddPersonCommand +deactivate Model + +create CommandResult +AddPersonCommand -> CommandResult +activate CommandResult + +CommandResult --> AddPersonCommand +deactivate CommandResult + +AddPersonCommand --> LogicManager : result +deactivate AddPersonCommand + +[<--LogicManager +deactivate LogicManager +@enduml diff --git a/docs/diagrams/AddTaskSequenceDiagram.puml b/docs/diagrams/AddTaskSequenceDiagram.puml index fe250c48d0f..83e5dc5c913 100644 --- a/docs/diagrams/AddTaskSequenceDiagram.puml +++ b/docs/diagrams/AddTaskSequenceDiagram.puml @@ -5,7 +5,7 @@ box Logic LOGIC_COLOR_T1 participant ":LogicManager" as LogicManager LOGIC_COLOR participant ":Coach2K22Parser" as Coach2K22Parser LOGIC_COLOR participant ":AddTaskCommandParser" as AddTaskCommandParser LOGIC_COLOR -participant "p:AddTaskCommand" as AddTaskCommand LOGIC_COLOR +participant "t:AddTaskCommand" as AddTaskCommand LOGIC_COLOR participant ":CommandResult" as CommandResult LOGIC_COLOR end box @@ -33,14 +33,14 @@ create AddTaskCommand AddTaskCommandParser -> AddTaskCommand activate AddTaskCommand -AddTaskCommand --> AddTaskCommandParser : p +AddTaskCommand --> AddTaskCommandParser : t deactivate AddTaskCommand -AddTaskCommandParser --> Coach2K22Parser : p +AddTaskCommandParser --> Coach2K22Parser : t AddTaskCommandParser -[hidden]-> Coach2K22Parser destroy AddTaskCommandParser -Coach2K22Parser --> LogicManager : p +Coach2K22Parser --> LogicManager : t deactivate Coach2K22Parser LogicManager -> AddTaskCommand : execute() diff --git a/docs/diagrams/ClearPersonSequenceDiagram.puml b/docs/diagrams/ClearPersonSequenceDiagram.puml new file mode 100644 index 00000000000..2d7c61bb3b4 --- /dev/null +++ b/docs/diagrams/ClearPersonSequenceDiagram.puml @@ -0,0 +1,65 @@ +@startuml +!include style.puml + +box Logic LOGIC_COLOR_T1 +participant ":LogicManager" as LogicManager LOGIC_COLOR +participant ":Coach2K22Parser" as Coach2K22Parser LOGIC_COLOR +participant "p:ClearPersonCommand" as ClearPersonCommand LOGIC_COLOR +participant ":CommandResult" as CommandResult LOGIC_COLOR +end box + +box Model MODEL_COLOR_T1 +participant ":Model" as Model MODEL_COLOR +end box + +[-> LogicManager : execute("clear-p") +activate LogicManager + +LogicManager -> Coach2K22Parser : parseCommand("clear-p") +activate Coach2K22Parser + +create ClearPersonCommand +Coach2K22Parser -> ClearPersonCommand +activate ClearPersonCommand + +ClearPersonCommand --> Coach2K22Parser : p +deactivate ClearPersonCommand + +Coach2K22Parser --> LogicManager : p +deactivate Coach2K22Parser + +LogicManager -> ClearPersonCommand : execute() +activate ClearPersonCommand + +ClearPersonCommand -> Model : getFilteredTaskList() +activate Model + +Model --> ClearPersonCommand +deactivate Model + +loop size of TaskList + ClearPersonCommand -> Model : setTask(editedTask) + activate Model + Model --> ClearPersonCommand + deactivate Model +end + +ClearPersonCommand -> Model : setAddressBook(new AddressBook) +activate Model + +Model --> ClearPersonCommand +deactivate Model + +create CommandResult +ClearPersonCommand -> CommandResult +activate CommandResult + +CommandResult --> ClearPersonCommand +deactivate CommandResult + +ClearPersonCommand --> LogicManager : result +deactivate ClearPersonCommand + +[<--LogicManager +deactivate LogicManager +@enduml diff --git a/docs/diagrams/DeletePersonSequenceDiagram.puml b/docs/diagrams/DeletePersonSequenceDiagram.puml new file mode 100644 index 00000000000..f6d5c4ae5ae --- /dev/null +++ b/docs/diagrams/DeletePersonSequenceDiagram.puml @@ -0,0 +1,82 @@ +@startuml +!include style.puml + +box Logic LOGIC_COLOR_T1 +participant ":LogicManager" as LogicManager LOGIC_COLOR +participant ":Coach2K22Parser" as Coach2K22Parser LOGIC_COLOR +participant ":DeletePersonCommandParser" as DeletePersonCommandParser LOGIC_COLOR +participant "p:DeletePersonCommand" as DeletePersonCommand LOGIC_COLOR +participant ":CommandResult" as CommandResult LOGIC_COLOR +end box + +box Model MODEL_COLOR_T1 +participant ":Model" as Model MODEL_COLOR +end box + +[-> LogicManager : execute("del-p 1") +activate LogicManager + +LogicManager -> Coach2K22Parser : parseCommand("del-p 1") +activate Coach2K22Parser + +create DeletePersonCommandParser +Coach2K22Parser -> DeletePersonCommandParser +activate DeletePersonCommandParser + +DeletePersonCommandParser --> Coach2K22Parser +deactivate DeletePersonCommandParser + +Coach2K22Parser -> DeletePersonCommandParser : parse("1") +activate DeletePersonCommandParser + +create DeletePersonCommand +DeletePersonCommandParser -> DeletePersonCommand +activate DeletePersonCommand + +DeletePersonCommand --> DeletePersonCommandParser : p +deactivate DeletePersonCommand +DeletePersonCommandParser --> Coach2K22Parser : p + +DeletePersonCommandParser -[hidden]-> Coach2K22Parser +destroy DeletePersonCommandParser + +Coach2K22Parser --> LogicManager : p +deactivate Coach2K22Parser + +LogicManager -> DeletePersonCommand : execute() +activate DeletePersonCommand + +DeletePersonCommand -> Model : getFilteredTaskList() +activate Model + +Model --> DeletePersonCommand +deactivate Model + +loop size of TaskList + alt task.contains(personToDelete) + DeletePersonCommand -> Model : setTask(editedTask) + activate Model + Model --> DeletePersonCommand + deactivate Model + end +end + +DeletePersonCommand -> Model : deletePerson(person) +activate Model + +Model --> DeletePersonCommand +deactivate Model + +create CommandResult +DeletePersonCommand -> CommandResult +activate CommandResult + +CommandResult --> DeletePersonCommand +deactivate CommandResult + +DeletePersonCommand --> LogicManager : result +deactivate DeletePersonCommand + +[<--LogicManager +deactivate LogicManager +@enduml diff --git a/docs/diagrams/DeleteTaskSequenceDiagram.puml b/docs/diagrams/DeleteTaskSequenceDiagram.puml new file mode 100644 index 00000000000..50d52f0240a --- /dev/null +++ b/docs/diagrams/DeleteTaskSequenceDiagram.puml @@ -0,0 +1,67 @@ +@startuml +!include style.puml + +box Logic LOGIC_COLOR_T1 +participant ":LogicManager" as LogicManager LOGIC_COLOR +participant ":Coach2K22Parser" as Coach2K22Parser LOGIC_COLOR +participant ":DeleteTaskCommandParser" as DeleteTaskCommandParser LOGIC_COLOR +participant "t:DeleteTaskCommand" as DeleteTaskCommand LOGIC_COLOR +participant ":CommandResult" as CommandResult LOGIC_COLOR +end box + +box Model MODEL_COLOR_T1 +participant ":Model" as Model MODEL_COLOR +end box + +[-> LogicManager : execute("del-t 1") +activate LogicManager + +LogicManager -> Coach2K22Parser : parseCommand("del-t 1") +activate Coach2K22Parser + +create DeleteTaskCommandParser +Coach2K22Parser -> DeleteTaskCommandParser +activate DeleteTaskCommandParser + +DeleteTaskCommandParser --> Coach2K22Parser +deactivate DeleteTaskCommandParser + +Coach2K22Parser -> DeleteTaskCommandParser : parse("1") +activate DeleteTaskCommandParser + +create DeleteTaskCommand +DeleteTaskCommandParser -> DeleteTaskCommand +activate DeleteTaskCommand + +DeleteTaskCommand --> DeleteTaskCommandParser : t +deactivate DeleteTaskCommand +DeleteTaskCommandParser --> Coach2K22Parser : t + +DeleteTaskCommandParser -[hidden]-> Coach2K22Parser +destroy DeleteTaskCommandParser + +Coach2K22Parser --> LogicManager : t +deactivate Coach2K22Parser + +LogicManager -> DeleteTaskCommand : execute() +activate DeleteTaskCommand + +DeleteTaskCommand -> Model : deleteTask(task) +activate Model + +Model --> DeleteTaskCommand +deactivate Model + +create CommandResult +DeleteTaskCommand -> CommandResult +activate CommandResult + +CommandResult --> DeleteTaskCommand +deactivate CommandResult + +DeleteTaskCommand --> LogicManager : result +deactivate DeleteTaskCommand + +[<--LogicManager +deactivate LogicManager +@enduml diff --git a/docs/diagrams/EditPersonSequenceDiagram.puml b/docs/diagrams/EditPersonSequenceDiagram.puml new file mode 100644 index 00000000000..61f8a914d1c --- /dev/null +++ b/docs/diagrams/EditPersonSequenceDiagram.puml @@ -0,0 +1,82 @@ +@startuml +!include style.puml + +box Logic LOGIC_COLOR_T1 +participant ":LogicManager" as LogicManager LOGIC_COLOR +participant ":Coach2K22Parser" as Coach2K22Parser LOGIC_COLOR +participant ":EditPersonCommandParser" as EditPersonCommandParser LOGIC_COLOR +participant "p:EditPersonCommand" as EditPersonCommand LOGIC_COLOR +participant ":CommandResult" as CommandResult LOGIC_COLOR +end box + +box Model MODEL_COLOR_T1 +participant ":Model" as Model MODEL_COLOR +end box + +[-> LogicManager : execute("edit-p 1 n/Johnson") +activate LogicManager + +LogicManager -> Coach2K22Parser : parseCommand("edit-p 1 n/Johnson") +activate Coach2K22Parser + +create EditPersonCommandParser +Coach2K22Parser -> EditPersonCommandParser +activate EditPersonCommandParser + +EditPersonCommandParser --> Coach2K22Parser +deactivate EditPersonCommandParser + +Coach2K22Parser -> EditPersonCommandParser : parse("1 n/Johnson") +activate EditPersonCommandParser + +create EditPersonCommand +EditPersonCommandParser -> EditPersonCommand +activate EditPersonCommand + +EditPersonCommand --> EditPersonCommandParser : p +deactivate EditPersonCommand +EditPersonCommandParser --> Coach2K22Parser : p + +EditPersonCommandParser -[hidden]-> Coach2K22Parser +destroy EditPersonCommandParser + +Coach2K22Parser --> LogicManager : p +deactivate Coach2K22Parser + +LogicManager -> EditPersonCommand : execute() +activate EditPersonCommand + +EditPersonCommand -> Model : getFilteredTaskList() +activate Model + +Model --> EditPersonCommand +deactivate Model + +loop size of TaskList + alt newName != prevName && task.contains(prevName) + EditPersonCommand -> Model : setTask(editedTask) + activate Model + Model --> EditPersonCommand + deactivate Model + end +end + +EditPersonCommand -> Model : setPerson(editedPerson) +activate Model + +Model --> EditPersonCommand +deactivate Model + +create CommandResult +EditPersonCommand -> CommandResult +activate CommandResult + +CommandResult --> EditPersonCommand +deactivate CommandResult + +EditPersonCommand --> LogicManager : result +deactivate EditPersonCommand + +[<--LogicManager +deactivate LogicManager +@enduml diff --git a/docs/diagrams/EditTaskSequenceDiagram.puml b/docs/diagrams/EditTaskSequenceDiagram.puml new file mode 100644 index 00000000000..4fd01813705 --- /dev/null +++ b/docs/diagrams/EditTaskSequenceDiagram.puml @@ -0,0 +1,67 @@ +@startuml +!include style.puml + +box Logic LOGIC_COLOR_T1 +participant ":LogicManager" as LogicManager LOGIC_COLOR +participant ":Coach2K22Parser" as Coach2K22Parser LOGIC_COLOR +participant ":EditTaskCommandParser" as EditTaskCommandParser LOGIC_COLOR +participant "t:EditTaskCommand" as EditTaskCommand LOGIC_COLOR +participant ":CommandResult" as CommandResult LOGIC_COLOR +end box + +box Model MODEL_COLOR_T1 +participant ":Model" as Model MODEL_COLOR +end box + +[-> LogicManager : execute("edit-t 1 n/Meeting") +activate LogicManager + +LogicManager -> Coach2K22Parser : parseCommand("edit-t 1 n/Meeting") +activate Coach2K22Parser + +create EditTaskCommandParser +Coach2K22Parser -> EditTaskCommandParser +activate EditTaskCommandParser + +EditTaskCommandParser --> Coach2K22Parser +deactivate EditTaskCommandParser + +Coach2K22Parser -> EditTaskCommandParser : parse("1 n/Meeting") +activate EditTaskCommandParser + +create EditTaskCommand +EditTaskCommandParser -> EditTaskCommand +activate EditTaskCommand + +EditTaskCommand --> EditTaskCommandParser : t +deactivate EditTaskCommand +EditTaskCommandParser --> Coach2K22Parser : t + +EditTaskCommandParser -[hidden]-> Coach2K22Parser +destroy EditTaskCommandParser + +Coach2K22Parser --> LogicManager : t +deactivate Coach2K22Parser + +LogicManager -> EditTaskCommand : execute() +activate EditTaskCommand + +EditTaskCommand -> Model : setTask(editedTask) +activate Model + +Model --> EditTaskCommand +deactivate Model + +create CommandResult +EditTaskCommand -> CommandResult +activate CommandResult + +CommandResult --> EditTaskCommand +deactivate CommandResult + +EditTaskCommand --> LogicManager : result +deactivate EditTaskCommand + +[<--LogicManager +deactivate LogicManager +@enduml diff --git a/docs/diagrams/FindPersonSequenceDiagram.puml b/docs/diagrams/FindPersonSequenceDiagram.puml index a5ffedd667a..94bdd59065e 100644 --- a/docs/diagrams/FindPersonSequenceDiagram.puml +++ b/docs/diagrams/FindPersonSequenceDiagram.puml @@ -55,7 +55,7 @@ create CommandResult FindPersonCommand -> CommandResult activate CommandResult -CommandResult <-- FindPersonCommand +CommandResult --> FindPersonCommand deactivate CommandResult FindPersonCommand -->LogicManager : result diff --git a/docs/diagrams/FindTaskSequenceDiagram.puml b/docs/diagrams/FindTaskSequenceDiagram.puml new file mode 100644 index 00000000000..2d76eaf9fb2 --- /dev/null +++ b/docs/diagrams/FindTaskSequenceDiagram.puml @@ -0,0 +1,66 @@ +@startuml +!include style.puml + +box Logic LOGIC_COLOR_T1 +participant ":LogicManager" as LogicManager LOGIC_COLOR +participant ":Coach2K22Parser" as Coach2K22Parser LOGIC_COLOR +participant ":FindTaskCommandParser" as FindTaskCommandParser LOGIC_COLOR +participant "f:FindTaskCommand" as FindTaskCommand LOGIC_COLOR +participant ":CommandResult" as CommandResult LOGIC_COLOR +end box + +box Model MODEL_COLOR_T1 +participant ":Model" as Model MODEL_COLOR +end box +[-> LogicManager : execute(arg) +activate LogicManager + +LogicManager -> Coach2K22Parser : parseCommand(arg) +activate Coach2K22Parser + +create FindTaskCommandParser +Coach2K22Parser -> FindTaskCommandParser +activate FindTaskCommandParser + +FindTaskCommandParser --> Coach2K22Parser +deactivate FindTaskCommandParser + +Coach2K22Parser -> FindTaskCommandParser : parse(arg) +activate FindTaskCommandParser + +create FindTaskCommand +FindTaskCommandParser -> FindTaskCommand +activate FindTaskCommand + +FindTaskCommand --> FindTaskCommandParser : f +deactivate FindTaskCommand + +FindTaskCommandParser --> Coach2K22Parser : f +deactivate FindTaskCommandParser + +Coach2K22Parser --> LogicManager : f +deactivate Coach2K22Parser +destroy FindTaskCommandParser + +LogicManager -> FindTaskCommand : execute() +activate FindTaskCommand + +FindTaskCommand -> Model: updateFilteredTaskList(predicate) +activate Model + +Model --> FindTaskCommand +deactivate Model + +create CommandResult +FindTaskCommand -> CommandResult +activate CommandResult + +CommandResult --> FindTaskCommand +deactivate CommandResult + +FindTaskCommand --> LogicManager : result +deactivate FindTaskCommand + +[<--LogicManager : result +deactivate LogicManager +@enduml diff --git a/docs/diagrams/GetPersonSequenceDiagram.puml b/docs/diagrams/GetPersonSequenceDiagram.puml new file mode 100644 index 00000000000..0f699162755 --- /dev/null +++ b/docs/diagrams/GetPersonSequenceDiagram.puml @@ -0,0 +1,66 @@ +@startuml +!include style.puml + +box Logic LOGIC_COLOR_T1 +participant ":LogicManager" as LogicManager LOGIC_COLOR +participant ":Coach2K22Parser" as Coach2K22Parser LOGIC_COLOR +participant ":GetPersonCommandParser" as GetPersonCommandParser LOGIC_COLOR +participant "f:GetPersonCommand" as GetPersonCommand LOGIC_COLOR +participant ":CommandResult" as CommandResult LOGIC_COLOR +end box + +box Model MODEL_COLOR_T1 +participant ":Model" as Model MODEL_COLOR +end box +[-> LogicManager : execute(arg) +activate LogicManager + +LogicManager -> Coach2K22Parser : parseCommand(arg) +activate Coach2K22Parser + +create GetPersonCommandParser +Coach2K22Parser -> GetPersonCommandParser +activate GetPersonCommandParser + +GetPersonCommandParser --> Coach2K22Parser +deactivate GetPersonCommandParser + +Coach2K22Parser -> GetPersonCommandParser : parse(arg) +activate GetPersonCommandParser + +create GetPersonCommand +GetPersonCommandParser -> GetPersonCommand +activate GetPersonCommand + +GetPersonCommand --> GetPersonCommandParser : f +deactivate GetPersonCommand + +GetPersonCommandParser --> Coach2K22Parser : f +deactivate GetPersonCommandParser + +Coach2K22Parser --> LogicManager : f +deactivate Coach2K22Parser +destroy GetPersonCommandParser + +LogicManager -> GetPersonCommand : execute() +activate GetPersonCommand + +GetPersonCommand -> Model: updateFilteredPersonList(predicate) +activate Model + +Model --> GetPersonCommand +deactivate Model + +create CommandResult +GetPersonCommand -> CommandResult +activate CommandResult + +CommandResult --> GetPersonCommand +deactivate CommandResult + +GetPersonCommand -->LogicManager : result +deactivate GetPersonCommand + +[<--LogicManager : result +deactivate LogicManager +@enduml diff --git a/docs/images/AddPersonSequenceDiagram.png b/docs/images/AddPersonSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..70d272f4bf3173f09b1b46106456ef128d60666e GIT binary patch literal 20663 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 R0FMx4@O1TaS?83{1OUkyB8~t6 literal 0 HcmV?d00001 diff --git a/docs/images/AddTaskSequenceDiagram.png b/docs/images/AddTaskSequenceDiagram.png index 811c9877347ea97c8bfbadab0726840f3730ed79..97657a0ed105170e3fddb38f21aaefc6aa5a2740 100644 GIT binary patch literal 31551 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 F{|Dy6#Kr&s literal 36973 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 diff --git a/docs/images/ClearPersonSequenceDiagram.png b/docs/images/ClearPersonSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..3f99eb2bd01448aad6a9874ba53b7ebb2d47f253 GIT binary patch literal 27818 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 Pz2mhjikCB_^gR9_@dq}9 literal 0 HcmV?d00001 diff --git a/docs/images/EditTaskSequenceDiagram.png b/docs/images/EditTaskSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..ef47ac281a06ced90c9dbea6a87fef9b888da478 GIT binary patch literal 31751 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 literal 0 HcmV?d00001 diff --git a/docs/images/FindPersonSequenceDiagram.png b/docs/images/FindPersonSequenceDiagram.png index 90228ab8796ea2e18ac79b3d1f017588417bb1f3..726a03aeaabd1752919a5933839af1353beccce8 100644 GIT binary patch literal 18678 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�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 XTh2Wcxz7P}79uaJd^=a>zTf`=OVoU& diff --git a/docs/images/FindTaskSequenceDiagram.png b/docs/images/FindTaskSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..803755426651cf070a90dc09d60dd9d726b044c5 GIT binary patch literal 23134 zcmb?@Wmr^S_$`VENP~cMDJ>v~gmfA-5(0v>(p^KTG}0j55=sx!3?SWzUB_S*C3(CXlsC}O(C{8Vl2JoLyZR9g?Me{V zRq)NNEK@G& zeq_~Ms?+FiHD_>Vd6_$wlhK7;^&PT23|%qY*+D_{m}>6d(fIEgYh>OxH+r_E9Ub72 zDzBt=-!#a7%7&G;)7PKpmP^T5#Z4-jcXfHGEoT!a+KV&j$lh0<;Y6zC3m;_jmvOS5 zOLBx}zw~EaVs|4n7ax5bH~3_Nf?k93;U`X+9`=^(4$8iwh@|}w8ZS2by@~H~ybPSX zxc>$3jwzSLn*xeYVLk)au!tLE3K!1y%E<|CL^**?l&_|3M;O&)cZrJ@p);~IfjzMZ zv48*%4Tlr^!x8t$_A3(yZuyBua(M$JUN;wT^4y{^A23r)t%nw|K4O?HI;~Z{aU^f5 za3_q~5yQRR>w;bQW@nnahGpE7ywUDH>%+rsrIk{{U5nbLp1$`?8%6>p-9B9;Lorh1k(%=ypRVRI zJ1V7LleT8zF8)Sme$IHvYsT-Jc#IQ#OOIWNr^TQxf$Ni8XgaCB)qWv9y9}mX2LjT4 z&6H~O3iG>qg8)xvU*61e;zCa`a~0!@cW)eP3*XH~NrjDWv$B>qD(c@%;ghcy8UwiS3=;*~@s@g7$-)r<(k| z>36j&1_ijabj!QjK2JZq{EqlBvJ`LDvh)w4<79Nues$TMb?k=?@!gtLpnoV<8Ezxz^~mJ2-D|8;oe=R{%FT!( zT`0X>{Ea@Q<*z(u^Oa}rOum+7Kb|BFzMh^T5LxBI2)64z(PpdG@BG%(WU&2EOK-s_ zi-)J0PJ3f66z!Rr@g%yq%ar=q`huI{y}MR2Z)7FKE!GS_j@oJk1k3W=vN}dX)6{t^ zBl*lte=`-+?PkYx;O4=iBQZ<(P>P@n@j`U9FDJu$G*t{N)w@Y+up|7dGNgUJvfGLo zGZ@6{n@$Habr|DLJmb0h=St=JTvgG6PE`f4x>=EJ#{mSQ7qP|Zy8W{%h&+ww-mj04 zv&UDcZ}6{AR}Hc0Kr8CAxEKsIH$r_J_MW-G^UiRUK1*UT_z5!TZr}#2L1)i~%RUWC zv(_P?%0&;yU)3w4ex&QFP=F4cnrB1aq0_`8KELpXvO%P<7+Q(D^`FFwGF0v_#SeI$N_ZCgY7nNSnxXRaze@r+T;@tiD_5pi2{Z z?I6NVEwm?5D9gaUJ#GjWV))n_`y3g;Z2<8+`TW{`JeFnF+g#_TB=X3d+bbdV;-&L3 zj6v=E?2RK``|a8Eip5~gGs74^XAtsPXb*ccDWWjaU0V zS=;XMcTvyd#jWX%S8s_6YuyHicbYMVKFdd>1vy9syD2f<2Zk-2E+_dLDn?CUup>JmQN4X& z2!Vr>6L~&f7PxcnIxAWkgoygO_~XJ$eTlo##8WwF8Z}xke4mjk-qc6@C32zMe|3LX zplW--!1S~D?H$#xHtJn#j>_KE=9e#}zf}8Q9EF@o z$1=6Xw>S;gK#q3(aU#O0-O)NidoJo+#Us;4$PeRENu;_J;3huec3ZG}d2yL1%LX<2~NJ~y>Ww;V9FyFM)by^ z5Q{;^IF0RW8&lyMcDGlIsuuDXhVS*Yg_N~CQO`W6TOv_Dj!+6Ay9Nz3ifeqaB+J$? zCWX{sH*#I*z zP}@hSCIy1Fkyh3nr5r@7|-!pW82l z2T$V@GzMkvAM`3eu9;t{LeK5E6%w$&oJxdAMSjE|yS=0lnGB(++g;16(=0qDUZN33 z_%BCw^*1mlW#GH09a!B<8-JB8_wZY5(JQ3~c0U*n*mN`sG<_=?8gg5{G}Iwn4@S8o5- z95zkzR_5_kM+I@g148$k?KLA`#-9*{GeLe%1^T~`xqSmW7|VNaktFDqRxxM2=Lzk4 z%VVCQ4!Y##CxsJb3(N}dn*DJGu4AUlo_ELXFU)gc6DX#86PK-he4J~+BuD)wuvo7q z@DtjTaOxU7xYK4W9Y2ebNLqs1>%(=a`xLy3J4yWhtDEy}b&TULDn1iZHBT6}gjbVN z;P)r@OfT;$_c*e!(9HdG6Q4n zO6$5SYeta-wDn=db~mwBm%N)0@I0dG9;iIQ-WR#za+l2$W-buDmtjOfqy8_aax3934Gkfh2FFK6fhb?-&&) zZ(LdourqX$Ie}a?zX7L9sk@~rwtNM`+}CW>8#ofdrK|hRwl$6h;)jS5IG|}T9{y-8 zjjk#D0fF%Z-m($Y7A5%-?<-SGis$n}DFkazgY~4SR8^23QCdjzd)$~ek&-{zMQ+b~ z^SJF8T46!s&;4qyk`a|=)#wh!`IJ4GnQ9Ls|EAINp^k~M;VlxacU{v&utt}Hs^VEU z;a7jgLIHW9Cr0rG~&eneK6s1|%6GHWaA(OT=n!{ed&tkycb-S?{zY zaox*k#upx^_couVUoJP}N5Cx#1^L!Hm`iR((F{6<@egbp-tXUW!R90F<&)W8T`lRe z?EaJ3tfFAJCbrb~nLh>0ex^I0GkGMVecoCUYGFn9UqasrS~qmd8C)yv8-EjQ72g`CvRdRvwt0_>^Kx*NIpmPhE)&R>QqKK zDml!mu&_{0bC1>Yx-t$tbYs9qypuL9H28#)UWH6?v9B-1{fQOUF6+eG0dWCEZcY=n zQq`w9xI}t3-ty>y%bHWH3^wgi^Abozjlb#*ToLduoYH+p50|sq^Nzwtu?vsz0;q!4 z?CbXqJ->qFML60MiZ#2WUg@}^c#n5HW&GZf+w!8w^i;FId0PyojqE<@Gm^fx`qui~ zKiS!k8*Y2L0qM~4rymtKpx`n|SDO`Y98;;eDmEZ z6n5Zh9x3YS`-(JCS$rD9kUl1XwJm8mO7yK(tG|tGl-E+Xnn}b<0geqFwP?2ch1kdhQ!?w>(ik5#weupX_k!40A){uRtY-Pi$Ujjq^Mez zy;jfm#wYvETXzsA`KrwCMvGyJdhJ@>-iw{tUS~-*xz(gyw1%)w+i|m!rliai9_?1553X$~~K*FS6W({FV+U1OrS<)$~4)}*;U%;x>lnp#5&tBf2O zEh>g1ke3#wgnMF)!3Mp|m_QmX$ohw_2_1{@n9rTY&&n_tyx>+hxf~Kt<^{&m(92qOK!Cc?q~ zR7m@)`YT64QqRO(5ct&0$;LDFd}U?1JNB0swjpt%l?lm^^HA>odG-5iW7{uZt+tu= zG>Euv)m=eXcra1Dd)3IpGo)iER>`6K`O|KO=xul%Y1^)#HsZFzEUa!#tkxm6^zs`I z{^!yi$otRL<`KJHJ$3lW?4}XB?;{#-2hdOv$M4EwXjAZAf4}qLZoIS;hgIn%=R(Tst~B%=50067I_7+jp=_}kAMZCs!7`AqH))^uW$4d#v3ubPT|U;l7& zLpckE4Cr25*4YvZaV!k}8xUDVc^&u^B$=c3!76p4 zqK~_43&*9L*+_(eV*WhINoC-aNz3+SoOYkUB7vfOBxC~UP z(-_zxV#3*ReK-c~O|C=Hw4|qy#Y6 z(+ENr5dMHlkTKLv&`(i6Ky(HX$$!@L3h#sG-=PZZd|vjurm7&-)Rd9JSBcp&WV|HD@Uv0iZ@6vvw`nx8#mZ9+fj83uLx{wX4q@Dh(X0@(&`fl~A( zZirS!uZ}}17{iqI*Nz(P)MtrJMuf@o4ka95V|PncsM1y+vO+kxyG>W0ND68C5oX=X z>Cr!)aZwuG&gAsek3D0~u0>R^%se$XTad6@1&sBrdG`!g{sM*)o zSIibdeshX1?9m>^EtpnG)6~>MA)(p#)HQ_uhK88SeNU}s>Q}@sPiXg8vGJ8`rahW+ z70)7Pp-c7Y1}rAuhe}-5cq?BI*%W9l8Qbst5HjxI3JnoXN^mPyOqS#`lTk{mzp^wl zqv+^p%b^?~lSLBPxNd@e7vMV!}%BN?Qx<5Rnx9=zsM zO5mAW?25^rwdJvya(MqJlnlnmh>v-_I9c=|Gt)v+gtFyLE}d9myC1zdPx+_>w%$@m z=uNFPc;zvED|u0ek&7iMNt7+mEythlHB;|bVOgb7s7(`UV>7eA!eVMV-TDk|=&Az# zL?!^o_CYn|&Scp9_0=B-Fa-_RQTU6BU+YnbMe1 zw$ruznnj1}oW%oUpB5qp>g#RQ)w#Q%=|X%rpz^KUR_ATx$(Z;l{+-@^luTE>{0_^_ zJ2E`KWxzKl3Ep*z|14!EgVlSsu^OBC4%~UlE3>bfP1cu4QXoRH{7u_5;8*Nc`yp^{ z+yDV0VAgw!sIQ}=qeQR9p)G_I8yj0W#Aa?FiN648Fq10mOd@wpZF^Qc-(`~wOz6_` zjQdLJ6ZGr767R$JT3a3IJa-;jAs%DR%r*}E`06MkvVIHKm7H5?d(2jN0*MeRdr_CE znB?Sj^gHol6wy)gQoAq;nV%BK%o|0t9jppu5)jAz^Fi&*eV!FroHcu5{?-k6J!`ecJ zc7jEgukE#69&Wg1J$}?_V?21rt7br>05?Oo%C~-8Dq^;w%(+QN+G5vsmk71h+cZor zdrkTZTywr`-fr}fP z$-S8?b|+~N*EAD!0wnm&1L)Y+NF9x6-pYMSwd+|1MReQz+E24Crym?(5D+4VKF>84 zlj@eq52t&Q%_=^B?>li9`9pvS-&Wkg6~tqr9ijq z0L%BOQcQe}s{ZFbZnL*{fiBA1Gt?i4Bn1L8n{v%lZ^X29R8)WY$N@+l)Tp9R7lmO_b zErFu*;41Tls4&PxSR3sxH_x>+V%@kQ5WAz4F`bCY1}z8X*XI`oIA0`vD$FoBJtzfx zBW?*qPZ~Bz)bVj%R){WkjrD<4DsiXPdS=C1c8+|>q1mk?kp8JZ&YGp$lku4LV9O#umk<7rpbZ4QCsYJb)`(D87 zA*phxO^5}n-WOJlMcs;ZIx-iPMZ=+=Ker=;-;3}X%YE$RHb^5OaWrc78|msImtht- z!tZ|fE@rHFI=}`mV4Em)AUU2@_-nsHO10Tix5(ncyi#DmR=NPUj7t~x^})iXB}jJZu6wwjgeW};{A-@mN@kw7?RSG@ zu&`0m$nUV&ygqUcEw}yJnwBOOd9G{gg%%f13#-~a z!FKkOaXaT%#w2YgDl!)|d|E!U*Maypl$P-cBJ>oYr+`NnM$0Y^jX6&n!$ z6}w%MrnAMbpe^5%LP`gC+K36UV*jgoc&#eIF~?S=Cr(Ku*Cg!sEp zXxF&87Nmc^d1F~d7W1ygaRG?6Oh}a(LVOlMHypF;Qb_9w-1qNA7&SoxE~B+JDS1%L zafaLsWDuLFwl85#yvIbW4|c>A_BI{+6PmB5K}277a`f|t7GFjZbF&eoMvpNf5O`!ik9y= zi6B-`K`$K}bkaInWMKUH4fC?-yT!%O@qvttATh7pTi=TzHDg4-ataFB;WyVs)VPFa4`7G-OK#*)?;KXp&vxEc^ zK65#?9-5%YNYSrfbz_&_f(Ru%4W+sQ0Mt|EMx97^4p3A|>3oPU982;Abem6Wi1P00 z?2bGHb0a|o-yeBcz^aKX^RXe^<_DKM*PJX(clU4jL3C=gRGO|CR{V{N`$B4wj#B1) zkX+{H=YUS%PAy8-jzmH!Jv=bCE|>kBXKIX)vD@60Je5Wf2{+Oukt*JvMMO2K<|+*% z+2u>)qVCZLX=@nQq_FJme<5Q0D++Wc@$GYspNURb8jIcu++0k&XixVA`8hKBSJK{~ zQ&-p?<@f|2PH_&5vqV)0Hf+>V#=@RPmd`zs?7HNpLm}upzhqihrxZ0LM$K&Wo~*kX zmc7icQNqI)x*I-nknx1Ag`ukze>-Xw`X-0;JnUy@h3MMp!9&f7D)F@~AMu~(NKr7H zv6J$Nu$vNXe(h98w!Q{OS{y0ENiaW%cIww~|IE=*^|Aag?CH@jw|04l7#iq2HMJLn ze7VR5nZFNUcNT(%CJ-E}17$*(Yh+(c2_jo;?9DJ>n^FdaxL^Iwzp!6DPavpM{d4HAhZSYhN8;avue6cL{Tw8B!M==h z9Txwo-qFSjb+TAK`LZ5O_UR$+9+d97{3<8PlyzQb2eu+v+PQN{&2z$cBK{6e;&(z$T6 zK9|gJ_m&wL0lTG+ujVUD)u6si_c|9y+~J5Ef={fC;XSR_7qhbVPn&(v~5gGbSJfxT{=Cil9%hX2O?Kon)l&&*~5G*o+&~5`ANX@jR;(~>VqvX31;M^pUE{iEO{ab*o|2tXkqVy zv68kYkMLY>#g(y))5Z3t`&^d~v(R2bHZqkum}WL!Zmo~t*nN~+2xF4B0ewc|rOuM) z>OoSWOwH`L_(*n+jimHhrTrv_^jJ}Q=0Bkx+NpnCGaN`Jt25`mKyB43dC>-i-g#h zMCuf(a|rl$Yum~5a-~eiagP&+A$xwS>II-E*<5l!aIaSS)9QQ~_m@>3@Kj)mjAFS# zCO=$znD#hEL3($$!`-NQF$v&4du9~q1R=C!k{<6mJzyIsp$CgM<^H&Ve24G<@CxH{ zveCW$b9K%bP|;I2r~ohC@~3!ch% zjF=d7n|hvH)aEl8B;n(V=tm>wdVrQwNBUywL$Y*akgJ!MYsSd%Cl(?#dHLioc-vAR z945o4xHFh3LntKT*stG%5$eVZ-0q=0TQfsa`$mdV*BiEAd^y}>kF@Oyy^vLuS;X3v z4c_Bz$T05kvbQ%F%UAVvqfsX@r8x%F(H(LM8@-QiWFBWK_9oGmZfMBK1> z*ZUm*^lUp|-t(b5BJB%;H>Ut0dNBk}u=xv%jv5n)i4e!mCMl>%2yN%-X3 z&`w&0imIwLB_sl#8@SyIx)(eqqp-6puXJNOoeA5dnn1&Y$o1%o@V$usWPw?XIH2d3 z$^t4H-ds0-PoQSNV&q1vv`=SK)T-mp;{~HV)o0e?xFO7GX}QE@&hFBySI%D&l%+3w zg)n{A6QVmLnqqoOj<=K=Zz(lyIhL0GVDsZR<`NctMn^9i=6BEn3ssuBI0~8yL1IE4 z+RjkelgPlSe&ovf#7s30qU6hc{k<#qI5#TN`K z1*Z!2+z$Ha;o|PJ-GC8Hs>5!%PPg=!p_M4}7yl7fVuN7bsR%jnzpor@TctL7+wT=R zN_LtV%tRcbgC6b-Dp!Ns>DHG=_1^J*mnmuZ1}4CFu)m+@TmrZz1inOx8ofX z?`nJY5fL>Okz7FNlJqse1RVrCfND{7r^T|KU2T~@=+e!)m}Z_|^2p@&kb}Xab5Xzj zeQzOgUh@x&vM%7l2l8=kvqBNa>e;QQ3(*hnN}L}jwG3UI$7Rzp;yCQpZ=j-oCwtR~ zls$ve@y7R5?GA5Rs8&@D&d(2U-o<@yKe`1TTOp)sz#RC~AaZYKwEHOTQT45<9)PD|6f<@7;35yh`xaVjghdU^7f) z{}Jp4KERp|?t35IDT_P4-$2$1iMt#NAvF4kSOP3nShHKd=?GB)sICml@3Nk{5-mD- z9Xw_#iW>(&Sx{u)w_=D|I&6lIw|`F|{x2j16u&<~A_3nZZ19i|Qu?a~ck4&&06y<@ z_4l&d8^QDP4DhhDGdZ>PPFC!Rhyvr5P=Fvv=}!bIah?^w=qS>yl73!%Tj<0HaH7AC z_!BFs-QM3n9zKmX3%^B_l72};2H-0J#hyC=(QIr6!4&|X^YN8nV%n~a-bJ&oc|{6X z>yM`AK-`KHxV5EOFp8D<_ALack_W5z49`zfwNr%n*aZcJZks6EY^55uECcDydVM&I z_2|%=V2R@hF!%01XveF2W~iK&la{bFOF5lQ+iKba?KYl(fb9%=sL$DCV`)Ny8-Ai} zsM`7YSrgpdeYVn4;ASWQ*yZK6k}E*Ml3t?VV?<$m0q(iYDh^6TwQU}|9|~V&FTZ)7 zAzLg*tpfJ$8GpEr;s2jur@LvJ<#Iio#Z{s1jtpP!wj#Fld$e!XLEKLs*i5<4)XQ)( z+8rTnC<#lUK+EchHy=nOdFZq%GWdXLVIqXIhLqjYgfrU9^CyLg3Pn0QVm=T&Z|@Q0{_|J^FpvB3USRT{#93U!@Mn?>oB)!-SbJX0DUbek{_ zz=*%=qI^0uuwPmV>ACBF^M{$4eqfuiu`;8DKvLF@i7G9f4>SGCoa*sce9rai`^OCg{N9V&_p%CfRFKc^`)S?67HG49m;Eez z5n<6u3SDqFh38)%fka338->W^LDTQQhCz4SfkS{FNH9>nNFYo5TxK*iIb-bt%|Q8) zU_oIv@s8JGI;H<5RPLZrr$ci+@g84GlI58n;pU$#+}16&?&?gaM|>FM)%bLLpkB&g z2hC8tgzT_nG~mm|J)gr+FW4sxRi7^{viMSu;D2^vTX(}06J+Ijlvgk23nqg@|FssM z7ZAsu#DHF1R^=i_FNQw#`N^VKQ9`LNlD`RE2EzIcbnI4w*u1j0VPihodC4dR-}gQ( zRa9>OQ#LXY{IVipjc{>R@xg=BbPSMMJl_3PjC9maA;|xHbNU8Kesj_LX&U(w4{_aJ z=?E5X#|Dpgib9_u=4OjrdE21%hvA?~M|?DFZP)*aXsnNdN@v59Hr$9O&s!;ZG-F{N zfA(>=zIb&kLQ-ip7^QzUtS1kfK!0{z^GD3_2vms};oais)))Oxx%puM6?oE6LW(T6 z7__Z?f1WSj-is@ZwC=vB$v|kxg0>2(`N9gJQ3VuBzqsfpx@W&kuaB^QgZA?&H~cf% z!-S(c732VhX$kx9s0@UT5wvyB)G(dZCvY?ATVrX-*6VSv&sq=VSs4P=Qw8}M2(iIX zS0_;I!0>@7VWC4(OAbf!N%QW!|XT#OzN7l%2m2~ou2QaV-ZR9wx$F`cNGoGgTMy__K| zisiq%I=J8)G2pUKtUT}&_**hTiVciC95L%nFkTLgg?;|dY(AA@gCsb&g>bhtb2Se+ zZ`hFdUvI$^Z=~U6{i-v3fP64dGD7*_KIsj1t^N{?9zoM??EG^;_3|T7M8QObYyDY? z{gKut!*Uw2$X@sSX-|ukPb~mS(vPo`4%7thp&M7;juhaiV&3Qo0B!Rx)^#huf)pGa&&yX*o7m+Iy4^*(+mZ_6 z7Q?DFn_phD>^{$ylXN;5+ue;XonG#9&0L(S*)AQF4zw}u_{Jv;&~Gr!c-;}13qfes z)T{b8-3bCWZ%#?<13pGT=Y8#tzyIvYvc5dF2O%HvaEFoRXhrHn+iqRg-;ecI3`zoE z76Y5SY#)7FZr=EA|61z9Z4$1VP`ZbsPH~gdFOmpb+q~{3HO1cPYEVoTWh}Ruc2A%c z<$PfgGA4fR6dx$xFfN=+`JxsfZwS^V)6tQq>=oQWfHwh;Q^#ceWcZWqw1Rrr`FOGJ zU<#TpCIGGERK#k5gS+sLT}nh>1uQE$c=tG}vd~)@=*z9(@#Df~=zwtB@hN(_NL?-` z=l(l3-#`U)?gAwTC}lZGS>ZwbC|?F32a93LSX%?Y`BN}8y+1TmvNhvn*@_htq3Q^N zY=5sfG#P8hX`%gLp8#HS3wKD*#j(uHCT1wPb?1FsLIEP*YGQi2sPV^E_Fd7A*x2#7 z0aW88v5Sk3Fj5jh zSl6-&93AwEJ1n~NCCLpVX3o*1EQlP9uk%F?s7Il>8Ts z(!aJ!2ECjQEuVku*LZ2e069UE?E`csjMlo=RV63HaJIp=mHi6H34ej}4Xo~&V@`PJ z)1_suShmMV5@u>TzUA?qIe9MqdfjM*>t-#y@iG$_m-Opg=n5vjz|jql)}4QRV|a|r z8mO=wa79!rV~O$XxTT9>s;d=e_!L@LNaQL=x$cXTKiTk45(XQ9?QA6w9QrRpG4lv6F8-ga^`BFJCsJ^x zPb8|BZ+ELKfSoQ!9l8E*76N`0b=PNw#Qmv}u`urp1jf#X;?Ba6l|k4US?kXc<>%$p zs`yN0IRAk3Uxyt&HcR#XV7}B9lQ2ffVM)9q{ZG}9gl~{^&j0{{Y8wgvJ{;S0`!C%2 z>oHILpsuFBp@AQCj3^c+mWg;l@vjHePgg+}&08Ed%x52-enqV1%i7CQqgDf)D>uJrC%m0k}j-;o-sBQh1CX9dO zKaU_-fY2)8$_FsflU+;b8W;rdlYfW{!&5*j0lp; zMT=aa3k3%ej@vOcO{(d(uAE@%{+X0aAce}MC~Z~VUq4iC@z&u-bfn+rPsiWjfY4j~ zzSF-58CX1^YwuoK5WSe=6BIjW>(1nMlc`q|FJ8}BRKigaZ&=>>;wvcK9XI|&v^;+M zdgn_bf6x%gZ%?WmoBCPl(@W8{(LWOe@@BA%cA zEPpJi&2#)NccltEC10^#>*R8ZDD0ofV10~q@c-gFp5G`ya4B2SDK3z^jXj9=cgzHu zck4$|xeI?f`2uk4fhdCoiZP=29xS|64fz)E-xNIgSkN*+HHH6RksUoK%S4RW>vCwM zpuj&^CKlE|hwj1k51F`XT0+MPNtK4z(f?~5yY*L8kX*maC;zAb|K3g5gH*qh;d}~I z;8ue{z2IHZ^Un@(X()6}^+)MqGo6K+HjWlye*EZ}qnBe2#%a;o)+7A=WDB0qfzE2= zZU=u%3^%LR8Z{UcuuyWDzbpUO6O%>@jSEy$(Rp2Ni5=YK26gug1}ex=;yWO`zoKoO z?*ILM_dKDlv6rulj60&brOr|Bc>pUqaN&f9$APZ1Sn{ybjY|S&jZB0yz5&cp@*fT2 zftc9(_T6T0{k!u6-uF?kN;r^UwFb=EUomy3OH6#pA#3(yseyYSXptPQwBMt1$yozS zH6|1b!^!%?^V@pF=I&l5xK0F~f3aAN5MekAir;9{qDh!~ePz94j5>{s(EL#ivF;~x z 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 VZ`V9q3`x(cY<{t~DziLx{=WoPl`{YU literal 0 HcmV?d00001 diff --git a/docs/images/GetPersonSequenceDiagram.png b/docs/images/GetPersonSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..1d9e6305afaa2ea7b5e3533db4d76c663ce2b96f GIT binary patch literal 23849 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 literal 0 HcmV?d00001 From 71d60ae9e219a4f524c4fe6c248c53bd17bc0f0c Mon Sep 17 00:00:00 2001 From: simjunheng Date: Fri, 8 Apr 2022 14:51:20 +0800 Subject: [PATCH 348/455] Fix sectio numbering errors --- docs/DeveloperGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index c7dea1463f5..05dbd7d5783 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -524,7 +524,7 @@ The steps above are summarised using a sequence diagram as shown below. * Pros: Easier and more intuitive for the user to understand. * Cons: Hard to implement. -#### 4.2.5 Get Person Feature +#### 4.2.6 Get Person Feature ##### Implementation From 3399e9c64ac8e09a44ee1441ff6c381cfd612bb7 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Fri, 8 Apr 2022 15:35:49 +0800 Subject: [PATCH 349/455] Update UI component diagram --- docs/images/UiClassDiagram.png | Bin 46833 -> 65430 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/UiClassDiagram.png b/docs/images/UiClassDiagram.png index 785e04dbab40ede401c3da7ad992eff33e625d83..8b927451dcd5845435e3e0ea55fedefc80828bd9 100644 GIT binary patch literal 65430 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 SmKlHp{-h-o#H&S(g8vs?h1?DR literal 46833 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 From dbadd1dec5719fdcbe2298d9a910d0ff5ed668c3 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Fri, 8 Apr 2022 18:19:47 +0800 Subject: [PATCH 350/455] Shift commands into package and rename person commands --- .../seedu/address/logic/LogicManager.java | 8 +- .../AddPersonCommand.java} | 12 +- .../AddPersonTagCommand.java} | 14 +- .../ClearPersonCommand.java} | 6 +- .../DeletePersonCommand.java} | 12 +- .../DeletePersonTagCommand.java} | 14 +- .../EditPersonCommand.java} | 12 +- .../FindPersonCommand.java} | 16 ++- .../ListPersonCommand.java} | 6 +- .../{ => person}/SortStrengthCommand.java | 4 +- .../{ => person}/SortTaskByDateCommand.java | 4 +- .../{ => person}/SortWeaknessCommand.java | 4 +- .../notecommands/AddMiscCommand.java | 2 +- .../notecommands/AddStrengthCommand.java | 2 +- .../notecommands/AddWeaknessCommand.java | 2 +- .../notecommands/DeleteMiscCommand.java | 2 +- .../notecommands/DeleteStrengthCommand.java | 2 +- .../notecommands/DeleteWeaknessCommand.java | 2 +- .../{ => strategy}/ExportCommand.java | 4 +- .../{ => strategy}/LoadCourtCommand.java | 4 +- .../commands/{ => task}/AddTaskCommand.java | 4 +- .../AddTaskTagCommand.java} | 15 ++- .../commands/{ => task}/ClearTaskCommand.java | 4 +- .../{ => task}/DeleteTaskCommand.java | 4 +- .../DeleteTaskTagCommand.java} | 14 +- .../commands/{ => task}/EditTaskCommand.java | 4 +- .../commands/{ => task}/FindTaskCommand.java | 4 +- .../commands/{ => task}/GetPersonCommand.java | 4 +- .../commands/{ => task}/ListTaskCommand.java | 4 +- ...ssBookParser.java => Coach2K22Parser.java} | 125 ++++++++++-------- .../AddPersonCommandParser.java} | 17 ++- .../AddPersonTagCommandParser.java} | 18 ++- .../DeletePersonCommandParser.java} | 14 +- .../DeletePersonTagCommandParser.java} | 19 ++- .../EditPersonCommandParser.java} | 19 ++- .../FindPersonCommandParser.java} | 17 ++- .../notecommands}/AddMiscCommandParser.java | 4 +- .../AddStrengthCommandParser.java | 4 +- .../AddWeaknessCommandParser.java | 4 +- .../DeleteMiscCommandParser.java | 4 +- .../DeleteStrengthCommandParser.java | 4 +- .../DeleteWeaknessCommandParser.java | 4 +- .../LoadCourtCommandParser.java | 6 +- .../{ => task}/AddTaskCommandParser.java | 9 +- .../AddTaskTagCommandParser.java} | 18 ++- .../{ => task}/ClearTaskCommandParser.java | 9 +- .../{ => task}/DeleteTaskCommandParser.java | 6 +- .../DeleteTaskTagCommandParser.java} | 18 ++- .../{ => task}/EditTaskCommandParser.java | 8 +- .../{ => task}/FindTaskCommandParser.java | 9 +- .../{ => task}/GetPersonCommandParser.java | 6 +- .../seedu/address/logic/LogicManagerTest.java | 10 +- .../AddPersonCommandIntegrationTest.java} | 12 +- .../AddPersonCommandTest.java} | 22 +-- .../AddPersonTagCommandTest.java} | 12 +- .../ClearPersonCommandTest.java} | 10 +- .../DeletePersonCommandTest.java} | 26 ++-- .../DeletePersonTagCommandTest.java} | 12 +- .../EditPersonCommandTest.java} | 46 +++---- .../EditPersonDescriptorTest.java | 2 +- .../FindPersonCommandTest.java} | 14 +- .../ListPersonCommandTest.java} | 10 +- .../{ => person}/SortStrengthCommandTest.java | 7 +- .../{ => person}/SortWeaknessCommandTest.java | 7 +- .../notecommand}/AddMiscCommandTest.java | 7 +- .../notecommand}/AddStrengthCommandTest.java | 7 +- .../notecommand}/AddWeaknessCommandTest.java | 7 +- .../notecommand}/DeleteMiscCommandTest.java | 4 +- .../DeleteStrengthCommandTest.java | 4 +- .../DeleteWeaknessCommandTest.java | 4 +- .../{ => strategy}/LoadCourtCommandTest.java | 5 +- .../{ => task}/AddTaskCommandTest.java | 2 +- .../AddTaskTagCommandTest.java} | 12 +- .../{ => task}/ClearTaskCommandTest.java | 2 +- .../{ => task}/DeleteTaskCommandTest.java | 2 +- .../DeleteTaskTagCommandTest.java} | 14 +- .../{ => task}/EditTaskCommandTest.java | 5 +- .../{ => task}/EditTaskDescriptorTest.java | 2 +- .../{ => task}/FindTaskCommandTest.java | 2 +- .../{ => task}/GetPersonCommandTest.java | 3 +- .../{ => task}/ListTaskCommandTest.java | 2 +- .../{ => task}/SortTaskByDateCommandTest.java | 3 +- ...rserTest.java => Coach2K22ParserTest.java} | 64 ++++----- .../AddPersonCommandParserTest.java} | 26 ++-- .../AddPersonTagCommandParserTest.java} | 12 +- .../DeletePersonCommandParserTest.java} | 13 +- .../DeletePersonTagCommandParserTest.java} | 12 +- .../EditPersonCommandParserTest.java} | 34 ++--- .../FindPersonCommandParserTest.java} | 15 ++- .../AddMiscCommandParserTest.java | 6 +- .../AddStrengthCommandParserTest.java | 6 +- .../AddWeaknessCommandParserTest.java | 6 +- .../DeleteMiscCommandParserTest.java | 6 +- .../DeleteStrengthCommandParserTest.java | 6 +- .../DeleteWeaknessCommandParserTest.java | 6 +- .../LoadCourtCommandParserTest.java | 4 +- .../{ => task}/AddTaskCommandParserTest.java | 4 +- .../AddTaskTagCommandParserTest.java} | 12 +- .../ClearTaskCommandParserTest.java | 4 +- .../DeleteTaskCommandParserTest.java | 4 +- .../DeleteTaskTagCommandParserTest.java} | 14 +- .../{ => task}/EditTaskCommandParserTest.java | 4 +- .../{ => task}/FindTaskCommandParserTest.java | 4 +- .../GetPersonCommandParserTest.java | 4 +- .../seedu/address/testutil/PersonUtil.java | 4 +- 105 files changed, 606 insertions(+), 472 deletions(-) rename src/main/java/seedu/address/logic/commands/{AddCommand.java => person/AddPersonCommand.java} (84%) rename src/main/java/seedu/address/logic/commands/{AddTagCommand.java => person/AddPersonTagCommand.java} (89%) rename src/main/java/seedu/address/logic/commands/{ClearCommand.java => person/ClearPersonCommand.java} (92%) rename src/main/java/seedu/address/logic/commands/{DeleteCommand.java => person/DeletePersonCommand.java} (89%) rename src/main/java/seedu/address/logic/commands/{DeleteTagCommand.java => person/DeletePersonTagCommand.java} (88%) rename src/main/java/seedu/address/logic/commands/{EditCommand.java => person/EditPersonCommand.java} (94%) rename src/main/java/seedu/address/logic/commands/{FindCommand.java => person/FindPersonCommand.java} (75%) rename src/main/java/seedu/address/logic/commands/{ListCommand.java => person/ListPersonCommand.java} (74%) rename src/main/java/seedu/address/logic/commands/{ => person}/SortStrengthCommand.java (93%) rename src/main/java/seedu/address/logic/commands/{ => person}/SortTaskByDateCommand.java (92%) rename src/main/java/seedu/address/logic/commands/{ => person}/SortWeaknessCommand.java (93%) rename src/main/java/seedu/address/logic/commands/{ => person}/notecommands/AddMiscCommand.java (98%) rename src/main/java/seedu/address/logic/commands/{ => person}/notecommands/AddStrengthCommand.java (98%) rename src/main/java/seedu/address/logic/commands/{ => person}/notecommands/AddWeaknessCommand.java (98%) rename src/main/java/seedu/address/logic/commands/{ => person}/notecommands/DeleteMiscCommand.java (98%) rename src/main/java/seedu/address/logic/commands/{ => person}/notecommands/DeleteStrengthCommand.java (98%) rename src/main/java/seedu/address/logic/commands/{ => person}/notecommands/DeleteWeaknessCommand.java (98%) rename src/main/java/seedu/address/logic/commands/{ => strategy}/ExportCommand.java (87%) rename src/main/java/seedu/address/logic/commands/{ => strategy}/LoadCourtCommand.java (94%) rename src/main/java/seedu/address/logic/commands/{ => task}/AddTaskCommand.java (96%) rename src/main/java/seedu/address/logic/commands/{AddTagToTaskCommand.java => task/AddTaskTagCommand.java} (88%) rename src/main/java/seedu/address/logic/commands/{ => task}/ClearTaskCommand.java (96%) rename src/main/java/seedu/address/logic/commands/{ => task}/DeleteTaskCommand.java (92%) rename src/main/java/seedu/address/logic/commands/{DeleteTagFromTaskCommand.java => task/DeleteTaskTagCommand.java} (88%) rename src/main/java/seedu/address/logic/commands/{ => task}/EditTaskCommand.java (97%) rename src/main/java/seedu/address/logic/commands/{ => task}/FindTaskCommand.java (94%) rename src/main/java/seedu/address/logic/commands/{ => task}/GetPersonCommand.java (96%) rename src/main/java/seedu/address/logic/commands/{ => task}/ListTaskCommand.java (81%) rename src/main/java/seedu/address/logic/parser/{AddressBookParser.java => Coach2K22Parser.java} (50%) rename src/main/java/seedu/address/logic/parser/{AddCommandParser.java => person/AddPersonCommandParser.java} (81%) rename src/main/java/seedu/address/logic/parser/{AddTagCommandParser.java => person/AddPersonTagCommandParser.java} (75%) rename src/main/java/seedu/address/logic/parser/{DeleteCommandParser.java => person/DeletePersonCommandParser.java} (62%) rename src/main/java/seedu/address/logic/parser/{DeleteTagCommandParser.java => person/DeletePersonTagCommandParser.java} (74%) rename src/main/java/seedu/address/logic/parser/{EditCommandParser.java => person/EditPersonCommandParser.java} (82%) rename src/main/java/seedu/address/logic/parser/{FindCommandParser.java => person/FindPersonCommandParser.java} (76%) rename src/main/java/seedu/address/logic/parser/{notecommandparsers => person/notecommands}/AddMiscCommandParser.java (90%) rename src/main/java/seedu/address/logic/parser/{notecommandparsers => person/notecommands}/AddStrengthCommandParser.java (90%) rename src/main/java/seedu/address/logic/parser/{notecommandparsers => person/notecommands}/AddWeaknessCommandParser.java (90%) rename src/main/java/seedu/address/logic/parser/{notecommandparsers => person/notecommands}/DeleteMiscCommandParser.java (90%) rename src/main/java/seedu/address/logic/parser/{notecommandparsers => person/notecommands}/DeleteStrengthCommandParser.java (90%) rename src/main/java/seedu/address/logic/parser/{notecommandparsers => person/notecommands}/DeleteWeaknessCommandParser.java (90%) rename src/main/java/seedu/address/logic/parser/{ => strategy}/LoadCourtCommandParser.java (83%) rename src/main/java/seedu/address/logic/parser/{ => task}/AddTaskCommandParser.java (89%) rename src/main/java/seedu/address/logic/parser/{AddTagToTaskCommandParser.java => task/AddTaskTagCommandParser.java} (76%) rename src/main/java/seedu/address/logic/parser/{ => task}/ClearTaskCommandParser.java (85%) rename src/main/java/seedu/address/logic/parser/{ => task}/DeleteTaskCommandParser.java (83%) rename src/main/java/seedu/address/logic/parser/{DeleteTagFromTaskCommandParser.java => task/DeleteTaskTagCommandParser.java} (77%) rename src/main/java/seedu/address/logic/parser/{ => task}/EditTaskCommandParser.java (93%) rename src/main/java/seedu/address/logic/parser/{ => task}/FindTaskCommandParser.java (87%) rename src/main/java/seedu/address/logic/parser/{ => task}/GetPersonCommandParser.java (83%) rename src/test/java/seedu/address/logic/commands/{AddCommandIntegrationTest.java => person/AddPersonCommandIntegrationTest.java} (74%) rename src/test/java/seedu/address/logic/commands/{AddCommandTest.java => person/AddPersonCommandTest.java} (91%) rename src/test/java/seedu/address/logic/commands/{AddTagCommandTest.java => person/AddPersonTagCommandTest.java} (87%) rename src/test/java/seedu/address/logic/commands/{ClearCommandTest.java => person/ClearPersonCommandTest.java} (82%) rename src/test/java/seedu/address/logic/commands/{DeleteCommandTest.java => person/DeletePersonCommandTest.java} (80%) rename src/test/java/seedu/address/logic/commands/{DeleteTagCommandTest.java => person/DeletePersonTagCommandTest.java} (86%) rename src/test/java/seedu/address/logic/commands/{EditCommandTest.java => person/EditPersonCommandTest.java} (78%) rename src/test/java/seedu/address/logic/commands/{ => person}/EditPersonDescriptorTest.java (98%) rename src/test/java/seedu/address/logic/commands/{FindCommandTest.java => person/FindPersonCommandTest.java} (88%) rename src/test/java/seedu/address/logic/commands/{ListCommandTest.java => person/ListPersonCommandTest.java} (76%) rename src/test/java/seedu/address/logic/commands/{ => person}/SortStrengthCommandTest.java (86%) rename src/test/java/seedu/address/logic/commands/{ => person}/SortWeaknessCommandTest.java (86%) rename src/test/java/seedu/address/logic/commands/{ => person/notecommand}/AddMiscCommandTest.java (95%) rename src/test/java/seedu/address/logic/commands/{ => person/notecommand}/AddStrengthCommandTest.java (95%) rename src/test/java/seedu/address/logic/commands/{ => person/notecommand}/AddWeaknessCommandTest.java (95%) rename src/test/java/seedu/address/logic/commands/{ => person/notecommand}/DeleteMiscCommandTest.java (97%) rename src/test/java/seedu/address/logic/commands/{ => person/notecommand}/DeleteStrengthCommandTest.java (97%) rename src/test/java/seedu/address/logic/commands/{ => person/notecommand}/DeleteWeaknessCommandTest.java (97%) rename src/test/java/seedu/address/logic/commands/{ => strategy}/LoadCourtCommandTest.java (90%) rename src/test/java/seedu/address/logic/commands/{ => task}/AddTaskCommandTest.java (99%) rename src/test/java/seedu/address/logic/commands/{AddTagToTaskCommandTest.java => task/AddTaskTagCommandTest.java} (87%) rename src/test/java/seedu/address/logic/commands/{ => task}/ClearTaskCommandTest.java (99%) rename src/test/java/seedu/address/logic/commands/{ => task}/DeleteTaskCommandTest.java (98%) rename src/test/java/seedu/address/logic/commands/{DeleteTagFromTaskCommandTest.java => task/DeleteTaskTagCommandTest.java} (85%) rename src/test/java/seedu/address/logic/commands/{ => task}/EditTaskCommandTest.java (97%) rename src/test/java/seedu/address/logic/commands/{ => task}/EditTaskDescriptorTest.java (98%) rename src/test/java/seedu/address/logic/commands/{ => task}/FindTaskCommandTest.java (99%) rename src/test/java/seedu/address/logic/commands/{ => task}/GetPersonCommandTest.java (98%) rename src/test/java/seedu/address/logic/commands/{ => task}/ListTaskCommandTest.java (97%) rename src/test/java/seedu/address/logic/commands/{ => task}/SortTaskByDateCommandTest.java (96%) rename src/test/java/seedu/address/logic/parser/{AddressBookParserTest.java => Coach2K22ParserTest.java} (73%) rename src/test/java/seedu/address/logic/parser/{AddCommandParserTest.java => person/AddPersonCommandParserTest.java} (87%) rename src/test/java/seedu/address/logic/parser/{AddTagCommandParserTest.java => person/AddPersonTagCommandParserTest.java} (67%) rename src/test/java/seedu/address/logic/parser/{DeleteCommandParserTest.java => person/DeletePersonCommandParserTest.java} (66%) rename src/test/java/seedu/address/logic/parser/{DeleteTagCommandParserTest.java => person/DeletePersonTagCommandParserTest.java} (66%) rename src/test/java/seedu/address/logic/parser/{EditCommandParserTest.java => person/EditPersonCommandParserTest.java} (88%) rename src/test/java/seedu/address/logic/parser/{FindCommandParserTest.java => person/FindPersonCommandParserTest.java} (69%) rename src/test/java/seedu/address/logic/parser/{ => person/notecommand}/AddMiscCommandParserTest.java (88%) rename src/test/java/seedu/address/logic/parser/{ => person/notecommand}/AddStrengthCommandParserTest.java (88%) rename src/test/java/seedu/address/logic/parser/{ => person/notecommand}/AddWeaknessCommandParserTest.java (88%) rename src/test/java/seedu/address/logic/parser/{ => person/notecommand}/DeleteMiscCommandParserTest.java (85%) rename src/test/java/seedu/address/logic/parser/{ => person/notecommand}/DeleteStrengthCommandParserTest.java (85%) rename src/test/java/seedu/address/logic/parser/{ => person/notecommand}/DeleteWeaknessCommandParserTest.java (85%) rename src/test/java/seedu/address/logic/parser/{ => strategy}/LoadCourtCommandParserTest.java (93%) rename src/test/java/seedu/address/logic/parser/{ => task}/AddTaskCommandParserTest.java (98%) rename src/test/java/seedu/address/logic/parser/{AddTagToTaskCommandParserTest.java => task/AddTaskTagCommandParserTest.java} (69%) rename src/test/java/seedu/address/logic/parser/{ => task}/ClearTaskCommandParserTest.java (93%) rename src/test/java/seedu/address/logic/parser/{ => task}/DeleteTaskCommandParserTest.java (89%) rename src/test/java/seedu/address/logic/parser/{DeleteTagFromTaskCommandParserTest.java => task/DeleteTaskTagCommandParserTest.java} (74%) rename src/test/java/seedu/address/logic/parser/{ => task}/EditTaskCommandParserTest.java (99%) rename src/test/java/seedu/address/logic/parser/{ => task}/FindTaskCommandParserTest.java (93%) rename src/test/java/seedu/address/logic/parser/{ => task}/GetPersonCommandParserTest.java (92%) diff --git a/src/main/java/seedu/address/logic/LogicManager.java b/src/main/java/seedu/address/logic/LogicManager.java index cd9bdac26ac..c8c64ef603a 100644 --- a/src/main/java/seedu/address/logic/LogicManager.java +++ b/src/main/java/seedu/address/logic/LogicManager.java @@ -10,7 +10,7 @@ import seedu.address.logic.commands.Command; import seedu.address.logic.commands.CommandResult; import seedu.address.logic.commands.exceptions.CommandException; -import seedu.address.logic.parser.AddressBookParser; +import seedu.address.logic.parser.Coach2K22Parser; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.Model; import seedu.address.model.ReadOnlyAddressBook; @@ -28,7 +28,7 @@ public class LogicManager implements Logic { private final Model model; private final Storage storage; - private final AddressBookParser addressBookParser; + private final Coach2K22Parser parser; /** * Constructs a {@code LogicManager} with the given {@code Model} and {@code Storage}. @@ -36,7 +36,7 @@ public class LogicManager implements Logic { public LogicManager(Model model, Storage storage) { this.model = model; this.storage = storage; - addressBookParser = new AddressBookParser(); + parser = new Coach2K22Parser(); } @Override @@ -44,7 +44,7 @@ public CommandResult execute(String commandText) throws CommandException, ParseE logger.info("----------------[USER COMMAND][" + commandText + "]"); CommandResult commandResult; - Command command = addressBookParser.parseCommand(commandText); + Command command = parser.parseCommand(commandText); commandResult = command.execute(model); try { diff --git a/src/main/java/seedu/address/logic/commands/AddCommand.java b/src/main/java/seedu/address/logic/commands/person/AddPersonCommand.java similarity index 84% rename from src/main/java/seedu/address/logic/commands/AddCommand.java rename to src/main/java/seedu/address/logic/commands/person/AddPersonCommand.java index 6b23c9eca6a..341d2b39561 100644 --- a/src/main/java/seedu/address/logic/commands/AddCommand.java +++ b/src/main/java/seedu/address/logic/commands/person/AddPersonCommand.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.person; import static java.util.Objects.requireNonNull; import static seedu.address.logic.parser.CliSyntax.PREFIX_ADDRESS; @@ -7,6 +7,8 @@ import static seedu.address.logic.parser.CliSyntax.PREFIX_PHONE; import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; +import seedu.address.logic.commands.Command; +import seedu.address.logic.commands.CommandResult; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; import seedu.address.model.person.Person; @@ -14,7 +16,7 @@ /** * Adds a person to the address book. */ -public class AddCommand extends Command { +public class AddPersonCommand extends Command { public static final String COMMAND_WORD = "add-p"; @@ -41,7 +43,7 @@ public class AddCommand extends Command { /** * Creates an AddCommand to add the specified {@code Person} */ - public AddCommand(Person person) { + public AddPersonCommand(Person person) { requireNonNull(person); toAdd = person; } @@ -61,7 +63,7 @@ public CommandResult execute(Model model) throws CommandException { @Override public boolean equals(Object other) { return other == this // short circuit if same object - || (other instanceof AddCommand // instanceof handles nulls - && toAdd.equals(((AddCommand) other).toAdd)); + || (other instanceof AddPersonCommand // instanceof handles nulls + && toAdd.equals(((AddPersonCommand) other).toAdd)); } } diff --git a/src/main/java/seedu/address/logic/commands/AddTagCommand.java b/src/main/java/seedu/address/logic/commands/person/AddPersonTagCommand.java similarity index 89% rename from src/main/java/seedu/address/logic/commands/AddTagCommand.java rename to src/main/java/seedu/address/logic/commands/person/AddPersonTagCommand.java index 117f49c76ce..a9ed70f3652 100644 --- a/src/main/java/seedu/address/logic/commands/AddTagCommand.java +++ b/src/main/java/seedu/address/logic/commands/person/AddPersonTagCommand.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.person; import static java.util.Objects.requireNonNull; import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; @@ -10,6 +10,8 @@ import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.Command; +import seedu.address.logic.commands.CommandResult; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; import seedu.address.model.name.Name; @@ -20,7 +22,7 @@ import seedu.address.model.person.Phone; import seedu.address.model.tag.Tag; -public class AddTagCommand extends Command { +public class AddPersonTagCommand extends Command { public static final String COMMAND_WORD = "tag-add-p"; public static final String MESSAGE_USAGE = COMMAND_WORD + ": Add a tag to a person from our contact list. " @@ -42,7 +44,7 @@ public class AddTagCommand extends Command { * @param index Index of person to add tag to * @param tagName Name of tag */ - public AddTagCommand(Index index, String tagName) { + public AddPersonTagCommand(Index index, String tagName) { requireAllNonNull(index, tagName); this.index = index; @@ -110,9 +112,9 @@ private Person addTagToPerson(Person personToEdit) throws CommandException { public boolean equals(Object other) { return other == this // short circuit if same object - || (other instanceof AddTagCommand // instanceof handles nulls - && (index.equals(((AddTagCommand) other).index) - && tagName.equals((((AddTagCommand) other).tagName)))); + || (other instanceof AddPersonTagCommand // instanceof handles nulls + && (index.equals(((AddPersonTagCommand) other).index) + && tagName.equals((((AddPersonTagCommand) other).tagName)))); } } diff --git a/src/main/java/seedu/address/logic/commands/ClearCommand.java b/src/main/java/seedu/address/logic/commands/person/ClearPersonCommand.java similarity index 92% rename from src/main/java/seedu/address/logic/commands/ClearCommand.java rename to src/main/java/seedu/address/logic/commands/person/ClearPersonCommand.java index 70307b7d4b5..14ac2e9ee9d 100644 --- a/src/main/java/seedu/address/logic/commands/ClearCommand.java +++ b/src/main/java/seedu/address/logic/commands/person/ClearPersonCommand.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.person; import static java.util.Objects.requireNonNull; @@ -7,6 +7,8 @@ import java.util.Set; import seedu.address.logic.EditTaskDescriptor; +import seedu.address.logic.commands.Command; +import seedu.address.logic.commands.CommandResult; import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.name.Name; @@ -19,7 +21,7 @@ /** * Clears the address book. */ -public class ClearCommand extends Command { +public class ClearPersonCommand extends Command { public static final String COMMAND_WORD = "clear-p"; public static final String MESSAGE_SUCCESS = "Address book has been cleared!"; diff --git a/src/main/java/seedu/address/logic/commands/DeleteCommand.java b/src/main/java/seedu/address/logic/commands/person/DeletePersonCommand.java similarity index 89% rename from src/main/java/seedu/address/logic/commands/DeleteCommand.java rename to src/main/java/seedu/address/logic/commands/person/DeletePersonCommand.java index 6b0fd92cd80..ec7fdbf632a 100644 --- a/src/main/java/seedu/address/logic/commands/DeleteCommand.java +++ b/src/main/java/seedu/address/logic/commands/person/DeletePersonCommand.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.person; import static java.util.Objects.requireNonNull; @@ -9,6 +9,8 @@ import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; import seedu.address.logic.EditTaskDescriptor; +import seedu.address.logic.commands.Command; +import seedu.address.logic.commands.CommandResult; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; import seedu.address.model.name.Name; @@ -22,7 +24,7 @@ /** * Deletes a person identified using it's displayed index from the address book. */ -public class DeleteCommand extends Command { +public class DeletePersonCommand extends Command { public static final String COMMAND_WORD = "del-p"; @@ -35,7 +37,7 @@ public class DeleteCommand extends Command { private final Index targetIndex; - public DeleteCommand(Index targetIndex) { + public DeletePersonCommand(Index targetIndex) { this.targetIndex = targetIndex; } @@ -86,7 +88,7 @@ public static Task createEditedTask(Task taskToEdit, EditTaskDescriptor editTask @Override public boolean equals(Object other) { return other == this // short circuit if same object - || (other instanceof DeleteCommand // instanceof handles nulls - && targetIndex.equals(((DeleteCommand) other).targetIndex)); // state check + || (other instanceof DeletePersonCommand // instanceof handles nulls + && targetIndex.equals(((DeletePersonCommand) other).targetIndex)); // state check } } diff --git a/src/main/java/seedu/address/logic/commands/DeleteTagCommand.java b/src/main/java/seedu/address/logic/commands/person/DeletePersonTagCommand.java similarity index 88% rename from src/main/java/seedu/address/logic/commands/DeleteTagCommand.java rename to src/main/java/seedu/address/logic/commands/person/DeletePersonTagCommand.java index 662fb83afde..75e4c72467c 100644 --- a/src/main/java/seedu/address/logic/commands/DeleteTagCommand.java +++ b/src/main/java/seedu/address/logic/commands/person/DeletePersonTagCommand.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.person; import static java.util.Objects.requireNonNull; import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; @@ -10,6 +10,8 @@ import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.Command; +import seedu.address.logic.commands.CommandResult; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; import seedu.address.model.name.Name; @@ -20,7 +22,7 @@ import seedu.address.model.person.Phone; import seedu.address.model.tag.Tag; -public class DeleteTagCommand extends Command { +public class DeletePersonTagCommand extends Command { public static final String COMMAND_WORD = "tag-del-p"; public static final String MESSAGE_USAGE = COMMAND_WORD + ": Delete a tag from a person in our contact list. " @@ -42,7 +44,7 @@ public class DeleteTagCommand extends Command { * @param tagName Name of tag */ - public DeleteTagCommand(Index index, String tagName) { + public DeletePersonTagCommand(Index index, String tagName) { requireAllNonNull(index, tagName); this.index = index; @@ -104,8 +106,8 @@ private Person deleteTagFromPerson(Person personToEdit) { public boolean equals(Object other) { return other == this // short circuit if same object - || (other instanceof DeleteTagCommand // instanceof handles nulls - && (index.equals(((DeleteTagCommand) other).index) - && tagName.equals((((DeleteTagCommand) other).tagName)))); + || (other instanceof DeletePersonTagCommand // instanceof handles nulls + && (index.equals(((DeletePersonTagCommand) other).index) + && tagName.equals((((DeletePersonTagCommand) other).tagName)))); } } diff --git a/src/main/java/seedu/address/logic/commands/EditCommand.java b/src/main/java/seedu/address/logic/commands/person/EditPersonCommand.java similarity index 94% rename from src/main/java/seedu/address/logic/commands/EditCommand.java rename to src/main/java/seedu/address/logic/commands/person/EditPersonCommand.java index 1bdf598f3eb..5642de6ecff 100644 --- a/src/main/java/seedu/address/logic/commands/EditCommand.java +++ b/src/main/java/seedu/address/logic/commands/person/EditPersonCommand.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.person; import static java.util.Objects.requireNonNull; import static seedu.address.logic.parser.CliSyntax.PREFIX_ADDRESS; @@ -16,6 +16,8 @@ import seedu.address.commons.core.index.Index; import seedu.address.logic.EditPersonDescriptor; import seedu.address.logic.EditTaskDescriptor; +import seedu.address.logic.commands.Command; +import seedu.address.logic.commands.CommandResult; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; import seedu.address.model.name.Name; @@ -33,7 +35,7 @@ /** * Edits the details of an existing person in the address book. */ -public class EditCommand extends Command { +public class EditPersonCommand extends Command { public static final String COMMAND_WORD = "edit-p"; @@ -61,7 +63,7 @@ public class EditCommand extends Command { * @param index of the person in the filtered person list to edit * @param editPersonDescriptor details to edit the person with */ - public EditCommand(Index index, EditPersonDescriptor editPersonDescriptor) { + public EditPersonCommand(Index index, EditPersonDescriptor editPersonDescriptor) { requireNonNull(index); requireNonNull(editPersonDescriptor); @@ -150,12 +152,12 @@ public boolean equals(Object other) { } // instanceof handles nulls - if (!(other instanceof EditCommand)) { + if (!(other instanceof EditPersonCommand)) { return false; } // state check - EditCommand e = (EditCommand) other; + EditPersonCommand e = (EditPersonCommand) other; return index.equals(e.index) && editPersonDescriptor.equals(e.editPersonDescriptor); } diff --git a/src/main/java/seedu/address/logic/commands/FindCommand.java b/src/main/java/seedu/address/logic/commands/person/FindPersonCommand.java similarity index 75% rename from src/main/java/seedu/address/logic/commands/FindCommand.java rename to src/main/java/seedu/address/logic/commands/person/FindPersonCommand.java index 7fa850ed694..30948a6c67d 100644 --- a/src/main/java/seedu/address/logic/commands/FindCommand.java +++ b/src/main/java/seedu/address/logic/commands/person/FindPersonCommand.java @@ -1,10 +1,12 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.person; import static java.util.Objects.requireNonNull; import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; import seedu.address.commons.core.Messages; +import seedu.address.logic.commands.Command; +import seedu.address.logic.commands.CommandResult; import seedu.address.model.Model; import seedu.address.model.name.PersonNameContainsKeywordsPredicate; import seedu.address.model.tag.PersonTagContainsKeywordsPredicate; @@ -13,7 +15,7 @@ * Finds and lists all persons in address book whose name contains any of the argument keywords. * Keyword matching is case insensitive. */ -public class FindCommand extends Command { +public class FindPersonCommand extends Command { public static final String COMMAND_WORD = "find-p"; @@ -32,8 +34,8 @@ public class FindCommand extends Command { /** * Initialises new object using {@code namePredicate} and {@code tagPredicate} */ - public FindCommand(PersonNameContainsKeywordsPredicate namePredicate, - PersonTagContainsKeywordsPredicate tagPredicate) { + public FindPersonCommand(PersonNameContainsKeywordsPredicate namePredicate, + PersonTagContainsKeywordsPredicate tagPredicate) { this.namePredicate = namePredicate; this.tagPredicate = tagPredicate; } @@ -49,8 +51,8 @@ public CommandResult execute(Model model) { @Override public boolean equals(Object other) { return other == this // short circuit if same object - || (other instanceof FindCommand // instanceof handles nulls - && namePredicate.equals(((FindCommand) other).namePredicate) - && tagPredicate.equals(((FindCommand) other).tagPredicate)); // state check + || (other instanceof FindPersonCommand // instanceof handles nulls + && namePredicate.equals(((FindPersonCommand) other).namePredicate) + && tagPredicate.equals(((FindPersonCommand) other).tagPredicate)); // state check } } diff --git a/src/main/java/seedu/address/logic/commands/ListCommand.java b/src/main/java/seedu/address/logic/commands/person/ListPersonCommand.java similarity index 74% rename from src/main/java/seedu/address/logic/commands/ListCommand.java rename to src/main/java/seedu/address/logic/commands/person/ListPersonCommand.java index d605059a546..342fc2f0d5a 100644 --- a/src/main/java/seedu/address/logic/commands/ListCommand.java +++ b/src/main/java/seedu/address/logic/commands/person/ListPersonCommand.java @@ -1,14 +1,16 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.person; import static java.util.Objects.requireNonNull; import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; +import seedu.address.logic.commands.Command; +import seedu.address.logic.commands.CommandResult; import seedu.address.model.Model; /** * Lists all persons in the address book to the user. */ -public class ListCommand extends Command { +public class ListPersonCommand extends Command { public static final String COMMAND_WORD = "list-p"; diff --git a/src/main/java/seedu/address/logic/commands/SortStrengthCommand.java b/src/main/java/seedu/address/logic/commands/person/SortStrengthCommand.java similarity index 93% rename from src/main/java/seedu/address/logic/commands/SortStrengthCommand.java rename to src/main/java/seedu/address/logic/commands/person/SortStrengthCommand.java index 44483b910ff..ef455f164fc 100644 --- a/src/main/java/seedu/address/logic/commands/SortStrengthCommand.java +++ b/src/main/java/seedu/address/logic/commands/person/SortStrengthCommand.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.person; import static java.util.Objects.requireNonNull; @@ -7,6 +7,8 @@ import java.util.List; import seedu.address.commons.core.Messages; +import seedu.address.logic.commands.Command; +import seedu.address.logic.commands.CommandResult; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.AddressBook; import seedu.address.model.Model; diff --git a/src/main/java/seedu/address/logic/commands/SortTaskByDateCommand.java b/src/main/java/seedu/address/logic/commands/person/SortTaskByDateCommand.java similarity index 92% rename from src/main/java/seedu/address/logic/commands/SortTaskByDateCommand.java rename to src/main/java/seedu/address/logic/commands/person/SortTaskByDateCommand.java index 7139a0a6f97..d40af4d35f4 100644 --- a/src/main/java/seedu/address/logic/commands/SortTaskByDateCommand.java +++ b/src/main/java/seedu/address/logic/commands/person/SortTaskByDateCommand.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.person; import static java.util.Objects.requireNonNull; @@ -6,6 +6,8 @@ import java.util.Collections; import java.util.List; +import seedu.address.logic.commands.Command; +import seedu.address.logic.commands.CommandResult; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; import seedu.address.model.TaskBook; diff --git a/src/main/java/seedu/address/logic/commands/SortWeaknessCommand.java b/src/main/java/seedu/address/logic/commands/person/SortWeaknessCommand.java similarity index 93% rename from src/main/java/seedu/address/logic/commands/SortWeaknessCommand.java rename to src/main/java/seedu/address/logic/commands/person/SortWeaknessCommand.java index dba727bc162..5200af42883 100644 --- a/src/main/java/seedu/address/logic/commands/SortWeaknessCommand.java +++ b/src/main/java/seedu/address/logic/commands/person/SortWeaknessCommand.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.person; import static java.util.Objects.requireNonNull; @@ -7,6 +7,8 @@ import java.util.List; import seedu.address.commons.core.Messages; +import seedu.address.logic.commands.Command; +import seedu.address.logic.commands.CommandResult; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.AddressBook; import seedu.address.model.Model; diff --git a/src/main/java/seedu/address/logic/commands/notecommands/AddMiscCommand.java b/src/main/java/seedu/address/logic/commands/person/notecommands/AddMiscCommand.java similarity index 98% rename from src/main/java/seedu/address/logic/commands/notecommands/AddMiscCommand.java rename to src/main/java/seedu/address/logic/commands/person/notecommands/AddMiscCommand.java index 0c5b022b266..4acbd17a6be 100644 --- a/src/main/java/seedu/address/logic/commands/notecommands/AddMiscCommand.java +++ b/src/main/java/seedu/address/logic/commands/person/notecommands/AddMiscCommand.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands.notecommands; +package seedu.address.logic.commands.person.notecommands; import static java.util.Objects.requireNonNull; import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; diff --git a/src/main/java/seedu/address/logic/commands/notecommands/AddStrengthCommand.java b/src/main/java/seedu/address/logic/commands/person/notecommands/AddStrengthCommand.java similarity index 98% rename from src/main/java/seedu/address/logic/commands/notecommands/AddStrengthCommand.java rename to src/main/java/seedu/address/logic/commands/person/notecommands/AddStrengthCommand.java index e41418c2b24..11caadd531c 100644 --- a/src/main/java/seedu/address/logic/commands/notecommands/AddStrengthCommand.java +++ b/src/main/java/seedu/address/logic/commands/person/notecommands/AddStrengthCommand.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands.notecommands; +package seedu.address.logic.commands.person.notecommands; import static java.util.Objects.requireNonNull; import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; diff --git a/src/main/java/seedu/address/logic/commands/notecommands/AddWeaknessCommand.java b/src/main/java/seedu/address/logic/commands/person/notecommands/AddWeaknessCommand.java similarity index 98% rename from src/main/java/seedu/address/logic/commands/notecommands/AddWeaknessCommand.java rename to src/main/java/seedu/address/logic/commands/person/notecommands/AddWeaknessCommand.java index c8d4e0b7c29..20cfab88243 100644 --- a/src/main/java/seedu/address/logic/commands/notecommands/AddWeaknessCommand.java +++ b/src/main/java/seedu/address/logic/commands/person/notecommands/AddWeaknessCommand.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands.notecommands; +package seedu.address.logic.commands.person.notecommands; import static java.util.Objects.requireNonNull; import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; diff --git a/src/main/java/seedu/address/logic/commands/notecommands/DeleteMiscCommand.java b/src/main/java/seedu/address/logic/commands/person/notecommands/DeleteMiscCommand.java similarity index 98% rename from src/main/java/seedu/address/logic/commands/notecommands/DeleteMiscCommand.java rename to src/main/java/seedu/address/logic/commands/person/notecommands/DeleteMiscCommand.java index 219f5bf570b..1fdc5a1682c 100644 --- a/src/main/java/seedu/address/logic/commands/notecommands/DeleteMiscCommand.java +++ b/src/main/java/seedu/address/logic/commands/person/notecommands/DeleteMiscCommand.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands.notecommands; +package seedu.address.logic.commands.person.notecommands; import static java.util.Objects.requireNonNull; import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; diff --git a/src/main/java/seedu/address/logic/commands/notecommands/DeleteStrengthCommand.java b/src/main/java/seedu/address/logic/commands/person/notecommands/DeleteStrengthCommand.java similarity index 98% rename from src/main/java/seedu/address/logic/commands/notecommands/DeleteStrengthCommand.java rename to src/main/java/seedu/address/logic/commands/person/notecommands/DeleteStrengthCommand.java index 74d043bd8f3..efff2d3f9c6 100644 --- a/src/main/java/seedu/address/logic/commands/notecommands/DeleteStrengthCommand.java +++ b/src/main/java/seedu/address/logic/commands/person/notecommands/DeleteStrengthCommand.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands.notecommands; +package seedu.address.logic.commands.person.notecommands; import static java.util.Objects.requireNonNull; import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; diff --git a/src/main/java/seedu/address/logic/commands/notecommands/DeleteWeaknessCommand.java b/src/main/java/seedu/address/logic/commands/person/notecommands/DeleteWeaknessCommand.java similarity index 98% rename from src/main/java/seedu/address/logic/commands/notecommands/DeleteWeaknessCommand.java rename to src/main/java/seedu/address/logic/commands/person/notecommands/DeleteWeaknessCommand.java index 359484c41af..4fe85b98645 100644 --- a/src/main/java/seedu/address/logic/commands/notecommands/DeleteWeaknessCommand.java +++ b/src/main/java/seedu/address/logic/commands/person/notecommands/DeleteWeaknessCommand.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands.notecommands; +package seedu.address.logic.commands.person.notecommands; import static java.util.Objects.requireNonNull; import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; diff --git a/src/main/java/seedu/address/logic/commands/ExportCommand.java b/src/main/java/seedu/address/logic/commands/strategy/ExportCommand.java similarity index 87% rename from src/main/java/seedu/address/logic/commands/ExportCommand.java rename to src/main/java/seedu/address/logic/commands/strategy/ExportCommand.java index 6a1bd2f5fac..a8e361d1418 100644 --- a/src/main/java/seedu/address/logic/commands/ExportCommand.java +++ b/src/main/java/seedu/address/logic/commands/strategy/ExportCommand.java @@ -1,10 +1,12 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.strategy; import static seedu.address.commons.core.Tabs.DEFAULT; import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; import java.util.UUID; +import seedu.address.logic.commands.Command; +import seedu.address.logic.commands.CommandResult; import seedu.address.model.Model; public class ExportCommand extends Command { diff --git a/src/main/java/seedu/address/logic/commands/LoadCourtCommand.java b/src/main/java/seedu/address/logic/commands/strategy/LoadCourtCommand.java similarity index 94% rename from src/main/java/seedu/address/logic/commands/LoadCourtCommand.java rename to src/main/java/seedu/address/logic/commands/strategy/LoadCourtCommand.java index f1000572af8..60a0699569f 100644 --- a/src/main/java/seedu/address/logic/commands/LoadCourtCommand.java +++ b/src/main/java/seedu/address/logic/commands/strategy/LoadCourtCommand.java @@ -1,10 +1,12 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.strategy; import static seedu.address.commons.core.Tabs.DEFAULT; import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; import java.io.File; +import seedu.address.logic.commands.Command; +import seedu.address.logic.commands.CommandResult; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; import seedu.address.model.image.Image; diff --git a/src/main/java/seedu/address/logic/commands/AddTaskCommand.java b/src/main/java/seedu/address/logic/commands/task/AddTaskCommand.java similarity index 96% rename from src/main/java/seedu/address/logic/commands/AddTaskCommand.java rename to src/main/java/seedu/address/logic/commands/task/AddTaskCommand.java index 0e9e54b7b49..a60dc0092ba 100644 --- a/src/main/java/seedu/address/logic/commands/AddTaskCommand.java +++ b/src/main/java/seedu/address/logic/commands/task/AddTaskCommand.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.task; import static java.util.Objects.requireNonNull; import static seedu.address.logic.parser.CliSyntax.PREFIX_CONTACT; @@ -11,6 +11,8 @@ import java.util.List; import java.util.Set; +import seedu.address.logic.commands.Command; +import seedu.address.logic.commands.CommandResult; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; import seedu.address.model.name.Name; diff --git a/src/main/java/seedu/address/logic/commands/AddTagToTaskCommand.java b/src/main/java/seedu/address/logic/commands/task/AddTaskTagCommand.java similarity index 88% rename from src/main/java/seedu/address/logic/commands/AddTagToTaskCommand.java rename to src/main/java/seedu/address/logic/commands/task/AddTaskTagCommand.java index 71380122152..edbb674145f 100644 --- a/src/main/java/seedu/address/logic/commands/AddTagToTaskCommand.java +++ b/src/main/java/seedu/address/logic/commands/task/AddTaskTagCommand.java @@ -1,8 +1,7 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.task; import static java.util.Objects.requireNonNull; import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; -import static seedu.address.logic.commands.AddTagCommand.MESSAGE_ADD_TAG_SUCCESS; import static seedu.address.model.Model.PREDICATE_SHOW_ALL_TASKS; import java.util.HashSet; @@ -11,6 +10,8 @@ import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.Command; +import seedu.address.logic.commands.CommandResult; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; import seedu.address.model.name.Name; @@ -20,7 +21,7 @@ import seedu.address.model.task.StartTime; import seedu.address.model.task.Task; -public class AddTagToTaskCommand extends Command { +public class AddTaskTagCommand extends Command { public static final String COMMAND_WORD = "tag-add-t"; public static final String MESSAGE_USAGE = COMMAND_WORD + ": Add a tag to a task from our task list. " @@ -41,7 +42,7 @@ public class AddTagToTaskCommand extends Command { * @param index Index of target task * @param tagName Tag to be added to the target task */ - public AddTagToTaskCommand(Index index, String tagName) { + public AddTaskTagCommand(Index index, String tagName) { requireAllNonNull(index, tagName); this.index = index; @@ -105,9 +106,9 @@ private Task addTagToTask(Task taskToEdit) throws CommandException { public boolean equals(Object other) { return other == this // short circuit if same object - || (other instanceof AddTagToTaskCommand // instanceof handles nulls - && (index.equals(((AddTagToTaskCommand) other).index) - && tagName.equals((((AddTagToTaskCommand) other).tagName)))); + || (other instanceof AddTaskTagCommand // instanceof handles nulls + && (index.equals(((AddTaskTagCommand) other).index) + && tagName.equals((((AddTaskTagCommand) other).tagName)))); } } diff --git a/src/main/java/seedu/address/logic/commands/ClearTaskCommand.java b/src/main/java/seedu/address/logic/commands/task/ClearTaskCommand.java similarity index 96% rename from src/main/java/seedu/address/logic/commands/ClearTaskCommand.java rename to src/main/java/seedu/address/logic/commands/task/ClearTaskCommand.java index e13d9d62a87..549c6b10724 100644 --- a/src/main/java/seedu/address/logic/commands/ClearTaskCommand.java +++ b/src/main/java/seedu/address/logic/commands/task/ClearTaskCommand.java @@ -1,10 +1,12 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.task; import static java.util.Objects.requireNonNull; import static seedu.address.logic.parser.CliSyntax.PREFIX_DATE; import java.util.List; +import seedu.address.logic.commands.Command; +import seedu.address.logic.commands.CommandResult; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; import seedu.address.model.TaskBook; diff --git a/src/main/java/seedu/address/logic/commands/DeleteTaskCommand.java b/src/main/java/seedu/address/logic/commands/task/DeleteTaskCommand.java similarity index 92% rename from src/main/java/seedu/address/logic/commands/DeleteTaskCommand.java rename to src/main/java/seedu/address/logic/commands/task/DeleteTaskCommand.java index 74ab57c6173..5bba8a26cf7 100644 --- a/src/main/java/seedu/address/logic/commands/DeleteTaskCommand.java +++ b/src/main/java/seedu/address/logic/commands/task/DeleteTaskCommand.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.task; import static java.util.Objects.requireNonNull; @@ -6,6 +6,8 @@ import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.Command; +import seedu.address.logic.commands.CommandResult; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; import seedu.address.model.task.Task; diff --git a/src/main/java/seedu/address/logic/commands/DeleteTagFromTaskCommand.java b/src/main/java/seedu/address/logic/commands/task/DeleteTaskTagCommand.java similarity index 88% rename from src/main/java/seedu/address/logic/commands/DeleteTagFromTaskCommand.java rename to src/main/java/seedu/address/logic/commands/task/DeleteTaskTagCommand.java index 24556114b71..f75a9659282 100644 --- a/src/main/java/seedu/address/logic/commands/DeleteTagFromTaskCommand.java +++ b/src/main/java/seedu/address/logic/commands/task/DeleteTaskTagCommand.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.task; import static java.util.Objects.requireNonNull; import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; @@ -10,6 +10,8 @@ import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.Command; +import seedu.address.logic.commands.CommandResult; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; import seedu.address.model.name.Name; @@ -19,7 +21,7 @@ import seedu.address.model.task.StartTime; import seedu.address.model.task.Task; -public class DeleteTagFromTaskCommand extends Command { +public class DeleteTaskTagCommand extends Command { public static final String COMMAND_WORD = "tag-del-t"; public static final String MESSAGE_USAGE = COMMAND_WORD + ": Delete a tag to a task from our task list. " @@ -41,7 +43,7 @@ public class DeleteTagFromTaskCommand extends Command { * @param index Index of target task * @param tagName Tag to be added to the target task */ - public DeleteTagFromTaskCommand(Index index, String tagName) { + public DeleteTaskTagCommand(Index index, String tagName) { requireAllNonNull(index, tagName); this.index = index; @@ -108,9 +110,9 @@ private Task deleteTagFromTask(Task taskToEdit) throws CommandException { public boolean equals(Object other) { return other == this // short circuit if same object - || (other instanceof DeleteTagFromTaskCommand // instanceof handles nulls - && (index.equals(((DeleteTagFromTaskCommand) other).index) - && tagName.equals((((DeleteTagFromTaskCommand) other).tagName)))); + || (other instanceof DeleteTaskTagCommand // instanceof handles nulls + && (index.equals(((DeleteTaskTagCommand) other).index) + && tagName.equals((((DeleteTaskTagCommand) other).tagName)))); } } diff --git a/src/main/java/seedu/address/logic/commands/EditTaskCommand.java b/src/main/java/seedu/address/logic/commands/task/EditTaskCommand.java similarity index 97% rename from src/main/java/seedu/address/logic/commands/EditTaskCommand.java rename to src/main/java/seedu/address/logic/commands/task/EditTaskCommand.java index 41210975c2f..4973e380f68 100644 --- a/src/main/java/seedu/address/logic/commands/EditTaskCommand.java +++ b/src/main/java/seedu/address/logic/commands/task/EditTaskCommand.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.task; import static java.util.Objects.requireNonNull; import static seedu.address.logic.parser.CliSyntax.PREFIX_CONTACT; @@ -15,6 +15,8 @@ import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; import seedu.address.logic.EditTaskDescriptor; +import seedu.address.logic.commands.Command; +import seedu.address.logic.commands.CommandResult; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; import seedu.address.model.name.Name; diff --git a/src/main/java/seedu/address/logic/commands/FindTaskCommand.java b/src/main/java/seedu/address/logic/commands/task/FindTaskCommand.java similarity index 94% rename from src/main/java/seedu/address/logic/commands/FindTaskCommand.java rename to src/main/java/seedu/address/logic/commands/task/FindTaskCommand.java index cd168dfdfcb..b9e64890edb 100644 --- a/src/main/java/seedu/address/logic/commands/FindTaskCommand.java +++ b/src/main/java/seedu/address/logic/commands/task/FindTaskCommand.java @@ -1,10 +1,12 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.task; import static java.util.Objects.requireNonNull; import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; import seedu.address.commons.core.Messages; +import seedu.address.logic.commands.Command; +import seedu.address.logic.commands.CommandResult; import seedu.address.model.Model; import seedu.address.model.name.TaskNameContainsKeywordsPredicate; import seedu.address.model.tag.TaskTagContainsKeywordsPredicate; diff --git a/src/main/java/seedu/address/logic/commands/GetPersonCommand.java b/src/main/java/seedu/address/logic/commands/task/GetPersonCommand.java similarity index 96% rename from src/main/java/seedu/address/logic/commands/GetPersonCommand.java rename to src/main/java/seedu/address/logic/commands/task/GetPersonCommand.java index a31c644b41d..b98c80221ef 100644 --- a/src/main/java/seedu/address/logic/commands/GetPersonCommand.java +++ b/src/main/java/seedu/address/logic/commands/task/GetPersonCommand.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.task; import static java.util.Objects.requireNonNull; import static seedu.address.commons.core.Tabs.CONTACT_TAB; @@ -10,6 +10,8 @@ import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.Command; +import seedu.address.logic.commands.CommandResult; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.Model; import seedu.address.model.name.Name; diff --git a/src/main/java/seedu/address/logic/commands/ListTaskCommand.java b/src/main/java/seedu/address/logic/commands/task/ListTaskCommand.java similarity index 81% rename from src/main/java/seedu/address/logic/commands/ListTaskCommand.java rename to src/main/java/seedu/address/logic/commands/task/ListTaskCommand.java index 5d947bbeca7..eb8e6c4d5c7 100644 --- a/src/main/java/seedu/address/logic/commands/ListTaskCommand.java +++ b/src/main/java/seedu/address/logic/commands/task/ListTaskCommand.java @@ -1,8 +1,10 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.task; import static java.util.Objects.requireNonNull; import static seedu.address.model.Model.PREDICATE_SHOW_ALL_TASKS; +import seedu.address.logic.commands.Command; +import seedu.address.logic.commands.CommandResult; import seedu.address.model.Model; /** diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/Coach2K22Parser.java similarity index 50% rename from src/main/java/seedu/address/logic/parser/AddressBookParser.java rename to src/main/java/seedu/address/logic/parser/Coach2K22Parser.java index 76f83a247dd..ebe5b50bb0b 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/Coach2K22Parser.java @@ -6,55 +6,70 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -import seedu.address.logic.commands.AddCommand; -import seedu.address.logic.commands.AddTagCommand; -import seedu.address.logic.commands.AddTagToTaskCommand; -import seedu.address.logic.commands.AddTaskCommand; -import seedu.address.logic.commands.ClearCommand; -import seedu.address.logic.commands.ClearTaskCommand; import seedu.address.logic.commands.Command; -import seedu.address.logic.commands.DeleteCommand; -import seedu.address.logic.commands.DeleteTagCommand; -import seedu.address.logic.commands.DeleteTagFromTaskCommand; -import seedu.address.logic.commands.DeleteTaskCommand; -import seedu.address.logic.commands.EditCommand; -import seedu.address.logic.commands.EditTaskCommand; import seedu.address.logic.commands.ExitCommand; -import seedu.address.logic.commands.ExportCommand; -import seedu.address.logic.commands.FindCommand; -import seedu.address.logic.commands.FindTaskCommand; -import seedu.address.logic.commands.GetPersonCommand; import seedu.address.logic.commands.HelpCommand; -import seedu.address.logic.commands.ListCommand; -import seedu.address.logic.commands.ListTaskCommand; -import seedu.address.logic.commands.LoadCourtCommand; -import seedu.address.logic.commands.SortStrengthCommand; -import seedu.address.logic.commands.SortTaskByDateCommand; -import seedu.address.logic.commands.SortWeaknessCommand; -import seedu.address.logic.commands.notecommands.AddMiscCommand; -import seedu.address.logic.commands.notecommands.AddStrengthCommand; -import seedu.address.logic.commands.notecommands.AddWeaknessCommand; -import seedu.address.logic.commands.notecommands.DeleteMiscCommand; -import seedu.address.logic.commands.notecommands.DeleteStrengthCommand; -import seedu.address.logic.commands.notecommands.DeleteWeaknessCommand; +import seedu.address.logic.commands.person.AddPersonCommand; +import seedu.address.logic.commands.person.AddPersonTagCommand; +import seedu.address.logic.commands.person.ClearPersonCommand; +import seedu.address.logic.commands.person.DeletePersonCommand; +import seedu.address.logic.commands.person.DeletePersonTagCommand; +import seedu.address.logic.commands.person.EditPersonCommand; +import seedu.address.logic.commands.person.FindPersonCommand; +import seedu.address.logic.commands.person.ListPersonCommand; +import seedu.address.logic.commands.person.SortStrengthCommand; +import seedu.address.logic.commands.person.SortTaskByDateCommand; +import seedu.address.logic.commands.person.SortWeaknessCommand; +import seedu.address.logic.commands.person.notecommands.AddMiscCommand; +import seedu.address.logic.commands.person.notecommands.AddStrengthCommand; +import seedu.address.logic.commands.person.notecommands.AddWeaknessCommand; +import seedu.address.logic.commands.person.notecommands.DeleteMiscCommand; +import seedu.address.logic.commands.person.notecommands.DeleteStrengthCommand; +import seedu.address.logic.commands.person.notecommands.DeleteWeaknessCommand; import seedu.address.logic.commands.strategy.AddPlayerCommand; import seedu.address.logic.commands.strategy.DeletePlayerCommand; +import seedu.address.logic.commands.strategy.ExportCommand; +import seedu.address.logic.commands.strategy.LoadCourtCommand; import seedu.address.logic.commands.strategy.MovePlayerCommand; +import seedu.address.logic.commands.task.AddTaskCommand; +import seedu.address.logic.commands.task.AddTaskTagCommand; +import seedu.address.logic.commands.task.ClearTaskCommand; +import seedu.address.logic.commands.task.DeleteTaskCommand; +import seedu.address.logic.commands.task.DeleteTaskTagCommand; +import seedu.address.logic.commands.task.EditTaskCommand; +import seedu.address.logic.commands.task.FindTaskCommand; +import seedu.address.logic.commands.task.GetPersonCommand; +import seedu.address.logic.commands.task.ListTaskCommand; import seedu.address.logic.parser.exceptions.ParseException; -import seedu.address.logic.parser.notecommandparsers.AddMiscCommandParser; -import seedu.address.logic.parser.notecommandparsers.AddStrengthCommandParser; -import seedu.address.logic.parser.notecommandparsers.AddWeaknessCommandParser; -import seedu.address.logic.parser.notecommandparsers.DeleteMiscCommandParser; -import seedu.address.logic.parser.notecommandparsers.DeleteStrengthCommandParser; -import seedu.address.logic.parser.notecommandparsers.DeleteWeaknessCommandParser; +import seedu.address.logic.parser.person.AddPersonCommandParser; +import seedu.address.logic.parser.person.AddPersonTagCommandParser; +import seedu.address.logic.parser.person.DeletePersonCommandParser; +import seedu.address.logic.parser.person.DeletePersonTagCommandParser; +import seedu.address.logic.parser.person.EditPersonCommandParser; +import seedu.address.logic.parser.person.FindPersonCommandParser; +import seedu.address.logic.parser.person.notecommands.AddMiscCommandParser; +import seedu.address.logic.parser.person.notecommands.AddStrengthCommandParser; +import seedu.address.logic.parser.person.notecommands.AddWeaknessCommandParser; +import seedu.address.logic.parser.person.notecommands.DeleteMiscCommandParser; +import seedu.address.logic.parser.person.notecommands.DeleteStrengthCommandParser; +import seedu.address.logic.parser.person.notecommands.DeleteWeaknessCommandParser; import seedu.address.logic.parser.strategy.AddPlayerCommandParser; import seedu.address.logic.parser.strategy.DeletePlayerCommandParser; +import seedu.address.logic.parser.strategy.LoadCourtCommandParser; import seedu.address.logic.parser.strategy.MovePlayerCommandParser; +import seedu.address.logic.parser.task.AddTaskCommandParser; +import seedu.address.logic.parser.task.AddTaskTagCommandParser; +import seedu.address.logic.parser.task.ClearTaskCommandParser; +import seedu.address.logic.parser.task.DeleteTaskCommandParser; +import seedu.address.logic.parser.task.DeleteTaskTagCommandParser; +import seedu.address.logic.parser.task.EditTaskCommandParser; +import seedu.address.logic.parser.task.FindTaskCommandParser; +import seedu.address.logic.parser.task.GetPersonCommandParser; /** * Parses user input. */ -public class AddressBookParser { +public class Coach2K22Parser { /** * Used for initial separation of command word and args. @@ -78,32 +93,32 @@ public Command parseCommand(String userInput) throws ParseException { final String arguments = matcher.group("arguments"); switch (commandWord) { - case AddCommand.COMMAND_WORD: - return new AddCommandParser().parse(arguments); + case AddPersonCommand.COMMAND_WORD: + return new AddPersonCommandParser().parse(arguments); case AddTaskCommand.COMMAND_WORD: return new AddTaskCommandParser().parse(arguments); - case EditCommand.COMMAND_WORD: - return new EditCommandParser().parse(arguments); + case EditPersonCommand.COMMAND_WORD: + return new EditPersonCommandParser().parse(arguments); case EditTaskCommand.COMMAND_WORD: return new EditTaskCommandParser().parse(arguments); - case DeleteCommand.COMMAND_WORD: - return new DeleteCommandParser().parse(arguments); + case DeletePersonCommand.COMMAND_WORD: + return new DeletePersonCommandParser().parse(arguments); case DeleteTaskCommand.COMMAND_WORD: return new DeleteTaskCommandParser().parse(arguments); - case ClearCommand.COMMAND_WORD: - return new ClearCommand(); + case ClearPersonCommand.COMMAND_WORD: + return new ClearPersonCommand(); case ClearTaskCommand.COMMAND_WORD: return new ClearTaskCommandParser().parse(arguments); - case FindCommand.COMMAND_WORD: - return new FindCommandParser().parse(arguments); + case FindPersonCommand.COMMAND_WORD: + return new FindPersonCommandParser().parse(arguments); case FindTaskCommand.COMMAND_WORD: return new FindTaskCommandParser().parse(arguments); @@ -111,8 +126,8 @@ public Command parseCommand(String userInput) throws ParseException { case GetPersonCommand.COMMAND_WORD: return new GetPersonCommandParser().parse(arguments); - case ListCommand.COMMAND_WORD: - return new ListCommand(); + case ListPersonCommand.COMMAND_WORD: + return new ListPersonCommand(); case ListTaskCommand.COMMAND_WORD: return new ListTaskCommand(); @@ -147,11 +162,11 @@ public Command parseCommand(String userInput) throws ParseException { case HelpCommand.COMMAND_WORD: return new HelpCommand(); - case AddTagCommand.COMMAND_WORD: - return new AddTagCommandParser().parse(arguments); + case AddPersonTagCommand.COMMAND_WORD: + return new AddPersonTagCommandParser().parse(arguments); - case DeleteTagCommand.COMMAND_WORD: - return new DeleteTagCommandParser().parse(arguments); + case DeletePersonTagCommand.COMMAND_WORD: + return new DeletePersonTagCommandParser().parse(arguments); case AddPlayerCommand.COMMAND_WORD: return new AddPlayerCommandParser().parse(arguments); @@ -162,11 +177,11 @@ public Command parseCommand(String userInput) throws ParseException { case LoadCourtCommand.COMMAND_WORD: return new LoadCourtCommandParser().parse(arguments); - case AddTagToTaskCommand.COMMAND_WORD: - return new AddTagToTaskCommandParser().parse(arguments); + case AddTaskTagCommand.COMMAND_WORD: + return new AddTaskTagCommandParser().parse(arguments); - case DeleteTagFromTaskCommand.COMMAND_WORD: - return new DeleteTagFromTaskCommandParser().parse(arguments); + case DeleteTaskTagCommand.COMMAND_WORD: + return new DeleteTaskTagCommandParser().parse(arguments); case MovePlayerCommand.COMMAND_WORD: return new MovePlayerCommandParser().parse(arguments); diff --git a/src/main/java/seedu/address/logic/parser/AddCommandParser.java b/src/main/java/seedu/address/logic/parser/person/AddPersonCommandParser.java similarity index 81% rename from src/main/java/seedu/address/logic/parser/AddCommandParser.java rename to src/main/java/seedu/address/logic/parser/person/AddPersonCommandParser.java index 1e4e500978b..fea09d9af54 100644 --- a/src/main/java/seedu/address/logic/parser/AddCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/person/AddPersonCommandParser.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.person; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static seedu.address.logic.parser.CliSyntax.PREFIX_ADDRESS; @@ -12,7 +12,12 @@ import java.util.Set; import java.util.stream.Stream; -import seedu.address.logic.commands.AddCommand; +import seedu.address.logic.commands.person.AddPersonCommand; +import seedu.address.logic.parser.ArgumentMultimap; +import seedu.address.logic.parser.ArgumentTokenizer; +import seedu.address.logic.parser.Parser; +import seedu.address.logic.parser.ParserUtil; +import seedu.address.logic.parser.Prefix; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.name.Name; import seedu.address.model.note.Note; @@ -25,20 +30,20 @@ /** * Parses input arguments and creates a new AddCommand object */ -public class AddCommandParser implements Parser { +public class AddPersonCommandParser implements Parser { /** * Parses the given {@code String} of arguments in the context of the AddCommand * and returns an AddCommand object for execution. * @throws ParseException if the user input does not conform the expected format */ - public AddCommand parse(String args) throws ParseException { + public AddPersonCommand parse(String args) throws ParseException { ArgumentMultimap argMultimap = ArgumentTokenizer.tokenize(args, PREFIX_NAME, PREFIX_PHONE, PREFIX_EMAIL, PREFIX_ADDRESS, PREFIX_TAG); if (!arePrefixesPresent(argMultimap, PREFIX_NAME, PREFIX_ADDRESS, PREFIX_PHONE, PREFIX_EMAIL) || !argMultimap.getPreamble().isEmpty()) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddCommand.MESSAGE_USAGE)); + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddPersonCommand.MESSAGE_USAGE)); } Name name = ParserUtil.parseName(argMultimap.getValue(PREFIX_NAME).get()); @@ -52,7 +57,7 @@ public AddCommand parse(String args) throws ParseException { Person person = new Person(name, phone, email, address, tagList, strengthList, weaknessList, miscList); - return new AddCommand(person); + return new AddPersonCommand(person); } /** diff --git a/src/main/java/seedu/address/logic/parser/AddTagCommandParser.java b/src/main/java/seedu/address/logic/parser/person/AddPersonTagCommandParser.java similarity index 75% rename from src/main/java/seedu/address/logic/parser/AddTagCommandParser.java rename to src/main/java/seedu/address/logic/parser/person/AddPersonTagCommandParser.java index cbe2fe53538..8df53b421b4 100644 --- a/src/main/java/seedu/address/logic/parser/AddTagCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/person/AddPersonTagCommandParser.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.person; import static java.util.Objects.requireNonNull; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; @@ -6,11 +6,15 @@ import java.util.ArrayList; import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.AddTagCommand; +import seedu.address.logic.commands.person.AddPersonTagCommand; +import seedu.address.logic.parser.ArgumentMultimap; +import seedu.address.logic.parser.ArgumentTokenizer; +import seedu.address.logic.parser.Parser; +import seedu.address.logic.parser.Prefix; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.tag.Tag; -public class AddTagCommandParser implements Parser { +public class AddPersonTagCommandParser implements Parser { /** * Parses the given {@code String} of arguments in the context of the {@code AddTagCommand} * and returns a {@code AddTagCommand} object for execution @@ -19,7 +23,7 @@ public class AddTagCommandParser implements Parser { * @return DeleteTagCommand object with arguments loaded in * @throws ParseException If the user input does not conform to the expected format */ - public AddTagCommand parse(String args) throws ParseException { + public AddPersonTagCommand parse(String args) throws ParseException { requireNonNull(args); // Tokenize all arguments @@ -41,16 +45,16 @@ public AddTagCommand parse(String args) throws ParseException { try { tagName = values.get(2); } catch (IndexOutOfBoundsException e) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddTagCommand.MESSAGE_USAGE)); + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddPersonTagCommand.MESSAGE_USAGE)); } try { new Tag(tagName); } catch (Exception e) { throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, - AddTagCommand.MESSAGE_USAGE)); + AddPersonTagCommand.MESSAGE_USAGE)); } - return new AddTagCommand(index, tagName); + return new AddPersonTagCommand(index, tagName); } } diff --git a/src/main/java/seedu/address/logic/parser/DeleteCommandParser.java b/src/main/java/seedu/address/logic/parser/person/DeletePersonCommandParser.java similarity index 62% rename from src/main/java/seedu/address/logic/parser/DeleteCommandParser.java rename to src/main/java/seedu/address/logic/parser/person/DeletePersonCommandParser.java index 522b93081cc..87b2427b15d 100644 --- a/src/main/java/seedu/address/logic/parser/DeleteCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/person/DeletePersonCommandParser.java @@ -1,28 +1,30 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.person; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.DeleteCommand; +import seedu.address.logic.commands.person.DeletePersonCommand; +import seedu.address.logic.parser.Parser; +import seedu.address.logic.parser.ParserUtil; import seedu.address.logic.parser.exceptions.ParseException; /** * Parses input arguments and creates a new DeleteCommand object */ -public class DeleteCommandParser implements Parser { +public class DeletePersonCommandParser implements Parser { /** * Parses the given {@code String} of arguments in the context of the DeleteCommand * and returns a DeleteCommand object for execution. * @throws ParseException if the user input does not conform the expected format */ - public DeleteCommand parse(String args) throws ParseException { + public DeletePersonCommand parse(String args) throws ParseException { try { Index index = ParserUtil.parseIndex(args); - return new DeleteCommand(index); + return new DeletePersonCommand(index); } catch (ParseException pe) { throw new ParseException( - String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteCommand.MESSAGE_USAGE), pe); + String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeletePersonCommand.MESSAGE_USAGE), pe); } } diff --git a/src/main/java/seedu/address/logic/parser/DeleteTagCommandParser.java b/src/main/java/seedu/address/logic/parser/person/DeletePersonTagCommandParser.java similarity index 74% rename from src/main/java/seedu/address/logic/parser/DeleteTagCommandParser.java rename to src/main/java/seedu/address/logic/parser/person/DeletePersonTagCommandParser.java index d5fc742b8fd..e70a0bf1b14 100644 --- a/src/main/java/seedu/address/logic/parser/DeleteTagCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/person/DeletePersonTagCommandParser.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.person; import static java.util.Objects.requireNonNull; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; @@ -6,11 +6,15 @@ import java.util.ArrayList; import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.DeleteTagCommand; +import seedu.address.logic.commands.person.DeletePersonTagCommand; +import seedu.address.logic.parser.ArgumentMultimap; +import seedu.address.logic.parser.ArgumentTokenizer; +import seedu.address.logic.parser.Parser; +import seedu.address.logic.parser.Prefix; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.tag.Tag; -public class DeleteTagCommandParser implements Parser { +public class DeletePersonTagCommandParser implements Parser { /** * Parses the given {@code String} of arguments in the context of the {@code DeleteTagCommand} * and returns a {@code DeleteTagCommand} object for execution @@ -19,7 +23,7 @@ public class DeleteTagCommandParser implements Parser { * @return DeleteTagCommand object with arguments loaded in * @throws ParseException If the user input does not conform to the expected format */ - public DeleteTagCommand parse(String args) throws ParseException { + public DeletePersonTagCommand parse(String args) throws ParseException { requireNonNull(args); // Tokenize all arguments @@ -41,16 +45,17 @@ public DeleteTagCommand parse(String args) throws ParseException { try { tagName = values.get(2); } catch (IndexOutOfBoundsException e) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteTagCommand.MESSAGE_USAGE)); + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + DeletePersonTagCommand.MESSAGE_USAGE)); } try { new Tag(tagName); } catch (Exception e) { throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, - DeleteTagCommand.MESSAGE_USAGE)); + DeletePersonTagCommand.MESSAGE_USAGE)); } - return new DeleteTagCommand(index, tagName); + return new DeletePersonTagCommand(index, tagName); } } diff --git a/src/main/java/seedu/address/logic/parser/EditCommandParser.java b/src/main/java/seedu/address/logic/parser/person/EditPersonCommandParser.java similarity index 82% rename from src/main/java/seedu/address/logic/parser/EditCommandParser.java rename to src/main/java/seedu/address/logic/parser/person/EditPersonCommandParser.java index f6cdd4d1b7c..605028c5d4c 100644 --- a/src/main/java/seedu/address/logic/parser/EditCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/person/EditPersonCommandParser.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.person; import static java.util.Objects.requireNonNull; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; @@ -15,21 +15,25 @@ import seedu.address.commons.core.index.Index; import seedu.address.logic.EditPersonDescriptor; -import seedu.address.logic.commands.EditCommand; +import seedu.address.logic.commands.person.EditPersonCommand; +import seedu.address.logic.parser.ArgumentMultimap; +import seedu.address.logic.parser.ArgumentTokenizer; +import seedu.address.logic.parser.Parser; +import seedu.address.logic.parser.ParserUtil; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.tag.Tag; /** * Parses input arguments and creates a new EditCommand object */ -public class EditCommandParser implements Parser { +public class EditPersonCommandParser implements Parser { /** * Parses the given {@code String} of arguments in the context of the EditCommand * and returns an EditCommand object for execution. * @throws ParseException if the user input does not conform the expected format */ - public EditCommand parse(String args) throws ParseException { + public EditPersonCommand parse(String args) throws ParseException { requireNonNull(args); ArgumentMultimap argMultimap = ArgumentTokenizer.tokenize(args, PREFIX_NAME, PREFIX_PHONE, PREFIX_EMAIL, PREFIX_ADDRESS, PREFIX_TAG); @@ -39,7 +43,8 @@ public EditCommand parse(String args) throws ParseException { try { index = ParserUtil.parseIndex(argMultimap.getPreamble()); } catch (ParseException pe) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, EditCommand.MESSAGE_USAGE), pe); + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + EditPersonCommand.MESSAGE_USAGE), pe); } EditPersonDescriptor editPersonDescriptor = new EditPersonDescriptor(); @@ -58,10 +63,10 @@ public EditCommand parse(String args) throws ParseException { parseTagsForEdit(argMultimap.getAllValues(PREFIX_TAG)).ifPresent(editPersonDescriptor::setTags); if (!editPersonDescriptor.isAnyFieldEdited()) { - throw new ParseException(EditCommand.MESSAGE_NOT_EDITED); + throw new ParseException(EditPersonCommand.MESSAGE_NOT_EDITED); } - return new EditCommand(index, editPersonDescriptor); + return new EditPersonCommand(index, editPersonDescriptor); } /** diff --git a/src/main/java/seedu/address/logic/parser/FindCommandParser.java b/src/main/java/seedu/address/logic/parser/person/FindPersonCommandParser.java similarity index 76% rename from src/main/java/seedu/address/logic/parser/FindCommandParser.java rename to src/main/java/seedu/address/logic/parser/person/FindPersonCommandParser.java index 23c5e2b055a..c2e4650854f 100644 --- a/src/main/java/seedu/address/logic/parser/FindCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/person/FindPersonCommandParser.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.person; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; @@ -7,7 +7,12 @@ import java.util.List; import java.util.stream.Stream; -import seedu.address.logic.commands.FindCommand; +import seedu.address.logic.commands.person.FindPersonCommand; +import seedu.address.logic.parser.ArgumentMultimap; +import seedu.address.logic.parser.ArgumentTokenizer; +import seedu.address.logic.parser.Parser; +import seedu.address.logic.parser.ParserUtil; +import seedu.address.logic.parser.Prefix; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.name.PersonNameContainsKeywordsPredicate; import seedu.address.model.tag.PersonTagContainsKeywordsPredicate; @@ -15,14 +20,14 @@ /** * Parses input arguments and creates a new FindCommand object */ -public class FindCommandParser implements Parser { +public class FindPersonCommandParser implements Parser { /** * Parses the given {@code String} of arguments in the context of the FindCommand * and returns a FindCommand object for execution. * @throws ParseException if the user input does not conform the expected format */ - public FindCommand parse(String args) throws ParseException { + public FindPersonCommand parse(String args) throws ParseException { String trimmedArgs = args.trim(); ArgumentMultimap argMultimap = ArgumentTokenizer.tokenize(args, PREFIX_NAME, PREFIX_TAG); @@ -30,7 +35,7 @@ public FindCommand parse(String args) throws ParseException { if ((!arePrefixesPresent(argMultimap, PREFIX_NAME) && !arePrefixesPresent(argMultimap, PREFIX_TAG)) || trimmedArgs.isEmpty()) { throw new ParseException( - String.format(MESSAGE_INVALID_COMMAND_FORMAT, FindCommand.MESSAGE_USAGE)); + String.format(MESSAGE_INVALID_COMMAND_FORMAT, FindPersonCommand.MESSAGE_USAGE)); } List nameKeywords = argMultimap.getAllValues(PREFIX_NAME); @@ -46,7 +51,7 @@ public FindCommand parse(String args) throws ParseException { ParserUtil.parseTagKeyword(tag); } - return new FindCommand(new PersonNameContainsKeywordsPredicate(nameKeywords), + return new FindPersonCommand(new PersonNameContainsKeywordsPredicate(nameKeywords), new PersonTagContainsKeywordsPredicate(tagKeywords)); } diff --git a/src/main/java/seedu/address/logic/parser/notecommandparsers/AddMiscCommandParser.java b/src/main/java/seedu/address/logic/parser/person/notecommands/AddMiscCommandParser.java similarity index 90% rename from src/main/java/seedu/address/logic/parser/notecommandparsers/AddMiscCommandParser.java rename to src/main/java/seedu/address/logic/parser/person/notecommands/AddMiscCommandParser.java index e902a700308..457ed2292cf 100644 --- a/src/main/java/seedu/address/logic/parser/notecommandparsers/AddMiscCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/person/notecommands/AddMiscCommandParser.java @@ -1,9 +1,9 @@ -package seedu.address.logic.parser.notecommandparsers; +package seedu.address.logic.parser.person.notecommands; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.notecommands.AddMiscCommand; +import seedu.address.logic.commands.person.notecommands.AddMiscCommand; import seedu.address.logic.parser.Parser; import seedu.address.logic.parser.ParserUtil; import seedu.address.logic.parser.exceptions.ParseException; diff --git a/src/main/java/seedu/address/logic/parser/notecommandparsers/AddStrengthCommandParser.java b/src/main/java/seedu/address/logic/parser/person/notecommands/AddStrengthCommandParser.java similarity index 90% rename from src/main/java/seedu/address/logic/parser/notecommandparsers/AddStrengthCommandParser.java rename to src/main/java/seedu/address/logic/parser/person/notecommands/AddStrengthCommandParser.java index 0bd5bb17b38..fdf889f84f1 100644 --- a/src/main/java/seedu/address/logic/parser/notecommandparsers/AddStrengthCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/person/notecommands/AddStrengthCommandParser.java @@ -1,9 +1,9 @@ -package seedu.address.logic.parser.notecommandparsers; +package seedu.address.logic.parser.person.notecommands; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.notecommands.AddStrengthCommand; +import seedu.address.logic.commands.person.notecommands.AddStrengthCommand; import seedu.address.logic.parser.Parser; import seedu.address.logic.parser.ParserUtil; import seedu.address.logic.parser.exceptions.ParseException; diff --git a/src/main/java/seedu/address/logic/parser/notecommandparsers/AddWeaknessCommandParser.java b/src/main/java/seedu/address/logic/parser/person/notecommands/AddWeaknessCommandParser.java similarity index 90% rename from src/main/java/seedu/address/logic/parser/notecommandparsers/AddWeaknessCommandParser.java rename to src/main/java/seedu/address/logic/parser/person/notecommands/AddWeaknessCommandParser.java index 07b1f406c9e..e6bdc803709 100644 --- a/src/main/java/seedu/address/logic/parser/notecommandparsers/AddWeaknessCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/person/notecommands/AddWeaknessCommandParser.java @@ -1,9 +1,9 @@ -package seedu.address.logic.parser.notecommandparsers; +package seedu.address.logic.parser.person.notecommands; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.notecommands.AddWeaknessCommand; +import seedu.address.logic.commands.person.notecommands.AddWeaknessCommand; import seedu.address.logic.parser.Parser; import seedu.address.logic.parser.ParserUtil; import seedu.address.logic.parser.exceptions.ParseException; diff --git a/src/main/java/seedu/address/logic/parser/notecommandparsers/DeleteMiscCommandParser.java b/src/main/java/seedu/address/logic/parser/person/notecommands/DeleteMiscCommandParser.java similarity index 90% rename from src/main/java/seedu/address/logic/parser/notecommandparsers/DeleteMiscCommandParser.java rename to src/main/java/seedu/address/logic/parser/person/notecommands/DeleteMiscCommandParser.java index 331a4881f09..f8ea98c3044 100644 --- a/src/main/java/seedu/address/logic/parser/notecommandparsers/DeleteMiscCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/person/notecommands/DeleteMiscCommandParser.java @@ -1,9 +1,9 @@ -package seedu.address.logic.parser.notecommandparsers; +package seedu.address.logic.parser.person.notecommands; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.notecommands.DeleteMiscCommand; +import seedu.address.logic.commands.person.notecommands.DeleteMiscCommand; import seedu.address.logic.parser.Parser; import seedu.address.logic.parser.ParserUtil; import seedu.address.logic.parser.exceptions.ParseException; diff --git a/src/main/java/seedu/address/logic/parser/notecommandparsers/DeleteStrengthCommandParser.java b/src/main/java/seedu/address/logic/parser/person/notecommands/DeleteStrengthCommandParser.java similarity index 90% rename from src/main/java/seedu/address/logic/parser/notecommandparsers/DeleteStrengthCommandParser.java rename to src/main/java/seedu/address/logic/parser/person/notecommands/DeleteStrengthCommandParser.java index 57f45d737a9..96131d360e8 100644 --- a/src/main/java/seedu/address/logic/parser/notecommandparsers/DeleteStrengthCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/person/notecommands/DeleteStrengthCommandParser.java @@ -1,9 +1,9 @@ -package seedu.address.logic.parser.notecommandparsers; +package seedu.address.logic.parser.person.notecommands; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.notecommands.DeleteStrengthCommand; +import seedu.address.logic.commands.person.notecommands.DeleteStrengthCommand; import seedu.address.logic.parser.Parser; import seedu.address.logic.parser.ParserUtil; import seedu.address.logic.parser.exceptions.ParseException; diff --git a/src/main/java/seedu/address/logic/parser/notecommandparsers/DeleteWeaknessCommandParser.java b/src/main/java/seedu/address/logic/parser/person/notecommands/DeleteWeaknessCommandParser.java similarity index 90% rename from src/main/java/seedu/address/logic/parser/notecommandparsers/DeleteWeaknessCommandParser.java rename to src/main/java/seedu/address/logic/parser/person/notecommands/DeleteWeaknessCommandParser.java index aa0b8fe01fd..85b77926d55 100644 --- a/src/main/java/seedu/address/logic/parser/notecommandparsers/DeleteWeaknessCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/person/notecommands/DeleteWeaknessCommandParser.java @@ -1,9 +1,9 @@ -package seedu.address.logic.parser.notecommandparsers; +package seedu.address.logic.parser.person.notecommands; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.notecommands.DeleteWeaknessCommand; +import seedu.address.logic.commands.person.notecommands.DeleteWeaknessCommand; import seedu.address.logic.parser.Parser; import seedu.address.logic.parser.ParserUtil; import seedu.address.logic.parser.exceptions.ParseException; diff --git a/src/main/java/seedu/address/logic/parser/LoadCourtCommandParser.java b/src/main/java/seedu/address/logic/parser/strategy/LoadCourtCommandParser.java similarity index 83% rename from src/main/java/seedu/address/logic/parser/LoadCourtCommandParser.java rename to src/main/java/seedu/address/logic/parser/strategy/LoadCourtCommandParser.java index 0823af62ea1..1deb770380a 100644 --- a/src/main/java/seedu/address/logic/parser/LoadCourtCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/strategy/LoadCourtCommandParser.java @@ -1,8 +1,10 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.strategy; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import seedu.address.logic.commands.LoadCourtCommand; +import seedu.address.logic.commands.strategy.LoadCourtCommand; +import seedu.address.logic.parser.Parser; +import seedu.address.logic.parser.ParserUtil; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.image.Image; diff --git a/src/main/java/seedu/address/logic/parser/AddTaskCommandParser.java b/src/main/java/seedu/address/logic/parser/task/AddTaskCommandParser.java similarity index 89% rename from src/main/java/seedu/address/logic/parser/AddTaskCommandParser.java rename to src/main/java/seedu/address/logic/parser/task/AddTaskCommandParser.java index 0a5bab3947a..2726e519677 100644 --- a/src/main/java/seedu/address/logic/parser/AddTaskCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/task/AddTaskCommandParser.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.task; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static seedu.address.logic.parser.CliSyntax.PREFIX_CONTACT; @@ -11,7 +11,12 @@ import java.util.Set; import java.util.stream.Stream; -import seedu.address.logic.commands.AddTaskCommand; +import seedu.address.logic.commands.task.AddTaskCommand; +import seedu.address.logic.parser.ArgumentMultimap; +import seedu.address.logic.parser.ArgumentTokenizer; +import seedu.address.logic.parser.Parser; +import seedu.address.logic.parser.ParserUtil; +import seedu.address.logic.parser.Prefix; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.name.Name; import seedu.address.model.tag.Tag; diff --git a/src/main/java/seedu/address/logic/parser/AddTagToTaskCommandParser.java b/src/main/java/seedu/address/logic/parser/task/AddTaskTagCommandParser.java similarity index 76% rename from src/main/java/seedu/address/logic/parser/AddTagToTaskCommandParser.java rename to src/main/java/seedu/address/logic/parser/task/AddTaskTagCommandParser.java index 5ff4b8f8c77..4ac0d50693c 100644 --- a/src/main/java/seedu/address/logic/parser/AddTagToTaskCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/task/AddTaskTagCommandParser.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.task; import static java.util.Objects.requireNonNull; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; @@ -6,14 +6,18 @@ import java.util.ArrayList; import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.AddTagToTaskCommand; +import seedu.address.logic.commands.task.AddTaskTagCommand; +import seedu.address.logic.parser.ArgumentMultimap; +import seedu.address.logic.parser.ArgumentTokenizer; +import seedu.address.logic.parser.Parser; +import seedu.address.logic.parser.Prefix; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.tag.Tag; /** * Parses input arguments and creates a new AddTaskCommand object */ -public class AddTagToTaskCommandParser implements Parser { +public class AddTaskTagCommandParser implements Parser { /** * Parses the given {@code String} of arguments in the context of the {@code AddTagToTaskCommandParser} * and returns a {@code AddTagToTaskCommand} object for execution @@ -23,7 +27,7 @@ public class AddTagToTaskCommandParser implements Parser { * @throws ParseException If the user input does not conform to the expected format */ - public AddTagToTaskCommand parse(String args) throws ParseException { + public AddTaskTagCommand parse(String args) throws ParseException { requireNonNull(args); // Tokenize all arguments @@ -45,16 +49,16 @@ public AddTagToTaskCommand parse(String args) throws ParseException { try { tagName = values.get(2); } catch (IndexOutOfBoundsException e) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddTagToTaskCommand.MESSAGE_USAGE)); + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddTaskTagCommand.MESSAGE_USAGE)); } try { new Tag(tagName); } catch (Exception e) { throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, - AddTagToTaskCommand.MESSAGE_USAGE)); + AddTaskTagCommand.MESSAGE_USAGE)); } - return new AddTagToTaskCommand(index, tagName); + return new AddTaskTagCommand(index, tagName); } } diff --git a/src/main/java/seedu/address/logic/parser/ClearTaskCommandParser.java b/src/main/java/seedu/address/logic/parser/task/ClearTaskCommandParser.java similarity index 85% rename from src/main/java/seedu/address/logic/parser/ClearTaskCommandParser.java rename to src/main/java/seedu/address/logic/parser/task/ClearTaskCommandParser.java index 50b61443056..5c7128f4771 100644 --- a/src/main/java/seedu/address/logic/parser/ClearTaskCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/task/ClearTaskCommandParser.java @@ -1,11 +1,16 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.task; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static seedu.address.logic.parser.CliSyntax.PREFIX_DATE; import java.util.stream.Stream; -import seedu.address.logic.commands.ClearTaskCommand; +import seedu.address.logic.commands.task.ClearTaskCommand; +import seedu.address.logic.parser.ArgumentMultimap; +import seedu.address.logic.parser.ArgumentTokenizer; +import seedu.address.logic.parser.Parser; +import seedu.address.logic.parser.ParserUtil; +import seedu.address.logic.parser.Prefix; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.task.Date; diff --git a/src/main/java/seedu/address/logic/parser/DeleteTaskCommandParser.java b/src/main/java/seedu/address/logic/parser/task/DeleteTaskCommandParser.java similarity index 83% rename from src/main/java/seedu/address/logic/parser/DeleteTaskCommandParser.java rename to src/main/java/seedu/address/logic/parser/task/DeleteTaskCommandParser.java index c261a89f74f..ffd72a2586b 100644 --- a/src/main/java/seedu/address/logic/parser/DeleteTaskCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/task/DeleteTaskCommandParser.java @@ -1,9 +1,11 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.task; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.DeleteTaskCommand; +import seedu.address.logic.commands.task.DeleteTaskCommand; +import seedu.address.logic.parser.Parser; +import seedu.address.logic.parser.ParserUtil; import seedu.address.logic.parser.exceptions.ParseException; /** diff --git a/src/main/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParser.java b/src/main/java/seedu/address/logic/parser/task/DeleteTaskTagCommandParser.java similarity index 77% rename from src/main/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParser.java rename to src/main/java/seedu/address/logic/parser/task/DeleteTaskTagCommandParser.java index 4987adf9353..be8ea7fae63 100644 --- a/src/main/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/task/DeleteTaskTagCommandParser.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.task; import static java.util.Objects.requireNonNull; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; @@ -7,14 +7,18 @@ import java.util.ArrayList; import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.DeleteTagFromTaskCommand; +import seedu.address.logic.commands.task.DeleteTaskTagCommand; +import seedu.address.logic.parser.ArgumentMultimap; +import seedu.address.logic.parser.ArgumentTokenizer; +import seedu.address.logic.parser.Parser; +import seedu.address.logic.parser.Prefix; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.tag.Tag; /** * Parses input arguments and creates a new AddTaskCommand object */ -public class DeleteTagFromTaskCommandParser implements Parser { +public class DeleteTaskTagCommandParser implements Parser { /** * Parses the given {@code String} of arguments in the context of the {@code DeleteTagFromTaskCommandParser} * and returns a {@code DeleteTagFromTaskCommand} object for execution @@ -24,7 +28,7 @@ public class DeleteTagFromTaskCommandParser implements Parser { * @throws ParseException If the user input does not conform to the expected format */ - public DeleteTagFromTaskCommand parse(String args) throws ParseException { + public DeleteTaskTagCommand parse(String args) throws ParseException { requireNonNull(args); // Tokenize all arguments @@ -47,15 +51,15 @@ public DeleteTagFromTaskCommand parse(String args) throws ParseException { tagName = values.get(2); } catch (IndexOutOfBoundsException e) { throw new ParseException(String.format(MESSAGE_INVALID_TASK_DISPLAYED_INDEX, - DeleteTagFromTaskCommand.MESSAGE_USAGE)); + DeleteTaskTagCommand.MESSAGE_USAGE)); } try { new Tag(tagName); } catch (Exception e) { throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, - DeleteTagFromTaskCommand.MESSAGE_USAGE)); + DeleteTaskTagCommand.MESSAGE_USAGE)); } - return new DeleteTagFromTaskCommand(index, tagName); + return new DeleteTaskTagCommand(index, tagName); } } diff --git a/src/main/java/seedu/address/logic/parser/EditTaskCommandParser.java b/src/main/java/seedu/address/logic/parser/task/EditTaskCommandParser.java similarity index 93% rename from src/main/java/seedu/address/logic/parser/EditTaskCommandParser.java rename to src/main/java/seedu/address/logic/parser/task/EditTaskCommandParser.java index 31236bc734f..ae69f433dfa 100644 --- a/src/main/java/seedu/address/logic/parser/EditTaskCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/task/EditTaskCommandParser.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.task; import static java.util.Objects.requireNonNull; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; @@ -16,7 +16,11 @@ import seedu.address.commons.core.index.Index; import seedu.address.logic.EditTaskDescriptor; -import seedu.address.logic.commands.EditTaskCommand; +import seedu.address.logic.commands.task.EditTaskCommand; +import seedu.address.logic.parser.ArgumentMultimap; +import seedu.address.logic.parser.ArgumentTokenizer; +import seedu.address.logic.parser.Parser; +import seedu.address.logic.parser.ParserUtil; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.name.Name; import seedu.address.model.tag.Tag; diff --git a/src/main/java/seedu/address/logic/parser/FindTaskCommandParser.java b/src/main/java/seedu/address/logic/parser/task/FindTaskCommandParser.java similarity index 87% rename from src/main/java/seedu/address/logic/parser/FindTaskCommandParser.java rename to src/main/java/seedu/address/logic/parser/task/FindTaskCommandParser.java index f83037a3015..c89061fa2a2 100644 --- a/src/main/java/seedu/address/logic/parser/FindTaskCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/task/FindTaskCommandParser.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.task; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; @@ -7,7 +7,12 @@ import java.util.List; import java.util.stream.Stream; -import seedu.address.logic.commands.FindTaskCommand; +import seedu.address.logic.commands.task.FindTaskCommand; +import seedu.address.logic.parser.ArgumentMultimap; +import seedu.address.logic.parser.ArgumentTokenizer; +import seedu.address.logic.parser.Parser; +import seedu.address.logic.parser.ParserUtil; +import seedu.address.logic.parser.Prefix; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.name.TaskNameContainsKeywordsPredicate; import seedu.address.model.tag.TaskTagContainsKeywordsPredicate; diff --git a/src/main/java/seedu/address/logic/parser/GetPersonCommandParser.java b/src/main/java/seedu/address/logic/parser/task/GetPersonCommandParser.java similarity index 83% rename from src/main/java/seedu/address/logic/parser/GetPersonCommandParser.java rename to src/main/java/seedu/address/logic/parser/task/GetPersonCommandParser.java index 77895c35d39..0e49680b3ad 100644 --- a/src/main/java/seedu/address/logic/parser/GetPersonCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/task/GetPersonCommandParser.java @@ -1,9 +1,11 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.task; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.GetPersonCommand; +import seedu.address.logic.commands.task.GetPersonCommand; +import seedu.address.logic.parser.Parser; +import seedu.address.logic.parser.ParserUtil; import seedu.address.logic.parser.exceptions.ParseException; /** diff --git a/src/test/java/seedu/address/logic/LogicManagerTest.java b/src/test/java/seedu/address/logic/LogicManagerTest.java index f935f9b92f2..81b0f9a33f9 100644 --- a/src/test/java/seedu/address/logic/LogicManagerTest.java +++ b/src/test/java/seedu/address/logic/LogicManagerTest.java @@ -17,10 +17,10 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; -import seedu.address.logic.commands.AddCommand; import seedu.address.logic.commands.CommandResult; -import seedu.address.logic.commands.ListCommand; import seedu.address.logic.commands.exceptions.CommandException; +import seedu.address.logic.commands.person.AddPersonCommand; +import seedu.address.logic.commands.person.ListPersonCommand; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.Model; import seedu.address.model.ModelManager; @@ -70,8 +70,8 @@ public void execute_commandExecutionError_throwsCommandException() { @Test public void execute_validCommand_success() throws Exception { - String listCommand = ListCommand.COMMAND_WORD; - assertCommandSuccess(listCommand, ListCommand.MESSAGE_SUCCESS, model); + String listCommand = ListPersonCommand.COMMAND_WORD; + assertCommandSuccess(listCommand, ListPersonCommand.MESSAGE_SUCCESS, model); } @Test @@ -86,7 +86,7 @@ public void execute_storageThrowsIoException_throwsCommandException() { logic = new LogicManager(model, storage); // Execute add command - String addCommand = AddCommand.COMMAND_WORD + NAME_DESC_AMY + PHONE_DESC_AMY + EMAIL_DESC_AMY + String addCommand = AddPersonCommand.COMMAND_WORD + NAME_DESC_AMY + PHONE_DESC_AMY + EMAIL_DESC_AMY + ADDRESS_DESC_AMY; Person expectedPerson = new PersonBuilder(AMY).withTags().build(); ModelManager expectedModel = new ModelManager(); diff --git a/src/test/java/seedu/address/logic/commands/AddCommandIntegrationTest.java b/src/test/java/seedu/address/logic/commands/person/AddPersonCommandIntegrationTest.java similarity index 74% rename from src/test/java/seedu/address/logic/commands/AddCommandIntegrationTest.java rename to src/test/java/seedu/address/logic/commands/person/AddPersonCommandIntegrationTest.java index 17ec89f93be..b2e15dbc9b1 100644 --- a/src/test/java/seedu/address/logic/commands/AddCommandIntegrationTest.java +++ b/src/test/java/seedu/address/logic/commands/person/AddPersonCommandIntegrationTest.java @@ -1,13 +1,13 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.person; import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; -import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import seedu.address.logic.commands.CommandTestUtil; import seedu.address.model.Model; import seedu.address.model.ModelManager; import seedu.address.model.StrategyBoard; @@ -18,7 +18,7 @@ /** * Contains integration tests (interaction with the Model) for {@code AddCommand}. */ -public class AddCommandIntegrationTest { +public class AddPersonCommandIntegrationTest { private Model model; @@ -35,14 +35,14 @@ public void execute_newPerson_success() { model.getTaskBook(), new StrategyBoard(), new UserPrefs()); expectedModel.addPerson(validPerson); - assertCommandSuccess(new AddCommand(validPerson), model, - String.format(AddCommand.MESSAGE_SUCCESS, validPerson), expectedModel); + CommandTestUtil.assertCommandSuccess(new AddPersonCommand(validPerson), model, + String.format(AddPersonCommand.MESSAGE_SUCCESS, validPerson), expectedModel); } @Test public void execute_duplicatePerson_throwsCommandException() { Person personInList = model.getAddressBook().getPersonList().get(0); - assertCommandFailure(new AddCommand(personInList), model, AddCommand.MESSAGE_DUPLICATE_PERSON); + assertCommandFailure(new AddPersonCommand(personInList), model, AddPersonCommand.MESSAGE_DUPLICATE_PERSON); } } diff --git a/src/test/java/seedu/address/logic/commands/AddCommandTest.java b/src/test/java/seedu/address/logic/commands/person/AddPersonCommandTest.java similarity index 91% rename from src/test/java/seedu/address/logic/commands/AddCommandTest.java rename to src/test/java/seedu/address/logic/commands/person/AddPersonCommandTest.java index 5fd2da17e80..c3944d89ede 100644 --- a/src/test/java/seedu/address/logic/commands/AddCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/person/AddPersonCommandTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.person; import static java.util.Objects.requireNonNull; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -15,6 +15,7 @@ import javafx.collections.ObservableList; import seedu.address.commons.core.GuiSettings; +import seedu.address.logic.commands.CommandResult; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.AddressBook; import seedu.address.model.Model; @@ -27,11 +28,11 @@ import seedu.address.model.task.Task; import seedu.address.testutil.PersonBuilder; -public class AddCommandTest { +public class AddPersonCommandTest { @Test public void constructor_nullPerson_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> new AddCommand(null)); + assertThrows(NullPointerException.class, () -> new AddPersonCommand(null)); } @Test @@ -39,33 +40,34 @@ public void execute_personAcceptedByModel_addSuccessful() throws Exception { ModelStubAcceptingPersonAdded modelStub = new ModelStubAcceptingPersonAdded(); Person validPerson = new PersonBuilder().build(); - CommandResult commandResult = new AddCommand(validPerson).execute(modelStub); + CommandResult commandResult = new AddPersonCommand(validPerson).execute(modelStub); - assertEquals(String.format(AddCommand.MESSAGE_SUCCESS, validPerson), commandResult.getFeedbackToUser()); + assertEquals(String.format(AddPersonCommand.MESSAGE_SUCCESS, validPerson), commandResult.getFeedbackToUser()); assertEquals(Arrays.asList(validPerson), modelStub.personsAdded); } @Test public void execute_duplicatePerson_throwsCommandException() { Person validPerson = new PersonBuilder().build(); - AddCommand addCommand = new AddCommand(validPerson); + AddPersonCommand addCommand = new AddPersonCommand(validPerson); ModelStub modelStub = new ModelStubWithPerson(validPerson); - assertThrows(CommandException.class, AddCommand.MESSAGE_DUPLICATE_PERSON, () -> addCommand.execute(modelStub)); + assertThrows(CommandException.class, + AddPersonCommand.MESSAGE_DUPLICATE_PERSON, () -> addCommand.execute(modelStub)); } @Test public void equals() { Person alice = new PersonBuilder().withName("Alice").build(); Person bob = new PersonBuilder().withName("Bob").build(); - AddCommand addAliceCommand = new AddCommand(alice); - AddCommand addBobCommand = new AddCommand(bob); + AddPersonCommand addAliceCommand = new AddPersonCommand(alice); + AddPersonCommand addBobCommand = new AddPersonCommand(bob); // same object -> returns true assertTrue(addAliceCommand.equals(addAliceCommand)); // same values -> returns true - AddCommand addAliceCommandCopy = new AddCommand(alice); + AddPersonCommand addAliceCommandCopy = new AddPersonCommand(alice); assertTrue(addAliceCommand.equals(addAliceCommandCopy)); // different types -> returns false diff --git a/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java b/src/test/java/seedu/address/logic/commands/person/AddPersonTagCommandTest.java similarity index 87% rename from src/test/java/seedu/address/logic/commands/AddTagCommandTest.java rename to src/test/java/seedu/address/logic/commands/person/AddPersonTagCommandTest.java index bba9345df04..4da13714e99 100644 --- a/src/test/java/seedu/address/logic/commands/AddTagCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/person/AddPersonTagCommandTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.person; import static org.junit.jupiter.api.Assertions.assertTrue; import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; @@ -26,7 +26,7 @@ import seedu.address.model.tag.Tag; import seedu.address.testutil.PersonBuilder; -class AddTagCommandTest { +class AddPersonTagCommandTest { // Test tags // Because PersonBuilder#withTags takes String ... instead of Set private static final String TAG1 = "TAG1"; @@ -51,9 +51,9 @@ void execute_addTagCommandUnfilteredList_success() { Person editedPerson = new PersonBuilder(firstPerson).withTags(firstPersonTagsStringArray).build(); - AddTagCommand addTagCommand = new AddTagCommand(INDEX_FIRST_PERSON, TAG1); + AddPersonTagCommand addTagCommand = new AddPersonTagCommand(INDEX_FIRST_PERSON, TAG1); - String expectedMessage = String.format(AddTagCommand.MESSAGE_ADD_TAG_SUCCESS, TAG1); + String expectedMessage = String.format(AddPersonTagCommand.MESSAGE_ADD_TAG_SUCCESS, TAG1); Model expectedModel = new ModelManager( new AddressBook(model.getAddressBook()), @@ -72,14 +72,14 @@ public void execute_invalidPersonIndexFilteredList_failure() { // ensures that outOfBoundIndex is still in bounds of address book list assertTrue(outOfBoundIndex.getZeroBased() < model.getAddressBook().getPersonList().size()); - AddTagCommand addTagCommand = new AddTagCommand(outOfBoundIndex, TAG1); + AddPersonTagCommand addTagCommand = new AddPersonTagCommand(outOfBoundIndex, TAG1); assertCommandFailure(addTagCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); } @Test public void equals() { - final AddTagCommand command = new AddTagCommand(INDEX_FIRST_PERSON, TAG1); + final AddPersonTagCommand command = new AddPersonTagCommand(INDEX_FIRST_PERSON, TAG1); // If they are the same objects, they are equal assertTrue(command.equals(command)); diff --git a/src/test/java/seedu/address/logic/commands/ClearCommandTest.java b/src/test/java/seedu/address/logic/commands/person/ClearPersonCommandTest.java similarity index 82% rename from src/test/java/seedu/address/logic/commands/ClearCommandTest.java rename to src/test/java/seedu/address/logic/commands/person/ClearPersonCommandTest.java index 8bef75ba425..b413aae22a9 100644 --- a/src/test/java/seedu/address/logic/commands/ClearCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/person/ClearPersonCommandTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.person; import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; @@ -13,6 +13,7 @@ import org.junit.jupiter.api.Test; +import seedu.address.logic.commands.CommandTestUtil; import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ModelManager; @@ -22,14 +23,15 @@ import seedu.address.model.task.Task; import seedu.address.testutil.TaskBuilder; -public class ClearCommandTest { +public class ClearPersonCommandTest { @Test public void execute_emptyAddressBook_success() { Model model = new ModelManager(); Model expectedModel = new ModelManager(); - assertCommandSuccess(new ClearCommand(), model, ClearCommand.MESSAGE_SUCCESS, expectedModel); + CommandTestUtil.assertCommandSuccess(new ClearPersonCommand(), + model, ClearPersonCommand.MESSAGE_SUCCESS, expectedModel); } @Test @@ -49,7 +51,7 @@ public void execute_nonEmptyAddressBook_success() { expectedModel.setTaskBook(newTaskBook); expectedModel.setAddressBook(new AddressBook()); - assertCommandSuccess(new ClearCommand(), model, ClearCommand.MESSAGE_SUCCESS, expectedModel); + assertCommandSuccess(new ClearPersonCommand(), model, ClearPersonCommand.MESSAGE_SUCCESS, expectedModel); } } diff --git a/src/test/java/seedu/address/logic/commands/DeleteCommandTest.java b/src/test/java/seedu/address/logic/commands/person/DeletePersonCommandTest.java similarity index 80% rename from src/test/java/seedu/address/logic/commands/DeleteCommandTest.java rename to src/test/java/seedu/address/logic/commands/person/DeletePersonCommandTest.java index f0512eaf221..63cd83ff83c 100644 --- a/src/test/java/seedu/address/logic/commands/DeleteCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/person/DeletePersonCommandTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.person; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -29,7 +29,7 @@ * Contains integration tests (interaction with the Model) and unit tests for * {@code DeleteCommand}. */ -public class DeleteCommandTest { +public class DeletePersonCommandTest { private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new StrategyBoard(), new UserPrefs()); @@ -37,9 +37,9 @@ public class DeleteCommandTest { @Test public void execute_validIndexUnfilteredList_success() { Person personToDelete = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); - DeleteCommand deleteCommand = new DeleteCommand(INDEX_FIRST_PERSON); + DeletePersonCommand deleteCommand = new DeletePersonCommand(INDEX_FIRST_PERSON); - String expectedMessage = String.format(DeleteCommand.MESSAGE_DELETE_PERSON_SUCCESS, personToDelete); + String expectedMessage = String.format(DeletePersonCommand.MESSAGE_DELETE_PERSON_SUCCESS, personToDelete); ModelManager expectedModel = new ModelManager(model.getAddressBook(), model.getTaskBook(), new StrategyBoard(), new UserPrefs()); @@ -48,7 +48,7 @@ public void execute_validIndexUnfilteredList_success() { Task taskToAmend = model.getFilteredTaskList().get(TASK_FIRST_INDEX.getZeroBased()); EditTaskDescriptor editTaskDescriptor = new EditTaskDescriptorBuilder().withPersons(BENSON.getName().fullName).build(); - Task editedTask = DeleteCommand.createEditedTask(taskToAmend, editTaskDescriptor); + Task editedTask = DeletePersonCommand.createEditedTask(taskToAmend, editTaskDescriptor); expectedModel.setTask(taskToAmend, editedTask); assertCommandSuccess(deleteCommand, model, expectedMessage, expectedModel); @@ -57,7 +57,7 @@ public void execute_validIndexUnfilteredList_success() { @Test public void execute_invalidIndexUnfilteredList_throwsCommandException() { Index outOfBoundIndex = Index.fromOneBased(model.getFilteredPersonList().size() + 1); - DeleteCommand deleteCommand = new DeleteCommand(outOfBoundIndex); + DeletePersonCommand deleteCommand = new DeletePersonCommand(outOfBoundIndex); assertCommandFailure(deleteCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); } @@ -67,9 +67,9 @@ public void execute_validIndexFilteredList_success() { showPersonAtIndex(model, INDEX_FIRST_PERSON); Person personToDelete = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); - DeleteCommand deleteCommand = new DeleteCommand(INDEX_FIRST_PERSON); + DeletePersonCommand deleteCommand = new DeletePersonCommand(INDEX_FIRST_PERSON); - String expectedMessage = String.format(DeleteCommand.MESSAGE_DELETE_PERSON_SUCCESS, personToDelete); + String expectedMessage = String.format(DeletePersonCommand.MESSAGE_DELETE_PERSON_SUCCESS, personToDelete); Model expectedModel = new ModelManager(model.getAddressBook(), model.getTaskBook(), new StrategyBoard(), new UserPrefs()); @@ -79,7 +79,7 @@ public void execute_validIndexFilteredList_success() { Task taskToAmend = model.getFilteredTaskList().get(TASK_FIRST_INDEX.getZeroBased()); EditTaskDescriptor editTaskDescriptor = new EditTaskDescriptorBuilder().withPersons(BENSON.getName().fullName).build(); - Task editedTask = DeleteCommand.createEditedTask(taskToAmend, editTaskDescriptor); + Task editedTask = DeletePersonCommand.createEditedTask(taskToAmend, editTaskDescriptor); expectedModel.setTask(taskToAmend, editedTask); assertCommandSuccess(deleteCommand, model, expectedMessage, expectedModel); @@ -93,21 +93,21 @@ public void execute_invalidIndexFilteredList_throwsCommandException() { // ensures that outOfBoundIndex is still in bounds of address book list assertTrue(outOfBoundIndex.getZeroBased() < model.getAddressBook().getPersonList().size()); - DeleteCommand deleteCommand = new DeleteCommand(outOfBoundIndex); + DeletePersonCommand deleteCommand = new DeletePersonCommand(outOfBoundIndex); assertCommandFailure(deleteCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); } @Test public void equals() { - DeleteCommand deleteFirstCommand = new DeleteCommand(INDEX_FIRST_PERSON); - DeleteCommand deleteSecondCommand = new DeleteCommand(INDEX_SECOND_PERSON); + DeletePersonCommand deleteFirstCommand = new DeletePersonCommand(INDEX_FIRST_PERSON); + DeletePersonCommand deleteSecondCommand = new DeletePersonCommand(INDEX_SECOND_PERSON); // same object -> returns true assertTrue(deleteFirstCommand.equals(deleteFirstCommand)); // same values -> returns true - DeleteCommand deleteFirstCommandCopy = new DeleteCommand(INDEX_FIRST_PERSON); + DeletePersonCommand deleteFirstCommandCopy = new DeletePersonCommand(INDEX_FIRST_PERSON); assertTrue(deleteFirstCommand.equals(deleteFirstCommandCopy)); // different types -> returns false diff --git a/src/test/java/seedu/address/logic/commands/DeleteTagCommandTest.java b/src/test/java/seedu/address/logic/commands/person/DeletePersonTagCommandTest.java similarity index 86% rename from src/test/java/seedu/address/logic/commands/DeleteTagCommandTest.java rename to src/test/java/seedu/address/logic/commands/person/DeletePersonTagCommandTest.java index 854dcde3bb8..ca2b54f5ad3 100644 --- a/src/test/java/seedu/address/logic/commands/DeleteTagCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/person/DeletePersonTagCommandTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.person; import static org.junit.jupiter.api.Assertions.assertTrue; import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; @@ -26,7 +26,7 @@ import seedu.address.model.tag.Tag; import seedu.address.testutil.PersonBuilder; -class DeleteTagCommandTest { +class DeletePersonTagCommandTest { // Test tags // Because PersonBuilder#withTags takes String ... instead of Set private static final String TAG_1 = "friends"; // ALICE has a tag called "friends" @@ -51,9 +51,9 @@ void execute_deleteTagCommandUnfilteredList_success() { Person editedPerson = new PersonBuilder(firstPerson).withTags(firstPersonTagsStringArray).build(); - DeleteTagCommand deleteTagCommand = new DeleteTagCommand(INDEX_FIRST_PERSON, TAG_1); + DeletePersonTagCommand deleteTagCommand = new DeletePersonTagCommand(INDEX_FIRST_PERSON, TAG_1); - String expectedMessage = String.format(DeleteTagCommand.MESSAGE_DELETE_TAG_SUCCESS, TAG_1); + String expectedMessage = String.format(DeletePersonTagCommand.MESSAGE_DELETE_TAG_SUCCESS, TAG_1); Model expectedModel = new ModelManager( new AddressBook(model.getAddressBook()), @@ -72,14 +72,14 @@ public void execute_invalidPersonIndexFilteredList_failure() { // ensures that outOfBoundIndex is still in bounds of address book list assertTrue(outOfBoundIndex.getZeroBased() < model.getAddressBook().getPersonList().size()); - AddTagCommand addTagCommand = new AddTagCommand(outOfBoundIndex, TAG_1); + AddPersonTagCommand addTagCommand = new AddPersonTagCommand(outOfBoundIndex, TAG_1); assertCommandFailure(addTagCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); } @Test public void equals() { - final DeleteTagCommand command = new DeleteTagCommand(INDEX_FIRST_PERSON, TAG_1); + final DeletePersonTagCommand command = new DeletePersonTagCommand(INDEX_FIRST_PERSON, TAG_1); // If they are the same objects, they are equal assertTrue(command.equals(command)); diff --git a/src/test/java/seedu/address/logic/commands/EditCommandTest.java b/src/test/java/seedu/address/logic/commands/person/EditPersonCommandTest.java similarity index 78% rename from src/test/java/seedu/address/logic/commands/EditCommandTest.java rename to src/test/java/seedu/address/logic/commands/person/EditPersonCommandTest.java index f408e99a88f..59bd91fafed 100644 --- a/src/test/java/seedu/address/logic/commands/EditCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/person/EditPersonCommandTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.person; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -37,7 +37,7 @@ /** * Contains integration tests (interaction with the Model) and unit tests for EditCommand. */ -public class EditCommandTest { +public class EditPersonCommandTest { private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new StrategyBoard(), new UserPrefs()); @@ -46,9 +46,9 @@ public class EditCommandTest { public void execute_allFieldsSpecifiedUnfilteredList_success() { Person editedPerson = new PersonBuilder().build(); EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder(editedPerson).build(); - EditCommand editCommand = new EditCommand(INDEX_FIRST_PERSON, descriptor); + EditPersonCommand editCommand = new EditPersonCommand(INDEX_FIRST_PERSON, descriptor); - String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); + String expectedMessage = String.format(EditPersonCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), model.getTaskBook(), new StrategyBoard(), new UserPrefs()); @@ -58,7 +58,7 @@ public void execute_allFieldsSpecifiedUnfilteredList_success() { EditTaskDescriptor editTaskDescriptor = new EditTaskDescriptorBuilder() .withPersons(editedPerson.getName().fullName, BENSON.getName().fullName).build(); - Task editedTask = DeleteCommand.createEditedTask(taskToAmend, editTaskDescriptor); + Task editedTask = DeletePersonCommand.createEditedTask(taskToAmend, editTaskDescriptor); expectedModel.setTask(taskToAmend, editedTask); assertCommandSuccess(editCommand, model, expectedMessage, expectedModel); @@ -75,9 +75,9 @@ public void execute_someFieldsSpecifiedUnfilteredList_success() { EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withName(VALID_NAME_BOB) .withPhone(VALID_PHONE_BOB).withTags(VALID_TAG_HUSBAND).build(); - EditCommand editCommand = new EditCommand(indexLastPerson, descriptor); + EditPersonCommand editCommand = new EditPersonCommand(indexLastPerson, descriptor); - String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); + String expectedMessage = String.format(EditPersonCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), model.getTaskBook(), new StrategyBoard(), new UserPrefs()); @@ -88,10 +88,10 @@ public void execute_someFieldsSpecifiedUnfilteredList_success() { @Test public void execute_noFieldSpecifiedUnfilteredList_success() { - EditCommand editCommand = new EditCommand(INDEX_FIRST_PERSON, new EditPersonDescriptor()); + EditPersonCommand editCommand = new EditPersonCommand(INDEX_FIRST_PERSON, new EditPersonDescriptor()); Person editedPerson = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); - String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); + String expectedMessage = String.format(EditPersonCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), model.getTaskBook(), new StrategyBoard(), new UserPrefs()); @@ -105,10 +105,10 @@ public void execute_filteredList_success() { Person personInFilteredList = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); Person editedPerson = new PersonBuilder(personInFilteredList).withName(VALID_NAME_BOB).build(); - EditCommand editCommand = new EditCommand(INDEX_FIRST_PERSON, + EditPersonCommand editCommand = new EditPersonCommand(INDEX_FIRST_PERSON, new EditPersonDescriptorBuilder().withName(VALID_NAME_BOB).build()); - String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); + String expectedMessage = String.format(EditPersonCommand.MESSAGE_EDIT_PERSON_SUCCESS, editedPerson); Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), model.getTaskBook(), new StrategyBoard(), new UserPrefs()); @@ -118,7 +118,7 @@ public void execute_filteredList_success() { EditTaskDescriptor editTaskDescriptor = new EditTaskDescriptorBuilder() .withPersons(editedPerson.getName().fullName, BENSON.getName().fullName).build(); - Task editedTask = DeleteCommand.createEditedTask(taskToAmend, editTaskDescriptor); + Task editedTask = DeletePersonCommand.createEditedTask(taskToAmend, editTaskDescriptor); expectedModel.setTask(taskToAmend, editedTask); assertCommandSuccess(editCommand, model, expectedMessage, expectedModel); @@ -128,9 +128,9 @@ public void execute_filteredList_success() { public void execute_duplicatePersonUnfilteredList_failure() { Person firstPerson = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder(firstPerson).build(); - EditCommand editCommand = new EditCommand(INDEX_SECOND_PERSON, descriptor); + EditPersonCommand editCommand = new EditPersonCommand(INDEX_SECOND_PERSON, descriptor); - assertCommandFailure(editCommand, model, EditCommand.MESSAGE_DUPLICATE_PERSON); + assertCommandFailure(editCommand, model, EditPersonCommand.MESSAGE_DUPLICATE_PERSON); } @Test @@ -139,17 +139,17 @@ public void execute_duplicatePersonFilteredList_failure() { // edit person in filtered list into a duplicate in address book Person personInList = model.getAddressBook().getPersonList().get(INDEX_SECOND_PERSON.getZeroBased()); - EditCommand editCommand = new EditCommand(INDEX_FIRST_PERSON, + EditPersonCommand editCommand = new EditPersonCommand(INDEX_FIRST_PERSON, new EditPersonDescriptorBuilder(personInList).build()); - assertCommandFailure(editCommand, model, EditCommand.MESSAGE_DUPLICATE_PERSON); + assertCommandFailure(editCommand, model, EditPersonCommand.MESSAGE_DUPLICATE_PERSON); } @Test public void execute_invalidPersonIndexUnfilteredList_failure() { Index outOfBoundIndex = Index.fromOneBased(model.getFilteredPersonList().size() + 1); EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withName(VALID_NAME_BOB).build(); - EditCommand editCommand = new EditCommand(outOfBoundIndex, descriptor); + EditPersonCommand editCommand = new EditPersonCommand(outOfBoundIndex, descriptor); assertCommandFailure(editCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); } @@ -165,7 +165,7 @@ public void execute_invalidPersonIndexFilteredList_failure() { // ensures that outOfBoundIndex is still in bounds of address book list assertTrue(outOfBoundIndex.getZeroBased() < model.getAddressBook().getPersonList().size()); - EditCommand editCommand = new EditCommand(outOfBoundIndex, + EditPersonCommand editCommand = new EditPersonCommand(outOfBoundIndex, new EditPersonDescriptorBuilder().withName(VALID_NAME_BOB).build()); assertCommandFailure(editCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); @@ -173,11 +173,11 @@ public void execute_invalidPersonIndexFilteredList_failure() { @Test public void equals() { - final EditCommand standardCommand = new EditCommand(INDEX_FIRST_PERSON, DESC_AMY); + final EditPersonCommand standardCommand = new EditPersonCommand(INDEX_FIRST_PERSON, DESC_AMY); // same values -> returns true EditPersonDescriptor copyDescriptor = new EditPersonDescriptor(DESC_AMY); - EditCommand commandWithSameValues = new EditCommand(INDEX_FIRST_PERSON, copyDescriptor); + EditPersonCommand commandWithSameValues = new EditPersonCommand(INDEX_FIRST_PERSON, copyDescriptor); assertTrue(standardCommand.equals(commandWithSameValues)); // same object -> returns true @@ -187,13 +187,13 @@ public void equals() { assertFalse(standardCommand.equals(null)); // different types -> returns false - assertFalse(standardCommand.equals(new ClearCommand())); + assertFalse(standardCommand.equals(new ClearPersonCommand())); // different index -> returns false - assertFalse(standardCommand.equals(new EditCommand(INDEX_SECOND_PERSON, DESC_AMY))); + assertFalse(standardCommand.equals(new EditPersonCommand(INDEX_SECOND_PERSON, DESC_AMY))); // different descriptor -> returns false - assertFalse(standardCommand.equals(new EditCommand(INDEX_FIRST_PERSON, DESC_BOB))); + assertFalse(standardCommand.equals(new EditPersonCommand(INDEX_FIRST_PERSON, DESC_BOB))); } } diff --git a/src/test/java/seedu/address/logic/commands/EditPersonDescriptorTest.java b/src/test/java/seedu/address/logic/commands/person/EditPersonDescriptorTest.java similarity index 98% rename from src/test/java/seedu/address/logic/commands/EditPersonDescriptorTest.java rename to src/test/java/seedu/address/logic/commands/person/EditPersonDescriptorTest.java index 8b80ca973c3..f57485a0b93 100644 --- a/src/test/java/seedu/address/logic/commands/EditPersonDescriptorTest.java +++ b/src/test/java/seedu/address/logic/commands/person/EditPersonDescriptorTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.person; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; diff --git a/src/test/java/seedu/address/logic/commands/FindCommandTest.java b/src/test/java/seedu/address/logic/commands/person/FindPersonCommandTest.java similarity index 88% rename from src/test/java/seedu/address/logic/commands/FindCommandTest.java rename to src/test/java/seedu/address/logic/commands/person/FindPersonCommandTest.java index 29313b361b4..6b8530121c7 100644 --- a/src/test/java/seedu/address/logic/commands/FindCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/person/FindPersonCommandTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.person; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; @@ -27,7 +27,7 @@ /** * Contains integration tests (interaction with the Model) for {@code FindCommand}. */ -public class FindCommandTest { +public class FindPersonCommandTest { private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), new StrategyBoard(), new UserPrefs()); private Model expectedModel = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), @@ -45,14 +45,14 @@ public void equals() { PersonTagContainsKeywordsPredicate fourthPredicate = new PersonTagContainsKeywordsPredicate(Collections.singletonList("fourth")); - FindCommand findFirstCommand = new FindCommand(firstPredicate, thirdPredicate); - FindCommand findSecondCommand = new FindCommand(secondPredicate, fourthPredicate); + FindPersonCommand findFirstCommand = new FindPersonCommand(firstPredicate, thirdPredicate); + FindPersonCommand findSecondCommand = new FindPersonCommand(secondPredicate, fourthPredicate); // same object -> returns true assertTrue(findFirstCommand.equals(findFirstCommand)); // same values -> returns true - FindCommand findFirstCommandCopy = new FindCommand(firstPredicate, thirdPredicate); + FindPersonCommand findFirstCommandCopy = new FindPersonCommand(firstPredicate, thirdPredicate); assertTrue(findFirstCommand.equals(findFirstCommandCopy)); // different types -> returns false @@ -72,7 +72,7 @@ public void execute_zeroKeywords_noPersonAndTagFound() { String expectedMessage = String.format(MESSAGE_PERSONS_LISTED_OVERVIEW, 0); PersonNameContainsKeywordsPredicate namePredicate = prepareNamePredicate(nameList); PersonTagContainsKeywordsPredicate tagPredicate = prepareTagPredicate(tagList); - FindCommand command = new FindCommand(namePredicate, tagPredicate); + FindPersonCommand command = new FindPersonCommand(namePredicate, tagPredicate); expectedModel.updateFilteredPersonList(namePredicate.or(tagPredicate)); assertCommandSuccess(command, model, expectedMessage, expectedModel); assertEquals(Collections.emptyList(), model.getFilteredPersonList()); @@ -85,7 +85,7 @@ public void execute_multipleKeywords_multiplePersonsAndTagsFound() { String expectedMessage = String.format(MESSAGE_PERSONS_LISTED_OVERVIEW, 3); PersonNameContainsKeywordsPredicate namePredicate = prepareNamePredicate(nameList); PersonTagContainsKeywordsPredicate tagPredicate = prepareTagPredicate(tagList); - FindCommand command = new FindCommand(namePredicate, tagPredicate); + FindPersonCommand command = new FindPersonCommand(namePredicate, tagPredicate); expectedModel.updateFilteredPersonList(namePredicate.or(tagPredicate)); assertCommandSuccess(command, model, expectedMessage, expectedModel); assertEquals(Arrays.asList(ALICE, BENSON, DANIEL), model.getFilteredPersonList()); diff --git a/src/test/java/seedu/address/logic/commands/ListCommandTest.java b/src/test/java/seedu/address/logic/commands/person/ListPersonCommandTest.java similarity index 76% rename from src/test/java/seedu/address/logic/commands/ListCommandTest.java rename to src/test/java/seedu/address/logic/commands/person/ListPersonCommandTest.java index 9d7bbf57d72..dbd71d6fb9c 100644 --- a/src/test/java/seedu/address/logic/commands/ListCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/person/ListPersonCommandTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.person; import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; import static seedu.address.logic.commands.CommandTestUtil.showPersonAtIndex; @@ -9,6 +9,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import seedu.address.logic.commands.CommandTestUtil; import seedu.address.model.Model; import seedu.address.model.ModelManager; import seedu.address.model.StrategyBoard; @@ -17,7 +18,7 @@ /** * Contains integration tests (interaction with the Model) and unit tests for ListCommand. */ -public class ListCommandTest { +public class ListPersonCommandTest { private Model model; private Model expectedModel; @@ -32,12 +33,13 @@ public void setUp() { @Test public void execute_listIsNotFiltered_showsSameList() { - assertCommandSuccess(new ListCommand(), model, ListCommand.MESSAGE_SUCCESS, expectedModel); + CommandTestUtil.assertCommandSuccess(new ListPersonCommand(), model, + ListPersonCommand.MESSAGE_SUCCESS, expectedModel); } @Test public void execute_listIsFiltered_showsEverything() { showPersonAtIndex(model, INDEX_FIRST_PERSON); - assertCommandSuccess(new ListCommand(), model, ListCommand.MESSAGE_SUCCESS, expectedModel); + assertCommandSuccess(new ListPersonCommand(), model, ListPersonCommand.MESSAGE_SUCCESS, expectedModel); } } diff --git a/src/test/java/seedu/address/logic/commands/SortStrengthCommandTest.java b/src/test/java/seedu/address/logic/commands/person/SortStrengthCommandTest.java similarity index 86% rename from src/test/java/seedu/address/logic/commands/SortStrengthCommandTest.java rename to src/test/java/seedu/address/logic/commands/person/SortStrengthCommandTest.java index ef249661470..f94099f40b8 100644 --- a/src/test/java/seedu/address/logic/commands/SortStrengthCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/person/SortStrengthCommandTest.java @@ -1,7 +1,6 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.person; import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; -import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; import static seedu.address.testutil.TypicalPersons.getGenericAddressBookWithSortedStrengths; import static seedu.address.testutil.TypicalPersons.getGenericAddressBookWithUnsortedStrengths; @@ -9,6 +8,7 @@ import org.junit.jupiter.api.Test; import seedu.address.commons.core.Messages; +import seedu.address.logic.commands.CommandTestUtil; import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ModelManager; @@ -34,7 +34,8 @@ public void setUp() { @Test public void execute_unsortedList_success() { - assertCommandSuccess(new SortStrengthCommand(), model, SortStrengthCommand.MESSAGE_SUCCESS, expectedModel); + CommandTestUtil.assertCommandSuccess(new SortStrengthCommand(), model, + SortStrengthCommand.MESSAGE_SUCCESS, expectedModel); } @Test diff --git a/src/test/java/seedu/address/logic/commands/SortWeaknessCommandTest.java b/src/test/java/seedu/address/logic/commands/person/SortWeaknessCommandTest.java similarity index 86% rename from src/test/java/seedu/address/logic/commands/SortWeaknessCommandTest.java rename to src/test/java/seedu/address/logic/commands/person/SortWeaknessCommandTest.java index 522318c2e24..de4e08f0bc8 100644 --- a/src/test/java/seedu/address/logic/commands/SortWeaknessCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/person/SortWeaknessCommandTest.java @@ -1,7 +1,6 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.person; import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; -import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; import static seedu.address.testutil.TypicalPersons.getGenericAddressBookWithSortedWeaknesses; import static seedu.address.testutil.TypicalPersons.getGenericAddressBookWithUnsortedWeaknesses; @@ -9,6 +8,7 @@ import org.junit.jupiter.api.Test; import seedu.address.commons.core.Messages; +import seedu.address.logic.commands.CommandTestUtil; import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ModelManager; @@ -34,7 +34,8 @@ public void setUp() { @Test public void execute_unsortedList_success() { - assertCommandSuccess(new SortWeaknessCommand(), model, SortWeaknessCommand.MESSAGE_SUCCESS, expectedModel); + CommandTestUtil.assertCommandSuccess(new SortWeaknessCommand(), model, + SortWeaknessCommand.MESSAGE_SUCCESS, expectedModel); } @Test diff --git a/src/test/java/seedu/address/logic/commands/AddMiscCommandTest.java b/src/test/java/seedu/address/logic/commands/person/notecommand/AddMiscCommandTest.java similarity index 95% rename from src/test/java/seedu/address/logic/commands/AddMiscCommandTest.java rename to src/test/java/seedu/address/logic/commands/person/notecommand/AddMiscCommandTest.java index 9924d4b4990..8ff55845763 100644 --- a/src/test/java/seedu/address/logic/commands/AddMiscCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/person/notecommand/AddMiscCommandTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.person.notecommand; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -16,7 +16,8 @@ import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.notecommands.AddMiscCommand; +import seedu.address.logic.commands.person.ClearPersonCommand; +import seedu.address.logic.commands.person.notecommands.AddMiscCommand; import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ModelManager; @@ -109,7 +110,7 @@ public void equals() { assertFalse(standardCommand.equals(null)); // different types -> returns false - assertFalse(standardCommand.equals(new ClearCommand())); + assertFalse(standardCommand.equals(new ClearPersonCommand())); // different index -> returns false assertFalse(standardCommand.equals(new AddMiscCommand(INDEX_SECOND_PERSON, diff --git a/src/test/java/seedu/address/logic/commands/AddStrengthCommandTest.java b/src/test/java/seedu/address/logic/commands/person/notecommand/AddStrengthCommandTest.java similarity index 95% rename from src/test/java/seedu/address/logic/commands/AddStrengthCommandTest.java rename to src/test/java/seedu/address/logic/commands/person/notecommand/AddStrengthCommandTest.java index 2bd0424c5b5..f088828b30b 100644 --- a/src/test/java/seedu/address/logic/commands/AddStrengthCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/person/notecommand/AddStrengthCommandTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.person.notecommand; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -16,7 +16,8 @@ import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.notecommands.AddStrengthCommand; +import seedu.address.logic.commands.person.ClearPersonCommand; +import seedu.address.logic.commands.person.notecommands.AddStrengthCommand; import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ModelManager; @@ -109,7 +110,7 @@ public void equals() { assertFalse(standardCommand.equals(null)); // different types -> returns false - assertFalse(standardCommand.equals(new ClearCommand())); + assertFalse(standardCommand.equals(new ClearPersonCommand())); // different index -> returns false assertFalse(standardCommand.equals(new AddStrengthCommand(INDEX_SECOND_PERSON, diff --git a/src/test/java/seedu/address/logic/commands/AddWeaknessCommandTest.java b/src/test/java/seedu/address/logic/commands/person/notecommand/AddWeaknessCommandTest.java similarity index 95% rename from src/test/java/seedu/address/logic/commands/AddWeaknessCommandTest.java rename to src/test/java/seedu/address/logic/commands/person/notecommand/AddWeaknessCommandTest.java index 200ad8b5cc0..d1516710d0a 100644 --- a/src/test/java/seedu/address/logic/commands/AddWeaknessCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/person/notecommand/AddWeaknessCommandTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.person.notecommand; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -16,7 +16,8 @@ import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.notecommands.AddWeaknessCommand; +import seedu.address.logic.commands.person.ClearPersonCommand; +import seedu.address.logic.commands.person.notecommands.AddWeaknessCommand; import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ModelManager; @@ -109,7 +110,7 @@ public void equals() { assertFalse(standardCommand.equals(null)); // different types -> returns false - assertFalse(standardCommand.equals(new ClearCommand())); + assertFalse(standardCommand.equals(new ClearPersonCommand())); // different index -> returns false assertFalse(standardCommand.equals(new AddWeaknessCommand(INDEX_SECOND_PERSON, diff --git a/src/test/java/seedu/address/logic/commands/DeleteMiscCommandTest.java b/src/test/java/seedu/address/logic/commands/person/notecommand/DeleteMiscCommandTest.java similarity index 97% rename from src/test/java/seedu/address/logic/commands/DeleteMiscCommandTest.java rename to src/test/java/seedu/address/logic/commands/person/notecommand/DeleteMiscCommandTest.java index e4c5271215e..9f62b8d2dae 100644 --- a/src/test/java/seedu/address/logic/commands/DeleteMiscCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/person/notecommand/DeleteMiscCommandTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.person.notecommand; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -18,7 +18,7 @@ import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.notecommands.DeleteMiscCommand; +import seedu.address.logic.commands.person.notecommands.DeleteMiscCommand; import seedu.address.model.Model; import seedu.address.model.ModelManager; import seedu.address.model.StrategyBoard; diff --git a/src/test/java/seedu/address/logic/commands/DeleteStrengthCommandTest.java b/src/test/java/seedu/address/logic/commands/person/notecommand/DeleteStrengthCommandTest.java similarity index 97% rename from src/test/java/seedu/address/logic/commands/DeleteStrengthCommandTest.java rename to src/test/java/seedu/address/logic/commands/person/notecommand/DeleteStrengthCommandTest.java index f04c20b30f8..09573606060 100644 --- a/src/test/java/seedu/address/logic/commands/DeleteStrengthCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/person/notecommand/DeleteStrengthCommandTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.person.notecommand; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -18,7 +18,7 @@ import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.notecommands.DeleteStrengthCommand; +import seedu.address.logic.commands.person.notecommands.DeleteStrengthCommand; import seedu.address.model.Model; import seedu.address.model.ModelManager; import seedu.address.model.StrategyBoard; diff --git a/src/test/java/seedu/address/logic/commands/DeleteWeaknessCommandTest.java b/src/test/java/seedu/address/logic/commands/person/notecommand/DeleteWeaknessCommandTest.java similarity index 97% rename from src/test/java/seedu/address/logic/commands/DeleteWeaknessCommandTest.java rename to src/test/java/seedu/address/logic/commands/person/notecommand/DeleteWeaknessCommandTest.java index 73df1d5d1f3..d254d5bf31d 100644 --- a/src/test/java/seedu/address/logic/commands/DeleteWeaknessCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/person/notecommand/DeleteWeaknessCommandTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.person.notecommand; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -18,7 +18,7 @@ import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.notecommands.DeleteWeaknessCommand; +import seedu.address.logic.commands.person.notecommands.DeleteWeaknessCommand; import seedu.address.model.Model; import seedu.address.model.ModelManager; import seedu.address.model.StrategyBoard; diff --git a/src/test/java/seedu/address/logic/commands/LoadCourtCommandTest.java b/src/test/java/seedu/address/logic/commands/strategy/LoadCourtCommandTest.java similarity index 90% rename from src/test/java/seedu/address/logic/commands/LoadCourtCommandTest.java rename to src/test/java/seedu/address/logic/commands/strategy/LoadCourtCommandTest.java index 4ea1be000ca..a7301ec579b 100644 --- a/src/test/java/seedu/address/logic/commands/LoadCourtCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/strategy/LoadCourtCommandTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.strategy; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -8,6 +8,7 @@ import org.junit.jupiter.api.Test; +import seedu.address.logic.commands.person.ClearPersonCommand; import seedu.address.model.Model; import seedu.address.model.ModelManager; import seedu.address.model.StrategyBoard; @@ -42,7 +43,7 @@ public void equals() { assertFalse(standardCommand.equals(null)); // different types -> returns false - assertFalse(standardCommand.equals(new ClearCommand())); + assertFalse(standardCommand.equals(new ClearPersonCommand())); // different image -> returns false assertFalse(standardCommand.equals(standardCommand2)); diff --git a/src/test/java/seedu/address/logic/commands/AddTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/task/AddTaskCommandTest.java similarity index 99% rename from src/test/java/seedu/address/logic/commands/AddTaskCommandTest.java rename to src/test/java/seedu/address/logic/commands/task/AddTaskCommandTest.java index 2d6174b8bfa..9de0ef591e4 100644 --- a/src/test/java/seedu/address/logic/commands/AddTaskCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/task/AddTaskCommandTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.task; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; diff --git a/src/test/java/seedu/address/logic/commands/AddTagToTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/task/AddTaskTagCommandTest.java similarity index 87% rename from src/test/java/seedu/address/logic/commands/AddTagToTaskCommandTest.java rename to src/test/java/seedu/address/logic/commands/task/AddTaskTagCommandTest.java index b53fdc3a021..687ba73c56e 100644 --- a/src/test/java/seedu/address/logic/commands/AddTagToTaskCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/task/AddTaskTagCommandTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.task; import static org.junit.jupiter.api.Assertions.assertTrue; import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; @@ -27,7 +27,7 @@ import seedu.address.model.task.Task; import seedu.address.testutil.TaskBuilder; -class AddTagToTaskCommandTest { +class AddTaskTagCommandTest { // Test tags // Because PersonBuilder#withTags takes String ... instead of Set private static final String TAG1 = "TAG1"; @@ -53,9 +53,9 @@ void execute_addTagCommandUnfilteredList_success() { // Manually building the edited task Task editedTask = new TaskBuilder(firstTask).withTags(firstTaskTagsStringArray).build(); - AddTagToTaskCommand addTagToTaskCommand = new AddTagToTaskCommand(TASK_FIRST_INDEX, TAG1); + AddTaskTagCommand addTagToTaskCommand = new AddTaskTagCommand(TASK_FIRST_INDEX, TAG1); - String expectedMessage = String.format(AddTagToTaskCommand.MESSAGE_ADD_TAG_SUCCESS, TAG1); + String expectedMessage = String.format(AddTaskTagCommand.MESSAGE_ADD_TAG_SUCCESS, TAG1); // Manually building the expected model Model expectedModel = new ModelManager( @@ -76,14 +76,14 @@ public void execute_invalidTagIndexFilteredList_failure() { // ensures that outOfBoundIndex is still in bounds of address book list assertTrue(outOfBoundIndex.getZeroBased() < model.getTaskBook().getTaskList().size()); - AddTagToTaskCommand addTagToTaskCommand = new AddTagToTaskCommand(outOfBoundIndex, TAG1); + AddTaskTagCommand addTagToTaskCommand = new AddTaskTagCommand(outOfBoundIndex, TAG1); assertCommandFailure(addTagToTaskCommand, model, Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX); } @Test public void equals() { - final AddTagToTaskCommand command = new AddTagToTaskCommand(INDEX_FIRST_PERSON, TAG1); + final AddTaskTagCommand command = new AddTaskTagCommand(INDEX_FIRST_PERSON, TAG1); // If they are the same objects, they are equal assertTrue(command.equals(command)); diff --git a/src/test/java/seedu/address/logic/commands/ClearTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/task/ClearTaskCommandTest.java similarity index 99% rename from src/test/java/seedu/address/logic/commands/ClearTaskCommandTest.java rename to src/test/java/seedu/address/logic/commands/task/ClearTaskCommandTest.java index 14ef38bc2a6..6f796e5fbba 100644 --- a/src/test/java/seedu/address/logic/commands/ClearTaskCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/task/ClearTaskCommandTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.task; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; diff --git a/src/test/java/seedu/address/logic/commands/DeleteTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/task/DeleteTaskCommandTest.java similarity index 98% rename from src/test/java/seedu/address/logic/commands/DeleteTaskCommandTest.java rename to src/test/java/seedu/address/logic/commands/task/DeleteTaskCommandTest.java index 2d247768e04..8323bdaa960 100644 --- a/src/test/java/seedu/address/logic/commands/DeleteTaskCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/task/DeleteTaskCommandTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.task; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; diff --git a/src/test/java/seedu/address/logic/commands/DeleteTagFromTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/task/DeleteTaskTagCommandTest.java similarity index 85% rename from src/test/java/seedu/address/logic/commands/DeleteTagFromTaskCommandTest.java rename to src/test/java/seedu/address/logic/commands/task/DeleteTaskTagCommandTest.java index 3ea595f9e69..98b7e2b1bfc 100644 --- a/src/test/java/seedu/address/logic/commands/DeleteTagFromTaskCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/task/DeleteTaskTagCommandTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.task; import static org.junit.jupiter.api.Assertions.assertTrue; import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; @@ -27,7 +27,7 @@ import seedu.address.model.task.Task; import seedu.address.testutil.TaskBuilder; -class DeleteTagFromTaskCommandTest { +class DeleteTaskTagCommandTest { // Test tags // Because PersonBuilder#withTags takes String ... instead of Set private static final String TAG1 = "colleagues"; @@ -53,7 +53,7 @@ void execute_deleteTagCommandUnfilteredList_success() { // Manually building the edited task Task editedTask = new TaskBuilder(firstTask).withTags(firstTaskTagsStringArray).build(); - DeleteTagFromTaskCommand deleteTagFromTaskCommand = new DeleteTagFromTaskCommand(TASK_FIRST_INDEX, TAG1); + DeleteTaskTagCommand deleteTagFromTaskCommand = new DeleteTaskTagCommand(TASK_FIRST_INDEX, TAG1); String expectedMessage = String.format(deleteTagFromTaskCommand.MESSAGE_DEL_TAG_SUCCESS, TAG1); @@ -76,7 +76,7 @@ public void execute_invalidTagIndexFilteredList_failure() { // ensures that outOfBoundIndex is still in bounds of address book list assertTrue(outOfBoundIndex.getZeroBased() < model.getTaskBook().getTaskList().size()); - DeleteTagFromTaskCommand deleteTagFromTaskCommand = new DeleteTagFromTaskCommand(outOfBoundIndex, TAG1); + DeleteTaskTagCommand deleteTagFromTaskCommand = new DeleteTaskTagCommand(outOfBoundIndex, TAG1); assertCommandFailure(deleteTagFromTaskCommand, model, Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX); } @@ -85,15 +85,15 @@ public void execute_invalidTagIndexFilteredList_failure() { public void execute_invalidTagName_failure() { String invalidTag = ""; - DeleteTagFromTaskCommand deleteTagFromTaskCommand = new DeleteTagFromTaskCommand(TASK_FIRST_INDEX, invalidTag); + DeleteTaskTagCommand deleteTagFromTaskCommand = new DeleteTaskTagCommand(TASK_FIRST_INDEX, invalidTag); assertCommandFailure(deleteTagFromTaskCommand, model, Messages.MESSAGE_INVALID_TAG); } @Test public void equals() { - final AddTagToTaskCommand command = new AddTagToTaskCommand(INDEX_FIRST_PERSON, TAG1); - final AddTagToTaskCommand command2 = new AddTagToTaskCommand(INDEX_FIRST_PERSON, TAG1); + final AddTaskTagCommand command = new AddTaskTagCommand(INDEX_FIRST_PERSON, TAG1); + final AddTaskTagCommand command2 = new AddTaskTagCommand(INDEX_FIRST_PERSON, TAG1); // If they are the same objects, they are equal assertTrue(command.equals(command)); diff --git a/src/test/java/seedu/address/logic/commands/EditTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/task/EditTaskCommandTest.java similarity index 97% rename from src/test/java/seedu/address/logic/commands/EditTaskCommandTest.java rename to src/test/java/seedu/address/logic/commands/task/EditTaskCommandTest.java index 1df39a2d8a2..23b636964a7 100644 --- a/src/test/java/seedu/address/logic/commands/EditTaskCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/task/EditTaskCommandTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.task; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -22,6 +22,7 @@ import seedu.address.commons.core.index.Index; import seedu.address.logic.EditTaskDescriptor; import seedu.address.logic.commands.exceptions.CommandException; +import seedu.address.logic.commands.person.ClearPersonCommand; import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ModelManager; @@ -148,7 +149,7 @@ public void equals() { assertFalse(standardCommand.equals(null)); // different types -> returns false - assertFalse(standardCommand.equals(new ClearCommand())); + assertFalse(standardCommand.equals(new ClearPersonCommand())); // different index -> returns false assertFalse(standardCommand.equals(new EditTaskCommand(TASK_SECOND_INDEX, DESC_TASK1))); diff --git a/src/test/java/seedu/address/logic/commands/EditTaskDescriptorTest.java b/src/test/java/seedu/address/logic/commands/task/EditTaskDescriptorTest.java similarity index 98% rename from src/test/java/seedu/address/logic/commands/EditTaskDescriptorTest.java rename to src/test/java/seedu/address/logic/commands/task/EditTaskDescriptorTest.java index d870e318c43..96035d6b4f3 100644 --- a/src/test/java/seedu/address/logic/commands/EditTaskDescriptorTest.java +++ b/src/test/java/seedu/address/logic/commands/task/EditTaskDescriptorTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.task; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; diff --git a/src/test/java/seedu/address/logic/commands/FindTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/task/FindTaskCommandTest.java similarity index 99% rename from src/test/java/seedu/address/logic/commands/FindTaskCommandTest.java rename to src/test/java/seedu/address/logic/commands/task/FindTaskCommandTest.java index 19e862849ab..d1b30c9b3b5 100644 --- a/src/test/java/seedu/address/logic/commands/FindTaskCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/task/FindTaskCommandTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.task; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; diff --git a/src/test/java/seedu/address/logic/commands/GetPersonCommandTest.java b/src/test/java/seedu/address/logic/commands/task/GetPersonCommandTest.java similarity index 98% rename from src/test/java/seedu/address/logic/commands/GetPersonCommandTest.java rename to src/test/java/seedu/address/logic/commands/task/GetPersonCommandTest.java index bace9b50840..215f4e4b48b 100644 --- a/src/test/java/seedu/address/logic/commands/GetPersonCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/task/GetPersonCommandTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.task; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -18,6 +18,7 @@ import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.CommandResult; import seedu.address.model.Model; import seedu.address.model.ModelManager; import seedu.address.model.StrategyBoard; diff --git a/src/test/java/seedu/address/logic/commands/ListTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/task/ListTaskCommandTest.java similarity index 97% rename from src/test/java/seedu/address/logic/commands/ListTaskCommandTest.java rename to src/test/java/seedu/address/logic/commands/task/ListTaskCommandTest.java index 0027970d15e..5c6329c35bf 100644 --- a/src/test/java/seedu/address/logic/commands/ListTaskCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/task/ListTaskCommandTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.task; import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; import static seedu.address.logic.commands.CommandTestUtil.showTaskAtIndex; diff --git a/src/test/java/seedu/address/logic/commands/SortTaskByDateCommandTest.java b/src/test/java/seedu/address/logic/commands/task/SortTaskByDateCommandTest.java similarity index 96% rename from src/test/java/seedu/address/logic/commands/SortTaskByDateCommandTest.java rename to src/test/java/seedu/address/logic/commands/task/SortTaskByDateCommandTest.java index 38a1e6be99c..072f2a227a5 100644 --- a/src/test/java/seedu/address/logic/commands/SortTaskByDateCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/task/SortTaskByDateCommandTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package seedu.address.logic.commands.task; import static org.junit.jupiter.api.Assertions.assertTrue; import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; @@ -14,6 +14,7 @@ import org.junit.jupiter.api.Test; +import seedu.address.logic.commands.person.SortTaskByDateCommand; import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ModelManager; diff --git a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java b/src/test/java/seedu/address/logic/parser/Coach2K22ParserTest.java similarity index 73% rename from src/test/java/seedu/address/logic/parser/AddressBookParserTest.java rename to src/test/java/seedu/address/logic/parser/Coach2K22ParserTest.java index a98131775e9..649b76f2949 100644 --- a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java +++ b/src/test/java/seedu/address/logic/parser/Coach2K22ParserTest.java @@ -16,24 +16,24 @@ import org.junit.jupiter.api.Test; import seedu.address.logic.EditPersonDescriptor; -import seedu.address.logic.commands.AddCommand; -import seedu.address.logic.commands.ClearCommand; -import seedu.address.logic.commands.ClearTaskCommand; -import seedu.address.logic.commands.DeleteCommand; -import seedu.address.logic.commands.EditCommand; import seedu.address.logic.commands.ExitCommand; -import seedu.address.logic.commands.FindCommand; import seedu.address.logic.commands.HelpCommand; -import seedu.address.logic.commands.ListCommand; -import seedu.address.logic.commands.LoadCourtCommand; -import seedu.address.logic.commands.SortStrengthCommand; -import seedu.address.logic.commands.SortWeaknessCommand; -import seedu.address.logic.commands.notecommands.AddMiscCommand; -import seedu.address.logic.commands.notecommands.AddStrengthCommand; -import seedu.address.logic.commands.notecommands.AddWeaknessCommand; -import seedu.address.logic.commands.notecommands.DeleteMiscCommand; -import seedu.address.logic.commands.notecommands.DeleteStrengthCommand; -import seedu.address.logic.commands.notecommands.DeleteWeaknessCommand; +import seedu.address.logic.commands.person.AddPersonCommand; +import seedu.address.logic.commands.person.ClearPersonCommand; +import seedu.address.logic.commands.person.DeletePersonCommand; +import seedu.address.logic.commands.person.EditPersonCommand; +import seedu.address.logic.commands.person.FindPersonCommand; +import seedu.address.logic.commands.person.ListPersonCommand; +import seedu.address.logic.commands.person.SortStrengthCommand; +import seedu.address.logic.commands.person.SortWeaknessCommand; +import seedu.address.logic.commands.person.notecommands.AddMiscCommand; +import seedu.address.logic.commands.person.notecommands.AddStrengthCommand; +import seedu.address.logic.commands.person.notecommands.AddWeaknessCommand; +import seedu.address.logic.commands.person.notecommands.DeleteMiscCommand; +import seedu.address.logic.commands.person.notecommands.DeleteStrengthCommand; +import seedu.address.logic.commands.person.notecommands.DeleteWeaknessCommand; +import seedu.address.logic.commands.strategy.LoadCourtCommand; +import seedu.address.logic.commands.task.ClearTaskCommand; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.image.Image; import seedu.address.model.name.PersonNameContainsKeywordsPredicate; @@ -45,22 +45,22 @@ import seedu.address.testutil.PersonUtil; import seedu.address.testutil.TestImageCreator; -public class AddressBookParserTest { +public class Coach2K22ParserTest { - private final AddressBookParser parser = new AddressBookParser(); + private final Coach2K22Parser parser = new Coach2K22Parser(); private final Note noteStub = new Note("Note Stub 1"); @Test public void parseCommand_add() throws Exception { Person person = new PersonBuilder().build(); - AddCommand command = (AddCommand) parser.parseCommand(PersonUtil.getAddCommand(person)); - assertEquals(new AddCommand(person), command); + AddPersonCommand command = (AddPersonCommand) parser.parseCommand(PersonUtil.getAddCommand(person)); + assertEquals(new AddPersonCommand(person), command); } @Test public void parseCommand_clear() throws Exception { - assertTrue(parser.parseCommand(ClearCommand.COMMAND_WORD) instanceof ClearCommand); - assertTrue(parser.parseCommand(ClearCommand.COMMAND_WORD + " 3") instanceof ClearCommand); + assertTrue(parser.parseCommand(ClearPersonCommand.COMMAND_WORD) instanceof ClearPersonCommand); + assertTrue(parser.parseCommand(ClearPersonCommand.COMMAND_WORD + " 3") instanceof ClearPersonCommand); } @Test @@ -71,9 +71,9 @@ public void parseCommand_clearTask() throws Exception { @Test public void parseCommand_delete() throws Exception { - DeleteCommand command = (DeleteCommand) parser.parseCommand( - DeleteCommand.COMMAND_WORD + " " + INDEX_FIRST_PERSON.getOneBased()); - assertEquals(new DeleteCommand(INDEX_FIRST_PERSON), command); + DeletePersonCommand command = (DeletePersonCommand) parser.parseCommand( + DeletePersonCommand.COMMAND_WORD + " " + INDEX_FIRST_PERSON.getOneBased()); + assertEquals(new DeletePersonCommand(INDEX_FIRST_PERSON), command); } @Test @@ -144,9 +144,9 @@ public void parseCommand_loadCourt() throws Exception { public void parseCommand_edit() throws Exception { Person person = new PersonBuilder().build(); EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder(person).build(); - EditCommand command = (EditCommand) parser.parseCommand(EditCommand.COMMAND_WORD + " " + EditPersonCommand command = (EditPersonCommand) parser.parseCommand(EditPersonCommand.COMMAND_WORD + " " + INDEX_FIRST_PERSON.getOneBased() + " " + PersonUtil.getEditPersonDescriptorDetails(descriptor)); - assertEquals(new EditCommand(INDEX_FIRST_PERSON, descriptor), command); + assertEquals(new EditPersonCommand(INDEX_FIRST_PERSON, descriptor), command); } @Test @@ -159,9 +159,9 @@ public void parseCommand_exit() throws Exception { public void parseCommand_find() throws Exception { List nameList = Arrays.asList("foo", "bar", "baz"); List tagList = Arrays.asList("friends", "colleagues"); - FindCommand command = (FindCommand) parser.parseCommand( - FindCommand.COMMAND_WORD + " " + "n/foo n/bar n/baz t/friends t/colleagues"); - assertEquals(new FindCommand(new PersonNameContainsKeywordsPredicate(nameList), + FindPersonCommand command = (FindPersonCommand) parser.parseCommand( + FindPersonCommand.COMMAND_WORD + " " + "n/foo n/bar n/baz t/friends t/colleagues"); + assertEquals(new FindPersonCommand(new PersonNameContainsKeywordsPredicate(nameList), new PersonTagContainsKeywordsPredicate(tagList)), command); } @@ -173,8 +173,8 @@ public void parseCommand_help() throws Exception { @Test public void parseCommand_list() throws Exception { - assertTrue(parser.parseCommand(ListCommand.COMMAND_WORD) instanceof ListCommand); - assertTrue(parser.parseCommand(ListCommand.COMMAND_WORD + " 3") instanceof ListCommand); + assertTrue(parser.parseCommand(ListPersonCommand.COMMAND_WORD) instanceof ListPersonCommand); + assertTrue(parser.parseCommand(ListPersonCommand.COMMAND_WORD + " 3") instanceof ListPersonCommand); } @Test diff --git a/src/test/java/seedu/address/logic/parser/AddCommandParserTest.java b/src/test/java/seedu/address/logic/parser/person/AddPersonCommandParserTest.java similarity index 87% rename from src/test/java/seedu/address/logic/parser/AddCommandParserTest.java rename to src/test/java/seedu/address/logic/parser/person/AddPersonCommandParserTest.java index 14b262c7717..c6beb9cddaf 100644 --- a/src/test/java/seedu/address/logic/parser/AddCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/person/AddPersonCommandParserTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.person; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static seedu.address.logic.commands.CommandTestUtil.ADDRESS_DESC_AMY; @@ -31,7 +31,7 @@ import org.junit.jupiter.api.Test; -import seedu.address.logic.commands.AddCommand; +import seedu.address.logic.commands.person.AddPersonCommand; import seedu.address.model.name.Name; import seedu.address.model.person.Address; import seedu.address.model.person.Email; @@ -40,8 +40,8 @@ import seedu.address.model.tag.Tag; import seedu.address.testutil.PersonBuilder; -public class AddCommandParserTest { - private AddCommandParser parser = new AddCommandParser(); +public class AddPersonCommandParserTest { + private AddPersonCommandParser parser = new AddPersonCommandParser(); @Test public void parse_allFieldsPresent_success() { @@ -49,29 +49,29 @@ public void parse_allFieldsPresent_success() { // whitespace only preamble assertParseSuccess(parser, PREAMBLE_WHITESPACE + NAME_DESC_BOB + PHONE_DESC_BOB + EMAIL_DESC_BOB - + ADDRESS_DESC_BOB + TAG_DESC_FRIEND, new AddCommand(expectedPerson)); + + ADDRESS_DESC_BOB + TAG_DESC_FRIEND, new AddPersonCommand(expectedPerson)); // multiple names - last name accepted assertParseSuccess(parser, NAME_DESC_AMY + NAME_DESC_BOB + PHONE_DESC_BOB + EMAIL_DESC_BOB - + ADDRESS_DESC_BOB + TAG_DESC_FRIEND, new AddCommand(expectedPerson)); + + ADDRESS_DESC_BOB + TAG_DESC_FRIEND, new AddPersonCommand(expectedPerson)); // multiple phones - last phone accepted assertParseSuccess(parser, NAME_DESC_BOB + PHONE_DESC_AMY + PHONE_DESC_BOB + EMAIL_DESC_BOB - + ADDRESS_DESC_BOB + TAG_DESC_FRIEND, new AddCommand(expectedPerson)); + + ADDRESS_DESC_BOB + TAG_DESC_FRIEND, new AddPersonCommand(expectedPerson)); // multiple emails - last email accepted assertParseSuccess(parser, NAME_DESC_BOB + PHONE_DESC_BOB + EMAIL_DESC_AMY + EMAIL_DESC_BOB - + ADDRESS_DESC_BOB + TAG_DESC_FRIEND, new AddCommand(expectedPerson)); + + ADDRESS_DESC_BOB + TAG_DESC_FRIEND, new AddPersonCommand(expectedPerson)); // multiple addresses - last address accepted assertParseSuccess(parser, NAME_DESC_BOB + PHONE_DESC_BOB + EMAIL_DESC_BOB + ADDRESS_DESC_AMY - + ADDRESS_DESC_BOB + TAG_DESC_FRIEND, new AddCommand(expectedPerson)); + + ADDRESS_DESC_BOB + TAG_DESC_FRIEND, new AddPersonCommand(expectedPerson)); // multiple tags - all accepted Person expectedPersonMultipleTags = new PersonBuilder(BOB).withTags(VALID_TAG_FRIEND, VALID_TAG_HUSBAND) .build(); assertParseSuccess(parser, NAME_DESC_BOB + PHONE_DESC_BOB + EMAIL_DESC_BOB + ADDRESS_DESC_BOB - + TAG_DESC_HUSBAND + TAG_DESC_FRIEND, new AddCommand(expectedPersonMultipleTags)); + + TAG_DESC_HUSBAND + TAG_DESC_FRIEND, new AddPersonCommand(expectedPersonMultipleTags)); } @Test @@ -79,12 +79,12 @@ public void parse_optionalFieldsMissing_success() { // zero tags Person expectedPerson = new PersonBuilder(AMY).withTags().build(); assertParseSuccess(parser, NAME_DESC_AMY + PHONE_DESC_AMY + EMAIL_DESC_AMY + ADDRESS_DESC_AMY, - new AddCommand(expectedPerson)); + new AddPersonCommand(expectedPerson)); } @Test public void parse_compulsoryFieldMissing_failure() { - String expectedMessage = String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddCommand.MESSAGE_USAGE); + String expectedMessage = String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddPersonCommand.MESSAGE_USAGE); // missing name prefix assertParseFailure(parser, VALID_NAME_BOB + PHONE_DESC_BOB + EMAIL_DESC_BOB + ADDRESS_DESC_BOB, @@ -136,6 +136,6 @@ public void parse_invalidValue_failure() { // non-empty preamble assertParseFailure(parser, PREAMBLE_NON_EMPTY + NAME_DESC_BOB + PHONE_DESC_BOB + EMAIL_DESC_BOB + ADDRESS_DESC_BOB + TAG_DESC_HUSBAND + TAG_DESC_FRIEND, - String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddCommand.MESSAGE_USAGE)); + String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddPersonCommand.MESSAGE_USAGE)); } } diff --git a/src/test/java/seedu/address/logic/parser/AddTagCommandParserTest.java b/src/test/java/seedu/address/logic/parser/person/AddPersonTagCommandParserTest.java similarity index 67% rename from src/test/java/seedu/address/logic/parser/AddTagCommandParserTest.java rename to src/test/java/seedu/address/logic/parser/person/AddPersonTagCommandParserTest.java index 67933c5e269..ce883fce7ff 100644 --- a/src/test/java/seedu/address/logic/parser/AddTagCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/person/AddPersonTagCommandParserTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.person; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; @@ -7,17 +7,17 @@ import org.junit.jupiter.api.Test; -import seedu.address.logic.commands.AddTagCommand; +import seedu.address.logic.commands.person.AddPersonTagCommand; -class AddTagCommandParserTest { +class AddPersonTagCommandParserTest { private static final String TAG1 = "TAG1"; - private AddTagCommandParser parser = new AddTagCommandParser(); + private AddPersonTagCommandParser parser = new AddPersonTagCommandParser(); @Test void parse_validArgs_returnsAddTagCommand() { - AddTagCommand expectedAddTagCommand = new AddTagCommand(INDEX_FIRST_PERSON, TAG1); + AddPersonTagCommand expectedAddTagCommand = new AddPersonTagCommand(INDEX_FIRST_PERSON, TAG1); assertParseSuccess(parser, " 1 TAG1", expectedAddTagCommand); } @@ -25,6 +25,6 @@ void parse_validArgs_returnsAddTagCommand() { void parse_invalidArgs_throwsParseException() { assertParseFailure(parser, " 1 t/friend", - String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddTagCommand.MESSAGE_USAGE)); + String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddPersonTagCommand.MESSAGE_USAGE)); } } diff --git a/src/test/java/seedu/address/logic/parser/DeleteCommandParserTest.java b/src/test/java/seedu/address/logic/parser/person/DeletePersonCommandParserTest.java similarity index 66% rename from src/test/java/seedu/address/logic/parser/DeleteCommandParserTest.java rename to src/test/java/seedu/address/logic/parser/person/DeletePersonCommandParserTest.java index 27eaec84450..d2ad76a2f2e 100644 --- a/src/test/java/seedu/address/logic/parser/DeleteCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/person/DeletePersonCommandParserTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.person; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; @@ -7,7 +7,7 @@ import org.junit.jupiter.api.Test; -import seedu.address.logic.commands.DeleteCommand; +import seedu.address.logic.commands.person.DeletePersonCommand; /** * As we are only doing white-box testing, our test cases do not cover path variations @@ -16,17 +16,18 @@ * The path variation for those two cases occur inside the ParserUtil, and * therefore should be covered by the ParserUtilTest. */ -public class DeleteCommandParserTest { +public class DeletePersonCommandParserTest { - private DeleteCommandParser parser = new DeleteCommandParser(); + private DeletePersonCommandParser parser = new DeletePersonCommandParser(); @Test public void parse_validArgs_returnsDeleteCommand() { - assertParseSuccess(parser, "1", new DeleteCommand(INDEX_FIRST_PERSON)); + assertParseSuccess(parser, "1", new DeletePersonCommand(INDEX_FIRST_PERSON)); } @Test public void parse_invalidArgs_throwsParseException() { - assertParseFailure(parser, "a", String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteCommand.MESSAGE_USAGE)); + assertParseFailure(parser, "a", + String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeletePersonCommand.MESSAGE_USAGE)); } } diff --git a/src/test/java/seedu/address/logic/parser/DeleteTagCommandParserTest.java b/src/test/java/seedu/address/logic/parser/person/DeletePersonTagCommandParserTest.java similarity index 66% rename from src/test/java/seedu/address/logic/parser/DeleteTagCommandParserTest.java rename to src/test/java/seedu/address/logic/parser/person/DeletePersonTagCommandParserTest.java index 63b7590ddeb..2223d24cab9 100644 --- a/src/test/java/seedu/address/logic/parser/DeleteTagCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/person/DeletePersonTagCommandParserTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.person; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; @@ -7,17 +7,17 @@ import org.junit.jupiter.api.Test; -import seedu.address.logic.commands.DeleteTagCommand; +import seedu.address.logic.commands.person.DeletePersonTagCommand; -class DeleteTagCommandParserTest { +class DeletePersonTagCommandParserTest { private static final String TAG1 = "friends"; - private DeleteTagCommandParser parser = new DeleteTagCommandParser(); + private DeletePersonTagCommandParser parser = new DeletePersonTagCommandParser(); @Test void parse_validArgs_returnsDeleteTagCommand() { - DeleteTagCommand expectedDeleteTagCommand = new DeleteTagCommand(INDEX_FIRST_PERSON, TAG1); + DeletePersonTagCommand expectedDeleteTagCommand = new DeletePersonTagCommand(INDEX_FIRST_PERSON, TAG1); assertParseSuccess(parser, " 1 friends", expectedDeleteTagCommand); } @@ -25,6 +25,6 @@ void parse_validArgs_returnsDeleteTagCommand() { void parse_invalidArgs_throwsParseException() { assertParseFailure(parser, " 1 t/friend", - String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteTagCommand.MESSAGE_USAGE)); + String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeletePersonTagCommand.MESSAGE_USAGE)); } } diff --git a/src/test/java/seedu/address/logic/parser/EditCommandParserTest.java b/src/test/java/seedu/address/logic/parser/person/EditPersonCommandParserTest.java similarity index 88% rename from src/test/java/seedu/address/logic/parser/EditCommandParserTest.java rename to src/test/java/seedu/address/logic/parser/person/EditPersonCommandParserTest.java index 2885b9eea35..860ca6870ea 100644 --- a/src/test/java/seedu/address/logic/parser/EditCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/person/EditPersonCommandParserTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.person; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static seedu.address.logic.commands.CommandTestUtil.ADDRESS_DESC_AMY; @@ -35,7 +35,7 @@ import seedu.address.commons.core.index.Index; import seedu.address.logic.EditPersonDescriptor; -import seedu.address.logic.commands.EditCommand; +import seedu.address.logic.commands.person.EditPersonCommand; import seedu.address.model.name.Name; import seedu.address.model.person.Address; import seedu.address.model.person.Email; @@ -43,14 +43,14 @@ import seedu.address.model.tag.Tag; import seedu.address.testutil.EditPersonDescriptorBuilder; -public class EditCommandParserTest { +public class EditPersonCommandParserTest { private static final String TAG_EMPTY = " " + PREFIX_TAG; private static final String MESSAGE_INVALID_FORMAT = - String.format(MESSAGE_INVALID_COMMAND_FORMAT, EditCommand.MESSAGE_USAGE); + String.format(MESSAGE_INVALID_COMMAND_FORMAT, EditPersonCommand.MESSAGE_USAGE); - private EditCommandParser parser = new EditCommandParser(); + private EditPersonCommandParser parser = new EditPersonCommandParser(); @Test public void parse_missingParts_failure() { @@ -58,7 +58,7 @@ public void parse_missingParts_failure() { assertParseFailure(parser, VALID_NAME_AMY, MESSAGE_INVALID_FORMAT); // no field specified - assertParseFailure(parser, "1", EditCommand.MESSAGE_NOT_EDITED); + assertParseFailure(parser, "1", EditPersonCommand.MESSAGE_NOT_EDITED); // no index and no field specified assertParseFailure(parser, "", MESSAGE_INVALID_FORMAT); @@ -114,7 +114,7 @@ public void parse_allFieldsSpecified_success() { EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withName(VALID_NAME_AMY) .withPhone(VALID_PHONE_BOB).withEmail(VALID_EMAIL_AMY).withAddress(VALID_ADDRESS_AMY) .withTags(VALID_TAG_HUSBAND, VALID_TAG_FRIEND).build(); - EditCommand expectedCommand = new EditCommand(targetIndex, descriptor); + EditPersonCommand expectedCommand = new EditPersonCommand(targetIndex, descriptor); assertParseSuccess(parser, userInput, expectedCommand); } @@ -126,7 +126,7 @@ public void parse_someFieldsSpecified_success() { EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withPhone(VALID_PHONE_BOB) .withEmail(VALID_EMAIL_AMY).build(); - EditCommand expectedCommand = new EditCommand(targetIndex, descriptor); + EditPersonCommand expectedCommand = new EditPersonCommand(targetIndex, descriptor); assertParseSuccess(parser, userInput, expectedCommand); } @@ -137,31 +137,31 @@ public void parse_oneFieldSpecified_success() { Index targetIndex = INDEX_THIRD_PERSON; String userInput = targetIndex.getOneBased() + NAME_DESC_AMY; EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withName(VALID_NAME_AMY).build(); - EditCommand expectedCommand = new EditCommand(targetIndex, descriptor); + EditPersonCommand expectedCommand = new EditPersonCommand(targetIndex, descriptor); assertParseSuccess(parser, userInput, expectedCommand); // phone userInput = targetIndex.getOneBased() + PHONE_DESC_AMY; descriptor = new EditPersonDescriptorBuilder().withPhone(VALID_PHONE_AMY).build(); - expectedCommand = new EditCommand(targetIndex, descriptor); + expectedCommand = new EditPersonCommand(targetIndex, descriptor); assertParseSuccess(parser, userInput, expectedCommand); // email userInput = targetIndex.getOneBased() + EMAIL_DESC_AMY; descriptor = new EditPersonDescriptorBuilder().withEmail(VALID_EMAIL_AMY).build(); - expectedCommand = new EditCommand(targetIndex, descriptor); + expectedCommand = new EditPersonCommand(targetIndex, descriptor); assertParseSuccess(parser, userInput, expectedCommand); // address userInput = targetIndex.getOneBased() + ADDRESS_DESC_AMY; descriptor = new EditPersonDescriptorBuilder().withAddress(VALID_ADDRESS_AMY).build(); - expectedCommand = new EditCommand(targetIndex, descriptor); + expectedCommand = new EditPersonCommand(targetIndex, descriptor); assertParseSuccess(parser, userInput, expectedCommand); // tags userInput = targetIndex.getOneBased() + TAG_DESC_FRIEND; descriptor = new EditPersonDescriptorBuilder().withTags(VALID_TAG_FRIEND).build(); - expectedCommand = new EditCommand(targetIndex, descriptor); + expectedCommand = new EditPersonCommand(targetIndex, descriptor); assertParseSuccess(parser, userInput, expectedCommand); } @@ -175,7 +175,7 @@ public void parse_multipleRepeatedFields_acceptsLast() { EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withPhone(VALID_PHONE_BOB) .withEmail(VALID_EMAIL_BOB).withAddress(VALID_ADDRESS_BOB).withTags(VALID_TAG_FRIEND, VALID_TAG_HUSBAND) .build(); - EditCommand expectedCommand = new EditCommand(targetIndex, descriptor); + EditPersonCommand expectedCommand = new EditPersonCommand(targetIndex, descriptor); assertParseSuccess(parser, userInput, expectedCommand); } @@ -186,7 +186,7 @@ public void parse_invalidValueFollowedByValidValue_success() { Index targetIndex = INDEX_FIRST_PERSON; String userInput = targetIndex.getOneBased() + INVALID_PHONE_DESC + PHONE_DESC_BOB; EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withPhone(VALID_PHONE_BOB).build(); - EditCommand expectedCommand = new EditCommand(targetIndex, descriptor); + EditPersonCommand expectedCommand = new EditPersonCommand(targetIndex, descriptor); assertParseSuccess(parser, userInput, expectedCommand); // other valid values specified @@ -194,7 +194,7 @@ public void parse_invalidValueFollowedByValidValue_success() { + PHONE_DESC_BOB; descriptor = new EditPersonDescriptorBuilder().withPhone(VALID_PHONE_BOB).withEmail(VALID_EMAIL_BOB) .withAddress(VALID_ADDRESS_BOB).build(); - expectedCommand = new EditCommand(targetIndex, descriptor); + expectedCommand = new EditPersonCommand(targetIndex, descriptor); assertParseSuccess(parser, userInput, expectedCommand); } @@ -204,7 +204,7 @@ public void parse_resetTags_success() { String userInput = targetIndex.getOneBased() + TAG_EMPTY; EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withTags().build(); - EditCommand expectedCommand = new EditCommand(targetIndex, descriptor); + EditPersonCommand expectedCommand = new EditPersonCommand(targetIndex, descriptor); assertParseSuccess(parser, userInput, expectedCommand); } diff --git a/src/test/java/seedu/address/logic/parser/FindCommandParserTest.java b/src/test/java/seedu/address/logic/parser/person/FindPersonCommandParserTest.java similarity index 69% rename from src/test/java/seedu/address/logic/parser/FindCommandParserTest.java rename to src/test/java/seedu/address/logic/parser/person/FindPersonCommandParserTest.java index 00db2a89997..3012bb5abfb 100644 --- a/src/test/java/seedu/address/logic/parser/FindCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/person/FindPersonCommandParserTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.person; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; @@ -9,17 +9,18 @@ import org.junit.jupiter.api.Test; -import seedu.address.logic.commands.FindCommand; +import seedu.address.logic.commands.person.FindPersonCommand; import seedu.address.model.name.PersonNameContainsKeywordsPredicate; import seedu.address.model.tag.PersonTagContainsKeywordsPredicate; -public class FindCommandParserTest { +public class FindPersonCommandParserTest { - private FindCommandParser parser = new FindCommandParser(); + private FindPersonCommandParser parser = new FindPersonCommandParser(); @Test public void parse_emptyArg_throwsParseException() { - assertParseFailure(parser, " ", String.format(MESSAGE_INVALID_COMMAND_FORMAT, FindCommand.MESSAGE_USAGE)); + assertParseFailure(parser, " ", + String.format(MESSAGE_INVALID_COMMAND_FORMAT, FindPersonCommand.MESSAGE_USAGE)); } @Test @@ -27,8 +28,8 @@ public void parse_validArgs_returnsFindCommand() { List nameList = Arrays.asList("Alex", "Bob"); List tagList = Arrays.asList("friends", "neighbours"); // no leading and trailing whitespaces - FindCommand expectedFindCommand = - new FindCommand(new PersonNameContainsKeywordsPredicate(nameList), + FindPersonCommand expectedFindCommand = + new FindPersonCommand(new PersonNameContainsKeywordsPredicate(nameList), new PersonTagContainsKeywordsPredicate(tagList)); assertParseSuccess(parser, " n/Alex n/Bob t/friends t/neighbours", expectedFindCommand); diff --git a/src/test/java/seedu/address/logic/parser/AddMiscCommandParserTest.java b/src/test/java/seedu/address/logic/parser/person/notecommand/AddMiscCommandParserTest.java similarity index 88% rename from src/test/java/seedu/address/logic/parser/AddMiscCommandParserTest.java rename to src/test/java/seedu/address/logic/parser/person/notecommand/AddMiscCommandParserTest.java index 8e636e8551d..ed03d2b2f52 100644 --- a/src/test/java/seedu/address/logic/parser/AddMiscCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/person/notecommand/AddMiscCommandParserTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.person.notecommand; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static seedu.address.logic.commands.CommandTestUtil.VALID_NOTE_AMY; @@ -8,8 +8,8 @@ import org.junit.jupiter.api.Test; -import seedu.address.logic.commands.notecommands.AddMiscCommand; -import seedu.address.logic.parser.notecommandparsers.AddMiscCommandParser; +import seedu.address.logic.commands.person.notecommands.AddMiscCommand; +import seedu.address.logic.parser.person.notecommands.AddMiscCommandParser; import seedu.address.model.note.Note; class AddMiscCommandParserTest { diff --git a/src/test/java/seedu/address/logic/parser/AddStrengthCommandParserTest.java b/src/test/java/seedu/address/logic/parser/person/notecommand/AddStrengthCommandParserTest.java similarity index 88% rename from src/test/java/seedu/address/logic/parser/AddStrengthCommandParserTest.java rename to src/test/java/seedu/address/logic/parser/person/notecommand/AddStrengthCommandParserTest.java index 3bcf59d4d70..869cdfe3807 100644 --- a/src/test/java/seedu/address/logic/parser/AddStrengthCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/person/notecommand/AddStrengthCommandParserTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.person.notecommand; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static seedu.address.logic.commands.CommandTestUtil.VALID_NOTE_AMY; @@ -8,8 +8,8 @@ import org.junit.jupiter.api.Test; -import seedu.address.logic.commands.notecommands.AddStrengthCommand; -import seedu.address.logic.parser.notecommandparsers.AddStrengthCommandParser; +import seedu.address.logic.commands.person.notecommands.AddStrengthCommand; +import seedu.address.logic.parser.person.notecommands.AddStrengthCommandParser; import seedu.address.model.note.Note; class AddStrengthCommandParserTest { diff --git a/src/test/java/seedu/address/logic/parser/AddWeaknessCommandParserTest.java b/src/test/java/seedu/address/logic/parser/person/notecommand/AddWeaknessCommandParserTest.java similarity index 88% rename from src/test/java/seedu/address/logic/parser/AddWeaknessCommandParserTest.java rename to src/test/java/seedu/address/logic/parser/person/notecommand/AddWeaknessCommandParserTest.java index dbc6cd10584..21729835313 100644 --- a/src/test/java/seedu/address/logic/parser/AddWeaknessCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/person/notecommand/AddWeaknessCommandParserTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.person.notecommand; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static seedu.address.logic.commands.CommandTestUtil.VALID_NOTE_AMY; @@ -8,8 +8,8 @@ import org.junit.jupiter.api.Test; -import seedu.address.logic.commands.notecommands.AddWeaknessCommand; -import seedu.address.logic.parser.notecommandparsers.AddWeaknessCommandParser; +import seedu.address.logic.commands.person.notecommands.AddWeaknessCommand; +import seedu.address.logic.parser.person.notecommands.AddWeaknessCommandParser; import seedu.address.model.note.Note; class AddWeaknessCommandParserTest { diff --git a/src/test/java/seedu/address/logic/parser/DeleteMiscCommandParserTest.java b/src/test/java/seedu/address/logic/parser/person/notecommand/DeleteMiscCommandParserTest.java similarity index 85% rename from src/test/java/seedu/address/logic/parser/DeleteMiscCommandParserTest.java rename to src/test/java/seedu/address/logic/parser/person/notecommand/DeleteMiscCommandParserTest.java index e42ec277818..28ca533c5df 100644 --- a/src/test/java/seedu/address/logic/parser/DeleteMiscCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/person/notecommand/DeleteMiscCommandParserTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.person.notecommand; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; @@ -8,8 +8,8 @@ import org.junit.jupiter.api.Test; -import seedu.address.logic.commands.notecommands.DeleteMiscCommand; -import seedu.address.logic.parser.notecommandparsers.DeleteMiscCommandParser; +import seedu.address.logic.commands.person.notecommands.DeleteMiscCommand; +import seedu.address.logic.parser.person.notecommands.DeleteMiscCommandParser; /** * Contains tests for diff --git a/src/test/java/seedu/address/logic/parser/DeleteStrengthCommandParserTest.java b/src/test/java/seedu/address/logic/parser/person/notecommand/DeleteStrengthCommandParserTest.java similarity index 85% rename from src/test/java/seedu/address/logic/parser/DeleteStrengthCommandParserTest.java rename to src/test/java/seedu/address/logic/parser/person/notecommand/DeleteStrengthCommandParserTest.java index 798053d7722..7228e84a580 100644 --- a/src/test/java/seedu/address/logic/parser/DeleteStrengthCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/person/notecommand/DeleteStrengthCommandParserTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.person.notecommand; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; @@ -8,8 +8,8 @@ import org.junit.jupiter.api.Test; -import seedu.address.logic.commands.notecommands.DeleteStrengthCommand; -import seedu.address.logic.parser.notecommandparsers.DeleteStrengthCommandParser; +import seedu.address.logic.commands.person.notecommands.DeleteStrengthCommand; +import seedu.address.logic.parser.person.notecommands.DeleteStrengthCommandParser; /** * Contains tests for diff --git a/src/test/java/seedu/address/logic/parser/DeleteWeaknessCommandParserTest.java b/src/test/java/seedu/address/logic/parser/person/notecommand/DeleteWeaknessCommandParserTest.java similarity index 85% rename from src/test/java/seedu/address/logic/parser/DeleteWeaknessCommandParserTest.java rename to src/test/java/seedu/address/logic/parser/person/notecommand/DeleteWeaknessCommandParserTest.java index d6c93f2c591..db8d56b5536 100644 --- a/src/test/java/seedu/address/logic/parser/DeleteWeaknessCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/person/notecommand/DeleteWeaknessCommandParserTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.person.notecommand; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; @@ -8,8 +8,8 @@ import org.junit.jupiter.api.Test; -import seedu.address.logic.commands.notecommands.DeleteWeaknessCommand; -import seedu.address.logic.parser.notecommandparsers.DeleteWeaknessCommandParser; +import seedu.address.logic.commands.person.notecommands.DeleteWeaknessCommand; +import seedu.address.logic.parser.person.notecommands.DeleteWeaknessCommandParser; /** * Contains tests for diff --git a/src/test/java/seedu/address/logic/parser/LoadCourtCommandParserTest.java b/src/test/java/seedu/address/logic/parser/strategy/LoadCourtCommandParserTest.java similarity index 93% rename from src/test/java/seedu/address/logic/parser/LoadCourtCommandParserTest.java rename to src/test/java/seedu/address/logic/parser/strategy/LoadCourtCommandParserTest.java index 3ad0e907e94..956d3f33b33 100644 --- a/src/test/java/seedu/address/logic/parser/LoadCourtCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/strategy/LoadCourtCommandParserTest.java @@ -1,11 +1,11 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.strategy; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; import org.junit.jupiter.api.Test; -import seedu.address.logic.commands.LoadCourtCommand; +import seedu.address.logic.commands.strategy.LoadCourtCommand; import seedu.address.model.image.Image; import seedu.address.testutil.TestImageCreator; diff --git a/src/test/java/seedu/address/logic/parser/AddTaskCommandParserTest.java b/src/test/java/seedu/address/logic/parser/task/AddTaskCommandParserTest.java similarity index 98% rename from src/test/java/seedu/address/logic/parser/AddTaskCommandParserTest.java rename to src/test/java/seedu/address/logic/parser/task/AddTaskCommandParserTest.java index 977cedeb88d..e44fc30d79e 100644 --- a/src/test/java/seedu/address/logic/parser/AddTaskCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/task/AddTaskCommandParserTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.task; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static seedu.address.logic.commands.CommandTestUtil.DATE_DESC_TASK1; @@ -31,7 +31,7 @@ import org.junit.jupiter.api.Test; -import seedu.address.logic.commands.AddTaskCommand; +import seedu.address.logic.commands.task.AddTaskCommand; import seedu.address.model.name.Name; import seedu.address.model.tag.Tag; import seedu.address.model.task.Date; diff --git a/src/test/java/seedu/address/logic/parser/AddTagToTaskCommandParserTest.java b/src/test/java/seedu/address/logic/parser/task/AddTaskTagCommandParserTest.java similarity index 69% rename from src/test/java/seedu/address/logic/parser/AddTagToTaskCommandParserTest.java rename to src/test/java/seedu/address/logic/parser/task/AddTaskTagCommandParserTest.java index 40c209f564e..ed8c64ed6cc 100644 --- a/src/test/java/seedu/address/logic/parser/AddTagToTaskCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/task/AddTaskTagCommandParserTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.task; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; @@ -7,17 +7,17 @@ import org.junit.jupiter.api.Test; -import seedu.address.logic.commands.AddTagToTaskCommand; +import seedu.address.logic.commands.task.AddTaskTagCommand; -class AddTagToTaskCommandParserTest { +class AddTaskTagCommandParserTest { private static final String TAG1 = "TAG1"; - private AddTagToTaskCommandParser parser = new AddTagToTaskCommandParser(); + private AddTaskTagCommandParser parser = new AddTaskTagCommandParser(); @Test void parse_validArgs_returnsAddTagToTaskCommand() { - AddTagToTaskCommand expectedAddTagToTaskCommand = new AddTagToTaskCommand(INDEX_FIRST_PERSON, TAG1); + AddTaskTagCommand expectedAddTagToTaskCommand = new AddTaskTagCommand(INDEX_FIRST_PERSON, TAG1); assertParseSuccess(parser, " 1 TAG1", expectedAddTagToTaskCommand); } @@ -25,6 +25,6 @@ void parse_validArgs_returnsAddTagToTaskCommand() { void parse_invalidArgs_throwsParseException() { assertParseFailure(parser, " 1 t/important", // Tags can only be alphanumeric - String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddTagToTaskCommand.MESSAGE_USAGE)); + String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddTaskTagCommand.MESSAGE_USAGE)); } } diff --git a/src/test/java/seedu/address/logic/parser/ClearTaskCommandParserTest.java b/src/test/java/seedu/address/logic/parser/task/ClearTaskCommandParserTest.java similarity index 93% rename from src/test/java/seedu/address/logic/parser/ClearTaskCommandParserTest.java rename to src/test/java/seedu/address/logic/parser/task/ClearTaskCommandParserTest.java index b473116626f..55b4678a70d 100644 --- a/src/test/java/seedu/address/logic/parser/ClearTaskCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/task/ClearTaskCommandParserTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.task; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; @@ -6,7 +6,7 @@ import org.junit.jupiter.api.Test; -import seedu.address.logic.commands.ClearTaskCommand; +import seedu.address.logic.commands.task.ClearTaskCommand; import seedu.address.model.task.Date; /** diff --git a/src/test/java/seedu/address/logic/parser/DeleteTaskCommandParserTest.java b/src/test/java/seedu/address/logic/parser/task/DeleteTaskCommandParserTest.java similarity index 89% rename from src/test/java/seedu/address/logic/parser/DeleteTaskCommandParserTest.java rename to src/test/java/seedu/address/logic/parser/task/DeleteTaskCommandParserTest.java index 1f458ddcdbc..d9eddd70308 100644 --- a/src/test/java/seedu/address/logic/parser/DeleteTaskCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/task/DeleteTaskCommandParserTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.task; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; @@ -7,7 +7,7 @@ import org.junit.jupiter.api.Test; -import seedu.address.logic.commands.DeleteTaskCommand; +import seedu.address.logic.commands.task.DeleteTaskCommand; public class DeleteTaskCommandParserTest { diff --git a/src/test/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParserTest.java b/src/test/java/seedu/address/logic/parser/task/DeleteTaskTagCommandParserTest.java similarity index 74% rename from src/test/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParserTest.java rename to src/test/java/seedu/address/logic/parser/task/DeleteTaskTagCommandParserTest.java index eb5dc3809cf..eba52cf9717 100644 --- a/src/test/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/task/DeleteTaskTagCommandParserTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.task; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX; @@ -8,19 +8,19 @@ import org.junit.jupiter.api.Test; -import seedu.address.logic.commands.DeleteTagFromTaskCommand; +import seedu.address.logic.commands.task.DeleteTaskTagCommand; import seedu.address.logic.parser.exceptions.ParseException; -class DeleteTagFromTaskCommandParserTest { +class DeleteTaskTagCommandParserTest { private static final String TAG1 = "TAG1"; - private DeleteTagFromTaskCommandParser parser = new DeleteTagFromTaskCommandParser(); + private DeleteTaskTagCommandParser parser = new DeleteTaskTagCommandParser(); @Test void parse_validArgs_returnsDeleteTagFromTasksCommand() { - DeleteTagFromTaskCommand expectedDeleteTagFromTaskCommand = - new DeleteTagFromTaskCommand(INDEX_FIRST_PERSON, TAG1); + DeleteTaskTagCommand expectedDeleteTagFromTaskCommand = + new DeleteTaskTagCommand(INDEX_FIRST_PERSON, TAG1); assertParseSuccess(parser, " 1 TAG1", expectedDeleteTagFromTaskCommand); } @@ -28,7 +28,7 @@ void parse_validArgs_returnsDeleteTagFromTasksCommand() { void parse_invalidArgs_throwsParseException() { assertParseFailure(parser, " 1 t/important", // Tags can only be alphanumeric - String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteTagFromTaskCommand.MESSAGE_USAGE)); + String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteTaskTagCommand.MESSAGE_USAGE)); } @Test diff --git a/src/test/java/seedu/address/logic/parser/EditTaskCommandParserTest.java b/src/test/java/seedu/address/logic/parser/task/EditTaskCommandParserTest.java similarity index 99% rename from src/test/java/seedu/address/logic/parser/EditTaskCommandParserTest.java rename to src/test/java/seedu/address/logic/parser/task/EditTaskCommandParserTest.java index 82abd22de8c..50d164574e9 100644 --- a/src/test/java/seedu/address/logic/parser/EditTaskCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/task/EditTaskCommandParserTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.task; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static seedu.address.logic.commands.CommandTestUtil.DATE_DESC_TASK1; @@ -34,7 +34,7 @@ import seedu.address.commons.core.index.Index; import seedu.address.logic.EditTaskDescriptor; -import seedu.address.logic.commands.EditTaskCommand; +import seedu.address.logic.commands.task.EditTaskCommand; import seedu.address.model.name.Name; import seedu.address.model.tag.Tag; import seedu.address.model.task.Date; diff --git a/src/test/java/seedu/address/logic/parser/FindTaskCommandParserTest.java b/src/test/java/seedu/address/logic/parser/task/FindTaskCommandParserTest.java similarity index 93% rename from src/test/java/seedu/address/logic/parser/FindTaskCommandParserTest.java rename to src/test/java/seedu/address/logic/parser/task/FindTaskCommandParserTest.java index b615a6b2694..abb1989e591 100644 --- a/src/test/java/seedu/address/logic/parser/FindTaskCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/task/FindTaskCommandParserTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.task; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; @@ -9,7 +9,7 @@ import org.junit.jupiter.api.Test; -import seedu.address.logic.commands.FindTaskCommand; +import seedu.address.logic.commands.task.FindTaskCommand; import seedu.address.model.name.TaskNameContainsKeywordsPredicate; import seedu.address.model.tag.TaskTagContainsKeywordsPredicate; diff --git a/src/test/java/seedu/address/logic/parser/GetPersonCommandParserTest.java b/src/test/java/seedu/address/logic/parser/task/GetPersonCommandParserTest.java similarity index 92% rename from src/test/java/seedu/address/logic/parser/GetPersonCommandParserTest.java rename to src/test/java/seedu/address/logic/parser/task/GetPersonCommandParserTest.java index b4294973c65..d73a7342a08 100644 --- a/src/test/java/seedu/address/logic/parser/GetPersonCommandParserTest.java +++ b/src/test/java/seedu/address/logic/parser/task/GetPersonCommandParserTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package seedu.address.logic.parser.task; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; @@ -7,7 +7,7 @@ import org.junit.jupiter.api.Test; -import seedu.address.logic.commands.GetPersonCommand; +import seedu.address.logic.commands.task.GetPersonCommand; /** * As we are only doing white-box testing, our test cases do not cover path variations diff --git a/src/test/java/seedu/address/testutil/PersonUtil.java b/src/test/java/seedu/address/testutil/PersonUtil.java index 717d070650f..d3635bf6648 100644 --- a/src/test/java/seedu/address/testutil/PersonUtil.java +++ b/src/test/java/seedu/address/testutil/PersonUtil.java @@ -9,7 +9,7 @@ import java.util.Set; import seedu.address.logic.EditPersonDescriptor; -import seedu.address.logic.commands.AddCommand; +import seedu.address.logic.commands.person.AddPersonCommand; import seedu.address.model.person.Person; import seedu.address.model.tag.Tag; @@ -22,7 +22,7 @@ public class PersonUtil { * Returns an add command string for adding the {@code person}. */ public static String getAddCommand(Person person) { - return AddCommand.COMMAND_WORD + " " + getPersonDetails(person); + return AddPersonCommand.COMMAND_WORD + " " + getPersonDetails(person); } /** From 9f8da925df09027df3717c7af677e44a8451a784 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Fri, 8 Apr 2022 18:26:54 +0800 Subject: [PATCH 351/455] Edit build.gradle to ensure that jar file is Coach2K22 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 913b04dd4b6..49f94144748 100644 --- a/build.gradle +++ b/build.gradle @@ -69,7 +69,7 @@ dependencies { } shadowJar { - archiveName = 'addressbook.jar' + archiveName = 'Coach2K22.jar' } run { From c85308740ec1ed905899e5931c1a65a223a8ba46 Mon Sep 17 00:00:00 2001 From: juayhee Date: Fri, 8 Apr 2022 23:13:17 +0800 Subject: [PATCH 352/455] Add use case extension --- docs/DeveloperGuide.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 7bffb877d58..8ab18e71b20 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -966,6 +966,14 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli 1. User requests to sort the task list by date. 2. Coach2k22 shows the updated task list, sorted with the tasks with the earliest deadline at the top. + Use case ends. + +**Extensions** + +* 1a. The task list is empty. + + Use case ends. + ### 6.4 Non-Functional Requirements 1. Should work on any _mainstream OS_ as long as it has Java `11` or above installed. From c6e53d9325eb4e3eec0fc85353d5f152aecdf142 Mon Sep 17 00:00:00 2001 From: juayhee Date: Sun, 10 Apr 2022 13:10:11 +0800 Subject: [PATCH 353/455] All tagging commands now show an error when the second parameter is not an integer index --- .../seedu/address/logic/parser/AddTagCommandParser.java | 9 ++++++++- .../address/logic/parser/AddTagToTaskCommandParser.java | 8 +++++++- .../address/logic/parser/DeleteTagCommandParser.java | 9 ++++++++- .../logic/parser/DeleteTagFromTaskCommandParser.java | 9 ++++++++- 4 files changed, 31 insertions(+), 4 deletions(-) diff --git a/src/main/java/seedu/address/logic/parser/AddTagCommandParser.java b/src/main/java/seedu/address/logic/parser/AddTagCommandParser.java index cbe2fe53538..db25b98fc7c 100644 --- a/src/main/java/seedu/address/logic/parser/AddTagCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/AddTagCommandParser.java @@ -7,6 +7,7 @@ import seedu.address.commons.core.index.Index; import seedu.address.logic.commands.AddTagCommand; +import seedu.address.logic.commands.AddTagToTaskCommand; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.tag.Tag; @@ -33,7 +34,13 @@ public AddTagCommand parse(String args) throws ParseException { ArrayList values = new ArrayList<>(argMultimap.getAllValues(new Prefix(""))); // Get the index element in the ArrayList - int indexInt = Integer.parseInt(values.get(1)); + int indexInt; + try { + indexInt = Integer.parseInt(values.get(1)); + } catch (Exception e) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddTagCommand.MESSAGE_USAGE)); + + } Index index = Index.fromOneBased(indexInt); // Convert to fromOneBased index since contact list starts from 1 // Get the tagName element in the ArrayList diff --git a/src/main/java/seedu/address/logic/parser/AddTagToTaskCommandParser.java b/src/main/java/seedu/address/logic/parser/AddTagToTaskCommandParser.java index 5ff4b8f8c77..d35a92d8783 100644 --- a/src/main/java/seedu/address/logic/parser/AddTagToTaskCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/AddTagToTaskCommandParser.java @@ -37,7 +37,13 @@ public AddTagToTaskCommand parse(String args) throws ParseException { ArrayList values = new ArrayList<>(argMultimap.getAllValues(new Prefix(""))); // Get the index element in the ArrayList - int indexInt = Integer.parseInt(values.get(1)); + int indexInt; + try { + indexInt = Integer.parseInt(values.get(1)); + } catch (Exception e) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddTagToTaskCommand.MESSAGE_USAGE)); + + } Index index = Index.fromOneBased(indexInt); // Convert to fromOneBased index since contact list starts from 1 // Get the tagName element in the ArrayList diff --git a/src/main/java/seedu/address/logic/parser/DeleteTagCommandParser.java b/src/main/java/seedu/address/logic/parser/DeleteTagCommandParser.java index d5fc742b8fd..cabd53cd341 100644 --- a/src/main/java/seedu/address/logic/parser/DeleteTagCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/DeleteTagCommandParser.java @@ -6,6 +6,7 @@ import java.util.ArrayList; import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.AddTagToTaskCommand; import seedu.address.logic.commands.DeleteTagCommand; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.tag.Tag; @@ -33,7 +34,13 @@ public DeleteTagCommand parse(String args) throws ParseException { ArrayList values = new ArrayList<>(argMultimap.getAllValues(new Prefix(""))); // Get the index element in the ArrayList - int indexInt = Integer.parseInt(values.get(1)); + int indexInt; + try { + indexInt = Integer.parseInt(values.get(1)); + } catch (Exception e) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteTagCommand.MESSAGE_USAGE)); + + } Index index = Index.fromOneBased(indexInt); // Convert to fromOneBased index since contact list starts from 1 // Get the tagName element in the ArrayList diff --git a/src/main/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParser.java b/src/main/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParser.java index 4987adf9353..00d1ef5d807 100644 --- a/src/main/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/DeleteTagFromTaskCommandParser.java @@ -7,6 +7,7 @@ import java.util.ArrayList; import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.AddTagToTaskCommand; import seedu.address.logic.commands.DeleteTagFromTaskCommand; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.tag.Tag; @@ -38,7 +39,13 @@ public DeleteTagFromTaskCommand parse(String args) throws ParseException { ArrayList values = new ArrayList<>(argMultimap.getAllValues(new Prefix(""))); // Get the index element in the ArrayList - int indexInt = Integer.parseInt(values.get(1)); + int indexInt; + try { + indexInt = Integer.parseInt(values.get(1)); + } catch (Exception e) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteTagFromTaskCommand.MESSAGE_USAGE)); + + } Index index = Index.fromOneBased(indexInt); // Convert to fromOneBased index since contact list starts from 1 // Get the tagName element in the ArrayList From 606a6493d030a9c35d4c347377a76778c890d35f Mon Sep 17 00:00:00 2001 From: juayhee Date: Sun, 10 Apr 2022 14:06:07 +0800 Subject: [PATCH 354/455] Fix accidental checkstyle change --- src/test/java/seedu/address/testutil/TestImageCreator.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/seedu/address/testutil/TestImageCreator.java b/src/test/java/seedu/address/testutil/TestImageCreator.java index 473cf782ecb..e5a6af18f2c 100644 --- a/src/test/java/seedu/address/testutil/TestImageCreator.java +++ b/src/test/java/seedu/address/testutil/TestImageCreator.java @@ -19,7 +19,7 @@ public class TestImageCreator { */ public static void createTestImage() { File testFile = testImage.getImagePath(); - File testDirectory = new File( Image.FILE_PATH); + File testDirectory = new File(Image.FILE_PATH); try { if (!testDirectory.exists()) { testDirectory.mkdir(); //in case "courts" directory has not been created From 7854b31c8c415abf0e7d0a84ec71cb805519abdc Mon Sep 17 00:00:00 2001 From: Pragya Date: Sun, 10 Apr 2022 15:46:33 +0800 Subject: [PATCH 355/455] add-task bug fix --- .../seedu/address/logic/commands/task/AddTaskCommand.java | 6 ++++++ src/main/java/seedu/address/model/task/Task.java | 8 ++++++++ 2 files changed, 14 insertions(+) diff --git a/src/main/java/seedu/address/logic/commands/task/AddTaskCommand.java b/src/main/java/seedu/address/logic/commands/task/AddTaskCommand.java index a60dc0092ba..66d1f7b6d72 100644 --- a/src/main/java/seedu/address/logic/commands/task/AddTaskCommand.java +++ b/src/main/java/seedu/address/logic/commands/task/AddTaskCommand.java @@ -50,6 +50,8 @@ public class AddTaskCommand extends Command { "The person %1$s cannot be found in the current address book"; public static final String MESSAGE_SCHEDULE_CONFLICT = "The person %1$s is already involved in a task at this date and time"; + public static final String MESSAGE_SCHEDULE_CONFLICT_START_END_TIME = + "This task ends before or at its specified start time!"; private final Task toAdd; /** @@ -67,6 +69,10 @@ public CommandResult execute(Model model) throws CommandException { List unfilteredTaskList = model.getUnfilteredTaskList(); Set persons = toAdd.getPersons(); + if (toAdd.hasStartEndTimeConflict()) { + throw new CommandException(String.format(MESSAGE_SCHEDULE_CONFLICT_START_END_TIME)); + } + //checks if persons exist in the current list for (Name name: persons) { boolean notFound = true; diff --git a/src/main/java/seedu/address/model/task/Task.java b/src/main/java/seedu/address/model/task/Task.java index 053a494599a..aa1a4e7508a 100644 --- a/src/main/java/seedu/address/model/task/Task.java +++ b/src/main/java/seedu/address/model/task/Task.java @@ -100,6 +100,14 @@ public boolean isSameTask(Task otherTask) { && otherTask.getName().equals(getName()); } + /** + * Returns true if task has an end time equal to or before its start time. + */ + public boolean hasStartEndTimeConflict() { + LocalTime thisTaskStart = LocalTime.parse(startTime.value); + LocalTime thisTaskEnd = LocalTime.parse(endTime.value); + return thisTaskEnd.compareTo(thisTaskStart) <= 0; + } /** * Returns true if both tasks have the same date and conflicting time ranges. */ From d58938d0a245f0cf9c38c1cb7da413e99ab80b0f Mon Sep 17 00:00:00 2001 From: Pragya Date: Sun, 10 Apr 2022 16:14:54 +0800 Subject: [PATCH 356/455] export-command testcase --- .../commands/strategy/ExportCommandTest.java | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/test/java/seedu/address/logic/commands/strategy/ExportCommandTest.java diff --git a/src/test/java/seedu/address/logic/commands/strategy/ExportCommandTest.java b/src/test/java/seedu/address/logic/commands/strategy/ExportCommandTest.java new file mode 100644 index 00000000000..2a9e4fc87f2 --- /dev/null +++ b/src/test/java/seedu/address/logic/commands/strategy/ExportCommandTest.java @@ -0,0 +1,24 @@ +package seedu.address.logic.commands.strategy; + +import static seedu.address.commons.core.Tabs.DEFAULT; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; +import static seedu.address.logic.commands.strategy.ExportCommand.MESSAGE_EXPORT_ACKNOWLEDGEMENT; + +import org.junit.jupiter.api.Test; + +import seedu.address.logic.commands.CommandResult; +import seedu.address.model.Model; +import seedu.address.model.ModelManager; + +public class ExportCommandTest { + private Model model = new ModelManager(); + private Model expectedModel = new ModelManager(); + + @Test + public void execute_exit_success() { + CommandResult expectedCommandResult = new CommandResult(MESSAGE_EXPORT_ACKNOWLEDGEMENT, false, false, + DEFAULT, false, null, true); + assertCommandSuccess(new ExportCommand(), model, expectedCommandResult, expectedModel); + } +} + From f35c23ba5dcdf776b5242e19d197784732f90fec Mon Sep 17 00:00:00 2001 From: juayhee Date: Sun, 10 Apr 2022 18:31:59 +0800 Subject: [PATCH 357/455] Update imports and class names --- .../logic/parser/person/AddPersonTagCommandParser.java | 4 +--- .../logic/parser/person/DeletePersonTagCommandParser.java | 4 +--- .../address/logic/parser/task/AddTaskTagCommandParser.java | 2 +- .../logic/parser/task/DeleteTaskTagCommandParser.java | 6 ++---- 4 files changed, 5 insertions(+), 11 deletions(-) diff --git a/src/main/java/seedu/address/logic/parser/person/AddPersonTagCommandParser.java b/src/main/java/seedu/address/logic/parser/person/AddPersonTagCommandParser.java index 10da68a513d..934624f3aa9 100644 --- a/src/main/java/seedu/address/logic/parser/person/AddPersonTagCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/person/AddPersonTagCommandParser.java @@ -11,8 +11,6 @@ import seedu.address.logic.parser.ArgumentTokenizer; import seedu.address.logic.parser.Parser; import seedu.address.logic.parser.Prefix; -import seedu.address.logic.commands.AddTagCommand; -import seedu.address.logic.commands.AddTagToTaskCommand; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.tag.Tag; @@ -45,7 +43,7 @@ public AddPersonTagCommand parse(String args) throws ParseException { try { indexInt = Integer.parseInt(values.get(1)); } catch (Exception e) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddTagCommand.MESSAGE_USAGE)); + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddPersonTagCommand.MESSAGE_USAGE)); } Index index = Index.fromOneBased(indexInt); // Convert to fromOneBased index since contact list starts from 1 diff --git a/src/main/java/seedu/address/logic/parser/person/DeletePersonTagCommandParser.java b/src/main/java/seedu/address/logic/parser/person/DeletePersonTagCommandParser.java index e94a8ed3b27..2b9a2a21902 100644 --- a/src/main/java/seedu/address/logic/parser/person/DeletePersonTagCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/person/DeletePersonTagCommandParser.java @@ -11,8 +11,6 @@ import seedu.address.logic.parser.ArgumentTokenizer; import seedu.address.logic.parser.Parser; import seedu.address.logic.parser.Prefix; -import seedu.address.logic.commands.AddTagToTaskCommand; -import seedu.address.logic.commands.DeleteTagCommand; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.tag.Tag; @@ -45,7 +43,7 @@ public DeletePersonTagCommand parse(String args) throws ParseException { try { indexInt = Integer.parseInt(values.get(1)); } catch (Exception e) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteTagCommand.MESSAGE_USAGE)); + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeletePersonTagCommand.MESSAGE_USAGE)); } Index index = Index.fromOneBased(indexInt); // Convert to fromOneBased index since contact list starts from 1 diff --git a/src/main/java/seedu/address/logic/parser/task/AddTaskTagCommandParser.java b/src/main/java/seedu/address/logic/parser/task/AddTaskTagCommandParser.java index 614d76e8e5f..53007f2107c 100644 --- a/src/main/java/seedu/address/logic/parser/task/AddTaskTagCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/task/AddTaskTagCommandParser.java @@ -45,7 +45,7 @@ public AddTaskTagCommand parse(String args) throws ParseException { try { indexInt = Integer.parseInt(values.get(1)); } catch (Exception e) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddTagToTaskCommand.MESSAGE_USAGE)); + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddTaskTagCommand.MESSAGE_USAGE)); } Index index = Index.fromOneBased(indexInt); // Convert to fromOneBased index since contact list starts from 1 diff --git a/src/main/java/seedu/address/logic/parser/task/DeleteTaskTagCommandParser.java b/src/main/java/seedu/address/logic/parser/task/DeleteTaskTagCommandParser.java index f7e5c8ea2b1..29a55b7be29 100644 --- a/src/main/java/seedu/address/logic/parser/task/DeleteTaskTagCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/task/DeleteTaskTagCommandParser.java @@ -12,15 +12,13 @@ import seedu.address.logic.parser.ArgumentTokenizer; import seedu.address.logic.parser.Parser; import seedu.address.logic.parser.Prefix; -import seedu.address.logic.commands.AddTagToTaskCommand; -import seedu.address.logic.commands.DeleteTagFromTaskCommand; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.tag.Tag; /** * Parses input arguments and creates a new AddTaskCommand object */ -public class DeleteTaskTagCommandParser implements Parser { +public class DeleteTaskTagCommandParser implements Parser { /** * Parses the given {@code String} of arguments in the context of the * {@code DeleteTagFromTaskCommandParser} @@ -51,7 +49,7 @@ public DeleteTaskTagCommand parse(String args) throws ParseException { indexInt = Integer.parseInt(values.get(1)); } catch (Exception e) { throw new ParseException( - String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteTagFromTaskCommand.MESSAGE_USAGE)); + String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteTaskTagCommand.MESSAGE_USAGE)); } Index index = Index.fromOneBased(indexInt); // Convert to fromOneBased index since contact list starts from 1 From fe4329acd6f1ea0ba273730abecbe093696fccc2 Mon Sep 17 00:00:00 2001 From: juayhee Date: Sun, 10 Apr 2022 18:45:07 +0800 Subject: [PATCH 358/455] Fix checkstyle --- .../logic/parser/person/DeletePersonTagCommandParser.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/address/logic/parser/person/DeletePersonTagCommandParser.java b/src/main/java/seedu/address/logic/parser/person/DeletePersonTagCommandParser.java index 2b9a2a21902..7a8d79782e3 100644 --- a/src/main/java/seedu/address/logic/parser/person/DeletePersonTagCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/person/DeletePersonTagCommandParser.java @@ -43,8 +43,8 @@ public DeletePersonTagCommand parse(String args) throws ParseException { try { indexInt = Integer.parseInt(values.get(1)); } catch (Exception e) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeletePersonTagCommand.MESSAGE_USAGE)); - + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + DeletePersonTagCommand.MESSAGE_USAGE)); } Index index = Index.fromOneBased(indexInt); // Convert to fromOneBased index since contact list starts from 1 From e9c5620ef6bed6b0694750d9a45b6515abc42779 Mon Sep 17 00:00:00 2001 From: juayhee Date: Sun, 10 Apr 2022 20:23:40 +0800 Subject: [PATCH 359/455] Add exception handling for when the index provided is not a positive integer --- .../logic/parser/person/AddPersonTagCommandParser.java | 5 +++++ .../logic/parser/person/DeletePersonTagCommandParser.java | 6 ++++++ .../address/logic/parser/task/AddTaskTagCommandParser.java | 7 ++++++- .../logic/parser/task/DeleteTaskTagCommandParser.java | 6 ++++++ 4 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/logic/parser/person/AddPersonTagCommandParser.java b/src/main/java/seedu/address/logic/parser/person/AddPersonTagCommandParser.java index 934624f3aa9..d1880a53aa6 100644 --- a/src/main/java/seedu/address/logic/parser/person/AddPersonTagCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/person/AddPersonTagCommandParser.java @@ -46,6 +46,11 @@ public AddPersonTagCommand parse(String args) throws ParseException { throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddPersonTagCommand.MESSAGE_USAGE)); } + + // Checking if index is a positive integer + if (!(indexInt >= 1)) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddPersonTagCommand.MESSAGE_USAGE)); + } Index index = Index.fromOneBased(indexInt); // Convert to fromOneBased index since contact list starts from 1 // Get the tagName element in the ArrayList diff --git a/src/main/java/seedu/address/logic/parser/person/DeletePersonTagCommandParser.java b/src/main/java/seedu/address/logic/parser/person/DeletePersonTagCommandParser.java index 7a8d79782e3..3c1ca3298ab 100644 --- a/src/main/java/seedu/address/logic/parser/person/DeletePersonTagCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/person/DeletePersonTagCommandParser.java @@ -6,6 +6,7 @@ import java.util.ArrayList; import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.person.AddPersonTagCommand; import seedu.address.logic.commands.person.DeletePersonTagCommand; import seedu.address.logic.parser.ArgumentMultimap; import seedu.address.logic.parser.ArgumentTokenizer; @@ -46,6 +47,11 @@ public DeletePersonTagCommand parse(String args) throws ParseException { throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeletePersonTagCommand.MESSAGE_USAGE)); } + // Checking if index is a positive integer + if (!(indexInt >= 1)) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddPersonTagCommand.MESSAGE_USAGE)); + } + Index index = Index.fromOneBased(indexInt); // Convert to fromOneBased index since contact list starts from 1 // Get the tagName element in the ArrayList diff --git a/src/main/java/seedu/address/logic/parser/task/AddTaskTagCommandParser.java b/src/main/java/seedu/address/logic/parser/task/AddTaskTagCommandParser.java index 53007f2107c..2cb12583038 100644 --- a/src/main/java/seedu/address/logic/parser/task/AddTaskTagCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/task/AddTaskTagCommandParser.java @@ -6,6 +6,7 @@ import java.util.ArrayList; import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.person.AddPersonTagCommand; import seedu.address.logic.commands.task.AddTaskTagCommand; import seedu.address.logic.parser.ArgumentMultimap; import seedu.address.logic.parser.ArgumentTokenizer; @@ -46,8 +47,12 @@ public AddTaskTagCommand parse(String args) throws ParseException { indexInt = Integer.parseInt(values.get(1)); } catch (Exception e) { throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddTaskTagCommand.MESSAGE_USAGE)); - } + // Checking if index is a positive integer + if (!(indexInt >= 1)) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddPersonTagCommand.MESSAGE_USAGE)); + } + Index index = Index.fromOneBased(indexInt); // Convert to fromOneBased index since contact list starts from 1 // Get the tagName element in the ArrayList diff --git a/src/main/java/seedu/address/logic/parser/task/DeleteTaskTagCommandParser.java b/src/main/java/seedu/address/logic/parser/task/DeleteTaskTagCommandParser.java index 29a55b7be29..c1dff3663f6 100644 --- a/src/main/java/seedu/address/logic/parser/task/DeleteTaskTagCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/task/DeleteTaskTagCommandParser.java @@ -7,6 +7,7 @@ import java.util.ArrayList; import seedu.address.commons.core.index.Index; +import seedu.address.logic.commands.person.AddPersonTagCommand; import seedu.address.logic.commands.task.DeleteTaskTagCommand; import seedu.address.logic.parser.ArgumentMultimap; import seedu.address.logic.parser.ArgumentTokenizer; @@ -52,6 +53,11 @@ public DeleteTaskTagCommand parse(String args) throws ParseException { String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteTaskTagCommand.MESSAGE_USAGE)); } + // Checking if index is a positive integer + if (!(indexInt >= 1)) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddPersonTagCommand.MESSAGE_USAGE)); + } + Index index = Index.fromOneBased(indexInt); // Convert to fromOneBased index since contact list starts from 1 // Get the tagName element in the ArrayList From bb46050ee077edaf1434970b85390e47ca67487c Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Mon, 11 Apr 2022 08:42:47 +0800 Subject: [PATCH 360/455] Add Additional Instructions to UG --- docs/UserGuide.md | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 22c8e698901..e0e5a8bc08b 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -12,29 +12,24 @@ title: User Guide ## **1. Introduction** Coach2K22 is a desktop app that helps busy sports coaches **organise their overwhelming lists of contacts and messy weekly schedules.** It also provides them with a **platform to visualise defensive and offensive plays** as the game unfolds -### 1.1 Quick Start +### 1.1 Installation Instructions 1. Ensure you have Java `11` or above installed in your Computer. -1. Download the latest '.jar' file from [here](https://github.com/AY2122S2-CS2103T-W14-2/tp/releases). +2. Download the latest '.jar' file from [here](https://github.com/AY2122S2-CS2103T-W14-2/tp/releases). -1. Copy the file to the folder you want to use as the _home folder_ for your copy of Coach2k22. +3. Copy the file to the folder you want to use as the _home folder_ for your copy of Coach2k22. -1. Double-click the file to start the app. The GUI similar to the below should appear in a few seconds. Note how the app contains some sample data.
      +4. Double-click the file to start the app. The GUI similar to the below should appear in a few seconds. Note how the app contains some sample data.
      ![Ui](images/Ui.png) -1. Type the command in the command box and press Enter to execute it. e.g. typing **`help`** and pressing Enter will list all the possible commands.
      - Some example commands you can try: +5. Type the command in the command box and press Enter to execute it. - * **`list-p`** : Lists all contacts. +6. Refer to the [Features](#2-features) below for details of each command. - * **`add-p`**`n/Johnson p/83918273 a/Woodlands Avenue 4 e/johnson@gmail.com t/Hustlers` : Adds a contact named `Johnson`. - - * **`del-p`**`3` : Deletes the 3rd contact shown in the current list. - - * **`exit`** : Exits the app. - -1. Refer to the [Features](#2-features) below for details of each command. +

      ### 1.2 User Guide Icons From da08927bf0bef776bac197abedb53c97314d0628 Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Mon, 11 Apr 2022 08:56:29 +0800 Subject: [PATCH 361/455] Add photo of labeled GUI --- docs/UserGuide.md | 7 +++++-- docs/images/Ui-Labeled.png | Bin 0 -> 106523 bytes 2 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 docs/images/Ui-Labeled.png diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 03262e2951e..af081ca5626 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -25,9 +25,12 @@ This application is **optimized for use via a Command Line Interface** (CLI) whi 3. Double-click the file to start the app. The GUI similar to the below should appear in a few seconds. Note how the app contains some sample data.
      ![Ui](images/Ui.png) -4. Type the command in the command box and press Enter to execute it. +4. Type your commands in the Command Line Interface box (CLI) labeled below. You can switch between the three tabs (Contact, Schedule, Strategy tabs).
      + ![Ui-labeled](images/Ui-Labeled.png) -5. Refer to the [Features](#2-features) below for details of each command. +5. Refer to the [Features](#2-features) below for details of each command, as well as their formats. + +6. Contacts and Schedule related tabs will be saved automatically (Strategy needs to be explicitly saved).
      :bulb: **Note:** Coach2K22 can run on computers with Windows and MacOS (_Requires at least 1GB RAM and 500 MB of storage_). diff --git a/docs/images/Ui-Labeled.png b/docs/images/Ui-Labeled.png new file mode 100644 index 0000000000000000000000000000000000000000..589cda85566f443474bf1393d25de8e786407855 GIT binary patch literal 106523 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 z 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 Date: Mon, 11 Apr 2022 08:57:42 +0800 Subject: [PATCH 362/455] Delete leftover template PPP (johndoe.md) --- docs/team/johndoe.md | 46 -------------------------------------------- 1 file changed, 46 deletions(-) delete mode 100644 docs/team/johndoe.md diff --git a/docs/team/johndoe.md b/docs/team/johndoe.md deleted file mode 100644 index 773a07794e2..00000000000 --- a/docs/team/johndoe.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -layout: page -title: John Doe's Project Portfolio Page ---- - -### Project: AddressBook Level 3 - -AddressBook - Level 3 is a desktop address book application used for teaching Software Engineering principles. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC. - -Given below are my contributions to the project. - -* **New Feature**: Added the ability to undo/redo previous commands. - * What it does: allows the user to undo all previous commands one at a time. Preceding undo commands can be reversed by using the redo command. - * Justification: This feature improves the product significantly because a user can make mistakes in commands and the app should provide a convenient way to rectify them. - * Highlights: This enhancement affects existing commands and commands to be added in future. It required an in-depth analysis of design alternatives. The implementation too was challenging as it required changes to existing commands. - * Credits: *{mention here if you reused any code/ideas from elsewhere or if a third-party library is heavily used in the feature so that a reader can make a more accurate judgement of how much effort went into the feature}* - -* **New Feature**: Added a history command that allows the user to navigate to previous commands using up/down keys. - -* **Code contributed**: [RepoSense link]() - -* **Project management**: - * Managed releases `v1.3` - `v1.5rc` (3 releases) on GitHub - -* **Enhancements to existing features**: - * Updated the GUI color scheme (Pull requests [\#33](), [\#34]()) - * Wrote additional tests for existing features to increase coverage from 88% to 92% (Pull requests [\#36](), [\#38]()) - -* **Documentation**: - * User Guide: - * Added documentation for the features `delete` and `find` [\#72]() - * Did cosmetic tweaks to existing documentation of features `clear`, `exit`: [\#74]() - * Developer Guide: - * Added implementation details of the `delete` feature. - -* **Community**: - * PRs reviewed (with non-trivial review comments): [\#12](), [\#32](), [\#19](), [\#42]() - * Contributed to forum discussions (examples: [1](), [2](), [3](), [4]()) - * Reported bugs and suggestions for other teams in the class (examples: [1](), [2](), [3]()) - * Some parts of the history feature I added was adopted by several other class mates ([1](), [2]()) - -* **Tools**: - * Integrated a third party library (Natty) to the project ([\#42]()) - * Integrated a new Github plugin (CircleCI) to the team repo - -* _{you can add/remove categories in the list above}_ From ca95f963fb713dad2fcb8d4d3f07a2e119163ba6 Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Mon, 11 Apr 2022 09:02:39 +0800 Subject: [PATCH 363/455] Modify personal PPP --- docs/team/aalghrairy.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/team/aalghrairy.md b/docs/team/aalghrairy.md index 61489c1380e..54b932bc892 100644 --- a/docs/team/aalghrairy.md +++ b/docs/team/aalghrairy.md @@ -25,6 +25,7 @@ https://nus-cs2103-ay2122s2.github.io/tp-dashboard/?search=aalghrairy&breakdown= * **Contributions to the DG:** * Added the Product Scope and Glossary sections * Implemented the Model Component + * Implemented implementations of `clear-t`, `load-court`, as well as adding note ,deleting note, and sorting contacts by note related functions. * Added some user stories: * `As an organised coach I can view players by their strengths and weaknesses so that I can make informed decisions on choosing the best person for a specific objective` * `As an organized and data-driven coach I can sort my players by certain data so I can get better understanding of how players compare` @@ -45,7 +46,8 @@ https://nus-cs2103-ay2122s2.github.io/tp-dashboard/?search=aalghrairy&breakdown= * Maintained some issues to be implemented by all team members * Maintained issue tracking for some individual tasks of respective team members * Including ensuring milestones, assignees, and labels were properly selected - * Modifyed the Index.md file + * Modified the Index.md file + * Add detailed installation instructions to User Guide (including labelled GUI) * **Review/mentoring contributions**: * [#20](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/20) * [#21](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/21) @@ -65,9 +67,10 @@ https://nus-cs2103-ay2122s2.github.io/tp-dashboard/?search=aalghrairy&breakdown= * [#142](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/142) * [#143](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/143) * [#212](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/212) + * [#218](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/218) * **Contributions beyond the project team:** * Evidence of helping others: * [#197](https://github.com/nus-cs2103-AY2122S2/forum/issues/197) * [#222](https://github.com/nus-cs2103-AY2122S2/forum/issues/222) * Evidence of technical leadership - * _to be added soon_ + * _n/a_ From de58f3117860f50296ccba8ac3cb78b0b6955d64 Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Mon, 11 Apr 2022 09:50:58 +0800 Subject: [PATCH 364/455] Add implementation of Add Note functions, including sequence diagram --- docs/DeveloperGuide.md | 30 ++++++++++ docs/diagrams/AddNoteSequenceDiagram.puml | 67 ++++++++++++++++++++++ docs/images/AddNoteSequenceDiagram.png | Bin 0 -> 32475 bytes 3 files changed, 97 insertions(+) create mode 100644 docs/diagrams/AddNoteSequenceDiagram.puml create mode 100644 docs/images/AddNoteSequenceDiagram.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 2e2e39fb28a..fe80620f242 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -353,6 +353,36 @@ The steps above are summarised using a sequence diagram as shown below. * Pros: Easier and more intuitive for the user to understand. * Cons: Hard to implement. +#### 4.1.1 Add Strength/Weakness/Misc Features + +##### Implementation + +These features allow the user to add a strength, weakness, or miscellaneous note to a person in the person list . It is facilitated by `ModelManager` which +makes use of the method `#setPerson()` to replace the particular person with the new person with modified note list (depending on the given command). + +Given below is an example usage scenario of how the add note mechanism behaves at each step._Note that three commands have similar implementations, so only strength will be provided here._ + +Step 1: The user inputs `strength-add 1 great endurance` to add the strength `great endurance` to the person in index `1` of the person list. + +Step 2: This argument is passed into `LogicManager` which calls on `Coach2K22Parser#parseCommand()` to find a suitable parser class to process the user inputs. This initialises the `AddStrengthCommandParser` where its method `#parse()` is called to process the user inputs. + +Step 3: It then returns a newly initialised `AddStrengthCommand` back to the `LogicManager` for command execution. + +Step 4: During the command execution, `ModelManager#setPerson()` method is called to update the specified person in the person list with the new strength list. + +The steps above are summarised using a sequence diagram as shown below. Note that all occurrences of `Strength` will be generalized to `Note` to represent the implementation of the Add Strength, Weakness, and Misc features. +![AddNoteSequenceDiagram](images/AddNoteSequenceDiagram.png) + +##### Design Consideration + +**Aspect: Should there be different note lists for each person:** + +* **Alternative 1 (current choice):** Separate `note-add` command into three different commands. + * Pros: Easier to use and more intuitive. + * Cons: Difficult to extend and modify. +* **Alternative 2:** Single `note-add` command for adding to each list with provided prefixes. + * Pros: Easier to extend and modify. + * Cons: Not intuitive for the user and more prone to feature flaws ### 4.2 Task Management #### 4.2.1 Add Feature diff --git a/docs/diagrams/AddNoteSequenceDiagram.puml b/docs/diagrams/AddNoteSequenceDiagram.puml new file mode 100644 index 00000000000..7997f3ffa90 --- /dev/null +++ b/docs/diagrams/AddNoteSequenceDiagram.puml @@ -0,0 +1,67 @@ +@startuml +!include style.puml + +box Logic LOGIC_COLOR_T1 +participant ":LogicManager" as LogicManager LOGIC_COLOR +participant ":Coach2K22Parser" as Coach2K22Parser LOGIC_COLOR +participant ":AddNoteCommandParser" as AddNoteCommandParser LOGIC_COLOR +participant "p:AddNoteCommand" as AddNoteCommand LOGIC_COLOR +participant ":CommandResult" as CommandResult LOGIC_COLOR +end box + +box Model MODEL_COLOR_T1 +participant ":Model" as Model MODEL_COLOR +end box + +[-> LogicManager : execute("note-add 1 has...") +activate LogicManager + +LogicManager -> Coach2K22Parser : parseCommand("note-add 1 has...") +activate Coach2K22Parser + +create AddNoteCommandParser +Coach2K22Parser -> AddNoteCommandParser +activate AddNoteCommandParser + +AddNoteCommandParser --> Coach2K22Parser +deactivate AddNoteCommandParser + +Coach2K22Parser -> AddNoteCommandParser : parse("note-add 1 has...") +activate AddNoteCommandParser + +create AddNoteCommand +AddNoteCommandParser -> AddNoteCommand +activate AddNoteCommand + +AddNoteCommand --> AddNoteCommandParser : p +deactivate AddNoteCommand +AddNoteCommandParser --> Coach2K22Parser : p + +AddNoteCommandParser -[hidden]-> Coach2K22Parser +destroy AddNoteCommandParser + +Coach2K22Parser --> LogicManager : p +deactivate Coach2K22Parser + +LogicManager -> AddNoteCommand : execute() +activate AddNoteCommand + +AddNoteCommand -> Model : setPerson(originalPerson, editedPerson) +activate Model + +Model --> AddNoteCommand +deactivate Model + +create CommandResult +AddNoteCommand -> CommandResult +activate CommandResult + +CommandResult --> AddNoteCommand +deactivate CommandResult + +AddNoteCommand --> LogicManager : result +deactivate AddNoteCommand + +[<--LogicManager +deactivate LogicManager +@enduml diff --git a/docs/images/AddNoteSequenceDiagram.png b/docs/images/AddNoteSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..88a7dcd1c146fe4e47c55620ed3bd6a8e05d349c GIT binary patch literal 32475 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 Date: Mon, 11 Apr 2022 09:56:19 +0800 Subject: [PATCH 365/455] Add implementation of Delete Note functions, including sequence diagram --- docs/DeveloperGuide.md | 36 +++++++++- docs/diagrams/DeleteNoteSequenceDiagram.puml | 67 +++++++++++++++++++ docs/images/DeleteNoteSequenceDiagram.png | Bin 0 -> 31941 bytes 3 files changed, 101 insertions(+), 2 deletions(-) create mode 100644 docs/diagrams/DeleteNoteSequenceDiagram.puml create mode 100644 docs/images/DeleteNoteSequenceDiagram.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index fe80620f242..5d830863f2d 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -353,14 +353,14 @@ The steps above are summarised using a sequence diagram as shown below. * Pros: Easier and more intuitive for the user to understand. * Cons: Hard to implement. -#### 4.1.1 Add Strength/Weakness/Misc Features +#### 4.1.7 Add Strength/Weakness/Misc Features ##### Implementation These features allow the user to add a strength, weakness, or miscellaneous note to a person in the person list . It is facilitated by `ModelManager` which makes use of the method `#setPerson()` to replace the particular person with the new person with modified note list (depending on the given command). -Given below is an example usage scenario of how the add note mechanism behaves at each step._Note that three commands have similar implementations, so only strength will be provided here._ +Given below is an example usage scenario of how the Add Strength mechanism behaves at each step._Note that three commands have similar implementations, so only the Add Strength feature will be provided here._ Step 1: The user inputs `strength-add 1 great endurance` to add the strength `great endurance` to the person in index `1` of the person list. @@ -383,6 +383,38 @@ The steps above are summarised using a sequence diagram as shown below. Note tha * **Alternative 2:** Single `note-add` command for adding to each list with provided prefixes. * Pros: Easier to extend and modify. * Cons: Not intuitive for the user and more prone to feature flaws + +#### 4.1.7 Delete Strength/Weakness/Misc Features + +##### Implementation + +These features allow the user to delete a strength, weakness, or miscellaneous note from a person in the person list . It is facilitated by `ModelManager` which +makes use of the method `#setPerson()` to replace the particular person with the new person with modified note list (depending on the given command). + +Given below is an example usage scenario of how the Delete Strength mechanism behaves at each step._Note that three commands have similar implementations, so only the Delete Strength feature will be provided here._ + +Step 1: The user inputs `strength-del 1 1` to delete the first strength from the person in index `1` of the person list. + +Step 2: This argument is passed into `LogicManager` which calls on `Coach2K22Parser#parseCommand()` to find a suitable parser class to process the user inputs. This initialises the `DeleteStrengthCommandParser` where its method `#parse()` is called to process the user inputs. + +Step 3: It then returns a newly initialised `DeleteStrengthCommand` back to the `LogicManager` for command execution. + +Step 4: During the command execution, `ModelManager#setPerson()` method is called to update the specified person in the person list with the new strength list. + +The steps above are summarised using a sequence diagram as shown below. Note that all occurrences of `Strength` will be generalized to `Note` to represent the implementation of the Delete Strength, Weakness, and Misc features. +![DeleteNoteSequenceDiagram](images/DeleteNoteSequenceDiagram.png) + +##### Design Consideration + +**Aspect: Should there be different note lists for each person:** + +* **Alternative 1 (current choice):** Separate `note-add` command into three different commands. + * Pros: Easier to use and more intuitive. + * Cons: Difficult to extend and modify. +* **Alternative 2:** Single `note-add` command for adding to each list with provided prefixes. + * Pros: Easier to extend and modify. + * Cons: Not intuitive for the user and more prone to feature flaws + ### 4.2 Task Management #### 4.2.1 Add Feature diff --git a/docs/diagrams/DeleteNoteSequenceDiagram.puml b/docs/diagrams/DeleteNoteSequenceDiagram.puml new file mode 100644 index 00000000000..57f99db8db6 --- /dev/null +++ b/docs/diagrams/DeleteNoteSequenceDiagram.puml @@ -0,0 +1,67 @@ +@startuml +!include style.puml + +box Logic LOGIC_COLOR_T1 +participant ":LogicManager" as LogicManager LOGIC_COLOR +participant ":Coach2K22Parser" as Coach2K22Parser LOGIC_COLOR +participant ":DeleteNoteCommandParser" as DeleteNoteCommandParser LOGIC_COLOR +participant "p:DeleteNoteCommand" as DeleteNoteCommand LOGIC_COLOR +participant ":CommandResult" as CommandResult LOGIC_COLOR +end box + +box Model MODEL_COLOR_T1 +participant ":Model" as Model MODEL_COLOR +end box + +[-> LogicManager : execute("note-del 1 1...") +activate LogicManager + +LogicManager -> Coach2K22Parser : parseCommand("note-del 1 1...") +activate Coach2K22Parser + +create DeleteNoteCommandParser +Coach2K22Parser -> DeleteNoteCommandParser +activate DeleteNoteCommandParser + +DeleteNoteCommandParser --> Coach2K22Parser +deactivate DeleteNoteCommandParser + +Coach2K22Parser -> DeleteNoteCommandParser : parse("note-del 1 1...") +activate DeleteNoteCommandParser + +create DeleteNoteCommand +DeleteNoteCommandParser -> DeleteNoteCommand +activate DeleteNoteCommand + +DeleteNoteCommand --> DeleteNoteCommandParser : p +deactivate DeleteNoteCommand +DeleteNoteCommandParser --> Coach2K22Parser : p + +DeleteNoteCommandParser -[hidden]-> Coach2K22Parser +destroy DeleteNoteCommandParser + +Coach2K22Parser --> LogicManager : p +deactivate Coach2K22Parser + +LogicManager -> DeleteNoteCommand : execute() +activate DeleteNoteCommand + +DeleteNoteCommand -> Model : setPerson(originalPerson, editedPerson) +activate Model + +Model --> DeleteNoteCommand +deactivate Model + +create CommandResult +DeleteNoteCommand -> CommandResult +activate CommandResult + +CommandResult --> DeleteNoteCommand +deactivate CommandResult + +DeleteNoteCommand --> LogicManager : result +deactivate DeleteNoteCommand + +[<--LogicManager +deactivate LogicManager +@enduml diff --git a/docs/images/DeleteNoteSequenceDiagram.png b/docs/images/DeleteNoteSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..1f56d439fd515ee2b3c49b6d31e782affe379e17 GIT binary patch literal 31941 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 Date: Mon, 11 Apr 2022 10:15:19 +0800 Subject: [PATCH 366/455] edit-t functionality --- .../logic/commands/task/EditTaskCommand.java | 24 +++++++++++++++++ .../commands/task/EditTaskCommandTest.java | 27 ++++++++++++++----- 2 files changed, 44 insertions(+), 7 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/task/EditTaskCommand.java b/src/main/java/seedu/address/logic/commands/task/EditTaskCommand.java index 4973e380f68..0cccd452a52 100644 --- a/src/main/java/seedu/address/logic/commands/task/EditTaskCommand.java +++ b/src/main/java/seedu/address/logic/commands/task/EditTaskCommand.java @@ -53,6 +53,10 @@ public class EditTaskCommand extends Command { public static final String MESSAGE_DUPLICATE_TASK = "This task already exists in the address book."; public static final String MESSAGE_CONTACT_NOT_FOUND_IN_LIST = "Unable to edit task as the person %1$s cannot be found in the current address book"; + public static final String MESSAGE_SCHEDULE_CONFLICT = + "The person %1$s is already involved in a task at this date and time"; + public static final String MESSAGE_SCHEDULE_CONFLICT_START_END_TIME = + "This task ends before or at its specified start time!"; private final Index index; private final EditTaskDescriptor editTaskDescriptor; @@ -74,6 +78,7 @@ public CommandResult execute(Model model) throws CommandException { requireNonNull(model); List lastShownList = model.getFilteredTaskList(); List unfilteredPersonList = model.getUnfilteredPersonList(); + List unfilteredTaskList = model.getUnfilteredTaskList(); if (index.getZeroBased() >= lastShownList.size()) { throw new CommandException(Messages.MESSAGE_INVALID_TASK_DISPLAYED_INDEX); @@ -86,6 +91,10 @@ public CommandResult execute(Model model) throws CommandException { throw new CommandException(MESSAGE_DUPLICATE_TASK); } + if (editedTask.hasStartEndTimeConflict()) { + throw new CommandException(String.format(MESSAGE_SCHEDULE_CONFLICT_START_END_TIME)); + } + Set persons = editedTask.getPersons(); for (Name name: persons) { @@ -95,6 +104,21 @@ public CommandResult execute(Model model) throws CommandException { notFound = false; } } + + //checks if persons are already involved in tasks with conflicting time ranges to the edited task + for (Name names: persons) { + for (Task task: unfilteredTaskList) { + Set nameList = task.getPersons(); + if (nameList.contains(names)) { + boolean conflictExist = task.hasDateTimeConflict(editedTask); + if (conflictExist) { + throw new CommandException(String.format(MESSAGE_SCHEDULE_CONFLICT, name)); + } + } + } + } + + if (notFound) { throw new CommandException(String.format(MESSAGE_CONTACT_NOT_FOUND_IN_LIST, name)); } diff --git a/src/test/java/seedu/address/logic/commands/task/EditTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/task/EditTaskCommandTest.java index 23b636964a7..e2d496a74eb 100644 --- a/src/test/java/seedu/address/logic/commands/task/EditTaskCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/task/EditTaskCommandTest.java @@ -12,6 +12,7 @@ import static seedu.address.testutil.Assert.assertThrows; import static seedu.address.testutil.TypicalIndexes.TASK_FIRST_INDEX; import static seedu.address.testutil.TypicalIndexes.TASK_SECOND_INDEX; +import static seedu.address.testutil.TypicalPersons.ALICE; import static seedu.address.testutil.TypicalPersons.CARL; import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; @@ -78,16 +79,28 @@ public void execute_someFieldsSpecifiedUnfilteredList_success() { } @Test - public void execute_noFieldSpecifiedUnfilteredList_success() { - EditTaskCommand editTaskCommand = new EditTaskCommand(TASK_FIRST_INDEX, new EditTaskDescriptor()); - Task editedTask = model.getFilteredTaskList().get(TASK_FIRST_INDEX.getZeroBased()); + public void execute_invalidAdditionOfPersons_failure() { + EditTaskDescriptor invalidTask = new EditTaskDescriptorBuilder().withPersons(ALICE.getName().fullName).build(); + EditTaskCommand editTaskCommand = new EditTaskCommand(TASK_FIRST_INDEX, invalidTask); - String expectedMessage = String.format(EditTaskCommand.MESSAGE_EDIT_TASK_SUCCESS, editedTask); + String expectedMessage = String.format(EditTaskCommand.MESSAGE_SCHEDULE_CONFLICT, ALICE.getName().fullName); + assertThrows(CommandException.class, + expectedMessage, () -> editTaskCommand.execute(model)); - Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), - model.getTaskBook(), new StrategyBoard(), new UserPrefs()); + assertCommandFailure(editTaskCommand, model, expectedMessage); + } - assertCommandSuccess(editTaskCommand, model, expectedMessage, expectedModel); + @Test + public void execute_invalidStartEndTime_failure() { + EditTaskDescriptor invalidTask = new EditTaskDescriptorBuilder().withStartTime("15:00") + .withEndTime("13:00").build(); + EditTaskCommand editTaskCommand = new EditTaskCommand(TASK_FIRST_INDEX, invalidTask); + + String expectedMessage = String.format(EditTaskCommand.MESSAGE_SCHEDULE_CONFLICT_START_END_TIME); + assertThrows(CommandException.class, + expectedMessage, () -> editTaskCommand.execute(model)); + + assertCommandFailure(editTaskCommand, model, expectedMessage); } @Test From 5d761d1ed9baf27b67734f2579d1043997f9a78f Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Mon, 11 Apr 2022 10:29:15 +0800 Subject: [PATCH 367/455] Add implementations of sort by note commands, including sequence diagram --- docs/DeveloperGuide.md | 45 +++++++++++++++--- docs/diagrams/SortNoteSequenceDiagram.puml | 52 +++++++++++++++++++++ docs/images/SortNoteSequenceDiagram.png | Bin 0 -> 20651 bytes 3 files changed, 90 insertions(+), 7 deletions(-) create mode 100644 docs/diagrams/SortNoteSequenceDiagram.puml create mode 100644 docs/images/SortNoteSequenceDiagram.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 5d830863f2d..c4ae2b362e7 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -360,7 +360,7 @@ The steps above are summarised using a sequence diagram as shown below. These features allow the user to add a strength, weakness, or miscellaneous note to a person in the person list . It is facilitated by `ModelManager` which makes use of the method `#setPerson()` to replace the particular person with the new person with modified note list (depending on the given command). -Given below is an example usage scenario of how the Add Strength mechanism behaves at each step._Note that three commands have similar implementations, so only the Add Strength feature will be provided here._ +Given below is an example usage scenario of how the Add Strength mechanism behaves at each step._Note that three commands have similar implementations, so only the Add Strength feature implementation will be provided here._ Step 1: The user inputs `strength-add 1 great endurance` to add the strength `great endurance` to the person in index `1` of the person list. @@ -370,7 +370,7 @@ Step 3: It then returns a newly initialised `AddStrengthCommand` back to the `Lo Step 4: During the command execution, `ModelManager#setPerson()` method is called to update the specified person in the person list with the new strength list. -The steps above are summarised using a sequence diagram as shown below. Note that all occurrences of `Strength` will be generalized to `Note` to represent the implementation of the Add Strength, Weakness, and Misc features. +The steps above are summarised using a sequence diagram as shown below. Note that all occurrences of `Strength` or `AddStrengthCommand` (and similar instances) will be generalized to `Note` and `AddNoteCommand` respectively to represent the implementation of the Add Strength, Weakness, and Misc features. ![AddNoteSequenceDiagram](images/AddNoteSequenceDiagram.png) ##### Design Consideration @@ -384,14 +384,14 @@ The steps above are summarised using a sequence diagram as shown below. Note tha * Pros: Easier to extend and modify. * Cons: Not intuitive for the user and more prone to feature flaws -#### 4.1.7 Delete Strength/Weakness/Misc Features +#### 4.1.8 Delete Strength/Weakness/Misc Features ##### Implementation These features allow the user to delete a strength, weakness, or miscellaneous note from a person in the person list . It is facilitated by `ModelManager` which makes use of the method `#setPerson()` to replace the particular person with the new person with modified note list (depending on the given command). -Given below is an example usage scenario of how the Delete Strength mechanism behaves at each step._Note that three commands have similar implementations, so only the Delete Strength feature will be provided here._ +Given below is an example usage scenario of how the Delete Strength mechanism behaves at each step._Note that three commands have similar implementations, so only the Delete Strength feature implementation will be provided here._ Step 1: The user inputs `strength-del 1 1` to delete the first strength from the person in index `1` of the person list. @@ -401,17 +401,48 @@ Step 3: It then returns a newly initialised `DeleteStrengthCommand` back to the Step 4: During the command execution, `ModelManager#setPerson()` method is called to update the specified person in the person list with the new strength list. -The steps above are summarised using a sequence diagram as shown below. Note that all occurrences of `Strength` will be generalized to `Note` to represent the implementation of the Delete Strength, Weakness, and Misc features. +The steps above are summarised using a sequence diagram as shown below. Note that all occurrences of `Strength` or `DeleteStrengthCommand` (and similar instances) will be generalized to `Note` and `AddNoteCommand` respectively to represent the implementation of the Delete Strength, Weakness, and Misc features. ![DeleteNoteSequenceDiagram](images/DeleteNoteSequenceDiagram.png) ##### Design Consideration **Aspect: Should there be different note lists for each person:** -* **Alternative 1 (current choice):** Separate `note-add` command into three different commands. +* **Alternative 1 (current choice):** Separate `note-del` command into three different commands. * Pros: Easier to use and more intuitive. * Cons: Difficult to extend and modify. -* **Alternative 2:** Single `note-add` command for adding to each list with provided prefixes. +* **Alternative 2:** Single `note-del` command for adding to each list with provided prefixes. + * Pros: Easier to extend and modify. + * Cons: Not intuitive for the user and more prone to feature flaws + +#### 4.1.10 Sort by Strength/Weakness Features + +##### Implementation + +These features allow the user to sort the person list by the total number of strengths/weaknesses in descending order. It is facilitated by `ModelManager` which +makes use of the method `#setAddressBook()` to replace the address book with the newly sorted person list without modification. + +Given below is an example usage scenario of how the Sort Strength mechanism behaves at each step._Note that two commands have similar implementations, so only the Sort Strength feature implementation will be provided here._ + +Step 1: The user inputs `sort-strength` to sort the entire person list by total number of strengths in descending order. + +Step 2: This argument is passed into `LogicManager` which calls on `Coach2K22Parser#parseCommand()` to find the command class to process the command. + +Step 3: It then returns a newly initialised `SortStrengthCommand` back to the `LogicManager` for command execution. + +Step 4: During the command execution, `ModelManager#setAddressBook()` method is called to update the person list with the newly sorted list of persons based on total number of strengths in descending order. + +The steps above are summarised using a sequence diagram as shown below. Note that all occurrences of `Strength` or `SortStrengthCommand` (and similar instances) will be generalized to `Note` and `SortNoteCommand` respectively to represent the implementation of the Sort by Strength and Weakness features. +![SortNoteSequenceDiagram](images/SortNoteSequenceDiagram.png) + +##### Design Consideration + +**Aspect: Should there be different note lists for each person:** + +* **Alternative 1 (current choice):** Separate `note-del` command into three different commands. + * Pros: Easier to use and more intuitive. + * Cons: Difficult to extend and modify. +* **Alternative 2:** Single `note-del` command for adding to each list with provided prefixes. * Pros: Easier to extend and modify. * Cons: Not intuitive for the user and more prone to feature flaws diff --git a/docs/diagrams/SortNoteSequenceDiagram.puml b/docs/diagrams/SortNoteSequenceDiagram.puml new file mode 100644 index 00000000000..6768d066eb4 --- /dev/null +++ b/docs/diagrams/SortNoteSequenceDiagram.puml @@ -0,0 +1,52 @@ +@startuml +!include style.puml + +box Logic LOGIC_COLOR_T1 +participant ":LogicManager" as LogicManager LOGIC_COLOR +participant ":Coach2K22Parser" as Coach2K22Parser LOGIC_COLOR +participant "s:SortNoteCommand" as SortNoteCommand LOGIC_COLOR +participant ":CommandResult" as CommandResult LOGIC_COLOR +end box + +box Model MODEL_COLOR_T1 +participant ":Model" as Model MODEL_COLOR +end box + +[-> LogicManager : execute() +activate LogicManager + +LogicManager -> Coach2K22Parser : parseCommand() +activate Coach2K22Parser + +create SortNoteCommand +Coach2K22Parser -> SortNoteCommand : s +activate SortNoteCommand + +SortNoteCommand --> Coach2K22Parser +deactivate SortNoteCommand + +Coach2K22Parser --> LogicManager : s +deactivate Coach2K22Parser + +LogicManager -> SortNoteCommand : execute() +activate SortNoteCommand + +SortNoteCommand -> Model : setAddressBook(sortedAddressBook) +activate Model + +Model --> SortNoteCommand +deactivate Model + +create CommandResult +SortNoteCommand -> CommandResult +activate CommandResult + +CommandResult --> SortNoteCommand +deactivate CommandResult + +SortNoteCommand --> LogicManager : result +deactivate SortNoteCommand + +[<--LogicManager +deactivate LogicManager +@enduml diff --git a/docs/images/SortNoteSequenceDiagram.png b/docs/images/SortNoteSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..13181b11c11806677be0bce7ff832d3db52ef89c GIT binary patch literal 20651 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 literal 0 HcmV?d00001 From 06b69c50515f77e3b603d4f2a683a0aaba66388e Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Mon, 11 Apr 2022 10:34:48 +0800 Subject: [PATCH 368/455] Modify Sort by implementation in Developer Guide --- docs/DeveloperGuide.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index c4ae2b362e7..3a4c758eb7a 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -437,14 +437,14 @@ The steps above are summarised using a sequence diagram as shown below. Note tha ##### Design Consideration -**Aspect: Should there be different note lists for each person:** +**Aspect: Should there be different sorting functions for address book and schedule:** -* **Alternative 1 (current choice):** Separate `note-del` command into three different commands. +* **Alternative 1 (current choice):** Use different commands for sorting the address book and schedule. * Pros: Easier to use and more intuitive. * Cons: Difficult to extend and modify. -* **Alternative 2:** Single `note-del` command for adding to each list with provided prefixes. +* **Alternative 2:** Single `sort` command for sorting the `AddressBook` and `TaskBook`. * Pros: Easier to extend and modify. - * Cons: Not intuitive for the user and more prone to feature flaws + * Cons: Not intuitive for the user and very difficult to implement ### 4.2 Task Management From c42d9b79df1131e1d1001e097a85eb861aae7613 Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Mon, 11 Apr 2022 11:05:57 +0800 Subject: [PATCH 369/455] Add implementation of Load Court to User Guide, including sequence diag. --- docs/DeveloperGuide.md | 33 ++++++++++++- docs/diagrams/LoadCourtSequenceDiagram.puml | 49 ++++++++++++++++++++ docs/diagrams/SortNoteSequenceDiagram.puml | 2 +- docs/images/LoadCourtSequenceDiagram.png | Bin 0 -> 23359 bytes docs/images/SortNoteSequenceDiagram.png | Bin 20651 -> 21020 bytes 5 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 docs/diagrams/LoadCourtSequenceDiagram.puml create mode 100644 docs/images/LoadCourtSequenceDiagram.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 3a4c758eb7a..e2b4bcfdfa2 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -444,7 +444,7 @@ The steps above are summarised using a sequence diagram as shown below. Note tha * Cons: Difficult to extend and modify. * **Alternative 2:** Single `sort` command for sorting the `AddressBook` and `TaskBook`. * Pros: Easier to extend and modify. - * Cons: Not intuitive for the user and very difficult to implement + * Cons: Not intuitive for the user and difficult to implement ### 4.2 Task Management @@ -669,6 +669,37 @@ The steps above are summarised using a sequence diagram as shown below. * **Alternative 2:** A player is an object of class `Player`. * Pros: Easy to extend and manipulate attributes of a player. * Cons: Hard to implement. + +#### 4.3.2 Load Court Feature + +##### Implementation + +This feature allows the user to load an image to serve as the background of the strategy board. It is facilitated by `CommandResult` which +carries a representation of the image to the `MainWindow` to update the background of the strategy board accordingly. + +Given below is an example usage scenario of how the load court mechanism behaves at each step. + +Step 1: The user inputs `load-court basketball` to load the image from the filepath `courts/basketball.png` to serve as the background of strategy board. + +Step 2: This argument is passed into `LogicManager` which calls on `Coach2K22Parser#parseCommand()` to find a suitable parser class to process the user inputs. This initialises the `LoadCourtCommandParser` where its method `#parse()` is called to process the user inputs. + +Step 3: It then returns a newly initialised `LoadCourtCommand` back to the `LogicManager` for command execution. + +Step 4: During the command execution, the `CommandResult` object is returned to the `MainWindow`, where `CommandResult#getBackgroundImage()` is called to retrieve the image representation. Then, `MainWindow#handleLoadImage(back)` is called to update the background of the strategy board with a new image. The command results are then generated and shown to the user. + +The steps above are summarised using a sequence diagram as shown below. +![LoadCourtSequenceDiagram](images/LoadCourtSequenceDiagram.png) + +##### Design Consideration + +**Aspect: Should there be different filetypes for images:** + +* **Alternative 1 (current choice):** Only png images are allowed. + * Pros: Easy to implement. + * Cons: Hard to extend and not intuitive for the user. +* **Alternative 2:** Allow for different filetypes of images (png, jpeg, etc.). + * Pros: Easy to extend and more intuitive for the user. + * Cons: Hard to implement. -------------------------------------------------------------------------------------------------------------------- diff --git a/docs/diagrams/LoadCourtSequenceDiagram.puml b/docs/diagrams/LoadCourtSequenceDiagram.puml new file mode 100644 index 00000000000..ce8c3464842 --- /dev/null +++ b/docs/diagrams/LoadCourtSequenceDiagram.puml @@ -0,0 +1,49 @@ +@startuml +!include style.puml + +box Logic LOGIC_COLOR_T1 +participant ":LogicManager" as LogicManager LOGIC_COLOR +participant ":Coach2K22Parser" as Coach2K22Parser LOGIC_COLOR +participant "l:LoadCourtCommand" as LoadCourtCommand LOGIC_COLOR +participant ":CommandResult" as CommandResult LOGIC_COLOR +end box + +box MainWindow MODEL_COLOR_T1 +participant ":MainWindow" as MainWindow MODEL_COLOR +end box + +[-> LogicManager : execute() +activate LogicManager + +LogicManager -> Coach2K22Parser : parseCommand(args) +activate Coach2K22Parser + +create LoadCourtCommand +Coach2K22Parser -> LoadCourtCommand : s +activate LoadCourtCommand + +LoadCourtCommand --> Coach2K22Parser +deactivate LoadCourtCommand + +Coach2K22Parser --> LogicManager : s +deactivate Coach2K22Parser + +LogicManager -> LoadCourtCommand : execute() +activate LoadCourtCommand + +create CommandResult +LoadCourtCommand -> CommandResult +activate CommandResult + +CommandResult --> LoadCourtCommand + +MainWindow --> CommandResult : getBackgroundImage() +CommandResult --> MainWindow +deactivate CommandResult + +LoadCourtCommand --> LogicManager : result +deactivate LoadCourtCommand + +[<--LogicManager +deactivate LogicManager +@enduml diff --git a/docs/diagrams/SortNoteSequenceDiagram.puml b/docs/diagrams/SortNoteSequenceDiagram.puml index 6768d066eb4..e0d94df6709 100644 --- a/docs/diagrams/SortNoteSequenceDiagram.puml +++ b/docs/diagrams/SortNoteSequenceDiagram.puml @@ -15,7 +15,7 @@ end box [-> LogicManager : execute() activate LogicManager -LogicManager -> Coach2K22Parser : parseCommand() +LogicManager -> Coach2K22Parser : parseCommand("sort-note") activate Coach2K22Parser create SortNoteCommand diff --git a/docs/images/LoadCourtSequenceDiagram.png b/docs/images/LoadCourtSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..675cf196ed3f68f0b1c35c991ef0b8f454e52e94 GIT binary patch literal 23359 zcmd43c{G*Z`#*dTiqJsHSR^8;gv<)bOdK+vlp*sxJ48tt6Ne;2W)4mW8O|XkQ|5V= zd7d3J&pt@Q=kxu2pWh$PTF+Xo^|tP_?|tum?Q3{luj|_HS4s*}WF#~s5D0`!`kusn z2!wzh0>OKC6dybpX)Fi;|G8`@`M~b6rIoXpfuS8l%D}?FM$gVb|NJB8^H1#TtOU5Y ztjzQ*?Cj0Wu0FOjKY5Lx4$Q)Dtop$2*K-ISn8xY-3{+mRTkHf{tJ>r38&Wziv;0qA z(oQ@)ivQ-4%-St0F+bsp9Mipa=p?0<-M*}$6R4r*P239PRnx_M+?EyGo39LIlC4`l ziddhNFn;-ZeC%j`azU0}Zx!o!^>vEaZc+Xf%We03(PFd}OZVZ~eQBt_JCfxK6_d7TlQKRjU?R$RSD!psH-DYFZAd3cd|Y=%iJHjypWM+a2MId3H=$a z@9HZdLRPn<>K;8%ovyjZ{=~sBXoBb6HTH17>peMax0f1%9=s`){fh4*aR13OV?&Wp zb_x6IKfgQ^TXd)%rP&R>>wRBT(V9@taOcaT=LF^FplcOBCeAlJcS?QrXsmuZ_WLr? z+)}Kz4b1|n>(RPFt?4}Gw)*_ zzVor0VF_cPULVm}Qc`?ap?gxVZlJ@|^^vvR^Hu+@4g46pOgXu-;z}17wp`^EZ65Mik3nlu zY_~@h-I(8iZ<1)CO(UavEfqHDW%CML^}7Q%vmT0`nXd4HS9sA&EF0=z3+L}WdnJok zmuFfuo0sDpaKUb#+$+r|QI*K@{LD}1##TOj zOH%uIIaXBC+QCkQuQbbPSZ1`jMWASslMdrX;Ly4fjgmUsoW4$;acoyokY1n18HJRFPbdXTdz}xz17V?){;aL^ znwAIOhV;S_fwA2vRh3W8+^r$6tA2E^Y>UMBBqtRXCiOWN6=JZe-&5R zXyM&HaRmIMlAed|{c*dTd5wMV_t?RcZdAD6ZYwPu#gOd3;xs&f6jIIrh7M7>v3B*V zcQBey>BfVcfobG@l^opT6DDqI<7K`Ie9_w!Y>@s_{Nx%t z`1AZJPt@R1H!6tG3EKu;n7%Js93r-G>I}>v`hBFS|5;az`|yLblTy>k9g6wwT2->5 zlIGcW(Q|PA;as=)0f$h8`ElnclkB@Cil`L%*XYj6T^i+t|1qBe3=tC(_3@sXVZH9f zshNYxwvEH{cPEai*12px?&L=rx65_U(1XYl2A zXxW<_JF1nC95X6J&JeYWU~NsjN6NJArze!{xBQ5HErF|}fO~9tqPVAL>&FivcA%kK zwh9goI}zN@T6y|ff(sK?bA5DQE91k6DMmAOrn*HTvBSsWQPsWk;_kZcZ64p1$+l%j zdR8LKFEn163RtztpQ{tK-st?6gSEP{)^D`Q9KP>fTCc^B~$% zd0v9uvG*I%9BVHR&8-^bakC`gyGF{82=X=vIrCN`rJ?l~=ENyy($vKBmo(TN;-Q z7~ZWp@2qn#q74_&iYX#S>ohJ1?t0pXv!gMKq{UJBJ4lwkjS*z|gd_w*0%3T`{{+RV z5WU>T8%S5x`|*O`PU7OL)6RoRE`_TNAH)l$+9Q4RS=+Lo{bYIu>d(kM1%VU}SX2)qm=<^2@ zYe_KBWf8h+ZZb9Z@5YOAWi}%*JSk%Xt~HyTri(Tqd^B9>h{z4}N_uf`i4#Rex4!=x zYV`sg!g2b;M!KVD@JMmUgw5GLAFG=m7gYY*!MB(Rvz~Fz<`UJqI$kY9Y9XJlPgR?1 zCQGAF`w4svr`p!B$00|Vfp!jG%bTuTb)Vzq*zL)obH4YQ$6cn*v8oT%ab*Q-)5ft| zziBhhHua%LM^uI1Xryb)Hp&mRYZKfQo|ZC;$86ipjxa|Tt(wdPE?!RNT*vU%CC6K1)d%$;gBOGG=e9r0qxr;esC zdmhR~3bWUwtCn97={!YS{Ea$z)DSfs5O=%rDGL87@gwrCDV2J--`J{aslWeHKS5JT zn?kxlv#9fonE?OS&ve!+wNC;+;R42KpkV3mR043 z@IYSg=-EpiKh47g)>25gb)fhqsN}ZjXFieB{^cNr*A0g=cKbXT>uWrC9A}@>w#cst@{o?D@V;H z;UKV^wL2%C-a9{yVK(0(8#r9r>6P_-^cDqJP6Z?HTJ+#bsRtq1|di4kFa!M0a_&+ zl(A;T`Pu4CIDNiHaXG#XWyJHVLlB5Vs6VRO>Cv|xk!Metmv4893JZeapM;cTt$tpF ze`?!VI73>gtbeM|p8(SF^YTfUWZ)NfE_?^Mkf-!46Ua(oxquDQc~bbTdFb@9l|O!*hn~cDL(m@m|MN3im?V7{hu_n}7<$1Q zy6(=&iX)Z5g87#9ANd05?x3rQBAA(Yc~|_nu#7@Z*y&E~jfNNGy@r;y7mmoly7Q_Q z7Kj7sYXq#BTz{5{-}D!osqpXQwjM4%Xx2T^5foLH zNAcVNBSVI+Q520ToVa9rnMJ@st}}PauBzBI7zmzLKTyE#US|RKP)0u1ZYnRZr>fLb zi=6((3yOX{OAUQ|mcga^)sm&UK8Kk%mmPBq=^uO=|JaYUEY6aB%U*ujb23Ax5qjOE zW%k=Q=C(T7H%dlykkY_=OVF0FV6sRN)Q-Bw(nPsB-L9VLj(2A`WB<~+y=3N)LH0{{9xs6t5n<+#-OEYYb$HRb3nFXC^a&=Ua z5~^}sR{P$D+WAl4QB&*dLr2t$Y=#I0pXu7(tREd6H8L6_JNHN=`B)3a`RPxpmgMaP zskX-W@5>Ve#@?BD!lr?&jck_WS4zT% zOL(4=h*{z)(cf^ZvlA!~P@ZkM%pxqTl}AlDD7xDzU4`Hxh&q+hH%5~1GfE_ix!Uv2 zd{x&{y=DA$+PkwsqDd;~X?A>Wa>zrei)(3aemox*zX!*M#N3+mRNJ14*hTN;nT0f@ zl%tj~{OCEcOuemzX7cqP(!8-{lNHgzD@!Qnf`S4KjT#qWF@&E0c5P-VF}wb>paZKz zNze|0rv#p3rnlKmzj+}Ek(xUbuXw{lRO0c2h0>wyZC2{mwSLpbij243hB%LwE+VYe zwG|P`?%U>Sy{4)2Be~`&BgJRM^c{ml$5#i|`Xvs;bH^{b2N zGu_;k_PLfZO<9jgoR8WZTa+-79?N@@wc$-&T$5Y~kNp`yS75t5-fP}{$#J$gtV>A) zTk@n)Z*mOVT~8||oub}(-u9DG{lwVSaFg zH3TBa^hI6cgGd!Wy~eJnhV4L6t8J!fq(>cwZrh!^AoCnz(!*teiuOf`g2>%yHd4Fl z>F=D$VTJnZIuyYyan*`4?LXGccb7@*Q|TO?Req*4t?t}0VE>WwASm$7b(?9Qd(NYY z0bC{01hLi(-OKT2B@UI9Ek?WYIwz;1J)Fl_xl?WGsdGw-P@+_7D~zEr;o$;L<n> zXg-_1kb2LeH-~(}8Q!g3=%C{|P^zK4vrw@tIJcaM`SujAuf8UkQ6Ni&bt&t)1YK|5 zObdF|U6D|;>6`EDYOirseT`s0XD3&TJLL=kS%ao*5!o1Dmy*CaF0FpQvWuo?sU1t*ee0om zwOx!J`oSv8#*7iT2*HdGr`mS48ye;Ju#_UKH;@n9T?Fk-QM9(_1MO*B3||G- z^F?@cG<3u8Yt*nb!| z>8_QX?snuf^KkucxtZ!_GZy{4geP2>v|}^P-=D5Pv-#9L(`dFB0R(e6i{|d|M7Gt2 zokC3*2K_2t*d;yLJEX8TXY7-c08_mS@U_OqMtx3?+eLQ^BHncttvH`c0p{D7vXz2kT0j^8;YH?^Hcmg??`B`LXK+lG?BHv8*Nz0u!MNX$K zJDc{t)*$le{z49(kQJ;~eT^aq%;8am#T>Pl@n%wZiJi%pb`K+R#t7w95&L^m&!#IT zk>lDLG4?mMi&5-atXzEUT379>I^!$Yj{Hm+?|0@DjOp7g$~D4sh2@%eU!KaBT@+pA zvs9StY~G5?@YrPp(h-ZU+F8ECu>I3#xn8uN%R~2eTS$N5ikfXk?rhQGx#-86Vqcj} zo6tou+cytI62h8{UTItB+^r?WNNE*eDU``WQ^gpA1#V-*TgHl=iRUnzTlvqiSPnHh z*U^ZKNuWm@_fN1r7fW8A%D-H;7c%rW*awxWHyHaP&hLNq4eYDNs!k^ve4`Ls%ifACMibtMxxwX+{r8x7Kyq8DJ> zH;jHpYrr&J&wN~k#^0UEn|;w&&}?^y`R?>vep^w_ANsI7GkzAuaPJ_I4SV1>K`5r6 z&4agRE=6iecy1&t7R~KUtHgvk7!Kc?Gc?hp*|zYZ$i}&J2K44L3il5#+2>DR+G3KI zj-4m`plk5#hq9U3B&x))NlFTn@VJ7~cj4QsX(@)zD}hASsi4zy&R-~0WbESI@ut4Zza3uBHwQv2rg0EQ57x`k*bgSRH{3}>RH zDMUojTZypVv!=bg7F->$OQH+-XgOz-lyqtOoBk$kLL%S#M3h9AXQyCW_5QvqgPFyi zKVs5h+ynemn3czo`7d2e-kY9%R8h#6Qe4bK5R;F+^707`VX2|%=E|kCw1~!BM0A{hP*-jMqYi_)0eZ8djZ&qNZRW$@-U@3PdFQi!ROmJzsA;@1umu zzCD`a{6#$_)O)BR=LWYeuerc_$79iIanBo6E!P1x#9M#{S zO3^(teT3x8Sf~$UpBx#;U%oLC`Bqo{*fXjDL&j&U!n@4MtrIX4gR_6s(t*vjVuxGbksUGiw= z3Y36o>$Ck-Du9hajP)CXe%tQ5!|ea#Xw8$8&@=qLH}^j|fMhzd#?E)*|Kn%R?=3(H zuF}fO60*@OPk7rQBm%}Ib(EK)gQFl8g~C;0n9iBQsZ9UKP5&!p`Vxa7 ziHy=AxPJ^{#nQFGKCNZ+D)Lby-QHI|tw7zREI_79{ZthnqJ3;X*L8g@19{4^Pq#j# z*n4pvO4rz~u9uTzD#nfn$&}E7dBdl`8X#FDJs7AX<*#SUyz|9c{wFjH914sq@qINkgjv^$xfsGlOtcA^(TdA zhdgAH4mx^=K*%zVBB$PFyqW%S2fdwLa}h})wQ_xgx})vbol3o9JzNqlB&t7~f+ zxXD0(>x_f%Y^Dj=UuE?W zU)L>m@<6+g>2GWXy- z5R=*PYY(qGknJf{sk(JS1BP9o@cq`Cs{)1Tavpce6jiw$XRm4ui^Hu<5!yq7X1oO1<61D~yzQWpdG40+Ag9F;YarC8npdz0kIE^QnL7qBI;V|8ibH}?{U8mKoExnd$ zb#V@_AMU8!otOU#e1dd`;UhJa*TU^tkG+VYoKQguJ2Z`ge#3Jas#Cap8HS0ALjq~v zeA3{d&L#BGtYbQvxENbXATA*czB7Oi%sexiEFPTjxOEw=XfQtnWNnkAjicaLQc_ zZ(Um;)y$ig^JgrvS||~T`&paWYikkWQ4Ym8f5~8O4MKhF?A+IsxC~U2X@8;cLh!SX zY7%ZEktKycvpQE?I2d4(PFK!5?b&E!oB9HMf!->#Ed29}PJ5T8k_D)M2cLW5b_xa7 zl;$I(fB-ld3O6cox9snm&d{dkEuXVz5)|WX%2@KRp1TDVLfwbOo@Ag=dfI~r(SGI9 zX+sHfEOQ)w5$V?ItO6|zU@hz|ewz%(s;6=_+#@GTxjhR3=8rbx_eBZ*6twxugQ+%6 zt5lH8%@&DWybbrfYxbn{ry4}Jh8Uc>dGxbKPqPr*L5i;M1mosB$|AHb-XHtJ`Fq^{0zU-DoE6y`@})xdScz|1Vmevb zlNEG&6Qt$5Nf0J2pO;6%MT0qs$!NNPn^a}szVtyZVm#ZR2Ii=Pe092niY$yvl!mq& zX)}@*CD6MtlV2e*G7`?WF`Yx!<|rq9UE;#^g@>EiUJhvC+Z|x5uie6fnUhtKYR}FJ zI@AICF+RSmYl-F&tR(Uz+HI0$Y(uW9o7R;3QG9x0eVXj42;Ky87QLEk6a$y)MQqW9 zU0L7$PAj-Q!j%hi`YGJ`te?VYejq>9NSXXp1vqSo)WKN+k3WD+pc7~2v+6eA4&xNO zL+Vi@6U0!oxvi-{@6?5>EC;~=8Da0@k*8o*S=pdHa^*!oTwA)>ys`_tCTGLqBM~alx zRg;vfHqO)D!za^KYfG`7@FFZx(yMzPm7OhvFab!LEE@?z$yFVfj%4BzMsjBqaJ-v# z$nV#I5tg3(%Y-T#D#_9{5y6@dRfeCvXOVShyf)C<(V=TUrE9!$dXYoOMxpkd{ma0s zS|9EtPBg1X8raztq}axZ$7SDsW-1iTINTjv;W88ukqx(5JjdQp(pI6os57jkRTD^t zPuAC$Z8vd4|80s`%+uWapT#BBZ6G(zPI~3ymbD@+>}T`()+jjya%* ze54Z^B@q6K>qyClNq+s<(9+K(B0&G3~UT z&vskw4H8{$P@x)!V?UuJ}hAA~loEALu%q@{hAMVS^@v(RJms@sP zCgx7xa?;Svo4zOagR|w0+3WP;-JRRZo?w-4SW5Uz+p^R$T!4`dx4XHE(oHUT62GWC zjRz6a!dd|?9U&Tu}^SRU%Wp0d8k6(Ldxl%?@^P(0rnr5hyoSDZ+2!Zq} zacKp5p-4#Qp-FV&&rsRTDay^p&G)BQ9MaTLJQh7$2?-$-B5Q7DW?ZfWUlPKT_&%pp z7xUI%gl{FsECSF@ru@$g-0oXmz}Iw7&G?@S0Y~r*xXSz|*3Db%qTRGdQ}VME1A;hu zUo-_Q+C#gF!^dl`dt7I`iF%B-mJt%NlhKDhnY_?)SgjqESzSIybEgLY^{b zA2>Lru$S<>c|`xN=0uW-!wiFM70wm1$`ARV$qV;Av2dNlrYLwD>T#DO?IE4I~F z*#GCNzhMI3;o=UC@_|nh?LC7J_jFy%%6&{d1@GxP^h7@zP-|HgkXl%Q?pq(gAiZMj zq=cN`8M+nS@RD!^J=`FnYS*ZEAu~ADFZni;C1fidg{^cLSYl0t2<8nyCGRKFP8^Q1 z-N#n@n8J=A^$I1Z-<9=%`duk?^?5gh#lHfxIFIng$5hjosvEz=Z4Wbh2tFo=?rX3O zAbarK5HAj1`)C4NfG;x@AfCo`!7<+~kE~Wo`X>ba8s00=g?(7x*(rhZ13e7qf+jZJa z2ESR(kjb3NaBCIaSrBzi6nu(mI&q*8he8dgRAh-r`yk%0s35`(oUQxz3oH@KDcilL|s~9#hImMU-v4!3+2@-<7$hpS}^N-pXp8=qpTs-cUU?rv!QYdIufLvN(1zw(LA7pu-dmdGF&x1Jzac3{D+Yah>h^`c7rL(MXPh7k&%&>=8WUd7V$7L z;(Pl3E85`nec(+sf}`1oBF3qT#eUjH=FLMl#ABB07CrTI#X0#pMf!&|DNvX_%WbH* ziM>oOnDjd6LNe22MPM(k;Hs)9^0*@Kc;`&CaPnM9zazD(-x>0`L2mZ-Hza;%=#v}^ zwjEH{vw1ldY2n)|KRY^9Zz#S9E_(Rog71_!bzbmklI+{D6weiUKK?ucr@2XFx+%sO zN^y9Ss7GYLdjplbJDiL|1$P5B9@V~+%ku2)i@kXHDom0$(RM61t|xb@i-5SUtNW92 z$op`kXbfPkv@CU4s|koLf_tO+L%KhR`)+IBj&)o(hj5ej#=uMR+xbeK@=bQyiZ6LR zNO9{nH$2+rsLJ>8(Y9F1?HCdF7c_r}?Esvoi#G#B9RY*|4UdUtq20L~Q2mT)GGFgj zQi?0Iyn_4-Dci3RgNx7?!QE-CG|EX{_C9OOL1sW5IIk~MV&F!@6Z)o_`Mllzb}DJ< z^*?^RdUbtj=7AL)YOEJI8 z8#|+-za2<_PT2KbWW*7AfrR6&OaBrU$XH5MDulg>8nh0+$7M&&rEPxwS8)MR)r_#n%H%t)yxFUPF{Q-Q# zjZ3jVdxVnb^azfIo?=y0aGlB!23qcwuCwXGM(jd8l>(~EY_JXgwvENI{>r_ePd83* z>}Jc~+VH0fnh^KQHKA7*Fm#9#9Avj!bl&@TOG>=S9Trw|+|oV4_23MwZYN_)(2g@FXnP zbPHw?9E9>(fM%bscHrS!)AKsVjZI88iV=!H>sOu3a*Q1B-}Mo8Rfypak!A2I_Iq;W ze2LBUgEIvY`F&lFGv*o}3$IvhIjI>M)+NcaGP+JnIkPnsy%deDsjX#2F8A1qR`sR# zp3+wWg!TsuzpcA%fxERJagN?P)*~ z-ofz!~ra8o02Wh_Fpc%XJeQX@>k62r<4q0E6w% z_FS#=b2ZUfZ>YqUD52yfc@HEF{6|{*|qlsy2}rK?`+3{MuhaWVu&v0J$j!4;BPW z%$GkR@3H&V=OAQCuwj6`kPir82K(Xt_dI{b_TPj54D7$>KBQZ4(BV8)I9>x}MRJx6 zaLRw2(eL2^1PmTVR!`O6-~2zU{dXv~_Dq#i5Gn*@9B`K%6nJ;F2Mi!$!||9(`ttSz ze2P0YHXHU3k-m?y-6a43%9rgHhlxsJjzb2#Hkcd%#5!bRnghy`ZtyQW862oLYDYJ# zq}gkCVy{7GV?Tz2`tLsyI_buarbsCy58`OQzB72$I`Q!!NBF6A+!Qg>*0lCeq?a2)f7S*{I zW1t`U?mp5({ziIW)!_kaCfJcxCz;%&YA)0?fhi&6;qyI1!ubB8swVF0sW|T}KvUHg zMg+fT7Mxn3x&X1b^DiWguT0hE9Ymrug*^LFHY~oy1f`V!0mMk3g!7@!23F!0sY{$0az-_zK5xkhe~ zHuWB)O?v$T6fM+jQw@|?bc;(ga>yGS4LDR&Zo*yC(0EeIax4(Bf4x|3@SouCR-7&S z?el$XN~ko%e&LC~3(qo?PwFVOuq-_(ta7a7ze&#PvWgmyNy{f3FOycO*-2|9 zQLl>6Qz^Kw0EbS3PF(g6Kj3+46kp|-_ObuaE2`yMRg&^c@+k;p4VUK}c*MB)F-9fH+*3b-oJo?{@vY?&w<#fz zhkJ^DaCCv+q2m|n5$7|_idYouAM|)IAcK$E6GW`P!yjbsczDEUOE)*~X(f2>9 z1(Q$JoT8*2e02#}_#sgbvYl#%cW!QyZS0w5t`Cqe%cBKjFMK}!bQ8yE9A@eFpO3=b z>}!s0xkJCjRnj*QYZCzj*k_^kqZ|K=7yVj659SF^-1A1^TO5=E4g(M#pD)JFpoP!(7oE3H^oy}yB^bE7C%HdjD1RkA zE{68JJgj>BV*6nbPt`T{!#93a5@^_HU>@6%=q4YKQVCp2(wb`1Nd?7ACSp0ge<^=9 z8c-$ssJ>x!z{Y!#VB^o*ls=Z-A9(2NJmXGMQ5m2<-Edy4z9irE(xy4dJXub|z!H=Z zF5r&ucLc6^fZ2LtW`?RpARQ*{D)RdoP9w~_de||qX!$JMK>|y~8Gcomj@H!(5N5Qz z#h`Rbscf996h~*T;G6l26AvY(aF5ijRsc6@TK*_20AA=Ed{aaiu$-oC`s9ovS+J5Z ziNuN}@uBbSDD8;8k3ai|hVnJFu5Of2WN^B!Op2Pcq(hMk$}Acj%Eqfu5rlics@pNP zYHq{ya&=G0(>MF7@tYMW@ZT?cdYAjHwj&m_xAgi8! z>t}OvJZf<>>EF61sLVa5*&~pD2etzL@o}3)*~0Ph>}-(>KUvcv1RcW*4=SIEF>0hN zHEl8_I*6+}ci(b)kt{cLvA$&6cVc_hsY7pH;D1m6)$LENKiv-NpT%rOFBngR6m{iJ zf&I_gW`0ugqh_3+LT+JWN6CA5P@^0B-+#O{i4`Dvv4)uaZXBf)9h;+ zG+Ecp`VQD>-2GXUNlS{ccF!5pn)*0RO|3rL`cmtm(dG%u;_EqjUrYR|Zy3Y@dgMXY z;E^b%8A|9?&Cn#LX46dLohnvSi3k#qvE2#1eZ=eX@gARl^j7=sqroqM^saz#SWiQ~ zt9_TNp;}!+3>aKV^X@)ua#-U?`hHY=IgxQghx=YhY{*T$Z zL@6lEm=S<-1KH=@i@5Cb=83~s_j(3!5d4Gy$dm=lHA$>np|#Uew_mO~vr;@w=4T;7<9R+&JTui9-;wA@ySr3SxzKP(a*IMga+$ zlj8Kap$zzD+|!2g5%wVoq_NZd?B^KxKh#^%1GmWB1dx}SzTrT)i318_k% zT$katxzRorqYj;*gQ2^pYwAT&W&T8&QhQMRH~s~s#DY`JsyZzKAJiyHHj&rjJ*SlS zQ2B306qF`szutr@yrfenmt2A<1Pu?^RCB2?<{aIv!1r0nq4!Uw}WuCr&KlEKwSr;ZugU2E8& zpIfd#0Iu#$KOj3#n2g)LK-v7pP5hNn(GTwuzuFRgK)g}HQKpW#I1l|&`iBgfPyZMn z2ySElVCc9R)c*Cq54fYJiS&|hUO-s-qT1v|FkUEj=>epd=PwX!Om36R8pus^OR38= zXAo(pyV!D*!VM~o2ctTEn7M%(vX0`lcvA26674His>6wcNXL-fIZ2`Y$?$%qJw#7m zfF%bRr(HFPQbH1A)xD|L*xUEBEeKA+uiqx6shX}otxm=R-@u2Bxa<|F$slB3{K<(l zONQn*p}|Mo5K{o406T!(Ji^@-d}q5)zzuqRG00=9UiUI!SB3YpT>g&yOxCxJ<&yIl z_W#Oro;GeMKTmp}pC8He`F{7*y^E7#y$ zjQ=53Fr9aq`iR!nmjr2J&}{ffSf&kJJ+o7`=(JfGt}+ITGO8cV)N+iI3R=nbQP=HU zuVB=u2r?q0&D#bo)BMgi1O){xD^DzGgg<`PhvvJ)LeESQjzHu)T8`$_?_5-*<1twU z{dKmsOBpj&+`)PRfD=^#edZU$KYnNWygu5pyll3a0cJ^L}`)V(5OPsgHS-#mZ z$G*<)Or0Co-M8wOM(Izjg!-XMMCfQEWkz51RCy8lfQuf^KM7G9$Fjd*XU;wTK5g7D z;yqc_5o{mAYSCfkrA;01rOSP~L-;i7j?BzN10dDbJ>gKfA2c^?l))7^UWiB z3YNNdw~VL}lEU_~ZD|HIJmNkUva*6h`5c>C9sRQSe`)AzLE$g{SFd_4LqY2zy94N% zVv=I2)+x#qwi-xhQ@QGb?Gf|lHGh)|ILj%0_-nFsrO4vqC06Xj5?bhDw`H%(WSds4 z0ug!7BRF&C+bc9tg3dNw=^Dfmwcvt;%HfwhQFIvd#5L7yI~NPS?4E-z5#mk5=H1+C;fg5 zciZWVq2QI_UBGZoSr%Sy?doHlvgsbEkm ziRgzQJ3f1u^zNCL^~nTOR~B=;k)myTXsozTsNUB+KbyOE13yXWtJ&CY-#T7mP=aV% zG)2wG$OD~YY@;4;J`OK_X+1sSbEk7IufrdbFskSrgmZyJzb z**_QK?lJ|~G^4tnxn}4R{%K+y0i z&pbK3pFlH4y$ZWek>WVcRTsc<&aFyJ)o^MlG(sfSgQa*k&HMArZv^yg2%a3KDRSHm zF>$zIoZbf1x#+5l3UVvpO#i@mUKuQ=OphjI5i8*vqc1=6eB_3yAAl;Ax_ zZEc66HQ`fxw5FSfT9qbN%a}7cG3p$@jZq|T)vy`mX2XcA$rd0u8?L!vwRgW#On7$n zJ9HNUR=m$S+0m5xy36t`s9h$C`%v2W;2MUv2LWXdb1`;Bs+qnx&R@c#Yi4NKSZ11* zlDN%zzs}@n;Uc|27NDxVJiFzzs=vYWQsveE4SgatYW>0 z^Nq-^ml@+C!fShM>E`OL=a1S5?gEe&{#X}o9Ai0G1O!)!1wGr*Vl%Ijqr0-Lhooto zm%J7fBeAqmHlRcPep8l~#r2ri!dvr(F8%M{3;j%#NL*X`+SB89<6XV*YREQcWrwop z^5ym7$F^(iWc!?7El5@N?1vIVLW$Grr@tC^Ky2Ul1Z!z;jsS%_ELnjl?Sk7|>3@$q zgZP-Vi=HSFqC>7>KcG=l&qG;`xk0b(cNXAMkzd~)K+2r@(K(Y;3BQcVW|FzB+}-67v^>lTlxMD8-T8i1uMJ{_>cV_rC(e18#bsgjxfSY zT$%R`@I2w}O}HG&Az_#e*gQUG)6Z?GrB_T)j3it@Q790IHCD-&kc74r+SH(VzuyPIbu$R*_jv|4aq{LPl*=9ShnT2A9~sPl8~Qb`I(R-IZSiF%lJ>wZUqt<=9# z#0CB@b>m*ds>gC&oZ>W9MtV#cWm5Xcl6)_Jxzx*6DaASu3ZGUJLcv)P3yJn2+0FU3MZoFosA?j1AcJfu*$;~Xa= z%vmNkkfWQS&6n9*Uchlrg1^(qy)%=HZX8^oaxd{^mQ)Z>*&p%m**)3n6Oj6!PV8;t z;i3P1IRAs5KkP3A8189`5nKs^@;tx z-@p9hcMccxyIbIwp5HH%-UZFs`ux>#GKi}d-PpY6&ts;OQ$EJXR?z#C2QFm~tDD|C#)<|#OxagBm2DO~zkPd#>v{p5JTu8D zjm_%44~k|BiHT0Beq>zngAe=v<$2p)pHe7nC0c(F2byI-`%-R9++A@P!Vb2}YtMCh zB+s4;=G-5T<#qVSEl|ofh5y~lXKc6MOX!z=f4>DhOSOjDBhK?mLc&?ua0d6~#_$-I zNqJ>%`^m{m@{ib6Q&i)>Cvuf+y-G>o&B}5Nnc=J?n9W%ksGOLOJ#7bm!9A!VuE~lk)`O2JCKI3l(Ivy#9fK(SnYd^UzI3 zkL%cMBI0*ASv!bab~X3a(b;Syvm*K2O1^1Y7>9?{S7eX~zqYDK=atc@j&6zd z8HM~NS!IXod&jY_JNL3KqSaA5;xGKQKo8XFEQK^2^q5SCl&(oVLt_rHv z@o{F*)cc8`IpEzbyAgzX$+}@rHDY3SXZ7NG>jiX8igFI<*_Nb#lbh{uZ>}%7J|x?y zWavX#!-qLV-@@QQm&Gd9e)wvyzrTN~O0vkpx6@1=DGTm^lfltHOY&COHoC@wFuVI(=dz{Q#} z_109?kufPBCB2GWGVBx*OLkUxW{;! zUgzrMd(c4QE92afEC*;D#_Uee&qi@}-UP6Kh4!e>+HsxqQE7*!MA?`cF3aUs^&*4B z{skpZ1?q(`4)v?7tUe^mmUecZj`FfUMP;jzz@VdXewC+`f3|Rs1qA0>VLR2~>=`2j z1TeSUnOgLYLoEV|tf?ONlQAO4YOEA_uCp`wV|DM> z(PnBz4%?u@Fhk!|R1A8VwJf)N(w7AplusrLZR%MkNrF>)>Gg6otAZh96A2O% z58sFJ@$q9nB5XI7C-4Y}?g_Gx#$9o19cs^a`C#C)Y;>3WGbXWDVSVL(n@y|Dh|13O zfrisx88EY3*mTy&^5VA4rC?T{Rm-M3Y9d{q$~TCKnrPt-1x7y-NBbeXC>_U@?VwjT zs5DzLS^MvJp5<3L=$PNjCEH$;%DLDKHX3|2XaiXwxG3F6;Pp7s#P;8mY8#nCxyFYr6&#|kPzgW&)v>MD%se4ovyFA|g*@a91ZkDWNkhtbr>Vn{kZjDE6 znar(va;=y-*^i88*P7@QPJBp~7~$s2Teqyx0;Fku?zPn%B)HJ@g;3$%iL5<1pK(D_ zVZ--W>QWcEFRF_NP+ZwI3xfp1ucrgPdc%bPh=JnIep^7I=Qehb2J}nkpnhE|YQ2mt zbLxoFN^#=7%LB zmOFtk%WgNDU|24*8ZbBmC6e>kI&_ zlSB!=nsbIdOKYtG-o;hp8JbXZF!tf?Ibuu97V2AB5yL0O71CdgmwW6~+lh*V7!NUM zAsPCjVf(BF540E{wUmZ+_E^w^0eUa@{gt(xi}re8nS%6SO)hM4*}r_7^}dEs_b9Y) zaZ;ZoV2ATgC(tt9eCMYmgU3#U-!KJ0^3FlR!t?F=MAa)PYKph-=fkyx8)t+FzcYO> zp~kOAioL?yYgyRGN=IUr6N32MS|=|nMmR+Kb$wI!H!#TnBK%zz8GUIqD#mv$o+sg> zwCL_ynkw?M&1gTtjXO9f4LTqDiOO*IMGjLHNd=dt3ffV7r@FCKBopIaLi4*l@mE4a z{nl>5bqYz%@R8A1ZVzAnzk-Pes`X#ep?wDLH|YFbF~eo|2hZ8@;jL8_FJ{IUQ7Qyd z9TWvbzmq&3iTniQkiF`W4faPKF-C^rruiF_eZ;f$W}=hez7n_qb8vdSZ!!bhmBF3u zmocu#{W)5@RMJ|#OtM7nT{;YcQ2#md63lSH@tcm5cTYjdZj&6P2@2$;M$V$i7aM{eMvXdwfAdz!hW&l zzH*M)CH35}Fw?Q6r`5z+#D155<1T`BTxSZECx!%EU*c%XXWzf51c+Rk&kUdoB<1Kb zQ~=z#0sS{PWxi=8Jn7eiyVZ11l)y#(fekd`uctRFR#w#ps1Nt`Xa6y{vb2nwT%-o~ z%AXBo`^<&sR8IOoy)ys2(tGS5+S7AtRV@vO4_q?%O@V8BSQ5H_IV@@X?k?J+DN0vx zwSwQtq}5MwZ|PN8J8ahwltOWPa=~>g{jPA5N^PW>w3>7Tc^&;Fn%`;PKv^(G=8V|$ zXP|shl7Al@&2P)jdrkcR^l|PnOmw(ry}5B2o#EdA{MT#5Ie72cSHEpd?&zp?b4*MMUBS9Rz4`+@rTcx)TCnH=!;#aHQ8S_p zU*aZQ-BzxP@(j3qw#`wD{nKomW|p@Q=3NM|6w`SHj)j^pPRQQNseud9&$gX%epMJ* zbH%r%gPddbYa*HprnsWAozWhPU$N-zgYWbKBZH_oV{2>Y^(?ZKjZ@{&ekiA|$%xe+RnZ#bZa`#Hd+$`1>Z z#YUu9&>-uDAbA8C>dzQ3&pO-*jk-93hYUW_`80r|eEspT+r8=Ew^vZ^D27Cxp?@)w z=B#%Bd&f=y*U!$pU6;7w&W$gNlc47J%9ha4_gl!JXo~5Vt2fqjGAAJ);&@G^!(Sdn5KqD zEhZncbEfP_OfX+5#b<)sQKBikf!h3&yFZXE>m|P!QjL4GE*BDA+um!x03v*pWGQ>V zW&-$9Vl~?+~bJ&Tl{5&UT1{}jzE0PF}pdx6QZzT#| zHEzE^W2GyRn{F;tJ0?UP)7`D$r>G&U0iU(>v@=7mOKQDR*LMi5673ajuYLnPg1=f%gWhy$1xGBe@2hpm1vpek$&Hu#*rY-HV`S`6BM>?J zPYm_JSm8Uek=Glv7QVOf!2Z9hBJk54%=e+LRH|%{D^?1H%B8&v^SaCa%=jdF1p;*% z{ZjgC$F%KbJ(=5-O|sMrRK&HNP&Q+V0>)9C@ktDY0vVr#aFEtF+S`VT+vDrv@6w#u zWobxYF~+DGF_Ih?#i8IrOld_)MWE!)gSUhh{L>6hW1f8f3Ek5sA*@w5J3lp0vUdC% zqkrD1m&R4+&%p->#V@0*aPPWQYR0Yj=aU21$$KZ~pYeJv0QpeaBPxySteZM$3)MEh z7%|rzuLKbn@@0>+n#b&Xl+1k$!^;l%=aR%eGbq3{d7q_b9+3EH@YeqKJ#xykSO(wV zycnpmQRd*|OabS;$fOuj+-J|4>|~7*G(ck$zv1XZQ{Uu5NF#4NKdwqwz0CgvuzEG;hbLK z0>1JVp)0bblOlkHqHqo98-Qv|Q1n+kw--dTi-7xetc?Jv`9<}7LXhqmsX6L_gMi0t>H4B++{@jD}#bv%m>`> z3vS*Exp1^pGHzLTWV91mR<&JPr{T#p=OVzPBXtUEilw$^-9t*SlBvzVAJ;2K``lVc o{5}4+r>%M9T(r&YVw&%y!OyqLz9d-!T1G(7mcY;eg@2UfKZ!ucb^rhX literal 0 HcmV?d00001 diff --git a/docs/images/SortNoteSequenceDiagram.png b/docs/images/SortNoteSequenceDiagram.png index 13181b11c11806677be0bce7ff832d3db52ef89c..4573022d12d208f6c5b104366718098bf0ba5e19 100644 GIT binary patch literal 21020 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 By0QQO literal 20651 zcmcJ%cRbbo8$W&|NkX!>C?{E!m1Cuhkd+FNnLQ3=?_@+qWfczDWN%p~JA~{#vX8wt z=leQn-1q(YJ-*+6e&?TZ&ilOfbzRTv`Mh4oS5aPy;2iZi2n0ePeNX%W1afKw0>O$n zdkVaxN>BTRNEO8(2f6^eyzC>saeQW7KtEG_tm~gmH0Mn(0_r+nAei z>cP#4uM5yZAlO324^^#yy$`_x&DcjRJgR)&as5KM6AL=~t*q0%dOp%8MAbYt(mwCs z-d7&|`ci4ZJT8?3N1Bu4Ji4Xdin__Ry~;8@_-?M_(!yeJx^TNUYjC1;y+fTu$g>+B ze0F$?9DdsMUqXtmhj7zZS~~BF?2`xjjIY5dH0#wa1WP$rdcK?%dr5Vp(jX-oyF-!S z;TId-t7<%3qT7d_tWTet=5Sck-A}y9kXWgh#7bgSnN?eu%*8mJl2;Sbz(ySDmmuMt z?o8D{NkSQ*FigO|`#}5L(3$@By?!TCb#lnCZV1(2-@+~SoBQ5W`HTY1ac{+kzCg%# zf^wmT~X71SOUYw|UkSUrfD55v2i_UgVX{g_Zb(tLxKscgLB$_Tzsn zWLM<4$Z#z|3_dW@Kb3N^%q1LIf!dhY)2tl8ms&qXwiWUszvA00gG)0``Du19J@Tim zA>YMm8^y295QYT>M6{@}yIJ0N#TI6iPf_h@On`(D{@{LFr7F|3ob&L;=QjdDnK%o# z?7J-ST}>2YdF=2989(@l=90!{-HIo48{pkwzU!~Wp*A?C#+mO){{u0$bzZ`g4Mog* zw_=M#gycf(^&N8d7sFEzln+TN2arK>sYF$O>VvUt;|?N<0mb1bqzZ!VNX=Y zkMj5Jq`{xI!*v~fWx~-+nQ>RFh5bu^irHVEK@X8GR(ygw?{JY6BX)~Xr8gEf8=MqO z5hX*FKTVfLE3F2Eg{+>ox=|M>#BUmR9>ypMO3ysn zRh&^o@lP4@tbycWSJ4qThs-;Q_k zUsW8`X`G{%M7oEy$MK8lu^3G3_(h!d@SS{B`93iEPf6MqyzxN{kCKBYCYXQ|u%wH8 zg&L_^S$aj^jt7Cb8!{q3h{3><%jXkFxbH#1BhfFdbt> zteh;P{J?CB2vYE=u0z^*c6c>+HEzpL5&uATqa9&vMy!=*Z}m)V3bi`+K3CZ=HFHF| zp>e5+b24mlf?Uekw6rTXRNpYSQC7xiU`*mCUsl?Pbii#G)&#Zf zZ>U>uTjIeJmMgE-(b2=KyXf0HvKsjzih?FW2*v(SZn6~tiDB>I{HtNBBiQ0AW%`r- zG}WPZlnlDV`{THnt?~2YI3o5o9%UrzOXN|^Y4z9(ao+je%~-9UU3i|Mtg`Z(8LiJ+ z#fo+0lM@fwVJ;=s)AHuTBfb?aj|Cm`C+Zp4bY;X|779Q*lc*J-UT}F6z9E5T11 zT@NzKQi|ieI7)J#^yLIU!7oEL)kkDIgy@e=JU0&IpnXwxcP!c6hC1 zIUvXnc{WScd?Yqav&ZtU0eK3)LYk^bAPy59t#S$tRzjVaoHid0%1Fy{A3XEPDAe;= zh{pQF*X0bOLc5|4s~@sz=6f7+3~9Z)v>oT?s8g#hrlVTBv_b0S@*sziUrXJ35-&84 zNHk4#ePvq3JT$VkVj_`!`hD|UH+upJL@eh`ORv04rn93SKO$R#9Wg%~0FDBWT|)5K zGVepy(hylRd6sIt)Qc%DGukDJ9;vdfWdg= zmhWeh7T!b8u(9oJnJU!Mi)wzkDmv1atn0Ry(PA;U~I{Z3(4liCG40##_xwB@MJpcMRwqwpOT&J z-{1EFnjh%u<6IEqdX4qk=k0ql>!=6LHQ1xX7BbK)X}T%$ppSQBiEU&^C5;CUY-jxs z?Ow5wOJuOMHgh$Jz^D2BRMJ@mZ3=bMq6XV*I;)CA3QN}_JgiS?v(CTl!^ZVfe&82K zmsT9)pL5)OHKBg|258`nLcHO~n`ud^d6e`Z2lpiJt z)0=7#K*ZgTyaxpGmHVyycSZyTc${hXr7B7Yt_kQ>0582O16XcS9I&9eGNR=Og}JZNve4m?`*RCM~YG7@2b&7H2i0itRpn zH2brSE`N;&EJFf`*cbSpj_+btlIiMJvnnNBTQNKx>$c@RsKHzL(~}ic`0>otTLHX~ zvxKOc^X9*TDpt0QTxsO zRLSyBE1bWC$gAA@CN>VsyiQa6^=r+yZ{O$V73hon-aMkt(k6j<_MXK=>2GCcD~JY z*Xe?Wqm6rE2a83-$PMMq*NLu#Wmy!j4Gv>Z%6sCKU+c+w?!|Rl0XkWtCZ^T1w)RG= z`1-+o-<{oeF7<)<*tm-mZ>Cz&A6?HT#Y~AFZc~m#sg&5rY7{M6ySg^y=sC0s<@s~YZ|!|6mIC#73g=&TkSy`rM6E;O`jia5CR9kefqmVs+J7a z6%G!cuI9RL^AjHk2oOJmp=;(X*UjboUUxZd$TT*vPR-?=b3h+3^Q7;~=E;5UH?P>5 zSzcY0Q5{Oh=NsS1a-&Po<78(aD&q3#-^ui(2IoIYuwD8K=T$`)mEMpVmElp20WJFl zHwM?Lo}JYa1N5G@qvllV`+bk^%>zt}WkCg8n-x2wgIsHFf`~2CsqSR0?xh!7P95i3 z4BF!IQ@M?K$KON{!w@r}kqN<6+^)K!OYc8&yFJO9;xTnYAH=6UM$C3Vy{3YyeO~NL zmE9qkEnT9I{Ww)k6x7cCExdgfmr!GDPeHEyy7i1jMOWU;x)G*D9#YcCzc$ZpKFue+vqt}A(H0lMR(Zhb}iob)$!6@tyGNG zw#nn{^{1fYz#$bydcJ-83We&okia+&uyDTg3qqgG!}A2u_3Ag>UTZnPwRe_unDpLNs7jBPKuzvg)u7+^E=d#}B_tD><`jJ(x+2&oE_SSknCp}pr`m*(j z;L_AP9oUg{3l%WA7~o|~6EEoHG2qTc($N>p1<8o=6VW{W;zo0Pj66IZxb{?jGxJ|x zht``JU2Q-ic@`()g914mc&qkI~nmi^U<0bFhNJK~SIw%{Y1fv6kzLQdww+8sb#5 z-#~xf?p8VO+D7Z;WY?jIAZN50e3uT!=mKM9XP+#pNxh?$3u_MNQO|}QXf*LplRXJ` z4J+uQQQz$|6y;D46ASIjQ^-{~y`FWrzh=w>udRztjLFz2B{-Whs2&PtswpqOvNW9) zx4fu`$bwH)P&GBQHMDZI*^PMjQQGhc2pHUrhj+&4Bxxb(tgQO>uN!%RZG15mmGIhO z+cI-#`B|Q?njk}9d;2PIb)jqus4ascU@g2BgF&6o*Nuifa8P9waTp()Y1`fq_;zd4 z1?F>2aAa3orI&PAUWQX^DyBs-F=6y(8pZS^*QRmhY?H-4i57BsALpQyRx2iJ)O{Uw znZL-h)tLwJW504XoHKN}$UZ`Ld#dbxxXReHVJUy1_2^dw4_=!E%Ex|l4K^|hd`VI= z#SfzHR*^`_G%7pOwZy(%10N|VeLI7jb0XtM^NdBg{rHq7;{8cpF3SG(v1hnNNu9@q zN-!U^-;DLKolzMLsw&%CB=#fS-B_^D?Oq(6h_tCJZphXtt@jtmHf*h(Y-00(8?GD$ zSwYn0v6j761w`z!l?A#orSPe}AZy77<&W~SLk}K5X`J1)&dt|JYutFj$+1%Y2z~Lq zRwWjyqoMLu_<9WWGQ;hT_UC5^+C^Yg0?)aCv%Km+=@vaDyS3P?R>=Me&2$5v+}Vyq z^1)FtQaJ);*LwH`g(9YK&u6dYzf{|z0wGR5u%*fi)sgf_L}qZO5z5TUI;}Qj=Kozj za6I;gtMr~m-c;v!kc#V~o`&08_k540;HW)Go-HnPBpu%%(w{O%s`u!8%EK-t2iq?0 zSreiqbcdr0*yPX+@(ub6n%_Q#JRQj|e$&-s>-0J+281eNJL_jQ!WACa?a9Fn!9l2) zVxi~aO(elAbV&>kjNiv!$aX_tsSwEej@Wwvg5&PbP}dq!$NW`hx5u$A4-WELU2~0- z8A7V7uF>}<7}qUU7s_YCZS9qlX!rKlf;;6q1P*3eq4s%;+{cDEIyw>K){-17ndj6R zE!|lP!fTA1NB{>f4Rc=bxV@2Ch4W9Za?%ZdqPP9&3b>M4O|B|~X1^xM7pXYxIG1tv z@DPuL<)KI`TR#R!m~bF22jM5~g5zn{Pa;{K>2{4z&|K6M<7W`?3WWe-x3ZY`a+AAU z3ilA(l_~)i$@hb)cXjHLZbbrXw1%}1aCyO41a~|+Qlefoe#|UUzR%tFi zYm2is`Tp(d_HuQ+ghYSH*Fq*9WsBh`3DJ56SV)uGh$mMf!)saDrtM_1GM9;O9Pm@7=Fp;hkQTxU%HdUA_>oO;2q+5k{-Y>`0q9Q^Vzvi~6p#*|zv@nI1 zqcMZlGd@WJX#L8MUgwYRtUkJMFYDSJw5Ygt_-GDQvKTCs=|1bmiIj_W;tY6vm6cTw zSyoN`%PnK#+43&%JmH}sik;cUXb{Mp(86iU`(91cEiq@csQOAsM#8FO4pX_q^KyeV z3EHw^HdoG@u$P4Ftrd-A6>rcVN3l-Qyb%&&&pDsz3aT`6N!-u1$ACf#MjWQ!(eRPm zYdz1b$ila>vY{#5(0QXPtIkF!#ek^Qg*z-#5;ybXFWe`YWPQ`5vjQ8J^J#^KKob8rk*j{O<>>CdzBg%T-Pzj#41@Y z{os6D@Zb#$7UskC5e%1quJut|xm5ki(B6lf90MgT|EJu~Wnu3;LU-fX&oe>pWjsM8 zke{`=yu1C<`qa%z##8Q{NBG#i=K5<0BkvKQX1sxUk^oiXUxK=9Fd?MJ{0-;TS;zwt z4n%^DQ-ALa@oW+aNGDn^av)w~qfY-P#Q;ep`1CgHM!W^A5<8UKUFLFoFG5npZ-ZsV7c+83~Ho5UrO#0H8ph<=ubR(l7iRXE$-x#MayQ%20J+0z2w z9=2Ur94O>SmWxD+OVVox*!Iv0*-uO~uoc3Q;sK zA9~p#Ckv>&VEw#_!%k7=(+g^n;I>?SQ&&G9LYKt5KJGuO>sQH3P5Df1=ejc}%)FBu zt#$2G0%-V$$^_nY@tea2idO=hT@1B#^B^b3;(kGgZ&2&Tz8(cbjN?A3l*GY3jzkX>GS~8{=v^-Sv~h_adfJsS*UW?;d(I_w#4z-FjvC|)F(kp;S~sa5mEf>8 zFgCvCpKL$#LuIivYfo9ByiR>SvoB5}&3xdw8MVU&U*CrONcs82&&C}FG<^GY{AT_6 zUz*Pa{(LEe|Mlb$T@)n~eD>{)mK&nPWiOF`B&s9!uDh+Po7-Z7`9L5s@t#`z5O0jV z?z%tK$b)ey1`c?~6jyrNz<}XwXG(@T*AEt<5XJEl8x*0fO{*{hxqtIzS898O3&mqx z2;{AY5lWo4OCFk&lkB)j`w;0GU%EJ(uPZ?QX14QQBU1p)2<6390R^bb?)i-k^HFV;YM&rF!OfAC5q*mYN@0UeTm@0#mj&1m z$UQ7n4Q5qWCL9|*aMTBiw&G<52SfO5;MSnq9E4!sZ={*fmdP3?^!<>$W=r<1*6;7fpU zIT!peo7J97vRS0NFwC9vbgxoecA_(%CYp61pX)E+dgO0<3Uc+Bdw5*4)DMm-|H$C#kR1hjx%vwkTl?Yu zG$Fh~puRYw9>ByQJM>0cmhHvQls%^*inPaLemzp4Q(afKzlyuxB=M%O2tHB^o?fxe zwftE~NLP~MSReS(`fFY2Q_p1GV{arxHixw+59ML=@os_t__T7ch3kSo$Vy*%!!;&o zeKti4sgq|=RI%0)?%bTCmt16O$Iz85AF#T)nX1ydHSBaS-8@kBxVKDz?Uub|yri7t zhU2rQFtcv^dOCCDA?y*_Pg>e5{UVLiwW~(AtG)SuAZhrcr?M`R7p4GXf3~|G%5CT> zRew8+*ZfI-Fxv;ZeRcRjvVM~&s>k2AVZMD53kHE<3n7GdCep_1-5O`d>s&yZ<4Ew_ zr4s@Xx_5kBr;QSVO{MZyLF(I^k794Gd38p(o*KPfUn+WdOLw3!s%S*>_9gc$s*5)T zSy*1p^3*E}-^kH!3|W4h(VtD`O+b_9ytC-(x&Pyb1G8jV3w0Kf@o|}W2LkG-K-Unc7Qk9ueWC)GQ`BC6&y)H3EG?G9wK#Yc5`dGOH9*c7X^W)3xG zH?n@RE>wzrX)v3m0d6ZzByXwBLVxf>wJ)n@;bw!ysHtYPbotl}t8p50+c{W|6anPx zt0P!oRJ)PcmR{!KWU(6B5Iyp+H~VLiQv5JJA-(f}xm%~g^8Q__Mg|0IV|gW21?gIS zMfSZ~JctdNNQx&l)apeQP$6e7HvySz3@-UmSur0}ZuFYaiq5}5kU0T(bTc5Gu~jy*Ck;$V|(YDi*v=!RgV^u2F}LG`(H zm+orr@6L5D3~-h2OhpmWol+hD{74F3wlYN|sOGNhcsQiplr&C$ zws%TP<}&5k9w)4XvWDzWay@l%p~*MtVqrHUh6njJoImee?0Vphg>{f(@%N}A`49wW z?O%5%B-GOQ5HZL?J-bp@0b{uB4I-w$wJsq_oGsH%PSpJFYAAbGML9zna5$5|aRkg= zKMsBf$}|ZW1R`-HdbRn@Jq0MwWT0?-tX6s=vlK=ZK3m%?=W9e+mNZ~$wU)IT$q9jw z1K0q#UC=UsrbbiW3tU~x8@_)Wp$hMR9T`lkR767{-YG`}r#$fDE_(2{NB=qmV6_Ud z;;c<_&e`M-V;$v<>Z}-#jtP7z%x$f0_n@OXp;(iCuN}n*EfTf=c=xL0yBFlF-@N=g z+TB`&K&sA3!ERKxoad5BCK+c@+|!k8(Gy_K{fV8nky{n- zci6JgzL0jsN^i3po#3u;iFD+U{LKq@4L3Vqw=` zcX?PdQ6!My{0Wq}XL6prm7nmij$>?V#~2ypz8T0C(#aD@zAz%LVw^Z(0tqJKVup@` z66d@JJ$EE}oJ>!*fD!Qxyno^+KrHTj`TOgC;`?8nAEzO>M{xG{w~x^`dNa`a)EyGH z3;&K|x*D;34t$9HgC#UKAFQ>uS>F?k_$XI;@~*^m_JZ35)(B6}@ACKAKis@h_9%_7 zj?5&O4TWLeU%&pIXNdpCud%%Y|8OlP=3xJ#f0}@zs%qmL4@^f#YF#$9w%9k?^#!iS zt6<~~%XnvMQ#e;RJuHOg;`1NHfkxkV1OMIG!NJ~X9D)zRdwT%CQigZmRB3Oh3osPj znW(`gx~zQFVYzZbzv(79*CB}V*pnp!A7-TjC(htp>3eFT63X_LUiiIHQAZNpQV(28 zTYGG#ZBHSF^E`pDnTGOJ17M0u7yj(&Yth#?ZczQh!w0Z+vf!d7w9qhB4UNaDswHr( zmT&Kz0`jINn-X`gi*=yCypTv=oTflp>g@LAdF8hR(ovit9BklEeyVRsvCwZLCdz5n z)|pz5+>X0BvfPtf${*R>u)l)>^ryZ)8K>In8zj<}!m!d~UEqcMs>{W5SB;GY2sgjm z9xj$j8NoZ_eMyL#BWza3YIR{Wfa%|Q`dLHg+uNsrdkpdP^J|ok`oEU(BLxh~CSWzU5BIW#~ht&v~}6Z$GQe85B_M ziL>Jx$iw@VmNz9XG#Z-rL?>BPtVl{|ym;<)*XKE_nUX>(VvHDvu|mgW7N?QZ`uy$& z=w1Xq+?p@K0du~kGQukiEDId&nwKZ0zk-`%Gv~yjaL97$QVd2CjO7!!2L&tK)@f=s z9qsDanuR1MB@3;skBQ`4*j{T*UXcjFyLu(t@fR)bt=*eFXc%rMig+g<;`z%Z%F&Gxjm1d}3=}S?7G?5Fkes^;tVev`?qej2 zB(%q;J3GX!@DADG z_O*q#NhTEzUoIgo$Ux&I7dnb=_0o(8L6cQQe>fxd_usoi_Hak~envY8cI}jtANoDY zynQv3L*oNIjZ@goDA&6OE6cVrN>58o7Knu2rjG>CxBGhh_Oz+kufDa>lJ{*_793QM zO(j!@-z03uqvA8$`fvkxbN)-QvxB!)Y5;|1uhV|9Z9NlUr4@#GsKUb@w>0m{t!u6B zeiBOs8cdu}je1m{x~8VD$d;uK(KI1-g0NiG`pi2XtFcRu?F?FN=WJ;y(=Am2Dkdh)muB@ZhZr{;M$|2#L2*Gd*>s&Qs6J5Lpe%Ik7UDXy zB!4c{c{)yS# z%THhcI?=oPHlMownlJNoNG7ojb{yQ{a-1tyq&h2Mdjqf~c)88D5mB8g&qg2qjjMNm z45ES7!Wu5LzZ}>qvd4P!W-v#D(9VZL;|?HJsyXd+1zT8H;584jGt5xrXkkxr7&vvn zMf4kUT17>rY1+eq+%U1jeCyWEbj+IZi-1?{Cxp}1RBw9SrQ^`k`R-v^23qs2{B0vjab|MG zl%>nL(j(tQg=*l5x9&k(g~KH~Or)i$_9p4NRWl=bfoq>?Iry0LGcGO{$Q-}}Z)X5S zYdcZat+|1gKt6IlMq@{_ip*5>`TsLn9VHdbeo>z|IPqqOL+v`1UK~1f` z==xjR5s&k<#leLzyUf?!gL%_qvRsdZI>+o=cVFeG7Y(Fj1<|Ul2&jmOu_EsJiQDq$ z@4O!)Mo7+9%zs}7 zWe0bv8L7=b=Ejbpg4w=Y&K0wK7F^MmL7%odjCc0zzXEK2tVA&EP>KJ5qpGN<--ktD zXYlx;-yjAsPbphYJg7#HwWqruhyA~u(|IPT7pmg%xaJm^to|MTzs;-out-uCOzZc~pxi>vKV2ePt0^m9#U>dYFHNEL_B=O_OCLYdH zm0xbHLv;V(s6bQtn&O>Q)4g)Kz63b!A%*GllBrnS3m^Y<{Hf&C2g*n?K?}8Y^C0gY z6txo9**0;_E;>gD>+8Rw&NOb$n1S@jkJocflEXisaTd3q#p7O(OPJdKfqn1vpAmhg z6?e_MoNKjoc4@Km;?E(1wwhC)X&uK|AY(_R7)SUn@EY!osv_t?8if*@bbl;O4A8mZ3x6 z8__&_HLOx(9qTRKA5^5V#%K|d?`RXQvb-hFUR|mBkI8A!itlHrHl;jI$4WS=!VzbC zU?)dMDXx9JTbtl-BRPA%jyhfJA29bN@SNHNfA8l11=52g;N<9?@T=+K$K=PzFkr5L z>(U0fkSg|{!E0Z5S*iMp_ayfMd=>5)VoHDB|M3XeS-{yJgJq`cl&0BdfFa#_D~}<) zfbE?=qfqPdryXu?8rO(IdxCRYN#Hh$n^-l*1qxAQtHk>aqe7!JC)Hdb_kaRx;;D4e9gj? zvdHN1=;xmix7l&n?yt_MGZ1Xe$^@_t1iUWEVTki(jA9UnKvs@3s&gC}Wol!StfQ@`4eg-Bt`3$`{Lz`G^YS-mqceQ8gl|hWcw6B@E<7&Q zKFS8&A*D1H;J+Ex=Uxv8L=4d$U@k0Dv?U#3G@S_e;5yzQGp;pxuAIG*y733#rPvp)98 zl&t6heS{~{j)@WQzun%kxTZiu0;z21wNh^+85`r^u*&053U+tWlk=`|9|~b4)W|-v zsgnd5E9Fd4^H=KM2M!D3?*G64V8t)m`oneJgLc2du(-fec)~6o(1Mc3o0TcxnZFxj z#g9+I_}@Rq1eo9uuipd3M3z1L`bu@t@Ar6P#;$X~W{+;ZT2I?x7={W$f*H{s#oIZE)KRpxXsYrTy? zI&2D#ehUp;$XA=+4kKOX-zt@wUXjH?pCKE!fin#$&)3Qbz_j8Kx_0&yiAC~lacV}@ zP;ZENc9pww5!!A{1ZM>@pjp#`XtwZN8thI%6i=8y4Ea!SjCG8do-!K}|xia4iRHREWyP5#!WHr4cDIeT&c(WfBp)Bto6&)!>q z!PAas@Bdq$DigjoD`lcqFq<;YTVC$+{{1=g%~T?$vP^h>X&SI>wP%+e#&T`!ohJUL zf9U>Ewqw4s;!w94dspiVARHBhHzKU$4pIt?+5l5U8)^Pqo~khFNNVOY+YW#O0`Wy8 z+1GK)%D>!Vp7(!wK<3}-lzBHTYD21GibTOb`o_4r$^K0IqSNfD&GvhP?+XI-q*JIoDU!I>Jp*46Hs&8J2S<920@%m5Y*)b7<$ z?<~zbZ}ydZ{pw@hz5gOlaQpv3sT!34te&9lJW>sD4I@!?#n#ojg?};Dwbo7F3<+Ap zOz$K#0QEMQoV~aIA0*#xIp4_0i+wYd1w?XwkufG3CTA$vRbK&bL35%(0C*-wfwVE>3vvmHy9$@1X3a%T8Eg^Sc=If({RTN<2KAkw-8 zFk>WZlQ4jS=Sn1pgnlf(fEK$}zW?oJfSWKNc*2v~@yIQ&=1iv6U$C#SD&>g6I}1G= z#{1VN4CQYTYi?}hJzRf5KFEaE90j}dABX^Hs@}l=13wAAu38>=T={GMLYSfcb_XF| z$+}%HkDE9G$V(Q$(JA9%`aVX*$hu>J%Vu;JNA?dW1j_*XN6X6Ol5%wanx{hTXY79s z_sZc$sp|n3A4iOHZevr^9QqI*V5RRJ2J4$);(BV_yX+0lVtkw{Pv+EzzL(7r1tN@} zVseJ0>(-{+n{TL&o}cT$GdJbFyY(fndAI&hC+f>1_ajQsF%Mn zw{Fec_)&aQ&n_Z=V1}upwWg*C$h6T8Q(A!NK5l-ox)+Zy8y?YZe(F+>Z5*v>s;l!e>yek5Q^WX##1fHUW!~vihAHu81hAuX$#RTE!@1p586f za|7lHjlDS?0|lk6i)<{Bw2?!S6|D&gRRJ`uW!qzdSrxlCOk)|=K@q|a*$#}9X8Yrt z-A%`JpH|^5@-)BJ<_(CO-hr4K?o$UZ!Zh3p0OVH>UE}u@7f9zc}gQ;}It{z<} zmw6%EFmIuHody3wG;LGVPbJL^Er&@m7ud&@uOpgYkZdst!BS-!kqnE#qZ2K6meLdx zfs-3u;tF`vAFahFz;f6gR7CvX3Da01agb~Z%TQyES^Kt*Vp~FrzIKz|P!Lh8oo$X7 z0^wTvbGn9uCtSDa-L(-nG+Ww$%hA~1Ed?Ju1N_DJ?u;cJj-p{l=-x|LpbkaCEl{7{ z+1@m6uL1$u80y^mD_Sj7Z5w%JTZ?YvY}t3#sMH@8W!gDA(?2SN zw@ya(nkSrV#j@3ETg>S*pV)ggBV}7b($8HwcN-0&%q^n?#5#(5Jy5VeQ`5zN$uBTU zZnlBtc%2V&`WBLgg7rRf?+1j(1O*W(K<_T?$_~)LVY^lKBGS_VE;(idKzGCp^`r|_7ABIV z0Krdgo^KW^RGRgz7jv{Dzq~lu)ta$aMYu*7iq^n~qc(g*^DTee6O7ff-x{ht*h3?h zPKrX3M!q!5MlSeeY3cI^KM7!5Lh(elNI*;Mx=2+;UnR54Nsrg7amK{J7;% z3Iq{c`^_POL9F;BLWQTu4D}IihgE(&yq$Tqd)>E=i%Dei#v|b^s2`WydE47<=Gs$N zTiq&}V_r{41|2SYQLrdYuGDKC){EXT8mOnIsZHhqk{uqf&3<7%@V}?EHP1x02Gs#* zpx%4FJo;`w^)(iDwAGJqw(mdK?||UEVko!xC3!7ei{+NRF>a~uwu3AmDrsdx6?Hyn z)#PA4uXWY>4w~HGDXXKoXwlx0Co*B&2ich@Av->?z;X{tKbmUCZ^0&=Vu!P{@1gVD35>vZ=38JEXpmWYz*pLHs<)xpPiAi!425A z2c<6vq#MIy1`+4^-W;^;a(kd%=>DFAo=xdczJLI^VD***uYl8Lx(MQ}P0&I77Q$Th zU__X~v0T;;%%Hb6oP~aIttzoC*#8Y}H6RNy^8vTwGPQ1SsAd)RUEM(4sLn-80Zj*kTzaPhU2! zFe1F^pEKm(RB|X>)#SE7P_7G~V{mb?^R-C)6)!-K*_Z2436k0Fceru@r7M>~uQ|Y@ z>Zi{7%V3prW>Z#oaUjr)@>q(4y^*=nWFm*I;!f`y{GEY-dBadMxxiSyf_Pq2kuyYn z>Si=0$s>OELLm8jh(e*(zxTp4Di`FFb@Q2zra9Bt2E7zh$JJ+=`^ z8Cd`T<-T1%`V#r=3;)C`R?R(dOgahRqggw@g@vCLtGnTEh;sx)K)OPrm#16L@y3Gp zGQf>MxqZ#T$nraRKk}D5b47rSLKZPQJ4qhKib@23^Cn`9aL@i5sU-zo%hJMdQPMGI zM>IPxy3)nry*{b7IoTkvivcNaSKiHtcg|Jld~g5oZY`ySUg-{6j(N&K8=^8VMkIEIzVnRIE~q-Zz_!K?k~@Vgk$tsIJ)Ib^-k^7sq z8=9lD0R>r?cwQFDV`aNYOSC9CO@*ofc`YVkXsiOp1V(myK24UX47)lDe;Ymr)vM>= z9+nYK2p!^?XcfcWNOvxM#tQRUfS)JdOXB`Gq>#(U(tiN@+QHZzY`Ehn9p31 z45rwPW;cCjE@kHNUBJ~R1owMdKVbgl8nPPaDEu?`(cb&aG+V>VvtyRv0T1v%@5i6u z<}XCt6SQIV;yv>$&Z8ufn8kN)GsvHl62*28nm})-kGa>ARfavLlFOVUUmS8NK&RO+ z)+i^)|6+@UDR}|(w)w;air^%nFGtvO)UZ$qeA0*`BI2(_r;5N~ram(;h^cIQ5cyXZ zN4sXKQULb1U7BEbZv<^<_UzxE&z+m@khZj31y#{eFq@s#$#$SD-n~Oe-9t>^g1vl> z>&g{*%CfvA+7fBqzB<51D)tNyN7x+6DyQf<4kz@Dw)5 z-*?FFu=XU949_gZT-W~EGBY#sI8#V}a3Z45g@fjw`=kO?6mTod_E_hg4S#T3TDD2Y z21q7e_#Lg$9A(a5tWU0pIf1ax48%)>pbAjOV%75GHOqkdtih+_VLOu8NalUMkBlN* zPC6weWxmFDe`VZlf<_+PQDYu|ZfyL;)kTJ$R4_O9oN;h=c6Ay4ZpC#Xkq=S9%HNSu zqM``GSA3YOVf}cf`#ng)_7;46*{y{paJ?dH=xJZsX>=WTg|1;k$1mpdC}^w8)T>j7adnJy+7iF{VoJfZJIY|e`miTUl!P|wKC$Q2c7dtF*8Ioy zIvO(NieNTyJy6hQcIDHj%O=V8;#jZYA0ixI=Hk=6ay>wG1hqzPac3yJA!KOb;8%cR zVd0VbstU8ue+yx)2aD~rB@b?(#XmG$$X7pi)zua6(k0xE4*dDW#_fxBJ!8Lj{>VYw zcm<;pK7Hz}RHhDjYNTnnQQ@L|lbb6KhCqwGdXUBXa z(PiC^23IrQi<`~&X}NLyfTxJk56iQDHdV#jzBT0P8d~3=rGie((fwn(f1T4{a0d>Tpgo#J$8r5$#I2PJY130-%WuV$U5!%_ z4*f@p;9(`M6j(ly-I`i3d%k!q=IXH;A&!L zk!7{_0zLQCS8$OcoU1jv@6j}y()aC)eDz6Cn`7nEj(_gNQ%2o~;!`9kMA~YM-0{71 zWl|`OLC9Vj-4F-}0IiW@NfPn2Ml_WQW?eKyu%Wd$;^s@}-UY6!G%xOgaslg!-I3Qx z^SnTi?Q5!gP3$zkXaZ^->TDzRI)Y&s#(S~^2zb9dGw2Uol@LWop;5_Dqs65@ZsYcZ zY6?!$j`h|sU=sJy59i-8e@QPN)ExcMv%ohyheF|iLKHBu1n1FFR+Ymm8A7Jr(lCFq zSGJ2ok$Q!P)kI6*zLx=JiY%z?Evs^%%i&G~s3Ezk*ZlFt`{Ybu1>m;KTclf+CtfJg zaITbosdegWmi(lZE6-oZUcI+coaFPD4>=+qj!a*rbp~Aj9L)YX4+=(hcCI*WYB-}3 zU7X*=XzjNrBBv%uwaQfQ&t>C2HQ&@OvM5s0VgOg3Bs{?_J3kgu-+2q8wJWvp^YcvS z6hJi#zj{pB?(E^yQqJ~wb`{U}-%z0ML{3bGp2(?1Q(varXKZ9;8daHe0_Igb!S5Nc zW|klB2GxasvKQZr&3m@y2gGZWvnP)GI2NA6MV&UGZO8l!!LQohM}Rz0VMKJYq;?$f zMrEZ~-|#_91a|kY5Yt0;4_bf+K;mDh@#vcg!PLii?g%SA{g*#K4$LK|j-voZf%y}g z&w&_p+2)Ap?77vB_wDpi5Y4;|g5Yn-*rw{j%RIrXnCbHQ6+i#AU z_#ek?8;Jh@=;8!9|3AEUyqcK4$vF@hNznhN8)e7d7iefm#{o z%l=vLNA7PG6YOw{7E*osa#qPw?Q+S>PRgzX_(SDE-gmxh*yewPz9XllG`XSfke6V= zzx!Uih|=AN32_a#zt|UZSq7sm|5~6&nn>abVYRD2nX-ubuN$yRsD934d{eT$v7Cn6 zcC~N0{8GV5;ofg@@1es1OPxWj{}aj$pTnObLw!8tT?s^$^gB7VFt_Pb zixF8P7)jZ&ED-29thmgkzjV)@{lzm7dXNFU0g_JYHL1t8fL8q_-e3|rUNzTe?=Zhu z@H@5pU+*0D-Tb`|jk)`R6qcBroiB?vZGsYXpcvBa#WWW&oFXnAWd@jzxn-^zt8l1Z)$q;2qX6tlhzzH z!=U!NGs|Xsm~nspM=RFX06|Bvi{}1LdPXBwtgF}6V))_sBQi)_m)f~4U1yF9r;i!l z6Az_!ruOyQw|zi5Ewfhw}lSD*% zOk*1D9d@=m_1F|2pgL1=UDS>X$9Ep@3V(QX`~E+2$5d}99(4hzVty0U%AI-lxX#8yH><$ZRj0@n7Bo{zmLU7=zl0f)3#_%cFk2H3HCn)Rp z%L`eiPRQEDi0hcD=h-^fVml`GROF>fGWG(s%d2?WTa!2pDShI02uliCttV$W<5#xiPe0qS zVdELfG>L=Xt-XVB^}iD4+q}i*NoSjo+@MqhvtXDj zIN6u~^Y_SQ;IhF*Ii{s?3LpmSfnFfld|Qhp~RI zu(z-CD{!N(I)r^pXuAxuR=?{ejaBB{N3{fj?G1ekP8VY$NV`5wH%9JCb`q%eO<<)$ zu@guDMq~xWMBSiBq)s08lVA4GNpI=f9NS?s_q*Yts}WIsC9<=2r++<|b++kflzNf! zH<1edCO_ErXVE)`A@CoSsHRP1(e=T7H->Aj!h_4Ayan&fwkxnIbKc?L{PcL_If)C? z$hKx$SI%)jC6jo2OYS~C%yKMRr!Cl>@_B{?I&av^EhY(7S4=D(%MO;e7pSmowlgn4 zKU&&a@KL&*v(JAH+*2!RCe_)I#swGA;;pM>Fq=lUr8IGXpaYfvprR@l++QrC)hcGu zn8LIPd7iT`hw;;0Aklk|&QPTZLxT{HxdX@o)Y{!tRoq$`{=W213VofwZ$W~RI~Gtw z^|O%bL~4Iad0anrT$}+esA6iK{IZW52e(n1+&a=QwNY&46fd#E7>te#7za{pYtQun z%pHSO0!@-J*HTkhKd3j)j7yQ7{B&1hw_h`Sp5J|(S1D%1n@}NA($qKE@XzNG zNyRBo From 616878e7dc57687d79b4f38ccbb7f7da9d9166a3 Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Mon, 11 Apr 2022 11:12:02 +0800 Subject: [PATCH 370/455] Modify individual PPP --- docs/team/aalghrairy.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/team/aalghrairy.md b/docs/team/aalghrairy.md index 54b932bc892..e8d5ba67c33 100644 --- a/docs/team/aalghrairy.md +++ b/docs/team/aalghrairy.md @@ -22,10 +22,11 @@ https://nus-cs2103-ay2122s2.github.io/tp-dashboard/?search=aalghrairy&breakdown= * **Contributions to the UG:** * Added feature definitions for the following functions (and included in command summary): * (`strength-add`, `weakness-add`, `misc-add`, `strength-del`, `weakness-del`, `misc-del`, `clear-t`, `load-court`, `sort-strength`, `sort-weakness`) + * Add detailed installation instructions, including labelled GUI example, operating system, and system requirements. * **Contributions to the DG:** * Added the Product Scope and Glossary sections * Implemented the Model Component - * Implemented implementations of `clear-t`, `load-court`, as well as adding note ,deleting note, and sorting contacts by note related functions. + * Implemented implementations of Clear Tasks and Load Court functions, as well as functions related to adding notes, deleting notes, and sorting contacts by strengths and weaknesses. * Added some user stories: * `As an organised coach I can view players by their strengths and weaknesses so that I can make informed decisions on choosing the best person for a specific objective` * `As an organized and data-driven coach I can sort my players by certain data so I can get better understanding of how players compare` @@ -47,7 +48,6 @@ https://nus-cs2103-ay2122s2.github.io/tp-dashboard/?search=aalghrairy&breakdown= * Maintained issue tracking for some individual tasks of respective team members * Including ensuring milestones, assignees, and labels were properly selected * Modified the Index.md file - * Add detailed installation instructions to User Guide (including labelled GUI) * **Review/mentoring contributions**: * [#20](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/20) * [#21](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/21) From 102d580f19d5cc4f70af03cfb5c543e104e1f62e Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Mon, 11 Apr 2022 11:38:32 +0800 Subject: [PATCH 371/455] Add minor adjustments and change AB3 reference in website to Coack2K22 --- docs/DeveloperGuide.md | 2 +- docs/_sass/minima/_base.scss | 2 +- docs/team/aalghrairy.md | 19 ++++++++++++++++--- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index e2b4bcfdfa2..e3512e20ce5 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -302,7 +302,7 @@ The steps above are summarised using a sequence diagram as shown below. ##### Design Consideration -**Aspect: Should the implementation use the existing edit functionalities in AB3:** +**Aspect: Should the implementation use the existing edit functionalities in Coach2K22:** * **Alternative 1:** Use the current EditCommand class to edit a person's tags. * Pros: Maintains abstraction and reuses code instead of writing new code. * Cons: Creates a cyclic dependency, making the code base harder to maintain later on diff --git a/docs/_sass/minima/_base.scss b/docs/_sass/minima/_base.scss index 0d3f6e80ced..0b455fcc0de 100644 --- a/docs/_sass/minima/_base.scss +++ b/docs/_sass/minima/_base.scss @@ -288,7 +288,7 @@ table { text-align: center; } .site-header:before { - content: "AB-3"; + content: "Coack2K22"; font-size: 32px; } } diff --git a/docs/team/aalghrairy.md b/docs/team/aalghrairy.md index e8d5ba67c33..29b52a5e4b1 100644 --- a/docs/team/aalghrairy.md +++ b/docs/team/aalghrairy.md @@ -1,4 +1,4 @@ -### Project: Coach2K22 +### Abdulelah Faisal S Al Ghrairy's Project Portfolio Page #### Overview: Our product helps busy sports coaches organise their overwhelming lists of contacts and messy weekly @@ -26,8 +26,21 @@ https://nus-cs2103-ay2122s2.github.io/tp-dashboard/?search=aalghrairy&breakdown= * **Contributions to the DG:** * Added the Product Scope and Glossary sections * Implemented the Model Component - * Implemented implementations of Clear Tasks and Load Court functions, as well as functions related to adding notes, deleting notes, and sorting contacts by strengths and weaknesses. - * Added some user stories: + * Implemented the Model UML Diagram + * Added the following implementation descriptions of functions + * Clear Tasks + * Load Court + * Add Strength/Weakness/Misc + * Delete Strength/Weakness/Misc + * Sort by Strength/Weakness + * Implemented the following UML Diagrams + * Model Diagram + * Clear Tasks + * Load Court + * Add Strength/Weakness/Misc + * Delete Strength/Weakness/Misc + * Sort by Strength/Weakness + * Added some user stories: * `As an organised coach I can view players by their strengths and weaknesses so that I can make informed decisions on choosing the best person for a specific objective` * `As an organized and data-driven coach I can sort my players by certain data so I can get better understanding of how players compare` * Added the following use cases: From 533f43e21570162cdb2b1c3a05bb4e1e42b706ba Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Mon, 11 Apr 2022 11:48:21 +0800 Subject: [PATCH 372/455] Modified PPP to keep with 2 page constraint --- docs/team/aalghrairy.md | 27 +++++---------------------- 1 file changed, 5 insertions(+), 22 deletions(-) diff --git a/docs/team/aalghrairy.md b/docs/team/aalghrairy.md index 29b52a5e4b1..50d71d13d4d 100644 --- a/docs/team/aalghrairy.md +++ b/docs/team/aalghrairy.md @@ -14,7 +14,7 @@ https://nus-cs2103-ay2122s2.github.io/tp-dashboard/?search=aalghrairy&breakdown= * Enhanced Note feature to include three different lists of notes for each contact * _Expanded `note-add` command to_`strength-add`, `weakness-add`, and `misc-add` * _Expanded `note-del` command to_`strength-del`, `weakness-del`, and `misc-del` - * Improved GUI of PersonCard to better display three note lists _(Strengths, Weaknesses, and Miscellaneous)_ + * Improved GUI of PersonCard to better display the three note lists * Implemented `clear-t` command to clear all tasks or tasks for a given date * Implemented `load-court` command to load background image for strategy tab * Required many instances of defensive programming due to reliance on external directories and files @@ -26,12 +26,10 @@ https://nus-cs2103-ay2122s2.github.io/tp-dashboard/?search=aalghrairy&breakdown= * **Contributions to the DG:** * Added the Product Scope and Glossary sections * Implemented the Model Component - * Implemented the Model UML Diagram * Added the following implementation descriptions of functions * Clear Tasks * Load Court - * Add Strength/Weakness/Misc - * Delete Strength/Weakness/Misc + * Add and Delete Strength/Weakness/Misc * Sort by Strength/Weakness * Implemented the following UML Diagrams * Model Diagram @@ -44,14 +42,9 @@ https://nus-cs2103-ay2122s2.github.io/tp-dashboard/?search=aalghrairy&breakdown= * `As an organised coach I can view players by their strengths and weaknesses so that I can make informed decisions on choosing the best person for a specific objective` * `As an organized and data-driven coach I can sort my players by certain data so I can get better understanding of how players compare` * Added the following use cases: - * Add a strength to a person - * Add a weakness to a person - * Add a miscellaneous note to a person - * Delete a strength from a person - * Delete a weakness from a person - * Delete a miscellaneous note from a person - * Sort address book by strengths in descending order - * Sort address book by weaknesses in descending order + * Add a strength, weakness, and miscellaneous note to a person + * Delete a strength, weakness, and miscellaneous note from a person + * Sort address book by strengths/weaknesses in descending order * Clear all tasks from the task list * Clear all tasks for a specified date from task list * Load new background image for strategy tab @@ -62,25 +55,15 @@ https://nus-cs2103-ay2122s2.github.io/tp-dashboard/?search=aalghrairy&breakdown= * Including ensuring milestones, assignees, and labels were properly selected * Modified the Index.md file * **Review/mentoring contributions**: - * [#20](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/20) - * [#21](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/21) - * [#22](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/22) - * [#24](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/24) - * [#25](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/25) * [#26](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/26) * [#38](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/38) - * [#55](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/55) - * [#63](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/63) * [#76](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/76) * [#97](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/97) * [#106](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/106) * [#109](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/109) * [#124](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/124) * [#140](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/140) - * [#142](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/142) * [#143](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/143) - * [#212](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/212) - * [#218](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/218) * **Contributions beyond the project team:** * Evidence of helping others: * [#197](https://github.com/nus-cs2103-AY2122S2/forum/issues/197) From 959a6b20a1619db5977b101a8d34061ead2017a8 Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Mon, 11 Apr 2022 11:53:41 +0800 Subject: [PATCH 373/455] Modify PPP to lower number of lines --- docs/team/aalghrairy.md | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/docs/team/aalghrairy.md b/docs/team/aalghrairy.md index 50d71d13d4d..97fa58fe19e 100644 --- a/docs/team/aalghrairy.md +++ b/docs/team/aalghrairy.md @@ -25,22 +25,12 @@ https://nus-cs2103-ay2122s2.github.io/tp-dashboard/?search=aalghrairy&breakdown= * Add detailed installation instructions, including labelled GUI example, operating system, and system requirements. * **Contributions to the DG:** * Added the Product Scope and Glossary sections - * Implemented the Model Component - * Added the following implementation descriptions of functions + * Implemented the Model Component, including the UML Diagram + * Added the following implementation descriptions of functions, as well as their respective UML Diagrams * Clear Tasks * Load Court * Add and Delete Strength/Weakness/Misc * Sort by Strength/Weakness - * Implemented the following UML Diagrams - * Model Diagram - * Clear Tasks - * Load Court - * Add Strength/Weakness/Misc - * Delete Strength/Weakness/Misc - * Sort by Strength/Weakness - * Added some user stories: - * `As an organised coach I can view players by their strengths and weaknesses so that I can make informed decisions on choosing the best person for a specific objective` - * `As an organized and data-driven coach I can sort my players by certain data so I can get better understanding of how players compare` * Added the following use cases: * Add a strength, weakness, and miscellaneous note to a person * Delete a strength, weakness, and miscellaneous note from a person From 7f2ed772a9f428b1aa551ea3bc1ad2d17257b41d Mon Sep 17 00:00:00 2001 From: juayhee Date: Mon, 11 Apr 2022 12:05:31 +0800 Subject: [PATCH 374/455] Add signposting for the features section --- docs/UserGuide.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index e9a041455d7..f414422360e 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -19,7 +19,7 @@ This application is **optimized for use via a Command Line Interface** (CLI) whi ## **2. About the User Guide** ### 2.1 Purpose -This User Guide provides an in-depth documentation of our product to help familarise you with Coach2K22. You can refer to [Structure](#22-structure) to find out what's included in this document. +This User Guide provides an in-depth documentation of our product to help familarise you with using Coach2K22 for your organisation purposes. You can refer to [Structure](#22-structure) to find out what's included in this document. ### 2.2 Structure This User Guide consist of six sections: [Introduction](#1-introduction), [About the User Guide](#2-about-the-user-guide), [Quick Start](#3-quick-start), [Features](#4-features), [FAQ](#5-faq), and [Command Summary](#6-command-summary). @@ -111,6 +111,18 @@ This subsection describes some noteworthy information about the command format t ## **4. Features** +* This Features section is an exhaustive list of all the commands and capabilities of Coach2K22. + +* Commands in Coach2K22 are split into 3 distinct categories + +### Categories of Commands ### +1. Contact Management + * This [section](#4.1-contact-management) contains information about commands for editing information related to people. +2. Task Management + * This [section](#4.2-task-management) contains information about commands for editing information related to tasks. +3. Strategic Planning + * This [section](#4.3-strategic-planning) contains information about commands for manipulating the strategy board. + ### 4.1 Contact Management #### 4.1.1 Listing all contacts : `list-p` From 6bcdbff7cd8d654467c08f195589e82087bb0ea2 Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Mon, 11 Apr 2022 12:21:23 +0800 Subject: [PATCH 375/455] Add use cases in Manual Testing Appendix --- docs/DeveloperGuide.md | 90 ++++++++++++++++++++++++++++++++++++------ 1 file changed, 78 insertions(+), 12 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index e3512e20ce5..1ee209a8aff 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -1319,38 +1319,104 @@ testers are expected to do more *exploratory* testing. 1. Download the jar file and copy into an empty folder - 1. Double-click the jar file Expected: Shows the GUI with a set of sample contacts. The window size may not be optimum. + 2. Double-click the jar file Expected: Shows the GUI with a set of sample contacts. The window size may not be optimum. -1. Saving window preferences +2Saving window preferences 1. Resize the window to an optimum size. Move the window to a different location. Close the window. - 1. Re-launch the app by double-clicking the jar file.
      + 2. Re-launch the app by double-clicking the jar file.
      Expected: The most recent window size and location is retained. -1. _{ more test cases …​ }_ - ### 7.2 Deleting a person 1. Deleting a person while all persons are being shown 1. Prerequisites: List all persons using the `list` command. Multiple persons in the list. - 1. Test case: `delete 1`
      + 2. Test case: `delete 1`
      Expected: First contact is deleted from the list. Details of the deleted contact shown in the status message. Timestamp in the status bar is updated. - 1. Test case: `delete 0`
      + 3. Test case: `delete 0`
      Expected: No person is deleted. Error details shown in the status message. Status bar remains the same. - 1. Other incorrect delete commands to try: `delete`, `delete x`, `...` (where x is larger than the list size)
      + 4. Other incorrect delete commands to try: `delete`, `delete x`, `...` (where x is larger than the list size)
      Expected: Similar to previous. - -1. _{ more test cases …​ }_ - + ### 7.3 Saving data 1. Dealing with missing/corrupted data files 1. _{explain how to simulate a missing/corrupted file, and the expected behavior}_ -1. _{ more test cases …​ }_ + +### 7.4 Adding a Strength/Weakness/Miscellaneous note to a person + +1. Adding a strength/weakness/miscellaneous note to a person while currently viewable person list has people. + +2. Prerequisites: Contacts has to contain some people. No prerequisite on all people. + +3. Test case: `strength-add 1 good stamina`
      + Expected: The note `good stamina` is added to the strength list of the first person in the current Contacts list. Details of the modified contact shown in the status message. + +4. Test case: `weakness-add 1 bad stamina`
      + Expected: The note `bad stamina` is added to the weakness list of the first person in the current Contacts list. Details of the modified contact shown in the status message. + +5. Test case: `misc-add 1 likes ice cream`
      + Expected: The note `likes ice cream` is added to the misc list of the first person in the current Contacts list. Details of the modified contact shown in the status message. + +6. Test case: `strength-add 0 good stamina`
      + Expected: No note is added. Error details shown in the status message. Status bar remains the same. + +7. Other incorrect commands to try: `strength-add`, `misc-add x`, `...` (where x is larger than the list size)
      + Expected: Similar to previous. + +### 7.5 Deleting a Strength/Weakness/Miscellaneous note to a person + +1. Deleting a strength/weakness/miscellaneous note to a person while currently viewable person list has people. + +2. Prerequisites: Contacts has to contain some people. No prerequisite on all people. + +3. Test case: `strength-del 1 1`
      + Expected: The first note is deleted from the strength list of the first person in the current Contacts list. Details of the modified contact shown in the status message. + +4. Test case: `weakness-add 1 1`
      + Expected: Similar to previous, except the note is deleted from the weakness list. + +5. Test case: `misc-add 1 1`
      + Expected: Similar to previous, except the note is deleted from the misc list. + +6. Test case: `strength-del 0 1`
      + Expected: No note is deleted. Error details shown in the status message. Status bar remains the same. + +7. Test case: `strength-add 1 0`
      + Expected: Similar to previous. + +8. Other incorrect commands to try: `strength-del`, `misc-del x`, `...` (where x is larger than the list size)
      + Expected: Similar to previous. + + +### 7.6 Clearing all Tasks from the task list or only those on a particular day + +1. Deleting a strength/weakness/miscellaneous note to a person while currently viewable person list has people. + +2. Prerequisites: Contacts has to contain some people. No prerequisite on all people. + +3. Test case: `strength-del 1 1`
      + Expected: The first note is deleted from the strength list of the first person in the current Contacts list. Details of the modified contact shown in the status message. + +4. Test case: `weakness-add 1 1`
      + Expected: Similar to previous, except the note is deleted from the weakness list. + +5. Test case: `misc-add 1 1`
      + Expected: Similar to previous, except the note is deleted from the misc list. + +6. Test case: `strength-del 0 1`
      + Expected: No note is deleted. Error details shown in the status message. Status bar remains the same. + +7. Test case: `strength-add 1 0`
      + Expected: Similar to previous. + +8. Other incorrect commands to try: `strength-del`, `misc-del x`, `...` (where x is larger than the list size)
      + Expected: Similar to previous. + \ No newline at end of file From dd1fdb27f2358ca0d2570f99a63e8eae21767dbf Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Mon, 11 Apr 2022 12:26:00 +0800 Subject: [PATCH 376/455] Fix bug in Clear Task Command --- .../java/seedu/address/logic/commands/ClearTaskCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/logic/commands/ClearTaskCommand.java b/src/main/java/seedu/address/logic/commands/ClearTaskCommand.java index e13d9d62a87..1f1cf3681d3 100644 --- a/src/main/java/seedu/address/logic/commands/ClearTaskCommand.java +++ b/src/main/java/seedu/address/logic/commands/ClearTaskCommand.java @@ -56,7 +56,7 @@ public ClearTaskCommand() { @Override public CommandResult execute(Model model) throws CommandException { requireNonNull(model); - List lastShownList = model.getFilteredTaskList(); + List lastShownList = model.getUnfilteredTaskList(); if (lastShownList.isEmpty()) { throw new CommandException(MESSAGE_EMPTY_LIST); } From a60c3309ea705c03cebbb17a20e53cbea1f240e4 Mon Sep 17 00:00:00 2001 From: juayhee Date: Mon, 11 Apr 2022 12:29:33 +0800 Subject: [PATCH 377/455] Add DG writeup and diagram for DeletePersonTagCommand --- docs/DeveloperGuide.md | 27 +++++-- .../DeletePersonTagSequenceDiagram.png | Bin 0 -> 32790 bytes .../DeletePersonTagSequenceDiagram.puml | 69 ++++++++++++++++++ 3 files changed, 91 insertions(+), 5 deletions(-) create mode 100644 docs/diagrams/DeletePersonTagSequenceDiagram.png create mode 100644 docs/diagrams/DeletePersonTagSequenceDiagram.puml diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 2e2e39fb28a..d0dac32b79b 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -290,14 +290,14 @@ Given below is an example usage scenario of how the add tag mechanism behaves at Step 1: The user inputs `tag-add-p 1 friend` to add the tag "friend" to the first contact in the list. -Step 2: This argument is passed into `LogicManager` which calls on `Coach2K22Parser#parseCommand()` to find a suitable parser class to process the user inputs. This initialises the `AddTagCommandParser` where its method `#parse` is called to process the user inputs. +Step 2: This argument is passed into `LogicManager` which calls on `Coach2K22Parser#parseCommand()` to find a suitable parser class to process the user inputs. This initialises the `AddPersonTagCommandParser` where its method `#parse` is called to process the user inputs. -Step 3: It then returns a newly initialised `AddTagCommand` back to the `LogicManager` for command execution. This `AddTagCommand` contains information about the new tag (in this case, "friend") +Step 3: It then returns a newly initialised `AddPersonTagCommand` back to the `LogicManager` for command execution. This `AddPersonTagCommand` contains information about the new tag (in this case, "friend") Step 4: During the command execution, the `ModelManager#setPerson()` is called which edits the tags of the person with the user-supplied tags. The filtered person list is updated with `ModelManager#updateFilteredPersonList` to display the new information to the user. The steps above are summarised using a sequence diagram as shown below. -![AddTagSequenceDiagram](images/AddTagSequenceDiagram.png) +![AddPersonTagSequenceDiagram](images/AddPersonTagSequenceDiagram.png) ##### Design Consideration @@ -307,11 +307,28 @@ The steps above are summarised using a sequence diagram as shown below. * Pros: Maintains abstraction and reuses code instead of writing new code. * Cons: Creates a cyclic dependency, making the code base harder to maintain later on -* **Alternative 2 (current choice):** Implement AddTagCommand independently, rewriting similar code +* **Alternative 2 (current choice):** Implement AddPersonTagCommand independently, rewriting similar code * Pros: Cleaner code and less dependencies * Cons: Repetitive code that is not abstracted -#### 4.1.6 Find Feature +#### 4.1.6 Delete Tags Feature +This feature allows the user to delete tags from contacts in the list. It is facilitated by `ModelManager` which +makes use of the method `#setPerson()` and `#updateFilteredPersonList()` to delete tags from a contact. + +Given below is an example usage scenario of how the delete tag mechanism behaves at each step. + +Step 1: The user `tag-del-p 1 friend` to delete the tag "friend" from the first contact in the list. + +Step 2: This argument is passed into `LogicManager` which calls on `Coach2K22Parser#parseCommand()` to find a suitable parser class to process the user inputs. This initialises the `DeletePersonTagCommandParser` where its method `#parse` is called to process the user inputs. + +Step 3: It then returns a newly initialised `DeletePersonTagCommand` back to the `LogicManager` for command execution. This `DeletePersonTagCommand` contains information about the new tag (in this case, "friend") + +Step 4: During the command execution, the `ModelManager#setPerson()` is called which edits the tags of the person with the user-supplied tags. The filtered perosn list is updated with `ModelManager#updateFilteredPersonList` to display the new information to the user. + +The steps above are summarised using a sequence diagram as shown below. +![DeletePersonTagSequenceDiagram](images/DeletePersonTagSequenceDiagram.png) + +#### 4.1.7 Find Feature ##### Implementation diff --git a/docs/diagrams/DeletePersonTagSequenceDiagram.png b/docs/diagrams/DeletePersonTagSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..356352a64e8d3ca1faeee50fd7e03a56a69bc144 GIT binary patch literal 32790 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 LogicManager : execute("tag-del-p 1 friend") +activate LogicManager + +LogicManager -> Coach2K22Parser : parseCommand("tag-del-p 1 friend") +activate Coach2K22Parser + +create DeletePersonTagCommandParser +Coach2K22Parser -> DeletePersonTagCommandParser +activate DeletePersonTagCommandParser + +DeletePersonTagCommandParser --> Coach2K22Parser +deactivate DeletePersonTagCommandParser + +Coach2K22Parser -> DeletePersonTagCommandParser : parse(" 1 friend") +activate DeletePersonTagCommandParser + +create DeletePersonTagCommand +DeletePersonTagCommandParser -> DeletePersonTagCommand +activate DeletePersonTagCommand + +DeletePersonTagCommand --> DeletePersonTagCommandParser : p +deactivate DeletePersonTagCommand + +DeletePersonTagCommandParser --> Coach2K22Parser : p +deactivate DeletePersonTagCommandParser +'Hidden arrow to position the destroy marker below the end of the activation bar. +DeletePersonTagCommandParser -[hidden]-> Coach2K22Parser +destroy DeletePersonTagCommandParser + +Coach2K22Parser --> LogicManager : p +deactivate Coach2K22Parser + +LogicManager -> DeletePersonTagCommand : execute() +activate DeletePersonTagCommand + +DeletePersonTagCommand -> Model : setPerson(personToEdit, editedPerson) +activate Model + +Model --> DeletePersonTagCommand +deactivate Model + +create CommandResult +DeletePersonTagCommand -> CommandResult +activate CommandResult + +CommandResult --> DeletePersonTagCommand +deactivate CommandResult + +DeletePersonTagCommand --> LogicManager : result +deactivate DeletePersonTagCommand + +[<--LogicManager +deactivate LogicManager +@enduml From 0764828896ddee5ec071bc6b642e436f1d902903 Mon Sep 17 00:00:00 2001 From: juayhee Date: Mon, 11 Apr 2022 12:29:45 +0800 Subject: [PATCH 378/455] Update AddPersonTag diagram --- ....puml => AddPersonTagSequenceDiagram.puml} | 32 +++++++++--------- docs/images/AddPersonTagSequenceDiagram.png | Bin 0 -> 32866 bytes 2 files changed, 16 insertions(+), 16 deletions(-) rename docs/diagrams/{AddTagSequenceDiagram.puml => AddPersonTagSequenceDiagram.puml} (59%) create mode 100644 docs/images/AddPersonTagSequenceDiagram.png diff --git a/docs/diagrams/AddTagSequenceDiagram.puml b/docs/diagrams/AddPersonTagSequenceDiagram.puml similarity index 59% rename from docs/diagrams/AddTagSequenceDiagram.puml rename to docs/diagrams/AddPersonTagSequenceDiagram.puml index b1526e74018..84b343d9b52 100644 --- a/docs/diagrams/AddTagSequenceDiagram.puml +++ b/docs/diagrams/AddPersonTagSequenceDiagram.puml @@ -4,8 +4,8 @@ box Logic LOGIC_COLOR_T1 participant ":LogicManager" as LogicManager LOGIC_COLOR participant ":Coach2K22Parser" as Coach2K22Parser LOGIC_COLOR -participant ":AddTagCommandParser" as AddTagCommandParser LOGIC_COLOR -participant "p:AddTagCommand" as AddTagCommand LOGIC_COLOR +participant ":AddPersonTagCommandParser" as AddPersonTagCommandParser LOGIC_COLOR +participant "p:AddPersonTagCommand" as AddTagCommand LOGIC_COLOR participant ":CommandResult" as CommandResult LOGIC_COLOR end box @@ -13,34 +13,34 @@ box Model MODEL_COLOR_T1 participant ":Model" as Model MODEL_COLOR end box -[-> LogicManager : execute("tag-add 1 friend") +[-> LogicManager : execute("tag-add-p 1 friend") activate LogicManager LogicManager -> Coach2K22Parser : parseCommand("tag-add-p 1 friend") activate Coach2K22Parser -create AddTagCommandParser -Coach2K22Parser -> AddTagCommandParser -activate AddTagCommandParser +create AddPersonTagCommandParser +Coach2K22Parser -> AddPersonTagCommandParser +activate AddPersonTagCommandParser -AddTagCommandParser --> Coach2K22Parser -deactivate AddTagCommandParser +AddPersonTagCommandParser --> Coach2K22Parser +deactivate AddPersonTagCommandParser -Coach2K22Parser -> AddTagCommandParser : parse(" 1 friend") -activate AddTagCommandParser +Coach2K22Parser -> AddPersonTagCommandParser : parse(" 1 friend") +activate AddPersonTagCommandParser create AddTagCommand -AddTagCommandParser -> AddTagCommand +AddPersonTagCommandParser -> AddTagCommand activate AddTagCommand -AddTagCommand --> AddTagCommandParser : p +AddTagCommand --> AddPersonTagCommandParser : p deactivate AddTagCommand -AddTagCommandParser --> Coach2K22Parser : p -deactivate AddTagCommandParser +AddPersonTagCommandParser --> Coach2K22Parser : p +deactivate AddPersonTagCommandParser 'Hidden arrow to position the destroy marker below the end of the activation bar. -AddTagCommandParser -[hidden]-> Coach2K22Parser -destroy AddTagCommandParser +AddPersonTagCommandParser -[hidden]-> Coach2K22Parser +destroy AddPersonTagCommandParser Coach2K22Parser --> LogicManager : p deactivate Coach2K22Parser diff --git a/docs/images/AddPersonTagSequenceDiagram.png b/docs/images/AddPersonTagSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..94989b7afff35281ec1fa31685f72afba2855407 GIT binary patch literal 32866 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 literal 0 HcmV?d00001 From a399211ae2673408bc5ed4f47b61e2da0e6c62a5 Mon Sep 17 00:00:00 2001 From: juayhee Date: Mon, 11 Apr 2022 12:34:59 +0800 Subject: [PATCH 379/455] Add DeletePersonTagCommand design considerations --- docs/DeveloperGuide.md | 14 ++++++++++++++ .../DeletePersonTagSequenceDiagram.png | Bin 2 files changed, 14 insertions(+) rename docs/{diagrams => images}/DeletePersonTagSequenceDiagram.png (100%) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index d0dac32b79b..d659c0c67dd 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -312,6 +312,8 @@ The steps above are summarised using a sequence diagram as shown below. * Cons: Repetitive code that is not abstracted #### 4.1.6 Delete Tags Feature + +##### Implementation This feature allows the user to delete tags from contacts in the list. It is facilitated by `ModelManager` which makes use of the method `#setPerson()` and `#updateFilteredPersonList()` to delete tags from a contact. @@ -328,6 +330,18 @@ Step 4: During the command execution, the `ModelManager#setPerson()` is called w The steps above are summarised using a sequence diagram as shown below. ![DeletePersonTagSequenceDiagram](images/DeletePersonTagSequenceDiagram.png) + +##### Design Consideration + +**Aspect: Should the implementation use the existing edit functionalities in AB3:** +* **Alternative 1:** Use the current EditCommand class to edit a person's tags. + * Pros: Maintains abstraction and reuses code instead of writing new code. + * Cons: Creates a cyclic dependency, making the code base harder to maintain later on + +* **Alternative 2 (current choice):** Implement DeletePersonTagCommand independently, rewriting similar code + * Pros: Cleaner code and less dependencies + * Cons: Repetitive code that is not abstracted + #### 4.1.7 Find Feature ##### Implementation diff --git a/docs/diagrams/DeletePersonTagSequenceDiagram.png b/docs/images/DeletePersonTagSequenceDiagram.png similarity index 100% rename from docs/diagrams/DeletePersonTagSequenceDiagram.png rename to docs/images/DeletePersonTagSequenceDiagram.png From 34f0108ffbb4ebcc829d494c7e55cacf8100eb27 Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Mon, 11 Apr 2022 12:36:14 +0800 Subject: [PATCH 380/455] Add more use cases for Clear-task in Manual Testing Appendix --- docs/DeveloperGuide.md | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 1ee209a8aff..32cabf17261 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -1354,7 +1354,7 @@ testers are expected to do more *exploratory* testing. 1. Adding a strength/weakness/miscellaneous note to a person while currently viewable person list has people. -2. Prerequisites: Contacts has to contain some people. No prerequisite on all people. +2. Prerequisites: Currently viewable Contacts list has to contain some people. 3. Test case: `strength-add 1 good stamina`
      Expected: The note `good stamina` is added to the strength list of the first person in the current Contacts list. Details of the modified contact shown in the status message. @@ -1375,21 +1375,21 @@ testers are expected to do more *exploratory* testing. 1. Deleting a strength/weakness/miscellaneous note to a person while currently viewable person list has people. -2. Prerequisites: Contacts has to contain some people. No prerequisite on all people. +2. Prerequisites: Currently viewable Contacts list has to contain some people. 3. Test case: `strength-del 1 1`
      Expected: The first note is deleted from the strength list of the first person in the current Contacts list. Details of the modified contact shown in the status message. -4. Test case: `weakness-add 1 1`
      +4. Test case: `weakness-del 1 1`
      Expected: Similar to previous, except the note is deleted from the weakness list. -5. Test case: `misc-add 1 1`
      +5. Test case: `misc-del 1 1`
      Expected: Similar to previous, except the note is deleted from the misc list. 6. Test case: `strength-del 0 1`
      Expected: No note is deleted. Error details shown in the status message. Status bar remains the same. -7. Test case: `strength-add 1 0`
      +7. Test case: `strength-del 1 0`
      Expected: Similar to previous. 8. Other incorrect commands to try: `strength-del`, `misc-del x`, `...` (where x is larger than the list size)
      @@ -1398,25 +1398,22 @@ testers are expected to do more *exploratory* testing. ### 7.6 Clearing all Tasks from the task list or only those on a particular day -1. Deleting a strength/weakness/miscellaneous note to a person while currently viewable person list has people. - -2. Prerequisites: Contacts has to contain some people. No prerequisite on all people. +1. Empty the task list or remove only those that correspond with a given day. -3. Test case: `strength-del 1 1`
      - Expected: The first note is deleted from the strength list of the first person in the current Contacts list. Details of the modified contact shown in the status message. +2. Prerequisites: Schedule must contain some tasks. -4. Test case: `weakness-add 1 1`
      - Expected: Similar to previous, except the note is deleted from the weakness list. +3. Test case: `clear-t`
      + Expected: The entire task list in contacts will be cleared. -5. Test case: `misc-add 1 1`
      - Expected: Similar to previous, except the note is deleted from the misc list. +4. Test case: `clear-t d/03-03-2022`
      + Expected: If there are tasks that are allocated on `03-03-2022`, remove them. Otherwise, no task is deleted, and error details are shown in the status message. -6. Test case: `strength-del 0 1`
      - Expected: No note is deleted. Error details shown in the status message. Status bar remains the same. +5. Test case: `clear-t d/30-02-2022`
      + Expected: No task is deleted. Error details shown in the status message. Status bar remains the same. -7. Test case: `strength-add 1 0`
      +6. Test case: `clear-t d/2022-03-03`
      Expected: Similar to previous. -8. Other incorrect commands to try: `strength-del`, `misc-del x`, `...` (where x is larger than the list size)
      +8. Other incorrect commands to try: `clear-t d/abc`, `clear-t d`, `clear-t d/`, `...` Expected: Similar to previous. \ No newline at end of file From cd22e1d9c61f5e1433ac8c3d1f962693fd99e359 Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Mon, 11 Apr 2022 12:46:12 +0800 Subject: [PATCH 381/455] Add Sort strength/weakness use case in Manual Testing Appendix --- docs/DeveloperGuide.md | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 32cabf17261..79e171c3dba 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -1352,7 +1352,7 @@ testers are expected to do more *exploratory* testing. ### 7.4 Adding a Strength/Weakness/Miscellaneous note to a person -1. Adding a strength/weakness/miscellaneous note to a person while currently viewable person list has people. +1. Adding a strength/weakness/miscellaneous (using `strength-add`, `weakness-add`, and `misc-add` respectively) note to a person while currently viewable person list has people. 2. Prerequisites: Currently viewable Contacts list has to contain some people. @@ -1373,7 +1373,7 @@ testers are expected to do more *exploratory* testing. ### 7.5 Deleting a Strength/Weakness/Miscellaneous note to a person -1. Deleting a strength/weakness/miscellaneous note to a person while currently viewable person list has people. +1. Deleting a strength/weakness/miscellaneous note (using `strength-del`, `weakness-del`, and `misc-del` respectively) to a person while currently viewable person list has people. 2. Prerequisites: Currently viewable Contacts list has to contain some people. @@ -1400,7 +1400,7 @@ testers are expected to do more *exploratory* testing. 1. Empty the task list or remove only those that correspond with a given day. -2. Prerequisites: Schedule must contain some tasks. +2. Prerequisites: Unfiltered Schedule must contain some tasks. 3. Test case: `clear-t`
      Expected: The entire task list in contacts will be cleared. @@ -1414,6 +1414,20 @@ testers are expected to do more *exploratory* testing. 6. Test case: `clear-t d/2022-03-03`
      Expected: Similar to previous. -8. Other incorrect commands to try: `clear-t d/abc`, `clear-t d`, `clear-t d/`, `...` +7. Other incorrect commands to try: `clear-t d/abc`, `clear-t d`, `clear-t d/`, `...`
      Expected: Similar to previous. - \ No newline at end of file + +### 7.7 Sort the Contacts list by strength or weakness in descending order + +1. Sort the entire Contact list by strength (for `sort-strength`) or weakness (for `sort-weakness`) in descending order + +2. Prerequisites: Unfiltered Contacts list must contain some people. + +3. Test case: `sort-strength`
      + Expected: The entire contact list is sorted by total number of strengths in descending order. + +4. Test case: `sort-weakness`
      + Expected: The entire contact list is sorted by total number of weaknesses in descending order. + +5. Test case: `sort-strength abc`
      + Expected: The entire contact list is sorted by total number of strengths in descending order (anything after the command word is ignored). \ No newline at end of file From 150ae1f3433aa5fe7ac439de6aef3c06f1d69b5e Mon Sep 17 00:00:00 2001 From: juayhee Date: Mon, 11 Apr 2022 12:51:17 +0800 Subject: [PATCH 382/455] Add diagrams and implementation details for AddTaskTagCommand and DeleteTaskTagCommand --- docs/DeveloperGuide.md | 47 +++++++++++- docs/diagrams/AddTaskTagSequenceDiagram.puml | 69 ++++++++++++++++++ .../DeleteTaskTagSequenceDiagram.puml | 69 ++++++++++++++++++ docs/images/AddTaskTagSequenceDiagram.png | Bin 0 -> 32915 bytes docs/images/DeleteTaskTagSequenceDiagram.png | Bin 0 -> 33138 bytes 5 files changed, 181 insertions(+), 4 deletions(-) create mode 100644 docs/diagrams/AddTaskTagSequenceDiagram.puml create mode 100644 docs/diagrams/DeleteTaskTagSequenceDiagram.puml create mode 100644 docs/images/AddTaskTagSequenceDiagram.png create mode 100644 docs/images/DeleteTaskTagSequenceDiagram.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index d659c0c67dd..683a897b502 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -446,7 +446,46 @@ The steps above are summarised using a sequence diagram as shown below. * **Alternative 2:** Single `del` command that deletes tasks/persons depending on parameters. * Pros: More intuitive for the user. -#### 4.2.3 Edit Feature +#### 4.2.3 Add Tags Feature + +##### Implementation +This feature allows the user to add tags to tasks in the list. It is facilitated by `ModelManager` which +makes use of the method `#setTask()` and `#updateFilteredTaskList()` to add tags to a task. + +Given below is an example usage scenario of how the add tag mechanism behaves at each step. + +Step 1: The user inputs `tag-add-t 1 important` to add the tag "friend" to the first task in the list. + +Step 2: This argument is passed into `LogicManager` which calls on `Coach2K22Parser#parseCommand()` to find a suitable parser class to process the user inputs. This initialises the `AddTaskTagCommandParser` where its method `#parse` is called to process the user inputs. + +Step 3: It then returns a newly initialised `AddTaskTagCommand` back to the `LogicManager` for command execution. This `AddTaskTagCommand` contains information about the new tag (in this case, "important") + +Step 4: During the command execution, the `ModelManager#setTask()` is called which edits the tags of the task with the user-supplied tags. The filtered task list is updated with `ModelManager#updateFilteredTaskList` to display the new information to the user. + +The steps above are summarised using a sequence diagram as shown below. +![AddTaskTagSequenceDiagram](images/AddTaskTagSequenceDiagram.png) + + +#### 4.2.4 Delete Tags Feature + +##### Implementation +This feature allows the user to delete tags from tasks in the list. It is facilitated by `ModelManager` which +makes use of the method `#setTask()` and `#updateFilteredTaskList()` to delete tags from a task. + +Given below is an example usage scenario of how the delete tag mechanism behaves at each step. + +Step 1: The user inputs `tag-del-t 1 important` to delete the tag "important" from the first task in the list. + +Step 2: This argument is passed into `LogicManager` which calls on `Coach2K22Parser#parseCommand()` to find a suitable parser class to process the user inputs. This initialises the `DeleteTaskTagCommandParser` where its method `#parse` is called to process the user inputs. + +Step 3: It then returns a newly initialised `DeleteTaskTagCommand` back to the `LogicManager` for command execution. This `DeleteTaskTagCommand` contains information about the tag to be deleted (in this case, "important") + +Step 4: During the command execution, the `ModelManager#setTask()` is called which edits out the tag from the task. The filtered task list is updated with `ModelManager#updateFilteredTaskList` to display the new information to the user. + +The steps above are summarised using a sequence diagram as shown below. +![DeleteTaskTagSequenceDiagram](images/DeleteTaskTagSequenceDiagram.png) + +#### 4.2.5 Edit Feature ##### Implementation @@ -476,7 +515,7 @@ The steps above are summarised using a sequence diagram as shown below. * **Alternative 2:** Single `edit` command that edits tasks/persons depending on parameters. * Pros: More intuitive for the user. -#### 4.2.4 Clear Feature +#### 4.2.6 Clear Feature ##### Implementation @@ -513,7 +552,7 @@ The steps above are summarised using a sequence diagram as shown below. * Pros: Easier and more intuitive for the user to understand * Cons: Hard to implement. -#### 4.2.5 Find Feature +#### 4.2.7 Find Feature ##### Implementation @@ -555,7 +594,7 @@ The steps above are summarised using a sequence diagram as shown below. * Pros: Easier and more intuitive for the user to understand. * Cons: Hard to implement. -#### 4.2.6 Get Person Feature +#### 4.2.8 Get Person Feature ##### Implementation diff --git a/docs/diagrams/AddTaskTagSequenceDiagram.puml b/docs/diagrams/AddTaskTagSequenceDiagram.puml new file mode 100644 index 00000000000..1534b98a2f1 --- /dev/null +++ b/docs/diagrams/AddTaskTagSequenceDiagram.puml @@ -0,0 +1,69 @@ +@startuml +!include style.puml + +box Logic LOGIC_COLOR_T1 +participant ":LogicManager" as LogicManager LOGIC_COLOR +participant ":Coach2K22Parser" as Coach2K22Parser LOGIC_COLOR +participant ":AddTaskTagCommandParser" as AddTaskTagCommandParser LOGIC_COLOR +participant "p:AddTaskTagCommand" as AddTaskTagCommand LOGIC_COLOR +participant ":CommandResult" as CommandResult LOGIC_COLOR +end box + +box Model MODEL_COLOR_T1 +participant ":Model" as Model MODEL_COLOR +end box + +[-> LogicManager : execute("tag-add-t 1 important") +activate LogicManager + +LogicManager -> Coach2K22Parser : parseCommand("tag-add-t 1 important") +activate Coach2K22Parser + +create AddTaskTagCommandParser +Coach2K22Parser -> AddTaskTagCommandParser +activate AddTaskTagCommandParser + +AddTaskTagCommandParser --> Coach2K22Parser +deactivate AddTaskTagCommandParser + +Coach2K22Parser -> AddTaskTagCommandParser : parse(" 1 important") +activate AddTaskTagCommandParser + +create AddTaskTagCommand +AddTaskTagCommandParser -> AddTaskTagCommand +activate AddTaskTagCommand + +AddTaskTagCommand --> AddTaskTagCommandParser : p +deactivate AddTaskTagCommand + +AddTaskTagCommandParser --> Coach2K22Parser : p +deactivate AddTaskTagCommandParser +'Hidden arrow to position the destroy marker below the end of the activation bar. +AddTaskTagCommandParser -[hidden]-> Coach2K22Parser +destroy AddTaskTagCommandParser + +Coach2K22Parser --> LogicManager : p +deactivate Coach2K22Parser + +LogicManager -> AddTaskTagCommand : execute() +activate AddTaskTagCommand + +AddTaskTagCommand -> Model : setTask(taskToEdit, editedTask) +activate Model + +Model --> AddTaskTagCommand +deactivate Model + +create CommandResult +AddTaskTagCommand -> CommandResult +activate CommandResult + +CommandResult --> AddTaskTagCommand +deactivate CommandResult + +AddTaskTagCommand --> LogicManager : result +deactivate AddTaskTagCommand + +[<--LogicManager +deactivate LogicManager +@enduml diff --git a/docs/diagrams/DeleteTaskTagSequenceDiagram.puml b/docs/diagrams/DeleteTaskTagSequenceDiagram.puml new file mode 100644 index 00000000000..1d8729ab8f6 --- /dev/null +++ b/docs/diagrams/DeleteTaskTagSequenceDiagram.puml @@ -0,0 +1,69 @@ +@startuml +!include style.puml + +box Logic LOGIC_COLOR_T1 +participant ":LogicManager" as LogicManager LOGIC_COLOR +participant ":Coach2K22Parser" as Coach2K22Parser LOGIC_COLOR +participant ":DeleteTaskTagCommandParser" as DeleteTaskTagCommandParser LOGIC_COLOR +participant "p:DeleteTaskTagCommand" as DeleteTaskTagCommand LOGIC_COLOR +participant ":CommandResult" as CommandResult LOGIC_COLOR +end box + +box Model MODEL_COLOR_T1 +participant ":Model" as Model MODEL_COLOR +end box + +[-> LogicManager : execute("tag-del-t 1 important") +activate LogicManager + +LogicManager -> Coach2K22Parser : parseCommand("tag-del-t 1 important") +activate Coach2K22Parser + +create DeleteTaskTagCommandParser +Coach2K22Parser -> DeleteTaskTagCommandParser +activate DeleteTaskTagCommandParser + +DeleteTaskTagCommandParser --> Coach2K22Parser +deactivate DeleteTaskTagCommandParser + +Coach2K22Parser -> DeleteTaskTagCommandParser : parse(" 1 important") +activate DeleteTaskTagCommandParser + +create DeleteTaskTagCommand +DeleteTaskTagCommandParser -> DeleteTaskTagCommand +activate DeleteTaskTagCommand + +DeleteTaskTagCommand --> DeleteTaskTagCommandParser : p +deactivate DeleteTaskTagCommand + +DeleteTaskTagCommandParser --> Coach2K22Parser : p +deactivate DeleteTaskTagCommandParser +'Hidden arrow to position the destroy marker below the end of the activation bar. +DeleteTaskTagCommandParser -[hidden]-> Coach2K22Parser +destroy DeleteTaskTagCommandParser + +Coach2K22Parser --> LogicManager : p +deactivate Coach2K22Parser + +LogicManager -> DeleteTaskTagCommand : execute() +activate DeleteTaskTagCommand + +DeleteTaskTagCommand -> Model : setTask(taskToEdit, editedTask) +activate Model + +Model --> DeleteTaskTagCommand +deactivate Model + +create CommandResult +DeleteTaskTagCommand -> CommandResult +activate CommandResult + +CommandResult --> DeleteTaskTagCommand +deactivate CommandResult + +DeleteTaskTagCommand --> LogicManager : result +deactivate DeleteTaskTagCommand + +[<--LogicManager +deactivate LogicManager +@enduml diff --git a/docs/images/AddTaskTagSequenceDiagram.png b/docs/images/AddTaskTagSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..7de38060de0e48c2aee769fed1cf2776bb193e03 GIT binary patch literal 32915 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 literal 0 HcmV?d00001 From 530046450258e194fea225f35504cefad0985cad Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Mon, 11 Apr 2022 12:52:56 +0800 Subject: [PATCH 383/455] Add signposting to command summary section in UG --- docs/UserGuide.md | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index e9a041455d7..55bec17caa3 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -558,10 +558,11 @@ Remove a player from the strategy board. Format: `del-player PLAYER_NAME` -As mentioned above, the player name is case-sensitive. +As mentioned above, the player name is case-sensitive. +And the player name must be present on the strategy board. Examples: -* `del-player Messi` removes the player named `Messi` from the strategy board. +* `del-player Messi` removes the player named `Messi` from the strategy board if such player exists on the strategy board. #### 4.3.4 Moving a player to a coordinate: `move` @@ -607,7 +608,18 @@ Format: `exit` ## **6. Command summary** +This section will give a summary of all the commands available in the application. +They will be classified into the following categories by command usage: +* [**Contact Management**](#61-contact-management) +* [**Task Management**](#62-task-management) +* [**Strategic Planning**](#63-strategic-planning) +* [**General**](#64-general) + +You can find the corresponding command format and maybe one example for the actions you are able to perform on the application. + ### 6.1 Contact Management +This section will list all the commands available for contact management in the application. +The actions here are all related to managing the contacts of the user. | Action | Format, Examples | |--------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -629,6 +641,8 @@ Format: `exit` | **Sort by Weaknesses** | `sort-weakness`
      | ### 6.2 Task Management +This section will list all the commands available for task management in the application. +The actions here are all related to managing the tasks of the user. | Action | Format, Examples | |------------------|-----------------------------------------------------------------------------------| @@ -644,6 +658,8 @@ Format: `exit` | **Sort By Date** | `sort-date` | ### 6.3 Strategic Planning +This section will list all the commands available for strategic planning in the application. +The actions here are all related to performing the strategic planning. | Action | Format, Examples | |-------------------|-------------------------------------------------------------------------| @@ -655,6 +671,8 @@ Format: `exit` ### 6.4 General +This section will list all the commands available for general usage in the application. +The actions here are all related to general usage. | Action | Format, Examples | |--------------|-------------------------| From fe56cb28f64887ae50ad9e8e2c5177deb631f5c5 Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Mon, 11 Apr 2022 12:55:36 +0800 Subject: [PATCH 384/455] Add load-court function use cases in Manual Testing Appendix --- docs/DeveloperGuide.md | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 79e171c3dba..eb9ea7d3454 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -1430,4 +1430,19 @@ testers are expected to do more *exploratory* testing. Expected: The entire contact list is sorted by total number of weaknesses in descending order. 5. Test case: `sort-strength abc`
      - Expected: The entire contact list is sorted by total number of strengths in descending order (anything after the command word is ignored). \ No newline at end of file + Expected: The entire contact list is sorted by total number of strengths in descending order (anything after the command word is ignored). + +### 7.8 Load new image to serve as court in Strategy Tab + +1. Loads the given image by the provided name to serve as the court in Strategy Tab. + +2. Prerequisites: Image must be a png file and stored in the automatically generated `courts` directory which exists in the same folder as the JAR. + +3. Test case: `load-court basketball`
      + Expected: The image `basketball.png` will be loaded from the `courts` directory and serve as the court in the Strategy tab. If it does not exist, no image is loaded, and error details are shown in the status message. + +4. Test case: `load-court`
      + Expected: No image is loaded, and error details are shown in the status message. + +5. Test case: `load-court test/`
      + Expected: Similar to previous. Even if `test.png` exists, as `/` are not allowed in command argument. From 867391abcc7099efc6f8fb20da8e42b08c611130 Mon Sep 17 00:00:00 2001 From: juayhee Date: Mon, 11 Apr 2022 13:11:04 +0800 Subject: [PATCH 385/455] *Move SortTaskByDateCommand from persons folder into tasks folder * Update DG with SortTaskByDateCommand and diagram --- docs/DeveloperGuide.md | 23 ++++++++ .../SortTaskByDateSequenceDiagram.puml | 53 ++++++++++++++++++ docs/images/SortTaskByDateSequenceDiagram.png | Bin 0 -> 22014 bytes src/main/java/seedu/address/logic/Logic.java | 2 +- .../seedu/address/logic/LogicManager.java | 2 +- .../seedu/address/logic/commands/Command.java | 2 +- .../commands/person/AddPersonCommand.java | 2 +- .../commands/person/AddPersonTagCommand.java | 2 +- .../commands/person/DeletePersonCommand.java | 2 +- .../person/DeletePersonTagCommand.java | 2 +- .../commands/person/EditPersonCommand.java | 2 +- .../commands/person/SortStrengthCommand.java | 2 +- .../commands/person/SortWeaknessCommand.java | 2 +- .../person/notecommands/AddMiscCommand.java | 2 +- .../notecommands/AddStrengthCommand.java | 2 +- .../notecommands/AddWeaknessCommand.java | 2 +- .../notecommands/DeleteMiscCommand.java | 2 +- .../notecommands/DeleteStrengthCommand.java | 2 +- .../notecommands/DeleteWeaknessCommand.java | 2 +- .../commands/strategy/AddPlayerCommand.java | 2 +- .../strategy/DeletePlayerCommand.java | 2 +- .../commands/strategy/LoadCourtCommand.java | 2 +- .../commands/strategy/MovePlayerCommand.java | 2 +- .../logic/commands/task/AddTaskCommand.java | 2 +- .../commands/task/AddTaskTagCommand.java | 2 +- .../logic/commands/task/ClearTaskCommand.java | 2 +- .../commands/task/DeleteTaskCommand.java | 2 +- .../commands/task/DeleteTaskTagCommand.java | 2 +- .../logic/commands/task/EditTaskCommand.java | 2 +- .../logic/commands/task/GetPersonCommand.java | 2 +- .../SortTaskByDateCommand.java | 4 +- .../exceptions/CommandException.java | 2 +- .../address/logic/parser/Coach2K22Parser.java | 2 +- .../java/seedu/address/ui/CommandBox.java | 2 +- .../java/seedu/address/ui/MainWindow.java | 2 +- .../seedu/address/logic/LogicManagerTest.java | 2 +- .../logic/commands/CommandTestUtil.java | 2 +- .../commands/person/AddPersonCommandTest.java | 2 +- .../commands/task/AddTaskCommandTest.java | 2 +- .../commands/task/EditTaskCommandTest.java | 2 +- .../task/SortTaskByDateCommandTest.java | 1 - 41 files changed, 114 insertions(+), 39 deletions(-) create mode 100644 docs/diagrams/SortTaskByDateSequenceDiagram.puml create mode 100644 docs/images/SortTaskByDateSequenceDiagram.png rename src/main/java/seedu/address/logic/commands/{person => task}/SortTaskByDateCommand.java (94%) rename src/main/java/seedu/address/logic/commands/{ => task}/exceptions/CommandException.java (89%) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 683a897b502..7e1b7c11f27 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -614,6 +614,29 @@ Step 4: During the command execution, the `ModelManager#updateFilteredPersonList The steps above are summarised using a sequence diagram as shown below. ![GetPersonSequenceDiagram](images/GetPersonSequenceDiagram.png) + +#### 4.2.9 Sort by Date Feature + +##### Implementation + +This feature allows the user to sort the task list in chronological order. The resulting task list will be sorted by earliest date and time first. +It is facilitated by `ModelManager` which makes use of the method `#getUnfilteredTaskList()` to get the list of tasks. + +Given below is an example usage scenario of how the sort date mechanism behaves at each step. + +Step 1: The user inputs `sort-date` to sort the task list by date. + +Step 2: This argument is passed into `LogicManager` which calls on `Coach2K22#parseCommand()`. Since this command does not require parameters, the SortTaskByDateCommand object is created directly instead of through a Parser. + +Step 3: The newly initialised `SortTaskByDateCommand` is returned back to the `LogicManager` for command execution. + +Step 4: During the command execution, the current list of tasks is sorted using an internal sorting algorithm, then a new TaskBook object is created to store the new ordered list of tasks. + +Step 5: The model replaces its old TaskBook with the new sorted TaskBook using `ModelManager#setTaskBook`, and the GUI updates the task list accordingly. + +The steps above are summarised using a sequence diagram as shown below. +![SortTaskByDateSequenceDiagram](images/SortTaskByDateSequenceDiagram.png) + ### 4.3 Strategic Planning #### 4.3.1 Add Feature diff --git a/docs/diagrams/SortTaskByDateSequenceDiagram.puml b/docs/diagrams/SortTaskByDateSequenceDiagram.puml new file mode 100644 index 00000000000..07154097efb --- /dev/null +++ b/docs/diagrams/SortTaskByDateSequenceDiagram.puml @@ -0,0 +1,53 @@ +@startuml +!include style.puml + +box Logic LOGIC_COLOR_T1 +participant ":LogicManager" as LogicManager LOGIC_COLOR +participant ":Coach2K22Parser" as Coach2K22Parser LOGIC_COLOR +participant "p:SortTaskByDateCommand" as SortTaskByDateCommand LOGIC_COLOR +participant ":CommandResult" as CommandResult LOGIC_COLOR +end box + +box Model MODEL_COLOR_T1 +participant ":Model" as Model MODEL_COLOR +end box + +[-> LogicManager : execute("sort-date") +activate LogicManager + +LogicManager -> Coach2K22Parser : parseCommand("sort-date") +activate Coach2K22Parser + +create SortTaskByDateCommand +Coach2K22Parser -> SortTaskByDateCommand +activate SortTaskByDateCommand + +SortTaskByDateCommand --> Coach2K22Parser +deactivate SortTaskByDateCommand + +Coach2K22Parser --> LogicManager +deactivate Coach2K22Parser + +LogicManager -> SortTaskByDateCommand : execute() +activate SortTaskByDateCommand + +activate SortTaskByDateCommand +SortTaskByDateCommand -> Model : setTaskBook(sortedTaskBook) +activate Model + +Model --> SortTaskByDateCommand +deactivate Model + +create CommandResult +SortTaskByDateCommand -> CommandResult +activate CommandResult + +CommandResult --> SortTaskByDateCommand +deactivate CommandResult + +SortTaskByDateCommand --> LogicManager : result +deactivate SortTaskByDateCommand + +[<--LogicManager +deactivate LogicManager +@enduml diff --git a/docs/images/SortTaskByDateSequenceDiagram.png b/docs/images/SortTaskByDateSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..9b0f3c3f4033b824cfcf0cd9917834c3e57b31ba GIT binary patch literal 22014 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 F0s!+ Date: Mon, 11 Apr 2022 13:17:12 +0800 Subject: [PATCH 386/455] Fix import checkstyle --- src/main/java/seedu/address/logic/parser/Coach2K22Parser.java | 2 +- src/test/java/seedu/address/logic/LogicManagerTest.java | 3 ++- .../seedu/address/logic/commands/task/EditTaskCommandTest.java | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/seedu/address/logic/parser/Coach2K22Parser.java b/src/main/java/seedu/address/logic/parser/Coach2K22Parser.java index e25951a494a..cf1342edd5d 100644 --- a/src/main/java/seedu/address/logic/parser/Coach2K22Parser.java +++ b/src/main/java/seedu/address/logic/parser/Coach2K22Parser.java @@ -18,7 +18,6 @@ import seedu.address.logic.commands.person.FindPersonCommand; import seedu.address.logic.commands.person.ListPersonCommand; import seedu.address.logic.commands.person.SortStrengthCommand; -import seedu.address.logic.commands.task.SortTaskByDateCommand; import seedu.address.logic.commands.person.SortWeaknessCommand; import seedu.address.logic.commands.person.notecommands.AddMiscCommand; import seedu.address.logic.commands.person.notecommands.AddStrengthCommand; @@ -40,6 +39,7 @@ import seedu.address.logic.commands.task.FindTaskCommand; import seedu.address.logic.commands.task.GetPersonCommand; import seedu.address.logic.commands.task.ListTaskCommand; +import seedu.address.logic.commands.task.SortTaskByDateCommand; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.logic.parser.person.AddPersonCommandParser; import seedu.address.logic.parser.person.AddPersonTagCommandParser; diff --git a/src/test/java/seedu/address/logic/LogicManagerTest.java b/src/test/java/seedu/address/logic/LogicManagerTest.java index ae75e8993f2..74dc468888c 100644 --- a/src/test/java/seedu/address/logic/LogicManagerTest.java +++ b/src/test/java/seedu/address/logic/LogicManagerTest.java @@ -18,9 +18,9 @@ import org.junit.jupiter.api.io.TempDir; import seedu.address.logic.commands.CommandResult; -import seedu.address.logic.commands.task.exceptions.CommandException; import seedu.address.logic.commands.person.AddPersonCommand; import seedu.address.logic.commands.person.ListPersonCommand; +import seedu.address.logic.commands.task.exceptions.CommandException; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.Model; import seedu.address.model.ModelManager; @@ -36,6 +36,7 @@ import seedu.address.storage.TaskBookStorage; import seedu.address.testutil.PersonBuilder; + public class LogicManagerTest { private static final IOException DUMMY_IO_EXCEPTION = new IOException("dummy exception"); diff --git a/src/test/java/seedu/address/logic/commands/task/EditTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/task/EditTaskCommandTest.java index 19124097652..bf63961ed27 100644 --- a/src/test/java/seedu/address/logic/commands/task/EditTaskCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/task/EditTaskCommandTest.java @@ -21,8 +21,8 @@ import seedu.address.commons.core.Messages; import seedu.address.commons.core.index.Index; import seedu.address.logic.EditTaskDescriptor; -import seedu.address.logic.commands.task.exceptions.CommandException; import seedu.address.logic.commands.person.ClearPersonCommand; +import seedu.address.logic.commands.task.exceptions.CommandException; import seedu.address.model.AddressBook; import seedu.address.model.Model; import seedu.address.model.ModelManager; From 88ea053fb4e5288b158dcef94ec50b43aea823d6 Mon Sep 17 00:00:00 2001 From: Pragya Date: Mon, 11 Apr 2022 13:25:52 +0800 Subject: [PATCH 387/455] edit-task unintended behaviour fix --- .../logic/commands/task/EditTaskCommand.java | 22 ++++++++++--------- .../commands/task/EditTaskCommandTest.java | 12 ---------- 2 files changed, 12 insertions(+), 22 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/task/EditTaskCommand.java b/src/main/java/seedu/address/logic/commands/task/EditTaskCommand.java index 0cccd452a52..fbfb04be88a 100644 --- a/src/main/java/seedu/address/logic/commands/task/EditTaskCommand.java +++ b/src/main/java/seedu/address/logic/commands/task/EditTaskCommand.java @@ -95,9 +95,10 @@ public CommandResult execute(Model model) throws CommandException { throw new CommandException(String.format(MESSAGE_SCHEDULE_CONFLICT_START_END_TIME)); } - Set persons = editedTask.getPersons(); + Set originalPersons = taskToEdit.getPersons(); + Set editedPersons = editedTask.getPersons(); - for (Name name: persons) { + for (Name name: editedPersons) { boolean notFound = true; for (Person person: unfilteredPersonList) { if (person.getName().equals(name)) { @@ -105,14 +106,15 @@ public CommandResult execute(Model model) throws CommandException { } } - //checks if persons are already involved in tasks with conflicting time ranges to the edited task - for (Name names: persons) { - for (Task task: unfilteredTaskList) { - Set nameList = task.getPersons(); - if (nameList.contains(names)) { - boolean conflictExist = task.hasDateTimeConflict(editedTask); - if (conflictExist) { - throw new CommandException(String.format(MESSAGE_SCHEDULE_CONFLICT, name)); + if (!originalPersons.containsAll(editedPersons)) { + for (Name names : editedPersons) { + for (Task task : unfilteredTaskList) { + Set nameList = task.getPersons(); + if (nameList.contains(names)) { + boolean conflictExist = task.hasDateTimeConflict(editedTask); + if (conflictExist) { + throw new CommandException(String.format(MESSAGE_SCHEDULE_CONFLICT, name)); + } } } } diff --git a/src/test/java/seedu/address/logic/commands/task/EditTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/task/EditTaskCommandTest.java index e2d496a74eb..43966e15345 100644 --- a/src/test/java/seedu/address/logic/commands/task/EditTaskCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/task/EditTaskCommandTest.java @@ -78,18 +78,6 @@ public void execute_someFieldsSpecifiedUnfilteredList_success() { assertCommandSuccess(editTaskCommand, model, expectedMessage, expectedModel); } - @Test - public void execute_invalidAdditionOfPersons_failure() { - EditTaskDescriptor invalidTask = new EditTaskDescriptorBuilder().withPersons(ALICE.getName().fullName).build(); - EditTaskCommand editTaskCommand = new EditTaskCommand(TASK_FIRST_INDEX, invalidTask); - - String expectedMessage = String.format(EditTaskCommand.MESSAGE_SCHEDULE_CONFLICT, ALICE.getName().fullName); - assertThrows(CommandException.class, - expectedMessage, () -> editTaskCommand.execute(model)); - - assertCommandFailure(editTaskCommand, model, expectedMessage); - } - @Test public void execute_invalidStartEndTime_failure() { EditTaskDescriptor invalidTask = new EditTaskDescriptorBuilder().withStartTime("15:00") From e39363317699c06307575d2ad3b9fd53709dd014 Mon Sep 17 00:00:00 2001 From: Pragya Date: Mon, 11 Apr 2022 13:27:06 +0800 Subject: [PATCH 388/455] no message --- .../seedu/address/logic/commands/task/EditTaskCommandTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/test/java/seedu/address/logic/commands/task/EditTaskCommandTest.java b/src/test/java/seedu/address/logic/commands/task/EditTaskCommandTest.java index 43966e15345..c9ec713bde2 100644 --- a/src/test/java/seedu/address/logic/commands/task/EditTaskCommandTest.java +++ b/src/test/java/seedu/address/logic/commands/task/EditTaskCommandTest.java @@ -12,7 +12,6 @@ import static seedu.address.testutil.Assert.assertThrows; import static seedu.address.testutil.TypicalIndexes.TASK_FIRST_INDEX; import static seedu.address.testutil.TypicalIndexes.TASK_SECOND_INDEX; -import static seedu.address.testutil.TypicalPersons.ALICE; import static seedu.address.testutil.TypicalPersons.CARL; import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; From b5ff5a294424b3b4c1432fc5f1b5402b7dd2a82e Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Mon, 11 Apr 2022 13:46:09 +0800 Subject: [PATCH 389/455] Modify Logic component section and add implementation details for strategy commands --- docs/DeveloperGuide.md | 74 +++++++++++++++-- docs/diagrams/AddPlayerSequenceDiagram.puml | 2 +- .../diagrams/DeletePlayerSequenceDiagram.puml | 69 ++++++++++++++++ docs/diagrams/DeleteSequenceDiagram.puml | 20 ++--- docs/diagrams/LogicClassDiagram.puml | 6 +- docs/diagrams/MovePlayerSequenceDiagram.puml | 75 ++++++++++++++++++ docs/diagrams/ParserClasses.puml | 8 +- docs/images/AddPlayerSequenceDiagram.png | Bin 32832 -> 32608 bytes docs/images/DeletePlayerSequenceDiagram.png | Bin 0 -> 32576 bytes docs/images/DeleteSequenceDiagram.png | Bin 33030 -> 28704 bytes docs/images/LogicClassDiagram.png | Bin 34952 -> 32285 bytes docs/images/MovePlayerSequenceDiagram.png | Bin 0 -> 34874 bytes docs/images/ParserClasses.png | Bin 27452 -> 24743 bytes 13 files changed, 230 insertions(+), 24 deletions(-) create mode 100644 docs/diagrams/DeletePlayerSequenceDiagram.puml create mode 100644 docs/diagrams/MovePlayerSequenceDiagram.puml create mode 100644 docs/images/DeletePlayerSequenceDiagram.png create mode 100644 docs/images/MovePlayerSequenceDiagram.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 2e2e39fb28a..b0a6dec07db 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -86,14 +86,14 @@ The `UI` component, ### 3.3 Logic component -**API** : [`Logic.java`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/java/seedu/address/logic/Logic.java) +**API** : [`Logic.java`](https://github.com/AY2122S2-CS2103T-W14-2/tp/blob/master/src/main/java/seedu/address/logic/Logic.java) Here's a (partial) class diagram of the `Logic` component: How the `Logic` component works: -1. When `Logic` is called upon to execute a command, it uses the `AddressBookParser` class to parse the user command. +1. When `Logic` is called upon to execute a command, it uses the `Coach2K22Parser` class to parse the user command. 1. This results in a `Command` object (more precisely, an object of one of its subclasses e.g., `AddCommand`) which is executed by the `LogicManager`. 1. The command can communicate with the `Model` when it is executed (e.g. to add a person). 1. The result of the command execution is encapsulated as a `CommandResult` object which is returned back from `Logic`. @@ -110,7 +110,7 @@ Here are the other classes in `Logic` (omitted from the class diagram above) tha How the parsing works: -* When called upon to parse a user command, the `AddressBookParser` class creates an `XYZCommandParser` (`XYZ` is a placeholder for the specific command name e.g., `AddCommandParser`) which uses the other classes shown above to parse the user command and create a `XYZCommand` object (e.g., `AddCommand`) which the `AddressBookParser` returns back as a `Command` object. +* When called upon to parse a user command, the `Coach2K22Parser` class creates an `XYZCommandParser` (`XYZ` is a placeholder for the specific command name e.g., `AddCommandParser`) which uses the other classes shown above to parse the user command and create a `XYZCommand` object (e.g., `AddCommand`) which the `Coach2K22Parser` returns back as a `Command` object. * All `XYZCommandParser` classes (e.g., `AddCommandParser`, `DeleteCommandParser`, ...) inherit from the `Parser` interface so that they can be treated similarly where possible e.g, during testing. ### 3.4 Model component @@ -553,7 +553,7 @@ The steps above are summarised using a sequence diagram as shown below. This feature allows the user to add players to the strategy board. It is facilitated by `ModelManager` which makes use of the method `#addPlayer()` and `#updateFilteredPlayerList()` to add a new player to the strategy board. -Given below is an example usage scenario of how the add player mechanism behaves at each step. +Given below is an example usage scenario of how the adding player mechanism behaves at each step. Step 1: The user inputs `add-player Cena` to add a new player to the strategy board. @@ -570,13 +570,75 @@ The steps above are summarised using a sequence diagram as shown below. **Aspect: Should there be an abstraction for players:** -* **Alternative 1 (current choice):** A player is a String of player name. +* **Alternative 1:** A player is a String of player name. * Pros: Easy to implement. * Cons: Hard to extend. -* **Alternative 2:** A player is an object of class `Player`. +* **Alternative 2 (current choice):** A player is an object of class `Player`. * Pros: Easy to extend and manipulate attributes of a player. * Cons: Hard to implement. +#### 4.3.2 Delete Feature + +##### Implementation + +This feature allows the user to remove players from the strategy board. It is facilitated by `ModelManager` which +makes use of the method `#deletePlayer()` and `#updateFilteredPlayerList()` to delete an existing player from the strategy board. + +Given below is an example usage scenario of how the deleting player mechanism behaves at each step. + +Step 1: The user inputs `del-player Cena` to remove a player named `Cena` from the strategy board. + +Step 2: This argument is passed into `LogicManager` which calls on `Coach2K22Parser#parseCommand()` to find a suitable parser class to process the user inputs. This initialises the `DelPlayerCommandParser` where its method `#parse()` is called to process the user inputs. + +Step 3: It then returns a newly initialised `DeletePlayerCommand` back to the `LogicManager` for command execution. + +Step 4: During the command execution, the `ModelManager#deletePlayer()` is called which remove the player from an internal list and updates the GUI display with a new player named "Cena" shown in the strategy board. The command results are then generated and shown to the user. + +The steps above are summarised using a sequence diagram as shown below. +![DeletePlayerSequenceDiagram](images/DeletePlayerSequenceDiagram.png) + +##### Design Consideration + +**Aspect: Should allow users to remove multiple players at once:** + +* **Alternative 1:** Users can remove multiple players at once. + * Pros: Possibly improve the efficiency for users. + * Cons: User inputs are more prone to errors. +* **Alternative 2 (current choice):** Users can only remove one player at a time. + * Pros: Easy to implement. + * Cons: Users need to repeat the same command multiple times to remove multiple players. + +#### 4.3.3 Move Feature + +##### Implementation + +This feature allows the user to move players on the strategy board. It is facilitated by `ModelManager` which +makes use of the method `#deletePlayer()`, `#addPlayer()`, and `#updateFilteredPlayerList()` to move an existing player to a new position on the strategy board. + +Given below is an example usage scenario of how the moving player mechanism behaves at each step. + +Step 1: The user inputs `move Cena x/200 y/100` to move a player named `Cena` to a new position with x-coordinate `200` and y-coordinate `100` on the strategy board. + +Step 2: This argument is passed into `LogicManager` which calls on `Coach2K22Parser#parseCommand()` to find a suitable parser class to process the user inputs. This initialises the `MovePlayerCommandParser` where its method `#parse()` is called to process the user inputs. + +Step 3: It then returns a newly initialised `MovePlayerCommand` back to the `LogicManager` for command execution. + +Step 4: During the command execution, the `ModelManager#deletePlayer()` is firstly called which removes the player named "Cena" from an internal list. +Then the `ModelManager#addPlayer()` is called which adds the player with same name but new position to an internal list and updates the GUI display with a player named "Cena" with new position `(200, 100)` shown in the strategy board. +At last, the command results are then generated and shown to the user. + +The steps above are summarised using a sequence diagram as shown below. +![MovePlayerSequenceDiagram](images/MovePlayerSequenceDiagram.png) + +##### Design Consideration + +**Aspect: Should allow users to move multiple players at once:** +* **Alternative 1:** Users can move multiple players at once. + * Pros: Possibly improve the efficiency for users. + * Cons: User inputs are more prone to errors. +* **Alternative 2 (current choice):** Users can only move one player at a time. + * Pros: Easy to implement. + * Cons: Users need to repeat the same command multiple times to move multiple players. -------------------------------------------------------------------------------------------------------------------- diff --git a/docs/diagrams/AddPlayerSequenceDiagram.puml b/docs/diagrams/AddPlayerSequenceDiagram.puml index 5e8f38b4923..6d8a73c4dd4 100644 --- a/docs/diagrams/AddPlayerSequenceDiagram.puml +++ b/docs/diagrams/AddPlayerSequenceDiagram.puml @@ -48,7 +48,7 @@ deactivate Coach2K22Parser LogicManager -> AddPlayerCommand : execute() activate AddPlayerCommand -AddPlayerCommand -> Model : addPlayer("Cena") +AddPlayerCommand -> Model : addPlayer(Player) activate Model Model --> AddPlayerCommand diff --git a/docs/diagrams/DeletePlayerSequenceDiagram.puml b/docs/diagrams/DeletePlayerSequenceDiagram.puml new file mode 100644 index 00000000000..7699f4e6313 --- /dev/null +++ b/docs/diagrams/DeletePlayerSequenceDiagram.puml @@ -0,0 +1,69 @@ +@startuml +!include style.puml + +box Logic LOGIC_COLOR_T1 +participant ":LogicManager" as LogicManager LOGIC_COLOR +participant ":Coach2K22Parser" as Coach2K22Parser LOGIC_COLOR +participant ":DeletePlayerCommandParser" as DeletePlayerCommandParser LOGIC_COLOR +participant "p:DeletePlayerCommand" as DeletePlayerCommand LOGIC_COLOR +participant ":CommandResult" as CommandResult LOGIC_COLOR +end box + +box Model MODEL_COLOR_T1 +participant ":Model" as Model MODEL_COLOR +end box + +[-> LogicManager : execute("del-player Cena") +activate LogicManager + +LogicManager -> Coach2K22Parser : parseCommand("del-player Cena") +activate Coach2K22Parser + +create DeletePlayerCommandParser +Coach2K22Parser -> DeletePlayerCommandParser +activate DeletePlayerCommandParser + +DeletePlayerCommandParser --> Coach2K22Parser +deactivate DeletePlayerCommandParser + +Coach2K22Parser -> DeletePlayerCommandParser : parse("Cena") +activate DeletePlayerCommandParser + +create DeletePlayerCommand +DeletePlayerCommandParser -> DeletePlayerCommand +activate DeletePlayerCommand + +DeletePlayerCommand --> DeletePlayerCommandParser : p +deactivate DeletePlayerCommand + +DeletePlayerCommandParser --> Coach2K22Parser : p +deactivate DeletePlayerCommandParser +'Hidden arrow to position the destroy marker below the end of the activation bar. +DeletePlayerCommandParser -[hidden]-> Coach2K22Parser +destroy DeletePlayerCommandParser + +Coach2K22Parser --> LogicManager : p +deactivate Coach2K22Parser + +LogicManager -> DeletePlayerCommand : execute() +activate DeletePlayerCommand + +DeletePlayerCommand -> Model : deletePlayer(Player) +activate Model + +Model --> DeletePlayerCommand +deactivate Model + +create CommandResult +DeletePlayerCommand -> CommandResult +activate CommandResult + +CommandResult --> DeletePlayerCommand +deactivate CommandResult + +DeletePlayerCommand --> LogicManager : result +deactivate DeletePlayerCommand + +[<--LogicManager +deactivate LogicManager +@enduml diff --git a/docs/diagrams/DeleteSequenceDiagram.puml b/docs/diagrams/DeleteSequenceDiagram.puml index 1dc2311b245..1184437fd46 100644 --- a/docs/diagrams/DeleteSequenceDiagram.puml +++ b/docs/diagrams/DeleteSequenceDiagram.puml @@ -3,7 +3,7 @@ box Logic LOGIC_COLOR_T1 participant ":LogicManager" as LogicManager LOGIC_COLOR -participant ":AddressBookParser" as AddressBookParser LOGIC_COLOR +participant ":Coach2K22Parser" as Coach2K22Parser LOGIC_COLOR participant ":DeleteCommandParser" as DeleteCommandParser LOGIC_COLOR participant "d:DeleteCommand" as DeleteCommand LOGIC_COLOR participant ":CommandResult" as CommandResult LOGIC_COLOR @@ -16,17 +16,17 @@ end box [-> LogicManager : execute("delete 1") activate LogicManager -LogicManager -> AddressBookParser : parseCommand("delete 1") -activate AddressBookParser +LogicManager -> Coach2K22Parser : parseCommand("delete 1") +activate Coach2K22Parser create DeleteCommandParser -AddressBookParser -> DeleteCommandParser +Coach2K22Parser -> DeleteCommandParser activate DeleteCommandParser -DeleteCommandParser --> AddressBookParser +DeleteCommandParser --> Coach2K22Parser deactivate DeleteCommandParser -AddressBookParser -> DeleteCommandParser : parse("1") +Coach2K22Parser -> DeleteCommandParser : parse("1") activate DeleteCommandParser create DeleteCommand @@ -36,14 +36,14 @@ activate DeleteCommand DeleteCommand --> DeleteCommandParser : d deactivate DeleteCommand -DeleteCommandParser --> AddressBookParser : d +DeleteCommandParser --> Coach2K22Parser : d deactivate DeleteCommandParser 'Hidden arrow to position the destroy marker below the end of the activation bar. -DeleteCommandParser -[hidden]-> AddressBookParser +DeleteCommandParser -[hidden]-> Coach2K22Parser destroy DeleteCommandParser -AddressBookParser --> LogicManager : d -deactivate AddressBookParser +Coach2K22Parser --> LogicManager : d +deactivate Coach2K22Parser LogicManager -> DeleteCommand : execute() activate DeleteCommand diff --git a/docs/diagrams/LogicClassDiagram.puml b/docs/diagrams/LogicClassDiagram.puml index d4193173e18..aca2f458245 100644 --- a/docs/diagrams/LogicClassDiagram.puml +++ b/docs/diagrams/LogicClassDiagram.puml @@ -6,7 +6,7 @@ skinparam classBackgroundColor LOGIC_COLOR package Logic { -Class AddressBookParser +Class Coach2K22Parser Class XYZCommand Class CommandResult Class "{abstract}\nCommand" as Command @@ -27,8 +27,8 @@ Class HiddenOutside #FFFFFF HiddenOutside ..> Logic LogicManager .right.|> Logic -LogicManager -right->"1" AddressBookParser -AddressBookParser ..> XYZCommand : creates > +LogicManager -right->"1" Coach2K22Parser +Coach2K22Parser ..> XYZCommand : creates > XYZCommand -up-|> Command LogicManager .left.> Command : executes > diff --git a/docs/diagrams/MovePlayerSequenceDiagram.puml b/docs/diagrams/MovePlayerSequenceDiagram.puml new file mode 100644 index 00000000000..8fa293f4a75 --- /dev/null +++ b/docs/diagrams/MovePlayerSequenceDiagram.puml @@ -0,0 +1,75 @@ +@startuml +!include style.puml + +box Logic LOGIC_COLOR_T1 +participant ":LogicManager" as LogicManager LOGIC_COLOR +participant ":Coach2K22Parser" as Coach2K22Parser LOGIC_COLOR +participant ":MovePlayerCommandParser" as MovePlayerCommandParser LOGIC_COLOR +participant "p:MovePlayerCommand" as MovePlayerCommand LOGIC_COLOR +participant ":CommandResult" as CommandResult LOGIC_COLOR +end box + +box Model MODEL_COLOR_T1 +participant ":Model" as Model MODEL_COLOR +end box + +[-> LogicManager : execute("move Cena ...") +activate LogicManager + +LogicManager -> Coach2K22Parser : parseCommand("move Cena ...") +activate Coach2K22Parser + +create MovePlayerCommandParser +Coach2K22Parser -> MovePlayerCommandParser +activate MovePlayerCommandParser + +MovePlayerCommandParser --> Coach2K22Parser +deactivate MovePlayerCommandParser + +Coach2K22Parser -> MovePlayerCommandParser : parse("Cena ...") +activate MovePlayerCommandParser + +create MovePlayerCommand +MovePlayerCommandParser -> MovePlayerCommand +activate MovePlayerCommand + +MovePlayerCommand --> MovePlayerCommandParser : p +deactivate MovePlayerCommand + +MovePlayerCommandParser --> Coach2K22Parser : p +deactivate MovePlayerCommandParser +'Hidden arrow to position the destroy marker below the end of the activation bar. +MovePlayerCommandParser -[hidden]-> Coach2K22Parser +destroy MovePlayerCommandParser + +Coach2K22Parser --> LogicManager : p +deactivate Coach2K22Parser + +LogicManager -> MovePlayerCommand : execute() +activate MovePlayerCommand + +MovePlayerCommand -> Model : deletePlayer(Player) +activate Model + +Model --> MovePlayerCommand +deactivate Model + +MovePlayerCommand -> Model : addPlayer(Player) +activate Model + +Model --> MovePlayerCommand +deactivate Model + +create CommandResult +MovePlayerCommand -> CommandResult +activate CommandResult + +CommandResult --> MovePlayerCommand +deactivate CommandResult + +MovePlayerCommand --> LogicManager : result +deactivate MovePlayerCommand + +[<--LogicManager +deactivate LogicManager +@enduml diff --git a/docs/diagrams/ParserClasses.puml b/docs/diagrams/ParserClasses.puml index 0c7424de6e0..cc69f4a62c1 100644 --- a/docs/diagrams/ParserClasses.puml +++ b/docs/diagrams/ParserClasses.puml @@ -9,7 +9,7 @@ Class XYZCommand package "Parser classes"{ Class "<>\nParser" as Parser -Class AddressBookParser +Class Coach2K22Parser Class XYZCommandParser Class CliSyntax Class ParserUtil @@ -19,12 +19,12 @@ Class Prefix } Class HiddenOutside #FFFFFF -HiddenOutside ..> AddressBookParser +HiddenOutside ..> Coach2K22Parser -AddressBookParser .down.> XYZCommandParser: creates > +Coach2K22Parser .down.> XYZCommandParser: creates > XYZCommandParser ..> XYZCommand : creates > -AddressBookParser ..> Command : returns > +Coach2K22Parser ..> Command : returns > XYZCommandParser .up.|> Parser XYZCommandParser ..> ArgumentMultimap XYZCommandParser ..> ArgumentTokenizer diff --git a/docs/images/AddPlayerSequenceDiagram.png b/docs/images/AddPlayerSequenceDiagram.png index d587872375bb19a7ff3b384be3cc39e1b2369ff2..ed9ec1e62b43b94d3be87df24f3c18d5fb626cf9 100644 GIT binary patch delta 8951 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 delta 9191 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 E4|rP&(*OVf diff --git a/docs/images/DeletePlayerSequenceDiagram.png b/docs/images/DeletePlayerSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..105c22f758a63a61139a6dc41b34024b32f112ef GIT binary patch literal 32576 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 literal 0 HcmV?d00001 diff --git a/docs/images/DeleteSequenceDiagram.png b/docs/images/DeleteSequenceDiagram.png index fa327b39618308d02b8e0627791af7979ef63947..c077edd712d24eb335e1693d5e2917d8a7581a13 100644 GIT binary patch literal 28704 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 literal 33030 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 diff --git a/docs/images/LogicClassDiagram.png b/docs/images/LogicClassDiagram.png index 9e9ba9f79e50defa935443aa80c54165e8b74564..5ddf19327a2f1fd39eddf4e8a13b2dbab0b6d4be 100644 GIT binary patch literal 32285 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 LEBr-J@BRM)7V)j6 literal 34952 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%0A{?cn)Z? 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 i7#LPi4GfIK!Y!;CQhqp?Weo677>IL%wtX diff --git a/docs/images/MovePlayerSequenceDiagram.png b/docs/images/MovePlayerSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..4615fc7fb600eb6eedccf0eca0be489d44bf77ec GIT binary patch literal 34874 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 literal 0 HcmV?d00001 diff --git a/docs/images/ParserClasses.png b/docs/images/ParserClasses.png index e7b4c8880cda5434408fb01c2b02a945f80ab422..ea91d103dc7505602a78983aff95e48b35c029ab 100644 GIT binary patch literal 24743 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 z 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 P4UU|&vQ&Yj(Z~M-HTqlB From 977979fc7fafaa8ebf204a5198e3e5eca691e274 Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Mon, 11 Apr 2022 13:49:24 +0800 Subject: [PATCH 390/455] Add use case for move player feature --- docs/DeveloperGuide.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index b0a6dec07db..b11f6b61685 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -1196,6 +1196,31 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli Use case resumes at step 2. +**Use case: Move a player on the strategy board** + +**MSS** + +1. User requests to show all players on the strategy board +2. Coach2K22 shows players +3. User requests to move a player on the strategy board +4. Coach2K22 shows the updated strategy board with the player moved to the new position + + Use case ends. + +**Extension** +* 3a. The player name is invalid. + * 3a1. Coach2K22 shows an error message. + + Use case resumes at step 2. +* 3b. The player name is not on the strategy board. + * 3b1. Coach2K22 shows an error message. + + Use case resumes at step 2. +* 3c. The position is invalid. + * 3c1. Coach2K22 shows an error message. + + Use case resumes at step 2. + **Use case: Load new background image for strategy tab** **MSS** From d785319f50e37e35ae87f5a17aff86350ad9e10d Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Mon, 11 Apr 2022 14:04:40 +0800 Subject: [PATCH 391/455] Revert the player name limit to 50 --- .../address/logic/commands/strategy/AddPlayerCommand.java | 2 +- src/main/java/seedu/address/model/strategy/Player.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/strategy/AddPlayerCommand.java b/src/main/java/seedu/address/logic/commands/strategy/AddPlayerCommand.java index 82e90645304..056d2fd5db1 100644 --- a/src/main/java/seedu/address/logic/commands/strategy/AddPlayerCommand.java +++ b/src/main/java/seedu/address/logic/commands/strategy/AddPlayerCommand.java @@ -19,7 +19,7 @@ public class AddPlayerCommand extends Command { + ": Add a player in the strategy panel. " + "Parameters: " + "PLAYER_NAME" - + "(must be non-empty, not more than 24 characters and does not contain \"/\")\n" + + "(must be non-empty, not more than 50 characters and does not contain \"/\")\n" + "Example: " + COMMAND_WORD + " " + "Lionel Messi"; diff --git a/src/main/java/seedu/address/model/strategy/Player.java b/src/main/java/seedu/address/model/strategy/Player.java index f6e199cf71b..8438ea95818 100644 --- a/src/main/java/seedu/address/model/strategy/Player.java +++ b/src/main/java/seedu/address/model/strategy/Player.java @@ -7,7 +7,7 @@ public class Player { public static final String MESSAGE_CONSTRAINTS = "Player name cannot be empty" - + " and must be not more then 24 characters" + + " and must be not more then 50 characters" + " and must not contain \"/\". \n"; private static final int DEF_XCOORD = 50; private static final int DEF_YCOORD = 50; @@ -42,7 +42,7 @@ public Player(String name, int xCoord, int yCoord) { * Returns true if the given player name is a valid player name. */ public static boolean isValidPlayer(String playerName) { - return !playerName.isEmpty() && playerName.length() <= 24 && !playerName.contains("/"); + return !playerName.isEmpty() && playerName.length() <= 50 && !playerName.contains("/"); } //Getters From 8746095222225bf13d343ec8d72ae1c798b6f80c Mon Sep 17 00:00:00 2001 From: simjunheng Date: Mon, 11 Apr 2022 14:33:26 +0800 Subject: [PATCH 392/455] Add Appendix: Instruction for Manual Testing into Developer Guide --- docs/DeveloperGuide.md | 143 ++++++++++++++++++++++++++++++++++------- 1 file changed, 121 insertions(+), 22 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index eb9ea7d3454..960a89ce48a 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -1317,38 +1317,41 @@ testers are expected to do more *exploratory* testing. 1. Initial launch - 1. Download the jar file and copy into an empty folder + 1. Download the jar file and copy into an empty folder - 2. Double-click the jar file Expected: Shows the GUI with a set of sample contacts. The window size may not be optimum. + 2. Double-click the jar file Expected: Shows the GUI with a set of sample contacts. The window size may not be optimum. -2Saving window preferences +2. Saving window preferences - 1. Resize the window to an optimum size. Move the window to a different location. Close the window. + 1. Resize the window to an optimum size. Move the window to a different location. Close the window. - 2. Re-launch the app by double-clicking the jar file.
      - Expected: The most recent window size and location is retained. + 2. Re-launch the app by double-clicking the jar file.
      + Expected: The most recent window size and location is retained. -### 7.2 Deleting a person +### 7.3 Saving data -1. Deleting a person while all persons are being shown +1. Dealing with corrupted data files - 1. Prerequisites: List all persons using the `list` command. Multiple persons in the list. +1. Stop the program. - 2. Test case: `delete 1`
      - Expected: First contact is deleted from the list. Details of the deleted contact shown in the status message. Timestamp in the status bar is updated. +2. Delete all files in the folder `data`; This folder should be found in the same directory as your JAR file. - 3. Test case: `delete 0`
      - Expected: No person is deleted. Error details shown in the status message. Status bar remains the same. +3. Restart the program. - 4. Other incorrect delete commands to try: `delete`, `delete x`, `...` (where x is larger than the list size)
      - Expected: Similar to previous. - -### 7.3 Saving data +### 7.2 Deleting a person -1. Dealing with missing/corrupted data files +1. Deleting a person while all persons are being shown + + 1. Prerequisites: List all persons using the `list` command. Multiple persons in the list. + + 2. Test case: `delete 1`
      + Expected: First contact is deleted from the list. Details of the deleted contact shown in the status message. Timestamp in the status bar is updated. - 1. _{explain how to simulate a missing/corrupted file, and the expected behavior}_ + 3. Test case: `delete 0`
      + Expected: No person is deleted. Error details shown in the status message. Status bar remains the same. + 4. Other incorrect delete commands to try: `delete`, `delete x`, `...` (where x is larger than the list size)
      + Expected: Similar to previous. ### 7.4 Adding a Strength/Weakness/Miscellaneous note to a person @@ -1384,7 +1387,7 @@ testers are expected to do more *exploratory* testing. Expected: Similar to previous, except the note is deleted from the weakness list. 5. Test case: `misc-del 1 1`
      - Expected: Similar to previous, except the note is deleted from the misc list. + Expected: Similar to previous, except the note is deleted from the misc list. 6. Test case: `strength-del 0 1`
      Expected: No note is deleted. Error details shown in the status message. Status bar remains the same. @@ -1427,10 +1430,10 @@ testers are expected to do more *exploratory* testing. Expected: The entire contact list is sorted by total number of strengths in descending order. 4. Test case: `sort-weakness`
      - Expected: The entire contact list is sorted by total number of weaknesses in descending order. + Expected: The entire contact list is sorted by total number of weaknesses in descending order. 5. Test case: `sort-strength abc`
      - Expected: The entire contact list is sorted by total number of strengths in descending order (anything after the command word is ignored). + Expected: The entire contact list is sorted by total number of strengths in descending order (anything after the command word is ignored). ### 7.8 Load new image to serve as court in Strategy Tab @@ -1446,3 +1449,99 @@ testers are expected to do more *exploratory* testing. 5. Test case: `load-court test/`
      Expected: Similar to previous. Even if `test.png` exists, as `/` are not allowed in command argument. + +### 7.9 Finding persons by name or tag + +1. Find persons matching any of the given keywords from our contact list. You can choose to find by `NAME(s)`, `TAG(s)`, or both. + +2. Prerequisites: Contact List should not be empty. + +3. Test case: `find-p n/Alan t/team1`
      + Expected: All persons whose name matches the keyword `Alan` (case-insensitive) or tag matches the keyword `team1`(case-insensitive). + +4. Test case: `find-p n/Alan n/John`
      + Expected: All persons whose name matches at least one of the keywords `Alan` or `John` (case-insensitive). + +5. Test case: `find-p t/team1 n/team2` + Expected: All persons whose tag matches at least one of the keyword `team1` or `team2` (case-insensitive). + +6. Test case: `find-p` + Expected: Error message shown in the status message denoting the arguments `find-p` takes in. + +### 7.10 Finding tasks by name or tag + +1. Find tasks matching any of the given keywords from our contact list. You can choose to find by `NAME(s)`, `TAG(s)`, or both. + +2. Prerequisites: Task List should not be empty. + +3. Test case: `find-t n/Meeting t/team1`
      + Expected: All persons whose name matches the keyword `Meeting` (case-insensitive) or tag matches the keyword `team1`(case-insensitive). + +4. Test case: `find-t n/Meeting n/Talk`
      + Expected: All persons whose name matches at least one of the keywords `Meeting` or `Talk` (case-insensitive). + +5. Test case: `find-t t/team1 n/team2`
      + Expected: All persons whose tag matches at least one of the keyword `team1` or `team2` (case-insensitive). + +6. Test case: `find-t`
      + Expected: Error message shown in the status message denoting the arguments `find-t` takes in. + +### 7.11 Finding persons tagged to a task + +1. Pull out the contact information of persons tagged to a task. + +2. Prerequisites: Task List should not be empty. + +3. Assumption: All tasks have persons tagged to it. + +3.1 Test case: `get-person 1`
      +Expected: Switch to the contacts tab and show contact details of all persons tagged to the first task in the task list. + +3.2 Test case: `get-person`
      +Expected: Error message shown in the status message denoting the arguments `get-person` takes in. + +4. Assumption: All tasks do not have persons tagged to it. + +4.1 Test case: `get-person 1`
      +Expected: Switch to the contacts tab and show an empty contact list. + +4.2 Test case: `get-person`
      +Expected: Same as point 3.2. + +### 7.12 Adding a person +1. Add a person into the contact list. + +2. Test case: `add-p n/Johnson p/83918273 a/Woodlands Avenue 4 e/johnson@gmail.com t/Hustlers`
      + Expected: Add a person named `Johnson` with his relevant details into the contact list + +3. Test case: `add-p`
      + Expected: Error message shown in the status message denoting the arguments `add-p` takes in. + +### 7.13 Editing a person +1. Edit a person in the contact list. + +2. Prerequisites: Contact list should not be empty. + +3. Assumption: The first person in the contact list has the name `Johnson`. + + 3.1 Test case: `edit-p 1 n/John`
      + Expected: The first person in the contact list will have his name changed to `John`. + Additionally, all tasks with person `Johnson` tagged to it will have the specific participant tag changed from `Johnson` to `John`. + + 3.2 Test case: `edit-p 2 a/Woodlands`
      + Expected: The second person in the contact list will have his address details changed to `Woodlands`. + + 3.3 Test case: `edit-p 1`
      + Expected: Error message shown in the status message denoting the arguments `edit-p` takes in. + + 3.4 Test case: `edit-p n/hello`
      + Expected: Same as previous. + + 3.5 Test case: `edit-p`
      + Expected: Same as previous. + +### 7.14 Clearing all contact entries +1. Clears all entries from the contact list. + +2. Test case: `clear-p`
      + Expected: All entries in the contact list will be cleared. It also clears the participant field of all tasks. From 34c8e5285658ffe5c1812d635c8422b807eb28e6 Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Mon, 11 Apr 2022 14:45:36 +0800 Subject: [PATCH 393/455] Update move player feature to support relative positions --- .../seedu/address/model/strategy/Player.java | 2 +- .../java/seedu/address/ui/StrategyPanel.java | 36 ++++++++++++------- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/src/main/java/seedu/address/model/strategy/Player.java b/src/main/java/seedu/address/model/strategy/Player.java index f6e199cf71b..9ae8dc09cc2 100644 --- a/src/main/java/seedu/address/model/strategy/Player.java +++ b/src/main/java/seedu/address/model/strategy/Player.java @@ -10,7 +10,7 @@ public class Player { + " and must be not more then 24 characters" + " and must not contain \"/\". \n"; private static final int DEF_XCOORD = 50; - private static final int DEF_YCOORD = 50; + private static final int DEF_YCOORD = 500; private final String name; private int xCoord; diff --git a/src/main/java/seedu/address/ui/StrategyPanel.java b/src/main/java/seedu/address/ui/StrategyPanel.java index 5159bf56e02..4d7173cabf3 100644 --- a/src/main/java/seedu/address/ui/StrategyPanel.java +++ b/src/main/java/seedu/address/ui/StrategyPanel.java @@ -42,11 +42,13 @@ public class StrategyPanel extends UiPart { private static final String FXML = "StrategyPanel.fxml"; private static final Logger logger = LogsCenter.getLogger(MainApp.class); private static final Map table = new HashMap<>(); + private static final int BOARD_WIDTH = 1000; + private static final int BOARD_HEIGHT = 600; private static double orgSceneX; private static double orgSceneY; - private static double orgCenterX; - private static double orgCenterY; + private static double orgTranslateX; + private static double orgTranslateY; @FXML private Pane playerView; @@ -70,8 +72,8 @@ public class StrategyPanel extends UiPart { public void handle(MouseEvent t) { orgSceneX = t.getSceneX(); orgSceneY = t.getSceneY(); - orgCenterX = ((StackPane) (t.getSource())).getLayoutX(); - orgCenterY = ((StackPane) (t.getSource())).getLayoutY(); + orgTranslateX = ((StackPane) (t.getSource())).getTranslateX(); + orgTranslateY = ((StackPane) (t.getSource())).getTranslateY(); //logger.log(Level.INFO, "orgCenterX: {0}", new Object[]{orgCenterX}); //logger.log(Level.INFO, "orgCenterY: {0}", new Object[]{orgCenterY}); } @@ -85,15 +87,19 @@ public void handle(MouseEvent t) { public void handle(MouseEvent t) { double offsetX = t.getSceneX() - orgSceneX; double offsetY = t.getSceneY() - orgSceneY; - double newCenterX = orgCenterX + offsetX; - double newCenterY = orgCenterY + offsetY; + double newTranslateX = orgTranslateX + offsetX; + double newTranslateY = orgTranslateY + offsetY; StackPane tmp = (StackPane) (t.getSource()); - tmp.setLayoutX(newCenterX); - tmp.setLayoutY(newCenterY); - //logger.log(Level.INFO, "newCenterX: {0} new CenterY: {1}", - // new Object[]{offsetX + orgCenterX, offsetY + orgCenterY}); + //tmp.setLayoutX(newCenterX); + //tmp.setLayoutY(newCenterY); + double ratioX = newTranslateX / strategyAnchorPane.getWidth(); + double ratioY = newTranslateY / strategyAnchorPane.getHeight(); + tmp.translateXProperty().bind(strategyAnchorPane.widthProperty().multiply(ratioX)); + tmp.translateYProperty().bind(strategyAnchorPane.heightProperty().multiply(ratioY)); + //logger.log(Level.INFO, "newTranslateX: {0} new TranslateY: {1} ratioX: {2} ratioY: {3}", + // new Object[]{newTranslateX, newTranslateY, ratioX, ratioY}); //logger.log(Level.INFO, "newTrueX: {0} new TrueY: {1}", - // new Object[]{tmp.getCenterX(), tmp.getCenterY()}); + // new Object[]{tmp.getLayoutX(), tmp.getLayoutY()}); } }; @@ -212,8 +218,12 @@ private void initStack(StackPane stack, String name, double x, double y, double text.xProperty().bind(cr.centerXProperty()); text.yProperty().bind(cr.centerYProperty()); stack.getChildren().addAll(cr, text); - stack.setTranslateX(x); - stack.setTranslateY(y); + //stack.setTranslateX(x); + //stack.setTranslateY(y); + stack.translateXProperty(). + bind(strategyAnchorPane.widthProperty().divide(BOARD_WIDTH).multiply(x)); + stack.translateYProperty(). + bind(strategyAnchorPane.heightProperty().divide(BOARD_HEIGHT).multiply(BOARD_HEIGHT - y)); stack.setOnMousePressed(pressHandler); stack.setOnMouseDragged(dragHandler); } From 9b8ccc3e0267e816b6d02181352e699e0f86d589 Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Mon, 11 Apr 2022 14:49:50 +0800 Subject: [PATCH 394/455] Fix checkStyle errors --- src/main/java/seedu/address/ui/StrategyPanel.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/seedu/address/ui/StrategyPanel.java b/src/main/java/seedu/address/ui/StrategyPanel.java index 4d7173cabf3..58318af9252 100644 --- a/src/main/java/seedu/address/ui/StrategyPanel.java +++ b/src/main/java/seedu/address/ui/StrategyPanel.java @@ -220,10 +220,10 @@ private void initStack(StackPane stack, String name, double x, double y, double stack.getChildren().addAll(cr, text); //stack.setTranslateX(x); //stack.setTranslateY(y); - stack.translateXProperty(). - bind(strategyAnchorPane.widthProperty().divide(BOARD_WIDTH).multiply(x)); - stack.translateYProperty(). - bind(strategyAnchorPane.heightProperty().divide(BOARD_HEIGHT).multiply(BOARD_HEIGHT - y)); + stack.translateXProperty() + .bind(strategyAnchorPane.widthProperty().divide(BOARD_WIDTH).multiply(x)); + stack.translateYProperty() + .bind(strategyAnchorPane.heightProperty().divide(BOARD_HEIGHT).multiply(BOARD_HEIGHT - y)); stack.setOnMousePressed(pressHandler); stack.setOnMouseDragged(dragHandler); } From cf69d800051e826ae55dcf6c4e1c6c367613f90f Mon Sep 17 00:00:00 2001 From: simjunheng Date: Mon, 11 Apr 2022 15:09:30 +0800 Subject: [PATCH 395/455] Add Appendix Effort in Developer Guide --- docs/DeveloperGuide.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 960a89ce48a..0bbd91c4840 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -1545,3 +1545,15 @@ Expected: Same as point 3.2. 2. Test case: `clear-p`
      Expected: All entries in the contact list will be cleared. It also clears the participant field of all tasks. + +-------------------------------------------------------------------------------------------------------------------- + +## **8. Appendix: Effort** + +1. The team has extended the program to deal with three different entity types: `Person`, `Task`, `Strategy`. These entities + are interconnected where features specific to `Person` may directly affect the `Task` entity. Deliberate and extensive checks are implemented + across features to ensure functional correctness. + +2. The team has implemented a JavaFX strategy board with draggable nodes. In addition, a `move` feature is implemented to cater to + existing requirements and also, user who prefer CLI over GUI. It was particularly tough to implement this as nodes placements are + determined by its relative position \ No newline at end of file From 81e09730f7a881fa14eadc61ce46a00b602891a5 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Mon, 11 Apr 2022 15:19:34 +0800 Subject: [PATCH 396/455] Edit grid-pane --- .../java/seedu/address/ui/StrategyPanel.java | 20 ------------------- src/main/resources/view/StrategyPanel.fxml | 4 ++-- 2 files changed, 2 insertions(+), 22 deletions(-) diff --git a/src/main/java/seedu/address/ui/StrategyPanel.java b/src/main/java/seedu/address/ui/StrategyPanel.java index 58318af9252..b18dffbf515 100644 --- a/src/main/java/seedu/address/ui/StrategyPanel.java +++ b/src/main/java/seedu/address/ui/StrategyPanel.java @@ -123,26 +123,6 @@ public StrategyPanel(ObservableList playerList) { // brings slider to the back vSlider.toBack(); hSlider.toBack(); - sliderValueChangeOnWindowResize(); - } - - /** - * Listens to changes in the size of strategy anchor pane and reflects the - * value on the slider. - */ - private void sliderValueChangeOnWindowResize() { - strategyAnchorPane.widthProperty().addListener(new ChangeListener() { - @Override - public void changed(ObservableValue observable, Number oldValue, Number newValue) { - hSlider.setMax(Math.round(strategyAnchorPane.getWidth())); - } - }); - strategyAnchorPane.heightProperty().addListener(new ChangeListener() { - @Override - public void changed(ObservableValue observable, Number oldValue, Number newValue) { - vSlider.setMax(Math.round(strategyAnchorPane.getHeight())); - } - }); } private void changeOnAdd(List addedSubList) { diff --git a/src/main/resources/view/StrategyPanel.fxml b/src/main/resources/view/StrategyPanel.fxml index 69911a5a18f..d886bfd468f 100644 --- a/src/main/resources/view/StrategyPanel.fxml +++ b/src/main/resources/view/StrategyPanel.fxml @@ -12,6 +12,6 @@ - - + + From 9335453ba86b55641d205b2553dbe60e96e1001e Mon Sep 17 00:00:00 2001 From: simjunheng Date: Mon, 11 Apr 2022 15:22:13 +0800 Subject: [PATCH 397/455] Fix Checkstyle --- src/main/java/seedu/address/ui/StrategyPanel.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/seedu/address/ui/StrategyPanel.java b/src/main/java/seedu/address/ui/StrategyPanel.java index b18dffbf515..053b69d7e35 100644 --- a/src/main/java/seedu/address/ui/StrategyPanel.java +++ b/src/main/java/seedu/address/ui/StrategyPanel.java @@ -9,8 +9,6 @@ import java.util.logging.Logger; import javax.imageio.ImageIO; -import javafx.beans.value.ChangeListener; -import javafx.beans.value.ObservableValue; import javafx.collections.ListChangeListener; import javafx.collections.ObservableList; import javafx.embed.swing.SwingFXUtils; From 2e00d1180f23065f84b0e1e31df7354aa4143521 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Mon, 11 Apr 2022 15:33:42 +0800 Subject: [PATCH 398/455] Edited Effort section in Developer Guide --- docs/DeveloperGuide.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 0bbd91c4840..6c14b379120 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -1555,5 +1555,6 @@ Expected: Same as point 3.2. across features to ensure functional correctness. 2. The team has implemented a JavaFX strategy board with draggable nodes. In addition, a `move` feature is implemented to cater to - existing requirements and also, user who prefer CLI over GUI. It was particularly tough to implement this as nodes placements are - determined by its relative position \ No newline at end of file + existing requirements. It was tough to implement this as nodes placements are determined by its relative position. Our team also + tried to get these placements as accurate as possible to ensure functional correctness - increasing the implementation difficulty levels. + \ No newline at end of file From 0b21b187c978e39c2bdcd96f83998b265fad26d9 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Mon, 11 Apr 2022 15:36:12 +0800 Subject: [PATCH 399/455] Fix Checkstyle --- docs/DeveloperGuide.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 6c14b379120..5a07532706f 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -1556,5 +1556,4 @@ Expected: Same as point 3.2. 2. The team has implemented a JavaFX strategy board with draggable nodes. In addition, a `move` feature is implemented to cater to existing requirements. It was tough to implement this as nodes placements are determined by its relative position. Our team also - tried to get these placements as accurate as possible to ensure functional correctness - increasing the implementation difficulty levels. - \ No newline at end of file + tried to get these placements as accurate as possible to ensure functional correctness - increasing the implementation difficulty levels. \ No newline at end of file From d4bfbc3bcd9af3a9adcd5e6726cd790c656dab20 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Mon, 11 Apr 2022 15:38:05 +0800 Subject: [PATCH 400/455] Fix checkstyle --- docs/DeveloperGuide.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 5a07532706f..6c14b379120 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -1556,4 +1556,5 @@ Expected: Same as point 3.2. 2. The team has implemented a JavaFX strategy board with draggable nodes. In addition, a `move` feature is implemented to cater to existing requirements. It was tough to implement this as nodes placements are determined by its relative position. Our team also - tried to get these placements as accurate as possible to ensure functional correctness - increasing the implementation difficulty levels. \ No newline at end of file + tried to get these placements as accurate as possible to ensure functional correctness - increasing the implementation difficulty levels. + \ No newline at end of file From a93985b0eb6d08a4a47a4431585d3eaeb57d631f Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Mon, 11 Apr 2022 16:00:14 +0800 Subject: [PATCH 401/455] Fix the position of move player --- src/main/java/seedu/address/ui/StrategyPanel.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/address/ui/StrategyPanel.java b/src/main/java/seedu/address/ui/StrategyPanel.java index 053b69d7e35..954b260d1c8 100644 --- a/src/main/java/seedu/address/ui/StrategyPanel.java +++ b/src/main/java/seedu/address/ui/StrategyPanel.java @@ -199,9 +199,11 @@ private void initStack(StackPane stack, String name, double x, double y, double //stack.setTranslateX(x); //stack.setTranslateY(y); stack.translateXProperty() - .bind(strategyAnchorPane.widthProperty().divide(BOARD_WIDTH).multiply(x)); + .bind((strategyAnchorPane.widthProperty().subtract(26)) + .divide(BOARD_WIDTH).multiply(x).subtract(40)); stack.translateYProperty() - .bind(strategyAnchorPane.heightProperty().divide(BOARD_HEIGHT).multiply(BOARD_HEIGHT - y)); + .bind((strategyAnchorPane.heightProperty().subtract(16)) + .divide(BOARD_HEIGHT).multiply(BOARD_HEIGHT - y).subtract(40)); stack.setOnMousePressed(pressHandler); stack.setOnMouseDragged(dragHandler); } From 790e6d0ebd8dd9e0559adb583964f46a73efb6d7 Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Mon, 11 Apr 2022 16:11:06 +0800 Subject: [PATCH 402/455] Resolve the bug that goes wrong when user name too long --- src/main/java/seedu/address/ui/StrategyPanel.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/main/java/seedu/address/ui/StrategyPanel.java b/src/main/java/seedu/address/ui/StrategyPanel.java index 954b260d1c8..4d70f1b951a 100644 --- a/src/main/java/seedu/address/ui/StrategyPanel.java +++ b/src/main/java/seedu/address/ui/StrategyPanel.java @@ -196,13 +196,12 @@ private void initStack(StackPane stack, String name, double x, double y, double text.xProperty().bind(cr.centerXProperty()); text.yProperty().bind(cr.centerYProperty()); stack.getChildren().addAll(cr, text); - //stack.setTranslateX(x); - //stack.setTranslateY(y); + double width = Math.max(cr.getRadius() * 2, text.getLayoutBounds().getWidth()); stack.translateXProperty() - .bind((strategyAnchorPane.widthProperty().subtract(26)) - .divide(BOARD_WIDTH).multiply(x).subtract(40)); + .bind((strategyAnchorPane.widthProperty().subtract(AnchorPane.getLeftAnchor(hSlider))) + .divide(BOARD_WIDTH).multiply(x).subtract(width / 2)); stack.translateYProperty() - .bind((strategyAnchorPane.heightProperty().subtract(16)) + .bind((strategyAnchorPane.heightProperty().subtract(AnchorPane.getTopAnchor(vSlider))) .divide(BOARD_HEIGHT).multiply(BOARD_HEIGHT - y).subtract(40)); stack.setOnMousePressed(pressHandler); stack.setOnMouseDragged(dragHandler); From 1f7ed194675b8bceee627dd64da147711e13eb11 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Mon, 11 Apr 2022 16:19:21 +0800 Subject: [PATCH 403/455] Fix Checkstyle --- docs/DeveloperGuide.md | 53 +++++++++++++++++++----------------------- docs/UserGuide.md | 24 +++++++++---------- 2 files changed, 36 insertions(+), 41 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 6c14b379120..a89af4c792d 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -262,7 +262,7 @@ parser class which corresponds with the provided command to parse the user's inp Step 3: Since there are no arguments for this command, a newly initialised `ClearPersonCommand` is returned to the `LogicManager` for command execution. -Step 4: During the command execution, the `ModelManager#setTask()` method is called multiple times to delete persons in all the tasks. After which, a new `AddressBook` object is passed into the `ModelManager#setAddressBook()` method which clears out the person list. +Step 4: During the command execution, the `ModelManager#setTask()` method is called multiple times to delete persons in all the tasks. After which, a new `AddressBook` object is passed into the `ModelManager#setAddressBook()` method which clears out the person list. Step 5: The GUI display is then updated to show an empty contact and new task list without any persons tagged to the tasks. @@ -315,14 +315,14 @@ The steps above are summarised using a sequence diagram as shown below. ##### Implementation -This feature allows the user to display selected persons in the contact list. It is facilitated by `ModelManager` which +This feature allows the user to display selected persons in the contact list. It is facilitated by `ModelManager` which makes use of the method `#updateFilteredPersonList()` to find persons by name or tag. Given below is an example usage scenario of how the find person mechanism behaves at each step. Step 1: The user inputs `find n/Alex t/friends` to find selected persons. -Step 2: This argument is passed into `LogicManager` which calls on `Coach2K22Parser#parseCommand()` to find a suitable parser class to process the user inputs. This initialises the `FindPersonCommandParser` where its method `#parse()` is called to process the user inputs. +Step 2: This argument is passed into `LogicManager` which calls on `Coach2K22Parser#parseCommand()` to find a suitable parser class to process the user inputs. This initialises the `FindPersonCommandParser` where its method `#parse()` is called to process the user inputs. Step 3: It then returns a newly initialised `FindPersonCommand` back to the `LogicManager` for command execution. @@ -537,7 +537,7 @@ The steps above are summarised using a sequence diagram as shown below. * Cons: Not as intuitive for the user. * **Alternative 2:** Single `edit` command that edits tasks/persons depending on parameters. * Pros: More intuitive for the user. - + #### 4.2.4 Clear Feature ##### Implementation @@ -612,7 +612,7 @@ The steps above are summarised using a sequence diagram as shown below. * **Alternative 1 (current choice):** A separate command for finding tasks and persons. * Pros: Easy to implement. * Cons: Hard to extend. - + * **Alternative 2:** A combined command for finding tasks and persons. * Pros: Easier and more intuitive for the user to understand. * Cons: Hard to implement. @@ -632,25 +632,25 @@ Step 2: This argument is passed into `LogicManager` which calls on `Coach2K22Par Step 3: It then returns a newly initialised `GetPersonCommand` back to the `LogicManager` for command execution. -Step 4: During the command execution, the `ModelManager#updateFilteredPersonList()` is called. The GUI display then updates the person list - showing only the contact details of persons tagged to the specified task. +Step 4: During the command execution, the `ModelManager#updateFilteredPersonList()` is called. The GUI display then updates the person list - showing only the contact details of persons tagged to the specified task. The steps above are summarised using a sequence diagram as shown below. ![GetPersonSequenceDiagram](images/GetPersonSequenceDiagram.png) - + ### 4.3 Strategic Planning #### 4.3.1 Add Feature ##### Implementation -This feature allows the user to add players to the strategy board. It is facilitated by `ModelManager` which +This feature allows the user to add players to the strategy board. It is facilitated by `ModelManager` which makes use of the method `#addPlayer()` and `#updateFilteredPlayerList()` to add a new player to the strategy board. Given below is an example usage scenario of how the add player mechanism behaves at each step. Step 1: The user inputs `add-player Cena` to add a new player to the strategy board. -Step 2: This argument is passed into `LogicManager` which calls on `Coach2K22Parser#parseCommand()` to find a suitable parser class to process the user inputs. This initialises the `AddPlayerCommandParser` where its method `#parse()` is called to process the user inputs. +Step 2: This argument is passed into `LogicManager` which calls on `Coach2K22Parser#parseCommand()` to find a suitable parser class to process the user inputs. This initialises the `AddPlayerCommandParser` where its method `#parse()` is called to process the user inputs. Step 3: It then returns a newly initialised `AddPlayerCommand` back to the `LogicManager` for command execution. @@ -700,8 +700,8 @@ The steps above are summarised using a sequence diagram as shown below. * **Alternative 2:** Allow for different filetypes of images (png, jpeg, etc.). * Pros: Easy to extend and more intuitive for the user. * Cons: Hard to implement. - - + + -------------------------------------------------------------------------------------------------------------------- ## **5. Documentation, logging, testing, configuration, dev-ops** @@ -773,9 +773,9 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli **Extensions** * 1a. The parameters supplied by the user is invalid. - + * 1a1. Coach2K22 shows an error message. - + Use case ends. * 1b. Compulsory parameters not supplied by the user. @@ -806,7 +806,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli * 3a1. Coach2K22 shows an error message. Use case resumes at step 2. - + **Use case: Add a strength to a person** **MSS** @@ -894,7 +894,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli * This use case describes a similar interaction between the user and Coach2K22 to that of `Delete a strength from a person` * Takes in a misc. index instead of a strength index - + **Use case: Find persons by name or tag** **MSS** @@ -911,7 +911,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli * 1a1. Coach2K22 shows an empty list. Use case ends. - + * 1b. The keyword provided is not indicated by a prefix e.g. `n/` or `t/`. * 1b1. Coach2K22 shows an error message. @@ -923,12 +923,12 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli * 1c1. Coach2K22 shows an error message. Use case ends. - + * 1d. Missing keyword after a prefix is given e.g. `n/` or `t/`. - + * 1d1. Coach2K22 shows an error message. - Use case ends. + Use case ends. **Use case: Sort address book by strengths in descending order** @@ -951,7 +951,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli * This use case describes a similar interaction between the user and Coach2K22 to that of `Sort address book by strengths in descending order` * Sorts list of persons by total number of weaknesses in descending order instead of total number of strengths - + **Use case: Add a tag to a person** **MSS** @@ -960,7 +960,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli 2. Coach2K22 shows a list of persons 3. User requests to attach a new tag to a person 4. Coach2k22 shows the new details of the person - + Use case ends. **Extensions** @@ -1545,16 +1545,11 @@ Expected: Same as point 3.2. 2. Test case: `clear-p`
      Expected: All entries in the contact list will be cleared. It also clears the participant field of all tasks. - + -------------------------------------------------------------------------------------------------------------------- ## **8. Appendix: Effort** -1. The team has extended the program to deal with three different entity types: `Person`, `Task`, `Strategy`. These entities - are interconnected where features specific to `Person` may directly affect the `Task` entity. Deliberate and extensive checks are implemented - across features to ensure functional correctness. +1. The team has extended the program to deal with three different entity types: `Person`, `Task`, `Strategy`. These entities are interconnected where features specific to `Person` may directly affect the `Task` entity. Deliberate and extensive checks are implemented across features to ensure functional correctness. -2. The team has implemented a JavaFX strategy board with draggable nodes. In addition, a `move` feature is implemented to cater to - existing requirements. It was tough to implement this as nodes placements are determined by its relative position. Our team also - tried to get these placements as accurate as possible to ensure functional correctness - increasing the implementation difficulty levels. - \ No newline at end of file +2. The team has implemented a JavaFX strategy board with draggable nodes. In addition, a `move` feature is implemented to cater to existing requirements. It was tough to implement this as nodes placements are determined by its relative position. Our team also tried to get these placements as accurate as possible to ensure functional correctness - increasing the implementation difficulty levels. diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 82991153851..16f740ed910 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -24,7 +24,7 @@ This application is **optimized for use via a Command Line Interface** (CLI) whi 3. Double-click the file to start the app. The GUI similar to the below should appear in a few seconds. Note how the app contains some sample data.
      ![Ui](images/Ui.png) - + 4. Type your commands in the Command Line Interface box (CLI) labeled below. You can switch between the three tabs (Contact, Schedule, Strategy tabs).
      ![Ui-labeled](images/Ui-Labeled.png) @@ -39,7 +39,7 @@ Coach2K22 can run on computers with Windows and MacOS (_Requires at least 1GB RA ## **2. About the User Guide** ### 2.1 Purpose -This User Guide provides an in-depth documentation of our product to help familarise you with using Coach2K22 for your organisation purposes. You can refer to [Structure](#22-structure) to find out what's included in this document. +This User Guide provides an in-depth documentation of our product to help familarise you with using Coach2K22 for your organisation purposes. You can refer to [Structure](#22-structure) to find out what's included in this document. ### 2.2 Structure This User Guide consist of six sections: [Introduction](#1-introduction), [About the User Guide](#2-about-the-user-guide), [Quick Start](#3-quick-start), [Features](#4-features), [FAQ](#5-faq), and [Command Summary](#6-command-summary). @@ -48,7 +48,7 @@ This User Guide consist of six sections: [Introduction](#1-introduction), [About * The **About the User Guide** section introduces you to icons and unfamiliar terms used throughout this document. -* The **Quick Start** section provides you with the basic information to set up and use our product properly. +* The **Quick Start** section provides you with the basic information to set up and use our product properly. * The **Features** section provides you with step-by-step instructions for every product feature. @@ -59,7 +59,7 @@ This User Guide consist of six sections: [Introduction](#1-introduction), [About A table of content is also provided at the start of this document to allow you to navigate to each section easily. ### 2.3 User Guide Icons -The table below shows the icons used in this document with its associated meaning. +The table below shows the icons used in this document with its associated meaning. | Icon | Meaning | |---------------------------------------------------------------------------|---------------------------------------------------------------| @@ -131,7 +131,7 @@ This subsection describes some noteworthy information about the command format t ## **4. Features** -* This Features section is an exhaustive list of all the commands and capabilities of Coach2K22. +* This Features section is an exhaustive list of all the commands and capabilities of Coach2K22. * Commands in Coach2K22 are split into 3 distinct categories @@ -349,7 +349,7 @@ Examples: * Deletes the weakness at the specified `INDEX`. * The index refers to the index number shown in the displayed person list. * The weakness index refers to the index number shown in the weakness list of the respective person. -* Both indices **must be a positive integer** 1, 2, 3, …​ +* Both indices **must be a positive integer** 1, 2, 3, …​ * Both indices must be valid (existing in their respective lists).

      @@ -570,7 +570,7 @@ Add a new player to the strategy board. Format: `add-player PLAYER_NAME` -Examples: +Examples: * `add-player Messi` adds a new player named `Messi` in the strategy board. @@ -590,7 +590,7 @@ Remove a player from the strategy board. Format: `del-player PLAYER_NAME` -As mentioned above, the player name is case-sensitive. +As mentioned above, the player name is case-sensitive. And the player name must be present on the strategy board. Examples: @@ -609,7 +609,7 @@ Example: #### 4.3.5 Export strategy board as image file: `export` -Exports current view of the strategy board as an image to the users local device. +Exports current view of the strategy board as an image to the users local device. Format: `export` @@ -640,7 +640,7 @@ Format: `exit` ## **6. Command summary** -This section will give a summary of all the commands available in the application. +This section will give a summary of all the commands available in the application. They will be classified into the following categories by command usage: * [**Contact Management**](#61-contact-management) * [**Task Management**](#62-task-management) @@ -650,8 +650,8 @@ They will be classified into the following categories by command usage: You can find the corresponding command format and maybe one example for the actions you are able to perform on the application. ### 6.1 Contact Management -This section will list all the commands available for contact management in the application. -The actions here are all related to managing the contacts of the user. +This section will list all the commands available for contact management in the application. +The actions here are all related to managing the contacts of the user. | Action | Format, Examples | |--------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------| From 43e30d573b839ed8a0ba30ac5e8c6e114b7d9a59 Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Mon, 11 Apr 2022 17:19:16 +0800 Subject: [PATCH 404/455] Add testing cases for strategy board related classes --- .../strategy/AddPlayerCommandTest.java | 71 ++++++++++++++ .../strategy/DeletePlayerCommandTest.java | 82 ++++++++++++++++ .../strategy/MovePlayerCommandTest.java | 97 +++++++++++++++++++ .../address/model/strategy/PlayerTest.java | 97 +++++++++++++++++++ 4 files changed, 347 insertions(+) create mode 100644 src/test/java/seedu/address/logic/commands/strategy/AddPlayerCommandTest.java create mode 100644 src/test/java/seedu/address/logic/commands/strategy/DeletePlayerCommandTest.java create mode 100644 src/test/java/seedu/address/logic/commands/strategy/MovePlayerCommandTest.java create mode 100644 src/test/java/seedu/address/model/strategy/PlayerTest.java diff --git a/src/test/java/seedu/address/logic/commands/strategy/AddPlayerCommandTest.java b/src/test/java/seedu/address/logic/commands/strategy/AddPlayerCommandTest.java new file mode 100644 index 00000000000..7363ac79828 --- /dev/null +++ b/src/test/java/seedu/address/logic/commands/strategy/AddPlayerCommandTest.java @@ -0,0 +1,71 @@ +package seedu.address.logic.commands.strategy; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; +import static seedu.address.testutil.Assert.assertThrows; +import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; + +import org.junit.jupiter.api.Test; + +import seedu.address.logic.commands.exceptions.CommandException; +import seedu.address.logic.commands.person.ClearPersonCommand; +import seedu.address.model.Model; +import seedu.address.model.ModelManager; +import seedu.address.model.StrategyBoard; +import seedu.address.model.UserPrefs; +import seedu.address.model.strategy.Player; + +class AddPlayerCommandTest { + private static final String PLAYER_NAME_STUB_1 = "player1"; + private static final String PLAYER_NAME_STUB_2 = "player2"; + + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); + + @Test + public void constructor_nullPlayer_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> new AddPlayerCommand(null)); + } + + @Test + public void execute_validPlayer_notNull() throws CommandException { + AddPlayerCommand addPlayerCommand = new AddPlayerCommand(new Player(PLAYER_NAME_STUB_1)); + assertNotNull(addPlayerCommand.execute(model)); + } + + @Test + public void execute_duplicatedPlayer_failure() { + Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); + model.addPlayer(new Player(PLAYER_NAME_STUB_1)); + AddPlayerCommand addPlayerCommand = new AddPlayerCommand(new Player(PLAYER_NAME_STUB_1)); + + assertCommandFailure(addPlayerCommand, model, AddPlayerCommand.MESSAGE_DUPLICATE_PLAYER); + } + + @Test + public void equals() { + final Player player1 = new Player(PLAYER_NAME_STUB_1); + final Player player2 = new Player(PLAYER_NAME_STUB_2); + final AddPlayerCommand standardCommand = new AddPlayerCommand(player1); + + // same values -> returns true + AddPlayerCommand commandWithSameValues = new AddPlayerCommand(player1); + assertTrue(standardCommand.equals(commandWithSameValues)); + + // same object -> returns true + assertTrue(standardCommand.equals(standardCommand)); + + // null -> returns false + assertFalse(standardCommand.equals(null)); + + // different types -> returns false + assertFalse(standardCommand.equals(new ClearPersonCommand())); + + // different player -> returns false + assertFalse(standardCommand.equals(new AddPlayerCommand(player2))); + } +} diff --git a/src/test/java/seedu/address/logic/commands/strategy/DeletePlayerCommandTest.java b/src/test/java/seedu/address/logic/commands/strategy/DeletePlayerCommandTest.java new file mode 100644 index 00000000000..aaabc4df306 --- /dev/null +++ b/src/test/java/seedu/address/logic/commands/strategy/DeletePlayerCommandTest.java @@ -0,0 +1,82 @@ +package seedu.address.logic.commands.strategy; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; +import static seedu.address.testutil.Assert.assertThrows; +import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; + +import org.junit.jupiter.api.Test; + +import seedu.address.logic.commands.person.ClearPersonCommand; +import seedu.address.model.Model; +import seedu.address.model.ModelManager; +import seedu.address.model.StrategyBoard; +import seedu.address.model.UserPrefs; +import seedu.address.model.strategy.Player; + +class DeletePlayerCommandTest { + private static final String PLAYER_NAME_STUB_1 = "player1"; + private static final String PLAYER_NAME_STUB_2 = "player2"; + + private final Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); + + @Test + public void constructor_nullPlayer_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> new DeletePlayerCommand(null)); + } + + @Test + public void execute_validPlayerName_success() { + final Player player1 = new Player(PLAYER_NAME_STUB_1); + final String expectedMessage = String.format(DeletePlayerCommand.MESSAGE_SUCCESS, PLAYER_NAME_STUB_1); + + Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); + model.addPlayer(player1); + + DeletePlayerCommand deletePlayerCommand = new DeletePlayerCommand(PLAYER_NAME_STUB_1); + + Model expectedModel = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); + + assertCommandSuccess(deletePlayerCommand, model, expectedMessage, expectedModel); + } + + @Test + public void execute_invalidPlayerName_failure() { + final String expectedMessage = String.format(DeletePlayerCommand.MESSAGE_PLAYER_NOT_FOUND, PLAYER_NAME_STUB_2); + + Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); + model.addPlayer(new Player(PLAYER_NAME_STUB_1)); + + DeletePlayerCommand deletePlayerCommand = new DeletePlayerCommand(PLAYER_NAME_STUB_2); + + assertCommandFailure(deletePlayerCommand, model, expectedMessage); + } + + @Test + public void equals() { + final DeletePlayerCommand standardCommand = new DeletePlayerCommand(PLAYER_NAME_STUB_1); + + // same values -> returns true + DeletePlayerCommand commandWithSameValues = new DeletePlayerCommand(PLAYER_NAME_STUB_1); + assertTrue(standardCommand.equals(commandWithSameValues)); + + // same object -> returns true + assertTrue(standardCommand.equals(standardCommand)); + + // null -> returns false + assertFalse(standardCommand.equals(null)); + + // different types -> returns false + assertFalse(standardCommand.equals(new ClearPersonCommand())); + + // different player -> returns false + assertFalse(standardCommand.equals(new DeletePlayerCommand(PLAYER_NAME_STUB_2))); + } +} diff --git a/src/test/java/seedu/address/logic/commands/strategy/MovePlayerCommandTest.java b/src/test/java/seedu/address/logic/commands/strategy/MovePlayerCommandTest.java new file mode 100644 index 00000000000..c438508dff0 --- /dev/null +++ b/src/test/java/seedu/address/logic/commands/strategy/MovePlayerCommandTest.java @@ -0,0 +1,97 @@ +package seedu.address.logic.commands.strategy; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; +import static seedu.address.testutil.Assert.assertThrows; +import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; + +import org.junit.jupiter.api.Test; + +import seedu.address.commons.core.Messages; +import seedu.address.logic.commands.person.ClearPersonCommand; +import seedu.address.model.Model; +import seedu.address.model.ModelManager; +import seedu.address.model.StrategyBoard; +import seedu.address.model.UserPrefs; +import seedu.address.model.strategy.Player; + +class MovePlayerCommandTest { + + private static final String PLAYER_NAME_STUB_1 = "player1"; + private static final String PLAYER_NAME_STUB_2 = "player2"; + private static final int POS_X_STUB_1 = 123; + private static final int POS_Y_STUB_1 = 456; + private static final int POS_X_STUB_2 = 321; + private static final int POS_Y_STUB_2 = 654; + + private final Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); + + @Test + public void constructor_nullPlayerName_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> + new MovePlayerCommand(null, POS_X_STUB_1, POS_Y_STUB_1)); + } + + @Test + public void execute_validPlayerNamePosition_success() { + final Player player1 = new Player(PLAYER_NAME_STUB_1, POS_X_STUB_1, POS_Y_STUB_1); + final Player player1WithoutPos = new Player(PLAYER_NAME_STUB_1); + final String expectedMessage = String.format(MovePlayerCommand.MESSAGE_SUCCESS, + PLAYER_NAME_STUB_1, POS_X_STUB_1, POS_Y_STUB_1); + + Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); + model.addPlayer(player1WithoutPos); + + MovePlayerCommand movePlayerCommand = new MovePlayerCommand(PLAYER_NAME_STUB_1, POS_X_STUB_1, POS_Y_STUB_1); + + Model expectedModel = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); + expectedModel.addPlayer(player1); + + assertCommandSuccess(movePlayerCommand, model, expectedMessage, expectedModel); + } + + @Test + public void execute_invalidPlayerNamePosition_failure() { + final String expectedMessage = String.format(Messages.MESSAGE_INVALID_PLAYER, PLAYER_NAME_STUB_2); + + Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); + model.addPlayer(new Player(PLAYER_NAME_STUB_1)); + MovePlayerCommand movePlayerCommand = new MovePlayerCommand(PLAYER_NAME_STUB_2, POS_X_STUB_1, POS_Y_STUB_1); + + assertCommandFailure(movePlayerCommand, model, expectedMessage); + } + + @Test + public void equals() { + final MovePlayerCommand standardCommand = new MovePlayerCommand(PLAYER_NAME_STUB_1, POS_X_STUB_1, POS_Y_STUB_1); + + // same values -> returns true + MovePlayerCommand commandWithSameValues = new MovePlayerCommand(PLAYER_NAME_STUB_1, POS_X_STUB_1, POS_Y_STUB_1); + assertTrue(standardCommand.equals(commandWithSameValues)); + + // same object -> returns true + assertTrue(standardCommand.equals(standardCommand)); + + // null -> returns false + assertFalse(standardCommand.equals(null)); + + // different types -> returns false + assertFalse(standardCommand.equals(new ClearPersonCommand())); + + // different player -> returns false + assertFalse(standardCommand.equals(new MovePlayerCommand(PLAYER_NAME_STUB_2, POS_X_STUB_1, POS_Y_STUB_1))); + + // different Position -> returns false + assertFalse(standardCommand.equals(new MovePlayerCommand(PLAYER_NAME_STUB_2, POS_X_STUB_2, POS_Y_STUB_1))); + + // different Position -> returns false + assertFalse(standardCommand.equals(new MovePlayerCommand(PLAYER_NAME_STUB_2, POS_X_STUB_1, POS_Y_STUB_2))); + } +} diff --git a/src/test/java/seedu/address/model/strategy/PlayerTest.java b/src/test/java/seedu/address/model/strategy/PlayerTest.java new file mode 100644 index 00000000000..79f34f41a15 --- /dev/null +++ b/src/test/java/seedu/address/model/strategy/PlayerTest.java @@ -0,0 +1,97 @@ +package seedu.address.model.strategy; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static seedu.address.testutil.Assert.assertThrows; + +import org.junit.jupiter.api.Test; + +class PlayerTest { + + private static final String VALID_NAME_1 = "caPs"; + private static final String VALID_NAME_2 = "Jankos"; + private static final String INVALID_NAME = "1234567890" + + "1234567890" + + "1234567890" + + "1234567890" + + "1234567890" + + "1"; + + @Test + public void constructor_nullName_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> new Player(null)); + } + + @Test + public void constructor_emptyName_throwsIllegalArgumentException() { + assertThrows(IllegalArgumentException.class, () -> new Player("")); + } + + @Test + public void constructor_invalidName_throwsIllegalArgumentException() { + assertThrows(IllegalArgumentException.class, () -> new Player(INVALID_NAME)); + } + + @Test + public void isValidPlayer_nullName_returnsFalse() { + assertThrows(NullPointerException.class, () -> Player.isValidPlayer(null)); + } + + @Test + public void isValidPlayer_validName_true() { + assertTrue(Player.isValidPlayer(VALID_NAME_1)); + } + + @Test + public void isValidPlayer_invalidName_false() { + assertFalse(Player.isValidPlayer(INVALID_NAME)); + } + + @Test + public void isValidPlayer_emptyName_false() { + assertFalse(Player.isValidPlayer("")); + } + + @Test + public void getName_validName_returnsName() { + Player player = new Player(VALID_NAME_1); + assertEquals(player.getName(), VALID_NAME_1); + } + + @Test + public void getXCoord_validCoord_returnsXCoord() { + Player player = new Player(VALID_NAME_1, 123, 456); + assertEquals(player.getXCoord(), 123); + } + + @Test + public void getYCoord_validCoord_returnsYCoord() { + Player player = new Player(VALID_NAME_1, 123, 456); + assertEquals(player.getYCoord(), 456); + } + + @Test + public void equals() { + Player player1 = new Player(VALID_NAME_1); + Player player1Copy = new Player(VALID_NAME_1); + + Player player2 = new Player(VALID_NAME_2); + Player player1Case = new Player("CaPs"); + + //same object reference + assertTrue(player1.equals(player1)); + + //same contents + assertTrue(player1.equals(player1Copy)); + + //case sensitive + assertFalse(player1.equals(player1Case)); + + //null + assertFalse(player1.equals(null)); + + //different contents + assertFalse(player1.equals(player2)); + } +} From f4ebd52fc167cd61d713c67f8a4eff820fcb5930 Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Mon, 11 Apr 2022 17:40:08 +0800 Subject: [PATCH 405/455] Set up constraints for x, y coordinates in move command --- .../commands/strategy/MovePlayerCommand.java | 6 ++--- .../address/logic/parser/ParserUtil.java | 2 +- .../strategy/MovePlayerCommandParser.java | 8 ++++++- .../seedu/address/model/strategy/Player.java | 23 ++++++++++++++++--- 4 files changed, 31 insertions(+), 8 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/strategy/MovePlayerCommand.java b/src/main/java/seedu/address/logic/commands/strategy/MovePlayerCommand.java index 40fd57fba4a..161757189b2 100644 --- a/src/main/java/seedu/address/logic/commands/strategy/MovePlayerCommand.java +++ b/src/main/java/seedu/address/logic/commands/strategy/MovePlayerCommand.java @@ -20,9 +20,9 @@ public class MovePlayerCommand extends Command { + ": Moves the player to the specified location.\n" + "Parameters: " + "PLAYER_NAME " - + "x/X_COORDINATE (must be non-negative integers) " - + "y/Y_COORDINATE (must be non-negative integers)\n" - + "Example: " + COMMAND_WORD + " " + "John" + " " + "x/10" + " " + "y/20"; + + "x/X_COORDINATE (must be non-negative integers no greater than 1000) " + + "y/Y_COORDINATE (must be non-negative integers no greater than 600)\n" + + "Example: " + COMMAND_WORD + " " + "John" + " " + "x/100" + " " + "y/200"; public static final String MESSAGE_SUCCESS = "%1$s has been moved to the specified location: (%2$d, %3$d)."; diff --git a/src/main/java/seedu/address/logic/parser/ParserUtil.java b/src/main/java/seedu/address/logic/parser/ParserUtil.java index d29d320d86f..ca56e2cf99d 100644 --- a/src/main/java/seedu/address/logic/parser/ParserUtil.java +++ b/src/main/java/seedu/address/logic/parser/ParserUtil.java @@ -287,7 +287,7 @@ public static Player paresPlayer(String playerName) throws ParseException { requireNonNull(playerName); String trimmedPlayerName = playerName.trim(); if (!Player.isValidPlayer(trimmedPlayerName)) { - throw new ParseException(Player.MESSAGE_CONSTRAINTS); + throw new ParseException(Player.MESSAGE_NAME_CONSTRAINTS); } return new Player(trimmedPlayerName); } diff --git a/src/main/java/seedu/address/logic/parser/strategy/MovePlayerCommandParser.java b/src/main/java/seedu/address/logic/parser/strategy/MovePlayerCommandParser.java index d35f2449005..3b364e180bc 100644 --- a/src/main/java/seedu/address/logic/parser/strategy/MovePlayerCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/strategy/MovePlayerCommandParser.java @@ -13,6 +13,7 @@ import seedu.address.logic.parser.Parser; import seedu.address.logic.parser.Prefix; import seedu.address.logic.parser.exceptions.ParseException; +import seedu.address.model.strategy.Player; /** * Parses input arguments and creates a new MovePlayerCommand object. @@ -42,7 +43,12 @@ public MovePlayerCommand parse(String args) throws ParseException { int yCoord = Integer.parseInt(argMultimap.getValue(PREFIX_YCOORD).get()); String playerName = argMultimap.getPreamble(); - if (xCoord < 0 || yCoord < 0) { + if (!Player.isValidXCoord(xCoord)) { + throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, + MovePlayerCommand.MESSAGE_USAGE)); + } + + if (!Player.isValidYCoord(yCoord)) { throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, MovePlayerCommand.MESSAGE_USAGE)); } diff --git a/src/main/java/seedu/address/model/strategy/Player.java b/src/main/java/seedu/address/model/strategy/Player.java index 9ae8dc09cc2..a178298fec5 100644 --- a/src/main/java/seedu/address/model/strategy/Player.java +++ b/src/main/java/seedu/address/model/strategy/Player.java @@ -6,11 +6,16 @@ import java.util.Objects; public class Player { - public static final String MESSAGE_CONSTRAINTS = "Player name cannot be empty" + public static final String MESSAGE_NAME_CONSTRAINTS = "Player name cannot be empty" + " and must be not more then 24 characters" + " and must not contain \"/\". \n"; + public static final String MESSAGE_X_CONSTRAINTS = "X coordinate must be an integer between 0 and 1000"; + public static final String MESSAGE_Y_CONSTRAINTS = "Y coordinate must be an integer between 0 and 600"; + private static final int DEF_XCOORD = 50; private static final int DEF_YCOORD = 500; + private static final int X_LIMIT = 1000; + private static final int Y_LIMIT = 600; private final String name; private int xCoord; @@ -21,7 +26,7 @@ public class Player { */ public Player(String name) { requireNonNull(name); - checkArgument(isValidPlayer(name), MESSAGE_CONSTRAINTS); + checkArgument(isValidPlayer(name), MESSAGE_NAME_CONSTRAINTS); this.name = name; this.xCoord = DEF_XCOORD; this.yCoord = DEF_YCOORD; @@ -32,7 +37,9 @@ public Player(String name) { */ public Player(String name, int xCoord, int yCoord) { requireNonNull(name); - checkArgument(isValidPlayer(name), MESSAGE_CONSTRAINTS); + checkArgument(isValidPlayer(name), MESSAGE_NAME_CONSTRAINTS); + checkArgument(isValidXCoord(xCoord), MESSAGE_X_CONSTRAINTS); + checkArgument(isValidYCoord(yCoord), MESSAGE_Y_CONSTRAINTS); this.name = name; this.xCoord = xCoord; this.yCoord = yCoord; @@ -45,6 +52,14 @@ public static boolean isValidPlayer(String playerName) { return !playerName.isEmpty() && playerName.length() <= 24 && !playerName.contains("/"); } + public static boolean isValidXCoord(int xCoord) { + return xCoord >= 0 && xCoord <= X_LIMIT; + } + + public static boolean isValidYCoord(int yCoord) { + return yCoord >= 0 && yCoord <= Y_LIMIT; + } + //Getters public String getName() { return name; @@ -60,6 +75,7 @@ public int getYCoord() { //Setters public void setXCoord(int xCoord) { + checkArgument(isValidXCoord(xCoord), MESSAGE_X_CONSTRAINTS); this.xCoord = xCoord; } @@ -69,6 +85,7 @@ public void setYCoord(int yCoord) { //uti methods public Player toCopy() { + checkArgument(isValidYCoord(yCoord), MESSAGE_Y_CONSTRAINTS); return new Player(name, xCoord, yCoord); } From 6c94cb685722be5ea3dba012dc2722e81e873a81 Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Mon, 11 Apr 2022 17:41:14 +0800 Subject: [PATCH 406/455] Fix a minor bug --- src/main/java/seedu/address/model/strategy/Player.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/model/strategy/Player.java b/src/main/java/seedu/address/model/strategy/Player.java index a178298fec5..680774b6e20 100644 --- a/src/main/java/seedu/address/model/strategy/Player.java +++ b/src/main/java/seedu/address/model/strategy/Player.java @@ -80,12 +80,12 @@ public void setXCoord(int xCoord) { } public void setYCoord(int yCoord) { + checkArgument(isValidYCoord(yCoord), MESSAGE_Y_CONSTRAINTS); this.yCoord = yCoord; } //uti methods public Player toCopy() { - checkArgument(isValidYCoord(yCoord), MESSAGE_Y_CONSTRAINTS); return new Player(name, xCoord, yCoord); } From d3a2957d002c7627dab1f15ebff8ca48b61afaa0 Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Mon, 11 Apr 2022 17:44:45 +0800 Subject: [PATCH 407/455] Reflect the update in UG --- docs/UserGuide.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 82991153851..bf0a0215401 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -579,7 +579,7 @@ Examples: **:information_source: Key things to take note of:**
      * `PLAYER_NAME` is case-sensitive e.g. `John Cena` will NOT match `john Cena`. -* `PLAYER_NAME` can not be empty and its length must be less or equal to `24` characters. +* `PLAYER_NAME` can not be empty and its length must be less or equal to `50` characters. * `PLAYER_NAME` must be unique and can NOT contain the character `/`.

      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

      @@ -604,6 +604,16 @@ Format: `move PLAYER_NAME x/X_COORDINATE y/Y_COORDINATE` As mentioned above, the player name is case-sensitive. +
      + +**:information_source: Key things to take note of:**
      + +* `X_COORDINATE` and `Y_COORDINATE` must be integers. +* `X_COORDINATE` must be non-negative and less than or equal to `1000`. +* `Y_COORDINATE` must be non-negative and less than or equal to `600`. + +
      + Example: * `move Messi x/0 y/0` moves the player named `Messi` to the top left corner of the strategy board. From 5449d38d4f7d2407203b0e8be2eab8015b156fe9 Mon Sep 17 00:00:00 2001 From: Pragya Date: Mon, 11 Apr 2022 17:46:11 +0800 Subject: [PATCH 408/455] add CLI tutorial --- docs/UserGuide.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 82991153851..d70a531d170 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -36,6 +36,26 @@ This application is **optimized for use via a Command Line Interface** (CLI) whi Coach2K22 can run on computers with Windows and MacOS (_Requires at least 1GB RAM and 500 MB of storage_). +### 1.2 CLI tutorial +======= +Some users may not have come across a Command Line Interface (CLI) based application before. +Here is a quick tutorial to get your started! + +-------------------------------------------------------------------------------------------------------------------- + +1. Follow the instructions above in section 1.1 to download the Coach2k22 application to a directory of your choice. + +2. Double-click the file to launch the application. + +3. Upon launch, the GUI (as seen in section 1.1 step 3) will be visible to the user. + +4. Hover your cursor over the box labelled CLI (as seen in section 1.1 step 4) and click on it once. + +5. Users can now use their keyboard to type commands into the CLI. + +6. Refer to the [Features](#2-features) section below for more information and details on the command formats Coach2k22 accepts! + + ## **2. About the User Guide** ### 2.1 Purpose From 0ab091af3d819e84c50cb3f4979b200916aad65d Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Mon, 11 Apr 2022 17:59:16 +0800 Subject: [PATCH 409/455] Add tutorial for move feature --- docs/UserGuide.md | 14 +++++++++++++- docs/images/move-ex1.png | Bin 0 -> 10167 bytes docs/images/move-ex2.png | Bin 0 -> 10266 bytes 3 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 docs/images/move-ex1.png create mode 100644 docs/images/move-ex2.png diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 82991153851..32ac7040777 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -605,7 +605,19 @@ Format: `move PLAYER_NAME x/X_COORDINATE y/Y_COORDINATE` As mentioned above, the player name is case-sensitive. Example: -* `move Messi x/0 y/0` moves the player named `Messi` to the top left corner of the strategy board. + +Suppose you have added a player named `John` to the strategy board. And suppose this is the current position of John: +It is roughly located at the coordinate `(50, 550)` since the circle center is around that position. + +![move-ex1](images/move-ex1.png) + +Then you can move John to the coordinate `(150, 500)` by typing: +* `move Messi x/150 y/500`. + +The image below shows the new position of John: You can see that the circle center has moved to the new coordinate. + +![move-ex2](images/move-ex2.png) + #### 4.3.5 Export strategy board as image file: `export` diff --git a/docs/images/move-ex1.png b/docs/images/move-ex1.png new file mode 100644 index 0000000000000000000000000000000000000000..6cee0e874cc2b059b97f621ee91aa2f5c4ae850c GIT binary patch literal 10167 zcmcI~by!r<*X}_;1PKM{5^3oYX%T5@q+3Bk8tGDyMr7!20Z9qzl9HAj>FyX{7+?k% zzJvbm^L_Vw?!Whsndi*RnX}K?Ypr*`>wR~)x~e<@9u*z{00fE(FEjxF!wY;--MI~Z zbMl(C4*(tliZ7(KJ=6E+1GFE!P31Y1f0p~K?nV4VY2HVvW;DdCs=TVKI6RbjR-Fea zZ;XtMg#}W+e3_ni-JFv-n3o`d4$kjIZ(5B=xaLx_z!~*vjWaG+U+_8T4gI3h9}*>& zCw`{zj^c&(nl80;yWxnkuEzWcPi4tMF6u(0a4)y1ad&&?w74$Q`=X5f)2B~$cL3lW zdro1YygNPsn01Zg^{h+m$wI6M4dKmIKI)V&PnFSbFD4l;zJ7{2o1dO$=OcFQ`ssre7N5AbZ_xU? zji;%#*Xaayu`!fJ%*ZFt*(@KZu-wG~1V%ITVFG_BAmV=y)f9y6jjLka8}p7d4Q=|S zY+a$a03YK|rV(5#T&~ftWe*e$@Gia?CjIW29W)sAByfS{N2AWjHO6XFKJkn$kg#qA zi`pBONz{1H;?7)*{S0q8*s*uBfGG=hyv1y{$IDu4C}_x!vhLLv^_dc*O;?lO8_QqA zYCGjE6Mc$8yANJN-W?x2>cmCQ%WwbLSg-L#{yN$Dgj5&=p4?;UtqyWO$PcXGbC`}9eLN#)hnZ;IQ|>XjMV)6)`l7-M7GU6&)ppz(Y&cz}n*AKEs%4RkfMqsMuYo)wfwr8fSnp zPE)&XvDKlV_PSNb)p*x;)n{x=ufDmrJR)}OJbho|yVh5u?^S9fp5k$*;$F*+gzX>S zC^|onH=7Kf*}7yFdOwqe(?&UMvAudLr4(Z);wMDf@NGL|p8yN!_{0NU8_LTTX+`NO zd2<#*pG0#nd;dt^I)up?)?zpI8gp#h*yi&D35r$=+cWGJbXA!gERLFIA?mHizh-Mh z$9aV2m)Bb4xz_B#dzc#w)Qa|Yw6;t+@!fUXpr6x3f(|$Uq zWx)B)_s_UTEUw;`FC`=?&dRgwa83I*w9A=iW!wZOhOH2;{ReNzuZ;ZoVP zd|k>_x+uZfD>q7R_J`UyS!=`Zm$hCTLB02|%ej;yJtOO|s=lWa9%vGuKb=Zjh4;kk zpl6tsokBMi!@gHaTilX?aM|9Fczjp;;aTfKMNMe^o~9VebJ+K> zCoIf8x7ND^UBvS9{mZT$`!%f`{qv_1qMwPrkQ`axO($^*`_%B`plmwEugJh=O-ep* z^KDjMw4}4(@6cYCB5T9@>ste&z&-6hslKOQjosYkGua5NC9Kh(xAZmA+(*d@x-(e4 z>!QSU_^u!BM^u^|P)!F#o$&W9yr@VJ)=X*q%$RT2cTrIomD=KinFUS$Mdl=-4Cioz zskjx+txE{s^KD@;g~Z&Z8gOglQ1^iJ@6vJ>_V6Rnj5V63ak@XG*;yT7@Xw_uVyWTQ zv?SRzUwAGP$~~gCR2x1|@L%L)!5)nv%8%-<gt$P z&S!|`ap6#t%N8jDotyXiGai+sxSU8ijp!+ZYW=Mj7I>zs2|QGqIyx+3WSx6|zRS$b zASFWb9D)|F(Pt1wN}_{s`0HHy=mV!0L^RI2TX5{ljN5?uT;a zSEBU0FwU6sVBTk?G7y~IC3^AgrY&`$md3eR3tjrvxF2jim@n`Z=}K4Cy$-SHcKCoh zczNo#{(Ff5SDWOm=j>wOI?H?8;1~d&gfI~SX0H`)4p}7nvh*6YUjo2AKg|IA_q$VD zB8wkBV5IU}Ms!&Nz@EH;vPssG%sdVNkg&EGVFEx;Z0g#m3l6}WIFagWZq6{el%1@m zsF>5*Dw(qU8->{I+jfgUMnvE_8>*}G5*Owc6nuKj!BNoj>eVY*6&02E*jQ<1X6BXF z)Ksc(Wn}~iVvWK@?#ByO{B^nx4&0VjR+{e-zY^p=+UJdpX=<&)W0c#XZ~0}uyh8Uy zD7V?aao`E`ik>vTanLb@KKQk+6sJG~{(u zrNL5j2L}#Z#n8#g@O}0HkaE;szpMH|&f1?RA7dMUGb^XBuRjwI*wZ67Y9T1VO|~T^ zas5^ZuJAlAB-h5!oXH25AktRT4wuC1GiBR`4KNljY;5>tD1xM# zLH>lSNuTVLrL?^N#N)td|DMy?!TgGjPRTrd9Tob#R|+-9>f=*<%bpP(V?#Rkczr7C zTYbIW%c}m5gV)v7W2gNiBWFm-l$Ms0h7X%%$5(jq)yb$UNa|V~1X6>{%%lsCjamvu zL_7M*)Uas#{wk8XbaZfdBGIv97wCJZXzDTI4XyooKtpL|i}r^fqfwLsz6WuLmeq_? z^wmYJeP-tjEZv8rWGpr82sC%)Jbk=t#iWBo$3w6ry59k=!! zr@6FLvwf}C+rD4+eU5{UkOZVm@KDw{y-621yoTUBvh%^7l{4C1zoy{i;Zd8&9_qo3 z_n6C(6yS)z<3(*??!)Ks(rNfk&#!$_HetQx3sTOv$bh!|+BGERIBVc)Z_EIm>=G4y zfVw!}0w%l%4x6_4Vb;Q3?@&xWN86 zEJOL^+})qdJNMF7by5Tclv;Q9L{lXp_+{_iaCDGVKizYgLlHt{HgiJhs08Y#UL2{R zl6Xw%+#ASEJQ?2QdL4G)*mOsbYJ^Aj{yyIjZliQ>fCXG%m|w3Rj`TGQ7zlFeR|V7g z?0v5s@Pqj*=53D`h8k_4FJLiSwU0XHf9sSRQM!vb_`xX{a^^f1{qDEuFx3Z~uf|A$ zW2mG(`DE|MV^q(Z3yr|?KpNHBzWTFXA8B4cB`j=^>A4bK)YV;4>y6l{94Ira<9@fB zMvY?!Ess_*x-?LeM85g6p6Rtg$;YC`)?DqgQ(XASqz;iPEPY7M44L8xK>loi4~ykZ zX)Z(YlA`pOF?;+T$6w z7yux-m$eVhFwPTzRL;Vt^E=T%4LSNV`rG%21@g3AYSOp_oQ%p_yo;2l^LkNp+iO9g zIVij<&9Rm8)PgC?_gHbl->o}uMb;&_qfNWT3vTrXyj_)x!4!e}lRk_77xp_a7*PX0 z>`&e+u?^_AiVC8pIUfI`$XJZM=TAKj(kZrisLr7v9QYj%i@}0vufCY>M)I_VDH%1F zc>?85?gw*<#>U1BNjBEj_oSL)ZqrGhu5?G5C#_;2M8(8pxI1Sh45Y3%p?E@d-+Cf;Cc)Y9f~R`uA=FRzXXU}%B5a77-T!*F7$CLs-mcAaolFc`eb91d za@5`tgwq|suexHZoDnA$bN>iY5n#;Ze+93fl%lhJv|%WTrQ<=YgX-phHJ=Clm?16o z^f^lEiEuWqclr<#8fqE35~M7ZK6kr?yy!a~_xHot%E^@#&D*SpPSM2G&g?-Rw=pp> zt7MKkI`6_iciTG8`<=~Ouol#=H4t_oI31i_rbE<-4|x;B-M*sCiNIc!hpCQY;^N#9 ztyYGY>KybzaIJ##Oc_Fl6s@HKK`0u&_v1D5D~;HW;CIK=PJ!7yS5L zMwT=)Q)ghb^HfnMGLi@XXDL~dcmBFoxdu@l0uv+Jv$+4Rv6(9yFu2;n zX!kAZGyJt=hKE3qvW@$#9j%S(nhq6G3sE8D9Do_W0B0Z0&T~o*#nzHtb6b1AOcd(aGSp?(YVbU` zs>)xEuvZ@(upKL#nO;^#M$v8gr>T~FZ&p7c^UlT~QfPgxnOzJYpkSR?%ge8ZYcO|Q ze?eX3xe}<9GmsT)K!^i83N|OmZQtk43kiYRr!BpLR%~h-&%4{& zT`1o?Rq$^}8-e)XGp+HM7Zve(EADMYOqba4X%~-GQY^}pp%{TYHEXQDRvTi5GfKi5 zuqql|)}4>gWpi8)fG=yT!6X+AuCobP!n*Ekn$EDC#zxxy{i`Y&jKGKZyTHR(i9Z?5xDB*bRW}3r2(f`nio`YKOy$whkwt4$ z(<~X(S@t6lH@8C|SiYeOCji-Ny@n7HpSN!dlS4v6q70&KJo6Qp&X+uWFHk6`3Z)_m z@F+CZ7pwj>3X6W>w|dnd)vK$gly}WYC5_pj6{Zz54r1NDuU?V9cXRt4LO|`C*?#6D zPWPCdee|HDsEC(ATf|`@U2$`y?OTm@VIQHTCIv-(Bo%et*h=?EWQh(&ppm2yQpj#f z-O|$X_ovBT0e=21kQL_6%*=%83hIXnonOMQS$lFn94&tsBI7*AnKlQyn!^T!u(7e- zP$$1ersLw`iYqEcDzi&}?xQh?FR_dpsv>4)p7ax9KHNaY+ieVIC>InISonivY+`n{ zL?SUO3pVb;!_7^mrK}vOwrjfhUK6%ox2S_&H4R5m^D4c48w<%tKX<2yOP#$U7NH5a zmqddFh}?3|S#ue@p^s}BX=xk|X{o6_&4B~!nh^7})8y9Od^+e+Xeg_Ew7b)9=`4Sg z9Ti0~msq?ak4QsoB4>x5Fi?fX1>G_{iX`JAW;G95#ws84$e2)zE2b`(y%JV9)L1!M z3;*r_JR>YK>MT1mld!6PU#^Cl^WHorC@Cq)J3Vz5un_95wd07Vor$aJtR$tYg;da{ zL5@@Q)By`ZZmN~dy=jkxsmtiXS|INc<*ig=`JBveGhp2?G2<2yIB&k;d5iK#9%io(!0LVU!`v zNC}_QD9TS`{q@?IJ*)dsOhjgMoe*(W_bgIoy)&gCTH1g|Jw_O-N2IlljXLVKJI-J^ zbYV@bg~wfLRmp_0|5*Sw!jViPN#&jEyMvR{NH)aTNGy1VFT=oZ$@6c+&6_Zj88_lC zCrdaiL+{0%YeoQO&B+JPr{}Nk%{PZT#PNHIM{bo=9OP_|w|$|-3oPq)BUfs5;P}-! zORq@RuE*!c06RFa1V^(mHvWSKao)U}ceg$ra$$#Ao%wXMcwctyl#=LCjn1rYcO; zY;0^SGI{V8#>Zbzd}CQdA$*w1kW%q|>lqa~UmfMPYaQlQ)yIt5Bu(A#06(nsAX5I9 zPnlU*B9LGcm!~7Z5ER6|MelfD*x}6pAx8TYzVfj{-K>W!8P%t%HYqLlJ4-@>g2vO! z!}-NpVwRz|%#```C1&>_-9T1nM2H7+%K6b)FpTZW^_V@Q^7P*s@ zXK@dG9URJ&vp8?#WK_xA`ABl%4ZF0k^p6Wc-JS$p%!nV@lo@C`zI&HHIN0}U zm5xdYLi-$;(~?s;lzPQdt`YEzQ8CkSEdT6Yb3nl1OFA7N z2P<;6&N0hUE|-Q*H69$&(c4jEI}s((Gtb%ZYDnzEwaf=)cClY|Vk`l-4HIm*qH6{* z`wG67A*6J_3OA1+qi)e-yhsv~A_9C46^}_tNmrgQGRnk*1lh#cn2V(cx4EGq#cD8l z8U6?*d59{H^Pbv~v+0Hp*{aM*b(B0sCXOl$q#ItLuXeA++g&I46)H7n8XumOh}n32 z>CGF8xOoh$eQ42-70mg?nVD~s%kbml7kzT;AdVSoJpcG9gqkjqHjv&=pGkWFNiFE| z^W=473%y3MRj_H-1Dy+TU{6N*c+QZg^TLj+pFfue4&p;XJr=;izO?LX9z&q3H{esEc;E*Mmk0g9!II41jrct4 z%@68^TOj_=87--Mq$E*f(M;#hR*T@SRn~9nKLkul@Ib!Xu@u^j5AH+~-AnuWfQ&4n zL}jkoYy3B#jw)swq$5^RVPqco4ohDkC>!FU31K<(ckaGp1MV1 zr*kUHF7_`BmPqi&;#9uX2ax6$#l?khLIE=$zUfbz38^SPwU# zHKl;${j2p3-@ZPCpdX6-=He~Ms>hsM`(b?{u}^SARgKPuf>!_^G0o%LDa_j+UM6E3mbt1^_m|HI_L+=ZC`d|i%fWSu1 zZIqp#&&0R5xac@xoBK%O%FovRijDw(j#=!%tgeLl09>xEK(=yyh_gr>M%tvl zWBKMXWbT0e7h&hArx<3SmqjZ}MgQO&qd)fDo@MD}&k03r8R~Bt>VqZR9XYE_n zX9Mp+QKc-Wrsm&Ld8BweKR;jdc7!eqyIwacwabgOT`_ZVVnW^CzD&_Pm6c=nt+wfP zfMuw;ShF!mu+2w8z9|~>h=_<-Cn@+r6`kx&%!=Dxu(r17E%xW2GL2dL^ zQ4#s_X43jt`$jUvl9ZH{yTyr!=59#I533<6QKzNAQx9k7@5u%R1}~&M6F^R}(BA%R zB1l-t{Zy?8B(}^O(^WDlCy+Smg#GOR1~74y+wGcNhWxh23Ji`ny4nJ+{cRl`>EXAy zlOjP#yY=H7QR*HIbrKbeEXr9Hnl^vw9ZBA%K-f!pL!?TxTkIxu#G%U#Ec9$0CE|2y zCya6LHU{(JQ;>Gxxwg~Ov$0DUOym7R9o~aZj?}fmo%OO=NlEfZByt7T*x2|*EU=GL z>_Wv^<39I%`}tt%d%bDJ1IP{MxT{yr_wx-0wCFDb9KMQjn5#E*XN!|l>K8F+KKELO zgD{2nY_KyX=V!8LZ5$b==cknwhhHE`RCw8(PqS?={Sl|~PSkVC5ApG$2K9%qZTQII z7utw|?p~iR_r}%FQvD#sZN|6jbJgt!MV83Eoji59j}`L$xcIjsBdN1xBTdK(sDMhs ziM8J1YFB0!Owy(M)S$Uuo9R-oi+p9{ zOv;{0wd$50CFIgRSrn1VHvh)zAf7g&*prj$Ku6TFKO3ZK5Aoe{qCW2J(dNE!Uj9i` z+_u;X4OdaJ&Gmw#Q__dWZ>avA<>w0;{H_~(mW8L`$F0|?qM~SR_oo`dZ-*<`SvOU{ z@U=h9xm$qYS(-LAwV9BYjbPBVxB96F^BLpvEZV(6t*P5lt05MKafVqi+&-#IXm^Ye=&Fr_ywW*0)_ zQ#f&nG%Oq%w-e&y!!B%XZHs>V&>2ihOpKUKOeEub0xFAoF=`Nyfqq4Z;-&xqj?2wn0FXDI zbE<1=zi9G+eO*{E`A%Z(;P4fP&hyzUZoLtA|IiRA9JJ=S80?PcupuN;te!f$y7JrG z+wlnrvXhgOE3Ke9-9Ioe4r#t=H0ZHC#WSsYi2#7%oC(?Bx@l`k;m{%=)UoTl0@?_> z@PEW3are+DWO=GFpd{UJb?52PH&8;h&kQ(!;3T{C92YQa1k1l3dxV75O=xs;a}$*9 z#cF^2h!7QD)f_5NP8tj+11CZDf=}DPAayD-WZMw2bG6f_^EL5(y=ukOri?VGV6^+5 zci(vK%f0HL*f{~(>MOLQvTT{ z-0?T&$^Y}bWb?N&u(oS|B_$U?i0H7GCWXg(*%QL?FBPRz#kq&rv%ZL&W zXzx*v`zz_*sJnOd;&`~Y3g(+UB9R2tPtL`4K%0avCKS9<&Bf!#kMZ&E0|1NdO9&4e zTQ)dFe2cTQyK(K%Qhk~Km?>b)wG9pJO!7g4$3aptQ$E^FG-G0BM$}4L6zjZ=$q%s+#;gd*i#>rx=T$jDi`zip9VC-i(tvD2Lc+?FslR`#+Ca;V=+DK)wIcEu zTrMOeZ#@GgAKs)ya36t*sVTiv&fJ`lsMm4+sW9uiObXb&b7urB2#4sl$^DzDN>)`q z1~+xABpPl;86Nl^C+r@B4Q1}m&Q3PZPgV;IpxwKMsY0rwzYGp)(qUL5^_RKBB{6W- zKroLqKxan(=oSbaOXL+dQ%x^}0fyivVwHSRH#zaT=3_`=|V?Qg*F8m=38FB`Uixe_+}&q6CWI5^1WDT0X>*EudqHoET{ z{EMxPV&;G#0)co zDQ>cx7mpb%CG!VLH|7OcT>n?T|HsYvYiyAJJ>!4A|2_N5e^2$_!@Z(J(3#+) z-$|_mp@;_T>rFKtOGp?Gwjrhr>%)YBK&*d}{~s~OF73O)zMMPWpt1FjYIR?MQJ9#R zctJ@?sjaD*%VnyeVXj&ORu1=TP%3zT^;E#m&(DB(Gp;y&O+A;QF z;LP&X*3^V;7M+0Qw*czrprWQE_!9I?1?6*bIu%z}0g1zQOznTR@|sHno3OC%ASPIS=kazlgg7D@s&=W}O6 zBO^`+I2g_NJ_w!vz7!a|gl>{p}{v80KA6hD9E_<_?(jHvG0YFh!^+ow} HvycA;Q2ywK literal 0 HcmV?d00001 diff --git a/docs/images/move-ex2.png b/docs/images/move-ex2.png new file mode 100644 index 0000000000000000000000000000000000000000..d221c981c572509289355752f4f64c3894db2347 GIT binary patch literal 10266 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 PWk5+zUA9Ep Date: Mon, 11 Apr 2022 18:22:08 +0800 Subject: [PATCH 410/455] ppp updates --- docs/AboutUs.md | 2 +- docs/team/prgj.md | 18 ++++++++++++------ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index ebf3fc00ada..deb76679b17 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -61,4 +61,4 @@ that all documentations are in-order. [[portfolio](team/prgj.md)] * Role: Scheduling and tracking -* Responsibilities: In charge of defining, assigning, adn tracking project tasks. +* Responsibilities: In charge of defining, assigning, and tracking project tasks. diff --git a/docs/team/prgj.md b/docs/team/prgj.md index d11fefddf93..673d746e1cf 100644 --- a/docs/team/prgj.md +++ b/docs/team/prgj.md @@ -8,14 +8,20 @@ schedules. It also provides them with a platform to visualise defensive and offe * **Code contributed**: [RepoSense link]( https://nus-cs2103-ay2122s2.github.io/tp-dashboard/?search=prgj&breakdown=true) * **Enhancement implemented** - * _to be added soon_ + * Implemented `add-t` command and relevant test cases to add a new task to the TaskList (PR: [#56](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/56), [#65](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/65)) + * Implemented `del-t` command and relevant test cases to delete an existing task from the TaskList (PR: [#56](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/56), [#65](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/65)) + * Implemented `edit-t` command and relevant test cases to edit an existing task in the TaskList (PR: [#135](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/135), [#136](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/136)) + * Implemented `export` command and relevant test cases to delete an existing task from the TaskList (PR: [#137](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/137), [#231](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/231)) * **Contributions to the UG** - * _to be added soon_ + * Added documentation for `add-t`, `del-t`,`edit-t`and `export` (PR: [#94](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/94)) + * Added CLI tutorial ([#252](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/252)) * **Contributions to the DG** - * _to be added soon_ + * Added use cases/user stories for `add-t`, `del-t`,`edit-t`and `export` (PR: [#94](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/94)) + * Added implementation details for `add-t`and `export`, modified `edit-t`(PR: [#249](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/249)) * **Contributions to team-based tasks** - * _to be added soon_ + * Update UserGuide with contents of draft user guide (PR: [#21](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/21)) * **Review/mentoring contributions** - * _to be added soon_ + * PR: [#86](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/86) + * PR: [#139](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/139) * **Contributions beyond the project team** - * _to be added soon_ + * _to be added soon_ From 105caf9d63fc71897c43ddf14f7ec9c35b7b4fa9 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Mon, 11 Apr 2022 19:29:14 +0800 Subject: [PATCH 411/455] Update PPP --- docs/team/simjunheng.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/team/simjunheng.md b/docs/team/simjunheng.md index 040484e0bb9..6aee4868dd2 100644 --- a/docs/team/simjunheng.md +++ b/docs/team/simjunheng.md @@ -20,11 +20,19 @@ schedules. It also provides them with a platform to visualise defensive and offe * Added **About the User Guide** section to improve front matter of the user guide (PR: [#214](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/214)) * Added section numberings throughout the user guide (PR: [#86](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/86)) * **Contributions to the DG** + * Update UI component diagram (PR: [#223](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/223)) * Added the following use cases: * Find tasks by name or tag (PR: [#139](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/139)) * Find persons by name or tag (PR: [#24](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/24) * Find persons tagged to a task (PR: [#139](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/139)) - * Added the implementation and design consideration for **Find Persons** feature (PR: [#86](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/86)) + * Added the implementation and design consideration for: + * **Find Persons** feature (PR: [#86](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/86)) + * **Add Persons** feature (PR: [#223](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/223)) + * **Edit Persons** feature (PR: [#223](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/223)) + * **Delete Persons** feature (PR: [#223](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/223)) + * **Delete Tasks** feature (PR: [#223](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/223)) + * **Find Tasks** feature (PR: [#223](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/223)) + * **Get Persons** feature (PR: [#223](https://github.com/AY2122S2-CS2103T-W14-2/tp/pull/223)) * **Contributions to team-based tasks** * Released JAR file for v1.2 and v1.3 * Update collaborative project notes for v1.2 and v1.3 features demo From c568a301bd7bb9ea4b82abea0d02a743e302500c Mon Sep 17 00:00:00 2001 From: Sim Jun Heng <77256455+simjunheng@users.noreply.github.com> Date: Mon, 11 Apr 2022 19:55:40 +0800 Subject: [PATCH 412/455] Revert "Add testing cases for strategy board related classes" --- .../strategy/AddPlayerCommandTest.java | 71 -------------- .../strategy/DeletePlayerCommandTest.java | 82 ---------------- .../strategy/MovePlayerCommandTest.java | 97 ------------------- .../address/model/strategy/PlayerTest.java | 97 ------------------- 4 files changed, 347 deletions(-) delete mode 100644 src/test/java/seedu/address/logic/commands/strategy/AddPlayerCommandTest.java delete mode 100644 src/test/java/seedu/address/logic/commands/strategy/DeletePlayerCommandTest.java delete mode 100644 src/test/java/seedu/address/logic/commands/strategy/MovePlayerCommandTest.java delete mode 100644 src/test/java/seedu/address/model/strategy/PlayerTest.java diff --git a/src/test/java/seedu/address/logic/commands/strategy/AddPlayerCommandTest.java b/src/test/java/seedu/address/logic/commands/strategy/AddPlayerCommandTest.java deleted file mode 100644 index 7363ac79828..00000000000 --- a/src/test/java/seedu/address/logic/commands/strategy/AddPlayerCommandTest.java +++ /dev/null @@ -1,71 +0,0 @@ -package seedu.address.logic.commands.strategy; - -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; -import static seedu.address.testutil.Assert.assertThrows; -import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; -import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; - -import org.junit.jupiter.api.Test; - -import seedu.address.logic.commands.exceptions.CommandException; -import seedu.address.logic.commands.person.ClearPersonCommand; -import seedu.address.model.Model; -import seedu.address.model.ModelManager; -import seedu.address.model.StrategyBoard; -import seedu.address.model.UserPrefs; -import seedu.address.model.strategy.Player; - -class AddPlayerCommandTest { - private static final String PLAYER_NAME_STUB_1 = "player1"; - private static final String PLAYER_NAME_STUB_2 = "player2"; - - private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), - new StrategyBoard(), new UserPrefs()); - - @Test - public void constructor_nullPlayer_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> new AddPlayerCommand(null)); - } - - @Test - public void execute_validPlayer_notNull() throws CommandException { - AddPlayerCommand addPlayerCommand = new AddPlayerCommand(new Player(PLAYER_NAME_STUB_1)); - assertNotNull(addPlayerCommand.execute(model)); - } - - @Test - public void execute_duplicatedPlayer_failure() { - Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), - new StrategyBoard(), new UserPrefs()); - model.addPlayer(new Player(PLAYER_NAME_STUB_1)); - AddPlayerCommand addPlayerCommand = new AddPlayerCommand(new Player(PLAYER_NAME_STUB_1)); - - assertCommandFailure(addPlayerCommand, model, AddPlayerCommand.MESSAGE_DUPLICATE_PLAYER); - } - - @Test - public void equals() { - final Player player1 = new Player(PLAYER_NAME_STUB_1); - final Player player2 = new Player(PLAYER_NAME_STUB_2); - final AddPlayerCommand standardCommand = new AddPlayerCommand(player1); - - // same values -> returns true - AddPlayerCommand commandWithSameValues = new AddPlayerCommand(player1); - assertTrue(standardCommand.equals(commandWithSameValues)); - - // same object -> returns true - assertTrue(standardCommand.equals(standardCommand)); - - // null -> returns false - assertFalse(standardCommand.equals(null)); - - // different types -> returns false - assertFalse(standardCommand.equals(new ClearPersonCommand())); - - // different player -> returns false - assertFalse(standardCommand.equals(new AddPlayerCommand(player2))); - } -} diff --git a/src/test/java/seedu/address/logic/commands/strategy/DeletePlayerCommandTest.java b/src/test/java/seedu/address/logic/commands/strategy/DeletePlayerCommandTest.java deleted file mode 100644 index aaabc4df306..00000000000 --- a/src/test/java/seedu/address/logic/commands/strategy/DeletePlayerCommandTest.java +++ /dev/null @@ -1,82 +0,0 @@ -package seedu.address.logic.commands.strategy; - -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; -import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; -import static seedu.address.testutil.Assert.assertThrows; -import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; -import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; - -import org.junit.jupiter.api.Test; - -import seedu.address.logic.commands.person.ClearPersonCommand; -import seedu.address.model.Model; -import seedu.address.model.ModelManager; -import seedu.address.model.StrategyBoard; -import seedu.address.model.UserPrefs; -import seedu.address.model.strategy.Player; - -class DeletePlayerCommandTest { - private static final String PLAYER_NAME_STUB_1 = "player1"; - private static final String PLAYER_NAME_STUB_2 = "player2"; - - private final Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), - new StrategyBoard(), new UserPrefs()); - - @Test - public void constructor_nullPlayer_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> new DeletePlayerCommand(null)); - } - - @Test - public void execute_validPlayerName_success() { - final Player player1 = new Player(PLAYER_NAME_STUB_1); - final String expectedMessage = String.format(DeletePlayerCommand.MESSAGE_SUCCESS, PLAYER_NAME_STUB_1); - - Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), - new StrategyBoard(), new UserPrefs()); - model.addPlayer(player1); - - DeletePlayerCommand deletePlayerCommand = new DeletePlayerCommand(PLAYER_NAME_STUB_1); - - Model expectedModel = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), - new StrategyBoard(), new UserPrefs()); - - assertCommandSuccess(deletePlayerCommand, model, expectedMessage, expectedModel); - } - - @Test - public void execute_invalidPlayerName_failure() { - final String expectedMessage = String.format(DeletePlayerCommand.MESSAGE_PLAYER_NOT_FOUND, PLAYER_NAME_STUB_2); - - Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), - new StrategyBoard(), new UserPrefs()); - model.addPlayer(new Player(PLAYER_NAME_STUB_1)); - - DeletePlayerCommand deletePlayerCommand = new DeletePlayerCommand(PLAYER_NAME_STUB_2); - - assertCommandFailure(deletePlayerCommand, model, expectedMessage); - } - - @Test - public void equals() { - final DeletePlayerCommand standardCommand = new DeletePlayerCommand(PLAYER_NAME_STUB_1); - - // same values -> returns true - DeletePlayerCommand commandWithSameValues = new DeletePlayerCommand(PLAYER_NAME_STUB_1); - assertTrue(standardCommand.equals(commandWithSameValues)); - - // same object -> returns true - assertTrue(standardCommand.equals(standardCommand)); - - // null -> returns false - assertFalse(standardCommand.equals(null)); - - // different types -> returns false - assertFalse(standardCommand.equals(new ClearPersonCommand())); - - // different player -> returns false - assertFalse(standardCommand.equals(new DeletePlayerCommand(PLAYER_NAME_STUB_2))); - } -} diff --git a/src/test/java/seedu/address/logic/commands/strategy/MovePlayerCommandTest.java b/src/test/java/seedu/address/logic/commands/strategy/MovePlayerCommandTest.java deleted file mode 100644 index c438508dff0..00000000000 --- a/src/test/java/seedu/address/logic/commands/strategy/MovePlayerCommandTest.java +++ /dev/null @@ -1,97 +0,0 @@ -package seedu.address.logic.commands.strategy; - -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; -import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; -import static seedu.address.testutil.Assert.assertThrows; -import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; -import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; - -import org.junit.jupiter.api.Test; - -import seedu.address.commons.core.Messages; -import seedu.address.logic.commands.person.ClearPersonCommand; -import seedu.address.model.Model; -import seedu.address.model.ModelManager; -import seedu.address.model.StrategyBoard; -import seedu.address.model.UserPrefs; -import seedu.address.model.strategy.Player; - -class MovePlayerCommandTest { - - private static final String PLAYER_NAME_STUB_1 = "player1"; - private static final String PLAYER_NAME_STUB_2 = "player2"; - private static final int POS_X_STUB_1 = 123; - private static final int POS_Y_STUB_1 = 456; - private static final int POS_X_STUB_2 = 321; - private static final int POS_Y_STUB_2 = 654; - - private final Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), - new StrategyBoard(), new UserPrefs()); - - @Test - public void constructor_nullPlayerName_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> - new MovePlayerCommand(null, POS_X_STUB_1, POS_Y_STUB_1)); - } - - @Test - public void execute_validPlayerNamePosition_success() { - final Player player1 = new Player(PLAYER_NAME_STUB_1, POS_X_STUB_1, POS_Y_STUB_1); - final Player player1WithoutPos = new Player(PLAYER_NAME_STUB_1); - final String expectedMessage = String.format(MovePlayerCommand.MESSAGE_SUCCESS, - PLAYER_NAME_STUB_1, POS_X_STUB_1, POS_Y_STUB_1); - - Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), - new StrategyBoard(), new UserPrefs()); - model.addPlayer(player1WithoutPos); - - MovePlayerCommand movePlayerCommand = new MovePlayerCommand(PLAYER_NAME_STUB_1, POS_X_STUB_1, POS_Y_STUB_1); - - Model expectedModel = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), - new StrategyBoard(), new UserPrefs()); - expectedModel.addPlayer(player1); - - assertCommandSuccess(movePlayerCommand, model, expectedMessage, expectedModel); - } - - @Test - public void execute_invalidPlayerNamePosition_failure() { - final String expectedMessage = String.format(Messages.MESSAGE_INVALID_PLAYER, PLAYER_NAME_STUB_2); - - Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), - new StrategyBoard(), new UserPrefs()); - model.addPlayer(new Player(PLAYER_NAME_STUB_1)); - MovePlayerCommand movePlayerCommand = new MovePlayerCommand(PLAYER_NAME_STUB_2, POS_X_STUB_1, POS_Y_STUB_1); - - assertCommandFailure(movePlayerCommand, model, expectedMessage); - } - - @Test - public void equals() { - final MovePlayerCommand standardCommand = new MovePlayerCommand(PLAYER_NAME_STUB_1, POS_X_STUB_1, POS_Y_STUB_1); - - // same values -> returns true - MovePlayerCommand commandWithSameValues = new MovePlayerCommand(PLAYER_NAME_STUB_1, POS_X_STUB_1, POS_Y_STUB_1); - assertTrue(standardCommand.equals(commandWithSameValues)); - - // same object -> returns true - assertTrue(standardCommand.equals(standardCommand)); - - // null -> returns false - assertFalse(standardCommand.equals(null)); - - // different types -> returns false - assertFalse(standardCommand.equals(new ClearPersonCommand())); - - // different player -> returns false - assertFalse(standardCommand.equals(new MovePlayerCommand(PLAYER_NAME_STUB_2, POS_X_STUB_1, POS_Y_STUB_1))); - - // different Position -> returns false - assertFalse(standardCommand.equals(new MovePlayerCommand(PLAYER_NAME_STUB_2, POS_X_STUB_2, POS_Y_STUB_1))); - - // different Position -> returns false - assertFalse(standardCommand.equals(new MovePlayerCommand(PLAYER_NAME_STUB_2, POS_X_STUB_1, POS_Y_STUB_2))); - } -} diff --git a/src/test/java/seedu/address/model/strategy/PlayerTest.java b/src/test/java/seedu/address/model/strategy/PlayerTest.java deleted file mode 100644 index 79f34f41a15..00000000000 --- a/src/test/java/seedu/address/model/strategy/PlayerTest.java +++ /dev/null @@ -1,97 +0,0 @@ -package seedu.address.model.strategy; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.testutil.Assert.assertThrows; - -import org.junit.jupiter.api.Test; - -class PlayerTest { - - private static final String VALID_NAME_1 = "caPs"; - private static final String VALID_NAME_2 = "Jankos"; - private static final String INVALID_NAME = "1234567890" - + "1234567890" - + "1234567890" - + "1234567890" - + "1234567890" - + "1"; - - @Test - public void constructor_nullName_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> new Player(null)); - } - - @Test - public void constructor_emptyName_throwsIllegalArgumentException() { - assertThrows(IllegalArgumentException.class, () -> new Player("")); - } - - @Test - public void constructor_invalidName_throwsIllegalArgumentException() { - assertThrows(IllegalArgumentException.class, () -> new Player(INVALID_NAME)); - } - - @Test - public void isValidPlayer_nullName_returnsFalse() { - assertThrows(NullPointerException.class, () -> Player.isValidPlayer(null)); - } - - @Test - public void isValidPlayer_validName_true() { - assertTrue(Player.isValidPlayer(VALID_NAME_1)); - } - - @Test - public void isValidPlayer_invalidName_false() { - assertFalse(Player.isValidPlayer(INVALID_NAME)); - } - - @Test - public void isValidPlayer_emptyName_false() { - assertFalse(Player.isValidPlayer("")); - } - - @Test - public void getName_validName_returnsName() { - Player player = new Player(VALID_NAME_1); - assertEquals(player.getName(), VALID_NAME_1); - } - - @Test - public void getXCoord_validCoord_returnsXCoord() { - Player player = new Player(VALID_NAME_1, 123, 456); - assertEquals(player.getXCoord(), 123); - } - - @Test - public void getYCoord_validCoord_returnsYCoord() { - Player player = new Player(VALID_NAME_1, 123, 456); - assertEquals(player.getYCoord(), 456); - } - - @Test - public void equals() { - Player player1 = new Player(VALID_NAME_1); - Player player1Copy = new Player(VALID_NAME_1); - - Player player2 = new Player(VALID_NAME_2); - Player player1Case = new Player("CaPs"); - - //same object reference - assertTrue(player1.equals(player1)); - - //same contents - assertTrue(player1.equals(player1Copy)); - - //case sensitive - assertFalse(player1.equals(player1Case)); - - //null - assertFalse(player1.equals(null)); - - //different contents - assertFalse(player1.equals(player2)); - } -} From efcf3fb87a36f8def08bce8c4006029b86a76671 Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Mon, 11 Apr 2022 20:52:28 +0800 Subject: [PATCH 413/455] Re-push the test case adding --- .../strategy/AddPlayerCommandTest.java | 71 ++++++++++++++ .../strategy/DeletePlayerCommandTest.java | 82 ++++++++++++++++ .../strategy/MovePlayerCommandTest.java | 97 +++++++++++++++++++ .../address/model/strategy/PlayerTest.java | 97 +++++++++++++++++++ 4 files changed, 347 insertions(+) create mode 100644 src/test/java/seedu/address/logic/commands/strategy/AddPlayerCommandTest.java create mode 100644 src/test/java/seedu/address/logic/commands/strategy/DeletePlayerCommandTest.java create mode 100644 src/test/java/seedu/address/logic/commands/strategy/MovePlayerCommandTest.java create mode 100644 src/test/java/seedu/address/model/strategy/PlayerTest.java diff --git a/src/test/java/seedu/address/logic/commands/strategy/AddPlayerCommandTest.java b/src/test/java/seedu/address/logic/commands/strategy/AddPlayerCommandTest.java new file mode 100644 index 00000000000..f7e002ef701 --- /dev/null +++ b/src/test/java/seedu/address/logic/commands/strategy/AddPlayerCommandTest.java @@ -0,0 +1,71 @@ +package seedu.address.logic.commands.strategy; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; +import static seedu.address.testutil.Assert.assertThrows; +import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; + +import org.junit.jupiter.api.Test; + +import seedu.address.logic.commands.person.ClearPersonCommand; +import seedu.address.logic.commands.task.exceptions.CommandException; +import seedu.address.model.Model; +import seedu.address.model.ModelManager; +import seedu.address.model.StrategyBoard; +import seedu.address.model.UserPrefs; +import seedu.address.model.strategy.Player; + +class AddPlayerCommandTest { + private static final String PLAYER_NAME_STUB_1 = "player1"; + private static final String PLAYER_NAME_STUB_2 = "player2"; + + private Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); + + @Test + public void constructor_nullPlayer_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> new AddPlayerCommand(null)); + } + + @Test + public void execute_validPlayer_notNull() throws CommandException { + AddPlayerCommand addPlayerCommand = new AddPlayerCommand(new Player(PLAYER_NAME_STUB_1)); + assertNotNull(addPlayerCommand.execute(model)); + } + + @Test + public void execute_duplicatedPlayer_failure() { + Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); + model.addPlayer(new Player(PLAYER_NAME_STUB_1)); + AddPlayerCommand addPlayerCommand = new AddPlayerCommand(new Player(PLAYER_NAME_STUB_1)); + + assertCommandFailure(addPlayerCommand, model, AddPlayerCommand.MESSAGE_DUPLICATE_PLAYER); + } + + @Test + public void equals() { + final Player player1 = new Player(PLAYER_NAME_STUB_1); + final Player player2 = new Player(PLAYER_NAME_STUB_2); + final AddPlayerCommand standardCommand = new AddPlayerCommand(player1); + + // same values -> returns true + AddPlayerCommand commandWithSameValues = new AddPlayerCommand(player1); + assertTrue(standardCommand.equals(commandWithSameValues)); + + // same object -> returns true + assertTrue(standardCommand.equals(standardCommand)); + + // null -> returns false + assertFalse(standardCommand.equals(null)); + + // different types -> returns false + assertFalse(standardCommand.equals(new ClearPersonCommand())); + + // different player -> returns false + assertFalse(standardCommand.equals(new AddPlayerCommand(player2))); + } +} diff --git a/src/test/java/seedu/address/logic/commands/strategy/DeletePlayerCommandTest.java b/src/test/java/seedu/address/logic/commands/strategy/DeletePlayerCommandTest.java new file mode 100644 index 00000000000..aaabc4df306 --- /dev/null +++ b/src/test/java/seedu/address/logic/commands/strategy/DeletePlayerCommandTest.java @@ -0,0 +1,82 @@ +package seedu.address.logic.commands.strategy; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; +import static seedu.address.testutil.Assert.assertThrows; +import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; + +import org.junit.jupiter.api.Test; + +import seedu.address.logic.commands.person.ClearPersonCommand; +import seedu.address.model.Model; +import seedu.address.model.ModelManager; +import seedu.address.model.StrategyBoard; +import seedu.address.model.UserPrefs; +import seedu.address.model.strategy.Player; + +class DeletePlayerCommandTest { + private static final String PLAYER_NAME_STUB_1 = "player1"; + private static final String PLAYER_NAME_STUB_2 = "player2"; + + private final Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); + + @Test + public void constructor_nullPlayer_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> new DeletePlayerCommand(null)); + } + + @Test + public void execute_validPlayerName_success() { + final Player player1 = new Player(PLAYER_NAME_STUB_1); + final String expectedMessage = String.format(DeletePlayerCommand.MESSAGE_SUCCESS, PLAYER_NAME_STUB_1); + + Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); + model.addPlayer(player1); + + DeletePlayerCommand deletePlayerCommand = new DeletePlayerCommand(PLAYER_NAME_STUB_1); + + Model expectedModel = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); + + assertCommandSuccess(deletePlayerCommand, model, expectedMessage, expectedModel); + } + + @Test + public void execute_invalidPlayerName_failure() { + final String expectedMessage = String.format(DeletePlayerCommand.MESSAGE_PLAYER_NOT_FOUND, PLAYER_NAME_STUB_2); + + Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); + model.addPlayer(new Player(PLAYER_NAME_STUB_1)); + + DeletePlayerCommand deletePlayerCommand = new DeletePlayerCommand(PLAYER_NAME_STUB_2); + + assertCommandFailure(deletePlayerCommand, model, expectedMessage); + } + + @Test + public void equals() { + final DeletePlayerCommand standardCommand = new DeletePlayerCommand(PLAYER_NAME_STUB_1); + + // same values -> returns true + DeletePlayerCommand commandWithSameValues = new DeletePlayerCommand(PLAYER_NAME_STUB_1); + assertTrue(standardCommand.equals(commandWithSameValues)); + + // same object -> returns true + assertTrue(standardCommand.equals(standardCommand)); + + // null -> returns false + assertFalse(standardCommand.equals(null)); + + // different types -> returns false + assertFalse(standardCommand.equals(new ClearPersonCommand())); + + // different player -> returns false + assertFalse(standardCommand.equals(new DeletePlayerCommand(PLAYER_NAME_STUB_2))); + } +} diff --git a/src/test/java/seedu/address/logic/commands/strategy/MovePlayerCommandTest.java b/src/test/java/seedu/address/logic/commands/strategy/MovePlayerCommandTest.java new file mode 100644 index 00000000000..c438508dff0 --- /dev/null +++ b/src/test/java/seedu/address/logic/commands/strategy/MovePlayerCommandTest.java @@ -0,0 +1,97 @@ +package seedu.address.logic.commands.strategy; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; +import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; +import static seedu.address.testutil.Assert.assertThrows; +import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static seedu.address.testutil.TypicalTasks.getTypicalTaskBook; + +import org.junit.jupiter.api.Test; + +import seedu.address.commons.core.Messages; +import seedu.address.logic.commands.person.ClearPersonCommand; +import seedu.address.model.Model; +import seedu.address.model.ModelManager; +import seedu.address.model.StrategyBoard; +import seedu.address.model.UserPrefs; +import seedu.address.model.strategy.Player; + +class MovePlayerCommandTest { + + private static final String PLAYER_NAME_STUB_1 = "player1"; + private static final String PLAYER_NAME_STUB_2 = "player2"; + private static final int POS_X_STUB_1 = 123; + private static final int POS_Y_STUB_1 = 456; + private static final int POS_X_STUB_2 = 321; + private static final int POS_Y_STUB_2 = 654; + + private final Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); + + @Test + public void constructor_nullPlayerName_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> + new MovePlayerCommand(null, POS_X_STUB_1, POS_Y_STUB_1)); + } + + @Test + public void execute_validPlayerNamePosition_success() { + final Player player1 = new Player(PLAYER_NAME_STUB_1, POS_X_STUB_1, POS_Y_STUB_1); + final Player player1WithoutPos = new Player(PLAYER_NAME_STUB_1); + final String expectedMessage = String.format(MovePlayerCommand.MESSAGE_SUCCESS, + PLAYER_NAME_STUB_1, POS_X_STUB_1, POS_Y_STUB_1); + + Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); + model.addPlayer(player1WithoutPos); + + MovePlayerCommand movePlayerCommand = new MovePlayerCommand(PLAYER_NAME_STUB_1, POS_X_STUB_1, POS_Y_STUB_1); + + Model expectedModel = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); + expectedModel.addPlayer(player1); + + assertCommandSuccess(movePlayerCommand, model, expectedMessage, expectedModel); + } + + @Test + public void execute_invalidPlayerNamePosition_failure() { + final String expectedMessage = String.format(Messages.MESSAGE_INVALID_PLAYER, PLAYER_NAME_STUB_2); + + Model model = new ModelManager(getTypicalAddressBook(), getTypicalTaskBook(), + new StrategyBoard(), new UserPrefs()); + model.addPlayer(new Player(PLAYER_NAME_STUB_1)); + MovePlayerCommand movePlayerCommand = new MovePlayerCommand(PLAYER_NAME_STUB_2, POS_X_STUB_1, POS_Y_STUB_1); + + assertCommandFailure(movePlayerCommand, model, expectedMessage); + } + + @Test + public void equals() { + final MovePlayerCommand standardCommand = new MovePlayerCommand(PLAYER_NAME_STUB_1, POS_X_STUB_1, POS_Y_STUB_1); + + // same values -> returns true + MovePlayerCommand commandWithSameValues = new MovePlayerCommand(PLAYER_NAME_STUB_1, POS_X_STUB_1, POS_Y_STUB_1); + assertTrue(standardCommand.equals(commandWithSameValues)); + + // same object -> returns true + assertTrue(standardCommand.equals(standardCommand)); + + // null -> returns false + assertFalse(standardCommand.equals(null)); + + // different types -> returns false + assertFalse(standardCommand.equals(new ClearPersonCommand())); + + // different player -> returns false + assertFalse(standardCommand.equals(new MovePlayerCommand(PLAYER_NAME_STUB_2, POS_X_STUB_1, POS_Y_STUB_1))); + + // different Position -> returns false + assertFalse(standardCommand.equals(new MovePlayerCommand(PLAYER_NAME_STUB_2, POS_X_STUB_2, POS_Y_STUB_1))); + + // different Position -> returns false + assertFalse(standardCommand.equals(new MovePlayerCommand(PLAYER_NAME_STUB_2, POS_X_STUB_1, POS_Y_STUB_2))); + } +} diff --git a/src/test/java/seedu/address/model/strategy/PlayerTest.java b/src/test/java/seedu/address/model/strategy/PlayerTest.java new file mode 100644 index 00000000000..79f34f41a15 --- /dev/null +++ b/src/test/java/seedu/address/model/strategy/PlayerTest.java @@ -0,0 +1,97 @@ +package seedu.address.model.strategy; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static seedu.address.testutil.Assert.assertThrows; + +import org.junit.jupiter.api.Test; + +class PlayerTest { + + private static final String VALID_NAME_1 = "caPs"; + private static final String VALID_NAME_2 = "Jankos"; + private static final String INVALID_NAME = "1234567890" + + "1234567890" + + "1234567890" + + "1234567890" + + "1234567890" + + "1"; + + @Test + public void constructor_nullName_throwsNullPointerException() { + assertThrows(NullPointerException.class, () -> new Player(null)); + } + + @Test + public void constructor_emptyName_throwsIllegalArgumentException() { + assertThrows(IllegalArgumentException.class, () -> new Player("")); + } + + @Test + public void constructor_invalidName_throwsIllegalArgumentException() { + assertThrows(IllegalArgumentException.class, () -> new Player(INVALID_NAME)); + } + + @Test + public void isValidPlayer_nullName_returnsFalse() { + assertThrows(NullPointerException.class, () -> Player.isValidPlayer(null)); + } + + @Test + public void isValidPlayer_validName_true() { + assertTrue(Player.isValidPlayer(VALID_NAME_1)); + } + + @Test + public void isValidPlayer_invalidName_false() { + assertFalse(Player.isValidPlayer(INVALID_NAME)); + } + + @Test + public void isValidPlayer_emptyName_false() { + assertFalse(Player.isValidPlayer("")); + } + + @Test + public void getName_validName_returnsName() { + Player player = new Player(VALID_NAME_1); + assertEquals(player.getName(), VALID_NAME_1); + } + + @Test + public void getXCoord_validCoord_returnsXCoord() { + Player player = new Player(VALID_NAME_1, 123, 456); + assertEquals(player.getXCoord(), 123); + } + + @Test + public void getYCoord_validCoord_returnsYCoord() { + Player player = new Player(VALID_NAME_1, 123, 456); + assertEquals(player.getYCoord(), 456); + } + + @Test + public void equals() { + Player player1 = new Player(VALID_NAME_1); + Player player1Copy = new Player(VALID_NAME_1); + + Player player2 = new Player(VALID_NAME_2); + Player player1Case = new Player("CaPs"); + + //same object reference + assertTrue(player1.equals(player1)); + + //same contents + assertTrue(player1.equals(player1Copy)); + + //case sensitive + assertFalse(player1.equals(player1Case)); + + //null + assertFalse(player1.equals(null)); + + //different contents + assertFalse(player1.equals(player2)); + } +} From 4a15aa589dbdf028da8c8a6f74fffe38df6fc160 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Mon, 11 Apr 2022 20:52:38 +0800 Subject: [PATCH 414/455] Insert page breaks for UG --- docs/UserGuide.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index af66d73f660..5c543d1ce27 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -8,7 +8,7 @@ title: User Guide {:toc} -------------------------------------------------------------------------------------------------------------------- - +
      ## **1. Introduction** Coach2K22 is a desktop app that helps busy sports coaches **organise their overwhelming lists of contacts and messy weekly schedules.** It also provides them with a **platform to visualise defensive and offensive plays** as the game unfolds. @@ -27,6 +27,8 @@ This application is **optimized for use via a Command Line Interface** (CLI) whi 4. Type your commands in the Command Line Interface box (CLI) labeled below. You can switch between the three tabs (Contact, Schedule, Strategy tabs).
      ![Ui-labeled](images/Ui-Labeled.png) + +
      5. Refer to the [Features](#2-features) below for details of each command, as well as their formats. @@ -36,6 +38,8 @@ This application is **optimized for use via a Command Line Interface** (CLI) whi Coach2K22 can run on computers with Windows and MacOS (_Requires at least 1GB RAM and 500 MB of storage_). +
      + ### 1.2 CLI tutorial ======= Some users may not have come across a Command Line Interface (CLI) based application before. From efc9d3aa2d1df9d70a3b55a5262d87e64e7a8c08 Mon Sep 17 00:00:00 2001 From: Lyu Xiaoteng <35390703+Rye-Catcher@users.noreply.github.com> Date: Mon, 11 Apr 2022 21:00:19 +0800 Subject: [PATCH 415/455] Fix a minor bug in UG move player section --- docs/UserGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index af66d73f660..2378d28cfd2 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -632,7 +632,7 @@ It is roughly located at the coordinate `(50, 550)` since the circle center is a ![move-ex1](images/move-ex1.png) Then you can move John to the coordinate `(150, 500)` by typing: -* `move Messi x/150 y/500`. +* `move John x/150 y/500`. The image below shows the new position of John: You can see that the circle center has moved to the new coordinate. From 3b705b316062f942fc5b44a98f2db0a29a8551cb Mon Sep 17 00:00:00 2001 From: simjunheng Date: Mon, 11 Apr 2022 21:00:27 +0800 Subject: [PATCH 416/455] Add page break --- docs/UserGuide.md | 6 +----- docs/images/Ui-Labeled.png | Bin 106523 -> 64556 bytes 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 5c543d1ce27..af66d73f660 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -8,7 +8,7 @@ title: User Guide {:toc} -------------------------------------------------------------------------------------------------------------------- -
      + ## **1. Introduction** Coach2K22 is a desktop app that helps busy sports coaches **organise their overwhelming lists of contacts and messy weekly schedules.** It also provides them with a **platform to visualise defensive and offensive plays** as the game unfolds. @@ -27,8 +27,6 @@ This application is **optimized for use via a Command Line Interface** (CLI) whi 4. Type your commands in the Command Line Interface box (CLI) labeled below. You can switch between the three tabs (Contact, Schedule, Strategy tabs).
      ![Ui-labeled](images/Ui-Labeled.png) - -
      5. Refer to the [Features](#2-features) below for details of each command, as well as their formats. @@ -38,8 +36,6 @@ This application is **optimized for use via a Command Line Interface** (CLI) whi Coach2K22 can run on computers with Windows and MacOS (_Requires at least 1GB RAM and 500 MB of storage_). -
      - ### 1.2 CLI tutorial ======= Some users may not have come across a Command Line Interface (CLI) based application before. diff --git a/docs/images/Ui-Labeled.png b/docs/images/Ui-Labeled.png index 589cda85566f443474bf1393d25de8e786407855..4104457f5e63d978c33c909eac8a8f702b299c57 100644 GIT binary patch literal 64556 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

      pK%y*^GBF={yS&zHS70nrv4C_BMY% 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 literal 106523 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

      + +-------------------------------------------------------------------------------------------------------------------- ## **2. About the User Guide** From 771e4d7327685f54ead653c6e1a252240356aec0 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Mon, 11 Apr 2022 21:14:24 +0800 Subject: [PATCH 419/455] Fix spacing --- docs/UserGuide.md | 1 - docs/_sass/minima/_layout.scss | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index a3b1a9321c6..a2d4fd69ef7 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -57,7 +57,6 @@ Here is a quick tutorial to get your started!
      --------------------------------------------------------------------------------------------------------------------- ## **2. About the User Guide** diff --git a/docs/_sass/minima/_layout.scss b/docs/_sass/minima/_layout.scss index ca99f981701..f370d3f40a5 100644 --- a/docs/_sass/minima/_layout.scss +++ b/docs/_sass/minima/_layout.scss @@ -176,7 +176,7 @@ .post-content { margin-bottom: $spacing-unit; - h1, h2, h3 { margin-top: $spacing-unit * 2 } + h1, h2, h3 { margin-top: $spacing-unit } h4, h5, h6 { margin-top: $spacing-unit } h2 { From 4ad48decc4f3b025a409813d1252d5557fe823f4 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Mon, 11 Apr 2022 21:19:31 +0800 Subject: [PATCH 420/455] Add page break --- docs/UserGuide.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index a2d4fd69ef7..0d58d3551f0 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -8,15 +8,14 @@ title: User Guide {:toc} -------------------------------------------------------------------------------------------------------------------- +
      ## **1. Introduction** Coach2K22 is a desktop app that helps busy sports coaches **organise their overwhelming lists of contacts and messy weekly schedules.** It also provides them with a **platform to visualise defensive and offensive plays** as the game unfolds. ### 1.1 Installation Instructions -======= -This application is **optimized for use via a Command Line Interface** (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, Coach2K22 can get your administrative tasks done faster than traditional GUI apps. --------------------------------------------------------------------------------------------------------------------- +This application is **optimized for use via a Command Line Interface** (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, Coach2K22 can get your administrative tasks done faster than traditional GUI apps. 1. Download the latest '.jar' file from [here](https://github.com/AY2122S2-CS2103T-W14-2/tp/releases). @@ -37,11 +36,9 @@ Coach2K22 can run on computers with Windows and MacOS (_Requires at least 1GB RA ### 1.2 CLI tutorial -======= -Some users may not have come across a Command Line Interface (CLI) based application before. -Here is a quick tutorial to get your started! --------------------------------------------------------------------------------------------------------------------- +You may not have come across a Command Line Interface (CLI) based application before. +Here is a quick tutorial to get you started! 1. Follow the instructions above in section 1.1 to download the Coach2k22 application to a directory of your choice. @@ -57,6 +54,8 @@ Here is a quick tutorial to get your started!
      +-------------------------------------------------------------------------------------------------------------------- + ## **2. About the User Guide** From 71fff016f9e7fb4f108637de9356f9ab73dc269b Mon Sep 17 00:00:00 2001 From: simjunheng Date: Mon, 11 Apr 2022 21:22:31 +0800 Subject: [PATCH 421/455] Add second page break --- docs/UserGuide.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 0d58d3551f0..0f189cec159 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -124,6 +124,8 @@ This subsection describes some noteworthy information about the command format t -------------------------------------------------------------------------------------------------------------------- +
      + ## **3. Quick Start** 1. Ensure you have Java `11` or above installed in your Computer. From a4fd1afb493496ee827085be85e45f9fd41343b1 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Mon, 11 Apr 2022 21:25:13 +0800 Subject: [PATCH 422/455] Add page break 3 --- docs/UserGuide.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 0f189cec159..8119b196ed6 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -273,6 +273,7 @@ Examples: +
      #### 4.1.9 Adding a strength : `strength-add` From 49ea2cf018625e4699fbf6b7986b42d4df9e5f7f Mon Sep 17 00:00:00 2001 From: simjunheng Date: Mon, 11 Apr 2022 21:28:46 +0800 Subject: [PATCH 423/455] Add page break 5 --- docs/UserGuide.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 8119b196ed6..90cfb5dd269 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -315,6 +315,8 @@ Examples: +
      + #### 4.1.11 Adding a miscellaneous note : `misc-add` Add a miscellaneous note to a selected person from our contact list. @@ -356,6 +358,7 @@ Examples: +
      #### 4.1.13 Deleting a weakness : `weakness-del` From 14e00c3ef57d0ce02199bb694fb9bd700f6f6180 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Mon, 11 Apr 2022 21:31:33 +0800 Subject: [PATCH 424/455] Add page break 6 --- docs/UserGuide.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 90cfb5dd269..348b54ab24f 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -403,6 +403,8 @@ Examples: +
      + #### 4.1.15 Sorting list of persons by strengths : `sort-strength` Sorts the list of persons by total strengths in descending order. @@ -415,7 +417,6 @@ Sorts the list of persons by total weaknesses in descending order. Format: `sort-weaknesses` - ### 4.2 Task Management #### 4.2.1 Listing all tasks : `list-t` @@ -450,6 +451,8 @@ Examples: +
      + #### 4.2.3 Deleting a task: `del-t` Delete a task from our task list. @@ -459,12 +462,16 @@ Format: `del-t INDEX` Examples: * `del-t 2` deletes the second task in the task list. +
      + **:information_source: Key things to take note of:**
      * Deletes the task at the specified `INDEX`. * The index can be obtained by referring to the indicated task index on the displayed task list. * Index values start from 1 and are always positive integers. +
      + #### 4.2.4 Editing a task: `edit-t` Edit a task from our task list. From 1146c587a0ed97666c39fba606def30b5da23cf5 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Mon, 11 Apr 2022 21:33:46 +0800 Subject: [PATCH 425/455] Fix UG errors --- docs/UserGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 348b54ab24f..9437cdf3e0c 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -470,7 +470,7 @@ Examples: * The index can be obtained by referring to the indicated task index on the displayed task list. * Index values start from 1 and are always positive integers. -
      +
      #### 4.2.4 Editing a task: `edit-t` From d30a99a4e1070d19bcd4ae50b44a4cea124c87ca Mon Sep 17 00:00:00 2001 From: simjunheng Date: Mon, 11 Apr 2022 21:35:31 +0800 Subject: [PATCH 426/455] Add page break 7 --- docs/UserGuide.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 9437cdf3e0c..00be7964bf5 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -491,6 +491,8 @@ Format: `clear-t [d/DATE]` Examples: * `clear-t d/10-10-2022` clears all tasks on the date given. +
      +
      **:information_source: Key things to take note of:**
      From d7082d44a8031441da9c818d8d125ed2853be5ec Mon Sep 17 00:00:00 2001 From: simjunheng Date: Mon, 11 Apr 2022 21:38:06 +0800 Subject: [PATCH 427/455] Add page break 7 --- docs/UserGuide.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 00be7964bf5..935c238f314 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -229,6 +229,8 @@ Examples:
      +
      + #### 4.1.7 Deleting a tag : `tag-del-p` Add tags to a selected person from our contact list. @@ -381,7 +383,6 @@ Examples:
      - #### 4.1.14 Deleting a miscellaneous note : `misc-del` Delete the miscellaneous note from a selected person from our contact list. @@ -537,6 +538,8 @@ Examples:
      +
      + #### 4.2.8 Locating tasks by keyword : `find-t` Find tasks matching any of the given keywords from our task list. From 2f096d5e059ffc650947f4c1dc4db6ee4d86868a Mon Sep 17 00:00:00 2001 From: simjunheng Date: Mon, 11 Apr 2022 21:39:59 +0800 Subject: [PATCH 428/455] add page break 9 --- docs/UserGuide.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 935c238f314..fd79045fd19 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -623,6 +623,8 @@ Examples: +
      + #### 4.3.3 Removing players: `del-player` Remove a player from the strategy board. From ee4fcd035b217b72a6e3ddd66e097612fe590a31 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Mon, 11 Apr 2022 21:41:59 +0800 Subject: [PATCH 429/455] Add page break 10 --- docs/UserGuide.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index fd79045fd19..a43940d351d 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -682,6 +682,8 @@ Format: `exit` -------------------------------------------------------------------------------------------------------------------- +
      + ## **5. FAQ** **Q**: How do I transfer my data to another Computer?
      From 25128c63442ce1826cf439327cf85ef8ccbad919 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Mon, 11 Apr 2022 21:44:17 +0800 Subject: [PATCH 430/455] Add final page break --- docs/UserGuide.md | 4 ++++ docs/team/simjunheng.md | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index a43940d351d..dc16726265e 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -727,6 +727,8 @@ The actions here are all related to managing the contacts of the user. | **Sort by Strengths** | `sort-strength` | | **Sort by Weaknesses** | `sort-weakness`
      | +
      + ### 6.2 Task Management This section will list all the commands available for task management in the application. The actions here are all related to managing the tasks of the user. @@ -744,6 +746,8 @@ The actions here are all related to managing the tasks of the user. | **Get Person** | `get-person INDEX`
      e.g., `get-person 2` | | **Sort By Date** | `sort-date` | +
      + ### 6.3 Strategic Planning This section will list all the commands available for strategic planning in the application. The actions here are all related to performing the strategic planning. diff --git a/docs/team/simjunheng.md b/docs/team/simjunheng.md index 6aee4868dd2..8d5f38c5926 100644 --- a/docs/team/simjunheng.md +++ b/docs/team/simjunheng.md @@ -1,4 +1,4 @@ -### Project: Coach2K22 +### Sim Jun Heng's Project Portfolio Page #### Overview Our product helps busy sports coaches organise their overwhelming lists of contacts and messy weekly From 321b0e36f348e2571b4c7911dd99d70a481bcab0 Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Mon, 11 Apr 2022 21:51:41 +0800 Subject: [PATCH 431/455] Fix Coack2022 reference --- docs/_sass/minima/_base.scss | 2 +- src/main/java/seedu/address/model/image/Image.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_sass/minima/_base.scss b/docs/_sass/minima/_base.scss index 0b455fcc0de..93eada6d494 100644 --- a/docs/_sass/minima/_base.scss +++ b/docs/_sass/minima/_base.scss @@ -288,7 +288,7 @@ table { text-align: center; } .site-header:before { - content: "Coack2K22"; + content: "Coach2K22"; font-size: 32px; } } diff --git a/src/main/java/seedu/address/model/image/Image.java b/src/main/java/seedu/address/model/image/Image.java index 728ce0a0865..057a6e8f1a8 100644 --- a/src/main/java/seedu/address/model/image/Image.java +++ b/src/main/java/seedu/address/model/image/Image.java @@ -4,7 +4,7 @@ import java.io.File; /** - * Represents an Image in Coack2K22. + * Represents an Image in Coach2K22. */ public class Image { public static final String FILE_PATH = "courts/"; From 434da430edfc3d2aef15b6110bcd2549cc4521b5 Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Mon, 11 Apr 2022 22:04:40 +0800 Subject: [PATCH 432/455] Amend reference in PPP --- docs/team/aalghrairy.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/team/aalghrairy.md b/docs/team/aalghrairy.md index 97fa58fe19e..c512ed19da0 100644 --- a/docs/team/aalghrairy.md +++ b/docs/team/aalghrairy.md @@ -1,4 +1,4 @@ -### Abdulelah Faisal S Al Ghrairy's Project Portfolio Page +### Project: Coach2K22 #### Overview: Our product helps busy sports coaches organise their overwhelming lists of contacts and messy weekly From 6c24dcfa084a007edd3011b2f5b103d2e10e4f6a Mon Sep 17 00:00:00 2001 From: Abdulelah Faisal S Al Ghrairy Date: Mon, 11 Apr 2022 22:11:30 +0800 Subject: [PATCH 433/455] Fix issue --- docs/team/aalghrairy.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/team/aalghrairy.md b/docs/team/aalghrairy.md index c512ed19da0..7514a1cdbff 100644 --- a/docs/team/aalghrairy.md +++ b/docs/team/aalghrairy.md @@ -1,4 +1,4 @@ -### Project: Coach2K22 +### Abdulelah Faisal S Al Ghrairy’s Project Portfolio Page #### Overview: Our product helps busy sports coaches organise their overwhelming lists of contacts and messy weekly From 03d8b9abb104664cc19b64c8e50e3f4a55d908f3 Mon Sep 17 00:00:00 2001 From: Pragya Date: Mon, 11 Apr 2022 22:30:24 +0800 Subject: [PATCH 434/455] redo --- docs/diagrams/AddTaskSequenceDiagram.puml | 17 ++++++ docs/diagrams/EditTaskSequenceDiagram.puml | 17 ++++++ .../ExportStrategySequenceDiagram.puml | 49 ++++++++++++++++++ docs/diagrams/LoadCourtSequenceDiagram.puml | 22 ++++++-- docs/images/AddTaskSequenceDiagram.png | Bin 31551 -> 53213 bytes docs/images/EditTaskSequenceDiagram.png | Bin 31751 -> 54197 bytes docs/images/ExportStrategySequenceDiagram.png | Bin 0 -> 28248 bytes docs/images/LoadCourtSequenceDiagram.png | Bin 23359 -> 34935 bytes 8 files changed, 102 insertions(+), 3 deletions(-) create mode 100644 docs/diagrams/ExportStrategySequenceDiagram.puml create mode 100644 docs/images/ExportStrategySequenceDiagram.png diff --git a/docs/diagrams/AddTaskSequenceDiagram.puml b/docs/diagrams/AddTaskSequenceDiagram.puml index 83e5dc5c913..8eec52a4e82 100644 --- a/docs/diagrams/AddTaskSequenceDiagram.puml +++ b/docs/diagrams/AddTaskSequenceDiagram.puml @@ -52,6 +52,23 @@ activate Model Model --> AddTaskCommand deactivate Model +AddTaskCommand -> Model : hasStartEndTimeConflict() +activate Model + +Model --> AddTaskCommand +deactivate Model + +loop size of Task ContactList + loop size of TaskList + AddTaskCommand -> Model : hasDateTimeConflict("Meet ...") + activate Model + Model --> AddTaskCommand + deactivate Model + end +end + + + create CommandResult AddTaskCommand -> CommandResult activate CommandResult diff --git a/docs/diagrams/EditTaskSequenceDiagram.puml b/docs/diagrams/EditTaskSequenceDiagram.puml index 4fd01813705..fbb7cb4c64b 100644 --- a/docs/diagrams/EditTaskSequenceDiagram.puml +++ b/docs/diagrams/EditTaskSequenceDiagram.puml @@ -52,6 +52,23 @@ activate Model Model --> EditTaskCommand deactivate Model +EditTaskCommand -> Model : hasStartEndTimeConflict() +activate Model + +Model --> EditTaskCommand +deactivate Model + +loop size of Task ContactList + loop size of TaskList + EditTaskCommand -> Model : hasDateTimeConflict(editedTask) + activate Model + Model --> EditTaskCommand + deactivate Model + end +end + + + create CommandResult EditTaskCommand -> CommandResult activate CommandResult diff --git a/docs/diagrams/ExportStrategySequenceDiagram.puml b/docs/diagrams/ExportStrategySequenceDiagram.puml new file mode 100644 index 00000000000..8e7472c9931 --- /dev/null +++ b/docs/diagrams/ExportStrategySequenceDiagram.puml @@ -0,0 +1,49 @@ +@startuml +!include style.puml + +box Logic LOGIC_COLOR_T1 +participant ":LogicManager" as LogicManager LOGIC_COLOR +participant ":Coach2K22Parser" as Coach2K22Parser LOGIC_COLOR +participant ":ExportCommand" as ExportCommand LOGIC_COLOR +participant ":CommandResult" as CommandResult LOGIC_COLOR +end box + +box MainWindow MODEL_COLOR_T1 +participant ":MainWindow" as MainWindow MODEL_COLOR +end box + +[-> LogicManager : execute() +activate LogicManager + +LogicManager -> Coach2K22Parser : parseCommand(args) +activate Coach2K22Parser + +create ExportCommand +Coach2K22Parser -> ExportCommand : e +activate ExportCommand + +ExportCommand --> Coach2K22Parser +deactivate ExportCommand + +Coach2K22Parser --> LogicManager : e +deactivate Coach2K22Parser + +LogicManager -> ExportCommand : execute() +activate ExportCommand + +create CommandResult +ExportCommand -> CommandResult +activate CommandResult + +CommandResult --> ExportCommand + +MainWindow --> CommandResult : captureAndSaveStrategyPanel() +CommandResult --> MainWindow +deactivate CommandResult + +ExportCommand --> LogicManager : result +deactivate ExportCommand + +[<--LogicManager +deactivate LogicManager +@enduml \ No newline at end of file diff --git a/docs/diagrams/LoadCourtSequenceDiagram.puml b/docs/diagrams/LoadCourtSequenceDiagram.puml index ce8c3464842..c8a31fbaced 100644 --- a/docs/diagrams/LoadCourtSequenceDiagram.puml +++ b/docs/diagrams/LoadCourtSequenceDiagram.puml @@ -4,6 +4,7 @@ box Logic LOGIC_COLOR_T1 participant ":LogicManager" as LogicManager LOGIC_COLOR participant ":Coach2K22Parser" as Coach2K22Parser LOGIC_COLOR +participant ":LoadCourtCommandParser" as LoadCourtCommandParser LOGIC_COLOR participant "l:LoadCourtCommand" as LoadCourtCommand LOGIC_COLOR participant ":CommandResult" as CommandResult LOGIC_COLOR end box @@ -18,14 +19,29 @@ activate LogicManager LogicManager -> Coach2K22Parser : parseCommand(args) activate Coach2K22Parser +create LoadCourtCommandParser +Coach2K22Parser -> LoadCourtCommandParser +activate LoadCourtCommandParser + +LoadCourtCommandParser --> Coach2K22Parser +deactivate LoadCourtCommandParser + +Coach2K22Parser -> LoadCourtCommandParser : parse(args) +activate LoadCourtCommandParser + create LoadCourtCommand -Coach2K22Parser -> LoadCourtCommand : s +LoadCourtCommandParser -> LoadCourtCommand activate LoadCourtCommand -LoadCourtCommand --> Coach2K22Parser +LoadCourtCommand --> LoadCourtCommandParser deactivate LoadCourtCommand -Coach2K22Parser --> LogicManager : s +LoadCourtCommandParser --> Coach2K22Parser + +LoadCourtCommandParser -[hidden]-> Coach2K22Parser +destroy LoadCourtCommandParser + +Coach2K22Parser --> LogicManager deactivate Coach2K22Parser LogicManager -> LoadCourtCommand : execute() diff --git a/docs/images/AddTaskSequenceDiagram.png b/docs/images/AddTaskSequenceDiagram.png index 97657a0ed105170e3fddb38f21aaefc6aa5a2740..5109744fde77efc3541569defbe42a1a4e900b6e 100644 GIT binary patch literal 53213 zcmcG$bzGEf*ETu^Dj=aCAPgWX(jcHPw1R}7bVy4GA~n*DA~4boA|;Jd0z;=D-Q6*C zcjrC_>wez*e(rbg-~PUTjG1fZI?r{kIF7ZBYdoYSMRBl5u^8C1h@+1^h*4A^glj#}saB^g_=9BKpGQg_)Mc3*8&qwl`i{SireiSl~ulCKi^) zM$9^<##iogK_QTHod)vHEPlNXIRn1NCUQwp)pT5h&?*1B^M^`o+cyKtdJ<``LcY7E zD62_7x29C=ex*(MoY3Cgx7MJe`*Jhaf!Zp zsE_v`z^Qzc-|%{u(xL}F?QMfkXD_*gs*d~T9%uDWU0IdQuGyh}DWx8!B2q}wlZiK^ zkYb(hJwP|Bu+zzQ7KXLm@WQxoE{|;XWo716f&t#tfX}W1sq9%&#SGlLYj)i1pOSVn z8HmnToTQlwr6t(dI^umfr#U3pycnWi{JrJ4?jC2lZx>!f&K&+n+oGj`?PM9!8`zl~ z@n4VCEzAqA`RMOcl%u{y3ftV-yQy0?e~c$AMAdU!?*wuMJ1#yzD&ww6llElzm>gz* zF)p+1dpE2`rmu;ejg9Sj(^H0~me>PW131c^W;1DUq24uBtU4e0Zy5+S=Uz%wUZA=; zOoD)kGwY({9gU;%ExT$}USbUkwVT)H4u%Vcu-~lHIO#%HSV;p6=LMJ(#cakrrNug~ zzmQ^ml^6GRH)4%ix$UldTqlkJG-yRxKm;a;k}g+(K~N_`r~f+Sxmvw zwAeG!5htIn1X5qGCO@Xlm}^k_uvVJn8O|RbUt@9J`hqicg=3$feZlp~BYIs4Nry4< z{2QrzX|a0yi_d0w1_?9qp2jP`w>vma;=*YEet5w^wS$9!mSVzSqwMR0^t!@+X)Ukk z;TQF_S4b;e#-&?P%85;n#F~7g9Q#Q1@#-TCWW<-hDFw4sSrn{NpVg&u6;G7fXK|T5 zqg%2!!#<}UYky_%^~L4q7F!%!1A7>hJHyU0891L!<qZ*WC(*09E$3+zM>&j(O)bkGJP=uZ@Pw?~ z*Af+pSGQ;-i9BeU9g(cPP2}6q)*n;wA&t_()$LU#Ok{a~ zc8!)vytOu9okd*Y^8vkhk7ptvg#zw#IsT`ZM`^dK(8Hh976~5@NXt#!Azo|57gVq$B?He@(2k?InbWqI6afNKFukw8aN?Lm78`Yb;b-L7b_Ag$2jy z>x39y4>nB|V^B8`@L6^@_@y5gUqYzh<2okc7AvI;thCxF*lUa5*a|Z)>nCHCWZe7j9H&_RdZrmI}K6gbI2VVl&vC zYGqgY^l7s~COuZ(pcgS;i7Es_3-xoY8j8m>3XLW!oynUjp6FkXbc>z0pKBPlZp&)j z6`EIQVA{ZYur@2~`g4I}#u``%nE55hbNXl;gza_CoH7c9uZIz=w&BV~uUj%3yLLK& z$;>{ZS6|{oi7OTPRlVG#wZ6Ww37MQQxjbyouvqimhYEniX_6RD&5~jB0^fx-# z7wJA1+T-c^eK0draun_3Fv`~~F)EK1d7OD;y}mNmxSw*nJaFAaucMsHONka2f@+IH z+j-155-!&6TS_XI(%4{Tq?a?b)GvoW-xAaM!q9XG{)k^OjD>hnbSW|(h0K!=Cu7owS(nrsUzyprY1gB$&zzHRNrqEl_yyPBC7T*p$Z)~#<3a|QZ> zSh&iXz|~bw7Kc)|mtM`O)ZVIDv`iate&z(Zgdk#a6@oxaJFyU=engQAJZ1@F@~997 zUnX|;rS?5aI$c9Qat7ELv8=mNx1i$1+)hw^>@$$%%Xscpi*)6Ea+w`Ik<|=F44kmg zCy~^62(EHQEtUhWlY{gzUxZ(0m<3DizzH+$vxA*(!^s$~rf@Q~uU2y(BW(s#KyLEFwWQCB7Yc={d}p<0HZj>O=zwx zzq|R#9{MzpzfOZfK*N7Ffx$N^0XD8_m3IsJrIjK3^awImxr88Zc&c+yckKrpwksuH z3_=4e?O{#I_zj9LPIxoNd|x|vgl!|q)^oW!iHXvD1cGUzxFXAu&yCww`U&)}?P|Fn zLhx~!R4ySPkddToxDylDBQU$|v|H^UDsr&v+qTzpl`{HvmKp#VH>>C(b9Y!_; zu=igi?AON?m1;IWJX_!B({H~Jd*I{$7sEdD%;|?ZYY3W6d*8y(mUAmCwDs^PT(o1i z%_i{Z&A7&>Rn7cN+&W-Iu}Fn(P(j1#1FtiG7{%Ebf%A~Nfru)qVc(XMd(V$+FXfov zA$)V~abX&pIoZZqsO=35V)Eu=+YBA!(JR|tbViRgREln4O>4dtDN->o>7vN%aN5I~ zdT>ymgQWb6{e2Q)!qhZ8g2TY`iJ2z{PBdb|4Z_MxZ=5GCff zbd={C8~tp#%v}d`)A@#B zW|-iUIF+$Pu0k>3J#;a76DI`gasjz}N*m@qWMMnFNwVr*_f>w205{sDXY1PTLvWGi zj3TV0-5frCa5A&-l5jruGkU{?B)A6iBC0N&Mlo07ohrY{wH1|}6#yk_Y{6v+6A_%& zRgU8*Iet*uEhL962-^(7GNXYWC-3)JN2@@hJJR<*+-UMBy_|07bb1rkua^iXC1GmM z7CrW=zwF)QHggp^)0hqy>x2oE!&eFI_*rSTIglB9sEYv4f0up_7o#(j%sOzqLe5ng z`^F7!b5Tpu2=e=aH}DjUQ~RvqRz~(gUaD_Y;ep!t{tQYQ`_#B7a#yabGi^oF2+H#i z2>!WWcB$gIWUhVglVvj=dNVgJ{5GOB{`B_?4;DUBI^jbg4=(?%!Yg1OIB$CH3mo16 z1|`AA&AoA2S4SRxARwz4?lEq=ku8MaOIKaVkfRYS&3o^(OQp3wDK|eANW^4SdU71S zzjdoS6$aZGPh-RT@g)w_P>MqX#lB+7&tZ+iTl;sCM)9}IFe_s}O!dPHOhdt(X-<9vBj0zi&|!OjlC!3i4x}CB(QvRq;!Og$K1Kw>1lvo2?DB=HFJ$FYOtH zhab>9QD6y^xIE}YWfo>vcpfF)v~C1T@K{-!h{n{*(T`C$FMwgk$bJ0%d&IgMgW~PZ zO1WfS-sGLDz@TH=3s#E-oIHck(I#XZi_acZm|%GlhT}rT*(Biaz>I`f$ee(-&b62MkBwo4Z}zJ5q`_KjM|+X=QWlFujVZRZ15xv%8OQ(zV;> z{ltH}YV6dJ#!BI0Tt3?lN0SD7mGL>m9hIpFzt8zILa;{$p#iAX5T#&=A?nd{*a-P3 zo)sO5`EIWQt7g_t1y`XW;+fc}jPcQGx?}ao478Uq=PlCBg0=C!X8selxkyL?jc8WZ`d#+$vP zCNk@5uB2%rF}He4A@&b{8^J}$ryi2#P;ZDU)t5wmoVf=ja(+-axjiLWNtIr7qyZ{& zdK{vvK1hn3Uk&b3Z2;Tc@q6}lOwG*fPP3tb#2%NYlBSPZ*3Iy%>aSjHrzz_jRMI=% z^a?#$s}(lDGoL=RTpns3Qaf937Hn#*~$C{yDn^(jl@ zA{_#Ro0`FJ(o>xj^MoApSCJGwuSk-gHde-V)&!BUPoKZPO%wAyhea7?)J5yLZMFJb zrPQuP;PU4JV*LzJZ_ca6P5NSL==GVDHOhKI7#le9auE!Tl^!ze?*# zIThXOwMC98B=!|n7RP=6p!`oK*85>gEdv9bK6=mZgC8p#(H5h84@HoC}XptRA* z>tL~6+0?~wy`FgIGFePS6q8%k-U~{8ULEGCrZfg6yeHAD`MNLipa35#Y{JEIMpjql ztp*KXYGu6rdO4XIj#}T}Pu!zURJI9Y#+cdf$tZmwH=~dmc(5Y?C9@Cl)kjsD8-*M~ zvF&qcjfaw3sXl67xWJt>jkN0if{m;yKc=_Qr{jC1Hk9i_#_|{i@6X=&_U$op1BZ;c zo#O0SD+wMcsr+`r&>nZU#I`RP>e$oGD%L0{JyQba+IJ5c{Z{^nhzL=F*K;y#?B;T^ z*)IhbH-ia5!h$DS&J|0Iwi$F{3Hp*IBXUV=3_8t7rDT&OZPbRk$vBNH7l>RLh;Tn= z8E6gWWqB^;E>|l9IM!8a>m1|MOX^h=WPpc>Id>0Vn60uBYXRZf(SwoD@ez9#UygW>G^F{*g`N4S-7&?+P~XnYj()skv=w=Ht;XG;JXY`SjCaHjm4qLl z5cb#XL!X0!qNHLyR&i^yl!7hc6CWXrkCDcdBt6M8ac#P3&nqwBYFNx7c^4JcV^1G0 zkiX-|HA+6*w_etykxb|`$v2tuscu!Kk?ZjCD(?C8E#2$WI6CQ6*r#hcQ5 zkpQMKecuGlk1Eph-n+&GBxFEub8{~pv4=;~_0VX!L6c&eOOll>gNUe=1P}adL`f8z~N9 z(dw3?_14t3FUmPs{N_`eAjDrFtmkBjn%y7U6+JBy@jaA@L}$JXq)BV^#n}j$R%QB1 zCNvpwbdOXd)qu;Vwkgu~4rlN2(N2D~d=WNvR$pH#(i1}hBl*-^9e9oPLD#Qb`5bg7 zYIBDL7C&pj=+we(yKhm8AYoCfi=*+mFn(I0AuEU~|Bp_{6UTVxp-n5A2K(Us1bD&r z76+1k|Kx(W^FxADe)CXMRlQ^}mHNg75W!PR za1xT)4_1EAx!sCu<{;5%Yu_23?RcRXZFF`%`3kQ6CVUYUrfK4M))P3?lE2>kLa*jf z)&!d)om*9r<*o7Y42{CT(w8zf51K+c>oXjDGc1W)VzaB_MJeyk!`N-$-$pN2MD|?< z`7Y0x{G|G;o=<#K7mP2h`>x8<)NY&0#aHR7*{e&(H%1i)5*}}AI&(2|55!hc?5U)K zVq4ufqDbFP>J=kGU-VYmzbvWSiKPM)Wz6v)J-3NKv^M2Q4)<}OshcUHio+OcY6#B7 z#lX7CU4|oqk9*+t6y8T@a+02DAKW8d+jL0|Q5DK$-F{w)FD#@I6-<}h_pI!oh4p$! zrB)0-;w7pr*4O;bB9p^9-b1dac*9{g^Asi(7_R9|i;I+c1HfY!GLX!U&Qg(L$t{OF zl`TohGiEe!hJ_+A3#JAu|qcK^w7;2WShvrf)Epyl43g( z#h!05C$)-9pSPju+9-H^RqJH`l76p|w7^XeE2*=nuhuK?%%=&}-ufrK@$d*AEHjctqbjeMwtU| z$A0!txQ4Qu`Qb1wI4r&+QFjn;H%Se(ng&F?cM5P1KD zAsE;#FZ8Cf2iKf6xrFFH267k@5nKrnXE*(_X)&1aIG?{**u0_Ii(qG^T(YyFm47fM zB7)P=?wgu2e=NHG-=s`WEV5+}Q?I%u0KJog13(C^Iz~X!1dSAt1BKDjfENeZ{gNnf zhkTx6|KWnyzO5mjXJ*;;iFh-5)M1GI0Ye#!+aMlbG|6L;f#W~Y6mwpN=5g|LOJx0X zM~S76{{9rCcG2nMn_m^HV8$wv6NyQBIf&3NqJAy{A0Ao+7{XBf5fIgzi*L55o7 zaI0WI_+}4+>^`HpPzeqCP*SppBx`pp3$n^hdYJ01TkEWERsw__J zj5ariI@9xV@;ijF9x+d!zpBG5G{28hKV^gU$lBzE(BqH@~vG`QP7pP9bmaW)aVX z*oirYaqT(ZVogY*JWAC_!~g)FjS7csq zlYFdso7}eH!IhOC`-?-m3%XXhRY!jcp7NTlyMl|sm|sa{b8h;(hTCt7O+4uY+qArd zh*R)4MBQa$3`sI6(>AV<-V*GLn^8P+eV4qexKLD=&pjmkgOk_Zlm=I>inM+UPAj3G zFWl+E=JOJXrT9n+*ln;EsxAK#7cB&n8;rv$T!*j_7w&ck&;I_=AgCvGMyNJ<(YVW0%b->A z`oAqR>CXo){owt<{y9&mE@Iqxh&TtDA^1N@Kb3xXf!f9QIKOvOaHBaY)7#rSRVnj$ zZzd)@JbZJdIf64p6_(o7)phP7E^XK=mYwHdgYItXDkU~6El~!WE578t`KIMbBNx!S zsW56H!fmdKL#>W|d&i`jrFmg9(wj4XAiPPzHxeJ_r@!6jzq9r<*P(*0Cz zscaM6%h2J^a--K6d>d6ulrmo<{RKZ39hB-$)(PL6q?Q<;8{ON8AIv{7JKUAt(nH?| zlH>wU5k|sEf;1Zv^Of}U^wL#wYy2psJW?I@)@NFx;%&?)>#j^$wTLsEf5j9Q#!#E2 zur=R(5Z9-Z7Llr8??SPV(|SSTsMKuAW4zj{v+`*Kb4qcH&hpTuIE`gb4+5oNCRL}c z`OeLPZ{IHJwG5f{s=p8t!b{CRJ;l3t;1n;o2|2xz4OS&%_~LZ5uU>4Wz$m}yuZ`02 z;}f~^dZ8yhgh8pyZi~K}%=7)aG4kh1I(5twnbiuUvvupQS8M1FH&s#{F>G1yELV9= zh4Df~gkOAizDkH~*t?B)X;-W?oFPeSRQ|K<)Yq>Pn+1ed4C={DOFC0z$hJaH4Ke)| zo>IMlTHT!M1ZTyfn#VYmb&Wx>EpT^tH#x@1t|Q^G(K}%;qSDO{2|7ADNzSCWzMe8i zd-2yV8iH--KPS_6wO6|1kV!^yhZx@luk~s=N11G{jK<`BewKC9czYqU{MC|wkMDJM zcN4WjGipXgMovy^aE|@`{YY>`0l=*BQHKkfCj&?Wg2CgaaCXzOJ-tG+sc75jaI2+( z$5hgWg`KjL5hdUPcB8(pz*q`kLvF+xpW*{Eqj;<{Vq#)8!-YKE2a z6pF1J0m@UejngRAvmRF1Mj_j^c9+ycO*6jvuFk^^BeU!Z294gCOsuimQ<&_ z9?oUZ(XhH|p~9vk^33BZb#De=>c}%}=H4^fLZ{B}-(MN4z$_+I=oN=cozmCWr%`IB zkggKKM9J@9Qy)l8cQ%UGHgLToO*se2(NbS;yH-uSQhwru6@I+KXL(&Lao%!vgo0Gs(SIZs%dGiVQ&UDF*9tK%2$O1_nHN-<5@M~n(zEKZIEa^PYH>5A#j-Jd%xjt^fB zjJ>`1rGrC~m|4>)O|N-I(=oSus4!rmCra+5ufR*2io9wSh252k6nl3T|LTua34->i zTL?3JT6{mpLA+uM;Q%ccye${T8O_RQNQ4Bhsh8GPC@6 zKkw+3YgNhMXwjSnVldA*o@{Mx&4?`7671~lxr?%|5(fzx4GuJ&_T16~NBF3-5)oBP}ph<6NYAQKcE}j@4pG18%9i>#wU$z@{#1np` zi!|(wmx<@lsW}fwU?U69oJebQyk6@Fza4VIlc)TcbiqQ)qJ2bhUcS)mT9GwntVRZg zoIXC;kL`i(qzxzZ0tVOBMgl3`wV}~#q@)ds*fTU>;8b`O zH)r0M=w?^|BkqJMI;g7OXNEE+TM2wAKR1hDO01mxZXg;G+SUS7f$8iYXoeI;; z9t@(93Pn^|F7zm*D*9}vT|#swo5qPo-qqSG-QmCMXTv>0i z?|CwIJRdo3d|Y-zFdZ=oOr=yDJE`Rc$L|`oW&+clS=MWfPJb315pggbVOj>__!_s*=0^ z4v$|Age!=u>hP+E?@SI7f;!#W_fTIIQYAgz+-fq^#2?E4)52p&96)~IFzWLU4=*$w zEo0YjXo9%O7=$hkfHWpS93Y+0Ar5N__>oLd48ZBqaeq8}01uG?)
      !{^DK_8X*>xJz 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 literal 31551 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 F{|Dy6#Kr&s diff --git a/docs/images/EditTaskSequenceDiagram.png b/docs/images/EditTaskSequenceDiagram.png index ef47ac281a06ced90c9dbea6a87fef9b888da478..90ba359542d761c817eb3afe30e5a0b82b2c955f 100644 GIT binary patch literal 54197 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 z z7P*kSI^b^=8eYz8mw|7TnIf-@W*CHLJW#@&Ss*md=z$c~+gaX1YNX#~#op9!vEdO&Hm`UjJQt+t_StoYSI98BoqC849W+~xh> z${k)EvNuTj%jpQ9UN7E|7xgS8BxSQhnPqtJw}uZ;5Mj=sA_CZifD8Ct1Mh z&E)m!@w5l_7FK!>&fk^#-(tb}-}T6OwQW6W&O|YO2c%OG7(tT<(o#~yP)U*g<$6ky zdBfh7LGcR z*P^#1_6|k@%r;VTuU-NZ6ypIilIvnJ91(W|ii*AEs!v$lnr7;cEzuz5E)d<3DASrq z1UpG=a!VIVgxYzNl)$Zox>2Z#(g*q3)-ssILVU~&qZk!g5(OjyX$zT+vl&?-&YOdPN$Bp~!+BwA16A$*PgP-^N_Z|DLE%=J*-8 zd5q=@BNm~~0aS%c9;-2S2wst?XZ6hN-d@Q0U5h9f=Oiv2rn<5?8%x_Vr8VOyMA8yC z?;qFRL`xV%stLGCXL$qE^9+a`NcQ9^TtxVW0&xy&-n$rNKzhp*9i7!2_BNU{H4DaG*b2iQ zi00iQ2H5WPyYBwtSr8-?deASfr$^{&m=|%i1pw0E0X>n0HTZHyX`vl&8n|H#W1Zf< z0m?1hn=;8*17VCj_#ppNoI35TbYBtyE9siQpz(a2A@7mFk~n*AUOjiVJ&xfvYuGg>JB`cKO0 z5U~0Gb%Dp%m*U9?YmE9WIr)7L*zla~dFs1p71+1e`5MB83~R&e6A zJ?$5$1dtmf0H-s>{*#fw+1wvX-n^U8NC54cJaJZW8;*f++ZT?+<#c9kN6Y{H4U@Gf z5I85Ns?2+$DZBxfuPVtClDGcz?^zuMc-xDT0q$CZ#iRT?Zn#W#KDEwRiR-_^fcr7# z|9?KSX3_sJCH{HDD7LpY|89}e%y2%)|KSGRI^bL3!*t8cOUsOZkA(cJNVPJZK|Z)8 ziRRdc0Tu!xTE@d|DJLf7mUM>;EDr*(_*s zuY3R3foU02aFNpw(*A)r_*wsXfJ*~wT?8p~YM;Ce@!$VDuH^Oq>#@rl8D;BrgF?*__kIpoQHfJswzz18~=tZ z=&|pvkRRTAR!V$|-sj(7z%G6|B-V%j5?X8gI{*8t(BSZ1=ac2u z@qB4CbN3u{qokA+kBQ>v?spX|AHTb6AZEMN+0S5ltpwELC_I~}`@n;#!AVS2Sz7z%0Zj^QR0qu)Aji6bK;t-h`43n+Pd@_kN98on(kpxbE8<6J-G zId7bIJlH+DMf!fluQ>>lJ4_1Y1*>$&}mt^GsMeh@4UDU_#TYr9h zl#DqM^A)iHO<=d~e=k$3v5@z_7?-tD3G;}f%g-}h00 zd9q)kMxYYB%{A|fySbQDRTkuFAPIlXzjI{Z1~)|K4jbKw7jxSF#A%GLnw0~`dhd`X zas}MEbI0u8pS1TqJ>JKP8`U}Ja<{}8(e?s84|TXJEl09|I`vKzP7Q0X4;Si3lYf0E z)#!Dr_J*19*iH2p^tgK+&4+0l`5?V{^M(O)`#K1jl5$rJXbT|g}r6_xY4C6M_&GY|0$ zd}gel&Sp0UlDO=qm^6*cPvERm^NrrvqE_M)xc?<=!MQ!-u4+H#wo<>of*J9=+t>GO zfKi#EhSeb{C-82---=W+99_I8ia=SUsx6%{HS?&~Q@7cZt;u~a7#<*BuAXi-;;U`O z0d7C&)Bno^Km2c3xyJLev9S^Ss$%XvU17LD+{NQ=dpa>&WV%#isd#=JCv@Bqgoq64 zA<#}g$H&BnD~S4YE&Cp@xjpR_=kU3iGHKbEOx_qbfM||e&PQm?ionlLy`N4N8@b`y z<(4slq$d~nW8OP>fuub#IeQ6OKlCz8ZM~K}h@6^__-J{UOm;I&()%d=&~e~)AqFdL z0m_Z(9NFKPa&^p`@bzLs(8$ypICF$Y-$5V{vd&ufJ&i^98{F&G<3FBYt;aL%6X#O| ziinDW4)d=#gsRs&EuH>9U7dS4TX`DCTVtZGYa^*5 zrge+)luV`uO`?Rh!>SNz#iFwep`)UcD1vl^h-w+t?KZN6-Vo`yMeUiH+CTREd!F+= z?>XoF{oc#(c|YH|+8dSFG#PH{K{A5!pW_*v%x-=tQx!{{KghB~%lcNHUuuCZrT=p9 zHk9P2+^W9v5)q&1<4Eh;{OvpqfMz;G*0UT_fgdo8VB8-xHaAav(y+=WQkxd+xmmpi zCLr8+jour^^xp%@Y_F$}HufG7ZhhQ1y*6nVdPOrg8gjGEik%AjIoxNhudj!8?AS3S z-JH-}<`|i_@vcJ&xH57RphXF+{+M_NqH7D~$#o-?Y~}4_oY3TSB?|G`p<*1>uF^C4 zE1{d_JGr0^O%gKz7%jn}2>12~R6-)|%wkFQ`ah&50&x^U<0LZ^z0%;qIBZSx7b zAl=!GL8lhf1%~8DwPj_?x&=BzAZ$O5H z-i$aH+h*MU#{HB|M5^Wex)JLdKkE+L)UpKFIg%a+tq)h{@x64 zr{+a^i3!PD1ni}=@P5}frSbKTr)kdISUzzl;8XFsaf(kYP~dx}okWU~ZURaJOVEYg zbg_1Ax!C_?D+$&I9}I$)@bU@ZFl~b({D!W`(bNH(3cHV@bVis0ytRLWZE7c&Q|%Lk zOTr!3CUAQrpi31q-U|2~z|_&c-=EOM4q&|ACINIayPOx~$77Eh3W#1=EP??8(6@F* zJ$8J&%3fRr=JQ!(Tg_`e0pA6&I`Zn_n`WdXlN^D?{i^-Au`nPGP{d{XV!kfo+CkiE zZ`wMWFAwggnfgQ#qH|1xOpThHAc3_|zWSF-4taR{7pj|Xpz03*{pQGQcB2rR;Bv2< z-}IM4!4HuQmFw7Bd?FnFV4#gMXSM8K6A&SJsFWY3@++*-1Cp+u_||C8**iJ~Go;Rn zee{FNRNmLyj(3ss{oNX)lS;0M+-oa;z_}HS2YRY6$bH6zCXjc$bYHUk3#>*SIIwYn zzMH}D4A$`mb4GgiM}E7mLA*4mmoA1DW#BLi*Fp}ju+fFq@53wHdxoMFi-)L2Suc%u z+vk%&svj18=-=rnXME^pXpjTMUKw+1xC&k6&e;lVfp~jrE=J6yRhWxlrbnBk-@NaX z80-KcjX8E>eCz@GvN0?3<4Er!M%ns0cdedSJJEk~B?u?yhb}zY>PoT%b?kN%%Aam7 zsrPZXnOu^KAa->-_gg#q``ay@FcOmj;0YnhvcR4>qr0R~a`%}s`8|7ZVBj5bL)ZFi zCuPm6Hfc;9OD=E!s6LlMiEY|Yz z3Qr|(B7bR-nlhf|L;#}l$WMY)L*+DL_O|Uz)@QzknIOBc6xCi-p{wk=B4*!gwRqaW zqTToF9MtgatC@Iar z`o_DLqN%LQg76kFDLRX_Tr&5L#GXg2DVR2_?rGr{R92WCq%>{~ZwK+cXw`a^ZQp3K zmm2%43}ERTp5M+l=BEWfe&kVn=F%DO8q&#yUCfwK%ijIL@RYuqQ}C|f{A#hN5}lgT z+>m=Zkdu*2UZpsgF>gj-@G7zf39a5`*kCd3W&C8c)ntDElS?9yMo{xNtchp*4f zaZG@&01-ZAn)o-wd#24*D4_X_2<*bB=mGQ(VoDp!G_)E5&k4(#GF3(cJltP)@FRy$k@>VjAMdxO|ZX2dj=Qb zH`*9HV!j-d3SEYSSG=CGJ|wwxhTiIXr~sz-xtT-j@zIm^bD7gxpzpKZ_F85u@Y!A? z3u=A;Ktw?8Z4*)FPyBfK`4FsOvd_B)e<|rK>f$^dz;B`+KGLdB#l0FM)|r1dk@nHB zm_p4Iyl_)af5=eD4u_z&D90`Ahck3GfE_TUPe*U3vUVv2*8PIaihL?R<#%iGx2e>s zXC0V544r(ZE2Hj-7NK{fwi%f&AoE#z2-72G@I4f*;*`k4%7Qw4;rj1a*c^+@k;0UuFxBQ zWtJ0b{1iGmnx}lB>4lh9R^V!0uwjb=4wcoCx+?U;)D3uE2g^y4UWa}F+t3ju!cR)p z6D?R$xujUIKpB+hF!=tq3V)}NKSkO#Q>_v95*n2m>W zGrr8?rn|fJK4LLRP;S6=5{xn7fn7e4D_MngWV$Fan@naW^5ThvY*)cs7IW=_7At#W zAXZygca%h6m#Fm;8lC{LzAyBTsz#=2a7#inh6+!(Y8NX0r>}J!*E!s989giMYCB+<^T-=xzG-i`ZcwAc=uwW%U@C4_w-1%Q>_-Fh&g-BZQL1b7-cb{ z!KR%#%FG%SxPZt9GQvQjBN}V`K)d>pe@)NBnY~`r=((9zY|y9rl2X6ep$n9{3X^OQ zn`eyNhw5VMn<2NrP2q(>vhzIs1ZlZTLaQFNWNy3RRfeQLav_&(xx%9c)=(N5PC(he z6LK)J=aV22CkdYyV)L`pvAZ2bMZ43CcDY{e?({j7@Ta+DNSGOF5P^G|#`8g2CDi|U zXuz4j*Z;@48(`M|frHQ29eSp=c-oj8 Date: Mon, 11 Apr 2022 21:06:31 +0800 Subject: [PATCH 417/455] Test --- docs/UserGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index af66d73f660..939da99a27f 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -18,7 +18,7 @@ This application is **optimized for use via a Command Line Interface** (CLI) whi -------------------------------------------------------------------------------------------------------------------- -1. Download the latest '.jar' file from [here](https://github.com/AY2122S2-CS2103T-W14-2/tp/releases). +1 Download the latest '.jar' file from [here](https://github.com/AY2122S2-CS2103T-W14-2/tp/releases). 2. Copy the file to the folder you want to use as the _home folder_ for your copy of Coach2k22. From e5feaad98dd26b8962f8296419d769e9b01a6829 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Mon, 11 Apr 2022 21:09:15 +0800 Subject: [PATCH 418/455] Add page break 1 --- docs/UserGuide.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 939da99a27f..a3b1a9321c6 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -18,7 +18,7 @@ This application is **optimized for use via a Command Line Interface** (CLI) whi -------------------------------------------------------------------------------------------------------------------- -1 Download the latest '.jar' file from [here](https://github.com/AY2122S2-CS2103T-W14-2/tp/releases). +1. Download the latest '.jar' file from [here](https://github.com/AY2122S2-CS2103T-W14-2/tp/releases). 2. Copy the file to the folder you want to use as the _home folder_ for your copy of Coach2k22. @@ -55,6 +55,9 @@ Here is a quick tutorial to get your started! 6. Refer to the [Features](#2-features) section below for more information and details on the command formats Coach2k22 accepts! +

      6J~F=o{Nr7T4p_k+Z@ksR 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 U&>lI*h?L-u?!k1gcVlP&8$9|4f&c&j literal 50461 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 Date: Wed, 23 Mar 2022 15:20:46 +0800 Subject: [PATCH 169/455] Add exit, help command under the general section in UG --- docs/UserGuide.md | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 96032142419..7b5df43c549 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -278,7 +278,15 @@ Examples: * (To be filled up by pragya) -#### 2.3.5 Exiting the program : `exit` +### 2.4 General + +#### 2.4.1 Viewing help: `help` + +Shows a message explaining how to access the help page. + +Format: `help` + +#### 2.4.2 Exiting the program : `exit` Exits the program. @@ -335,6 +343,13 @@ Format: `exit` | **Export** | (to be filled up by @pragya) | | **Exit** | `exit` | +### 4.4 General + +| Action | Format, Examples | +|--------------|-------------------------| +| **Help** | `help` | +| **Exit** | `exit` | + -------------------------------------------------------------------------------------------------------------------- ## **5. Glossary** From d4c6bc9c1d77b53a37ec3154bd8bbe9e0e063167 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 23 Mar 2022 15:35:51 +0800 Subject: [PATCH 170/455] Fix bugs in sequence diagram --- docs/images/FindPersonSequenceDiagram.png | Bin 51456 -> 51460 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/FindPersonSequenceDiagram.png b/docs/images/FindPersonSequenceDiagram.png index 77904c705794fdd5c9321508f1b42f92a97db8b5..956e9e3c59c96159f4428f7dbc7ed73c75e6cabc 100644 GIT binary patch delta 3110 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 delta 3106 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 From a352b0a8956b33ed5a0095e3c8e434112214d051 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 23 Mar 2022 15:41:31 +0800 Subject: [PATCH 171/455] Fix sequence diagram --- docs/images/FindPersonSequenceDiagram.png | Bin 51460 -> 51483 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/FindPersonSequenceDiagram.png b/docs/images/FindPersonSequenceDiagram.png index 956e9e3c59c96159f4428f7dbc7ed73c75e6cabc..9be86050f9cd52c42f3a9a504699e4eeb25c4c57 100644 GIT binary patch delta 19786 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�E*?dzD6gldr> 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 NNe(HSkGOL6{{g8?77PFY delta 19768 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 From 1760b9639c05cb794dcab9a3c3b5f19a49aba41e Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 23 Mar 2022 16:04:35 +0800 Subject: [PATCH 172/455] Update command format to match UG --- src/main/java/seedu/address/logic/commands/AddCommand.java | 2 +- src/main/java/seedu/address/logic/commands/AddTagCommand.java | 2 +- src/main/java/seedu/address/logic/commands/AddTaskCommand.java | 2 +- src/main/java/seedu/address/logic/commands/ClearCommand.java | 2 +- src/main/java/seedu/address/logic/commands/DeleteCommand.java | 2 +- .../java/seedu/address/logic/commands/DeleteTagCommand.java | 2 +- .../java/seedu/address/logic/commands/DeleteTaskCommand.java | 2 +- src/main/java/seedu/address/logic/commands/EditCommand.java | 2 +- src/main/java/seedu/address/logic/commands/FindCommand.java | 2 +- src/main/java/seedu/address/logic/commands/ListCommand.java | 2 +- src/test/java/seedu/address/logic/LogicManagerTest.java | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/main/java/seedu/address/logic/commands/AddCommand.java b/src/main/java/seedu/address/logic/commands/AddCommand.java index 71656d7c5c8..6b23c9eca6a 100644 --- a/src/main/java/seedu/address/logic/commands/AddCommand.java +++ b/src/main/java/seedu/address/logic/commands/AddCommand.java @@ -16,7 +16,7 @@ */ public class AddCommand extends Command { - public static final String COMMAND_WORD = "add"; + public static final String COMMAND_WORD = "add-p"; public static final String MESSAGE_USAGE = COMMAND_WORD + ": Adds a person to the address book. " + "Parameters: " diff --git a/src/main/java/seedu/address/logic/commands/AddTagCommand.java b/src/main/java/seedu/address/logic/commands/AddTagCommand.java index 07e27fa35e9..9a99ba8aba7 100644 --- a/src/main/java/seedu/address/logic/commands/AddTagCommand.java +++ b/src/main/java/seedu/address/logic/commands/AddTagCommand.java @@ -21,7 +21,7 @@ import seedu.address.model.tag.Tag; public class AddTagCommand extends Command { - public static final String COMMAND_WORD = "tag-add"; + public static final String COMMAND_WORD = "tag-add-p"; public static final String MESSAGE_USAGE = COMMAND_WORD + ": Add a tag to a person from our contact list. " + "Parameters: " diff --git a/src/main/java/seedu/address/logic/commands/AddTaskCommand.java b/src/main/java/seedu/address/logic/commands/AddTaskCommand.java index e9939b938cb..f4a4a65a017 100644 --- a/src/main/java/seedu/address/logic/commands/AddTaskCommand.java +++ b/src/main/java/seedu/address/logic/commands/AddTaskCommand.java @@ -22,7 +22,7 @@ */ public class AddTaskCommand extends Command { - public static final String COMMAND_WORD = "add-task"; + public static final String COMMAND_WORD = "add-t"; public static final String MESSAGE_USAGE = COMMAND_WORD + ": Adds a task to the TaskList. " + "Parameters: " diff --git a/src/main/java/seedu/address/logic/commands/ClearCommand.java b/src/main/java/seedu/address/logic/commands/ClearCommand.java index 9c86b1fa6e4..1325dfa5749 100644 --- a/src/main/java/seedu/address/logic/commands/ClearCommand.java +++ b/src/main/java/seedu/address/logic/commands/ClearCommand.java @@ -10,7 +10,7 @@ */ public class ClearCommand extends Command { - public static final String COMMAND_WORD = "clear"; + public static final String COMMAND_WORD = "clear-p"; public static final String MESSAGE_SUCCESS = "Address book has been cleared!"; diff --git a/src/main/java/seedu/address/logic/commands/DeleteCommand.java b/src/main/java/seedu/address/logic/commands/DeleteCommand.java index 82e95aef7b6..6b0fd92cd80 100644 --- a/src/main/java/seedu/address/logic/commands/DeleteCommand.java +++ b/src/main/java/seedu/address/logic/commands/DeleteCommand.java @@ -24,7 +24,7 @@ */ public class DeleteCommand extends Command { - public static final String COMMAND_WORD = "delete"; + public static final String COMMAND_WORD = "del-p"; public static final String MESSAGE_USAGE = COMMAND_WORD + ": Deletes the person identified by the index number used in the displayed person list.\n" diff --git a/src/main/java/seedu/address/logic/commands/DeleteTagCommand.java b/src/main/java/seedu/address/logic/commands/DeleteTagCommand.java index 30e038b4359..662fb83afde 100644 --- a/src/main/java/seedu/address/logic/commands/DeleteTagCommand.java +++ b/src/main/java/seedu/address/logic/commands/DeleteTagCommand.java @@ -21,7 +21,7 @@ import seedu.address.model.tag.Tag; public class DeleteTagCommand extends Command { - public static final String COMMAND_WORD = "tag-del"; + public static final String COMMAND_WORD = "tag-del-p"; public static final String MESSAGE_USAGE = COMMAND_WORD + ": Delete a tag from a person in our contact list. " + "Parameters: " diff --git a/src/main/java/seedu/address/logic/commands/DeleteTaskCommand.java b/src/main/java/seedu/address/logic/commands/DeleteTaskCommand.java index 75420cd5480..74ab57c6173 100644 --- a/src/main/java/seedu/address/logic/commands/DeleteTaskCommand.java +++ b/src/main/java/seedu/address/logic/commands/DeleteTaskCommand.java @@ -15,7 +15,7 @@ */ public class DeleteTaskCommand extends Command { - public static final String COMMAND_WORD = "delete-task"; + public static final String COMMAND_WORD = "del-t"; public static final String MESSAGE_USAGE = COMMAND_WORD + ": Deletes the task identified by the index number used in the TaskList.\n" diff --git a/src/main/java/seedu/address/logic/commands/EditCommand.java b/src/main/java/seedu/address/logic/commands/EditCommand.java index 08872bae778..a1b0d6fc292 100644 --- a/src/main/java/seedu/address/logic/commands/EditCommand.java +++ b/src/main/java/seedu/address/logic/commands/EditCommand.java @@ -35,7 +35,7 @@ */ public class EditCommand extends Command { - public static final String COMMAND_WORD = "edit"; + public static final String COMMAND_WORD = "edit-t"; public static final String MESSAGE_USAGE = COMMAND_WORD + ": Edits the details of the person identified " + "by the index number used in the displayed person list. " diff --git a/src/main/java/seedu/address/logic/commands/FindCommand.java b/src/main/java/seedu/address/logic/commands/FindCommand.java index 4d91825240a..77ebd8ef752 100644 --- a/src/main/java/seedu/address/logic/commands/FindCommand.java +++ b/src/main/java/seedu/address/logic/commands/FindCommand.java @@ -15,7 +15,7 @@ */ public class FindCommand extends Command { - public static final String COMMAND_WORD = "find"; + public static final String COMMAND_WORD = "find-p"; public static final String MESSAGE_USAGE = COMMAND_WORD + ": Finds all persons whose names or tags contain any of " diff --git a/src/main/java/seedu/address/logic/commands/ListCommand.java b/src/main/java/seedu/address/logic/commands/ListCommand.java index 84be6ad2596..d605059a546 100644 --- a/src/main/java/seedu/address/logic/commands/ListCommand.java +++ b/src/main/java/seedu/address/logic/commands/ListCommand.java @@ -10,7 +10,7 @@ */ public class ListCommand extends Command { - public static final String COMMAND_WORD = "list"; + public static final String COMMAND_WORD = "list-p"; public static final String MESSAGE_SUCCESS = "Listed all persons"; diff --git a/src/test/java/seedu/address/logic/LogicManagerTest.java b/src/test/java/seedu/address/logic/LogicManagerTest.java index 07a1d73844e..a3a371de142 100644 --- a/src/test/java/seedu/address/logic/LogicManagerTest.java +++ b/src/test/java/seedu/address/logic/LogicManagerTest.java @@ -63,7 +63,7 @@ public void execute_invalidCommandFormat_throwsParseException() { @Test public void execute_commandExecutionError_throwsCommandException() { - String deleteCommand = "delete 9"; + String deleteCommand = "del-p 9"; assertCommandException(deleteCommand, MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); } From 4c9ee2793544a642ad8194d1c525a91b20aeeb80 Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Wed, 23 Mar 2022 16:22:49 +0800 Subject: [PATCH 173/455] Modify use cases to remove repitition --- docs/DeveloperGuide.md | 134 +++-------------------------------------- 1 file changed, 9 insertions(+), 125 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 6cc8676f619..780bdbd346e 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -59,7 +59,7 @@ The *Sequence Diagram* below shows how the components interact with each other f Each of the four main components (also shown in the diagram above), * defines its *API* in an `interface` with the same name as the Component. -* implements its functionality using a concrete `{Component Name}Manager` class (which follows the corresponding API `interface` mentioned in the previous point. +* implements its functionality using a concrete `{Component Name}Manager` class (which follows the corresponding API `interface` mentioned in the previous point). For example, the `Logic` component defines its API in the `Logic.java` interface and implements its functionality using the `LogicManager.java` class which follows the `Logic` interface. Other components interact with a given component through its interface rather than the concrete class (reason: to prevent outside component's being coupled to the implementation of a component), as illustrated in the (partial) class diagram below. @@ -367,66 +367,14 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli **Use case: Add a weakness to a person** -**MSS** - -1. User requests to list persons -2. Coach2K22 shows a list of persons -3. User requests to add a weakness to a person -4. Coach2K22 shows the new details of the person - - Use case ends. - -**Extensions** - -* 2a. The person list is empty. - - * 2a1. Coach2K22 shows an error message. - - Use case ends. - -* 3a. The given list index cannot be found in Coach2K22. - - * 3a1. Coach2K22 shows an error message. - - Use case resumes at step 2. - -* 3b. The weakness provided is an empty string. - - * 3b1. Coach2K22 shows an error message. - - Use case resumes at step 1. +* This use case describes a similar interaction between the user and Coach2K22 to that of `Add a strength to a person` + * Takes in a weakness instead of a strength **Use case: Add a miscellaneous note to a person** -**MSS** +* This use case describes a similar interaction between the user and Coach2K22 to that of `Add a strength to a person` + * Takes in a miscellaneous note instead of a strength -1. User requests to list persons -2. Coach2K22 shows a list of persons -3. User requests to add a miscellaneous note to a person -4. Coach2K22 shows the new details of the person - - Use case ends. - -**Extensions** - -* 2a. The person list is empty. - - * 2a1. Coach2K22 shows an error message. - - Use case ends. - -* 3a. The given list index cannot be found in Coach2K22. - - * 3a1. Coach2K22 shows an error message. - - Use case resumes at step 2. - -* 3b. The miscellaneous note provided is an empty string. - - * 3b1. Coach2K22 shows an error message. - - Use case resumes at step 2. - **Use case: Delete a strength from a person** **MSS** @@ -466,77 +414,13 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli **Use case: Delete a weakness from a person** -**MSS** - -1. User requests to list persons -2. Coach2K22 shows a list of persons -3. User requests to delete a weakness for a person -4. Coach2K22 shows the new details of the person - - Use case ends. - -**Extensions** - -* 2a. The person list is empty. - - * 2a1. Coach2K22 shows an error message. - - Use case ends. - -* 3a. The given list index is invalid. - - * 3a1. Coach2K22 shows an error message. - - Use case resumes at step 2. - -* 3b. Weaknesses have not been assigned to the person. - - * 3b1. Coach2K22 shows an error message. - - Use case resumes at step 2. - -* 3c. The given weakness index is invalid. - - * 3c1. Coach2K22 shows an error message. - - Use case resumes at step 2. +* This use case describes a similar interaction between the user and Coach2K22 to that of `Delete a strength from a person` + * Takes in a weakness index instead of a strength index **Use case: Delete a miscellaneous note from a person** -**MSS** - -1. User requests to list persons -2. Coach2K22 shows a list of persons -3. User requests to delete a miscellaneous note for a person -4. Coach2K22 shows the new details of the person - - Use case ends. - -**Extensions** - -* 2a. The person list is empty. - - * 2a1. Coach2K22 shows an error message. - - Use case ends. - -* 3a. The given list index is invalid. - - * 3a1. Coach2K22 shows an error message. - - Use case resumes at step 2. - -* 3b. Miscellaneous notes have not been assigned to the person. - - * 3b1. Coach2K22 shows an error message. - - Use case resumes at step 2. - -* 3c. The given note index is invalid. - - * 3c1. Coach2K22 shows an error message. - - Use case resumes at step 2. +* This use case describes a similar interaction between the user and Coach2K22 to that of `Delete a strength from a person` + * Takes in a misc. index instead of a strength index **Use case: Find persons by name or tag** From 0aaa00c99bae07cf34c12f23d285817cd86c6207 Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Wed, 23 Mar 2022 16:23:02 +0800 Subject: [PATCH 174/455] Revert "Modify use cases to remove repitition" This reverts commit 4c9ee2793544a642ad8194d1c525a91b20aeeb80. --- docs/DeveloperGuide.md | 134 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 125 insertions(+), 9 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 780bdbd346e..6cc8676f619 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -59,7 +59,7 @@ The *Sequence Diagram* below shows how the components interact with each other f Each of the four main components (also shown in the diagram above), * defines its *API* in an `interface` with the same name as the Component. -* implements its functionality using a concrete `{Component Name}Manager` class (which follows the corresponding API `interface` mentioned in the previous point). +* implements its functionality using a concrete `{Component Name}Manager` class (which follows the corresponding API `interface` mentioned in the previous point. For example, the `Logic` component defines its API in the `Logic.java` interface and implements its functionality using the `LogicManager.java` class which follows the `Logic` interface. Other components interact with a given component through its interface rather than the concrete class (reason: to prevent outside component's being coupled to the implementation of a component), as illustrated in the (partial) class diagram below. @@ -367,14 +367,66 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli **Use case: Add a weakness to a person** -* This use case describes a similar interaction between the user and Coach2K22 to that of `Add a strength to a person` - * Takes in a weakness instead of a strength +**MSS** + +1. User requests to list persons +2. Coach2K22 shows a list of persons +3. User requests to add a weakness to a person +4. Coach2K22 shows the new details of the person + + Use case ends. + +**Extensions** + +* 2a. The person list is empty. + + * 2a1. Coach2K22 shows an error message. + + Use case ends. + +* 3a. The given list index cannot be found in Coach2K22. + + * 3a1. Coach2K22 shows an error message. + + Use case resumes at step 2. + +* 3b. The weakness provided is an empty string. + + * 3b1. Coach2K22 shows an error message. + + Use case resumes at step 1. **Use case: Add a miscellaneous note to a person** -* This use case describes a similar interaction between the user and Coach2K22 to that of `Add a strength to a person` - * Takes in a miscellaneous note instead of a strength +**MSS** +1. User requests to list persons +2. Coach2K22 shows a list of persons +3. User requests to add a miscellaneous note to a person +4. Coach2K22 shows the new details of the person + + Use case ends. + +**Extensions** + +* 2a. The person list is empty. + + * 2a1. Coach2K22 shows an error message. + + Use case ends. + +* 3a. The given list index cannot be found in Coach2K22. + + * 3a1. Coach2K22 shows an error message. + + Use case resumes at step 2. + +* 3b. The miscellaneous note provided is an empty string. + + * 3b1. Coach2K22 shows an error message. + + Use case resumes at step 2. + **Use case: Delete a strength from a person** **MSS** @@ -414,13 +466,77 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli **Use case: Delete a weakness from a person** -* This use case describes a similar interaction between the user and Coach2K22 to that of `Delete a strength from a person` - * Takes in a weakness index instead of a strength index +**MSS** + +1. User requests to list persons +2. Coach2K22 shows a list of persons +3. User requests to delete a weakness for a person +4. Coach2K22 shows the new details of the person + + Use case ends. + +**Extensions** + +* 2a. The person list is empty. + + * 2a1. Coach2K22 shows an error message. + + Use case ends. + +* 3a. The given list index is invalid. + + * 3a1. Coach2K22 shows an error message. + + Use case resumes at step 2. + +* 3b. Weaknesses have not been assigned to the person. + + * 3b1. Coach2K22 shows an error message. + + Use case resumes at step 2. + +* 3c. The given weakness index is invalid. + + * 3c1. Coach2K22 shows an error message. + + Use case resumes at step 2. **Use case: Delete a miscellaneous note from a person** -* This use case describes a similar interaction between the user and Coach2K22 to that of `Delete a strength from a person` - * Takes in a misc. index instead of a strength index +**MSS** + +1. User requests to list persons +2. Coach2K22 shows a list of persons +3. User requests to delete a miscellaneous note for a person +4. Coach2K22 shows the new details of the person + + Use case ends. + +**Extensions** + +* 2a. The person list is empty. + + * 2a1. Coach2K22 shows an error message. + + Use case ends. + +* 3a. The given list index is invalid. + + * 3a1. Coach2K22 shows an error message. + + Use case resumes at step 2. + +* 3b. Miscellaneous notes have not been assigned to the person. + + * 3b1. Coach2K22 shows an error message. + + Use case resumes at step 2. + +* 3c. The given note index is invalid. + + * 3c1. Coach2K22 shows an error message. + + Use case resumes at step 2. **Use case: Find persons by name or tag** From d6fba7dc40f74b54a87d19ae16b5b13c2a394feb Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Wed, 23 Mar 2022 16:24:14 +0800 Subject: [PATCH 175/455] Modify use cases to remove repetition --- docs/DeveloperGuide.md | 134 +++-------------------------------------- 1 file changed, 9 insertions(+), 125 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 6cc8676f619..780bdbd346e 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -59,7 +59,7 @@ The *Sequence Diagram* below shows how the components interact with each other f Each of the four main components (also shown in the diagram above), * defines its *API* in an `interface` with the same name as the Component. -* implements its functionality using a concrete `{Component Name}Manager` class (which follows the corresponding API `interface` mentioned in the previous point. +* implements its functionality using a concrete `{Component Name}Manager` class (which follows the corresponding API `interface` mentioned in the previous point). For example, the `Logic` component defines its API in the `Logic.java` interface and implements its functionality using the `LogicManager.java` class which follows the `Logic` interface. Other components interact with a given component through its interface rather than the concrete class (reason: to prevent outside component's being coupled to the implementation of a component), as illustrated in the (partial) class diagram below. @@ -367,66 +367,14 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli **Use case: Add a weakness to a person** -**MSS** - -1. User requests to list persons -2. Coach2K22 shows a list of persons -3. User requests to add a weakness to a person -4. Coach2K22 shows the new details of the person - - Use case ends. - -**Extensions** - -* 2a. The person list is empty. - - * 2a1. Coach2K22 shows an error message. - - Use case ends. - -* 3a. The given list index cannot be found in Coach2K22. - - * 3a1. Coach2K22 shows an error message. - - Use case resumes at step 2. - -* 3b. The weakness provided is an empty string. - - * 3b1. Coach2K22 shows an error message. - - Use case resumes at step 1. +* This use case describes a similar interaction between the user and Coach2K22 to that of `Add a strength to a person` + * Takes in a weakness instead of a strength **Use case: Add a miscellaneous note to a person** -**MSS** +* This use case describes a similar interaction between the user and Coach2K22 to that of `Add a strength to a person` + * Takes in a miscellaneous note instead of a strength -1. User requests to list persons -2. Coach2K22 shows a list of persons -3. User requests to add a miscellaneous note to a person -4. Coach2K22 shows the new details of the person - - Use case ends. - -**Extensions** - -* 2a. The person list is empty. - - * 2a1. Coach2K22 shows an error message. - - Use case ends. - -* 3a. The given list index cannot be found in Coach2K22. - - * 3a1. Coach2K22 shows an error message. - - Use case resumes at step 2. - -* 3b. The miscellaneous note provided is an empty string. - - * 3b1. Coach2K22 shows an error message. - - Use case resumes at step 2. - **Use case: Delete a strength from a person** **MSS** @@ -466,77 +414,13 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli **Use case: Delete a weakness from a person** -**MSS** - -1. User requests to list persons -2. Coach2K22 shows a list of persons -3. User requests to delete a weakness for a person -4. Coach2K22 shows the new details of the person - - Use case ends. - -**Extensions** - -* 2a. The person list is empty. - - * 2a1. Coach2K22 shows an error message. - - Use case ends. - -* 3a. The given list index is invalid. - - * 3a1. Coach2K22 shows an error message. - - Use case resumes at step 2. - -* 3b. Weaknesses have not been assigned to the person. - - * 3b1. Coach2K22 shows an error message. - - Use case resumes at step 2. - -* 3c. The given weakness index is invalid. - - * 3c1. Coach2K22 shows an error message. - - Use case resumes at step 2. +* This use case describes a similar interaction between the user and Coach2K22 to that of `Delete a strength from a person` + * Takes in a weakness index instead of a strength index **Use case: Delete a miscellaneous note from a person** -**MSS** - -1. User requests to list persons -2. Coach2K22 shows a list of persons -3. User requests to delete a miscellaneous note for a person -4. Coach2K22 shows the new details of the person - - Use case ends. - -**Extensions** - -* 2a. The person list is empty. - - * 2a1. Coach2K22 shows an error message. - - Use case ends. - -* 3a. The given list index is invalid. - - * 3a1. Coach2K22 shows an error message. - - Use case resumes at step 2. - -* 3b. Miscellaneous notes have not been assigned to the person. - - * 3b1. Coach2K22 shows an error message. - - Use case resumes at step 2. - -* 3c. The given note index is invalid. - - * 3c1. Coach2K22 shows an error message. - - Use case resumes at step 2. +* This use case describes a similar interaction between the user and Coach2K22 to that of `Delete a strength from a person` + * Takes in a misc. index instead of a strength index **Use case: Find persons by name or tag** From a52bfe4cb52046f8e63be7054be2d55cbf98d8df Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 23 Mar 2022 16:57:55 +0800 Subject: [PATCH 176/455] Edit find sequence diagram --- docs/images/FindPersonSequenceDiagram.png | Bin 51483 -> 51528 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/FindPersonSequenceDiagram.png b/docs/images/FindPersonSequenceDiagram.png index 9be86050f9cd52c42f3a9a504699e4eeb25c4c57..fb1109a354b173033e42170703fe4a98ec4447d4 100644 GIT binary patch literal 51528 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 S*y+-R;A3NLZ&hXKlkgXm+DSqH literal 51483 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%0A228Z!>aR*LI2J}l@5V^?1<2%zN&jIg7y}g+m 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 Date: Wed, 23 Mar 2022 17:05:45 +0800 Subject: [PATCH 177/455] Fix minor issue in UG --- docs/UserGuide.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index d582b507e04..562941e2628 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -163,7 +163,7 @@ Examples: -### 2.1.9 Adding a strength : `strength-add` +#### 2.1.9 Adding a strength : `strength-add` Add a strength to a selected person from our contact list. @@ -172,7 +172,7 @@ Format: `strength-add INDEX STRENGTH_DESCRIPTION` Examples: * `strength-add 1 Great stamina` adds the strength "Great stamina" to the 1st person in the contact list. -### 2.1.10 Adding a weakness : `weakness-add` +#### 2.1.10 Adding a weakness : `weakness-add` Add a weakness to a selected person from our contact list. @@ -181,7 +181,7 @@ Format: `weakness-add INDEX WEAKNESS_DESCRIPTION` Examples: * `weakness-add 1 Poor defensive abilities` adds the weakness "Poor defensive abilities" to the 1st person in the contact list. -### 2.1.11 Adding a miscellaneous note : `misc-add` +#### 2.1.11 Adding a miscellaneous note : `misc-add` Add a miscellaneous note to a selected person from our contact list. @@ -191,7 +191,7 @@ Examples: * `note-add 1 Likes ice cream` adds the miscellaneous note "Likes ice cream" to the 1st person in the contact list. -### 2.1.12 Deleting a strength : `strength-del` +#### 2.1.12 Deleting a strength : `strength-del` Delete a strength from a selected person from our contact list. @@ -212,7 +212,7 @@ Examples: -### 2.1.13 Deleting a weakness : `weakness-del` +#### 2.1.13 Deleting a weakness : `weakness-del` Delete the weakness from a selected person from our contact list. @@ -233,7 +233,7 @@ Examples: -### 2.1.14 Deleting a miscellaneous note : `misc-del` +#### 2.1.14 Deleting a miscellaneous note : `misc-del` Delete the miscellaneous note from a selected person from our contact list. @@ -286,7 +286,7 @@ A task can have any number of tags (including 0) * (To be filled up by @pragya) -### 2.2.5 Clear all task entries : `clear-t` +#### 2.2.5 Clear all task entries : `clear-t` Clear all tasks or tasks on a selected date from our task list. @@ -339,7 +339,7 @@ Examples: ### 2.3 Strategic Planning -### 2.3.1 Load new background image : `load-court` +#### 2.3.1 Load new background image : `load-court` Load a new background image in the strategy tab. From e207e06de1616e372b6c2686f1f94667177ce387 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 23 Mar 2022 17:19:22 +0800 Subject: [PATCH 178/455] Fix bugs in command summary (UG) --- docs/UserGuide.md | 72 +++++++++++++++++++---------------------------- 1 file changed, 29 insertions(+), 43 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 562941e2628..8abd661f8aa 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -399,22 +399,27 @@ Format: `exit` ## **4. Command summary** -<<<<<<< HEAD ### 4.1 Contact Management -| Action | Format, Examples | -|--------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **List** | `list-p` | -| **Add** | `add-p n/NAME p/PHONE_NUMBER a/ADDRESS e/EMAIL [t/TAG_NAME]…​`
      e.g., `add-p n/Johnson p/83918273 a/Woodlands Avenue 4 e/johnson@gmail.com t/Hustlers` | -| **Del** | `del-p INDEX`
      e.g., `del-p 1` | -| **Edit** | `edit-p INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [t/TAG_NAME]…​`
      e.g., `edit-p 1 p/98273712 e/johndoe@example.com` | -| **Clear** | `clear-p` | -| **Add Tag** | `tag-add-p INDEX TAG_NAME`
      e.g., `tag-add-p 1 Public Relations` | -| **Del Tag** | `tag-del-p INDEX TAG_NAME`
      e.g., `tag-del-p 1 Team` | -| **Find** | `find-p [n/NAME]…​ [t/TAG]…​`
      e.g., `find-p n/Alex n/Charlotte t/team1 t/team2` | -| **Add Note** | `note-add INDEX NOTE_DESCRIPTION`
      e.g., `note-add 1 Surgery Scheduled for tomorrow` | -| **Del Note** | `note-del INDEX NOTE_INDEX`
      e.g., `note-del 1 1` | - +| Action | Format, Examples | +|-----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **List** | `list-p` | +| **Add** | `add-p n/NAME p/PHONE_NUMBER a/ADDRESS e/EMAIL [t/TAG_NAME]…​`
      e.g., `add-p n/Johnson p/83918273 a/Woodlands Avenue 4 e/johnson@gmail.com t/Hustlers` | +| **Del** | `del-p INDEX`
      e.g., `del-p 1` | +| **Edit** | `edit-p INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [t/TAG_NAME]…​`
      e.g., `edit-p 1 p/98273712 e/johndoe@example.com` | +| **Clear** | `clear-p` | +| **Add Tag** | `tag-add-p INDEX TAG_NAME`
      e.g., `tag-add-p 1 Public Relations` | +| **Del Tag** | `tag-del-p INDEX TAG_NAME`
      e.g., `tag-del-p 1 Team` | +| **Find** | `find-p [n/NAME]…​ [t/TAG]…​`
      e.g., `find-p n/Alex n/Charlotte t/team1 t/team2` | +| **Add Note** | `note-add INDEX NOTE_DESCRIPTION`
      e.g., `note-add 1 Surgery Scheduled for tomorrow` | +| **Del Note** | `note-del INDEX NOTE_INDEX`
      e.g., `note-del 1 1` | +| **Add Strength** | `strength-add INDEX STRENGTH_DESCRIPTION`
      e.g., `strength-add 1 Great stamina` | +| **Add Weakness** | `weakness-add INDEX WEAKNESS_DESCRIPTION`
      e.g., `weakness-add 1 Poor defensive abilities` | +| **Add Miscellaneous** | `misc-add INDEX NOTE_DESCRIPTION`
      e.g., `misc-add 1 Likes ice cream` | +| **Del Strength** | `strength-del INDEX STRENGTH_INDEX`
      e.g., `strength-del 1 1` | +| **Del Weakness** | `weakness-del INDEX WEAKNESS_INDEX`
      e.g., `weakness-del 1 1` | +| **Del Miscellaneous** | `misc-del INDEX NOTE_INDEX`
      e.g., `misc-del 1 1` +| ### 4.2 Task Management | Action | Format, Examples | @@ -423,21 +428,21 @@ Format: `exit` | **Add** | (to be filled up by @pragya) | | **Del** | (to be filled up by @pragya) | | **Edit** | (to be filled up by @pragya) | -| **Clear** | (to be filled up by @abdul) | +| **Clear** | `clear-t [d/DATE]`
      e.g., `clear-t 2022-10-10` | | **Add Tag** | (to be filled up by @juayhee) | | **Del Tag** | (to be filled up by @juayhee) | | **Find** | `find-t [n/NAME]…​ [t/TAG]…​`
      e.g., `find-p n/Meeting n/Training t/team1 t/team2`| ### 4.3 Strategic Planning -| Action | Format, Examples | -|----------------|--------------------------------------------------------------------------------------------| -| **Load Court** | (to be filled up by @abdul) | -| **Add** | (to be filled up by @xiaoteng) | -| **Clear** | (to be filled up by @xiaoteng) | -| **Move** | (to be filled up by @xiaoteng) | -| **Export** | (to be filled up by @pragya) | -| **Exit** | `exit` | +| Action | Format, Examples | +|-------------------|--------------------------------------------------------------------------------------------| +| **Load BG Image** | `load-court IMAGE_NAME`
      e.g., `load-court basketball` | +| **Add** | (to be filled up by @xiaoteng) | +| **Clear** | (to be filled up by @xiaoteng) | +| **Move** | (to be filled up by @xiaoteng) | +| **Export** | (to be filled up by @pragya) | + ### 4.4 General @@ -454,23 +459,4 @@ Format: `exit` |--------------------|----------------------------------------------------------------------------------| |**GUI** | The *Graphical User Interface (GUI)* allows program interaction through graphics | |**CLI** | The *Command Line Interface (CLI)* allows program interaction through commands | -======= -| Action | Format, Examples | -|-----------------------|-------------------------------------------------------------------------------------------------------------------- | -| **List** | `list` | -| **Add** | `add n/NAME p/PHONE_NUMBER e/EMAIL [t/TAG]…​`
      e.g., `add n/Johnson p/83918273 e/johnson@gmail.com t/Hustlers` | -| **Del** | `del INDEX`
      e.g., `del 1` | -| **Add Tag** | `tag-add INDEX TAG_NAME`
      e.g., `tag-add 1 Public Relations` | -| **Del Tag** | `tag-del INDEX TAG_INDEX`
      e.g., `tag-del 1 1` | -| **Find** | `find [n/NAME]…​ [t/TAG]…​`
      e.g., `find n/Alex n/Charlotte t/team1 t/team2` | -| **Add Strength** | `strength-add INDEX STRENGTH_DESCRIPTION`
      e.g., `strength-add 1 Great stamina` | -| **Add Weakness** | `weakness-add INDEX WEAKNESS_DESCRIPTION`
      e.g., `weakness-add 1 Poor defensive abilities` | -| **Add Miscellaneous** | `misc-add INDEX NOTE_DESCRIPTION`
      e.g., `misc-add 1 Likes ice cream` | -| **Del Strength** | `strength-del INDEX STRENGTH_INDEX`
      e.g., `strength-del 1 1` | -| **Del Weakness** | `weakness-del INDEX WEAKNESS_INDEX`
      e.g., `weakness-del 1 1` | -| **Del Miscellaneous** | `misc-del INDEX NOTE_INDEX`
      e.g., `misc-del 1 1` | -| **Clear Tasks** | `clear-t [d/DATE]`
      e.g., `clear-t 2022-10-10` | -| **Load BG Image** | `load-court IMAGE_NAME`
      e.g., `load-court basketball` | -| **Help** | `help` | -| **Exit** | `exit` | ->>>>>>> update-command-format + From 3c9d179308bc7dde051414280aa0afa4da5b434a Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 23 Mar 2022 17:22:24 +0800 Subject: [PATCH 179/455] Fix bugs in command summary v2 --- docs/UserGuide.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 8abd661f8aa..2b5bdfe68d1 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -418,7 +418,7 @@ Format: `exit` | **Add Miscellaneous** | `misc-add INDEX NOTE_DESCRIPTION`
      e.g., `misc-add 1 Likes ice cream` | | **Del Strength** | `strength-del INDEX STRENGTH_INDEX`
      e.g., `strength-del 1 1` | | **Del Weakness** | `weakness-del INDEX WEAKNESS_INDEX`
      e.g., `weakness-del 1 1` | -| **Del Miscellaneous** | `misc-del INDEX NOTE_INDEX`
      e.g., `misc-del 1 1` +| **Del Miscellaneous** | `misc-del INDEX NOTE_INDEX`
      e.g., `misc-del 1 1` | | ### 4.2 Task Management @@ -428,7 +428,7 @@ Format: `exit` | **Add** | (to be filled up by @pragya) | | **Del** | (to be filled up by @pragya) | | **Edit** | (to be filled up by @pragya) | -| **Clear** | `clear-t [d/DATE]`
      e.g., `clear-t 2022-10-10` | +| **Clear** | `clear-t [d/DATE]`
      e.g., `clear-t 2022-10-10` | | **Add Tag** | (to be filled up by @juayhee) | | **Del Tag** | (to be filled up by @juayhee) | | **Find** | `find-t [n/NAME]…​ [t/TAG]…​`
      e.g., `find-p n/Meeting n/Training t/team1 t/team2`| From ff873f32978eeb9932f04227204d1f8389947330 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 23 Mar 2022 17:26:42 +0800 Subject: [PATCH 180/455] Fix command summary v3 --- docs/UserGuide.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 2b5bdfe68d1..a08526c86a5 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -419,7 +419,8 @@ Format: `exit` | **Del Strength** | `strength-del INDEX STRENGTH_INDEX`
      e.g., `strength-del 1 1` | | **Del Weakness** | `weakness-del INDEX WEAKNESS_INDEX`
      e.g., `weakness-del 1 1` | | **Del Miscellaneous** | `misc-del INDEX NOTE_INDEX`
      e.g., `misc-del 1 1` | -| + + ### 4.2 Task Management | Action | Format, Examples | From dc3501e119ff63dfe7956045300fd7ac0e847f6e Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Wed, 23 Mar 2022 20:03:26 +0800 Subject: [PATCH 181/455] Implement Parser class for Load-Court function --- .../logic/commands/LoadCourtCommand.java | 10 +++---- .../logic/parser/AddressBookParser.java | 4 +++ .../logic/parser/LoadCourtCommandParser.java | 28 +++++++++++++++++++ .../address/logic/parser/ParserUtil.java | 16 +++++++++++ .../java/seedu/address/model/image/Image.java | 2 +- .../java/seedu/address/ui/StrategyPanel.java | 11 +++++++- 6 files changed, 64 insertions(+), 7 deletions(-) create mode 100644 src/main/java/seedu/address/logic/parser/LoadCourtCommandParser.java diff --git a/src/main/java/seedu/address/logic/commands/LoadCourtCommand.java b/src/main/java/seedu/address/logic/commands/LoadCourtCommand.java index 07a7f310871..712daa1c0d3 100644 --- a/src/main/java/seedu/address/logic/commands/LoadCourtCommand.java +++ b/src/main/java/seedu/address/logic/commands/LoadCourtCommand.java @@ -16,7 +16,7 @@ public class LoadCourtCommand extends Command { public static final String COMMAND_WORD = "load-court"; public static final String MESSAGE_USAGE = COMMAND_WORD - + ": Load an image from \'/docs/images/courts/\' and sets as background image for the Strategy Panel. " + + ": Load an image from \'/courts/\' directory and sets as background image for the Strategy Panel. " + "Parameters: " + "IMAGE_NAME (" + Image.MESSAGE_CONSTRAINTS + ") " + "Example: " + COMMAND_WORD + " " @@ -28,12 +28,12 @@ public class LoadCourtCommand extends Command { /** * Constructor for LoadCourtCommand class. - * @param imageName The name of an image + * @param image The image file. */ - public LoadCourtCommand(String imageName) { - requireAllNonNull(imageName); + public LoadCourtCommand(Image image) { + requireAllNonNull(image); - this.image = new Image(imageName); + this.image = image; } @Override diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index 926e9eca089..d07250a8c18 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -20,6 +20,7 @@ import seedu.address.logic.commands.FindCommand; import seedu.address.logic.commands.HelpCommand; import seedu.address.logic.commands.ListCommand; +import seedu.address.logic.commands.LoadCourtCommand; import seedu.address.logic.commands.notecommands.AddMiscCommand; import seedu.address.logic.commands.notecommands.AddStrengthCommand; import seedu.address.logic.commands.notecommands.AddWeaknessCommand; @@ -118,6 +119,9 @@ public Command parseCommand(String userInput) throws ParseException { case DeleteTagCommand.COMMAND_WORD: return new DeleteTagCommandParser().parse(arguments); + case LoadCourtCommand.COMMAND_WORD: + return new LoadCourtCommandParser().parse(arguments); + default: throw new ParseException(MESSAGE_UNKNOWN_COMMAND); } diff --git a/src/main/java/seedu/address/logic/parser/LoadCourtCommandParser.java b/src/main/java/seedu/address/logic/parser/LoadCourtCommandParser.java new file mode 100644 index 00000000000..0823af62ea1 --- /dev/null +++ b/src/main/java/seedu/address/logic/parser/LoadCourtCommandParser.java @@ -0,0 +1,28 @@ +package seedu.address.logic.parser; + +import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; + +import seedu.address.logic.commands.LoadCourtCommand; +import seedu.address.logic.parser.exceptions.ParseException; +import seedu.address.model.image.Image; + +/** + * Parses input arguments and creates a new LoadCourtCommand object + */ +public class LoadCourtCommandParser implements Parser { + + /** + * Parses the given {@code String} of arguments in the context of the LoadCourtCommand + * and returns a LoadCourtCommand object for execution. + * @throws ParseException if the user input does not conform the expected format + */ + public LoadCourtCommand parse(String args) throws ParseException { + try { + Image image = ParserUtil.parseImage(args); + return new LoadCourtCommand(image); + } catch (ParseException pe) { + throw new ParseException( + String.format(MESSAGE_INVALID_COMMAND_FORMAT, LoadCourtCommand.MESSAGE_USAGE), pe); + } + } +} diff --git a/src/main/java/seedu/address/logic/parser/ParserUtil.java b/src/main/java/seedu/address/logic/parser/ParserUtil.java index c92099498f7..93d5d023c04 100644 --- a/src/main/java/seedu/address/logic/parser/ParserUtil.java +++ b/src/main/java/seedu/address/logic/parser/ParserUtil.java @@ -9,6 +9,7 @@ import seedu.address.commons.core.index.Index; import seedu.address.commons.util.StringUtil; import seedu.address.logic.parser.exceptions.ParseException; +import seedu.address.model.image.Image; import seedu.address.model.name.Name; import seedu.address.model.note.Note; import seedu.address.model.person.Address; @@ -28,6 +29,8 @@ public class ParserUtil { public static final String MESSAGE_INVALID_NOTE_INDEX = "Note index is not a non-zero unsigned integer."; + public static final String MESSAGE_INVALID_IMAGE = "Image does not exit."; + /** * Parses {@code oneBasedIndex} into an {@code Index} and returns it. Leading and trailing whitespaces will be * trimmed. @@ -41,6 +44,19 @@ public static Index parseIndex(String oneBasedIndex) throws ParseException { return Index.fromOneBased(Integer.parseInt(trimmedIndex)); } + /** + * Parses {@code imageName} into a {@code Image} and returns it. Leading and trailing whitespaces will be + * trimmed. + * @throws ParseException if the specified imageName is invalid. + */ + public static Image parseImage(String imageName) throws ParseException { + String trimmedName = imageName.trim(); + if (!Image.isValidImage(trimmedName)) { + throw new ParseException(MESSAGE_INVALID_IMAGE); + } + return new Image(trimmedName); + } + /** * Parses {@code oneBasedNoteIndex} into an {@code NoteIndex} and returns it. Leading and trailing whitespaces * will be trimmed. diff --git a/src/main/java/seedu/address/model/image/Image.java b/src/main/java/seedu/address/model/image/Image.java index bff0af19f0e..86432fd180a 100644 --- a/src/main/java/seedu/address/model/image/Image.java +++ b/src/main/java/seedu/address/model/image/Image.java @@ -6,7 +6,7 @@ * Represents an Image in Coack2K22. */ public class Image { - private static final String FILE_PATH = "docs/images/courts/"; //todo: Change filepath to reflect creating new directory outside of JAR file + private static final String FILE_PATH = "courts/"; //todo: Change filepath to reflect creating new directory outside of JAR file public static final String MESSAGE_CONSTRAINTS = "Image must be a valid .png image and contained in \'" + FILE_PATH + "\'"; diff --git a/src/main/java/seedu/address/ui/StrategyPanel.java b/src/main/java/seedu/address/ui/StrategyPanel.java index 934a9ed1ab3..9ef93597a51 100644 --- a/src/main/java/seedu/address/ui/StrategyPanel.java +++ b/src/main/java/seedu/address/ui/StrategyPanel.java @@ -1,6 +1,7 @@ package seedu.address.ui; import java.io.File; + import javafx.event.EventHandler; import javafx.fxml.FXML; import javafx.scene.Cursor; @@ -66,7 +67,7 @@ public void handle(MouseEvent t) { */ public StrategyPanel() { super(FXML); - strategyImage.setImage((new Image((new File("courts/basketball.png").toURI().toString())))); + //strategyImage.setImage((new Image((new File("courts/basketball.png").toURI().toString())))); strategyImage.fitWidthProperty().bind(strategyAnchorPane.widthProperty()); strategyImage.fitHeightProperty().bind(strategyAnchorPane.heightProperty()); strategyImage.toBack(); @@ -75,6 +76,14 @@ public StrategyPanel() { initCircle(player3, 30, 200, 200, Color.YELLOW); } + /** + * Changes the image contained in ImageView. + * @param file the file reference for the image to be loaded + */ + public void changeImageBackground(File file) { + strategyImage.setImage((new Image((file.toURI().toString())))); + } + private void initCircle(Circle circle, double rad, double x, double y, Paint color) { circle.setRadius(rad); circle.setFill(color); From 4ff3fab0daf7b17fa4439a70be5e0b9b54a627da Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 23 Mar 2022 20:22:31 +0800 Subject: [PATCH 182/455] Update find person sequence diagram --- docs/images/FindPersonSequenceDiagram.png | Bin 51528 -> 53949 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/FindPersonSequenceDiagram.png b/docs/images/FindPersonSequenceDiagram.png index fb1109a354b173033e42170703fe4a98ec4447d4..48d2ab1455cc06c6da742fd4c29e7ba1abc2630f 100644 GIT binary patch literal 53949 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%0A+PI%Hb>ffcwvhhM)0uLh@Qhe(Qfm~ zia{h;P}x1B1(Sm4XIh%%K)>}E4EE6G^^pJP)loo+rr2^Eb04bAUq1g++}$)4`g-Mx zGZ%-rdYy7kaoWXs3T1p+W;@o}p#M`@*lIPeB#FdRc5s5oBnY+jX$QQ2W^-2vX7IB# zi~T-f{g#zFW4C-+LT?e^i@zPEDxPZPoi+)|7F9x~`kn;o{>PKT)JsU)Ucs@yUdXKE zl9=79-D0PC*>@W!RD3mBJH~hwDb=>W?_chP8Wm)TwcdZ$sA&1#@s9LB#U2Nb#G7_k zo{g~`pl#GN*$;Dtb&YS3xIG8w@kDwkhiM}pa7FR~^BvLfenRui$~0R$meuj zo5z8Ne@;dvS%3%cvvo2ysQgE`)%LuX-8(8G5!luE4@dg;tR_9`?mN2q=cg5}mecVW zynmAi9-#Z6``blgnVeR7E@oSis%r;!!JM!KWQwn)byeCmcr_o7XLZvcz(D&xl-|6k z?4Y%0R6|J2_C6dP>inz47y%zkCNcsaNZ?MM@&1gWP`@*jJN+fnV_+t6MHqAFagihe ze&u}tFFJ^)8Ynoc$3&7KdlduExS&O6Ve%MA^=tZ2#8-i*Jrh%kNV|+xNA^S`d!?6; zzng|Hal5Xc=(p7AgqUKNBaYNsdzniM%Zg{hMm5)DKd*chF{rvH%Y~C9Cc}ofE(s}} zv3jfQ(r4n;A7YODGCBP6Ett=r!T0g51P3g5+6T)|fRONihKiC$&IVLT(A-%gg7%Uc z)_T8(zK?+H5QiJFE$vaHceC}xH(G*H3iMF=sKKJU0NN{b@_x-7XDA@7TZ00MvhK3I zHMn6+b`y|}L{`TJ>Wv)bJyJ-T%41)M#}-ZY{x12_(;_2CLj)r4hqVp!xw3f3iQX?joX1DJUS{A9P;OX`UKyWqaQCDY zv6FjgDP2}JaHJ#Hwh6V^8HWs&>IWgz_QO(6Wj*F1AzQUvhDEamo_7S7sl^U9&+OS# z+Vd?tBBUb;XDGh>GSayplYlqgR-;Fki67>jj4Bv71%oI28Kp~pjHhtVm|IRxvrj_7 z@C!FDI`NT`E0d+qP|}4dDx%Bxaa~7iyB)(5ZyIFgvxf&Qnfa`ZJ_;Z&qW2GcBuha+ zb`C@vY(`%n9ppf0@J9$-cv7KUFOtv=w%;ehoOepsr97!}XQVuXJtJI%1iRyXMK44- z2S!@YO7SAo9!Q!p<(}5%PdNS<1#;|q?h2_3y|0?g3mE$uB7-JYJjq66RgpVHtQGRG zDQ2>Crj*h`wtoEkU=Yfx7o4TttE2T<-@bI{_c1ioeVu)*yo03Js(i0|?O4meLNTJ2 zQvulWnzp_d0vrkb$P`G;6%%8yy{cpkFfS6$KloSui^Jh()p|lSuQ*@Icoxp3$3rDaaHxV7ta5b)*0hYTZy;iT1UG!N#c~xxiV|oc&REzzfj5{yri2F zr};(RZ%$jZ(R75)&-g5M_Q;*){6?4>pmm-wlrC`g$MCy+M0DA%-M*6q zbEO7q#dVwu9RsqK&cn~!rJul`px{dXW=x4nE-|3}!VO5c!}wCt3D)=QN&05BhUz23hM0_hI#190p` zbWTFI!&nk=O_B3;+HQ?c-V7y@2RfZYOf4qr8!WE&exI6IM^A7B9MF;A6>mg=`vg(o zs{RD};MK{8Dy!!lQdTWOZZftVx$S@AV<4 zncePf5NP+L4N;Wg5+M$voqhl-D8ZJFS`mY~P?Pi_(irEuz?aJh%UZaQ9 zRrLXC57OG%%yeo~+JVT8a@MfMop5Su#QkNI{@&((+GAiJb-L5Oz*#_A6}IHRZik z#Fq4f?3%6BgDG!^8akDmDcYJ-(t3;!O9kZS^(cb~;oh#LmC%wmB)&I&)>2cm`@|OA zD@26`KrxXi>ur zwb+FgroK5k>)c|m;;7?9_iaw;gmg%zJ-)cv*6xC}&$3^383%s8Z`2{ZIvM5giU-eV zq+osM1z}xlqz;AXC&Lo{%abz`v}gFe`@8hCKP?wmV$^v?3oD-_ukl@49*PalYkV>~ zU|41%WrbfGUc1Iqre^slJ?5ExOjxK=LEl77fN>eI$;vLNPo}fBnzpzD&S9#n+O*M< z+sfp9oIlxQOzOCVjr0UrJ7ZK@ai{nmD2A5oV?uDz_AghQ`E+-!zOl(_2Y^@k+U)Yf{S23nUt87pH~ZsmPxS{$D4JzUY0@?p;4v=f!1u69Qr*sc(^{6Vg4tpX+rgT?nIPQix&s4gYvw`TbiWhLsbw>7`F}vlDV}=iEqHUGZp@ZkgM^ zRvf_JG5aKax+tT4QsOPYcEOFg$J$=z>rDQ@S^-@i1WD+~ z1JJTRMdCdqaeb#Z@;tY9B#y_2$nEgeWz+l9-aRxld+LW@3`RMvC^QvZhxUB!3lDD1 z@KZT_2|4MV$lzTZ z3<=nz%uh|&+Jq?=koS|FJ$=%h`t_l^3j!6)((h>WP;pbcV$p}sot=^>ZiG`27S8Ub z_blf?%aEP)A}?n=t+e&@MG2|fHbeN7+l6_CHaGHY3ZEyM42DnE?tL{lo}3qxcjKN% zva!a(>!WR>4Qgq1G4VSUdsq3EYL-}IggI;qqwNz+vz0S~GsvkVUIQCW-@$Qi zjUD{*12#f;8JeT;N9lH8UoX4nfdf9lJ`@XI`fLrptg6-M^yvzKiwfQDX06*0lzf54 zpo8AQp!gc0qEX#8>#!Ie9mY>RPM(iwEmEvHp2?&Mtaa^8(XU(ZHmEXU9({C~&gr=A z^GK^Nr>T}{1-_o9dWkEyXxm*DHlsk#?PNdBffEyM^%R{9{xaQZ5@b-_go)~rnYx5K zP$%W%vbfu@`OwlmH^Un2j9FlX&y%wOq4S5l=7QCttDao(zjZ6>#;A;TPl29*P%J%h z%Fr>;QpE5`dh7|A>Z_FRcy$YoQ&9+1ij$VbudU|V#S^FNmgzj$O>+bp18FV3y5u=K z9+8Qu6kBaJ5>Il#MONm_oq2WBAPJ~YY_K%;CJb)43Hqfo1Q7Aw#0F%U6NuM2D5{p> zb|^OTDunJ41>0&0-??}Il`HFERbx(p3MUMzF<;D+*JHCA*@r6R6IK>a9`C}hq;zN1 z-|HQ2%TByKl3UTDhE46sl1h)}mv0zrQ?`F)YQ#c(Mfi(9;D9GBDa+&Pp$pu{OJXP3 z7bm!Nh^?)F9K6fZ55IT*$cfmAt1EByB5CZ#8q}gFdAsG`J4{B|y^)%(Hnd!!L?z?B zDz1<}54UH8v#2X5#i7oP4sI=2K!nZQX?~$(Q2R^=h?cvuYFuS5C(- zbgov-@fv@-)s$s7N}Uqyp4zgSW7MJ${g}7>+H=8%)gI!t5~9h|B^lFn4j4+_#YImA z$K$$YouW45qn&Z~L~YIQg#~4@S~&B+8kd#q4UCXM^{1*7E(eVEe}1cAyI`M^?>tl6 z7iq(<=x+A{6=OGijjhZxXwu&#qXZ6?nVIh}LnZ?cVaj2&Y+`B^72l0VE5nK|7TslI zS+)A}V{IC0SVFzMqO%w6#^8Xj3lXQj%0|NA&mIQDrg&M4x)YUxDYnHnEzebn(mG9e zgp3B{!VC31DO_%qIrAnfGT__u%GNaLwO>ly?y=Q1x}-$j!$b5o9Jc=!10ugK;SYKn zfdg!WnLGChKgSweYdl8e)V!CZS}TbnnfW z9p0w@u04A}-+TKvr*l(o$&L*59!Rq~-S-~X6<5Y*qus<5(OaD(B~Kcr!B8@u5vkJfh?oI0 zTS+oFR?Rd?AAC+J_h!$lILp2C@{@)cz8<>-VZ2~b*=b_Df_E+(+F5+zj3I4?v~>$- z$%F2EFFXGzfyB@>^{;i$_!JHu3A?bGU9~(ZVj&|-rTC68?`jgI@JLBU>5|;-vQ?YJ zP`QfYnFbMFyXk)FD>*6*Fqzo$dc;Yiud_+crC%P<=)ZeN-jt-wCUZ0?%zkn(!pvrA zxG6!t=0I8qhgyxS$T&;f9zlsEv$B#Glp=3$Gz4#@6JF@ZQoa3|QL@|liZpKg%B2+a zXBg(?IamgO&n-xfZ>bO>-QO<*UF`{)YQlM7S|vw{p$yFNTxgY*!4gV6ETov^!LiZX z+0+Q}jg%C=x=Hk2uCTY7<+MA8R`8Z;tL=Vyyi#gdeUar#k%LE8IT@^Va|dh|3j_qu zqpF{M<%=p0DwX0ms*O_O{nksNtSUoPc|ja^L>o(JsPP=daU~+O)x!H}@^p7Kc6w>alfDq2SCGlahu$()l26 zbnuD>dU1f)xL1Oqd}XpUs4@FSb=T^$d_;v0pIpp>GoQakH|b0F%H!7w{Z7FYgj2`X z$LYOuf1PZbDCaFoe9o@#x#r?Zey`+W57&@<%(CIl_YS8+Xj-dr*@?2FPJ7ZmSrdlQ zLqh6klFp27dVi12$XVnYXMw?+s^D!QeAPj-T&Qv`#d1nid794Y>)rG8tY~AAyE1Cn zcr%)vz9GXeZzvkub$n>DEE;j|=r1hdp3l=u!in1Tkwz5m(NO4FqojRHp+4-+=Co7w zj)>aQ4pv2ByW$JbX0gPUPsy?R;hR-?kaNDptr;o0(5_^uE4pXd%d;&;RAg$-M+xUv zc*x!Ap+=!!x;)LY?e^8w29-P+m8iW{%?^6&-YnY%i(7^>gn4(y3x=YpkiG2gN!MPG zjk4)=^X*m2IKkl9yF%SrNZDgX%v;L=aLu)1u#Knd_Mv&sm1{kknXqEVuV89iGK6F` z=R_~s_nees33w6o*)PVK1y5t^I~#sHyFp!?F+5mEZC7ARwoX`#*6QP&F8t9|6HiVd z@bL?ws2F!Pbc1i+`;=FdC~ML1r1ZP+NmuJtv|ybIt)`<359kM6!0J2fP+hX&;+IZ$ zuM9dh6lv+3ecz-pR;rXtPPaVn`atROB~`5cQgce85!cEWkHCE>)5e9oxN{iu-;I=`?2yWu4Covoi?YsAnScsithM2imVpcgQ%}h>8`=Rqk}7@ zwls4tSzTKzTZIm6O@QK;qNi{adbaXzrmd}YP;=ZKX^#yNQ}vHzFINsbUp?#mobrUu z?ct#Y^w-0yCx&xLqt81v%V1x8zRD2QZYwKexjd zMt7MAzV9gsWL8iCriZ*%!*p`RbXneKh>Q0Qr*MOnWR{ecn6hL0i5x>Y@qi-DHgcuJ>&XH0JS$(G&t ztUW!QW4LN*=RP!YG}E$bO{TgY=Z9r|fOB3_E-bE0{xsCsm3ymk`rYM@)^QWma7~KB zQe1lr)$#Jm^2C^~Am{G$*vP0aLp~wHlVzGidQBelH!lWQGxMKkL}`i_F3=|o5Onh*Bs`Bhi5 z#fdk9749eKh}| z(X{$Tgm*A+qE<1IQb=2oM#E$+rrR!nGiutE;p0F*hkj)bp8XW={NX8J%skC*jnt&R zN|UwLu3aWO$L8;RN=dt8!2Q#t{o-1~j_A*&aH`&Lhk%K_nagT!ajBJ&Y*ZOVhvs{x z6EHmN7$Z6dCWhoFkt3r_8C3~E0iM8VXIvbkJk;k=qcGI1&Rl8jjc3EJek5(0e1_Mr z*UigN-^v*N8Oq3a&-c$M5W+wteXWbcTXV0ELC#sLv8sH`UFH_1(7u&ZDBDnRxGjs- zl8^v6uD97+%HwwL|DI&NT+ePTN=O{-hmLCq8@Rh%cz#)6G>p@~K#h*aL44&}MX5>p zcHt|9x@d=zX~z5<$VKqc%yK{}lOYxuUgBQNr_NFEy}_^YLe9r`il-s%gxM znJzpz8Bpr9T$5fjp*eX{5T*huPs#>;B!YMV2em-Xpo!2{kfsT-5zM5ETqw2cGs0^| zvFWy;4}aqE3+hU@XGxqYc(M6MfCqZ2ju%^7#JJSNN_oe}#-5?(H&!ugM08rsF0BI= zMBuHczk92z-l6xUm|q~Yvc!=cN2FHn*H@R-Gq2xA;a6s|3~CPyeTBL1uV4V+i1?^Q0YQ1( zh286K4FRd9j`*LiiR9Q`J))7ZY&TE4=9=@ZtH*A(0JlGFAOpocQyD!_nKR<>bhgyU z>)c`T$z|rE&-;$Eqnl&oOC9@{K6i6?BE5-6PZ4;YJrgMIr#SRO3s9|Jb1NhyL^eju zso!av;wc)zJ5Q~~K4*S@+2Sl7S+1Ag{WH!YdDufyx0>CfwAC|jJHwsRMY#(l4~ROa zjLp1bo31Zgk(*z?Sx0xH^O5psSwgb00~(!GE(++FnQO^q?=QbBuUb2;I*LbO6h$^J0cQ)jOBd9nKT zYvkQ5?a)2U6GCo6>NPj22if2> zxP1{g4~oMEmDxAv-kZdL3BF0FNP-UMhI;d7%}GMP(_6Zxf+SV9_;mn^CX`2RINN-g z+qcswOLDKCUZau`pbo({s|5}ukHNd2IGwrXRE+C(fYvGp!(y^>WtZqRN|IJ5v%Pws%?VD;fQVU} zv2p_yDl;{7Rh9`omceAZ#qA6{-Tp!X{z{oYz9={d)fVLpL4b}9iN3v;s?^6DS))}R z`V&=sD<{Cs=wQS26G@^2IYk6^Z$$>&OPf; z_o%L2n>b%K86DQeMx)9Znx5$EZ?-mP8*V#Zz2;EwFg{9~uhpHOG^O?Jr4<;DTw-e{ zJK;2pK?>r@D!{?XQc+RAE{`5E4i)Y*T7#fEp4nCvV_%{(XddqJ zQN#I4N-42$pp2+o)ImZEWO)63>QAt}5y*d`o|sVaA>j0zS6xp5GTRe8WW!Xf*r^xg zSr!#Lonu6~sd?yp1^N08)ka4g-8pe+r0mn+L66!Az37uq_C|#uM?MTUKM}bvQ404y zEp-a#OpYqZ)+16Rv7zD_|D-5Jg$o_l@y-$_R8$HLiGZV!1+r_3GCQ|kQYDZAkszjpSUlF; zypHsx6bHQCk`IJpC67J%d(&OcP=SsvDrONyAcKP(wQkqgG5WS zRCA}6=ex5OGV+8J8*An@(LEszr?@9u78iCR|NBG3{nx+8fY>$|J_0BMm}~L*Fh~kE z5(98>FdJHm*?^0HU#%;WwTq`%a|CO~VO-NtaHc zEXNU+GNDxz1M}SvvWno#kJggQkPIth9veK~~*jwFoB{<|193N>?9S&~$5gy*^&eB~`@6XV}1UDV5T2gR@q#u+gYz!)I=RA8!%i-Y(=-t`&Bc8}ni`J6Bw9(7X?OaATVX4!o z#^NMDn=EWdxygv<4_WqUIyEn6{}X0w71N#1w@XR2d>aJPakx$ ze)c|Gp8WUA(`L~kzDj{mwM68y=9rK~4UItkuzi;|IGvzLL&c!hW!hv1Qgc>NXer0u zA9}@f7144so|n`Hx9$4JJ9B44d={vBj>1Oviha~cNVo&}>ctf*;=ek}krFP}L7b#L zLbrW|42YsK*`I=N3>axo-4ZY~WA|Rtt%yk=t0Knzoox$7!Q)jcZrvim2>m>YH}6%5 zNMP?tc>S+G>njBD`F*iOJm`q_6Tu~wf&(I4B~HV8-{B?R*9)`~rFsCdYpDt&VnV%nJX@@70dvO1g) zucuvo?hrvH$R|9tWyw(2f9enL^!xCMEd*2~0F;D`wpPVfnuTUWQ}bL>gVgZMu_34q+`=v>tnc-YaqY-K$l1N z5jsCqrBRI2RK~z^+sDYBN%Iczgn{U7H$5b)F&=*0Yq^eUt{5q&$`((C{95iN^EJoB z=NSBSSk`R4Kvd6O$G+Xe=+|4Pj2Hwj3fqi*8=UF1%(80Z6~G+6B{0R1#7IN2s?i7o z_wIxX-u;K?*(g&CpiM)V;2NP~&5r2l9ZBtPcF>O=*+MG$ddpT->>*cmSMDR{A2S-p zIN5BK_FeRcvXSV_j|BC{v2|{{2;Y#< zX{Hp%&Lf0=tt*XtVVSbwZ=E~(_Z^h8?<+7qeywLo=>Xx8euyAEn>GU@`tbp{d3Epv zF9~;AiXt5=^>vcin;>O}OaE9u7!GF%?x+f;#3|B0mHxnb1%`f-pXVb#{o|8BU~Rey zS4z|rcet>hZ&(!Jyvwb$D9<5(es?zFn_ByH36Rnb4&(d>Lfy1J@R&vVBW3p$86qFq z2I{NbeQln>0d-Myi#qKP}_e`-ONl8OVhGstt2hXCl}G!iB{u_08cyhJVYEfU$(se*J}YnqvuL7EIAUmf7q&Su?gTinA^o6&Q4cuIb9uMvGC>c^y_T{Sr!IwG^_);E!|IK zl<6EPrxY8Z&J~s}Y0l+PeK`9qAlPdMdG2(gwTZcEeX1^x1xB<*ubDEjLMe85Wria` zmI4=gfJ;u$qN3JtX7FB)QD1tM9gsW)GYSHGdBk&thdRtCnx3AX+Yya0BW5E*eSR4h z(>M#&0`!{-8qAfJ_==GZf#Ks9-OrISTVrrtY7^Ln70ZCzUGJ)uZF9-sQI-pmPY83s zS%dzM6W=n`KG+G~<0lU(sNc59kgmzk_a!n^dmLQ3lzi%zf7bThtQwbDqkQSUdPU!Q z;_cf@+U*udBSUwY6(bhm#1X(I5j=~Yspplso~nI?>!gZ{oDCe$8IoNu@9EDLV`bp6 zPo{g)x)0U1zwUx|3QJvQ!9;7O!(`Xt4%0s0jw0KT8J*+eW}LZF96*$*VULo=-D}D* zO6S}$FM__4zZPy4vmaCXzj)Nf+fM4IxqEPFTDwTAmn#b}ALfLV^n@1YPe_&v zn!hrCq#v*E_1Y~yF2B@zj;rw~g)9q8z&XJ(VSG?dObISQxWcE${?^m3$rR~ShqNVe z+sN1X))lu)S}_?Dk*mvX?Y48PEp1o%OJr>gSOJRF?l8UmNH@jB0!gOYE{a8M1K3IjpyXG-4oLVS+$oFSI&B<7a_!^Q1BJR@FAoC{Yc~(mv)yqVao=ug z*)R$o>vswoZ!4Um=S1(yXg?l@bJ`>6CSChx`EI)#Vw+iSTTr5m2QFsl$PNwbjD%dk z5@H&s8b~fpb?Y_Vb(dK!eZ_}vb`W(q67}|3i)aeh4PyhPLhN+3@GC2$HvyM=9E0Ex zfxeFb`w^!ex}PNl$FbF0o&DEPeV?OkkU_Ot=Ix#U8(`~&8EoBHj!`$C1GZmZ*p|&H zB@j1z%*?etI@UlAdo&=HuvW*Rz>uUqBFx`r{9PNtD+>dg^1fTOmxxggpK^^^d7T{# z^o8}?94>uYS)6dIFHgKllxLVA-pH}g%xyLrDvXhlrJrj~?}f!ZnS1lgj%3-O&O|2z zhpGK(Z=BM3eWA-_!|_m|{%6PYJo-tSpdCeE{Ley?U8%?b@tcD@e=(8Nh;1bFqjG~RbqCTO zxA<^rQtf{2xO>7Ef_2C0N0 zDHb4x1L_Uf+*Wn3m>7N)(yymN2}yXDvjSOti4fSWHqT8VYO_>^1FG$CN>UdAhbNr) z4j+sD90AJ)9K*If{_~Yu>|8ine@h0fL%Sg-IvGjDdKhq)w;RP(i_-{E5YH zN}vDwCA1fkHj@6$=OJ1ABHTqaOcb5>L`Xv8+FcL^Ja7DImjGJ`ks-%moqejuyUU&J z$o&_F)TS^+xY@F%|Bx>%A^gH0YNPK<$c#=s8kETb`o@b*O0*<*wr}PX!Ep9yy!sJJ z|9pl(->=ANy!kseC9&|||77l!g@GCY(7No!OC^tt);5TzL+YK|@NVrO>-w2~Y<{=y zfBBO6dUW`|mHJIE_J1q&e>V01clSw@5@AMgIw6Xag=eW>-DY#>p7OGGJST`W(s$;! z*;Be#Hq>nF#&AGXHp-?=xmv$GHq{x=zxcJ>M87L6=G>*groJ~K@vBU1N_Y1``N|$} z#;oK5Ks$5NP-(}8!|`;Rgn59AF_O9UYOI#iOb@*MRNamd3j~HZlAOl&+Y#}IlLyyW zfwxgU^Zo!ia)}%3<=a2^@f)&JO^KR}D)cbb%sq4LQ^u4~Fu(C(I^xySHo~^4ALpxm z482%_4hIJB@rYsKny2l}!O&Pf`S^V8llg}>=Vcce{B4usbBTHlxDIi8{?BHUjw=_- zoF*RXMb7K#fuIZuDEE4-=HXn;4- zDNKGXvZ>U3@i1EqNEl+8O0Nx{VRQaOzV~@fhVHC5TTGYqs;=B}Ax7M0!VYH=ea=XC zdDt}ZWJ$UMZ-P_(iiQHd#B9YuZh0?5SzrH0hfd2T3lloZyh-sV6Q7QZ5nuP~SR2OC zz2Zs7FhJl~``l!?74iMozHRd4o8btc|HVp2&>C~y9D)A#RBpBPzr5(4*yVQDAWVMJ z+*xO8L|1AbsUywVfFD|bA(!1(%y_tP?L9{LL7&7f8`*PrLvO9lnyP+ff@~I+~ZUgsW9>0X+ev(~IL!Z%^dOYZUaXb$OTxWg2VE;ko8NV?39g8y*GE z4;JA&jdb}YMP0N)%(A1MqUIU!IEEqnyqJ5Y9ZrggPUD7_m)i4&Uln~Uov5{QPTg^{ z-QZxN(`q1*n@zxxC>xu00nX*a2Avh-MS|lrYMio0X3ekSK9(A_SlDtO+e7-^N@S?A zzQ<+MQgxiNUQ=lNN~`naqtPrfcC+@n#axTG?ZGye73Y%Mi>v*tD~@K|X%D)5`8HLa z#hsuRi|twS#EUpj(Sd`?p$0pjbs@=zx0h71H89i7^)GbDVTHBe?;lyoI@sVUTOM~? z$J712U(aEL9nEHx@r=&e?xWvR<}@t7ZIm(Kr8!)w@7&IICildr3zqbeT$&mmK-Lhg z9M1DES;y;~-l;7r=~tN7RbNXTqK7YEh9ZsvUK-w%j$vQJUO1yDm~hN~_&%EPv=o+6wsiJxKm+4p9C} zk|F_s;|HcKZeQUT&dlrzBt6-T#et&dO3qKwdKC^ZWmo?@EC^#yI#{*+H1_O+CvLHf zkl;RG2W;vmv-x{^;&u2ME4q7ioVy8Mkm3E+S#I?R87e_+o7dPHIaD4XyZ)JTkf9Li z<4^KNLy1MJV4m2HxLkREu8M#g++{G5hr)>AFQh)3zV~~sLMioTgxy3wy3{-ICZ!ZV zIqFqtfFztR(O9SbGtd8#^Hw1fG;+Yrz1eq_NKxJWegXZ)dI8b;E9QnIb&x3cy8#8c z_agJRKrT4ZmE?K&L&)kkKKWC)vYy7ih82@j-A|e=m2$M^TMwaoV*ZH6wC!71u*5B! zfP!9sgG~rvYe?$ReX8z5Q55#r{b{i;ju>M1%Tg8W_5&snt0l21m)+2ndOx-{|!YKZ- zBKH5#eE5Z-;a2#V{kW=m&9e}LS@ZGq+-t*w2|fcIV#D84;`UZt=)D~j%g;s!hb1a< zS282)o85}#@w0JBthdXWay&4G<*y6dLGXHXf0?Fsv)LT*im$-SSa3>bkfY`h` z?OGlezXxB37@)erG8;U!0K|EBH^^#2THc=pEaaf{zgUR<4wdeh*G}TEI_m}#zw{@5 zfDn61Q=^XU4m^PpkNas*9qUsW5ljv7ZV<)YqtcY$e z7Kc?f?G!NchqgU^mp-G0x)%y>R5V&k(0IlMlXLSK59TCNe{cC<%LrY?3(eZQkR?KL zN$u=9J5@#*Tk8^J`ft}dzu@tF`g$<2{zXbtP#LSfVuzvnMWi|kej%d<=&!{h0NJug0o zSmm|)Rk-`8^vWUPAaie9Ws9@^{g-yRb=K^@UhUU)4LHUD{C2%u0{%--guHgE$?G-V=RH1qWVQ=owu51d zKMMPV@iwgio(#wjZfj!v50n5-BZRNejAMe`$HD*+iTyR32|26Oa^TTMujX*ph&tle zV_~C2X>IF57WTEjPvd&)o?Vb`{Qsx=8smC8iq7Blr-2Tz^kTs*4<*Y>4R!3j5U?&D zr|8-ukf$u?IR;j_7i_4E!>?m1K}iK1xBVZd!Y)B+kZNhecj5=>Ab0bL7q-vV{2rt8 z4$Yj{n%rTUfc+q|9pyuy6r`+QCb9;zN$Y}7d8#Ev3ITvN^9*VDZ{A-a*Z=)>E-{q& zQB+K}7U}Kb;9<=T^|yFFn1YpUJS6Nh=iA3=F}om<3sl(CX3d5fhh1VJCowqO}Otu{fA3m~QCVGBi5zPt_0La$u8&r2M6M9#$TY$QCVJ@S0dY zL5`qelz2S#Jt;fMU2`{dfG%c^4P3nY_253n#6fJ1tvr!g|BeT@&qYs49|J~xAB*}2 z7vh@%V|9Z9j=KKB-pre7SQ4vp_Pc$&aVvfH@~Y%$e=SPXwBHQdl9XDM$(&KS(emJJ&yHYn!Gp&-9B2 zE_b`Qdr1n(8S!1-kbxUbDN~7UavA{tDP6WY|OyNn5wNj zga#Xq2IvNLet`Gjv;pD+RWTWZep`(}Q?y+u^BMG(v$UIdHSd??vG#}p`N@JDGMUw# zs5_FjIHB&1SH~!Pj?f{48lbR=f-UkMD1SmK#FEFJ7<3DN|uFbjP zu^0y*Rp*j=0|+jtliTLWMb7i8gt_g*92+#omX$ys4J%c z-UCl?X7zVCGEKnr<>zemcSsM8_ad}86PFTuS)wCf+FW}F-*IdHGz1>%S@6m9qgZ( zflqXjdXVcA=15A;&N;NktDSf+k4^;!GmC3a~wv$#L{!4d8;+Jy8sl?|P^yl1c zJdKKN%$X49X9le&^3F%vP6;9D%{0}8#OHnDPYOKnWs_mqoSEn2ccA@xlr;l{A1ZjR zxV~svY)r>IP;eevefFloaI7nSBXO70o!qKZiE|m@W5x?{hpvnl`Vn_ok;N{5uDN7@ z?ueB|Cnxu|d(A6<@Dr{R@0zQVu!`?$(n`+iqQW!vE|1&9XVDsgZM?+^bLS331OoK? znx!{Cy`!;*=a%NfybaJ2{plrSvwn$+SPHoy5OvjT;z*#Ob8a{!fYS4qM^<9mRxnyr zrshkNUhUk&=0A2$v`y;&Adh>^d15FT-n5bGNsmV6HjI3y4=l_%I8kyw}Nf6ZFHJ7Q(%hbX~6T0m8@yxzrjy3DTHc7@2#;{U>i!!*f;lX)RtU;ns?hn@QsyUAg3AC1##eRgNPo(__ zjaXQmyf*l8bZ#flOuzTOX;^jS(Rnn%d*9+4V)?kDXEweZZ<=8cH=HXraYmoAUtv=k zl^2a3eL|qg*Sgp)W%)^s{)ovW_?b+fSefW9`J&co-HP`t;9CXX|zzvw5Z$%NP2WF>^&04Zhfb<`)wVN6Y4l zDyd;bB!wkUVt;#F2A;RLd+h97>8Sul!h#g9t9tyXi@z9&HNv(2jM>9ZTF)W0kFS;< zWhbY0Ntubfj`K==8`>}A)+-Wgm|Ka-z&1VT_+FZ|${cF7Oh#gV&$BFAl4o#%nWs4P{5)s(9z`|3Ews zOPc=DIu})~w2UQnh!zBVltKG9m5Y(wb3BBx(eV|uVHWke-i~om^%Iwp+>6EY;wQ@u zEGg{zrO|IHFhka(b>l;2fl)2AW?`Ibr`33~dNx(so92Q~w)9tw`Vm;LG(u~k?3h=+ zyAz_1YlvIlzPBPK6%A)O=WfJ1i0v7f|GX)8;jUF>6gSfkse5}8afT$yyjCCeaC+w4^7FRszDN0-K!z{w)E5TyQH^K7y=Bc4;6=3-R#wKi3`1?c zAgdrXb`^%8#>hoMh@n4RLDEF0w(_`~^L+WyVg77y!miH%pJnwmzup`y!USQV?vq)l zwWYzQKtI~Fdo)aO(mJ*4TJM3)DIA7@RSB-MEa1#kkPDvKApXZ_z;BG8yW>H(mJz!H4xqudP!0iMgp$rs8Vd+dk0AJ%df;Pz zF5SvQI=T5qkT1}(WSe4n)-eTFzV|z_kC;?gvp|`qgD=MKu3--VTdX_KKe314pggV1 zJ&$RE6Yk%ypMbziU=@pbzZPNto$BPqH`O?;teeCnm->6=oT7DuFi?TSAj0})VgL7F z4LDY7cuH`x;8de4A*E^Kq}~TJ(!Gi9qUV3Gr*{?|-CBJ3vfY1uiigpjS&)95Myvg z!yfx8_I-A^Kmi~5tCecN;-hfbpNs@Eg(@jBD$jpSvHpbfkO)E^{QNvv^{Hd81m%;N z?jl^;E^%n|_^+J2P4taBvIU!>7$rIft{#emnM_4ejSdf16Ydu!|CVqc&^R~LtgM66 zzIY;JDBHd031Z==A+&y*SNC6NqZTlfjXi|JE14lPxx-%iAqom>>M7mZh>Yi7a=`0i zX#g>k1)tHfnn%8q!B@&mE>S?IUjx@`22Fks^s}`F$0GRk@`kYvZQz3t-JO^szFY` zVDVRx`smc8df&8d5kuwf+zeo5@{&L6uf>B~g>d_Vqe1TRHV>MNL6ThVpH{zge~tc3 zo-XeRt-Oc-xcUJKFl+ly&}f+aEip$a6WuySuG~7%CzDnqn$+Nm;enbiihbsyM{v0L z=C_SG-5Gng`%wvTH8uQLz04iXP>#e_!d57bc=ZjSm~iVgaGW;diPW*`JAHk8_?myt~esbxQg(xx1b_A z54SnY2LycXHI=0W~0e0{l|Xd$DHJUrLa_xKQ{nx>>jQiEANV*WDs z_J<5SgbI(-@gVh!YUQdh7P>ib*czcO`-rsi`?NY%xO=rWRcJroguVD`{`&Bg&mRsm zWX{Bt$#SpU(uJxovIF^1hfopoML!C&@swjVQ;D}G?pLSWKCZJ#Mg&m+NU|V>@`W`u zs1`5Cu9_*OVpjQjFTb;QrE{o!VI}G_o}@}%Z{`+2YRWE(oLoWDE!157zymplke3hzBXDio4%?n8g0cVfqy8$v28SCf8UMwH1+82RED!l zasQrzOM+JWslT3g zdl=TV75a|_Oyd>4zAvH%(aC<##wN^Je6<$LJ09VMA$rd`j`;m(TXdQHYVdMyslb1+ z=11chQ1y%180_m^K1<~fnH!B}@V&99GQQH;DIMo7ftmpVR?N;Uk1cDXy#ENyW5tPc zNP{DzgeXtoj2}#Q=2C$=L-}Zlv~25L9VvB3fTJ5W;}9Qel;E+0pKb_!O4s)rj_w7WLnzL>584#NPQ6UxS|#*G~cRG7&oR*>`dxWslRRB%>k-{W6jzA(L| zOh>Hp8Eu6I!{e)zjdDTlvIROF8B5PThlW91&tXVa!98wuxDooNn;4`4Evsnpq=B7* zl+$%!m8RxsMtTu&y-&7;y_PC;-2S$Q>E2UcPLUd(IBO2VCq3S~5|+n1@)|1l>nnvu zZg5vP_HEm$hrE?edull#3i9ssf}6PofqZ^p|Al6D=zC$$$7GDUq7qWwS~i>t41J@l zy(X8rL=&}if{OR>U%3S`QohKWLD3|D-?mkJ*e0XLXJH}sh4pfSaemlo32O)72EKI| zKn8;Q7RUg$#NveZfJ4d7ac<)H=J@C91HjIqV`f@6t7%mmWRAIW)#MhGuYxj*HA7fi z*iU;yVLzP)oo{gN-<}=Wf+K@CRG_8<^j{XRd)o9I7HvvAt{fr1#o#)&j{^se+2Qz~ z=jsM}PqwRtj?}sHVwb;huQpDWh4uYSQD&7y3J#0t?#8e`tCoWPhwoXV?qa3-LtTpx z$KN3D3wfPnMHnO4fxi^n;vB2QqKqy|0Bu#->tIyL;Nj4_8{DyvGHT0U;TCc{TBz9M zwqy`^VDRpZY^+ANj8NoBk--rA`UN?sZI@%*^(Jvi*$=l*_zIeVr|7!XM{`unGVoHXPGe_o zYLJDrJnS>U3-D4Ov4N2aZ_Pd4LHtD*3^(O4O@4Jo& z!RpfqvSvZ9*$|AAzp~#U%SPOuc{lg>a7n%%I9+$h(IMYMf}Q+RWEkqqwd#*=9&B*` z+Flo>0Czo!gf4=|A))gsU8ZO!sO^rj>%bLv4uSb))f*QLESzxb{U+yjg#HuZ>T=Oq zw|G7_bNX7l)3nn@6~_5}mV7e@nCP<}MtDDFN2DVax&0wl(zDz4M#DG>X-KYj7y0-= zLsl&Bbr}?>tt?O*Fy%lkRJZ!XfpJ1(&3%6k6O--@6nSmE3qH~=7VA+N9-}HitFJB(4 zfqC99f_PL$FNBQD%uZq}%ebDvyKvUk4~}PK9CP?%0hzh;NR6TTTrM>+TD0}T?#QEP z)T5GO*Zu?R=hrxFOy_L{I1XY~$1424#|lo!KFeJ*2l(liFF2Kkh9h#Bn*Wt+Kcfv% zZ2N<-8;CVKf3d6*Y~b} zy`SgQImPd_qFWEEZPes5hgr6+bzPkecQBcuGcCpk=xA=WVaP!r35_^zcSJ>PI5GK% zyAU?8PD{lZFwT2-Hv}?Cy>zM?JG(IHUpjj9FtVRRa-+{Q;+x%v19!f~UjJ=WH>lXk z;M|RM{|clKD*5SWQsCfOQ(U_-{uy_!&F%WKSwm7%{@3mSnWptmuqg(wuyS~09)56x SL16>@)78@d?e(#9*Z&Xw!c;l{ literal 51528 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
      kJ%&N0B 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 S*y+-R;A3NLZ&hXKlkgXm+DSqH From a62f7c768a3229e89b858e5525605fb07bc295df Mon Sep 17 00:00:00 2001 From: Rye-Catcher <2427367956@qq.com> Date: Wed, 23 Mar 2022 20:40:19 +0800 Subject: [PATCH 183/455] Update UG and DG to amend commands format for strategy board --- docs/DeveloperGuide.md | 56 ++++++++++++++++ docs/UserGuide.md | 53 +++++++++++---- docs/diagrams/AddPlayerSequenceDiagram.puml | 69 ++++++++++++++++++++ docs/images/AddPlayerSequenceDiagram.png | Bin 0 -> 32832 bytes 4 files changed, 164 insertions(+), 14 deletions(-) create mode 100644 docs/diagrams/AddPlayerSequenceDiagram.puml create mode 100644 docs/images/AddPlayerSequenceDiagram.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 9b743dadc8d..df310e7da26 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -180,6 +180,35 @@ The steps above are summarised using a sequence diagram as shown below. * Pros: Commands may be more intuitive to the users. * Cons: Possible violation of the DRY principle. +### 4.2 Add players feature + +This feature allows the user to add players to the strategy board. It is facilitated by `ModelManager` which +makes use of the method `#addPlayer()` and `#updateFilteredPlayerList()` to add a new player to the strategy board. + +Given below is an example usage scenario of how the add player mechanism behaves at each step. + +Step 1: The user inputs `add-player Cena` to add a new player to the strategy board. + +Step 2: This argument is passed into `LogicManager` which calls on `Coach2K22Parser#parseCommand()` to find a suitable parser class to process the user inputs. This initialises the `AddPlayerCommandParser` where its method `#parse()` is called to process the user inputs. + +Step 3: It then returns a newly initialised `AddPlayerCommand` back to the `LogicManager` for command execution. + +Step 4: During the command execution, the `ModelManager#addPlayer()` is called which adds the new player to an internal list. Inside the function call, the `ModelManager#updateFilteredPlayerList()` is also called which updates the GUI display a new player named "Cena" shown in the strategy board. The command results are then generated and shown to the user. + +The steps above are summarised using a sequence diagram as shown below. +![AddPlayerSequenceDiagram](images/AddPlayerSequenceDiagram.png) + +#### 4.2.2 Design consideration + +**Aspect: Should there be an abstraction for players:** + +* **Alternative 1 (current choice):** A player is a String of player name. + * Pros: Easy to implement. + * Cons: Hard to extend. +* **Alternative 2:** A player is an object of class `Player`. + * Pros: Easy to extend and manipulate attributes of a player. + * Cons: Hard to implement. + ### \[Proposed\] Undo/redo feature #### Proposed Implementation @@ -596,6 +625,33 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli Use case ends. +**Use case: Add a new player to the strategy board** + +**MSS** + +1. User requests to show all players on the strategy board +2. Coach2K22 shows players +3. User requests to add a new player to the strategy board +4. Coach2K22 shows the updated strategy board with the new player + + Use case ends. + +**Extensions** +* 3a. The player name is invalid. + * 3a1. Coach2K22 shows an error message. + + Use case resumes at step 2. +* 3b. The player name is already on the strategy board. + * 3b1. Coach2K22 shows an error message. + + Use case resumes at step 2. +* 3c. The player name is not provided. + * 3c1. Coach2K22 shows an error message. + + Use case resumes at step 2. + + + *{More to be added}* ### 6.4 Non-Functional Requirements diff --git a/docs/UserGuide.md b/docs/UserGuide.md index a08526c86a5..e5bcd011ff1 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -357,19 +357,43 @@ Examples: -#### 2.3.2 Clearing all entries: `clear-s` +#### 2.3.2 Adding new players: `add-player` -* (To be filled up by @xiaoteng) +Add a new player to the strategy board. -#### 2.3.2 Adding new players: `add-s` +Format: `add-player PLAYER_NAME` -* (To be filled up by @xiaoteng) +Examples: +* `add-player Messi` adds a new player named `Messi` in the strategy board. -#### 2.3.3 Moving a player to a coordinate: `move` +#### 2.3.3 Removing players: `del-player` -* (To be filled up by @xiaoteng) +Remove a player from the strategy board. -#### 2.3.4 Export strategy board as image file: `export` +Format: `del-player PLAYER_NAME` + +Examples: +* `del-player Messi` removes the player named `Messi` from the strategy board. + +#### 2.3.4 Clearing all players: `clear-player` + +Clear all players from the strategy board. + +Format: `clear-player` + +Examples: +* `clear-player` clears all players from the strategy board. + +#### 2.3.5 Moving a player to a coordinate: `move` + +Move a player to a coordinate on the strategy board. + +Format: `move PLAYER_NAME X_COORDINATE Y_COORDINATE` + +Example: +* `move Messi 0 0` moves the player named `Messi` to the top left corner of the strategy board. + +#### 2.3.6 Export strategy board as image file: `export` * (To be filled up by pragya) @@ -436,13 +460,14 @@ Format: `exit` ### 4.3 Strategic Planning -| Action | Format, Examples | -|-------------------|--------------------------------------------------------------------------------------------| -| **Load BG Image** | `load-court IMAGE_NAME`
      e.g., `load-court basketball` | -| **Add** | (to be filled up by @xiaoteng) | -| **Clear** | (to be filled up by @xiaoteng) | -| **Move** | (to be filled up by @xiaoteng) | -| **Export** | (to be filled up by @pragya) | +| Action | Format, Examples | +|-------------------|-------------------------------------------------------------------------| +| **Load BG Image** | `load-court IMAGE_NAME`
      e.g., `load-court basketball` | +| **Add** | `add-player PLAYER_NAME`
      e.g., `add-player Messi` | +| **Del** | `del-player PLAYER_NAME`
      e.g., `del-player Messi` | +| **Clear** | `clear-player` | +| **Move** | `move PLAYER_NAME X_COORDINATE Y_COORDINATE`
      e.g., `move Messi 0 0` | +| **Export** | (to be filled up by @pragya) | ### 4.4 General diff --git a/docs/diagrams/AddPlayerSequenceDiagram.puml b/docs/diagrams/AddPlayerSequenceDiagram.puml new file mode 100644 index 00000000000..5e8f38b4923 --- /dev/null +++ b/docs/diagrams/AddPlayerSequenceDiagram.puml @@ -0,0 +1,69 @@ +@startuml +!include style.puml + +box Logic LOGIC_COLOR_T1 +participant ":LogicManager" as LogicManager LOGIC_COLOR +participant ":Coach2K22Parser" as Coach2K22Parser LOGIC_COLOR +participant ":AddPlayerCommandParser" as AddPlayerCommandParser LOGIC_COLOR +participant "p:AddPlayerCommand" as AddPlayerCommand LOGIC_COLOR +participant ":CommandResult" as CommandResult LOGIC_COLOR +end box + +box Model MODEL_COLOR_T1 +participant ":Model" as Model MODEL_COLOR +end box + +[-> LogicManager : execute("add-player Cena") +activate LogicManager + +LogicManager -> Coach2K22Parser : parseCommand("add-player Cena") +activate Coach2K22Parser + +create AddPlayerCommandParser +Coach2K22Parser -> AddPlayerCommandParser +activate AddPlayerCommandParser + +AddPlayerCommandParser --> Coach2K22Parser +deactivate AddPlayerCommandParser + +Coach2K22Parser -> AddPlayerCommandParser : parse("Cena") +activate AddPlayerCommandParser + +create AddPlayerCommand +AddPlayerCommandParser -> AddPlayerCommand +activate AddPlayerCommand + +AddPlayerCommand --> AddPlayerCommandParser : p +deactivate AddPlayerCommand + +AddPlayerCommandParser --> Coach2K22Parser : p +deactivate AddPlayerCommandParser +'Hidden arrow to position the destroy marker below the end of the activation bar. +AddPlayerCommandParser -[hidden]-> Coach2K22Parser +destroy AddPlayerCommandParser + +Coach2K22Parser --> LogicManager : p +deactivate Coach2K22Parser + +LogicManager -> AddPlayerCommand : execute() +activate AddPlayerCommand + +AddPlayerCommand -> Model : addPlayer("Cena") +activate Model + +Model --> AddPlayerCommand +deactivate Model + +create CommandResult +AddPlayerCommand -> CommandResult +activate CommandResult + +CommandResult --> AddPlayerCommand +deactivate CommandResult + +AddPlayerCommand --> LogicManager : result +deactivate AddPlayerCommand + +[<--LogicManager +deactivate LogicManager +@enduml diff --git a/docs/images/AddPlayerSequenceDiagram.png b/docs/images/AddPlayerSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..d587872375bb19a7ff3b384be3cc39e1b2369ff2 GIT binary patch literal 32832 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

      +
      + **:information_source: Key things to take note of:**
      * `PERSON_NAME` has to be present in the contact list for them to be tagged to a task. @@ -298,6 +299,7 @@ Format: `exit` ## 4. Command summary ### 4.1 Contact Management + | Action | Format, Examples | |--------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------| | **List** | `list-p` | @@ -312,6 +314,7 @@ Format: `exit` | **Del Note** | `note-del INDEX NOTE_INDEX`
      e.g., `note-del 1 1` | ### 4.2 Task Management + | Action | Format, Examples | |--------------|--------------------------------------------------------------------------------------------| | **List** | `list-p` | @@ -324,6 +327,7 @@ Format: `exit` | **Find** | `find-t [n/NAME]…​ [t/TAG]…​`
      e.g., `find-p n/Meeting n/Training t/team1 t/team2`| ### 4.3 Strategic Planning + | Action | Format, Examples | |----------------|--------------------------------------------------------------------------------------------| | **Load Court** | (to be filled up by @abdul) | From de3cda48f9157621457160192249ed63da5c9d35 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 23 Mar 2022 03:56:28 +0800 Subject: [PATCH 157/455] Update UG header --- docs/UserGuide.md | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 2d574384858..4db4059465f 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -4,14 +4,12 @@ title: User Guide --- [![codecov](https://codecov.io/gh/AY2122S2-CS2103T-W14-2/tp/branch/master/graph/badge.svg?token=N3IGRH3TN0)](https://codecov.io/gh/AY2122S2-CS2103T-W14-2/tp) -#User Guide - * Table of Contents {:toc} -------------------------------------------------------------------------------------------------------------------- -## 1. Introduction +## **1. Introduction** Coach2K22 is a desktop app that helps busy sports coaches **organise their overwhelming lists of contacts and messy weekly schedules.** It also provides them with a **platform to visualise defensive and offensive plays** as the game unfolds ### 1.1 Quick Start @@ -47,7 +45,7 @@ Coach2K22 is a desktop app that helps busy sports coaches **organise their overw -------------------------------------------------------------------------------------------------------------------- -## 2. Features +## **2. Features**
      @@ -289,17 +287,22 @@ Format: `exit` -------------------------------------------------------------------------------------------------------------------- -## 3. FAQ +## **3. FAQ** **Q**: How do I transfer my data to another Computer?
      **A**: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous Coach2k22 home folder. -------------------------------------------------------------------------------------------------------------------- -## 4. Command summary +## **4. Command summary** ### 4.1 Contact Management +| Action | Format, Examples | +|--------------------|---------------------------------------------------------------| +|:information_source:| This icon indicates important information to be taken note of | +|:bulb: | This icon indicates useful tips for the users | + | Action | Format, Examples | |--------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------| | **List** | `list-p` | @@ -339,8 +342,14 @@ Format: `exit` -------------------------------------------------------------------------------------------------------------------- -## 5. Glossary +## **5. Glossary** | Term | Definition | -|----------------|----------------------------------------------------------------------------------| +|----------------|---------------------------------------------------------------| | **GUI** | The *Graphical User Interface (GUI)* allows program interaction through graphics | | **CLI** | The *Command Line Interface (CLI)* allows program interaction through commands | + + +| Term | Definition | +|--------------------|---------------------------------------------------------------| +|**GUI** | The *Graphical User Interface (GUI)* allows program interaction through graphics | +|**CLI** | The *Command Line Interface (CLI)* allows program interaction through commands | \ No newline at end of file From 10d19bdf6e0cff31130f320079057aa2feac1f34 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 23 Mar 2022 03:59:47 +0800 Subject: [PATCH 158/455] Fix remaining bugs --- docs/UserGuide.md | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 4db4059465f..b1e4bb9d7c0 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -298,11 +298,6 @@ Format: `exit` ### 4.1 Contact Management -| Action | Format, Examples | -|--------------------|---------------------------------------------------------------| -|:information_source:| This icon indicates important information to be taken note of | -|:bulb: | This icon indicates useful tips for the users | - | Action | Format, Examples | |--------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------| | **List** | `list-p` | @@ -343,13 +338,8 @@ Format: `exit` -------------------------------------------------------------------------------------------------------------------- ## **5. Glossary** -| Term | Definition | -|----------------|---------------------------------------------------------------| -| **GUI** | The *Graphical User Interface (GUI)* allows program interaction through graphics | -| **CLI** | The *Command Line Interface (CLI)* allows program interaction through commands | - -| Term | Definition | -|--------------------|---------------------------------------------------------------| -|**GUI** | The *Graphical User Interface (GUI)* allows program interaction through graphics | -|**CLI** | The *Command Line Interface (CLI)* allows program interaction through commands | \ No newline at end of file +| Term | Definition | +|--------------------|----------------------------------------------------------------------------------| +|**GUI** | The *Graphical User Interface (GUI)* allows program interaction through graphics | +|**CLI** | The *Command Line Interface (CLI)* allows program interaction through commands | \ No newline at end of file From 00b4200b6a8d3edbd055262b963a8b5da01260f1 Mon Sep 17 00:00:00 2001 From: AAlghrairy Date: Wed, 23 Mar 2022 04:13:07 +0800 Subject: [PATCH 159/455] Implement Image and LoadCourtCommand classes --- docs/images/courts/basketball.png | Bin 0 -> 16476 bytes .../logic/commands/LoadCourtCommand.java | 58 ++++++++++++++++++ .../java/seedu/address/model/image/Image.java | 56 +++++++++++++++++ .../java/seedu/address/ui/StrategyPanel.java | 11 ++++ src/main/resources/images/basketball.png | Bin 0 -> 118569 bytes src/main/resources/view/StrategyPanel.fxml | 6 +- 6 files changed, 129 insertions(+), 2 deletions(-) create mode 100644 docs/images/courts/basketball.png create mode 100644 src/main/java/seedu/address/logic/commands/LoadCourtCommand.java create mode 100644 src/main/java/seedu/address/model/image/Image.java create mode 100644 src/main/resources/images/basketball.png diff --git a/docs/images/courts/basketball.png b/docs/images/courts/basketball.png new file mode 100644 index 0000000000000000000000000000000000000000..f3f53bfbddcfd1fc9f5a5c41e0c40a2e2a717d89 GIT binary patch literal 16476 zcmbVz1yo$ivgqJWaEIV91ed{Gf;$8!xRYQ>Ah;yByZhko5D4z>?t>>GNCH9rKyuDK z_uc#cTK~^lOtZVHt4q47dUy5QFWhecu;gXrWB@QQ09YMZ9RT2d84w6SMnptHL_kJD zLP9}7Mn%WNKu1GEC&s~jf=5pBl!BaujEs_&m4T9)nTCvvkr&9!&cV&i{gi=Un2%G4 zm5ZAb1_cEL9Sxlb1A~Z@ij0c$|M_#@1;9pziH1#sgP{h%V#B~;!`$}(IH7DlegJ=e zU=ZNpU=jax!~ES1fPsUBM?kz^0-(b|CBuTlf`aCsru_O0Z4uB+hXAm?2(XKc1)BK} zW8l>Y)HUVg2;|{)vVElk0rC&%0Dy3ttH)l6<=H{zG=a=Aw!XcBzP(x_hs-k0+-xtY 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
      dhbij57`J(tAC~IWfb*@ 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 { private static double orgTranslateX; private static double orgTranslateY; + @FXML + private ImageView strategyImage; + @FXML + private AnchorPane strategyAnchorPane; @FXML private Circle player1; @FXML @@ -58,6 +65,10 @@ public void handle(MouseEvent t) { */ public StrategyPanel() { super(FXML); + strategyImage.setImage((new Image(this.getClass().getResourceAsStream(("/images/basketball.png"))))); + strategyImage.fitWidthProperty().bind(strategyAnchorPane.widthProperty()); + strategyImage.fitHeightProperty().bind(strategyAnchorPane.heightProperty()); + strategyImage.toBack(); initCircle(player1, 50, 100, 100, Color.RED); initCircle(player2, 50, 200, 200, Color.LIGHTBLUE); initCircle(player3, 30, 200, 200, Color.YELLOW); diff --git a/src/main/resources/images/basketball.png b/src/main/resources/images/basketball.png new file mode 100644 index 0000000000000000000000000000000000000000..682e21077e513ecc1a56f7bd2d6cb8e3b9a41c73 GIT binary patch literal 118569 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

      7b)*N;aA}Lp6f1D2vV-r_Gd|T3jbQW=TZdsg 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 - + - + + + From affccbab254c1e51963e1fc5d7f9f47b43547d92 Mon Sep 17 00:00:00 2001 From: simjunheng Date: Wed, 23 Mar 2022 07:42:35 +0800 Subject: [PATCH 160/455] Update Developer Guide --- docs/DeveloperGuide.md | 75 ++++++++++++++++------ docs/images/FindPersonSequenceDiagram.png | Bin 0 -> 50461 bytes 2 files changed, 54 insertions(+), 21 deletions(-) create mode 100644 docs/images/FindPersonSequenceDiagram.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index da73055c612..d9fb08920f7 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -7,26 +7,26 @@ title: Developer Guide -------------------------------------------------------------------------------------------------------------------- -## **Acknowledgements** +## **1. Acknowledgements** * {list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well} -------------------------------------------------------------------------------------------------------------------- -## **Setting up, getting started** +## **2. Setting up, getting started** Refer to the guide [_Setting up and getting started_](SettingUp.md). -------------------------------------------------------------------------------------------------------------------- -## **Design** +## **3. Design**
      :bulb: **Tip:** The `.puml` files used to create diagrams in this document can be found in the [diagrams](https://github.com/se-edu/addressbook-level3/tree/master/docs/diagrams/) folder. Refer to the [_PlantUML Tutorial_ at se-edu/guides](https://se-education.org/guides/tutorials/plantUml.html) to learn how to create and edit diagrams.
      -### Architecture +### 3.1 Architecture @@ -67,7 +67,7 @@ For example, the `Logic` component defines its API in the `Logic.java` interface The sections below give more details of each component. -### UI component +### 3.2 UI component The **API** of this component is specified in [`Ui.java`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/java/seedu/address/ui/Ui.java) @@ -84,7 +84,7 @@ The `UI` component, * keeps a reference to the `Logic` component, because the `UI` relies on the `Logic` to execute commands. * depends on some classes in the `Model` component, as it displays `Person` object residing in the `Model`. -### Logic component +### 3.3 Logic component **API** : [`Logic.java`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/java/seedu/address/logic/Logic.java) @@ -113,7 +113,7 @@ How the parsing works: * When called upon to parse a user command, the `AddressBookParser` class creates an `XYZCommandParser` (`XYZ` is a placeholder for the specific command name e.g., `AddCommandParser`) which uses the other classes shown above to parse the user command and create a `XYZCommand` object (e.g., `AddCommand`) which the `AddressBookParser` returns back as a `Command` object. * All `XYZCommandParser` classes (e.g., `AddCommandParser`, `DeleteCommandParser`, ...) inherit from the `Parser` interface so that they can be treated similarly where possible e.g, during testing. -### Model component +### 3.4 Model component **API** : [`Model.java`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/java/seedu/address/model/Model.java) @@ -133,7 +133,7 @@ The `Model` component,

      -### Storage component +### 3.5 Storage component **API** : [`Storage.java`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/java/seedu/address/storage/Storage.java) @@ -144,16 +144,48 @@ The `Storage` component, * inherits from both `AddressBookStorage` and `UserPrefStorage`, which means it can be treated as either one (if only the functionality of only one is needed). * depends on some classes in the `Model` component (because the `Storage` component's job is to save/retrieve objects that belong to the `Model`) -### Common classes +### 3.6 Common classes Classes used by multiple components are in the `seedu.addressbook.commons` package. -------------------------------------------------------------------------------------------------------------------- -## **Implementation** +## **4. Implementation** This section describes some noteworthy details on how certain features are implemented. +### 4.1 Find persons feature + +#### 4.1.1 Implementation + +This feature allows the user to display selected persons in the contact list. It is facilitated by `ModelManager` which +makes use of the method `#updateFilteredPersonList()` to find persons by name or tag. + +Given below is an example usage scenario of how the find person mechanism behaves at each step. + +Step 1: The user inputs `find n/Alex t/friends` to find selected persons. + +Step 2: This argument is passed into `LogicManager` which calls on `Coach2K22Parser#parseCommand()` to find a suitable parser class to process the user inputs. This initialises the `FindPersonCommandParser` where its method `#parse()` is called to process the user inputs. + +Step 3: It then returns a newly initialised `FindPersonCommand` back to the `LogicManager` for command execution. + +Step 4: During the command execution, the `ModelManager#updateFilteredPersonList()` is called which updates the GUI display with only selected persons shown in the contact list. The command results are then generated and shown to the user. + +The steps above are summarised using a sequence diagram as shown below. +![FindPersonSequenceDiagram](images/FindPersonSequenceDiagram.png) + +#### 4.1.2 Design consideration + +**Aspect: Should there be a separate find command for name and tag:** + +* **Alternative 1 (current choice):** A combined command for finding name and tag. + * Pros: Easy to implement. + * Cons: Users may have to remember more prefixes. + +* **Alternative 2:** A separate command for finding name and tag. + * Pros: Commands may be more intuitive to the users. + * Cons: Possible violation of the DRY principle. + ### \[Proposed\] Undo/redo feature #### Proposed Implementation @@ -241,7 +273,7 @@ _{Explain here how the data archiving feature will be implemented}_ -------------------------------------------------------------------------------------------------------------------- -## **Documentation, logging, testing, configuration, dev-ops** +## **5. Documentation, logging, testing, configuration, dev-ops** * [Documentation guide](Documentation.md) * [Testing guide](Testing.md) @@ -251,9 +283,9 @@ _{Explain here how the data archiving feature will be implemented}_ -------------------------------------------------------------------------------------------------------------------- -## **Appendix: Requirements** +## **6. Appendix: Requirements** -### Product scope +### 6.1 Product scope **Target user profile**: @@ -271,7 +303,7 @@ schedules, and provides them with a platform to visualise defensive and offensiv -### User stories +### 6.2 User stories Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unlikely to have) - `*` @@ -289,7 +321,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli -### Use cases +### 6.3 Use cases (For all use cases below, the **System** is `Coach2K22` and the **Actor** is the `user`, unless specified otherwise) @@ -486,7 +518,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli *{More to be added}* -### Non-Functional Requirements +### 6.4 Non-Functional Requirements 1. Should work on any _mainstream OS_ as long as it has Java `11` or above installed. 2. Should be able to hold up to 1000 persons without a noticeable sluggishness in performance for typical usage. @@ -497,18 +529,19 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli 7. A user with above average typing speed for regular English text (i.e. not code, not system admin commands) should be able to accomplish most of the tasks faster using commands than using the mouse. -### Glossary +### 6.5 Glossary * **Mainstream OS**: Windows, Linux, Unix, OS-X * **Private contact detail**: A contact detail that is not meant to be shared with others * **Time-clash**: An error where the user attempts to schedule an event at the same time as another * **Switchover**: The action of switching a player for another on a given field * **Liability-Potential** The statistics of a player's overall penalties and injuries across games +* **DRY Principle** The *Don't Repeat Yourself (DRY)* is a Software Engineering principle of reducing repetition in the code *{More to be added}* -------------------------------------------------------------------------------------------------------------------- -## **Appendix: Instructions for manual testing** +## **7. Appendix: Instructions for manual testing** Given below are instructions to test the app manually. @@ -517,7 +550,7 @@ testers are expected to do more *exploratory* testing.
      -### Launch and shutdown +### 7.1 Launch and shutdown 1. Initial launch @@ -534,7 +567,7 @@ testers are expected to do more *exploratory* testing. 1. _{ more test cases …​ }_ -### Deleting a person +### 7.2 Deleting a person 1. Deleting a person while all persons are being shown @@ -551,7 +584,7 @@ testers are expected to do more *exploratory* testing. 1. _{ more test cases …​ }_ -### Saving data +### 7.3 Saving data 1. Dealing with missing/corrupted data files diff --git a/docs/images/FindPersonSequenceDiagram.png b/docs/images/FindPersonSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..20aa0ef74db441cc8e13749dfbda3ac7b5d007ee GIT binary patch literal 50461 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 Date: Wed, 23 Mar 2022 07:56:43 +0800 Subject: [PATCH 161/455] Fix errors --- docs/AboutUs.md | 2 +- docs/UserGuide.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 5af3917f189..ebf3fc00ada 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -18,7 +18,7 @@ You can reach us at the email `seer[at]comp.nus.edu.sg` [[blog](https://x1a0teng.page/posts/about/)] * Role: Documentation and Integration -* Responsibilities: Ensure project documentation in good quality +* Responsibilities: Ensure project documentation in good quality and various parts of codes can be integrated to create a whole. ### Tan Juay Hee diff --git a/docs/UserGuide.md b/docs/UserGuide.md index b1e4bb9d7c0..96032142419 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -158,7 +158,7 @@ Examples: * The search is case-insensitive e.g. `hans` will match `Hans`. * The order of the keywords does not matter e.g. `n/hans n/bo` will return the same result as `n/bo n/hans`. * Only full words will be matched e.g. `Han` will not match `Hans`. -* Persons matching at least one keyword will be returned e.g. `n/Hans n/Bo` will return the persons `Hans Gruber` and `Bo Yang`. +* Persons matching at least one keyword will be returned e.g. `n/Hans n/Bo` will return the persons `Hans Gruber` and `Bo Yang`.

      rL6Scmpr+SWy1eJiyJ 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 -(002M$NklTb4jL(p@O}B!m&`X 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

    rL6Scmpr+SWy1eJiyJ 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 -(002M$NklTb4jL(p@O}B!m&`X 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