Iteración 3(Versión sin idiomas)
[ISBets21MAUBRY] / eclipse-workspace / ISBets21MAUBRY / src / main / java / gui / CreateEventGUI.java
1 package gui;
2
3 import java.awt.Color;
4 import java.awt.Font;
5 import java.awt.Frame;
6 import java.awt.SystemColor;
7 import java.awt.event.ActionEvent;
8 import java.awt.event.ActionListener;
9 import java.beans.PropertyChangeEvent;
10 import java.beans.PropertyChangeListener;
11 import java.util.Calendar;
12 import java.util.Date;
13 import java.util.Locale;
14
15 import javax.swing.JButton;
16 import javax.swing.JFrame;
17 import javax.swing.JLabel;
18 import javax.swing.JOptionPane;
19 import javax.swing.JPanel;
20 import javax.swing.JTextField;
21 import javax.swing.border.EmptyBorder;
22
23 import com.toedter.calendar.JCalendar;
24
25 import businessLogic.BLFacade;
26 import configuration.UtilDate;
27 import domain.AdminUser;
28 import domain.Event;
29
30 public class CreateEventGUI extends JFrame {
31
32         private JPanel contentPane;
33         private JTextField textEvento;
34         private static BLFacade facade = LoginGUI.getBusinessLogic();
35         private Calendar calendarAct = null;
36         private Calendar calendarAnt = null;
37
38         private AdminUser userlog = null;
39         private JButton btnAtras;
40         private JButton btnCrearEvento = new JButton("Crear evento");
41
42         public static void setBusinessLogic(BLFacade pfacade) {
43                 facade = pfacade;
44         }
45
46         public static BLFacade getBusinessLogic() {
47                 return facade;
48         }
49
50         public CreateEventGUI(AdminUser au) {
51
52                 userlog = au;
53
54                 setTitle("Crear evento");
55                 setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
56                 setBounds(100, 100, 585, 407);
57                 contentPane = new JPanel();
58                 contentPane.setBackground(Color.WHITE);
59                 contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
60                 setContentPane(contentPane);
61                 contentPane.setLayout(null);
62
63                 JCalendar jCalendar1 = new JCalendar();
64                 jCalendar1.getDayChooser().getDayPanel().setBackground(Color.WHITE);
65                 jCalendar1.addPropertyChangeListener(new PropertyChangeListener() {
66                         @Override
67                         public void propertyChange(PropertyChangeEvent evt) {
68                                 if (evt.getPropertyName().equals("locale")) {
69                                         jCalendar1.setLocale((Locale) evt.getNewValue());
70                                 } else if (evt.getPropertyName().equals("calendar")) {
71                                         calendarAnt = (Calendar) evt.getOldValue();
72                                         calendarAct = (Calendar) evt.getNewValue();
73
74                                         int monthAnt = calendarAnt.get(Calendar.MONTH);
75                                         int monthAct = calendarAct.get(Calendar.MONTH);
76                                         if (monthAct != monthAnt) {
77                                                 if (monthAct == monthAnt + 2) {
78                                                         // Si en JCalendar está 30 de enero y se avanza al mes siguiente, devolvería 2
79                                                         // de marzo (se toma como equivalente a 30 de febrero)
80                                                         // Con este código se dejará como 1 de febrero en el JCalendar
81                                                         calendarAct.set(Calendar.MONTH, monthAnt + 1);
82                                                         calendarAct.set(Calendar.DAY_OF_MONTH, 1);
83                                                 }
84
85                                                 jCalendar1.setCalendar(calendarAct);
86
87                                         }
88
89                                 }
90
91                         }
92                 });
93                 jCalendar1.setBounds(163, 30, 266, 175);
94                 contentPane.add(jCalendar1);
95
96                 JLabel lblNewLabel = new JLabel("Introduzca fecha:");
97                 lblNewLabel.setBounds(41, 115, 103, 14);
98                 contentPane.add(lblNewLabel);
99
100                 JLabel lblNewLabel_1 = new JLabel("Introduzca partido:");
101                 lblNewLabel_1.setBounds(41, 242, 113, 14);
102                 contentPane.add(lblNewLabel_1);
103
104                 textEvento = new JTextField();
105                 textEvento.setBounds(163, 237, 266, 23);
106                 textEvento.setForeground(Color.GRAY);
107                 textEvento.setFont(new Font("Arial", Font.PLAIN, 16));
108                 contentPane.add(textEvento);
109                 textEvento.setColumns(10);
110                 btnCrearEvento.setBackground(SystemColor.textHighlight);
111                 btnCrearEvento.setForeground(Color.WHITE);
112                 btnCrearEvento.setFont(new Font("Dialog", Font.BOLD, 14));
113
114 //              btnCrearEvento.setText(ResourceBundle.getBundle("Etiquetas").getString("CreateEvent"));
115                 btnCrearEvento.setText("CreateEvent");
116                 btnCrearEvento.addActionListener(new ActionListener() {
117                         @Override
118                         public void actionPerformed(ActionEvent e) {
119                                 Date date = UtilDate.trim(new Date(jCalendar1.getCalendar().getTime().getTime()));
120
121                                 if (textEvento.getText().equals("")) {
122                                         JOptionPane.showMessageDialog(getContentPane(), "El evento no puede estar vacío", "Error",
123                                                         JOptionPane.ERROR_MESSAGE);
124                                 } else {
125
126                                         Event ev = new Event(facade.getMaxIdInDB() + 1, textEvento.getText(), date);
127
128                                         boolean exist = facade.existEvent(ev);
129
130                                         if (exist == false) {
131
132                                                 boolean ins = facade.insertEvent(ev);
133
134                                                 if (ins) {
135                                                         JOptionPane.showMessageDialog(contentPane, "Evento añadido correctamente");
136
137                                                 } else {
138                                                         JOptionPane.showMessageDialog(contentPane, "No se ha podido añadir el evento");
139
140                                                 }
141
142                                                 Frame gui = new MainAdminGUI(userlog);
143                                                 gui.setAlwaysOnTop(true);
144                                                 gui.setVisible(true);
145                                                 close();
146                                         } else {
147                                                 JOptionPane.showMessageDialog(contentPane, "Evento ya existente");
148                                         }
149                                 }
150
151                         }
152                 });
153                 btnCrearEvento.setBounds(220, 310, 145, 23);
154                 contentPane.add(btnCrearEvento);
155
156                 btnAtras = new JButton();
157                 btnAtras.setBackground(SystemColor.controlShadow);
158                 btnAtras.setForeground(Color.WHITE);
159                 btnAtras.setFont(new Font("Dialog", Font.BOLD, 14));
160 //              btnAtras.setText(ResourceBundle.getBundle("Etiquetas").getString("Close"));
161                 btnAtras.setText("Close");
162
163                 btnAtras.addActionListener(new ActionListener() {
164                         @Override
165                         public void actionPerformed(ActionEvent arg0) {
166
167                                 Frame fr = new MainAdminGUI(userlog);
168                                 fr.setAlwaysOnTop(true);
169                                 fr.setVisible(true);
170                                 dispose();
171
172                         }
173                 });
174                 btnAtras.setBounds(12, 310, 113, 23);
175                 contentPane.add(btnAtras);
176         }
177
178         public void close() {
179                 this.setVisible(false);
180         }
181 }