Implemented Add dialogs. Fixed some Add Event bugs.
This commit is contained in:
@@ -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(HIDE_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.getArtists())
|
||||
{
|
||||
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, 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,307 @@
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.FlowLayout;
|
||||
import java.awt.GridLayout;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.util.GregorianCalendar;
|
||||
|
||||
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.JSeparator;
|
||||
import javax.swing.JTextField;
|
||||
import javax.swing.SwingConstants;
|
||||
|
||||
|
||||
public class AddEventPanel extends JFrame{
|
||||
|
||||
private static final long serialVersionUID = 1;
|
||||
|
||||
public AddEventPanel(Agenda agenda)
|
||||
{
|
||||
super("Event addscreen!");
|
||||
setDefaultCloseOperation(HIDE_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);
|
||||
|
||||
GregorianCalendar today = new GregorianCalendar();
|
||||
|
||||
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);
|
||||
hour.setSelectedIndex(today.get(GregorianCalendar.HOUR_OF_DAY));
|
||||
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);
|
||||
minute.setSelectedIndex(today.get(GregorianCalendar.MINUTE));
|
||||
panel4.add(minute);
|
||||
panel4.add(new JSeparator(SwingConstants.VERTICAL));
|
||||
panel4.add(new JSeparator(SwingConstants.VERTICAL));
|
||||
|
||||
|
||||
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);
|
||||
day.setSelectedIndex(today.get(GregorianCalendar.DAY_OF_MONTH) - 1);
|
||||
panel4.add(day);
|
||||
|
||||
String[] months = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
|
||||
JComboBox<String> month = new JComboBox<String>(months);
|
||||
month.setSelectedIndex(today.get(GregorianCalendar.MONTH));
|
||||
panel4.add(month);
|
||||
|
||||
|
||||
Integer[] years = { 2015,2016,2017,2018};
|
||||
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);
|
||||
hourE.setSelectedIndex(today.get(GregorianCalendar.HOUR_OF_DAY));
|
||||
JPanel panel6 = new JPanel();
|
||||
panel6.add(hourE);
|
||||
center.add(panel6);
|
||||
|
||||
JComboBox<Integer> minuteE = new JComboBox<Integer>(minutes);
|
||||
minuteE.setSelectedIndex(today.get(GregorianCalendar.MINUTE));
|
||||
panel6.add(minuteE);
|
||||
panel6.add(new JSeparator(SwingConstants.VERTICAL));
|
||||
panel6.add(new JSeparator(SwingConstants.VERTICAL));
|
||||
|
||||
|
||||
JComboBox<Integer> dayE = new JComboBox<Integer>(days);
|
||||
dayE.setSelectedIndex(today.get(GregorianCalendar.DAY_OF_MONTH) - 1);
|
||||
panel6.add(dayE);
|
||||
|
||||
JComboBox<String> monthE = new JComboBox<String>(months);
|
||||
monthE.setSelectedIndex(today.get(GregorianCalendar.MONTH));
|
||||
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.getArtists().size()];
|
||||
|
||||
for ( int idx = 0; idx < agenda.getArtists().size(); idx ++)
|
||||
{
|
||||
artists[idx] = agenda.getArtists().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.getStages().size()];
|
||||
|
||||
for ( int idx = 0; idx < agenda.getStages().size(); idx ++)
|
||||
{
|
||||
stages[idx] = agenda.getStages().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() + 1;
|
||||
String monthS = (String) month.getSelectedItem();
|
||||
int yearS = year.getSelectedIndex() + 2015;
|
||||
|
||||
int hourEnd = hourE.getSelectedIndex();
|
||||
int minuteEnd = minuteE.getSelectedIndex();
|
||||
int dayEnd = dayE.getSelectedIndex() + 1;
|
||||
String monthEnd = (String) monthE.getSelectedItem();
|
||||
int yearEnd = yearE.getSelectedIndex() + 2015;
|
||||
|
||||
String artistName = (String)artist.getSelectedItem();
|
||||
|
||||
Artist artist = null;
|
||||
|
||||
for(Artist a : agenda.getArtists())
|
||||
{
|
||||
if (a.getName().equals(artistName))
|
||||
{
|
||||
artist = a;
|
||||
}
|
||||
}
|
||||
|
||||
String stageName = (String)stage2.getSelectedItem();
|
||||
|
||||
Stage stage = null;
|
||||
|
||||
for(Stage s : agenda.getStages())
|
||||
{
|
||||
if (s.getName().equals(stageName))
|
||||
{
|
||||
stage = s;
|
||||
}
|
||||
}
|
||||
|
||||
String description = descriptionTF.getText();
|
||||
|
||||
int popularity = ep.getSelectedIndex() + 1;
|
||||
|
||||
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! It can't be longer than a single day.");
|
||||
} 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();
|
||||
Window.updatePanel("table");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
setContentPane(content);
|
||||
setVisible(true);
|
||||
setSize(700,320);
|
||||
|
||||
}
|
||||
|
||||
public int monthToInt(String month)
|
||||
{
|
||||
int number = 0;
|
||||
switch (month)
|
||||
{
|
||||
case "January": number = 1; break;
|
||||
case "February": number = 2; break;
|
||||
case "March": number = 3; break;
|
||||
case "April": number = 4; break;
|
||||
case "May": number = 5; break;
|
||||
case "June":number = 6; break;
|
||||
case "July": number = 7; break;
|
||||
case "August": number = 8; break;
|
||||
case "September":number = 9; break;
|
||||
case "October": number = 10; break;
|
||||
case "November": number = 11; break;
|
||||
case "December": number = 12; 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,91 @@
|
||||
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!");
|
||||
setDefaultCloseOperation(HIDE_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.getStages())
|
||||
{
|
||||
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);
|
||||
}
|
||||
|
||||
}
|
||||
+3
-3
@@ -27,21 +27,21 @@ public class MenuBar extends JMenuBar {
|
||||
newEvent.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, ActionEvent.CTRL_MASK));
|
||||
newEvent.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
//TODO
|
||||
new AddEventPanel(w.getAgenda());
|
||||
}
|
||||
});
|
||||
|
||||
JMenuItem newArtist = new JMenuItem("New Artist");
|
||||
newArtist.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
//TODO
|
||||
new AddArtistPanel(w.getAgenda());
|
||||
}
|
||||
});
|
||||
|
||||
JMenuItem newStage = new JMenuItem("New Stage");
|
||||
newStage.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
//TODO
|
||||
new AddStagePanel(w.getAgenda());
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
+1
-1
@@ -87,7 +87,7 @@ public class PanelTable extends JPanel implements Panel{
|
||||
data = new Object[rows][columnes];
|
||||
for(int x = 0; x < rows; x++) {
|
||||
Object[] tempData = new Object[columnes];
|
||||
tempData[0] = "Stage 1";
|
||||
tempData[0] = events.get(x).getStage().getName();
|
||||
tempData[1] = events.get(x).getEventName();
|
||||
tempData[2] = events.get(x).getArtist().getName();
|
||||
tempData[3] = formatter.format(events.get(x).getStartDate().getTime());
|
||||
|
||||
Reference in New Issue
Block a user