From 407f732e42db4eb812ffa3dd8f4d3aa884395096 Mon Sep 17 00:00:00 2001 From: Kenneth van Ewijk Date: Tue, 10 Feb 2015 14:05:45 +0100 Subject: [PATCH] Added files Added my own unique project files --- Agenda.java | 55 +++++++++++++++++++ Artist.java | 18 ------- Data.java | 15 ------ Event.java | 82 +++++++++++++++++++++++++--- EventSorter.java | 135 +++++++++++++++++++++++++++++++++++++++++++++++ Main.java | 37 +++++++++++++ README.md | 7 ++- SaveLoad.java | 127 ++++++++++++++++++++++++++++++++++++++++++++ Stage.java | 14 ----- Window.java | 33 ++++++++++++ 10 files changed, 464 insertions(+), 59 deletions(-) create mode 100644 Agenda.java delete mode 100644 Artist.java delete mode 100644 Data.java create mode 100644 EventSorter.java create mode 100644 Main.java create mode 100644 SaveLoad.java delete mode 100644 Stage.java create mode 100644 Window.java diff --git a/Agenda.java b/Agenda.java new file mode 100644 index 0000000..b78438f --- /dev/null +++ b/Agenda.java @@ -0,0 +1,55 @@ +package nl.kennyboy; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Collections; +import java.util.GregorianCalendar; + +import nl.kennyboy.EventSorter.Mode; + +public class Agenda implements Serializable { + + private static final long serialVersionUID = -383023632433640516L; + + ArrayList afspraken; + EventSorter sort; + + public Agenda() + { + afspraken = new ArrayList(); + sort = new EventSorter(Mode.SORT_ASC); + } + + public void add(Event afspraak) + { + afspraken.add(afspraak); + } + + public void add(GregorianCalendar startDate, GregorianCalendar endDate, String name, String desc) + { + new Event(startDate, endDate, name, desc); + } + + public void add(int startYear, int startMonth, int startDay, int endYear, int endMonth, int endDay, String name, String desc) + { + new Event(startYear, startMonth,startDay, endYear, endMonth, endDay, name, desc); + } + + public void sort(EventSorter.Mode mode) + { + sort.changeMode(mode); + Collections.sort(afspraken, sort); + } + + public String toString() + { + String str = ""; + str += "All event sorted " + sort.getModeDesc() + ":\n"; + for(Event asp : afspraken) + { + str += "\t" + asp + "\n"; + } + return str; + } + +} diff --git a/Artist.java b/Artist.java deleted file mode 100644 index 911b7fa..0000000 --- a/Artist.java +++ /dev/null @@ -1,18 +0,0 @@ -import javax.swing.ImageIcon; - - -public class Artist -{ - private String genre; - private String name; - private String description; - private ImageIcon image; - private int id; - - public Artist() - { - - } - - -} diff --git a/Data.java b/Data.java deleted file mode 100644 index 148c48c..0000000 --- a/Data.java +++ /dev/null @@ -1,15 +0,0 @@ -import java.util.ArrayList; - - -public class Data -{ - private ArrayList stages; - private ArrayList events; - private ArrayList artists; - - public Data() - { - // TODO Auto-generated constructor stub - } - -} diff --git a/Event.java b/Event.java index 62cf8b4..c0b87b4 100644 --- a/Event.java +++ b/Event.java @@ -1,15 +1,81 @@ +package nl.kennyboy; -public class Event +import java.io.Serializable; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.GregorianCalendar; + +public class Event implements Serializable, Comparable { - private int startTime; - private int endTime; - private Artist artist; - private String description; - private int id; + private static final long serialVersionUID = -8412700922907201793L; - public Event() + GregorianCalendar startDate; + GregorianCalendar endDate; + String name; + String desc; + + public Event(GregorianCalendar startDate, GregorianCalendar endDate, String name, String desc) { - + this.startDate = startDate; + this.endDate = endDate; + this.name = name; + this.desc = desc; + } + public Event(int startYear, int startMonth, int startDay, int endYear, int endMonth, int endDay, String name, String desc) + { + this(new GregorianCalendar(startYear, startMonth-1, startDay), new GregorianCalendar(endYear, endMonth-1, endDay),name, desc); + } + + //Getters and Setters + public GregorianCalendar getStartDate() { + return startDate; + } + public void setStartDate(GregorianCalendar startDate) { + this.startDate = startDate; + } + public GregorianCalendar getEndDate() { + return endDate; + } + public void setEndDate(GregorianCalendar endDate) { + this.endDate = endDate; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public String getDesc() { + return desc; + } + public void setDesc(String desc) { + this.desc = desc; } + public int compareTo(Event o) { + if(startDate.before(o.getStartDate())) + { + return -1; + } + if(startDate.after(o.getStartDate())) + { + return 1; + } + if(startDate.equals(o.getStartDate())) + { + return 0; + } + + return 0; + } + + public String toString() + { + DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + formatter.setLenient(false); + + return name + " from " + formatter.format(startDate.getTime()) + " to " + formatter.format(endDate.getTime()); + } + + } diff --git a/EventSorter.java b/EventSorter.java new file mode 100644 index 0000000..8485849 --- /dev/null +++ b/EventSorter.java @@ -0,0 +1,135 @@ +package nl.kennyboy; + +import java.io.Serializable; +import java.util.Comparator; + + +public class EventSorter implements Serializable, Comparator { + + public enum Mode { + SORT_ASC, + SORT_DESC, + SORT_LENGTH_ASC, + SORT_LENGTH_DESC + } + + Mode mode; + + public EventSorter(Mode mode) + { + this.mode = mode; + } + + public void changeMode(Mode mode) + { + this.mode = mode; + } + + public String getModeDesc() + { + switch(mode) + { + default: + case SORT_ASC: + return "alphabetically"; + case SORT_DESC: + return "reverse alphabetically"; + case SORT_LENGTH_ASC: + return "shortest first"; + case SORT_LENGTH_DESC: + return "longstest first"; + } + } + + @Override + public int compare(Event asp1, Event asp2) { + + switch(mode) + { + default: + case SORT_ASC: + return sortAsc(asp1, asp2); + case SORT_DESC: + return sortDesc(asp1, asp2); + case SORT_LENGTH_ASC: + return sortLenAsc(asp1, asp2); + case SORT_LENGTH_DESC: + return sortLenDesc(asp1, asp2); + } + } + + public int sortAsc(Event asp1, Event asp2) + { + if(asp1.getStartDate().before(asp2.getStartDate())) + { + return -1; + } + if(asp1.getStartDate().after(asp2.getStartDate())) + { + return 1; + } + if(asp1.getStartDate().equals(asp2.getStartDate())) + { + return 0; + } + return 0; + } + + public int sortDesc(Event asp1, Event asp2) + { + if(asp1.getStartDate().after(asp2.getStartDate())) + { + return -1; + } + if(asp1.getStartDate().before(asp2.getStartDate())) + { + return 1; + } + if(asp1.getStartDate().equals(asp2.getStartDate())) + { + return 0; + } + return 0; + } + + public int sortLenAsc(Event asp1, Event asp2) + { + long len1 = asp1.getEndDate().getTimeInMillis() - asp1.getStartDate().getTimeInMillis(); + long len2 = asp2.getEndDate().getTimeInMillis() - asp2.getStartDate().getTimeInMillis(); + + if(len1 < len2) + { + return -1; + } + if(len2 < len1) + { + return 1; + } + if(len1 == len2) + { + return 0; + } + return 0; + } + + public int sortLenDesc(Event asp1, Event asp2) + { + long len1 = asp1.getEndDate().getTimeInMillis() - asp1.getStartDate().getTimeInMillis(); + long len2 = asp2.getEndDate().getTimeInMillis() - asp2.getStartDate().getTimeInMillis(); + + if(len1 > len2) + { + return -1; + } + if(len2 > len1) + { + return 1; + } + if(len1 == len2) + { + return 0; + } + return 0; + } + +} diff --git a/Main.java b/Main.java new file mode 100644 index 0000000..046eb18 --- /dev/null +++ b/Main.java @@ -0,0 +1,37 @@ +package nl.kennyboy; + +import nl.kennyboy.EventSorter.Mode; + +public class Main { + + public static void main(String[] args) { + new Main(); + } + + Agenda agenda; + Window window; + + public Main() + { + agenda = new Agenda(); + window = new Window(); + + test(); + } + + + public void test() + { + /* + agenda.add(new Event(2014, 12, 1, 2014, 12, 2, "School", "Naar school gaan kut")); + agenda.add(new Event(2014, 11, 2, 2014, 11, 4, "School2", "Naar school gaan kut")); + agenda.sort(Mode.SORT_LENGTH_DESC); + window.setText(agenda + ""); + SaveLoad.saveFile(agenda); + */ + + agenda = (Agenda) SaveLoad.loadFile(); + window.setText(agenda + ""); + } + +} diff --git a/README.md b/README.md index 3b4cfc6..273dd08 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,6 @@ Avans - Technische Informatica - Periode 3 - Project Festival Planner ##Project Leden * Kenneth van Ewijk -* Remco Sannen -* Wesley de Hek -* Yorick Rommers -* Guus van Dongen \ No newline at end of file + +##Branch +Deze branch is van Kenneth van Ewijk \ No newline at end of file diff --git a/SaveLoad.java b/SaveLoad.java new file mode 100644 index 0000000..67a85ce --- /dev/null +++ b/SaveLoad.java @@ -0,0 +1,127 @@ +package nl.kennyboy; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; + +import javax.swing.JFileChooser; +import javax.swing.JOptionPane; +import javax.swing.filechooser.FileFilter; + +public class SaveLoad { + + public SaveLoad() { + // TODO Auto-generated constructor stub + } + + public static void saveFile(Object obj) + { + JFileChooser fileChooser = new JFileChooser(); + + fileChooser.setFileFilter(new FileFilter() { + @Override + public boolean accept(File pathname) { + if(pathname.isFile() && pathname.getName().endsWith(".agn")) + { + return true; + }else if(pathname.isDirectory()){return true;}else{return false;} + } + + @Override + public String getDescription() { + return "Agenda (.agn)"; + } + + }); + fileChooser.setDialogTitle("Choose save location"); + int userSelection = fileChooser.showSaveDialog(null); + + if(userSelection == JFileChooser.APPROVE_OPTION) + { + File file = fileChooser.getSelectedFile(); + if(!file.getName().endsWith(".agn")) + { + file = new File(file.getAbsolutePath() + ".agn"); + } + + if(file.exists()) + { + if(JOptionPane.showConfirmDialog(null, "Are you sure you want to overwrite: " + file.getName(), "Overwrite", JOptionPane.YES_NO_OPTION) == JOptionPane.OK_OPTION) + { + save(obj, file); + } + } + else + { + save(obj, file); + } + } + } + + public static Object loadFile() + { + JFileChooser fileChooser = new JFileChooser(); + fileChooser.setFileFilter(new FileFilter() { + @Override + public boolean accept(File pathname) { + if(pathname.isFile() && pathname.getName().endsWith(".agn")) + { + return true; + }else if(pathname.isDirectory()){return true;}else{return false;} + } + + @Override + public String getDescription() { + return "Agenda (.agn)"; + } + + }); + + fileChooser.setDialogTitle("Choose file"); + int userSelection = fileChooser.showOpenDialog(null); + + if(userSelection == JFileChooser.APPROVE_OPTION) + { + File file = fileChooser.getSelectedFile(); + if(!file.exists()) + { + JOptionPane.showMessageDialog(null, "This file does not exist: " + file.getName()); + } + else + { + return load(file); + } + } + + return null; + } + + private static void save(Object obj, File file) + { + ObjectOutputStream oostr = null; + try { + oostr = new ObjectOutputStream(new FileOutputStream(file)); + oostr.writeObject(obj); + oostr.flush(); + oostr.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + private static Object load(File file) + { + ObjectInputStream oistr = null; + try { + oistr = new ObjectInputStream(new FileInputStream(file)); + Object obj = oistr.readObject(); + oistr.close(); + return obj; + } catch (IOException | ClassNotFoundException e) { + return null; + } + } +} diff --git a/Stage.java b/Stage.java deleted file mode 100644 index d58808e..0000000 --- a/Stage.java +++ /dev/null @@ -1,14 +0,0 @@ -import java.util.ArrayList; - - -public class Stage -{ - private ArrayList performances; - private int expectedPopularity; - private String description; - - public Stage() - { - - } -} diff --git a/Window.java b/Window.java new file mode 100644 index 0000000..956a515 --- /dev/null +++ b/Window.java @@ -0,0 +1,33 @@ +package nl.kennyboy; + +import javax.swing.JFrame; +import javax.swing.JPanel; +import javax.swing.JTextArea; + +public class Window extends JFrame { + + private static final long serialVersionUID = 4468821981332661759L; + + JTextArea tarea; + + public Window() + { + super("Agenda"); + setDefaultCloseOperation(EXIT_ON_CLOSE); + setSize(500,600); + JPanel contentPanel = new JPanel(); + + tarea = new JTextArea(10,20); + tarea.setEditable(false); + + contentPanel.add(tarea); + setContentPane(contentPanel); + setVisible(true); + } + + public void setText(String str) + { + tarea.setText(str); + } + +}