From 80a934ebb3e5d0cabb60f824f85617a0c3440a90 Mon Sep 17 00:00:00 2001 From: guusvdongen Date: Thu, 26 Feb 2015 17:03:21 +0100 Subject: [PATCH] Create AddEventPanel.java --- AddEventPanel.java | 289 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 289 insertions(+) create mode 100644 AddEventPanel.java diff --git a/AddEventPanel.java b/AddEventPanel.java new file mode 100644 index 0000000..31a9f4b --- /dev/null +++ b/AddEventPanel.java @@ -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 hour = new JComboBox(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 minute = new JComboBox(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 day = new JComboBox(days); + panel4.add(day); + + String[] months = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"}; + JComboBox month = new JComboBox(months); + panel4.add(month); + + + Integer[] years = { 2015,2016,2017}; + JComboBox year = new JComboBox(years); + panel4.add(year); + + + + JPanel panel5 = new JPanel(); + JLabel endtime = new JLabel("Endtime: "); + panel5.add(endtime); + center.add(panel5); + + JComboBox hourE = new JComboBox(hours); + JPanel panel6 = new JPanel(); + panel6.add(hourE); + center.add(panel6); + + JComboBox minuteE = new JComboBox(minutes); + panel6.add(minuteE); + + + JComboBox dayE = new JComboBox(days); + panel6.add(dayE); + + JComboBox monthE = new JComboBox(months); + panel6.add(monthE); + + + JComboBox yearE = new JComboBox(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 artist = new JComboBox(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 stage2 = new JComboBox(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 ep = new JComboBox(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; + } + +}