Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[CS2103T-W13-2] ClientConnect #34

Open
wants to merge 246 commits into
base: master
Choose a base branch
from
Open
Changes from 4 commits
Commits
Show all changes
246 commits
Select commit Hold shift + click to select a range
8abedec
Migrate docs to MarkBind
Sep 11, 2023
2960c20
Bump MarkBind version
Feb 9, 2024
339cd23
Add a Home button in the top NavBar
Feb 9, 2024
b7068b1
Reduce font size for printing
Feb 9, 2024
7f920ec
docs.yml: Bump MarkBind and Java versions
Aug 8, 2024
2edca94
Update README.md
TobyCyan Feb 18, 2025
ae0e61c
Merge branch 'switch-docs-to-markbind' of https://github.com/TobyCyan/tp
TobyCyan Feb 19, 2025
7f2b696
Update site configs
TobyCyan Feb 19, 2025
cb65439
Merge pull request #1 from TobyCyan/master
TobyCyan Feb 19, 2025
e24f8fa
Update index.md header title
TobyCyan Feb 20, 2025
ed872ea
Add remark command
TobyCyan Feb 20, 2025
7e6d7b0
Fix test cases bugs
TobyCyan Feb 20, 2025
be0a118
Merge branch 'tutorial-adding-command'
TobyCyan Feb 20, 2025
1f11148
Revert "Merge branch 'tutorial-adding-command'"
TobyCyan Feb 20, 2025
8cdcc01
Add my photo
dingZvel Mar 5, 2025
fdc266c
Add my photo
TobyCyan Mar 5, 2025
16c54d7
add a photo
gandwarf Mar 5, 2025
ea763de
Create sherrinfordhr.png
SherrinfordHR Mar 5, 2025
4ee9f93
Rename yongjunxi.png to tobycyan.png
TobyCyan Mar 5, 2025
b62b6b2
Add a photo
gandwarf Mar 5, 2025
7a308e8
Merge pull request #11 from SherrinfordHR/Add_photo
SherrinfordHR Mar 5, 2025
883c41e
Merge pull request #9 from dingZvel/add-photo
TobyCyan Mar 5, 2025
d7b70b6
Merge pull request #8 from TobyCyan/add-photo
SherrinfordHR Mar 5, 2025
1fb9914
Merge pull request #10 from gandwarf/branch-photo
TobyCyan Mar 5, 2025
baf784b
Merge branch 'master' of https://github.com/TobyCyan/tp
TobyCyan Mar 5, 2025
a2ad60d
Update AboutUs
gandwarf Mar 5, 2025
e35d9a6
Update AboutUs.md with Ding Zhe's info
dingZvel Mar 5, 2025
2f1bfc7
Add my details to AboutUs.md
TobyCyan Mar 5, 2025
11f7d65
Update AboutUs
SherrinfordHR Mar 5, 2025
bf7d67d
Add Hung's photo
nlqhung130403 Mar 6, 2025
dc5df17
Merge pull request #22 from nlqhung130403/branch-add-photo
TobyCyan Mar 6, 2025
3bac813
Update AboutUs with Hung's information
nlqhung130403 Mar 6, 2025
7ce0025
Merge pull request #19 from SherrinfordHR/AboutUs
SherrinfordHR Mar 8, 2025
4f5a836
Merge branch 'master' into branch-AboutUs
nlqhung130403 Mar 8, 2025
2a38f55
Update developer guide user stories
TobyCyan Mar 8, 2025
163a441
Merge pull request #24 from nlqhung130403/branch-AboutUs
nlqhung130403 Mar 8, 2025
dcfff79
Merge branch 'update-AboutUs' of https://github.com/TobyCyan/tp
TobyCyan Mar 8, 2025
dcab0e2
Revert "Merge branch 'update-AboutUs' of https://github.com/TobyCyan/tp"
TobyCyan Mar 8, 2025
7df18e3
Merge branch 'master' of https://github.com/TobyCyan/tp into update-A…
TobyCyan Mar 8, 2025
2fb6162
Resolve merge conflicts
TobyCyan Mar 8, 2025
a33c6a9
Merge branch 'master' of https://github.com/TobyCyan/tp
TobyCyan Mar 8, 2025
27b78cf
Merge pull request #17 from TobyCyan/update-AboutUs
TobyCyan Mar 8, 2025
6f0a0a6
Merge branch 'master' of https://github.com/TobyCyan/tp
TobyCyan Mar 8, 2025
72f2613
Merge branch 'master' into About-Ding-Zhe
dingZvel Mar 8, 2025
5187590
Merge pull request #18 from dingZvel/About-Ding-Zhe
dingZvel Mar 8, 2025
5b7d977
Merge branch 'master' into branch-AboutUs
gandwarf Mar 8, 2025
c2aada3
Merge pull request #16 from gandwarf/branch-AboutUs
gandwarf Mar 8, 2025
add6e5f
Update trivial glossary
dingZvel Mar 9, 2025
6cd18be
Update developer guide glossary
dingZvel Mar 9, 2025
b7cc249
Update DeveloperGuide.md
SherrinfordHR Mar 9, 2025
3c1c363
Add more NFRs
nlqhung130403 Mar 9, 2025
24ea693
Update a mock ui
gandwarf Mar 10, 2025
e08b2ff
Update developer guide glossary
dingZvel Mar 10, 2025
10b3c6a
Merge pull request #29 from SherrinfordHR/use_case
SherrinfordHR Mar 10, 2025
f1e6c51
Merge pull request #25 from TobyCyan/update-dg-userstories
TobyCyan Mar 10, 2025
b7a12f2
Merge pull request #27 from dingZvel/glossary
TobyCyan Mar 10, 2025
ac29227
Merge pull request #32 from nlqhung130403/branch-NFR
TobyCyan Mar 10, 2025
4d12b3b
Merge pull request #33 from gandwarf/branch-mock-ui
gandwarf Mar 10, 2025
8f48d66
Merge branch 'AY2425S2-CS2103T-W13-2:master' into master
TobyCyan Mar 10, 2025
875bf93
Merge branch 'master' of https://github.com/TobyCyan/tp
TobyCyan Mar 10, 2025
ca66373
Update readme to remove traces of AB3
TobyCyan Mar 10, 2025
7f8ce4d
Bold the main sentence of readme
TobyCyan Mar 10, 2025
a4c0c12
Merge pull request #38 from TobyCyan/update-sitewide-settings
dingZvel Mar 10, 2025
a899f49
Refactor Person to Client
dingZvel Mar 11, 2025
4fc800e
Revert "Refactor Person to Client"
dingZvel Mar 11, 2025
0d3b4ec
Refactor Person to Client
dingZvel Mar 11, 2025
b2c098d
Fix sytle of import statement
dingZvel Mar 11, 2025
9553abe
Fix sytle of import statement
dingZvel Mar 11, 2025
422b70f
Fix sytle of import statement
dingZvel Mar 11, 2025
cc0a9db
Merge pull request #43 from dingZvel/change-Person-to-Client
TobyCyan Mar 12, 2025
928c17e
Merge branch 'master' of https://github.com/TobyCyan/tp
TobyCyan Mar 12, 2025
8b7a1a3
Modify find command to find by category and product preference
TobyCyan Mar 12, 2025
7d1f866
Change add command and tests
gandwarf Mar 12, 2025
7131247
break line EOF
gandwarf Mar 12, 2025
814b8ab
Merge pull request #45 from gandwarf/branch-Add
gandwarf Mar 12, 2025
31a102c
Add unit tests for the new predicate classes and stubs for testing
TobyCyan Mar 12, 2025
164788e
Move client predicates into their own package
TobyCyan Mar 12, 2025
0acc5a2
Replace Person to Client further
dingZvel Mar 12, 2025
a6315be
Revert "Replace Person to Client further"
dingZvel Mar 12, 2025
5c99995
Merge branch 'master' into change-Person-to-Client
dingZvel Mar 12, 2025
265a3cc
Further replace Person to Client
dingZvel Mar 12, 2025
b04c7ab
Fix import order
dingZvel Mar 12, 2025
aeb2c25
Merge pull request #47 from dingZvel/change-Person-to-Client
nlqhung130403 Mar 12, 2025
fd53c54
Add new productPrefence and frequency to Client
nlqhung130403 Mar 12, 2025
e21165d
Add JavaDoc for new classes
nlqhung130403 Mar 12, 2025
820ce22
Merge pull request #49 from nlqhung130403/add-frequency-productPrefer…
TobyCyan Mar 13, 2025
08d2ed4
Merge branch 'AY2425S2-CS2103T-W13-2:master' into master
TobyCyan Mar 13, 2025
3a51e16
Merge branch 'master' of https://github.com/TobyCyan/tp
TobyCyan Mar 13, 2025
87ae9b4
Update DeveloperGuide.md
SherrinfordHR Mar 13, 2025
13d4172
Update DeveloperGuide.md
SherrinfordHR Mar 13, 2025
e8259cc
Resolve the following conflicts
TobyCyan Mar 13, 2025
8257e33
Fix minor errors
TobyCyan Mar 13, 2025
486cf0a
Update product preference predicate and unit tests
TobyCyan Mar 13, 2025
dcef591
Update find command test and typical persons address book
TobyCyan Mar 13, 2025
0c465be
Fix null exception with find and update test address books
TobyCyan Mar 13, 2025
730f3a7
Update client card UI to include the new attributes
TobyCyan Mar 13, 2025
f98242b
Move predicate test files into their own package
TobyCyan Mar 13, 2025
90bd78b
Add new line at end of file
TobyCyan Mar 13, 2025
5d756da
Remove import all
TobyCyan Mar 13, 2025
2cffdd8
Fix check style errors
TobyCyan Mar 13, 2025
a1482ab
Change find command predicate to ClientSatisfyAllPredicate
TobyCyan Mar 13, 2025
51f9904
Update the find feature
SherrinfordHR Mar 14, 2025
94282c4
Update find feature
SherrinfordHR Mar 14, 2025
5c5f5d7
Update Ui
SherrinfordHR Mar 14, 2025
4e6ac82
Merge pull request #55 from SherrinfordHR/Update_User_Guide
dingZvel Mar 14, 2025
f6b7d94
Merge pull request #50 from SherrinfordHR/Developer_Guide_update
dingZvel Mar 14, 2025
7e08b91
Merge pull request #53 from TobyCyan/update-find-by-tag-and-product-p…
dingZvel Mar 14, 2025
67ac24c
Merge branch 'master' of https://github.com/TobyCyan/tp
TobyCyan Mar 14, 2025
1fb9f1a
Add template for comparator and change UI to accept a sorted list
TobyCyan Mar 18, 2025
4705f66
Implement a rank command
TobyCyan Mar 18, 2025
0c4490f
Add integration and unit tests for rank command
TobyCyan Mar 18, 2025
c24c655
Update_ExpandCommand_v1
SherrinfordHR Mar 18, 2025
98bfd81
Update ClientDetailPanel.fxml
SherrinfordHR Mar 18, 2025
ba46c43
Make Client class immutable
nlqhung130403 Mar 18, 2025
af3e9a7
Modify files to follow coding standard
nlqhung130403 Mar 18, 2025
9e0d273
Add tests for rank command parser
TobyCyan Mar 18, 2025
160f141
Add unit tests for frequency comparator
TobyCyan Mar 18, 2025
c9b781e
Remove unused imports
TobyCyan Mar 18, 2025
ee0b363
Rename frequency comparator to total purchase comparator
TobyCyan Mar 18, 2025
9f07ffd
Update ClientDetailPanel.fxml
SherrinfordHR Mar 19, 2025
7e993b8
Update DarkTheme.css
SherrinfordHR Mar 19, 2025
9ef53e9
Replace all occurrence of person to client
TobyCyan Mar 19, 2025
fef1359
Add unit tests for name comparator
TobyCyan Mar 19, 2025
c3e1035
Rename test files person occurrence to client
TobyCyan Mar 19, 2025
13732c1
Fix check style errors
TobyCyan Mar 19, 2025
999b97e
Modify totalPurchase's data type to int
nlqhung130403 Mar 19, 2025
f1514cc
Add unit tests for Frequency and ProductPreference
nlqhung130403 Mar 19, 2025
33cfbbe
Modify files to follow CI
nlqhung130403 Mar 19, 2025
eb25eb1
Modify files to follow coding standard
nlqhung130403 Mar 19, 2025
8ed3608
Modify file to follow check style
nlqhung130403 Mar 19, 2025
7f08975
Merge pull request #58 from nlqhung130403/branch-Client-immutable
nlqhung130403 Mar 19, 2025
b39eabb
Merge branch 'AY2425S2-CS2103T-W13-2:master' into master
TobyCyan Mar 19, 2025
1c2bae7
Merge branch 'master' of https://github.com/TobyCyan/tp
TobyCyan Mar 19, 2025
45f5ef0
Merge branch 'master' into rank-command
TobyCyan Mar 19, 2025
92fb612
Resolve merge errors
TobyCyan Mar 19, 2025
8c93a8d
Update tests
TobyCyan Mar 19, 2025
916c5d4
Change pref to optional and reset add command format
gandwarf Mar 19, 2025
4cdd63d
Merge pull request #1 from gandwarf/branch-OptionalAdd
gandwarf Mar 19, 2025
315d097
Merge pull request #65 from gandwarf/branch-OptionalAdd
gandwarf Mar 20, 2025
2600256
Merge branch 'AY2425S2-CS2103T-W13-2:master' into master
TobyCyan Mar 20, 2025
da494a8
Merge branch 'master' of https://github.com/TobyCyan/tp
TobyCyan Mar 20, 2025
ff8afde
Merge branch 'master' into rank-command
TobyCyan Mar 20, 2025
5690a6a
Fix optional errors when reading empty product preference
TobyCyan Mar 20, 2025
6ec8e2b
Merge pull request #59 from TobyCyan/rank-command
TobyCyan Mar 20, 2025
891936d
Merge branch 'AY2425S2-CS2103T-W13-2:master' into master
gandwarf Mar 20, 2025
6c98402
Merge branch 'master' of https://github.com/TobyCyan/tp
TobyCyan Mar 20, 2025
4e95c3e
Merge branch 'master' into Update_Expand_Command
SherrinfordHR Mar 20, 2025
b2a03aa
Fixing compilation errors
SherrinfordHR Mar 20, 2025
e3ba94b
Update methods with newly updated methods
SherrinfordHR Mar 20, 2025
f258fd1
Update ClientDetailPanel.java
SherrinfordHR Mar 20, 2025
aa0d78c
CheckStyle
SherrinfordHR Mar 20, 2025
3124bb2
CheckStyle Update
SherrinfordHR Mar 20, 2025
fe6fcaa
Update ClientDetailPanel.java
SherrinfordHR Mar 20, 2025
bde6746
Add total purchase to UI
dingZvel Mar 20, 2025
edf785c
Update ClientDetailPanel.java
SherrinfordHR Mar 20, 2025
7271299
Merge pull request #66 from dingZvel/add-total-purchase-ui
dingZvel Mar 20, 2025
294dc85
Merge branch 'master' into Update_Expand_Command
SherrinfordHR Mar 20, 2025
706bcba
Merge pull request #60 from SherrinfordHR/Update_Expand_Command
SherrinfordHR Mar 20, 2025
c5ec486
Merge branch 'AY2425S2-CS2103T-W13-2:master' into master
TobyCyan Mar 20, 2025
e38b276
Merge branch 'master' of https://github.com/TobyCyan/tp
TobyCyan Mar 20, 2025
c3e3f69
Modify Edit Command to accept ProductPreference
nlqhung130403 Mar 20, 2025
36bee12
Merge branch 'master' into branch-Edit-Command
nlqhung130403 Mar 20, 2025
ae0dc37
Edit User Guide
nlqhung130403 Mar 20, 2025
200dde0
Fix EditCommand toString() and anyNonNull() bugs
nlqhung130403 Mar 20, 2025
0b14f2b
Merge pull request #67 from nlqhung130403/branch-Edit-Command
TobyCyan Mar 20, 2025
399aa21
Merge branch 'AY2425S2-CS2103T-W13-2:master' into master
TobyCyan Mar 20, 2025
1cbb4ca
Merge branch 'master' of https://github.com/TobyCyan/tp
TobyCyan Mar 20, 2025
b3b024e
Update rank command example
TobyCyan Mar 20, 2025
8c84bdf
Merge pull request #68 from TobyCyan/fix-rank-command-example
TobyCyan Mar 20, 2025
9f1b013
Merge branch 'master' of https://github.com/TobyCyan/tp
TobyCyan Mar 20, 2025
fa8a098
Update UserGuide.md
SherrinfordHR Mar 21, 2025
bee95d9
Update user guide on find and rank command
TobyCyan Mar 21, 2025
b62335a
Update User Guide with Ui
SherrinfordHR Mar 21, 2025
b9f1abe
Merge branch 'AY2425S2-CS2103T-W13-2:master' into master
gandwarf Mar 21, 2025
e44aabb
fix the bug that when pref is null, the ui still shows
gandwarf Mar 21, 2025
c004499
fix the bug that when pref is null, the ui still shows
gandwarf Mar 21, 2025
0a85109
Merge pull request #71 from gandwarf/branch-Loadbug
TobyCyan Mar 21, 2025
a204a59
Update rank and find command in user guide for more user-centricity
TobyCyan Mar 21, 2025
9c7990d
make pref nullable in data
gandwarf Mar 21, 2025
a8b29d7
.
gandwarf Mar 21, 2025
090896c
Merge pull request #72 from gandwarf/branch-Loadbug
gandwarf Mar 21, 2025
ab78e56
Merge branch 'AY2425S2-CS2103T-W13-2:master' into master
TobyCyan Mar 21, 2025
dcaaef1
Merge branch 'master' of https://github.com/TobyCyan/tp
TobyCyan Mar 21, 2025
be60fd1
Fix a bug with JSON adapted client
TobyCyan Mar 21, 2025
f88b3d7
Update UserGuide.md
SherrinfordHR Mar 22, 2025
87363dd
Update UserGuide.md
SherrinfordHR Mar 22, 2025
39083eb
Place find, rank and help command formats in boxes
TobyCyan Mar 22, 2025
b0b1318
Update add command error message
TobyCyan Mar 22, 2025
5102965
Merge pull request #74 from TobyCyan/fix-jsonadaptedclient
TobyCyan Mar 22, 2025
52ad9f8
Merge branch 'master' of https://github.com/TobyCyan/tp
TobyCyan Mar 22, 2025
cd38a1e
Update UserGuide.md
SherrinfordHR Mar 22, 2025
56d5bd9
Merge pull request #69 from SherrinfordHR/User_Guide_ExpandCommand
TobyCyan Mar 22, 2025
0c1b509
Merge pull request #73 from TobyCyan/update-ug-v1.3
TobyCyan Mar 22, 2025
24d5480
Merge branch 'AY2425S2-CS2103T-W13-2:master' into master
TobyCyan Mar 22, 2025
7a58815
Merge branch 'master' of https://github.com/TobyCyan/tp
TobyCyan Mar 22, 2025
228f7e5
Update UserGuide.md
SherrinfordHR Mar 22, 2025
77cc28f
Update UserGuide.md
gandwarf Mar 23, 2025
6cec668
Update UserGuide.md
gandwarf Mar 23, 2025
34ff0d0
Update UserGuide.md
gandwarf Mar 23, 2025
4981d99
Add files via upload
gandwarf Mar 23, 2025
2104528
Update Command Summary Table
nlqhung130403 Mar 24, 2025
1d5b653
Merge pull request #75 from SherrinfordHR/Minor_Update_UserGuide
TobyCyan Mar 24, 2025
714e4da
Update command summary table
nlqhung130403 Mar 24, 2025
f4bb171
Add more examples for Find command
nlqhung130403 Mar 24, 2025
98eae18
Merge pull request #76 from nlqhung130403/Update-UG
TobyCyan Mar 24, 2025
b21f61f
Implement Description and Update some tests
nlqhung130403 Mar 24, 2025
0462d1f
Add Javadoc for Description
nlqhung130403 Mar 24, 2025
3462752
Change files to satisfy check style
nlqhung130403 Mar 24, 2025
abc95ec
Add describe command class and briefly edit the edit command class
TobyCyan Mar 25, 2025
002a7af
Add Priority field and update Add and Edit
nlqhung130403 Mar 25, 2025
16c065d
Merge pull request #78 from nlqhung130403/branch-Description
TobyCyan Mar 25, 2025
c6ed6a2
Merge branch 'AY2425S2-CS2103T-W13-2:master' into master
TobyCyan Mar 25, 2025
8239df2
Merge branch 'master' of https://github.com/TobyCyan/tp
TobyCyan Mar 25, 2025
00116ec
Update_Ui
SherrinfordHR Mar 26, 2025
1eaaeb6
Merge branch 'master' into describe-command
TobyCyan Mar 26, 2025
d8c1550
Update description class
TobyCyan Mar 26, 2025
3a7d7c4
Clear changes
TobyCyan Mar 26, 2025
1826f22
Revert merge
TobyCyan Mar 26, 2025
fab1411
Revert "Revert merge"
TobyCyan Mar 26, 2025
31b4e00
Re-add description
TobyCyan Mar 26, 2025
9ee7abc
Update edit client descriptor
TobyCyan Mar 26, 2025
4fd8f53
Add new tests and valid description constant to test utility
TobyCyan Mar 26, 2025
4134802
Fix style
TobyCyan Mar 26, 2025
10e8608
Fix tests
TobyCyan Mar 26, 2025
0f76b02
Update Storage and UI to include priority
nlqhung130403 Mar 26, 2025
1c5a9d3
create expand and expandParser test, update storage
gandwarf Mar 27, 2025
e67963b
Add DescribeCommandParser and related tests
dingZvel Mar 27, 2025
fd71d01
Merge pull request #82 from SherrinfordHR/Update_Expand
SherrinfordHR Mar 27, 2025
01e619e
Merge pull request #83 from TobyCyan/describe-command
SherrinfordHR Mar 27, 2025
c307b80
Fix style
dingZvel Mar 27, 2025
d06fba2
adjust to jsonAdaptClient and some test cases
gandwarf Mar 27, 2025
13eb231
Merge pull request #89 from gandwarf/branch-StorageAndTest
gandwarf Mar 27, 2025
80a6649
Implement Filter Command
nlqhung130403 Mar 27, 2025
b98f642
Fix minor issues
dingZvel Mar 27, 2025
c2a2a22
Merge branch 'master' into desc-parser
dingZvel Mar 27, 2025
c84d8fa
Fix merge conflict
dingZvel Mar 27, 2025
10872b1
Fix style
nlqhung130403 Mar 27, 2025
c912299
Fix import order
dingZvel Mar 27, 2025
65f6016
Merge pull request #91 from dingZvel/desc-parser
dingZvel Mar 27, 2025
8a24ca8
Resolve conflicts
nlqhung130403 Mar 27, 2025
37346c3
Resolve conflicts
nlqhung130403 Mar 27, 2025
2b41f77
Fix styles
nlqhung130403 Mar 27, 2025
367720b
Fix tests
nlqhung130403 Mar 27, 2025
4fa5741
Merge pull request #92 from nlqhung130403/branch-Priority
TobyCyan Mar 27, 2025
d93be41
Fix bug not showing description
nlqhung130403 Mar 27, 2025
af4451f
Merge pull request #94 from nlqhung130403/branch-Priority
nlqhung130403 Mar 27, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions docs/UserGuide.md
Original file line number Diff line number Diff line change
@@ -297,10 +297,12 @@ _Details coming soon ..._

Action | Format, Examples
-----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------
**Add** | `add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]…​` <br> e.g., `add n/James Ho p/22224444 e/jamesho@example.com a/123, Clementi Rd, 1234665 t/friend t/colleague`
**Add** | `add name/NAME phone/PHONE_NUMBER email/EMAIL address/ADDRESS [tag/TAG] [pref/PRRODUCT_PREFERENCE] [freq/PRODUCT_FREQUENCY]…​` <br> e.g., `add name/James Ho phone/22224444 email/jamesho@example.com address/123, Clementi Rd, 1234665 tag/friend tag/colleague pref/Shampoo freq/10`
**Clear** | `clear`
**Delete** | `delete INDEX`<br> e.g., `delete 3`
**Edit** | `edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG]…​`<br> e.g.,`edit 2 n/James Lee e/jameslee@example.com`
**Find** | `find KEYWORD [MORE_KEYWORDS]`<br> e.g., `find James Jake`
**Edit** | `edit INDEX [name/NAME] [phone/PHONE_NUMBER] [email/EMAIL] [address/ADDRESS] [tag/TAG] [pref/PRODUCT_PREFERENCE] [freq/PRODUCT_FREQUENCY]…​`<br> e.g.,`edit 2 name/James Lee email/jameslee@example.com`
**Find** | `find KEYWORD [MORE_KEYWORDS]`<br> e.g., `find James Jake`, `find friends`, `find shampoo`
**List** | `list`
**Help** | `help`
**Rank** | `rank KEYWORD` <br> e.g., `rank total` `rank name`
**Expand** | `expand INDEX` <br> e.g., `expand 1`

Unchanged files with check annotations Beta

}
public boolean isShowExpandedView() {
return showExpandedView;

Check warning on line 73 in src/main/java/seedu/address/logic/commands/CommandResult.java

Codecov / codecov/patch

src/main/java/seedu/address/logic/commands/CommandResult.java#L73

Added line #L73 was not covered by tests
}
public Client getExpandedClient() {
return expandedClient;

Check warning on line 77 in src/main/java/seedu/address/logic/commands/CommandResult.java

Codecov / codecov/patch

src/main/java/seedu/address/logic/commands/CommandResult.java#L77

Added line #L77 was not covered by tests
}
@Override
private final Index targetIndex;
public ExpandCommand(Index targetIndex) {
this.targetIndex = targetIndex;
}

Check warning on line 29 in src/main/java/seedu/address/logic/commands/ExpandCommand.java

Codecov / codecov/patch

src/main/java/seedu/address/logic/commands/ExpandCommand.java#L27-L29

Added lines #L27 - L29 were not covered by tests
@Override
public CommandResult execute(Model model) throws CommandException {
requireNonNull(model);
List<Client> filteredList = model.getSortedFilteredClientList();

Check warning on line 34 in src/main/java/seedu/address/logic/commands/ExpandCommand.java

Codecov / codecov/patch

src/main/java/seedu/address/logic/commands/ExpandCommand.java#L33-L34

Added lines #L33 - L34 were not covered by tests
if (targetIndex.getZeroBased() >= filteredList.size()) {
throw new CommandException(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX);

Check warning on line 37 in src/main/java/seedu/address/logic/commands/ExpandCommand.java

Codecov / codecov/patch

src/main/java/seedu/address/logic/commands/ExpandCommand.java#L37

Added line #L37 was not covered by tests
}
Client clientToExpand = filteredList.get(targetIndex.getZeroBased());
return new CommandResult(
String.format(MESSAGE_EXPAND_CLIENT_SUCCESS, clientToExpand.getName()),

Check warning on line 42 in src/main/java/seedu/address/logic/commands/ExpandCommand.java

Codecov / codecov/patch

src/main/java/seedu/address/logic/commands/ExpandCommand.java#L40-L42

Added lines #L40 - L42 were not covered by tests
false,
false,
true,
return new HelpCommand();
case RankCommand.COMMAND_WORD:
return new RankCommandParser().parse(arguments);

Check warning on line 83 in src/main/java/seedu/address/logic/parser/AddressBookParser.java

Codecov / codecov/patch

src/main/java/seedu/address/logic/parser/AddressBookParser.java#L83

Added line #L83 was not covered by tests
case ExpandCommand.COMMAND_WORD:
return new ExpandCommandParser().parse(arguments);

Check warning on line 86 in src/main/java/seedu/address/logic/parser/AddressBookParser.java

Codecov / codecov/patch

src/main/java/seedu/address/logic/parser/AddressBookParser.java#L86

Added line #L86 was not covered by tests
default:
logger.finer("This user input caused a ParseException: " + userInput);
}
Optional<Frequency> frequency = ParserUtil.parseFrequency(argMultimap.getValue(PREFIX_FREQUENCY));
if (argMultimap.getValue(PREFIX_PREFERENCE).isPresent()) {
editClientDescriptor.setProductPreference(ParserUtil.parseProductPreference(
argMultimap.getValue(PREFIX_PREFERENCE), frequency));

Check warning on line 68 in src/main/java/seedu/address/logic/parser/EditCommandParser.java

Codecov / codecov/patch

src/main/java/seedu/address/logic/parser/EditCommandParser.java#L67-L68

Added lines #L67 - L68 were not covered by tests
}
if (argMultimap.getValue(PREFIX_FREQUENCY).isPresent()
&& !argMultimap.getValue(PREFIX_PREFERENCE).isPresent()) {
throw new ParseException(EditCommand.MESSAGE_FREQUENCY_NOT_ALLOWED);

Check warning on line 72 in src/main/java/seedu/address/logic/parser/EditCommandParser.java

Codecov / codecov/patch

src/main/java/seedu/address/logic/parser/EditCommandParser.java#L72

Added line #L72 was not covered by tests
}
parseTagsForEdit(argMultimap.getAllValues(PREFIX_TAG)).ifPresent(editClientDescriptor::setTags);
/**
* Parse the input and creates an ExpandCommand
*/
public class ExpandCommandParser implements Parser<ExpandCommand> {

Check warning on line 10 in src/main/java/seedu/address/logic/parser/ExpandCommandParser.java

Codecov / codecov/patch

src/main/java/seedu/address/logic/parser/ExpandCommandParser.java#L10

Added line #L10 was not covered by tests
/**
* Parses the given {@code String} of arguments in the context of the DeleteCommand
* and returns a ExpandCommand object for execution.
* @throws ParseException if the user input does not conform the expected format
*/
public ExpandCommand parse(String args) throws ParseException {
Index index = ParserUtil.parseIndex(args);
return new ExpandCommand(index);

Check warning on line 18 in src/main/java/seedu/address/logic/parser/ExpandCommandParser.java

Codecov / codecov/patch

src/main/java/seedu/address/logic/parser/ExpandCommandParser.java#L17-L18

Added lines #L17 - L18 were not covered by tests
}
}
@Override
public int hashCode() {
return clients.hashCode();

Check warning on line 128 in src/main/java/seedu/address/model/AddressBook.java

Codecov / codecov/patch

src/main/java/seedu/address/model/AddressBook.java#L128

Added line #L128 was not covered by tests
}
}
@Override
public String toString() {
return Integer.toString(frequency);

Check warning on line 31 in src/main/java/seedu/address/model/client/Frequency.java

Codecov / codecov/patch

src/main/java/seedu/address/model/client/Frequency.java#L31

Added line #L31 was not covered by tests
}
@Override
@Override
public Iterator<Client> iterator() {
return internalList.iterator();

Check warning on line 109 in src/main/java/seedu/address/model/client/UniqueClientList.java

Codecov / codecov/patch

src/main/java/seedu/address/model/client/UniqueClientList.java#L109

Added line #L109 was not covered by tests
}
@Override
public boolean equals(Object other) {
if (other == this) {
return true;

Check warning on line 115 in src/main/java/seedu/address/model/client/UniqueClientList.java

Codecov / codecov/patch

src/main/java/seedu/address/model/client/UniqueClientList.java#L115

Added line #L115 was not covered by tests
}
// instanceof handles nulls
if (!(other instanceof UniqueClientList)) {
return false;

Check warning on line 120 in src/main/java/seedu/address/model/client/UniqueClientList.java

Codecov / codecov/patch

src/main/java/seedu/address/model/client/UniqueClientList.java#L120

Added line #L120 was not covered by tests
}
UniqueClientList otherUniqueClientList = (UniqueClientList) other;
@Override
public int hashCode() {
return internalList.hashCode();

Check warning on line 129 in src/main/java/seedu/address/model/client/UniqueClientList.java

Codecov / codecov/patch

src/main/java/seedu/address/model/client/UniqueClientList.java#L129

Added line #L129 was not covered by tests
}
@Override
*/
public class SampleDataUtil {
public static Client[] getSampleClients() {
return new Client[] {

Check warning on line 24 in src/main/java/seedu/address/model/util/SampleDataUtil.java

Codecov / codecov/patch

src/main/java/seedu/address/model/util/SampleDataUtil.java#L24

Added line #L24 was not covered by tests
new Client(new Name("Alex Yeoh"), new Phone("87438807"), new Email("alexyeoh@example.com"),
new Address("Blk 30 Geylang Street 29, #06-40"),
getTagSet("friends"), Optional.of(new ProductPreference("tea bag", new Frequency(2)))),

Check warning on line 27 in src/main/java/seedu/address/model/util/SampleDataUtil.java

Codecov / codecov/patch

src/main/java/seedu/address/model/util/SampleDataUtil.java#L27

Added line #L27 was not covered by tests
new Client(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"), Optional.of(new ProductPreference("coffee", new Frequency(1)))),

Check warning on line 30 in src/main/java/seedu/address/model/util/SampleDataUtil.java

Codecov / codecov/patch

src/main/java/seedu/address/model/util/SampleDataUtil.java#L30

Added line #L30 was not covered by tests
new Client(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"), Optional.of(new ProductPreference("iphone", new Frequency(3)))),

Check warning on line 33 in src/main/java/seedu/address/model/util/SampleDataUtil.java

Codecov / codecov/patch

src/main/java/seedu/address/model/util/SampleDataUtil.java#L33

Added line #L33 was not covered by tests
new Client(new Name("David Li"), new Phone("91031282"), new Email("lidavid@example.com"),
new Address("Blk 436 Serangoon Gardens Street 26, #16-43"),
getTagSet("family"), Optional.of(new ProductPreference("tea bag", new Frequency(0)))),

Check warning on line 36 in src/main/java/seedu/address/model/util/SampleDataUtil.java

Codecov / codecov/patch

src/main/java/seedu/address/model/util/SampleDataUtil.java#L36

Added line #L36 was not covered by tests
new Client(new Name("Irfan Ibrahim"), new Phone("92492021"), new Email("irfan@example.com"),
new Address("Blk 47 Tampines Street 20, #17-35"),
getTagSet("classmates"), Optional.of(new ProductPreference("cherry", new Frequency(1)))),

Check warning on line 39 in src/main/java/seedu/address/model/util/SampleDataUtil.java

Codecov / codecov/patch

src/main/java/seedu/address/model/util/SampleDataUtil.java#L39

Added line #L39 was not covered by tests
new Client(new Name("Roy Balakrishnan"), new Phone("92624417"), new Email("royb@example.com"),
new Address("Blk 45 Aljunied Street 85, #11-31"),
getTagSet("colleagues"), Optional.of(new ProductPreference("mango", new Frequency(4))))

Check warning on line 42 in src/main/java/seedu/address/model/util/SampleDataUtil.java

Codecov / codecov/patch

src/main/java/seedu/address/model/util/SampleDataUtil.java#L42

Added line #L42 was not covered by tests
};
}
public static ReadOnlyAddressBook getSampleAddressBook() {
AddressBook sampleAb = new AddressBook();
for (Client sampleClient : getSampleClients()) {
sampleAb.addClient(sampleClient);

Check warning on line 49 in src/main/java/seedu/address/model/util/SampleDataUtil.java

Codecov / codecov/patch

src/main/java/seedu/address/model/util/SampleDataUtil.java#L49

Added line #L49 was not covered by tests
}
return sampleAb;
}
}
if (!Frequency.isValidFrequency(frequency)) {
throw new IllegalValueException(Frequency.MESSAGE_CONSTRAINTS);

Check warning on line 131 in src/main/java/seedu/address/storage/JsonAdaptedClient.java

Codecov / codecov/patch

src/main/java/seedu/address/storage/JsonAdaptedClient.java#L131

Added line #L131 was not covered by tests
}
final Frequency productFrequency = new Frequency(frequency);
* Creates a {@code ClientCode} with the given {@code Client} and index to display.
*/
public ClientCard(Client client, int displayedIndex) {
super(FXML);
this.client = client;
id.setText(displayedIndex + ". ");
name.setText(client.getName().fullName);
phone.setText(client.getPhone().value);
address.setText(client.getAddress().value);
email.setText(client.getEmail().value);
client.getTags().stream()
.sorted(Comparator.comparing(tag -> tag.tagName))
.forEach(tag -> tags.getChildren().add(new Label(tag.tagName)));
totalPurchase.getChildren().add(new Label("total purchase: " + String.valueOf(client.getTotalPurchase())));

Check warning on line 62 in src/main/java/seedu/address/ui/ClientCard.java

Codecov / codecov/patch

src/main/java/seedu/address/ui/ClientCard.java#L52-L62

Added lines #L52 - L62 were not covered by tests
if (client.getProductPreference().isPresent()) {
productPreferenceWithFrequency.getChildren()
.add(new Label(client.getProductPreference()
.map(ProductPreference::toString).orElse("") + ": "
+ client.getProductPreference().get().frequency));

Check warning on line 67 in src/main/java/seedu/address/ui/ClientCard.java

Codecov / codecov/patch

src/main/java/seedu/address/ui/ClientCard.java#L64-L67

Added lines #L64 - L67 were not covered by tests
}
}

Check warning on line 69 in src/main/java/seedu/address/ui/ClientCard.java

Codecov / codecov/patch

src/main/java/seedu/address/ui/ClientCard.java#L69

Added line #L69 was not covered by tests
}
* @param client
*/
public ClientDetailPanel(Client client) {
super(FXML);
name.setText(client.getName().fullName);
phone.setText("Phone: " + client.getPhone().value);
email.setText("Email: " + client.getEmail().value);
address.setText("Address: " + client.getAddress().value);

Check warning on line 32 in src/main/java/seedu/address/ui/ClientDetailPanel.java

Codecov / codecov/patch

src/main/java/seedu/address/ui/ClientDetailPanel.java#L28-L32

Added lines #L28 - L32 were not covered by tests
if (client.getProductPreference().isPresent()) {
productPreference.setText("Preferred Products: " + client.getProductPreference()
.map(ProductPreference::toString).orElse(""));
frequency.setText("Purchase Frequency: " + client.getProductPreference().get().getFrequency());

Check warning on line 36 in src/main/java/seedu/address/ui/ClientDetailPanel.java

Codecov / codecov/patch

src/main/java/seedu/address/ui/ClientDetailPanel.java#L34-L36

Added lines #L34 - L36 were not covered by tests
}
}

Check warning on line 38 in src/main/java/seedu/address/ui/ClientDetailPanel.java

Codecov / codecov/patch

src/main/java/seedu/address/ui/ClientDetailPanel.java#L38

Added line #L38 was not covered by tests
}
*/
public class ClientListPanel extends UiPart<Region> {
private static final String FXML = "ClientListPanel.fxml";
private final Logger logger = LogsCenter.getLogger(ClientListPanel.class);

Check warning on line 18 in src/main/java/seedu/address/ui/ClientListPanel.java

Codecov / codecov/patch

src/main/java/seedu/address/ui/ClientListPanel.java#L18

Added line #L18 was not covered by tests
@FXML
private ListView<Client> clientListView;
* Creates a {@code ClientListPanel} with the given {@code ObservableList}.
*/
public ClientListPanel(ObservableList<Client> clientList) {
super(FXML);
clientListView.setItems(clientList);
clientListView.setCellFactory(listView -> new ClientListViewCell());
}

Check warning on line 30 in src/main/java/seedu/address/ui/ClientListPanel.java

Codecov / codecov/patch

src/main/java/seedu/address/ui/ClientListPanel.java#L27-L30

Added lines #L27 - L30 were not covered by tests
/**
* Custom {@code ListCell} that displays the graphics of a {@code Client} using a {@code ClientCard}.
*/
class ClientListViewCell extends ListCell<Client> {

Check warning on line 35 in src/main/java/seedu/address/ui/ClientListPanel.java

Codecov / codecov/patch

src/main/java/seedu/address/ui/ClientListPanel.java#L35

Added line #L35 was not covered by tests
@Override
protected void updateItem(Client client, boolean empty) {
super.updateItem(client, empty);

Check warning on line 38 in src/main/java/seedu/address/ui/ClientListPanel.java

Codecov / codecov/patch

src/main/java/seedu/address/ui/ClientListPanel.java#L38

Added line #L38 was not covered by tests
if (empty || client == null) {
setGraphic(null);
setText(null);

Check warning on line 42 in src/main/java/seedu/address/ui/ClientListPanel.java

Codecov / codecov/patch

src/main/java/seedu/address/ui/ClientListPanel.java#L41-L42

Added lines #L41 - L42 were not covered by tests
} else {
setGraphic(new ClientCard(client, getIndex() + 1).getRoot());

Check warning on line 44 in src/main/java/seedu/address/ui/ClientListPanel.java

Codecov / codecov/patch

src/main/java/seedu/address/ui/ClientListPanel.java#L44

Added line #L44 was not covered by tests
}
}

Check warning on line 46 in src/main/java/seedu/address/ui/ClientListPanel.java

Codecov / codecov/patch

src/main/java/seedu/address/ui/ClientListPanel.java#L46

Added line #L46 was not covered by tests
}
}
* Fills up all the placeholders of this window.
*/
void fillInnerParts() {
showListView();

Check warning on line 118 in src/main/java/seedu/address/ui/MainWindow.java

Codecov / codecov/patch

src/main/java/seedu/address/ui/MainWindow.java#L118

Added line #L118 was not covered by tests
resultDisplay = new ResultDisplay();
resultDisplayPlaceholder.getChildren().add(resultDisplay.getRoot());
*/
private void handleCommandResult(CommandResult commandResult) {
if (commandResult.isShowExpandedView()) {
showExpandedView(commandResult.getExpandedClient());

Check warning on line 176 in src/main/java/seedu/address/ui/MainWindow.java

Codecov / codecov/patch

src/main/java/seedu/address/ui/MainWindow.java#L176

Added line #L176 was not covered by tests
} else {
showListView();

Check warning on line 178 in src/main/java/seedu/address/ui/MainWindow.java

Codecov / codecov/patch

src/main/java/seedu/address/ui/MainWindow.java#L178

Added line #L178 was not covered by tests
}
}

Check warning on line 180 in src/main/java/seedu/address/ui/MainWindow.java

Codecov / codecov/patch

src/main/java/seedu/address/ui/MainWindow.java#L180

Added line #L180 was not covered by tests
private void showExpandedView(Client client) {
viewContainer.getChildren().clear();
clientDetailPanel = new ClientDetailPanel(client);
viewContainer.getChildren().add(clientDetailPanel.getRoot());
}

Check warning on line 186 in src/main/java/seedu/address/ui/MainWindow.java

Codecov / codecov/patch

src/main/java/seedu/address/ui/MainWindow.java#L183-L186

Added lines #L183 - L186 were not covered by tests
private void showListView() {
viewContainer.getChildren().clear();
clientListPanel = new ClientListPanel(logic.getSortedFilteredClientList());
viewContainer.getChildren().add(clientListPanel.getRoot());
}

Check warning on line 192 in src/main/java/seedu/address/ui/MainWindow.java

Codecov / codecov/patch

src/main/java/seedu/address/ui/MainWindow.java#L189-L192

Added lines #L189 - L192 were not covered by tests
public ClientListPanel getClientListPanel() {
return clientListPanel;

Check warning on line 195 in src/main/java/seedu/address/ui/MainWindow.java

Codecov / codecov/patch

src/main/java/seedu/address/ui/MainWindow.java#L195

Added line #L195 was not covered by tests
}
/**
handleExit();
}
handleCommandResult(commandResult);

Check warning on line 217 in src/main/java/seedu/address/ui/MainWindow.java

Codecov / codecov/patch

src/main/java/seedu/address/ui/MainWindow.java#L217

Added line #L217 was not covered by tests
return commandResult;
} catch (CommandException | ParseException e) {