Skip to content

Commit

Permalink
Level-10
Browse files Browse the repository at this point in the history
Created a new GUI for Duke.
Some minor bug fixes.
  • Loading branch information
Statspadders committed Feb 5, 2023
1 parent 23582be commit d6f3ddd
Show file tree
Hide file tree
Showing 19 changed files with 362 additions and 134 deletions.
21 changes: 21 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ plugins {
id 'java'
id 'application'
id 'com.github.johnrengelman.shadow' version '5.1.0'
id 'org.openjfx.javafxplugin' version '0.0.13'
}

repositories {
Expand All @@ -11,6 +12,21 @@ repositories {
dependencies {
testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.5.0'
testRuntimeOnly group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.5.0'

String javaFxVersion = '11'

implementation group: 'org.openjfx', name: 'javafx-base', version: javaFxVersion, classifier: 'win'
implementation group: 'org.openjfx', name: 'javafx-base', version: javaFxVersion, classifier: 'mac'
implementation group: 'org.openjfx', name: 'javafx-base', version: javaFxVersion, classifier: 'linux'
implementation group: 'org.openjfx', name: 'javafx-controls', version: javaFxVersion, classifier: 'win'
implementation group: 'org.openjfx', name: 'javafx-controls', version: javaFxVersion, classifier: 'mac'
implementation group: 'org.openjfx', name: 'javafx-controls', version: javaFxVersion, classifier: 'linux'
implementation group: 'org.openjfx', name: 'javafx-fxml', version: javaFxVersion, classifier: 'win'
implementation group: 'org.openjfx', name: 'javafx-fxml', version: javaFxVersion, classifier: 'mac'
implementation group: 'org.openjfx', name: 'javafx-fxml', version: javaFxVersion, classifier: 'linux'
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'
}

test {
Expand Down Expand Up @@ -39,3 +55,8 @@ shadowJar {
run{
standardInput = System.in
}

javafx {
version = "19"
modules = [ 'javafx.controls' , 'javafx.fxml']
}
1 change: 1 addition & 0 deletions data/duke.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@ todo,false,te
todo,false,abcde
deadline,false,aoawjdwaodj,2018-12-02T18:00
event,false,oiajwodjoiawjdoajawoidjaowd,2018-12-02T18:00,2018-12-02T19:00
todo,false,amdmdmadmad1
39 changes: 8 additions & 31 deletions src/main/java/Duke.java
Original file line number Diff line number Diff line change
@@ -1,42 +1,19 @@
import duke.*;
import duke.command.Command;
import duke.Storage;
import duke.gui.Ui;
import duke.TaskList;
import duke.Parser;
import duke.gui.Start;

import java.io.*;
import javafx.application.Application;

public class Duke {
public class Duke{
private Ui ui;
private Storage storage;
private TaskList tasks;
private Parser parser;

public Duke(String filepath) {
ui = new Ui();
storage = new Storage(filepath);
parser = new Parser();
try {
tasks = new TaskList(storage.load());
}catch (IOException e) {
ui.showLoadingError();
tasks = new TaskList();
}
}
public void run() {
boolean isExit = false;
while (!isExit) {
try {
String fullCommand = ui.readCommand();
Command c = parser.parse(fullCommand,ui);
c.execute(tasks,ui,storage);
isExit = c.isExit();
} catch (IOException | NullPointerException e) {

}
}
}
public static void main(String[] args){
new Duke("data/duke.txt").run();
Application.launch(Start.class);
}

//Error Checking Methods

}
5 changes: 3 additions & 2 deletions src/main/java/duke/Parser.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package duke;

import duke.command.*;
import duke.gui.Ui;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
Expand Down Expand Up @@ -131,8 +132,8 @@ public String getToDo() {
String[] arr = fullCommand.split(" ", 2);
try {
return arr[1];
} catch(ArrayIndexOutOfBoundsException e) {
ui.customMessage("☹ OOPS!!! The description of a todo cannot be empty.");
} catch(ArrayIndexOutOfBoundsException e) {

}
return null;
}
Expand Down
9 changes: 5 additions & 4 deletions src/main/java/duke/Storage.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
package duke;

import duke.Deadline;
import duke.Event;

import java.io.*;
import java.io.File;
import java.io.FileWriter;
import java.io.FileReader;
import java.io.IOException;
import java.io.BufferedReader;
import java.time.LocalDateTime;
import java.util.ArrayList;

Expand Down
69 changes: 0 additions & 69 deletions src/main/java/duke/Ui.java

This file was deleted.

9 changes: 5 additions & 4 deletions src/main/java/duke/command/AddCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import duke.Storage;
import duke.TaskList;
import duke.Ui;
import duke.gui.Ui;
import duke.Task;

/**
Expand All @@ -23,12 +23,13 @@ public AddCommand(Task t) {
* Adds ToDo,Deadline or Event tasks to the tasklist and storage.
*/
@Override
public void execute(TaskList tasks, Ui ui, Storage storage) {
public String execute(TaskList tasks, Ui ui, Storage storage) {
tasks.add(this.task);
ui.customMessage("Added : " + task.getValue());
ui.showNumberOfListings(tasks.size());
storage.write(this.task);
String message = "Added : " + task.getValue() + "\n"
+ ui.showNumberOfListings(tasks.size());

return message;
}
}

4 changes: 2 additions & 2 deletions src/main/java/duke/command/Command.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@

import duke.Storage;
import duke.TaskList;
import duke.Ui;
import duke.gui.Ui;


/**
* Abstract class
*/
public abstract class Command {

public abstract void execute(TaskList tasks, Ui ui, Storage storage);
public abstract String execute(TaskList tasks, Ui ui, Storage storage);

public boolean isExit() {
return false;
Expand Down
6 changes: 3 additions & 3 deletions src/main/java/duke/command/CommandNotFound.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import duke.Storage;
import duke.TaskList;
import duke.Ui;
import duke.gui.Ui;

/**
* CommandNotFound - when user enters a Command and Duke
Expand All @@ -21,7 +21,7 @@ public CommandNotFound() {
* Display the UI
*/
@Override
public void execute(TaskList tasks, Ui ui, Storage storage) {
ui.showCommandNotFound();
public String execute(TaskList tasks, Ui ui, Storage storage) {
return ui.showCommandNotFound();
}
}
13 changes: 8 additions & 5 deletions src/main/java/duke/command/DeleteCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import duke.Storage;
import duke.TaskList;
import duke.Ui;
import duke.gui.Ui;

/**
* DeleteCommand - If user enters the delete command.
Expand All @@ -19,10 +19,13 @@ public DeleteCommand(int index) {
* Deletes the given task.
*/
@Override
public void execute(TaskList tasks, Ui ui, Storage storage) {
ui.customMessage("Noted. I've removed this task: \n");
ui.customMessage(tasks.get(index));
public String execute(TaskList tasks, Ui ui, Storage storage) {

String message = "Noted. I've removed this task: \n" +
tasks.get(index) + "\n" +
ui.showNumberOfListings(tasks.size() - 1);

tasks.remove(index);
ui.showNumberOfListings(tasks.size());
return message;
}
}
6 changes: 3 additions & 3 deletions src/main/java/duke/command/ExitCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import duke.Storage;
import duke.TaskList;
import duke.Ui;
import duke.gui.Ui;

/**
* ExitCommand - User enters the bye command.
Expand All @@ -27,8 +27,8 @@ public boolean isExit() {
* Print the exit message
*/
@Override
public void execute(TaskList tasks, Ui ui, Storage storage) {
ui.byeMessage();
public String execute(TaskList tasks, Ui ui, Storage storage) {
return ui.byeMessage();
}

}
8 changes: 3 additions & 5 deletions src/main/java/duke/command/FindCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,11 @@

import duke.Storage;
import duke.TaskList;
import duke.Ui;
import duke.gui.Ui;
import duke.Task;

import java.util.stream.Collectors;
import java.util.List;
import java.util.ArrayList;



/**
Expand All @@ -26,11 +24,11 @@ public FindCommand(String value) {
* Finds given value in all the tasks in the TaskList
*/
@Override
public void execute(TaskList tasks, Ui ui, Storage storage) {
public String execute(TaskList tasks, Ui ui, Storage storage) {
List<Task> matches = tasks.stream()
.filter(it -> it.getValue().contains( this.value ))
.collect(Collectors.toList());

ui.printList(matches);
return ui.printList(matches);
}
}
6 changes: 3 additions & 3 deletions src/main/java/duke/command/ListCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import duke.Storage;
import duke.TaskList;
import duke.Ui;
import duke.gui.Ui;

/**
* ListCommand - User enters the list command
Expand All @@ -20,7 +20,7 @@ public ListCommand() {
* Prints out all the tasks.
*/
@Override
public void execute(TaskList tasks, Ui ui, Storage storage) {
ui.printList(tasks.getList());
public String execute(TaskList tasks, Ui ui, Storage storage) {
return ui.printList(tasks.getList());
}
}
6 changes: 3 additions & 3 deletions src/main/java/duke/command/MarkCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import duke.Storage;
import duke.TaskList;
import duke.Ui;
import duke.gui.Ui;

/**
* Mark Command - User enters the mark command
Expand All @@ -24,8 +24,8 @@ public MarkCommand(int index) {
* Mark the given task in the list and storage
*/
@Override
public void execute(TaskList tasks, Ui ui, Storage storage) {
public String execute(TaskList tasks, Ui ui, Storage storage) {
tasks.mark(index);
ui.showMarkSucess(tasks.get(index));
return ui.showMarkSucess(tasks.get(index));
}
}
Loading

0 comments on commit d6f3ddd

Please sign in to comment.