Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
70b1dba047 | ||
|
|
80a934ebb3 | ||
|
|
b94c913472 | ||
|
|
e985dbe537 | ||
|
|
0a2c7ed67c | ||
|
|
5aaf23e346 | ||
|
|
558cf0ea5c | ||
|
|
a1520cf55c | ||
|
|
1ed16ab22f | ||
|
|
b5dbb8e058 | ||
|
|
ea3d16c533 | ||
|
|
f69ac37ea8 | ||
|
|
d065860c4b | ||
|
|
4e6abc1551 | ||
|
|
6d6c5cd153 | ||
|
|
63e6138e83 | ||
|
|
a0cdeb1794 | ||
|
|
c10341c403 | ||
|
|
0e78c56ad7 | ||
|
|
c232d6a01c | ||
|
|
451ae58a77 | ||
|
|
4e81a4aa30 | ||
|
|
ff5daf1da8 | ||
|
|
26d0fa1ff3 | ||
|
|
fc0539c6ab | ||
|
|
91f113e8e3 | ||
|
|
c27d44a559 |
@@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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
@@ -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;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -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];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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);
|
|
||||||
}*/
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -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
@@ -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;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
|
|
||||||
public class Preformance {
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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!");
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user