Skip to content

Commit 7cd4dda

Browse files
committed
- Implementation of calendar into flashcard component to increment flashcard review count for calendar goal events
1 parent 8ab034c commit 7cd4dda

File tree

9 files changed

+36
-20
lines changed

9 files changed

+36
-20
lines changed

data/events/event.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
hello | 2023-12-20T12:30:30 | 2023-12-20T12:30:30
22
EC3333 | 2023-12-20T12:30:30 | 2023-12-20T12:30:40
3-
Deadline | 2023-12-20T12:30:30 | 10 | 0
4-
More Deadline | 2023-12-20T12:30:30 | 20 | 0
3+
Deadline | 2023-12-20T12:30:30 | 10 | 1
4+
More Deadline | 2023-12-20T12:30:30 | 20 | 1

src/main/java/seedu/duke/Duke.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
package seedu.duke;
44

5+
import seedu.duke.calendar.Calendar;
56
import seedu.duke.calendar.CalendarManager;
67
import seedu.duke.flashcard.FlashcardComponent;
78

@@ -16,8 +17,9 @@ public static void main(String[] args) {
1617
}
1718

1819
private void run() {
19-
FlashcardComponent fc = new FlashcardComponent();
20-
CalendarManager cm = new CalendarManager(new ArrayList<>());
20+
Calendar calendar = new Calendar();
21+
FlashcardComponent fc = new FlashcardComponent(calendar);
22+
CalendarManager cm = new CalendarManager(calendar, new ArrayList<>());
2123

2224
Scanner scanner = new Scanner(System.in);
2325
String input;

src/main/java/seedu/duke/calendar/Calendar.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,10 @@ public class Calendar {
99
*/
1010
EventList eventList;
1111

12-
public Calendar(EventList eventList) {
12+
public Calendar() {
13+
}
14+
15+
public void setEventList(EventList eventList) {
1316
this.eventList = eventList;
1417
}
1518

src/main/java/seedu/duke/calendar/CalendarManager.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public class CalendarManager {
2525
* @param events is used to initialize the EventList.
2626
*/
2727

28-
public CalendarManager(ArrayList<Event> events) {
28+
public CalendarManager(Calendar calendar, ArrayList<Event> events) {
2929

3030
EventDirectory eventdirectory = new EventDirectory();
3131
eventdirectory.listEventFiles();
@@ -39,7 +39,8 @@ public CalendarManager(ArrayList<Event> events) {
3939
eventList = new EventList(events);
4040
}
4141

42-
calendar = new Calendar(eventList);
42+
calendar.setEventList(eventList);
43+
this.calendar = calendar;
4344
calendarUi = new CalendarUi(eventList);
4445
calendarCommandParser = new CalendarCommandParser();
4546
scanner = new Scanner(System.in);

src/main/java/seedu/duke/flashcard/FlashcardCommandParser.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
package seedu.duke.flashcard;
44

5+
import seedu.duke.calendar.Calendar;
56
import seedu.duke.flashcard.command.FlashcardCommand;
67
import seedu.duke.flashcard.command.CreateFlashcardCommand;
78
import seedu.duke.flashcard.command.ListFlashcardsCommand;
@@ -21,7 +22,7 @@ public class FlashcardCommandParser {
2122
* @param input The text inputted by the user.
2223
* @return The FlashcardCommand corresponding to input
2324
*/
24-
public FlashcardCommand parseInput(String input) {
25+
public FlashcardCommand parseInput(String input, Calendar calendar) {
2526
assert input != null : "input is null";
2627

2728
input = input.toLowerCase().strip();
@@ -31,7 +32,7 @@ public FlashcardCommand parseInput(String input) {
3132
} else if (input.equals("list flashcards")) {
3233
return new ListFlashcardsCommand();
3334
} else if (input.startsWith("review flashcards")) {
34-
return new StartReviewCommand(input);
35+
return new StartReviewCommand(input, calendar);
3536
} else if (input.equals("delete all flashcards")) {
3637
return new DeleteAllFlashcardsCommand();
3738
} else if (input.startsWith("delete flashcard")) {

src/main/java/seedu/duke/flashcard/FlashcardComponent.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
package seedu.duke.flashcard;
44

5+
import seedu.duke.calendar.Calendar;
56
import seedu.duke.flashcard.command.FlashcardCommand;
67
import seedu.duke.flashcard.command.UnknownCommand;
78
import seedu.duke.storage.FlashcardStorage;
@@ -18,9 +19,10 @@ public class FlashcardComponent {
1819
private FlashcardList flashcardList;
1920
private FlashcardUi ui;
2021
private FlashcardStorage storage;
22+
private Calendar calendar;
2123

2224
//@@author junhyeong0411
23-
public FlashcardComponent() {
25+
public FlashcardComponent(Calendar calendar) {
2426
parser = new FlashcardCommandParser();
2527

2628
FlashcardDirectory flashcarddirectory = new FlashcardDirectory();
@@ -36,6 +38,7 @@ public FlashcardComponent() {
3638

3739
Flashcard.calculateAndUpdateGlobalMaxId(flashcardList);
3840
ui = new FlashcardUi(flashcardList);
41+
this.calendar = calendar;
3942
}
4043

4144
public FlashcardStorage getStorage(){
@@ -63,7 +66,7 @@ public FlashcardUi getUi(){
6366
* @return Whether FlashcardComponent is responsible for handling the input.
6467
*/
6568
public boolean isResponsible(String input) {
66-
FlashcardCommand command = parser.parseInput(input);
69+
FlashcardCommand command = parser.parseInput(input, calendar);
6770

6871
if (command instanceof UnknownCommand) {
6972
return false;
@@ -78,7 +81,7 @@ public boolean isResponsible(String input) {
7881
* @param input The text inputted by the user.
7982
*/
8083
public void processInput(String input) {
81-
FlashcardCommand command = parser.parseInput(input);
84+
FlashcardCommand command = parser.parseInput(input, calendar);
8285
assert !(command instanceof UnknownCommand) : "Command cannot be " +
8386
"unknown";
8487

src/main/java/seedu/duke/flashcard/command/StartReviewCommand.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
package seedu.duke.flashcard.command;
44

5+
import seedu.duke.calendar.Calendar;
56
import seedu.duke.flashcard.FlashcardList;
67
import seedu.duke.flashcard.review.RandomReviewMode;
78
import seedu.duke.flashcard.review.ReviewMode;
@@ -14,9 +15,11 @@
1415
public class StartReviewCommand extends DualFlashcardCommand {
1516
private final ArrayList<String> choices = new ArrayList<>(Arrays.asList(
1617
"a", "b"));
18+
private Calendar calendar;
1719

18-
public StartReviewCommand(String input) {
20+
public StartReviewCommand(String input, Calendar calendar) {
1921
this.input = input;
22+
this.calendar = calendar;
2023
beginnerCommandLength = 2;
2124
expertCommandLength = 3;
2225
syntaxString = "review flashcards REVIEW_MODE";
@@ -70,7 +73,7 @@ private void startReview(Scanner scanner,
7073
String choice) {
7174
ReviewMode reviewMode = createReviewMode(choice.toLowerCase(), flashcardList);
7275

73-
reviewMode.startReviewSession(scanner);
76+
reviewMode.startReviewSession(scanner, calendar);
7477

7578
}
7679

src/main/java/seedu/duke/flashcard/review/ReviewMode.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
package seedu.duke.flashcard.review;
44

5+
import seedu.duke.calendar.Calendar;
56
import seedu.duke.flashcard.Flashcard;
67
import seedu.duke.flashcard.FlashcardList;
78

@@ -18,7 +19,7 @@ public ReviewMode(FlashcardList flashcardList) {
1819

1920
public abstract String getReviewModeName();
2021

21-
public void startReviewSession(Scanner scanner) {
22+
public void startReviewSession(Scanner scanner, Calendar calendar) {
2223
System.out.println(" You have started a review session in "
2324
+ getReviewModeName() + System.lineSeparator());
2425

@@ -45,6 +46,7 @@ public void startReviewSession(Scanner scanner) {
4546
if (getReviewModeName().equals("spaced repetition mode")) {
4647
letUserRateReviewDifficulty(scanner, flashcardToReview);
4748
}
49+
calendar.incrementFlashcardCount();
4850
}
4951

5052
System.out.println(" Success! You have ended this review session.");

src/test/java/seedu/duke/DukeTest.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import static org.junit.jupiter.api.Assertions.assertFalse;
55

66
import org.junit.jupiter.api.Test;
7+
import seedu.duke.calendar.Calendar;
78
import seedu.duke.calendar.CalendarManager;
89
import seedu.duke.storage.EventStorage;
910
import seedu.duke.flashcard.FlashcardComponent;
@@ -25,7 +26,7 @@ public void sampleTest() {
2526

2627
@Test
2728
public void testFlashcardComponent_isResponsible_notResponsible() {
28-
FlashcardComponent flashcardComponent = new FlashcardComponent();
29+
FlashcardComponent flashcardComponent = new FlashcardComponent(new Calendar());
2930

3031
assertFalse(flashcardComponent.isResponsible("dfdfdfdfdf"));
3132
assertFalse(flashcardComponent.isResponsible("help me"));
@@ -34,7 +35,7 @@ public void testFlashcardComponent_isResponsible_notResponsible() {
3435

3536
@Test
3637
public void testFlashcardComponent_isResponsible_responsible() {
37-
FlashcardComponent flashcardComponent = new FlashcardComponent();
38+
FlashcardComponent flashcardComponent = new FlashcardComponent(new Calendar());
3839

3940
assertTrue(flashcardComponent.isResponsible("create flashcard"));
4041
assertTrue(flashcardComponent.isResponsible("create flashcard "));
@@ -43,14 +44,14 @@ public void testFlashcardComponent_isResponsible_responsible() {
4344

4445
@Test
4546
public void testFlashcardStorage_isAvailable(){
46-
FlashcardComponent flashcardComponent = new FlashcardComponent();
47+
FlashcardComponent flashcardComponent = new FlashcardComponent(new Calendar());
4748
FlashcardStorage storage = flashcardComponent.getStorage();
4849
assertTrue(storage.isStorageAvailable());
4950
}
5051

5152
@Test
5253
public void testEventStorage_isAvailable(){
53-
CalendarManager calendarManager = new CalendarManager(new ArrayList<>());
54+
CalendarManager calendarManager = new CalendarManager(new Calendar(), new ArrayList<>());
5455
EventStorage storage = calendarManager.getStorage();
5556
assertTrue(storage.isStorageAvailable());
5657
}
@@ -65,7 +66,7 @@ public void testFlashcardStorage_isSavingCorrectly(){
6566

6667
Scanner scanner = new Scanner(System.in);
6768

68-
FlashcardComponent flashcardComponent = new FlashcardComponent();
69+
FlashcardComponent flashcardComponent = new FlashcardComponent(new Calendar());
6970
FlashcardStorage storage = flashcardComponent.getStorage();
7071

7172
FlashcardUi ui = flashcardComponent.getUi();

0 commit comments

Comments
 (0)