From 14c5a9503df9b2969d930484fdb836ea82d77986 Mon Sep 17 00:00:00 2001 From: Dejan Date: Mon, 23 Aug 2021 22:09:23 +0200 Subject: [PATCH] add io.ToDoListFromToJSON, ToDo-List-Editor now can save and load ToDo-lists from&to JSON --- plan.txt | 3 +- theList.json | 8 +++ todolist_editor/pom.xml | 5 ++ .../src/main/java/de/dejan/todolist/Main.java | 15 +++++- .../src/main/java/de/dejan/todolist/ToDo.java | 38 +++++++------- .../dejan/todolist/io/ToDoListFromToJSON.java | 50 +++++++++++++++++++ 6 files changed, 98 insertions(+), 21 deletions(-) create mode 100644 theList.json create mode 100644 todolist_editor/src/main/java/de/dejan/todolist/io/ToDoListFromToJSON.java diff --git a/plan.txt b/plan.txt index 3e6215a..4425215 100644 --- a/plan.txt +++ b/plan.txt @@ -1,7 +1,8 @@ Funktionen: -ToDo deadline# -ToDo-Liste nach Datum/Uhrzeit sortieren# --ToDo-Liste abspeichern +-ToDo-Liste als JSON abspeichern# +-ToDo-Liste von JSON laden# -ToDo hinzufügen# -ToDo abhaken# -ToDo löschen# diff --git a/theList.json b/theList.json new file mode 100644 index 0000000..8846ac4 --- /dev/null +++ b/theList.json @@ -0,0 +1,8 @@ +[ + { + "id": 0, + "content": "asdfgh", + "done": false, + "deadline": "Feb 2, 2022, 12:00:00 AM" + } +] \ No newline at end of file diff --git a/todolist_editor/pom.xml b/todolist_editor/pom.xml index d3a13b1..b8f8ebd 100644 --- a/todolist_editor/pom.xml +++ b/todolist_editor/pom.xml @@ -26,6 +26,11 @@ 4.13.1 test + + com.google.code.gson + gson + 2.8.7 + diff --git a/todolist_editor/src/main/java/de/dejan/todolist/Main.java b/todolist_editor/src/main/java/de/dejan/todolist/Main.java index d6ef877..06ee18d 100644 --- a/todolist_editor/src/main/java/de/dejan/todolist/Main.java +++ b/todolist_editor/src/main/java/de/dejan/todolist/Main.java @@ -4,6 +4,8 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; +import de.dejan.todolist.io.ToDoListFromToJSON; + public class Main{ @@ -11,6 +13,12 @@ public class Main{ static ArrayList tasks=new ArrayList(); public static void main( String[] args ){ + + //ArrayList tasks_ = ToDoListFromToJSON.loadToDoList("theList.json"); + + for (int i = 0; i < ToDoListFromToJSON.loadToDoList("theList.json").size(); i++) { + tasks.add(ToDoListFromToJSON.loadToDoList("theList.json").get(i)); + } while (true) { menu(); @@ -18,6 +26,11 @@ public class Main{ } + public static void exit(){ + ToDoListFromToJSON.saveToDoList(tasks, "theList.json"); + System.exit(0); + } + public static void menu(){ System.out.println("\n[1]Neues ToDo hinzufügen"); @@ -36,7 +49,7 @@ public class Main{ case 3: done(); break; case 4: delTask(); break; case 5: sortByDeadline(); break; - case 6: System.exit(0); + case 6: exit(); } } diff --git a/todolist_editor/src/main/java/de/dejan/todolist/ToDo.java b/todolist_editor/src/main/java/de/dejan/todolist/ToDo.java index 5d6bceb..dc770f5 100644 --- a/todolist_editor/src/main/java/de/dejan/todolist/ToDo.java +++ b/todolist_editor/src/main/java/de/dejan/todolist/ToDo.java @@ -4,59 +4,59 @@ import java.util.*; public class ToDo{ - private int theID; - private String theContent; - private boolean theDone; + private int id; + private String content; + private boolean done; // https://docs.oracle.com/javase/8/docs/api/java/util/Date.html // https://stackoverflow.com/questions/5927109/sort-objects-in-arraylist-by-date - private Date theDeadline; + private Date deadline; public ToDo(int id, String content, boolean done, Date deadline){ - theID=id; - theContent=content; - theDone=done; - theDeadline=deadline; + this.id=id; + this.content=content; + this.done=done; + this.deadline=deadline; } public ToDo(int id, String content, boolean done){ - theID=id; - theContent=content; - theDone=done; + this.id=id; + this.content=content; + this.done=done; } //get-& set-methods public void setID(int id){ - theID=id; + this.id=id; } public int getID(){ - return theID; + return id; } public void setContent(String content){ - theContent=content; + this.content=content; } public String getContent(){ - return theContent; + return this.content; } public void setDone(boolean done){ - theDone=done; + this.done=done; } public boolean getDone(){ - return theDone; + return this.done; } public void setDeadline(Date d){ - theDeadline=d; + this.deadline=d; } public Date getDeadline(){ - return theDeadline; + return this.deadline; } } diff --git a/todolist_editor/src/main/java/de/dejan/todolist/io/ToDoListFromToJSON.java b/todolist_editor/src/main/java/de/dejan/todolist/io/ToDoListFromToJSON.java new file mode 100644 index 0000000..e4eae20 --- /dev/null +++ b/todolist_editor/src/main/java/de/dejan/todolist/io/ToDoListFromToJSON.java @@ -0,0 +1,50 @@ +package de.dejan.todolist.io; + +import de.dejan.todolist.*; +//import jdk.internal.org.jline.utils.InputStreamReader; + +import java.io.*; +import java.lang.reflect.Type; +import java.util.*; +import com.google.gson.*; +import com.google.gson.reflect.TypeToken; + +public class ToDoListFromToJSON { + + + public static void saveToDoList(ArrayList tasks, String listname){ + Gson gson=new GsonBuilder().setPrettyPrinting().create(); + + + try { + FileWriter fw=new FileWriter(listname); + gson.toJson(tasks, fw); + fw.close(); + } catch (JsonIOException e) { + //e.printStackTrace(); + } catch (IOException e) { + //e.printStackTrace(); + } + + } + + public static ArrayList loadToDoList(String listname){ + ArrayList tasks=new ArrayList(); + Gson gson=new Gson(); + + try { + BufferedReader br =new BufferedReader(new InputStreamReader(new FileInputStream(listname))); + Type list=new TypeToken>(){}.getType(); + + tasks=gson.fromJson(br, list); + br.close(); + + } catch (Exception e) { + + } + + + return tasks; + } + +}