|
|
@@ -2,23 +2,17 @@ package gui.panels.edit.dialogs;
|
|
|
|
|
|
import java.awt.Color;
|
|
|
import java.awt.Component;
|
|
|
+import java.awt.Font;
|
|
|
import java.awt.Label;
|
|
|
import java.awt.event.ActionEvent;
|
|
|
import java.awt.event.ActionListener;
|
|
|
+import java.awt.event.MouseEvent;
|
|
|
+import java.awt.event.MouseListener;
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.Enumeration;
|
|
|
+import java.util.Iterator;
|
|
|
|
|
|
-import javax.swing.BoxLayout;
|
|
|
-import javax.swing.DefaultListModel;
|
|
|
-import javax.swing.JButton;
|
|
|
-import javax.swing.JComboBox;
|
|
|
-import javax.swing.JDialog;
|
|
|
-import javax.swing.JLabel;
|
|
|
-import javax.swing.JList;
|
|
|
-import javax.swing.JOptionPane;
|
|
|
-import javax.swing.JPanel;
|
|
|
-import javax.swing.JScrollPane;
|
|
|
-import javax.swing.JTextField;
|
|
|
-import javax.swing.ListCellRenderer;
|
|
|
+import javax.swing.*;
|
|
|
|
|
|
import agenda.Act;
|
|
|
import agenda.ActTime;
|
|
|
@@ -32,9 +26,11 @@ import agenda.Stage;
|
|
|
public class ActDialogPanel extends JDialog{
|
|
|
|
|
|
private Agenda agenda;
|
|
|
- private JTextField name, genre;
|
|
|
+ private JTextField name, genre, beginTime, endTime;
|
|
|
private JComboBox stageComboBox;
|
|
|
-
|
|
|
+ private JRadioButton radio1, radio2, radio3, radio4, radio5;
|
|
|
+ private ButtonGroup radioButtons;
|
|
|
+
|
|
|
private DefaultListModel model;
|
|
|
private final DefaultListModel artistModel = new DefaultListModel();
|
|
|
private Act act;
|
|
|
@@ -42,16 +38,23 @@ public class ActDialogPanel extends JDialog{
|
|
|
public ActDialogPanel(Agenda agenda, DefaultListModel model){
|
|
|
this.agenda = agenda;
|
|
|
this.model = model;
|
|
|
-
|
|
|
+ this.getContentPane().setBackground( Color.WHITE );
|
|
|
+
|
|
|
JPanel main = new JPanel();
|
|
|
+ main.setOpaque(false);
|
|
|
main.setLayout(new BoxLayout(main, BoxLayout.Y_AXIS));
|
|
|
- main.add(new Label("new act"));
|
|
|
+ Label label = new Label("New Act");
|
|
|
+ label.setBackground(Color.WHITE);
|
|
|
+ label.setFont(new Font("Arial", Font.PLAIN, 14));
|
|
|
+ main.add(label);
|
|
|
main.add(this.namePanel());
|
|
|
//add
|
|
|
+ main.setBorder(BorderFactory.createEmptyBorder(10, 20, 10, 20));
|
|
|
main.add(this.stageChooser());
|
|
|
main.add(this.genreChooser());
|
|
|
//todo dates
|
|
|
main.add(this.dates());
|
|
|
+ main.add(this.popularity());
|
|
|
main.add(this.artistsChooser());
|
|
|
|
|
|
main.add(this.buttons());
|
|
|
@@ -64,10 +67,14 @@ public class ActDialogPanel extends JDialog{
|
|
|
this.agenda = agenda;
|
|
|
this.model = model;
|
|
|
this.act = act;
|
|
|
+ this.getContentPane().setBackground( Color.WHITE );
|
|
|
|
|
|
JPanel main = new JPanel();
|
|
|
+ main.setOpaque(false);
|
|
|
main.setLayout(new BoxLayout(main, BoxLayout.Y_AXIS));
|
|
|
- main.add(new Label("edit act"));
|
|
|
+ Label label = new Label("Edit Act");
|
|
|
+ label.setFont(new Font("Arial", Font.PLAIN, 11));
|
|
|
+ main.add(label);
|
|
|
main.add(this.namePanel());
|
|
|
this.name.setText(act.getName());
|
|
|
//add
|
|
|
@@ -80,17 +87,25 @@ public class ActDialogPanel extends JDialog{
|
|
|
for(Artist artist: this.act.getArtists()){
|
|
|
this.artistModel.addElement(artist);
|
|
|
}
|
|
|
-
|
|
|
+ main.add(this.popularity(act.getPopularity()));
|
|
|
main.add(this.artistsChooser());
|
|
|
main.add(this.buttons());
|
|
|
+
|
|
|
+ //set time
|
|
|
+ this.beginTime.setText(this.act.getActTime().getBeginTimeStringField());
|
|
|
+ this.endTime.setText(this.act.getActTime().getEndTimeStringField());
|
|
|
super.add(main);
|
|
|
}
|
|
|
|
|
|
private JPanel namePanel(){
|
|
|
JPanel name = new JPanel();
|
|
|
+ name.setOpaque(false);
|
|
|
name.setLayout(new BoxLayout(name, BoxLayout.X_AXIS));
|
|
|
- name.add(new JLabel("Name"));
|
|
|
-
|
|
|
+ name.setBorder(BorderFactory.createEmptyBorder(10, 0, 10, 0));
|
|
|
+ Label label = new Label("Name");
|
|
|
+ label.setBackground(Color.WHITE);
|
|
|
+ label.setFont(new Font("Arial", Font.PLAIN, 11));
|
|
|
+ name.add(label);
|
|
|
this.name = new JTextField();
|
|
|
|
|
|
name.add(this.name);
|
|
|
@@ -99,13 +114,18 @@ public class ActDialogPanel extends JDialog{
|
|
|
|
|
|
private JPanel stageChooser(){
|
|
|
JPanel panel = new JPanel();
|
|
|
+ panel.setOpaque(false);
|
|
|
this.stageComboBox = new JComboBox();
|
|
|
for(Stage stage: this.agenda.getStages()){
|
|
|
this.stageComboBox.addItem(stage);
|
|
|
}
|
|
|
|
|
|
panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
|
|
|
- panel.add(new JLabel("stage:"));
|
|
|
+ Label label = new Label("Stage:");
|
|
|
+ label.setBackground(Color.WHITE);
|
|
|
+ panel.setBorder(BorderFactory.createEmptyBorder(0, 0, 10, 0));
|
|
|
+ label.setFont(new Font("Arial", Font.PLAIN, 11));
|
|
|
+ panel.add(label);
|
|
|
panel.add(this.stageComboBox);
|
|
|
|
|
|
return panel;
|
|
|
@@ -113,6 +133,7 @@ public class ActDialogPanel extends JDialog{
|
|
|
|
|
|
private JPanel stageChooser(Act act){
|
|
|
JPanel panel = new JPanel();
|
|
|
+ panel.setOpaque(false);
|
|
|
this.stageComboBox = new JComboBox();
|
|
|
this.stageComboBox.addItem(act.getStage());
|
|
|
for(Stage stage: this.agenda.getStages()){
|
|
|
@@ -120,9 +141,12 @@ public class ActDialogPanel extends JDialog{
|
|
|
this.stageComboBox.addItem(stage);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ panel.setBorder(BorderFactory.createEmptyBorder(0, 0, 10, 0));
|
|
|
panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
|
|
|
- panel.add(new JLabel("stage:"));
|
|
|
+ Label label = new Label("Stage:");
|
|
|
+ label.setBackground(Color.WHITE);
|
|
|
+ label.setFont(new Font("Arial", Font.PLAIN, 11));
|
|
|
+ panel.add(label);
|
|
|
panel.add(this.stageComboBox);
|
|
|
|
|
|
return panel;
|
|
|
@@ -130,9 +154,13 @@ public class ActDialogPanel extends JDialog{
|
|
|
|
|
|
private JPanel genreChooser(){
|
|
|
JPanel genrePanel = new JPanel();
|
|
|
+ genrePanel.setOpaque(false);
|
|
|
genrePanel.setLayout(new BoxLayout(genrePanel, BoxLayout.X_AXIS));
|
|
|
- genrePanel.add(new JLabel("Genre"));
|
|
|
-
|
|
|
+ genrePanel.setBorder(BorderFactory.createEmptyBorder(0, 0, 10, 0));
|
|
|
+ Label label = new Label("Genre");
|
|
|
+ label.setBackground(Color.WHITE);
|
|
|
+ label.setFont(new Font("Arial", Font.PLAIN, 11));
|
|
|
+ genrePanel.add(label);
|
|
|
this.genre = new JTextField();
|
|
|
|
|
|
genrePanel.add(this.genre);
|
|
|
@@ -140,14 +168,108 @@ public class ActDialogPanel extends JDialog{
|
|
|
}
|
|
|
|
|
|
private JPanel dates(){
|
|
|
- JPanel dates = new JPanel();
|
|
|
+ JPanel dates = new JPanel();
|
|
|
+ dates.setOpaque(false);
|
|
|
+ dates.setBorder(BorderFactory.createEmptyBorder(0, 0, 10, 0));
|
|
|
+ dates.setLayout(new BoxLayout(dates, BoxLayout.Y_AXIS));
|
|
|
+ dates.add(this.beginTime());
|
|
|
+ dates.add(this.endTime());
|
|
|
return dates;
|
|
|
}
|
|
|
|
|
|
+ private JPanel beginTime(){
|
|
|
+ JPanel panel = new JPanel();
|
|
|
+ panel.setOpaque(false);
|
|
|
+ panel.setBorder(BorderFactory.createEmptyBorder(0, 0, 10, 0));
|
|
|
+ panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
|
|
|
+ Label label = new Label("Begintijd");
|
|
|
+ label.setBackground(Color.WHITE);
|
|
|
+ label.setFont(new Font("Arial", Font.PLAIN, 11));
|
|
|
+ panel.add(label);
|
|
|
+ this.beginTime = new JTextField("2015-02-11-12-10");
|
|
|
+ panel.add(this.beginTime);
|
|
|
+ return panel;
|
|
|
+ }
|
|
|
+
|
|
|
+ private JPanel endTime(){
|
|
|
+ JPanel panel = new JPanel();
|
|
|
+ panel.setOpaque(false);
|
|
|
+ panel.setBorder(BorderFactory.createEmptyBorder(0, 0, 10, 0));
|
|
|
+ panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
|
|
|
+ panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
|
|
|
+ Label label = new Label("Eindtijd");
|
|
|
+ label.setBackground(Color.WHITE);
|
|
|
+ label.setFont(new Font("Arial", Font.PLAIN, 11));
|
|
|
+ panel.add(label);
|
|
|
+ this.endTime = new JTextField("2015-02-11-13-20");
|
|
|
+ panel.add(this.endTime);
|
|
|
+
|
|
|
+ return panel;
|
|
|
+ }
|
|
|
+
|
|
|
+ private JPanel popularity(){
|
|
|
+ return this.popularity(3);
|
|
|
+ }
|
|
|
+
|
|
|
+ private JPanel popularity(int number){
|
|
|
+ JPanel panel = new JPanel();
|
|
|
+ panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
|
|
|
+ panel.add(new JLabel("popularity"));
|
|
|
+ panel.setOpaque(false);
|
|
|
+ JPanel buttons = new JPanel();
|
|
|
+ buttons.setLayout(new BoxLayout(buttons, BoxLayout.X_AXIS));
|
|
|
+
|
|
|
+ this.radio1 = new JRadioButton("1");
|
|
|
+ radio1.setBackground(Color.WHITE);
|
|
|
+ this.radio2 = new JRadioButton("2");
|
|
|
+ radio2.setBackground(Color.WHITE);
|
|
|
+ this.radio3 = new JRadioButton("3");
|
|
|
+ radio3.setBackground(Color.WHITE);
|
|
|
+ this.radio4 = new JRadioButton("4");
|
|
|
+ radio4.setBackground(Color.WHITE);
|
|
|
+ this.radio5 = new JRadioButton("5");
|
|
|
+ radio5.setBackground(Color.WHITE);
|
|
|
+
|
|
|
+ switch(number){
|
|
|
+ case 1:
|
|
|
+ this.radio1.setSelected(true);
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ this.radio2.setSelected(true);
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ this.radio3.setSelected(true);
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ this.radio4.setSelected(true);
|
|
|
+ break;
|
|
|
+ case 5:
|
|
|
+ this.radio5.setSelected(true);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ buttons.add(this.radio1);
|
|
|
+ buttons.add(this.radio2);
|
|
|
+ buttons.add(this.radio3);
|
|
|
+ buttons.add(this.radio4);
|
|
|
+ buttons.add(this.radio5);
|
|
|
+
|
|
|
+ this.radioButtons = new ButtonGroup();
|
|
|
+ this.radioButtons.add(this.radio1);
|
|
|
+ this.radioButtons.add(this.radio2);
|
|
|
+ this.radioButtons.add(this.radio3);
|
|
|
+ this.radioButtons.add(this.radio4);
|
|
|
+ this.radioButtons.add(this.radio5);
|
|
|
+
|
|
|
+ panel.add(buttons);
|
|
|
+ return panel;
|
|
|
+ }
|
|
|
+
|
|
|
private JPanel artistsChooser(){
|
|
|
JPanel artists = new JPanel();
|
|
|
+ artists.setOpaque(false);
|
|
|
artists.setLayout(new BoxLayout(artists, BoxLayout.X_AXIS));
|
|
|
-
|
|
|
+ artists.setBorder(BorderFactory.createEmptyBorder(0, 0, 10, 0));
|
|
|
//list
|
|
|
final JList<Act> list = new JList();
|
|
|
list.setCellRenderer(new ArtistCellRenderer());
|
|
|
@@ -159,28 +281,31 @@ public class ActDialogPanel extends JDialog{
|
|
|
|
|
|
JPanel buttonPanel = new JPanel();
|
|
|
buttonPanel.setLayout(new BoxLayout(buttonPanel, BoxLayout.Y_AXIS));
|
|
|
-
|
|
|
- JButton addArtists = new JButton("+");
|
|
|
- addArtists.addActionListener(new ActionListener() {
|
|
|
- @Override
|
|
|
- public void actionPerformed(ActionEvent e) {
|
|
|
- boolean chosen = false;
|
|
|
+ buttonPanel.setBorder(BorderFactory.createEmptyBorder(0, 10, 0, 0));
|
|
|
+ buttonPanel.setOpaque(false);
|
|
|
+ JLabel addArtists = new JLabel();
|
|
|
+ addArtists.setIcon(new ImageIcon(getClass().getResource("/add.png")));
|
|
|
+ addArtists.setForeground(new Color(51,51,51));
|
|
|
+ addArtists.addMouseListener(new MouseListener() {
|
|
|
+ @Override
|
|
|
+ public void mouseClicked(MouseEvent e) {
|
|
|
+ boolean chosen = false;
|
|
|
|
|
|
//artists
|
|
|
ArrayList listArtists = new ArrayList<Artist>();
|
|
|
//for every artist in the agenda
|
|
|
for(Artist artistAgenda: agenda.getArtists()){
|
|
|
|
|
|
- System.out.println("artist: " + artistAgenda);
|
|
|
+ System.out.println("Artist: " + artistAgenda);
|
|
|
|
|
|
//for every artist in the model.
|
|
|
for(Object artistObject: artistModel.toArray()){
|
|
|
Artist artistModel = (Artist) artistObject;
|
|
|
|
|
|
- System.out.println("vergelijk: " + artistModel + " - " + artistAgenda);
|
|
|
+ System.out.println("Vergelijk: " + artistModel + " - " + artistAgenda);
|
|
|
|
|
|
if(artistModel == artistAgenda) {
|
|
|
- System.out.println("true: " + artistModel + " - " + artistAgenda);
|
|
|
+ System.out.println("True: " + artistModel + " - " + artistAgenda);
|
|
|
chosen = true;
|
|
|
}
|
|
|
}
|
|
|
@@ -205,28 +330,65 @@ public class ActDialogPanel extends JDialog{
|
|
|
if(chosenArtist != null){
|
|
|
artistModel.addElement(chosenArtist);
|
|
|
}
|
|
|
- }
|
|
|
- });
|
|
|
+
|
|
|
+ }
|
|
|
+ @Override
|
|
|
+ public void mouseEntered(MouseEvent arg0) {
|
|
|
+
|
|
|
+ }
|
|
|
+ @Override
|
|
|
+ public void mouseExited(MouseEvent arg0) {
|
|
|
+
|
|
|
+ }
|
|
|
+ @Override
|
|
|
+ public void mousePressed(MouseEvent arg0) {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void mouseReleased(MouseEvent arg0) {
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
|
|
|
- JButton removeButton = new JButton("-");
|
|
|
- removeButton.addActionListener(new ActionListener() {
|
|
|
- @Override
|
|
|
- public void actionPerformed(ActionEvent e) {
|
|
|
- if(list.getSelectedValue() != null){
|
|
|
+ JLabel removeButton = new JLabel();
|
|
|
+ removeButton.setIcon(new ImageIcon(getClass().getResource("/remove.png")));
|
|
|
+ removeButton.addMouseListener(new MouseListener() {
|
|
|
+ @Override
|
|
|
+ public void mouseClicked(MouseEvent e) {
|
|
|
+ if(list.getSelectedValue() != null){
|
|
|
Object object = artistModel.remove(list.getSelectedIndex());
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
+ }}
|
|
|
+ @Override
|
|
|
+ public void mouseEntered(MouseEvent arg0) {
|
|
|
+
|
|
|
+ }
|
|
|
+ @Override
|
|
|
+ public void mouseExited(MouseEvent arg0) {
|
|
|
+
|
|
|
+ }
|
|
|
+ @Override
|
|
|
+ public void mousePressed(MouseEvent arg0) {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void mouseReleased(MouseEvent arg0) {
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
buttonPanel.add(addArtists);
|
|
|
buttonPanel.add(removeButton);
|
|
|
artists.add(buttonPanel);
|
|
|
return artists;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
private JPanel buttons(){
|
|
|
JPanel buttons = new JPanel();
|
|
|
-
|
|
|
- JButton save = new JButton("save");
|
|
|
+ buttons.setOpaque(false);
|
|
|
+ JButton save = new JButton("Save");
|
|
|
save.addActionListener(new ActionListener() {
|
|
|
@Override
|
|
|
public void actionPerformed(ActionEvent e) {
|
|
|
@@ -235,7 +397,7 @@ public class ActDialogPanel extends JDialog{
|
|
|
});
|
|
|
buttons.add(save);
|
|
|
|
|
|
- JButton cancel = new JButton("cancel");
|
|
|
+ JButton cancel = new JButton("Cancel");
|
|
|
cancel.addActionListener(new ActionListener() {
|
|
|
@Override
|
|
|
public void actionPerformed(ActionEvent e) {
|
|
|
@@ -271,7 +433,7 @@ public class ActDialogPanel extends JDialog{
|
|
|
|
|
|
|
|
|
if(this.act == null){
|
|
|
- Act act = new Act(this.name.getText(), (Stage) this.stageComboBox.getSelectedItem(), this.genre.getText(), new ActTime(2015,02,11,21,00 ,2015,02,11,23,00), artists);
|
|
|
+ Act act = new Act(this.name.getText(), (Stage) this.stageComboBox.getSelectedItem(), this.genre.getText(), new ActTime(this.beginTime.getText(), this.endTime.getText()), this.getSelectedButtonNumber() ,artists);
|
|
|
this.model.addElement(act);
|
|
|
this.agenda.addAct(act);
|
|
|
}else{
|
|
|
@@ -279,18 +441,32 @@ public class ActDialogPanel extends JDialog{
|
|
|
this.act.setGenre(this.genre.getText());
|
|
|
this.act.setStage((Stage) this.stageComboBox.getSelectedItem());
|
|
|
this.act.setArtists(artists);
|
|
|
+ this.act.setTime(new ActTime(this.beginTime.getText(), this.endTime.getText()));
|
|
|
+ this.act.setPopularity(this.getSelectedButtonNumber());
|
|
|
+ this.act.setActTime(new ActTime(this.beginTime.getText(), this.endTime.getText()));
|
|
|
this.model.removeElement(this.act);
|
|
|
this.model.addElement(act);
|
|
|
}
|
|
|
-
|
|
|
System.out.println(act);
|
|
|
dispose();
|
|
|
-
|
|
|
}
|
|
|
|
|
|
private void cancel(){
|
|
|
dispose();
|
|
|
}
|
|
|
+
|
|
|
+ private int getSelectedButtonNumber(){
|
|
|
+
|
|
|
+ Enumeration<AbstractButton> buttons = this.radioButtons.getElements();
|
|
|
+
|
|
|
+ while(buttons.hasMoreElements()){
|
|
|
+ AbstractButton button = buttons.nextElement();
|
|
|
+ if(button.isSelected()){
|
|
|
+ return Integer.valueOf(button.getText());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
class ArtistCellRenderer extends JLabel implements ListCellRenderer {
|