package com.rzg.zombieland.cliente.interfaz;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.border.EmptyBorder;
import org.jdeferred.DoneCallback;
import com.rzg.zombieland.cliente.comunicacion.ServicioCliente;
import com.rzg.zombieland.cliente.comunicacion.peticion.PeticionCambioPass;
import com.rzg.zombieland.cliente.misc.RutaImagen;
import com.rzg.zombieland.comunes.comunicacion.pojo.POJOCambioPass;
import com.rzg.zombieland.comunes.comunicacion.respuesta.RespuestaGenerica;
import com.rzg.zombieland.comunes.misc.ParametrosNoValidosException;
import com.rzg.zombieland.comunes.misc.ZombielandException;
/**
*
* @author Nicolas L
*
*/
public class InterfazCambioContrasenia extends JFrame {
/**
*
*/
private static final long serialVersionUID = 6846686861744486134L;
private JPanel contentPane;
private JPasswordField pass;
private JPasswordField verificaPass;
private String usuario;
/**
* Create the frame.
*/
public InterfazCambioContrasenia(String usuario) {
this.usuario = usuario;
setTitle("Cambio de Contrase\u00F1a");
setResizable(false);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JLabel lblIngreseNuevaContrasea = new JLabel(
"Ingrese Nueva Contrase\u00F1a:");
lblIngreseNuevaContrasea.setFont(new Font("Tahoma", Font.BOLD, 14));
lblIngreseNuevaContrasea.setForeground(Color.WHITE);
lblIngreseNuevaContrasea.setBounds(22, 78, 200, 25);
contentPane.add(lblIngreseNuevaContrasea);
JLabel lblVerifiqueContrasea = new JLabel("Verifique Contrase\u00F1a:");
lblVerifiqueContrasea.setForeground(Color.WHITE);
lblVerifiqueContrasea.setFont(new Font("Tahoma", Font.BOLD, 14));
lblVerifiqueContrasea.setBounds(22, 133, 177, 31);
contentPane.add(lblVerifiqueContrasea);
pass = new JPasswordField();
pass.setBounds(251, 80, 85, 20);
contentPane.add(pass);
verificaPass = new JPasswordField();
verificaPass.setBounds(251, 138, 85, 20);
contentPane.add(verificaPass);
JButton btnCambiarContrasea = new JButton("Cambiar Contrase\u00F1a");
btnCambiarContrasea.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
cambioContrasenia();
}
});
btnCambiarContrasea.setBounds(131, 198, 155, 38);
contentPane.add(btnCambiarContrasea);
JLabel lblFondo = new JLabel("");
/*lblFondo.setIcon(new ImageIcon(RutaImagen
.get("imagenes/Fondos/zombie-est-jug.png")));*/
lblFondo.setBounds(0, 0, 500, 475);
contentPane.add(lblFondo);
}
public void cambioContrasenia() {
if (!pass.getText().equals("")
&& pass.getText().equals(verificaPass.getText())) {
try {
final POJOCambioPass pojo = new POJOCambioPass(usuario,
pass.getText());
PeticionCambioPass peticion = new PeticionCambioPass(pojo);
ServicioCliente.enviarPeticion(peticion);
peticion.getRespuesta().done(
new DoneCallback<RespuestaGenerica>() {
@Override
public void onDone(RespuestaGenerica respuesta) {
if (respuesta.fuePeticionExitosa()) {
JOptionPane
.showMessageDialog(
contentPane,
"La contraseña se modificó con éxito!",
"Recuperar Contraseña",
JOptionPane.WARNING_MESSAGE);
dispose();
} else
JOptionPane.showMessageDialog(contentPane,
respuesta.getMensajeError(),
"Cambiar Contraseña Fallo",
JOptionPane.WARNING_MESSAGE);
}
});
} catch (ParametrosNoValidosException e) {
JOptionPane.showMessageDialog(this, e.getMensaje(),
"Recuperar Contraseña Fallo",
JOptionPane.WARNING_MESSAGE);
} catch (ZombielandException e) {
JOptionPane
.showMessageDialog(this, e.getMessage(),
"Recuperar Contraseña Fallo",
JOptionPane.ERROR_MESSAGE);
}
} else
JOptionPane.showMessageDialog(this,
"Ingresó una contraseña incorrecta.",
"Recuperar Contraseña Fallo", JOptionPane.WARNING_MESSAGE);
pass.setText("");
verificaPass.setText("");
}
}