27 Commits
Author SHA1 Message Date
guusvdongen 70b1dba047 Create AddStagePanel.java 2015-02-26 17:03:50 +01:00
guusvdongen 80a934ebb3 Create AddEventPanel.java 2015-02-26 17:03:21 +01:00
guusvdongen b94c913472 Create AddArtistPanel.java 2015-02-26 17:02:47 +01:00
guusvdongen e985dbe537 Update Stage 2015-02-24 15:37:22 +01:00
guusvdongen 0a2c7ed67c Update Event 2015-02-24 15:36:57 +01:00
guusvdongen 5aaf23e346 Update Artist 2015-02-24 15:36:21 +01:00
guusvdongen 558cf0ea5c Agenda 2015-02-24 15:35:48 +01:00
guusvdongen a1520cf55c Delete Data.java 2015-02-13 17:38:40 +01:00
guusvdongen 1ed16ab22f Delete Panel.java 2015-02-13 17:38:35 +01:00
guusvdongen b5dbb8e058 Delete Stage.java 2015-02-13 17:38:30 +01:00
guusvdongen ea3d16c533 Delete README.md 2015-02-13 17:38:23 +01:00
guusvdongen f69ac37ea8 Delete Artist.java 2015-02-13 17:38:09 +01:00
guusvdongen d065860c4b Delete Event.java 2015-02-13 17:37:53 +01:00
guusvdongen 4e6abc1551 Rename test to testmethode 2015-02-13 17:37:27 +01:00
guusvdongen 6d6c5cd153 Create test 2015-02-13 17:36:49 +01:00
guusvdongen 63e6138e83 Create GUI 2015-02-13 17:26:13 +01:00
guusvdongen a0cdeb1794 Create Agenda 2015-02-13 17:25:34 +01:00
guusvdongen c10341c403 Stage 2015-02-13 17:24:51 +01:00
guusvdongen 0e78c56ad7 Event 2015-02-13 17:24:11 +01:00
guusvdongen c232d6a01c Create Artist 2015-02-13 17:23:07 +01:00
kennyboy55 451ae58a77 Update README.md 2015-02-10 14:27:26 +01:00
kennyboy55 4e81a4aa30 Updated Taakverdeling 2015-02-10 14:27:05 +01:00
kennyboy55 ff5daf1da8 Update README.md 2015-02-10 14:24:08 +01:00
kennyboy55 26d0fa1ff3 Update README.md 2015-02-10 14:22:32 +01:00
kennyboy55 fc0539c6ab Updated to new standard 2015-02-10 14:22:02 +01:00
kennyboy55 91f113e8e3 Added taakverdeling 2015-02-10 14:19:24 +01:00
kennyboy55 c27d44a559 Added Interface
Implement this interface when you create your panel. It ensures that
everything can be showed in the main window.
2015-02-10 14:14:38 +01:00
18 changed files with 957 additions and 503 deletions
+113
View File
@@ -0,0 +1,113 @@
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class AddArtistPanel extends JFrame{
private static final long serialVersionUID = 1;
public AddArtistPanel(Agenda agenda)
{
super("Artist addscreen!");
setDefaultCloseOperation(EXIT_ON_CLOSE);
JPanel content = new JPanel(new BorderLayout());
JPanel south = new JPanel(new FlowLayout());
JPanel center = new JPanel(new GridLayout(4,2));
content.add(south, BorderLayout.SOUTH);
content.add(center, BorderLayout.CENTER);
JPanel panel1 = new JPanel();
JLabel name = new JLabel("Artist name: ");
panel1.add(name);
center.add(panel1);
JPanel panel2 = new JPanel();
JTextField nameTF = new JTextField("",15);
panel2.add(nameTF);
center.add(panel2);
JLabel genre = new JLabel("Genre: ");
JPanel panel3 = new JPanel();
panel3.add(genre);
center.add(panel3);
JTextField genreTF = new JTextField("",15);
JPanel panel4 = new JPanel();
panel4.add(genreTF);
center.add(panel4);
JPanel panel5 = new JPanel();
JLabel image = new JLabel("Image: ");
panel5.add(image);
center.add(panel5);
JPanel panel6 = new JPanel();
JTextField imageTF = new JTextField("", 15);
panel6.add(imageTF);
center.add(panel6);
JPanel panel7 = new JPanel();
JLabel description = new JLabel("Description: ");
panel7.add(description);
center.add(panel7);
JPanel panel8 = new JPanel();
JTextField descriptionTF = new JTextField("", 15);
panel8.add(descriptionTF);
center.add(panel8);
JButton add = new JButton("Add artist!");
south.add(add);
add.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e) {
String name = nameTF.getText();
String genre = genreTF.getText();
String image = imageTF.getText();
String description = descriptionTF.getText();
boolean alreadyExists = false;
for (Artist artist : agenda.artists)
{
if (artist.getName().equals(name))
{
alreadyExists = true;
}
}
if (name.isEmpty() == true){
JOptionPane.showMessageDialog(null, "Fill in a correct name!");
}
else if (alreadyExists == false)
{
Artist a = new Artist(name,genre,image,description);
agenda.addArtist(a);
JOptionPane.showMessageDialog(null, "Artist added!");
setVisible(false);
dispose();
} else {
JOptionPane.showMessageDialog(null, "Choose a different artist name!");
}
}
});
setContentPane(content);
setVisible(true);
setSize(500,320);
}
}
+289
View File
@@ -0,0 +1,289 @@
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class AddEventPanel extends JFrame{
private static final long serialVersionUID = 1;
public AddEventPanel(Agenda agenda)
{
super("Event addscreen!");
setDefaultCloseOperation(EXIT_ON_CLOSE);
JPanel content = new JPanel(new BorderLayout());
JPanel south = new JPanel(new FlowLayout());
JPanel center = new JPanel(new GridLayout(7,2));
content.add(south, BorderLayout.SOUTH);
content.add(center, BorderLayout.CENTER);
JPanel panel1 = new JPanel();
JLabel name = new JLabel("Event name: ");
panel1.add(name);
center.add(panel1);
JPanel panel2 = new JPanel();
JTextField nameTF = new JTextField("",15);
panel2.add(nameTF);
center.add(panel2);
JLabel starttime = new JLabel("Starttime: ");
JPanel panel3 = new JPanel();
panel3.add(starttime);
center.add(panel3);
Integer[] hours = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23 };
JComboBox<Integer> hour = new JComboBox<Integer>(hours);
JPanel panel4 = new JPanel();
panel4.add(hour);
center.add(panel4);
Integer[] minutes = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59};
JComboBox<Integer> minute = new JComboBox<Integer>(minutes);
panel4.add(minute);
Integer[] days = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31};
JComboBox<Integer> day = new JComboBox<Integer>(days);
panel4.add(day);
String[] months = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
JComboBox<String> month = new JComboBox<String>(months);
panel4.add(month);
Integer[] years = { 2015,2016,2017};
JComboBox<Integer> year = new JComboBox<Integer>(years);
panel4.add(year);
JPanel panel5 = new JPanel();
JLabel endtime = new JLabel("Endtime: ");
panel5.add(endtime);
center.add(panel5);
JComboBox<Integer> hourE = new JComboBox<Integer>(hours);
JPanel panel6 = new JPanel();
panel6.add(hourE);
center.add(panel6);
JComboBox<Integer> minuteE = new JComboBox<Integer>(minutes);
panel6.add(minuteE);
JComboBox<Integer> dayE = new JComboBox<Integer>(days);
panel6.add(dayE);
JComboBox<String> monthE = new JComboBox<String>(months);
panel6.add(monthE);
JComboBox<Integer> yearE = new JComboBox<Integer>(years);
panel6.add(yearE);
JPanel panel7 = new JPanel();
JLabel artist2 = new JLabel("Artist: ");
panel7.add(artist2);
center.add(panel7);
JPanel panel8 = new JPanel();
String[] artists = new String[agenda.artists.size()];
for ( int idx = 0; idx < agenda.artists.size(); idx ++)
{
artists[idx] = agenda.artists.get(idx).getName();
}
JComboBox<String> artist = new JComboBox<String>(artists);
panel8.add(artist);
center.add(panel8);
JPanel panel9 = new JPanel();
JLabel stage = new JLabel("Stage: ");
panel9.add(stage);
center.add(panel9);
JPanel panel10 = new JPanel();
String[] stages = new String[agenda.stages.size()];
for ( int idx = 0; idx < agenda.stages.size(); idx ++)
{
artists[idx] = agenda.stages.get(idx).getName();
}
JComboBox<String> stage2 = new JComboBox<String>(stages);
panel10.add(stage2);
center.add(panel10);
JPanel panel11 = new JPanel();
JLabel description = new JLabel("Description: ");
panel11.add(description);
center.add(panel11);
JPanel panel12 = new JPanel();
JTextField descriptionTF = new JTextField("",15);
panel12.add(descriptionTF);
center.add(panel12);
JPanel panel13 = new JPanel();
JLabel expectedPopularity = new JLabel("Expected Popularity: ");
panel13.add(expectedPopularity);
center.add(panel13);
JPanel panel14 = new JPanel();
Integer[] eps= { 1,2,3,4,5,6,7,8,9,10};
JComboBox<Integer> ep = new JComboBox<Integer>(eps);
panel14.add(ep);
center.add(panel14);
JButton add = new JButton("Add event!");
south.add(add);
add.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e) {
boolean everythingCorrect = true;
String name = nameTF.getText();
int hourS = hour.getSelectedIndex();
int minuteS = minute.getSelectedIndex();
int dayS = day.getSelectedIndex();
String monthS = (String) month.getSelectedItem();
int yearS = year.getSelectedIndex();
int hourEnd = hourE.getSelectedIndex();
int minuteEnd = minuteE.getSelectedIndex();
int dayEnd = dayE.getSelectedIndex();
String monthEnd = (String) monthE.getSelectedItem();
int yearEnd = yearE.getSelectedIndex();
String artistName = (String)artist.getSelectedItem();
Artist artist = null;
for(Artist a : agenda.artists)
{
if (a.getName().equals(artistName))
{
artist = a;
}
}
String stageName = (String)stage2.getSelectedItem();
Stage stage = null;
for(Stage s : agenda.stages)
{
if (s.getName().equals(stageName))
{
stage = s;
}
}
String description = descriptionTF.getText();
int popularity = ep.getSelectedIndex();
if (dayS > monthDays(monthS)){
everythingCorrect = false;
JOptionPane.showMessageDialog(null, "Invalid Date!");
}
else if (yearS > yearEnd || monthToInt(monthS) > monthToInt(monthEnd) || dayS > dayEnd || hourS > hourEnd || minuteS > minuteEnd){
everythingCorrect = false;
JOptionPane.showMessageDialog(null, "End time is earlier then start time!");
}
else if (dayS != dayEnd || monthS.equals(monthEnd) == false || yearS != yearEnd){
everythingCorrect = false;
JOptionPane.showMessageDialog(null, "Event is too long!");
} else if (name.isEmpty()){
everythingCorrect = false;
JOptionPane.showMessageDialog(null, "Fill in a correct name!");
} else if (stage == null){
everythingCorrect = false;
JOptionPane.showMessageDialog(null, "Missing a stage!");
} else if (artist == null){
JOptionPane.showMessageDialog(null, "Missing a artist!");
}
if (everythingCorrect == true)
{
Event event = new Event(name,yearS,monthToInt(monthS),dayS,hourS,minuteS,yearEnd,monthToInt(monthEnd),dayEnd,hourEnd, minuteEnd, artist, stage,description, popularity);
agenda.addEvent(event);
everythingCorrect = false;
JOptionPane.showMessageDialog(null, "Event added!");
setVisible(false);
dispose();
}
}
});
setContentPane(content);
setVisible(true);
setSize(640,320);
}
public int monthToInt(String month)
{
int number = 0;
switch (month)
{
case "January": number = 0; break;
case "February": number = 1; break;
case "March": number = 2; break;
case "April": number = 3; break;
case "May": number = 4; break;
case "June":number = 5; break;
case "July": number = 6; break;
case "August": number = 7; break;
case "September":number = 8; break;
case "October": number = 9; break;
case "November": number = 10; break;
case "December": number = 11; break;
}
return number;
}
public int monthDays(String month)
{
int number = 0;
switch (month)
{
case "January": number = 31; break;
case "February": number = 28; break;
case "March": number = 31; break;
case "April": number = 30; break;
case "May": number = 31; break;
case "June":number = 30; break;
case "July": number = 31; break;
case "August": number = 31; break;
case "September":number = 30; break;
case "October": number = 31; break;
case "November": number = 30; break;
case "December": number = 31; break;
}
return number;
}
}
+92
View File
@@ -0,0 +1,92 @@
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class AddStagePanel extends JFrame{
private static final long serialVersionUID = 1;
public AddStagePanel(Agenda agenda)
{
super("Stage addscreen!");
agenda.addStage(new Stage("mainstage", "niks"));
setDefaultCloseOperation(EXIT_ON_CLOSE);
JPanel content = new JPanel(new BorderLayout());
JPanel south = new JPanel(new FlowLayout());
JPanel center = new JPanel(new GridLayout(2,2));
content.add(south, BorderLayout.SOUTH);
content.add(center, BorderLayout.CENTER);
JPanel panel1 = new JPanel();
JLabel name = new JLabel("Stage name: ");
panel1.add(name);
center.add(panel1);
JPanel panel2 = new JPanel();
JTextField nameTF = new JTextField("",15);
panel2.add(nameTF);
center.add(panel2);
JLabel description = new JLabel("Stage Description: ");
JPanel panel3 = new JPanel();
panel3.add(description);
center.add(panel3);
JTextField descriptionTF = new JTextField("",15);
JPanel panel4 = new JPanel();
panel4.add(descriptionTF);
center.add(panel4);
JButton add = new JButton("Add stage!");
south.add(add);
add.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e) {
String name = nameTF.getText();
String description = descriptionTF.getText();
boolean alreadyExists = false;
for (Stage stage : agenda.stages)
{
if (stage.getName().equals(name))
{
alreadyExists = true;
}
}
if (name.isEmpty()){
JOptionPane.showMessageDialog(null, "Fill in a correct name!");
}
else if ( alreadyExists == false )
{
Stage s = new Stage(name,description);
agenda.addStage(s);
JOptionPane.showMessageDialog(null, "Stage added!");
setVisible(false);
dispose();
}
else {
JOptionPane.showMessageDialog(null, "Choose a different stage name!");
}
}
});
setContentPane(content);
setVisible(true);
setSize(400,180);
}
}
+214
View File
@@ -0,0 +1,214 @@
import java.io.EOFException;
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 java.io.Serializable;
import java.util.ArrayList;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.filechooser.FileFilter;
public class Agenda implements Serializable {
private static final long serialVersionUID = 1;
private ArrayList<Stage> stages;
private ArrayList<Event> events;
private ArrayList<Artist> artists;
public Agenda() {
stages = new ArrayList<Stage>();
events = new ArrayList<Event>();
artists = new ArrayList<Artist>();
}
public void addStage(Stage stage){
stages.add(stage);
}
public void addEvent(Event event) {
events.add(event);
}
public void addArtist(Artist artist) {
artists.add(artist);
}
public void saveAgenda()
{
JFileChooser fileChooser = new JFileChooser();
fileChooser.setFileFilter(new FileFilter() {
@Override
public boolean accept(File pathname) {
if(pathname.isFile() && pathname.getName().endsWith(".dat"))
{
return true;
}else if(pathname.isDirectory()){return true;}else{return false;}
}
@Override
public String getDescription() {
return ".dat";
}
});
fileChooser.setDialogTitle("Choose save location");
int userSelection = fileChooser.showSaveDialog(null);
if(userSelection == JFileChooser.APPROVE_OPTION)
{
File file = fileChooser.getSelectedFile();
if(!file.getName().endsWith(".dat"))
{
file = new File(file.getAbsolutePath() + ".dat");
}
if(file.exists())
{
if(JOptionPane.showConfirmDialog(null, "Are you sure you want to overwrite: " + file.getName(), "Overwrite", JOptionPane.YES_NO_OPTION) == JOptionPane.OK_OPTION)
{
saveAgenda(file);
}
}
else
{
saveAgenda(file);
}
}
}
public void loadAgenda()
{
JFileChooser fileChooser = new JFileChooser();
fileChooser.setFileFilter(new FileFilter() {
@Override
public boolean accept(File pathname) {
if(pathname.isFile() && pathname.getName().endsWith(".dat"))
{
return true;
}else if(pathname.isDirectory()){return true;}else{return false;}
}
@Override
public String getDescription() {
return ".dat";
}
});
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
{
fillAgenda(file);
}
}
}
public void fillAgenda(File file) {
FileInputStream fis = null;
ObjectInputStream ois = null;
try {
fis = new FileInputStream(file);
ois = new ObjectInputStream(fis);
Object object;
object = ois.readObject();
try {
while (object != null) {
events.add((Event) object);
object = ois.readObject();
}
} catch (EOFException e) {
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void fillArtists()
{
for (Event e : events)
{
boolean exists = false;
String name = e.getArtist().getName();
for (Artist a : artists)
{
if ( a.getName().equals(name) ) {
exists = true;
}
}
if ( exists == false) {
addArtist(e.getArtist());
}
}
}
public void fillStages()
{
for (Event e : events)
{
boolean exists = false;
String name = e.getStage().getName();
for (Stage s : stages)
{
if ( s.getName().equals(name) ) {
exists = true;
}
}
if ( exists == false) {
addStage(e.getStage());
}
}
}
public void saveAgenda(File file) {
try {
FileOutputStream fos = new FileOutputStream(file);
ObjectOutputStream oos = new ObjectOutputStream(fos);
for (Event event : events) {
oos.writeObject(event);
}
oos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public void clearAgenda()
{
events.clear();
}
public void fillAllLists()
{
loadAgenda();
fillStages();
fillArtists();
}
public static void main(String[] args)
{
Agenda a = new Agenda();
a.fillAllLists();
System.out.println(a.events.get(0).getEventName());
}
}
+70
View File
@@ -0,0 +1,70 @@
import java.io.Serializable;
import javax.swing.ImageIcon;
public class Artist implements Serializable{
private static final long serialVersionUID = 1;
private String name;
private String genre;
private ImageIcon image;
private String description;
public Artist(String name, String genre, String image, String description)
{
this.name = name;
this.genre = genre;
this.description = description;
if ( !image.equals("null")) {
this.image = new ImageIcon(image);
}
}
public String getName()
{
return this.name;
}
public String getGenre()
{
return this.genre;
}
public ImageIcon getImage()
{
return this.image;
}
public String getDescription()
{
return this.description;
}
public void setName(String name)
{
this.name = name;
}
public void setGenre(String genre)
{
this.genre = genre;
}
public void setImageIconString(String image)
{
this.image = new ImageIcon(image);
}
public void setImageIcon(ImageIcon image)
{
this.image = image;
}
public void setDescription(String description)
{
this.description = description;
}
}
-28
View File
@@ -1,28 +0,0 @@
public class Artist {
private String name;
private String genre;
private String image;
private String description;
public Artist(String name, String genre, String image, String description) {
this.setName(name);
this.genre = genre;
this.image = image;
this.description = description;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
-42
View File
@@ -1,42 +0,0 @@
import java.awt.Graphics;
import javax.swing.table.AbstractTableModel;
/**
* This class is used to make a temporary abstracttableModel with selected data so later it can be passed to the JTable so it refreshes.
* @author Wesley
* @version 1.0
*/
public class ContentTable extends AbstractTableModel {
private static final long serialVersionUID = 1L;
private Object[][] data;
private String[] columnNames;
public ContentTable(Object[][] data,String[] columnNames) {
this.data = data;
this.columnNames = columnNames;
}
@Override
public int getColumnCount() {
return columnNames.length;
}
@Override
public int getRowCount() {
return data.length;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
return data[rowIndex][columnIndex];
}
@Override
public String getColumnName(int col) {
return columnNames[col];
}
}
-43
View File
@@ -1,43 +0,0 @@
import java.util.ArrayList;
public class Data {
private ArrayList<Stage> stages;
private ArrayList<Event> events;
private ArrayList<Artist> artists;
public Data() {
stages = new ArrayList<>();
events = new ArrayList<>();
artists = new ArrayList<>();
}
private void addStage(Stage stage) {
stages.add(stage);
}
private void addEvent(Event event) {
events.add(event);
}
private void addArtist(Artist artist) {
artists.add(artist);
}
public void makeArtist(String name, String genre, String image, String description) {
Artist artist = new Artist(name,genre,image,description);
addArtist(artist);
}
/*public void makeEvent(Artist artist, int startTime, int endTime, String description) {
Event event = new Event(artist, startTime, endTime,description);
addEvent(event);
}
public void makeStage(int expectedPopularity, String description) {
Stage stage = new Stage(expectedPopularity, description);
addStage(stage);
}*/
}
+123
View File
@@ -0,0 +1,123 @@
import java.io.Serializable;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.GregorianCalendar;
public class Event implements Serializable {
private static final long serialVersionUID = 1;
private String eventName;
private GregorianCalendar startDate;
private GregorianCalendar endDate;
private Artist artist;
private Stage stage;
private String description;
private int expectedPopularity;
public Event(String eventName, int startYear, int startMonth, int startDay,
int startHour, int startMinute, int endYear, int endMonth,
int endDay, int endHour, int endMinute, Artist artist, Stage stage,
String description, int expectedPopularity) {
this.eventName = eventName;
this.startDate = new GregorianCalendar(startYear, startMonth - 1,
startDay, startHour, startMinute);
this.endDate = new GregorianCalendar(endYear, endMonth - 1, endDay,
endHour, endMinute);
this.stage = stage;
this.artist = artist;
this.description = description;
this.expectedPopularity = expectedPopularity;
}
public Event(String eventName, GregorianCalendar startDate,
GregorianCalendar endDate, Artist artist, Stage stage,
String description, int expectedPopularity) {
this.eventName = eventName;
this.startDate = startDate;
this.endDate = endDate;
this.artist = artist;
this.stage = stage;
this.description = description;
this.expectedPopularity = expectedPopularity;
}
public String getEventName() {
return this.eventName;
}
public GregorianCalendar getStartDate() {
return this.startDate;
}
public GregorianCalendar getEndDate() {
return this.endDate;
}
public Artist getArtist() {
return this.artist;
}
public String getDescription() {
return this.description;
}
public Stage getStage() {
return this.stage;
}
public int getExpectedPopularity() {
return this.expectedPopularity;
}
public void setEventName(String name) {
this.eventName = name;
}
public void setStartDate(int startYear, int startMonth, int startDay,
int startHour, int startMinute) {
startDate.set(startYear, startMonth - 1, startDay, startHour,
startMinute);
}
public void setStartDate(GregorianCalendar startDate) {
this.startDate = startDate;
}
public void setEndDate(int endYear, int endMonth, int endDay, int endHour,
int endMinute) {
endDate.set(endYear, endMonth - 1, endDay, endHour, endMinute);
}
public void setEndDate(GregorianCalendar endDate) {
this.endDate = endDate;
}
public void setArtist(Artist artist) {
this.artist.setName(artist.getName());
this.artist.setGenre(artist.getGenre());
this.artist.setImageIcon(artist.getImage());
this.artist.setDescription(artist.getDescription());
}
public void setDescription(String description) {
this.description = description;
}
public void setExpectedPopularity(int popularity) {
this.expectedPopularity = popularity;
}
public void setStage(Stage stage) {
this.stage = stage;
}
public String toString() {
DateFormat format = new SimpleDateFormat("dd-MM-yyyy");
format.setLenient(false);
return artist.getName() + " plays from "
+ format.format(startDate.getTime()) + " to "
+ format.format(endDate.getTime()) + ".";
}
}
-61
View File
@@ -1,61 +0,0 @@
public class Event {
private Artist artist;
private int startTime;
private int endTime;
private String description;
private Stage stage;
private String name;
public Event(String name, Stage stage, Artist artist, int startTime, int endTime, String description) {
if(artist != null)
this.setArtist(artist);
else
this.setArtist(null);
this.startTime = startTime;
this.setEndTime(endTime);
this.description = description;
this.setName(name);
this.stage = stage;
}
public int getStartTime() {
return startTime;
}
public int getEndTime() {
return endTime;
}
public void setEndTime(int endTime) {
this.endTime = endTime;
}
public Stage getStage() {
return stage;
}
public void setStage(Stage stage) {
this.stage = stage;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Artist getArtist() {
return artist;
}
public void setArtist(Artist artist) {
this.artist = artist;
}
}
+5
View File
@@ -0,0 +1,5 @@
public class GUI {
//Leeg
}
-24
View File
@@ -1,24 +0,0 @@
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
public class IO {
private ObjectInputStream objectInput;
private ObjectOutputStream objectOutput;
public IO(File file) throws IOException {
objectInput = new ObjectInputStream(new BufferedInputStream(new FileInputStream(file)));
objectOutput = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(file)));
}
public void saveObject(Object o) throws IOException {
objectOutput.writeObject(o);
}
}
-4
View File
@@ -1,4 +0,0 @@
public class Preformance {
}
+35
View File
@@ -0,0 +1,35 @@
import java.io.Serializable;
public class Stage implements Serializable {
private static final long serialVersionUID = 1;
private String name;
private String description;
public Stage(String name, String description)
{
this.name = name;
this.description = description;
}
public String getName()
{
return this.name;
}
public String getDescription()
{
return this.description;
}
public void setDescription(String description)
{
this.description = description;
}
public void setName(String name)
{
this.name = name;
}
}
-28
View File
@@ -1,28 +0,0 @@
import java.util.ArrayList;
public class Stage {
private ArrayList<Event> events;
private String name;
private String description;
private int expectedPopularity;
public Stage(String name, int expectedPopularity, String description) {
events = new ArrayList<>();
this.setName(name);
this.expectedPopularity = expectedPopularity;
this.description = description;
}
public void addEvent(Event event) {
events.add(event);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
-185
View File
@@ -1,185 +0,0 @@
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
/**
* Constructs a JTable in a ScrolPane.
* @author Wesley
* @version 1.0
*/
public class TabelPanel extends JPanel {
private static final long serialVersionUID = 1L;
private JScrollPane scrollPane;
private Object[][] data;
private String[] columnNames = {"Stage",
"Event",
"Artist",
"Begin Time",
"End Time"};
private ArrayList<Event> events;
private ArrayList<Event> fullEvents;
private JTable table;
private JTable selectedCell;
/**
* Constructor makes the table and adds it to a scrollPane.
* @param events
*/
public TabelPanel(ArrayList<Event> events) {
this.events = events;
fullEvents = new ArrayList<>();
compileData(columnNames.length,events.size());
table= new JTable();
AbstractTableModel tableModel = new ContentTable(data,columnNames);
table.setModel(tableModel);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
table.setAutoCreateRowSorter(true);
table.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) { if(e.getClickCount() > 1 ) cellClicked(e); else selectedCell = (JTable) e.getSource(); }
});
scrollPane = new JScrollPane(table,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scrollPane.setBorder(null);
add(scrollPane);
}
/**
* Sets the size of the scrollPane, in which the table is placed to fill out its container panel (not sure if this is needed?)
*/
public void paintComponent(Graphics g) {
scrollPane.setPreferredSize(new Dimension(getWidth(),getHeight()));
}
/**
* Gets the data from the events arrayList and makes a 2D-array of it.
* @param columnes
* @param rows
*/
public void compileData(int columnes, int rows) {
data = new Object[rows][columnes];
for(int x = 0; x < rows; x++) {
Object[] tempData = new Object[columnes];
tempData[0] = events.get(x).getStage().getName();
tempData[1] = events.get(x).getName();
tempData[2] = events.get(x).getArtist().getName();
tempData[3] = new Integer(events.get(x).getStartTime());
tempData[4] = new Integer(events.get(x).getEndTime());
data[x] = tempData;
}
}
/**
* Refreshes the content on the table with a fresh ArrayList of events, useful when things are removed and added and should be called every time you update the list.
* @param events
*/
public void refreshContent(ArrayList<Event> events, boolean newList) {
this.events = events;
if(newList)
this.fullEvents = events;
compileData(columnNames.length,events.size());
AbstractTableModel tableModel = new ContentTable(data,columnNames);
table.setModel(tableModel);
}
/**
* Method for the action listener when a cell is clicked, opens dialog of the clicked cell.
* @param e
*/
private void cellClicked(MouseEvent e) {
JTable target = (JTable) e.getSource();
switch(target.getSelectedColumn()) {
case 0:
//A dialog for podia?
break;
case 1:
openEventDialog(target.getSelectedRow());
break;
case 2:
openArtistDialog(target.getSelectedRow());
break;
}
}
/**
* Opens a dialog with information of the selected event.
* @param row
*/
private void openEventDialog(int row) {
JFrame frame = new JFrame();
Event event = events.get(row);
//the dialog
frame.pack();
frame.setSize(300, 200);
frame.setLocationRelativeTo(this);
frame.setVisible(true);
}
/**
* Opens a dialog with information of the selected artist
* @param row
*/
private void openArtistDialog(int row) {
JFrame frame = new JFrame();
Artist artsit = events.get(row).getArtist();
//the dialog
frame.pack();
frame.setSize(300, 200);
frame.setLocationRelativeTo(this);
frame.setVisible(true);
}
/**
* Filter method which filters on the currently selected cell.
* Needs to be under a button action, also a reset button is needed so list can be restored.
*/
public void filter() {
if(selectedCell != null) {
if(fullEvents.isEmpty()) {
fullEvents = events;
}
ArrayList<Event> filteredList = new ArrayList<>();
switch(selectedCell.getSelectedColumn()) {
case 0:
for(Event event : fullEvents) {
if(event.getStage().equals(events.get(selectedCell.getSelectedRow()).getStage())) {
filteredList.add(event);
}
}
break;
case 1:
for(Event event : fullEvents) {
if(event.equals(events.get(selectedCell.getSelectedRow()))) {
filteredList.add(event);
}
}
break;
case 2:
for(Event event : fullEvents) {
if(event.getArtist().equals(events.get(selectedCell.getSelectedRow()).getArtist())) {
filteredList.add(event);
}
}
break;
}
refreshContent(filteredList,false);
selectedCell = null;
}
else {
JOptionPane.showMessageDialog(this, "Select a cell with the value u want to filter on","No cell selected",JOptionPane.WARNING_MESSAGE);
}
}
}
-88
View File
@@ -1,88 +0,0 @@
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class frame extends JFrame {
private static final long serialVersionUID = 1L;
private ArrayList<Event> events;
private TabelPanel paneel;
public static void main(String args[]) {
frame frameee = new frame();
}
public frame() {
fillArray();
setDefaultCloseOperation(EXIT_ON_CLOSE);
paneel = new TabelPanel(events);
getContentPane().add(paneel);
JButton button;
JPanel botPanel = new JPanel();
button = new JButton("Filta");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { paneel.filter(); }
});
botPanel.add(button);
button = new JButton("Reset filta");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { paneel.refreshContent(events,true); }
});
botPanel.add(button);
add(botPanel,BorderLayout.SOUTH);
pack();
setSize(800,600);
setVisible(true);
}
private void fillArray() {
Artist artist1 = new Artist("John","","","");
Artist artist2 = new Artist("Jan","","","");
Artist artist3 = new Artist("Jaap","","","");
Artist artist4 = new Artist("Banaan","","","");
Artist artist5 = new Artist("Josti","","","");
Stage stage1 = new Stage("podia1",1,"");
Stage stage2 = new Stage("podia2",1,"");
Stage stage3 = new Stage("podia3",1,"");
Stage stage4 = new Stage("podia4",1,"");
Stage stage5 = new Stage("podia5",1,"");
events = new ArrayList<>();
events.add(new Event("event1",stage1,artist1,1605,1640,""));
events.add(new Event("event2",stage1,artist2,1605,1640,""));
events.add(new Event("event3",stage3,artist3,1605,1640,""));
events.add(new Event("event4",stage1,artist4,1605,1640,""));
events.add(new Event("event5",stage5,artist5,1605,1640,""));
}
private void fillArray2() {
Artist artist1 = new Artist("2","","","");
Artist artist2 = new Artist("2","","","");
Artist artist3 = new Artist("2","","","");
Artist artist4 = new Artist("2","","","");
Artist artist5 = new Artist("2","","","");
Stage stage1 = new Stage("podia1",1,"");
Stage stage2 = new Stage("podia2",1,"");
Stage stage3 = new Stage("podia3",1,"");
Stage stage4 = new Stage("podia4",1,"");
Stage stage5 = new Stage("podia5",1,"");
events = new ArrayList<>();
events.add(new Event("event1",stage1,artist1,1605,1640,""));
events.add(new Event("event2",stage1,artist2,1605,1640,""));
events.add(new Event("event3",stage3,artist3,1605,1640,""));
events.add(new Event("event4",stage4,artist4,1605,1640,""));
events.add(new Event("event5",stage1,artist5,1605,1640,""));
}
public void refresh() {
fillArray2();
paneel.refreshContent(events,true);
}
}
+16
View File
@@ -0,0 +1,16 @@
Eventuele methode om de Arraylisten mee te vullen.
public void test()
{
Artist artist = new Artist("Paul", "Rock", "null", "description");
Event e = new Event(2015,2,13,15,0,2015,2,13,16,0,artist,"Description",7, 1);
Stage s = new Stage("Main Stage", 1);
addArtist(artist);
addEvent(e);
addStage(s);
saveAll();
fillAll();
System.out.println("Saved All Data!");
}