7 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
18 changed files with 957 additions and 649 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;
}
}
-27
View File
@@ -1,27 +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(String genre, String name, String description, ImageIcon image, int id)
{
this.genre = genre;
this.name = name;
this.description = description;
this.image = image;
this.id = id;
}
public int getID()
{
return id;
}
}
+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()) + ".";
}
}
-34
View File
@@ -1,34 +0,0 @@
public class Event
{
private int startTime;
private int endTime;
private Artist artist;
private String description;
private int id;
public Event(int startTime, int endTime, Artist artist, String description, int id)
{
this.startTime = startTime;
this.endTime = endTime;
this.artist = artist;
this.description = description;
this.id = id;
}
public Artist getArtist()
{
return artist;
}
public int getStartTime()
{
return startTime;
}
public int getID()
{
return id + 10;
}
}
+5
View File
@@ -0,0 +1,5 @@
public class GUI {
//Leeg
}
-51
View File
@@ -1,51 +0,0 @@
import java.awt.BorderLayout;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class GUI extends JFrame
{
private Timeline timeline;
public GUI()
{
super("Gui");
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
// JPanel contentPane = new JPanel(new BorderLayout());
// this.setContentPane(contentPane);
// this.setSize(600, 600);
// this.setVisible(true);
// System.out.println(contentPane.getWidth());
// timeline = new Timeline(contentPane);
// contentPane.add(timeline,BorderLayout.CENTER);
// contentPane.add(timeline.createWestPanel(), BorderLayout.WEST);
// timeline.refresh();
TimelinePanel panel = new TimelinePanel();
this.setContentPane(panel);
this.setSize(600, 600);
this.setVisible(true);
this.getRootPane().addComponentListener(new ComponentAdapter()
{
public void componentResized(ComponentEvent e) {
panel.refresh();
}
});
}
public static void main(String[] args)
{
new GUI();
}
}
-6
View File
@@ -1,6 +0,0 @@
# BELANGRIJK
De .jar file moet als externe Library toegevoegd worden.
De sprites folder moet in de root van het project.
BRANCH VAN YORICK
Ja, codemess please.
+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;
}
}
-57
View File
@@ -1,57 +0,0 @@
import java.util.ArrayList;
public class Stage
{
private ArrayList<Event> performances;
private int expectedPopularity;
private String description;
private int length;
private int startTime,endTime;
public Stage(ArrayList<Event> performances, int expectedPopularity, String description, int startTime, int endTime)
{
this.performances = performances;
this.expectedPopularity = expectedPopularity;
this.description = description;
this.startTime = startTime;
this.endTime = endTime;
this.length = endTime - startTime;
}
public void setStartTime(int startTime)
{
this.startTime = startTime;
}
public void setEndTime(int endTime)
{
this.endTime = endTime;
}
public ArrayList<Event> getPerformances()
{
return performances;
}
// public int getID()
// {
// return id + 100;
// }
public int getLength()
{
return length;
}
public int getStartTime()
{
return startTime;
}
public int getEndTime()
{
return endTime;
}
}
-90
View File
@@ -1,90 +0,0 @@
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.LayoutManager;
import java.awt.image.BufferedImage;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class StagePanel extends JPanel
{
private BufferedImage image;
private int width, height, posX;
private Stage stage;
public StagePanel(int width, int height, int posX, Stage stage)
{
this.width = width;
this.height = height;
this.posX = posX;
this.stage = stage;
image = new BufferedImage(this.width, this.height, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2 = image.createGraphics();
g2.setColor(Color.blue);
g2.fillRect(0, 0, image.getWidth(), image.getHeight());
}
public void paint(Graphics g)
{
super.paint(g);
((Graphics2D)g).drawImage(image, this.posX, 0, this);
}
public StagePanel(LayoutManager arg0)
{
super(arg0);
}
public StagePanel(boolean arg0)
{
super(arg0);
}
public void update(int posx)
{
this.posX = posx;
repaint();
}
public StagePanel(LayoutManager arg0, boolean arg1)
{
super(arg0, arg1);
}
public int getPosX()
{
return this.posX;
}
public void setLength(int length)
{
this.width = length;
}
public void setStageStartTime(int startTime)
{
stage.setStartTime(startTime);
}
public void setStageEndTime(int endTime)
{
stage.setEndTime(endTime);
}
public int getStageStartTime()
{
return stage.getStartTime();
}
public int getImageWidth()
{
return this.width;
}
}
-358
View File
@@ -1,358 +0,0 @@
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionAdapter;
import java.awt.event.MouseMotionListener;
import java.util.ArrayList;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
@SuppressWarnings({ "serial" })
public class Timeline extends JPanel
{
private ArrayList<Stage> stages = new ArrayList<Stage>();
private JPanel frame;
// Geef dit object je JFrame mee, en zet in je JFrame de volgende code:
// this.setContentPane(timeline.getTimeline());
// this.getRootPane().addComponentListener(new ComponentAdapter()
// {
// public void componentResized(ComponentEvent e) {
// timeline.refresh();
// }
// });
public Timeline(JPanel frame)
{
super();
this.frame = frame;
genStages();
this.setSize(frame.getWidth(), frame.getHeight());
refresh();
}
public void refresh()
{
this.removeAll();
// createWestPanel();
createMainPanel();
this.revalidate();
}
private void createMainPanel()
{
JPanel mainPanel = new JPanel();
mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
Container topContainer = createTopPanel();
Dimension dim = new Dimension(this.getWidth(), 60);
topContainer.setMaximumSize(dim);
mainPanel.add(topContainer);
Dimension centerDim = new Dimension(this.getWidth(), frame.getHeight());
// Container centerContainer = createCenterPanel();
JPanel centerContainer = createCenterPanel();
centerContainer.setPreferredSize(centerDim);
centerContainer.setMaximumSize(centerDim);
System.out.println(centerDim);
mainPanel.add(centerContainer);
this.add(mainPanel, BorderLayout.CENTER);
}
private JPanel createCenterPanel()
{
JPanel centerPanel = new JPanel();
centerPanel.setBackground(Color.lightGray);
centerPanel.setLayout(new BoxLayout(centerPanel, BoxLayout.Y_AXIS));
centerPanel.add(Box.createRigidArea(new Dimension(0, 30)));
for(Stage stage : stages)
{
StagePanel stagepanel = new StagePanel(calcLengthOfStage(stage.getLength()), 30, calcPositionOfStage(stage.getStartTime()), stage);
Container content = stagepanel;
content.setMaximumSize(new Dimension(this.getWidth(),30));
content.addMouseListener(new MouseListener() {
@Override
public void mouseReleased(MouseEvent e) {
resizeTimeline(stagepanel);
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseClicked(MouseEvent e) {
}
});
content.addMouseMotionListener(new MouseMotionListener() {
@Override
public void mouseMoved(MouseEvent e) {
}
@Override
public void mouseDragged(MouseEvent e) {
stagepanel.update(e.getX() - stagepanel.getImageWidth() / 2);
}
});
centerPanel.add(content);
centerPanel.add(Box.createRigidArea(new Dimension(0,15)));
}
// this.add(centerPanel, BorderLayout.CENTER);
return centerPanel;
}
public void resizeTimeline(StagePanel stagepanel)
{
int min = findMinMax(1);
int max = findMinMax(2);
// System.out.println(stagepanel.getStageStartTime());
// System.out.println(calcStartTimeOfStagePanel(stagepanel.getPosX()));
stagepanel.setStageStartTime(calcStartTimeOfStagePanel(stagepanel.getPosX()));
stagepanel.setStageEndTime(calcEndTimeOfStagePanel(stagepanel.getPosX(), stagepanel.getImageWidth()));
// stagepanel.setLength(calcLengthOfStagePanel(stagepanel.getImageWidth()));
// System.out.println(calcLengthOfStagePanel(stagepanel.getImageWidth()));
refresh();
}
public int calcLengthOfStage(int length)
{
double lengthOfStage = 0;
int min = findMinMax(1);
int max = findMinMax(2);
double frameWidth = this.getWidth();
double pixelsPerLength = frameWidth / (max - min);
lengthOfStage = pixelsPerLength * (double)length;
// System.out.println((int)lengthOfStage);
return (int)lengthOfStage;
}
public int calcLengthOfStagePanel(int length)
{
double lengthOfStagePanel = 0;
int min = findMinMax(1);
int max = findMinMax(2);
// System.out.println(length);
double frameWidth = this.getWidth();
double pixelsPerLength = frameWidth / (max - min);
// System.out.println(pixelsPerLength);
lengthOfStagePanel = (double)length / pixelsPerLength;
// System.out.println(lengthOfStagePanel);
return (int)lengthOfStagePanel;
}
public int calcPositionOfStage(int startTime)
{
int posx = 0;
int min = findMinMax(1);
int max = findMinMax(2);
posx = startTime - min;
posx = posx * this.getWidth() / (max-min);
// System.out.println("Frame: " + this.getWidth());
// System.out.println("startTime: " + startTime);
// System.out.println("Max: " + max + " min: " + min);
// System.out.println("Posx: " + posx);
return posx;
}
public int calcStartTimeOfStagePanel(int posx)
{
int min = findMinMax(1);
int max = findMinMax(2);
// double startTime = (posx / (this.getWidth() / (max - min )) ) + min;
//Omdat het anders onnodig afgerond wordt, alles apart in doubles.
double minmax = max-min;
double bottom = this.getWidth() / minmax;
double all = posx / bottom;
double startTime = all + min;
// System.out.println("starttime----------------");
// System.out.println("Frame: " + this.getWidth());
// System.out.println("startTime: " + startTime);
// System.out.println("Max: " + max + " min: " + min);
// System.out.println("Posx: " + posx);
return (int)startTime;
}
public int calcEndTimeOfStagePanel(int posx, int imageWidth)
{
int min = findMinMax(1);
int max = findMinMax(2);
//Omdat het anders onnodig afgerond wordt, alles apart in doubles.
double minmax = max-min;
double bottom = this.getWidth() / minmax;
double all = posx / bottom;
double endTime = all + min + calcLengthOfStagePanel(imageWidth);
// System.out.println(calcLengthOfStagePanel(imageWidth));
// System.out.println(endTime);
return (int)endTime;
}
public int findMinMax(int i)
{
// Event oldevent = new Event(0, 0, null, "Base", 0);
// ArrayList<Event> oldevents = new ArrayList<Event>();
// oldevents.add(oldevent);
// Stage oldstage = new Stage(oldevents,0,null, 0, 0);
ArrayList<Stage> stagescopy = (ArrayList<Stage>) stages.clone();
Integer earliestStartTime = null;
Integer lastEndTime = null;
for(Stage stage : stagescopy)
{
if(i == 1)
{
if(earliestStartTime == null)
{
earliestStartTime = stage.getStartTime();
}
else
{
if(stage.getStartTime() < earliestStartTime)
{
earliestStartTime = stage.getStartTime();
}
}
}
else if( i == 2)
{
if(lastEndTime == null)
{
lastEndTime = stage.getEndTime();
}
else
{
if(stage.getEndTime() > lastEndTime)
{
lastEndTime = stage.getEndTime();
}
}
}
}
if(i == 1)
{
return earliestStartTime;
}
else if(i == 2)
{
return lastEndTime;
}
else
{
System.out.println("Return -1");
return -1;
}
}
private JPanel createTopPanel()
{
JPanel topPane = new JPanel();
topPane.setLayout(new BoxLayout(topPane, BoxLayout.Y_AXIS));
JPanel topPanel = new JPanel(new FlowLayout());
for(int i = 0; i <= this.getWidth() / 10; i++)
{
ImageIcon topImageIcon = new ImageIcon("src/test2.png");
JLabel topImage = new JLabel(topImageIcon);
topPanel.add(topImage);
}
topPane.add(Box.createRigidArea(new Dimension(0,20)));
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
panel.add(Box.createRigidArea(new Dimension(50, 10)));
panel.add(new JLabel(Integer.toString(findMinMax(1))));
panel.add(Box.createHorizontalGlue());
panel.add(new JLabel(Integer.toString(findMinMax(2))));
panel.add(Box.createRigidArea(new Dimension(50, 10)));
topPane.add(panel);
topPane.add(topPanel);
// this.add(topPane, BorderLayout.NORTH);
return topPane;
}
public JPanel createWestPanel()
{
JPanel westPanel = new JPanel();
westPanel.setLayout(new BoxLayout(westPanel, BoxLayout.Y_AXIS));
westPanel.add(Box.createRigidArea(new Dimension(0, 100)));
for(int i = 0; i < stages.size(); i++)
{
JLabel stageText = new JLabel("Stage: " + (i+1) + " ");
westPanel.add(stageText);
westPanel.add(Box.createRigidArea(new Dimension(0, 30 )));
}
// this.add(westPanel, BorderLayout.WEST);
return westPanel;
}
private void genStages()
{
ImageIcon image = new ImageIcon();
Artist artist2 = new Artist("Henk", "paul2", "kaas", image, 2);
Artist artist1 = new Artist("Kaas", "Paul", "Lala", image, 1);
Event event2 = new Event(1900, 2000, artist2, "hi2", 2);
Event event1 = new Event(600, 1800, artist1, "hi", 1);
ArrayList<Event> performances = new ArrayList<Event>();
performances.add(event1);
performances.add(event2);
Stage stage1 = new Stage(performances, 100, null, 1800, 2100);
stages.add(stage1);
Stage stage2 = new Stage(performances, 100, null, 1700, 1900);
Stage stage3 = new Stage(performances, 100, null, 1600, 1800);
Stage stage4 = new Stage(performances, 100, null, 1600, 2100);
stages.add(stage3);
stages.add(stage2);
// stages.add(stage4);
}
public JPanel getTimeline()
{
return this;
}
}
-26
View File
@@ -1,26 +0,0 @@
import java.awt.BorderLayout;
import javax.swing.JPanel;
public class TimelinePanel extends JPanel {
private Timeline timeline;
public TimelinePanel()
{
super(new BorderLayout());
this.setSize(600, 600);
this.setVisible(true);
timeline = new Timeline(this);
this.add(timeline,BorderLayout.CENTER);
this.add(timeline.createWestPanel(), BorderLayout.WEST);
}
public void refresh()
{
timeline.refresh();
}
}
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 155 B

+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!");
}