6 import java.awt.SystemColor;
7 import java.awt.event.ActionEvent;
8 import java.awt.event.ActionListener;
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;
24 import businessLogic.BLFacade;
25 import domain.RegularUser;
27 public class ModificarDatosGUI extends JFrame {
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();
52 private RegularUser userlog = null;
53 private JTextField fieldSaldo;
54 private JLabel lblSaldo;
56 public ModificarDatosGUI(RegularUser ru) {
60 // setTitle(ResourceBundle.getBundle("Etiquetas").getString("Show/EditProfile"));
61 setTitle("Show/EditProfile");
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);
73 Border border = BorderFactory.createLineBorder(Color.red, 1);
74 Border border2 = BorderFactory.createLineBorder(SystemColor.textHighlight, 1);
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);
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);
85 lblSaldo = new JLabel("Saldo:");
86 lblSaldo.setBounds(10, 311, 133, 13);
87 contentPane.add(lblSaldo);
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());
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());
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);
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);
121 checkContraseña = new JCheckBox("Mostrar contraseña");
122 checkContraseña.setBackground(Color.WHITE);
124 checkContraseña.setVisible(false);
125 checkContraseña.addActionListener(new ActionListener() {
127 public void actionPerformed(ActionEvent arg0) {
129 if (checkContraseña.isSelected()) {
131 fieldContraseña2.setEchoChar((char) 0);
132 fieldContraseña3.setEchoChar((char) 0);
136 fieldContraseña2.setEchoChar('•');
137 fieldContraseña3.setEchoChar('•');
143 checkContraseña.setBounds(519, 168, 171, 21);
144 contentPane.add(checkContraseña);
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());
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());
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());
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());
186 lblUsername = new JLabel("Nombre de usuario:");
187 lblUsername.setBounds(10, 74, 133, 13);
188 contentPane.add(lblUsername);
190 lblContraseña = new JLabel("Contraseña:");
191 lblContraseña.setBounds(10, 111, 133, 13);
192 contentPane.add(lblContraseña);
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);
199 lblContraseña3 = new JLabel("Repite contraseña nueva:");
200 lblContraseña3.setBounds(10, 189, 183, 13);
201 lblContraseña3.setVisible(false);
203 contentPane.add(lblContraseña3);
205 lblNombre = new JLabel("Nombre:");
206 lblNombre.setBounds(10, 150, 133, 13);
207 contentPane.add(lblNombre);
209 lblApellido = new JLabel("Apellido:");
210 lblApellido.setBounds(10, 189, 133, 13);
211 contentPane.add(lblApellido);
213 lblEmail = new JLabel("Email:");
214 lblEmail.setBounds(10, 228, 133, 13);
215 contentPane.add(lblEmail);
217 lblCuentaBancaria = new JLabel("Cuenta bancaria:");
218 lblCuentaBancaria.setBounds(10, 267, 133, 13);
219 contentPane.add(lblCuentaBancaria);
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()) + " €");
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));
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));
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);
258 buttonGuardar.addActionListener(new ActionListener() {
260 public void actionPerformed(ActionEvent e) {
261 boolean resul = false;
262 boolean resul2 = false;
263 if (fieldContraseña2.getText().equals("")) {
265 resul2 = facade.editarPerfilUsuarioSinPass(fieldUsername.getText(), fieldNombre.getText(),
266 fieldApellido.getText(), fieldEmail.getText(), fieldCuentaBancaria.getText());
270 if (fieldContraseña2.getText().equals(fieldContraseña3.getText())) {
272 if (RegisterGUI.validoContraseña(fieldContraseña2.getText())) {
274 resul = facade.editarPerfilUsuario(fieldContraseña2.getText(), fieldUsername.getText(),
275 fieldNombre.getText(), fieldApellido.getText(), fieldEmail.getText(),
276 fieldCuentaBancaria.getText());
279 JOptionPane.showMessageDialog(getContentPane(), "Contraseña no válida!", "Error",
280 JOptionPane.ERROR_MESSAGE);
284 JOptionPane.showMessageDialog(getContentPane(), "Las contraseñas no coinciden!", "Error",
285 JOptionPane.ERROR_MESSAGE);
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);
304 buttonGuardar.setVisible(false);
305 buttonGuardar.setEnabled(false);
307 buttonCancelar.addActionListener(new ActionListener() {
309 public void actionPerformed(ActionEvent e) {
310 Frame reg = new MainGUI(userlog);
311 reg.setAlwaysOnTop(true);
312 reg.setVisible(true);
318 buttonModificar.addActionListener(new ActionListener() {
321 public void actionPerformed(ActionEvent e) {
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);
332 fieldContraseña2.setVisible(true);
333 fieldContraseña3.setVisible(true);
335 contentPane.add(fieldContraseña2);
336 fieldContraseña2.setColumns(10);
337 fieldContraseña2.setEditable(true);
339 contentPane.add(fieldContraseña3);
340 fieldContraseña3.setColumns(10);
341 fieldContraseña3.setEditable(true);
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);
349 fieldNombre.setEditable(true);
350 fieldApellido.setEditable(true);
351 fieldEmail.setEditable(true);
352 fieldCuentaBancaria.setEditable(true);
354 lblContraseña2.setVisible(true);
356 lblContraseña3.setVisible(true);
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);
364 buttonModificar.setEnabled(false);
365 buttonModificar.setVisible(false);
366 buttonGuardar.setVisible(true);
367 buttonGuardar.setEnabled(true);