Skip to content

Commit b28958f

Browse files
committed
-Integrated goal event adding capabilities to existing system
1 parent 28dcb76 commit b28958f

File tree

9 files changed

+45
-26
lines changed

9 files changed

+45
-26
lines changed

data/events/event.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +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

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

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,17 @@ public class Calendar {
77
* The class is here for integrating Flashcard goals with the Calendar.
88
* Any other features related to the Calendar can be added here in the future.
99
*/
10-
1110
EventList eventList;
11+
12+
public Calendar(EventList eventList) {
13+
this.eventList = eventList;
14+
}
15+
16+
public void incrementFlashcardCount() {
17+
for(Event event : eventList.getEvents()) {
18+
if (event.getClass() == Goal.class) {
19+
((Goal) event).flashcardCompleted();
20+
}
21+
}
22+
}
1223
}

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

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

33
package seedu.duke.calendar;
44

5-
import seedu.duke.calendar.command.AddEventCommand;
6-
import seedu.duke.calendar.command.DeleteAllEventsCommand;
7-
import seedu.duke.calendar.command.DeleteEventCommand;
8-
import seedu.duke.calendar.command.EventCommand;
9-
import seedu.duke.calendar.command.UnknownCommand;
10-
import seedu.duke.calendar.command.FindEventCommand;
11-
import seedu.duke.calendar.command.ListCalendarEventsCommand;
5+
import seedu.duke.calendar.command.*;
126

137
import seedu.duke.calendar.Exceptions.AddEventException;
148
import seedu.duke.calendar.Exceptions.DeleteEventException;
@@ -73,6 +67,8 @@ public EventCommand parseInput(String input) {
7367
manageException(input);
7468
if (input.startsWith("add event")) {
7569
return new AddEventCommand();
70+
} else if (input.startsWith("add goal event")) {
71+
return new AddGoalEventCommand();
7672
} else if (input.startsWith("delete event")) {
7773
return new DeleteEventCommand();
7874
} else if (input.startsWith("list events")) {

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public CalendarManager(ArrayList<Event> events) {
3838
eventList = new EventList(events);
3939
}
4040

41-
calendar = new Calendar();
41+
calendar = new Calendar(eventList);
4242
calendarUi = new CalendarUi(eventList);
4343
calendarCommandParser = new CalendarCommandParser();
4444
scanner = new Scanner(System.in);
@@ -72,7 +72,7 @@ public boolean isResponsible(String input) {
7272
public void processInput(String input) {
7373
startCalendar(input);
7474

75-
storage.saveEvents(eventList.getEvent());
75+
storage.saveEvents(eventList.getEvents());
7676
}
7777

7878
/**

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ public void setName(String name) {
2727
}
2828

2929
// getFrom is used for getting the start time of an Event.
30-
public LocalDateTime getFrom() {
31-
return from;
30+
public String getFrom() {
31+
return from.toString();
3232
}
3333

3434
// setFrom is used for setting the start time of an Event.
@@ -37,8 +37,8 @@ public void setFrom(LocalDateTime from) {
3737
}
3838

3939
// getFrom is used for getting the end time of an Event.
40-
public LocalDateTime getTo() {
41-
return to;
40+
public String getTo() {
41+
return to.toString();
4242
}
4343

4444
// setFrom is used for setting the end time of an Event.

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public void addEvent(Event event) {
1818
}
1919

2020
// getEvent is used to get an event from the EventList.
21-
public ArrayList<Event> getEvent() {
21+
public ArrayList<Event> getEvents() {
2222
return eventList;
2323
}
2424

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

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,18 @@ public boolean isStorageAvailable(){
3939
*/
4040
private Event loadEvent(String[] tokens){
4141

42-
assert tokens.length == 3: "Token length should be 3";
43-
42+
assert tokens.length == 3 || tokens.length == 4: "Token length should be 3 or 4";
43+
if(tokens.length == 3) {
44+
String name = tokens[0].trim();
45+
LocalDateTime from = LocalDateTime.parse(tokens[1].trim());
46+
LocalDateTime to = LocalDateTime.parse(tokens[2].trim());
47+
return new Event(name, from, to);
48+
}
4449
String name = tokens[0].trim();
45-
LocalDateTime from = LocalDateTime.parse(tokens[1].trim());
46-
LocalDateTime to = LocalDateTime.parse(tokens[2].trim());
47-
48-
return new Event(name, from, to);
50+
LocalDateTime by = LocalDateTime.parse(tokens[1].trim());
51+
int goal = Integer.parseInt(tokens[2].trim());
52+
int completed = Integer.parseInt(tokens[3].trim());
53+
return new Goal(name, by, goal, completed);
4954
}
5055

5156
/**
@@ -83,8 +88,13 @@ public void saveEvents(ArrayList<Event> eventList) {
8388
FileWriter fw = new FileWriter(path);
8489

8590
for (Event event : eventList) {
86-
fw.write(String.format("%s | %s | %s \r\n",
87-
event.getName(), event.getFrom(), event.getTo()));
91+
if (event.getClass() == Goal.class) {
92+
fw.write(String.format("%s | %s | %s | %s \r\n",
93+
event.getName(), event.getTo(), ((Goal) event).getGoal(), ((Goal) event).getCompleted()));
94+
} else {
95+
fw.write(String.format("%s | %s | %s \r\n",
96+
event.getName(), event.getFrom(), event.getTo()));
97+
}
8898
}
8999
fw.close();
90100
} catch (IOException e){

src/main/java/seedu/duke/calendar/command/AddEventCommand.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
//@@ kherlenbayasgalan
1+
//@@author kherlenbayasgalan
22

33
package seedu.duke.calendar.command;
44

@@ -58,7 +58,7 @@ private LocalDateTime parseDateTimeInput(Scanner scanner, String prompt) {
5858
String userInput = scanner.nextLine();
5959
try {
6060
// checks if the acceptable format is given by the user to prevent program crash
61-
return LocalDateTime.parse(userInput, DateTimeFormatter.ofPattern("yyyy-MM-ddTHH:mm:ss"));
61+
return LocalDateTime.parse(userInput);
6262
} catch (DateTimeParseException e) {
6363
System.out.println(" Invalid date and time format. Please try again.");
6464
}

src/main/java/seedu/duke/calendar/command/ListCalendarEventsCommand.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public void execute(Scanner scanner, EventList eventList) {
2525
printLine();
2626

2727
int count = 0;
28-
for (Event event : eventList.getEvent()) {
28+
for (Event event : eventList.getEvents()) {
2929
System.out.println((++count) + ". " + event);
3030
printLine();
3131
}

0 commit comments

Comments
 (0)