Iteración 3(Versión sin idiomas)
[ISBets21MAUBRY] / eclipse-workspace / ISBets21MAUBRY / src / main / java / gui / ModificarDatosGUI.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
10 import javax.swing.BorderFactory;
11 import javax.swing.ImageIcon;
12 import javax.swing.JButton;
13 import javax.swing.JCheckBox;
14 import javax.swing.JFrame;
15 import javax.swing.JLabel;
16 import javax.swing.JOptionPane;
17 import javax.swing.JPanel;
18 import javax.swing.JPasswordField;
19 import javax.swing.JTextField;
20 import javax.swing.UIManager;
21 import javax.swing.border.Border;
22 import javax.swing.border.EmptyBorder;
23
24 import businessLogic.BLFacade;
25 import domain.RegularUser;
26
27 public class ModificarDatosGUI extends JFrame {
28
29         private JPanel contentPane;
30         private JTextField fieldUsername;
31         private JPasswordField fieldContraseña;
32         private JPasswordField fieldContraseña2;
33         private JPasswordField fieldContraseña3;
34         private JCheckBox checkContraseña;
35         private JTextField fieldNombre;
36         private JTextField fieldApellido;
37         private JTextField fieldEmail;
38         private JTextField fieldCuentaBancaria;
39         private JLabel lblUsername;
40         private JLabel lblContraseña;
41         private JLabel lblNombre;
42         private JLabel lblApellido;
43         private JLabel lblEmail;
44         private JLabel lblCuentaBancaria;
45         private JLabel lblContraseña2;
46         private JLabel lblContraseña3;
47         private JButton buttonCancelar;
48         private JButton buttonModificar;
49         private JButton buttonGuardar;
50         private static BLFacade facade = LoginGUI.getBusinessLogic();
51
52         private RegularUser userlog = null;
53         private JTextField fieldSaldo;
54         private JLabel lblSaldo;
55
56         public ModificarDatosGUI(RegularUser ru) {
57
58                 userlog = ru;
59
60                 // setTitle(ResourceBundle.getBundle("Etiquetas").getString("Show/EditProfile"));
61                 setTitle("Show/EditProfile");
62
63                 getContentPane().setLayout(null);
64                 setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
65                 setBounds(100, 10, 730, 566);
66                 contentPane = new JPanel();
67                 contentPane.setBackground(Color.WHITE);
68                 contentPane.setForeground(Color.WHITE);
69                 contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
70                 setContentPane(contentPane);
71                 contentPane.setLayout(null);
72
73                 Border border = BorderFactory.createLineBorder(Color.red, 1);
74                 Border border2 = BorderFactory.createLineBorder(SystemColor.textHighlight, 1);
75
76                 ImageIcon icon = new ImageIcon("imagenes/info.png");
77                 JLabel lblNewLabel = new JLabel(icon);
78                 lblNewLabel.setBounds(21, 0, 37, 52);
79                 contentPane.add(lblNewLabel);
80
81                 JLabel lblInfo = new JLabel("Aquí podrás ver el perfil de usuario y modificar los campos con borde azul."); //$NON-NLS-1$ //$NON-NLS-2$
82                 lblInfo.setBounds(56, 20, 486, 16);
83                 contentPane.add(lblInfo);
84
85                 lblSaldo = new JLabel("Saldo:");
86                 lblSaldo.setBounds(10, 311, 133, 13);
87                 contentPane.add(lblSaldo);
88
89                 fieldUsername = new JTextField();
90                 fieldUsername.setForeground(Color.GRAY);
91                 fieldUsername.setFont(new Font("Arial", Font.PLAIN, 16));
92                 fieldUsername.setBounds(249, 66, 262, 29);
93                 fieldUsername.setBackground(UIManager.getColor("TextField.inactiveBackground"));
94                 contentPane.add(fieldUsername);
95                 fieldUsername.setColumns(10);
96                 fieldUsername.setEditable(false);
97                 fieldUsername.setText(userlog.getUserName());
98
99                 fieldContraseña = new JPasswordField();
100                 fieldContraseña.setForeground(Color.GRAY);
101                 fieldContraseña.setFont(new Font("Arial", Font.PLAIN, 16));
102                 fieldContraseña.setBounds(249, 105, 262, 29);
103                 contentPane.add(fieldContraseña);
104                 fieldContraseña.setColumns(10);
105                 fieldContraseña.setEditable(false);
106                 fieldContraseña.setText(userlog.getUserPass());
107
108                 fieldContraseña2 = new JPasswordField();
109                 fieldContraseña2.setBounds(249, 144, 262, 29);
110                 fieldContraseña2.setFont(new Font("Arial", Font.PLAIN, 16));
111                 fieldContraseña2.setForeground(Color.GRAY);
112                 fieldContraseña2.setVisible(false);
113                 fieldContraseña2.setBorder(border2);
114
115                 fieldContraseña3 = new JPasswordField();
116                 fieldContraseña3.setBounds(249, 183, 262, 29);
117                 fieldContraseña3.setFont(new Font("Arial", Font.PLAIN, 16));
118                 fieldContraseña3.setForeground(Color.GRAY);
119                 fieldContraseña3.setBorder(border2);
120
121                 checkContraseña = new JCheckBox("Mostrar contraseña");
122                 checkContraseña.setBackground(Color.WHITE);
123
124                 checkContraseña.setVisible(false);
125                 checkContraseña.addActionListener(new ActionListener() {
126                         @Override
127                         public void actionPerformed(ActionEvent arg0) {
128
129                                 if (checkContraseña.isSelected()) {
130
131                                         fieldContraseña2.setEchoChar((char) 0);
132                                         fieldContraseña3.setEchoChar((char) 0);
133
134                                 } else {
135
136                                         fieldContraseña2.setEchoChar('•');
137                                         fieldContraseña3.setEchoChar('•');
138
139                                 }
140
141                         }
142                 });
143                 checkContraseña.setBounds(519, 168, 171, 21);
144                 contentPane.add(checkContraseña);
145
146                 fieldNombre = new JTextField();
147                 fieldNombre.setFont(new Font("Arial", Font.PLAIN, 16));
148                 fieldNombre.setForeground(Color.GRAY);
149                 fieldNombre.setText((String) null);
150                 fieldNombre.setEditable(false);
151                 fieldNombre.setColumns(10);
152                 fieldNombre.setBounds(249, 144, 262, 29);
153                 contentPane.add(fieldNombre);
154                 fieldNombre.setText(userlog.getFirstName());
155
156                 fieldApellido = new JTextField();
157                 fieldApellido.setFont(new Font("Arial", Font.PLAIN, 16));
158                 fieldApellido.setForeground(Color.GRAY);
159                 fieldApellido.setText((String) null);
160                 fieldApellido.setEditable(false);
161                 fieldApellido.setColumns(10);
162                 fieldApellido.setBounds(249, 183, 262, 29);
163                 contentPane.add(fieldApellido);
164                 fieldApellido.setText(userlog.getLastName());
165
166                 fieldEmail = new JTextField();
167                 fieldEmail.setForeground(Color.GRAY);
168                 fieldEmail.setFont(new Font("Arial", Font.PLAIN, 16));
169                 fieldEmail.setText((String) null);
170                 fieldEmail.setEditable(false);
171                 fieldEmail.setColumns(10);
172                 fieldEmail.setBounds(249, 222, 262, 29);
173                 contentPane.add(fieldEmail);
174                 fieldEmail.setText(userlog.getEmail());
175
176                 fieldCuentaBancaria = new JTextField();
177                 fieldCuentaBancaria.setForeground(Color.GRAY);
178                 fieldCuentaBancaria.setFont(new Font("Arial", Font.PLAIN, 16));
179                 fieldCuentaBancaria.setText((String) null);
180                 fieldCuentaBancaria.setEditable(false);
181                 fieldCuentaBancaria.setColumns(10);
182                 fieldCuentaBancaria.setBounds(249, 261, 262, 29);
183                 contentPane.add(fieldCuentaBancaria);
184                 fieldCuentaBancaria.setText(userlog.getBankAccount());
185
186                 lblUsername = new JLabel("Nombre de usuario:");
187                 lblUsername.setBounds(10, 74, 133, 13);
188                 contentPane.add(lblUsername);
189
190                 lblContraseña = new JLabel("Contraseña:");
191                 lblContraseña.setBounds(10, 111, 133, 13);
192                 contentPane.add(lblContraseña);
193
194                 lblContraseña2 = new JLabel("Contraseña nueva:");
195                 lblContraseña2.setBounds(10, 150, 133, 13);
196                 lblContraseña2.setVisible(false);
197                 contentPane.add(lblContraseña2);
198
199                 lblContraseña3 = new JLabel("Repite contraseña nueva:");
200                 lblContraseña3.setBounds(10, 189, 183, 13);
201                 lblContraseña3.setVisible(false);
202
203                 contentPane.add(lblContraseña3);
204
205                 lblNombre = new JLabel("Nombre:");
206                 lblNombre.setBounds(10, 150, 133, 13);
207                 contentPane.add(lblNombre);
208
209                 lblApellido = new JLabel("Apellido:");
210                 lblApellido.setBounds(10, 189, 133, 13);
211                 contentPane.add(lblApellido);
212
213                 lblEmail = new JLabel("Email:");
214                 lblEmail.setBounds(10, 228, 133, 13);
215                 contentPane.add(lblEmail);
216
217                 lblCuentaBancaria = new JLabel("Cuenta bancaria:");
218                 lblCuentaBancaria.setBounds(10, 267, 133, 13);
219                 contentPane.add(lblCuentaBancaria);
220
221                 fieldSaldo = new JTextField();
222                 fieldSaldo.setForeground(Color.GRAY);
223                 fieldSaldo.setFont(new Font("Arial", Font.PLAIN, 16));
224                 fieldSaldo.setText((String) null);
225                 fieldSaldo.setEditable(false);
226                 fieldSaldo.setColumns(10);
227                 fieldSaldo.setBounds(249, 306, 262, 29);
228                 contentPane.add(fieldSaldo);
229                 fieldSaldo.setText(Float.toString(userlog.getBalance()) + " €");
230
231                 // buttonModificar = new
232                 // JButton(ResourceBundle.getBundle("Etiquetas").getString("ModificarDatosGUI.modificar"));
233                 buttonModificar = new JButton("modificar");
234                 buttonModificar.setBounds(563, 463, 127, 29);
235                 contentPane.add(buttonModificar);
236                 buttonModificar.setBackground(SystemColor.textHighlight);
237                 buttonModificar.setForeground(Color.WHITE);
238                 buttonModificar.setFont(new Font("Dialog", Font.BOLD, 14));
239
240                 // buttonCancelar = new
241                 // JButton(ResourceBundle.getBundle("Etiquetas").getString("Close"));
242                 buttonCancelar = new JButton("Close");
243                 buttonCancelar.setBounds(16, 463, 127, 29);
244                 contentPane.add(buttonCancelar);
245                 buttonCancelar.setBackground(SystemColor.controlShadow);
246                 buttonCancelar.setForeground(Color.WHITE);
247                 buttonCancelar.setFont(new Font("Dialog", Font.BOLD, 14));
248
249                 // buttonGuardar = new
250                 // JButton(ResourceBundle.getBundle("Etiquetas").getString("ModificarDatosGUI.guardar"));
251                 buttonGuardar = new JButton("guardar");
252                 buttonGuardar.setBounds(563, 463, 127, 29);
253                 contentPane.add(buttonGuardar);
254                 buttonGuardar.setForeground(Color.WHITE);
255                 buttonGuardar.setFont(new Font("Dialog", Font.BOLD, 14));
256                 buttonGuardar.setBackground(SystemColor.textHighlight);
257
258                 buttonGuardar.addActionListener(new ActionListener() {
259                         @Override
260                         public void actionPerformed(ActionEvent e) {
261                                 boolean resul = false;
262                                 boolean resul2 = false;
263                                 if (fieldContraseña2.getText().equals("")) {
264
265                                         resul2 = facade.editarPerfilUsuarioSinPass(fieldUsername.getText(), fieldNombre.getText(),
266                                                         fieldApellido.getText(), fieldEmail.getText(), fieldCuentaBancaria.getText());
267
268                                 } else {
269
270                                         if (fieldContraseña2.getText().equals(fieldContraseña3.getText())) {
271
272                                                 if (RegisterGUI.validoContraseña(fieldContraseña2.getText())) {
273
274                                                         resul = facade.editarPerfilUsuario(fieldContraseña2.getText(), fieldUsername.getText(),
275                                                                         fieldNombre.getText(), fieldApellido.getText(), fieldEmail.getText(),
276                                                                         fieldCuentaBancaria.getText());
277
278                                                 } else {
279                                                         JOptionPane.showMessageDialog(getContentPane(), "Contraseña no válida!", "Error",
280                                                                         JOptionPane.ERROR_MESSAGE);
281                                                 }
282
283                                         } else {
284                                                 JOptionPane.showMessageDialog(getContentPane(), "Las contraseñas no coinciden!", "Error",
285                                                                 JOptionPane.ERROR_MESSAGE);
286
287                                         }
288
289                                 }
290
291                                 if (resul || resul2) {
292                                         JOptionPane.showMessageDialog(getContentPane(),
293                                                         "Cambios guardados correctamente. \nSerá redirigido al menú principal...");
294                                         RegularUser usuarioactualizado = facade.getRegularUserByUsername(fieldUsername.getText());
295                                         Frame reg = new MainGUI(usuarioactualizado);
296                                         reg.setAlwaysOnTop(true);
297                                         reg.setVisible(true);
298                                         dispose();
299
300                                 }
301
302                         }
303                 });
304                 buttonGuardar.setVisible(false);
305                 buttonGuardar.setEnabled(false);
306
307                 buttonCancelar.addActionListener(new ActionListener() {
308                         @Override
309                         public void actionPerformed(ActionEvent e) {
310                                 Frame reg = new MainGUI(userlog);
311                                 reg.setAlwaysOnTop(true);
312                                 reg.setVisible(true);
313                                 dispose();
314                                 dispose();
315                         }
316                 });
317
318                 buttonModificar.addActionListener(new ActionListener() {
319
320                         @Override
321                         public void actionPerformed(ActionEvent e) {
322
323                                 fieldUsername.setBorder(border);
324                                 fieldContraseña.setBorder(border);
325                                 fieldNombre.setBorder(border2);
326                                 fieldApellido.setBorder(border2);
327                                 fieldEmail.setBorder(border2);
328                                 fieldCuentaBancaria.setBorder(border2);
329                                 fieldSaldo.setBorder(border);
330                                 checkContraseña.setVisible(true);
331
332                                 fieldContraseña2.setVisible(true);
333                                 fieldContraseña3.setVisible(true);
334
335                                 contentPane.add(fieldContraseña2);
336                                 fieldContraseña2.setColumns(10);
337                                 fieldContraseña2.setEditable(true);
338
339                                 contentPane.add(fieldContraseña3);
340                                 fieldContraseña3.setColumns(10);
341                                 fieldContraseña3.setEditable(true);
342
343                                 fieldNombre.setBounds(249, 222, 262, 29);
344                                 fieldApellido.setBounds(249, 261, 262, 29);
345                                 fieldEmail.setBounds(249, 300, 262, 29);
346                                 fieldCuentaBancaria.setBounds(249, 339, 262, 29);
347                                 fieldSaldo.setBounds(249, 380, 262, 29);
348
349                                 fieldNombre.setEditable(true);
350                                 fieldApellido.setEditable(true);
351                                 fieldEmail.setEditable(true);
352                                 fieldCuentaBancaria.setEditable(true);
353
354                                 lblContraseña2.setVisible(true);
355
356                                 lblContraseña3.setVisible(true);
357
358                                 lblNombre.setBounds(10, 228, 133, 13);
359                                 lblApellido.setBounds(10, 267, 133, 13);
360                                 lblEmail.setBounds(10, 306, 133, 13);
361                                 lblCuentaBancaria.setBounds(10, 345, 133, 13);
362                                 lblSaldo.setBounds(10, 389, 133, 13);
363
364                                 buttonModificar.setEnabled(false);
365                                 buttonModificar.setVisible(false);
366                                 buttonGuardar.setVisible(true);
367                                 buttonGuardar.setEnabled(true);
368                         }
369                 });
370
371         }
372 }