Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e3443dad2a | ||
|
|
407f732e42 |
+55
@@ -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<Event> afspraken;
|
||||
EventSorter sort;
|
||||
|
||||
public Agenda()
|
||||
{
|
||||
afspraken = new ArrayList<Event>();
|
||||
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;
|
||||
}
|
||||
|
||||
}
|
||||
-18
@@ -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()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
import java.util.ArrayList;
|
||||
|
||||
|
||||
public class Data
|
||||
{
|
||||
private ArrayList<Stage> stages;
|
||||
private ArrayList<Event> events;
|
||||
private ArrayList<Artist> artists;
|
||||
|
||||
public Data()
|
||||
{
|
||||
// TODO Auto-generated constructor stub
|
||||
}
|
||||
|
||||
}
|
||||
+74
-8
@@ -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<Event>
|
||||
{
|
||||
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());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,135 @@
|
||||
package nl.kennyboy;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Comparator;
|
||||
|
||||
|
||||
public class EventSorter implements Serializable, Comparator<Event> {
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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", "Doe iets op school"));
|
||||
agenda.add(new Event(2014, 11, 2, 2014, 11, 4, "School2", "Doe nog iets op school"));
|
||||
agenda.sort(Mode.SORT_LENGTH_DESC);
|
||||
window.setText(agenda + "");
|
||||
SaveLoad.saveFile(agenda);
|
||||
*/
|
||||
|
||||
agenda = (Agenda) SaveLoad.loadFile();
|
||||
window.setText(agenda + "");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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
|
||||
|
||||
##Branch
|
||||
Deze branch is van Kenneth van Ewijk
|
||||
+127
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
-14
@@ -1,14 +0,0 @@
|
||||
import java.util.ArrayList;
|
||||
|
||||
|
||||
public class Stage
|
||||
{
|
||||
private ArrayList<Event> performances;
|
||||
private int expectedPopularity;
|
||||
private String description;
|
||||
|
||||
public Stage()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
+33
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user