/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package carcel.controllers;
import carcel.constant.VistasCarceles;
import carcel.dialogs.popups.EntitySelectionListener;
import carcel.dialogs.popups.SelectorPopUp;
import carcel.views.PanelListener;
import carcel.customExceptions.UIValidateException;
import carcel.views.VisitasView;
import conexion.base.EntityController;
import entidades.Preso;
import entidades.Usuario;
import entidades.Visita;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Time;
import javax.swing.JOptionPane;
/**
*
* @author Familia
*/
public class VisitasController extends VisitasView{
EntityController ec;
PanelListener listener;
Preso preso;
public VisitasController(Usuario usuario) {
this.ec = EntityController.getInstance();
setVisible(true);
addHandlerButton();
}
private void addHandlerButton() {
cancelarButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
listener.onPanelClose();
}
});
buscarButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
SelectorPopUp<Preso> popUP = new SelectorPopUp<Preso>(PrincipalController.instanciaControllerPrincipal(), new EntitySelectionListener<Preso>() {
@Override
public void onEntitySelected(Preso entity) {
preso = entity;
nroPresoField.setText(String.valueOf(preso.getNropreso()));
}
@Override
public void onNotEntitySelected() {
//Nada;
}
}, VistasCarceles.PRESO_LISTA_VIEW, Preso.class);
popUP.showPopUp();
}
});
guardarButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
validarDatos();
if (JOptionPane.showConfirmDialog(VisitasController.this, "Desea Guardar?", "Gestion Visitas", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
Visita visita = new Visita();
Integer nro = Integer.valueOf(nroPresoField.getText());
Preso p = (Preso) ec.createQuery("select p from Preso p where p.nroPreso = :nro", Preso.class).setParameter("nro", nro).getSingleResult();
visita.setPreso(p);
visita.setApellidoVisita(apellidoField.getText());
visita.setNombreVisita(nombreField.getText());
visita.setFechaVisita(fechaDateChooser.getDate());
visita.setHoraIngreso(Time.valueOf(horaEntradaField.getText() + ":00"));
if (!horaSalidaField.getText().isEmpty())
visita.setHoraEgreso(Time.valueOf(horaSalidaField.getText() + ":00"));
ec.persist(visita, true);
listener.onPanelClose();
}
} catch (UIValidateException ex){
JOptionPane.showMessageDialog(VisitasController.this, ex.getMessage());
}
}
});
}
public void setPanelListener(PanelListener listener) {
this.listener = listener;
}
}