2626import seedu .address .model .meeting .MeetingBook ;
2727import seedu .address .model .meeting .ReadOnlyMeetingBook ;
2828import seedu .address .model .meeting .UniqueMeetingList ;
29+ import seedu .address .model .note .Note ;
30+ import seedu .address .model .note .NoteBook ;
31+ import seedu .address .model .note .ReadOnlyNoteBook ;
2932import seedu .address .model .person .AddressBook ;
3033import seedu .address .model .person .Person ;
3134import seedu .address .model .person .ReadOnlyAddressBook ;
@@ -56,6 +59,10 @@ public class ModelManager implements Model {
5659
5760 private final ReminderBook reminderBook ;
5861
62+ //=============== Note ===========================================================
63+ private final NoteBook noteBook ;
64+ private final FilteredList <Note > filteredNotes ;
65+
5966 //=============== Timetable ===========================================================
6067 private final TimetablePrefs timetablePrefs ;
6168
@@ -80,6 +87,10 @@ public ModelManager(ReadOnlyAddressBook addressBook, ReadOnlyUserPrefs userPrefs
8087 this .connection = new PersonMeetingConnection ();
8188 this .reminderBook = new ReminderBook (this .meetingBook );
8289
90+ //================== Timetable ==================================================================
91+ this .noteBook = new NoteBook ();
92+ this .filteredNotes = new FilteredList <>(this .noteBook .getNoteList ());
93+
8394 //================== Timetable ==================================================================
8495 //default initializes to current localdate
8596 timetablePrefs = new TimetablePrefs (LocalDate .now ());
@@ -89,7 +100,7 @@ public ModelManager(ReadOnlyAddressBook addressBook, ReadOnlyUserPrefs userPrefs
89100 * Initializes a ModelManager with the given addressBook, meetingBOok and userPrefs
90101 */
91102 public ModelManager (ReadOnlyAddressBook addressBook , ReadOnlyMeetingBook meetingBook ,
92- ReadOnlyUserPrefs userPrefs ) {
103+ ReadOnlyNoteBook noteBook , ReadOnlyUserPrefs userPrefs ) {
93104 super ();
94105 requireAllNonNull (addressBook , userPrefs );
95106
@@ -107,6 +118,10 @@ public ModelManager(ReadOnlyAddressBook addressBook, ReadOnlyMeetingBook meeting
107118 this .connection = new PersonMeetingConnection ();
108119 this .reminderBook = new ReminderBook (this .meetingBook );
109120
121+ //================== Note ==================================================================
122+ this .noteBook = new NoteBook (noteBook );
123+ this .filteredNotes = new FilteredList <>(this .noteBook .getNoteList ());
124+
110125 //================== Timetable ==================================================================
111126 //default initializes to current localdate
112127 timetablePrefs = new TimetablePrefs (LocalDate .now ());
@@ -116,7 +131,8 @@ public ModelManager(ReadOnlyAddressBook addressBook, ReadOnlyMeetingBook meeting
116131 * Initializes a ModelManager with the given addressBook, meetingBook, userPrefs and PersonMeetingConnection
117132 */
118133 public ModelManager (ReadOnlyAddressBook addressBook , ReadOnlyMeetingBook meetingBook ,
119- ReadOnlyUserPrefs userPrefs , PersonMeetingConnection connection ) {
134+ ReadOnlyNoteBook noteBook , ReadOnlyUserPrefs userPrefs ,
135+ PersonMeetingConnection connection ) {
120136 super ();
121137 requireAllNonNull (addressBook , userPrefs );
122138
@@ -133,6 +149,11 @@ public ModelManager(ReadOnlyAddressBook addressBook, ReadOnlyMeetingBook meeting
133149 // TODO: Modify the signature of ModelManager so that we can add connection inside it.
134150 this .connection = connection ;
135151 this .reminderBook = new ReminderBook (this .meetingBook );
152+
153+ //================== Note ==================================================================
154+ this .noteBook = new NoteBook (noteBook );
155+ this .filteredNotes = new FilteredList <>(this .noteBook .getNoteList ());
156+
136157 //================== Timetable ==================================================================
137158 //default initializes to current localdate
138159 timetablePrefs = new TimetablePrefs (LocalDate .now ());
@@ -141,7 +162,7 @@ public ModelManager(ReadOnlyAddressBook addressBook, ReadOnlyMeetingBook meeting
141162
142163
143164 public ModelManager () {
144- this (new AddressBook (), new MeetingBook (), new UserPrefs ());
165+ this (new AddressBook (), new MeetingBook (), new NoteBook (), new UserPrefs ());
145166 }
146167
147168 //=========== UserPrefs ==================================================================================
@@ -425,6 +446,57 @@ public void sortFilteredMeetingList(Comparator<Meeting> comparator) {
425446 sortedBeforeFilterMeetings .setComparator (comparator );
426447 }
427448
449+ // ======================= Note part of the note Model interface ============================ //
450+
451+ @ Override
452+ public void setNoteBook (ReadOnlyNoteBook noteBook ) {
453+ this .noteBook .resetData (noteBook );
454+ }
455+
456+ @ Override
457+ public ReadOnlyNoteBook getNoteBook () {
458+ return noteBook ;
459+ }
460+
461+ @ Override
462+ public boolean hasNote (Note note ) {
463+ requireNonNull (note );
464+ return noteBook .hasNote (note );
465+ }
466+
467+ @ Override
468+ public void deleteNote (Note target ) {
469+ noteBook .removeNote (target );
470+ }
471+
472+ @ Override
473+ public void addNote (Note note ) {
474+ noteBook .addNote (note );
475+ updateFilteredNoteList (PREDICATE_SHOW_ALL_NOTES );
476+ }
477+
478+ @ Override
479+ public void setNote (Note target , Note editedNote ) {
480+ requireAllNonNull (target , editedNote );
481+
482+ noteBook .setNote (target , editedNote );
483+ }
484+
485+ /**
486+ * Returns an unmodifiable view of the list of {@code Note} backed by the internal list of
487+ * {@code versionedNoteBook}
488+ */
489+ @ Override
490+ public ObservableList <Note > getFilteredNoteList () {
491+ return filteredNotes ;
492+ }
493+
494+ @ Override
495+ public void updateFilteredNoteList (Predicate <Note > predicate ) {
496+ requireNonNull (predicate );
497+ filteredNotes .setPredicate (predicate );
498+ }
499+
428500 //================= Get timetable prefs methods ================================================
429501
430502 @ Override
@@ -457,7 +529,8 @@ public boolean equals(Object obj) {
457529 && userPrefs .equals (other .userPrefs )
458530 && filteredPersons .equals (other .filteredPersons )
459531 && meetingBook .equals (other .meetingBook )
460- && filteredMeetings .equals (other .filteredMeetings );
532+ && filteredMeetings .equals (other .filteredMeetings )
533+ && noteBook .equals (other .noteBook );
461534 }
462535
463536}
0 commit comments