package com.tarisan.chipcard.tpvvs.webservicetrayicon; import java.awt.*; import javax.swing.*; import com.tarisan.chipcard.gui.*; import com.tarisan.chipcard.tpvvs.webservicetrayicon.messages.*; import java.util.*; import com.tarisan.chipcard.tpvvs.webservicetrayicon.accesodatos.*; import java.awt.event.*; /** * @author jjrider */ public class ConsultaAutorizacionesFrame extends JFrame implements ControladorRespuestas,ActionListener{ /** * */ private static final long serialVersionUID = -7697824758756674812L; public static final Image icon=WebServiceTrayIcon.loadImage("consultaAut16.gif"); private ConsultaAutorizacionesPanel jpAutorizacionesPanel=null;//new ConsultaAutorizacionesPanel(); private JButton btnAceptar=null; private AutorizacionesBean autBean=new AutorizacionesBean(); private UsuarioTVSBean userBean=new UsuarioTVSBean(); private TerminalSanitarioBean terBean=new TerminalSanitarioBean(); private JPopupMenu anulacionPopupMenu=new JPopupMenu(); private VentanaProgreso progressWindow=null;// public String devuelveRespuesta(String a) { return a; } public ConsultaAutorizacionesFrame(){ setIconImage(icon); progressWindow=new VentanaProgreso(this,"Solicitando anulación"); progressWindow.setVisible(false); setTitle("Consulta de Autorizaciones"); Vector vTer=terBean.getTerminalesSanitarios(); if(vTer.size()==0){ NuevoTerminalFrame frmT=new NuevoTerminalFrame(); WebServiceTrayIcon.showMessage(frmT,getTitle(),"Es necesario configurar antes Terminales Sanitarios",JOptionPane.WARNING_MESSAGE,10); dispose(); }else{ Vector vUsers=userBean.getUsuariosTVS(); if(vUsers.size()==0){ NuevoUsuarioTVSFrame frmU=new NuevoUsuarioTVSFrame(); frmU.updateData(); WebServiceTrayIcon.showMessage(frmU,getTitle(),"Es necesario configurar antes algún Usuario del TVS",JOptionPane.WARNING_MESSAGE,10); dispose(); }else{ init(); } } } private void init(){ getContentPane().setLayout(new BorderLayout()); jpAutorizacionesPanel=new ConsultaAutorizacionesPanel(); jpAutorizacionesPanel.setPreferredSize(new java.awt.Dimension(800,600)); JPanel jpButtons=new JPanel(); jpButtons.setLayout(new java.awt.FlowLayout()); jpButtons.add(getButtonAceptar()); getContentPane().add(jpAutorizacionesPanel, java.awt.BorderLayout.CENTER); getContentPane().add(jpButtons, java.awt.BorderLayout.SOUTH); pack(); show(); UtilGUI.centerOnScreen(this); jpAutorizacionesPanel.getJTable().addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent evt) { } public void mouseReleased(MouseEvent evt) { } public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 2 || e.isMetaDown() ) { if (jpAutorizacionesPanel.getJTable().getSelectedRow() != -1){ anulacionPopupMenu.show(e.getComponent(), e.getX(), e.getY()); } } } } ); JMenuItem item = new JMenuItem("Solicitar Anulación de Autorización",new ImageIcon(WebServiceTrayIcon.loadImage("eliminar.gif"))); item.addActionListener(this); anulacionPopupMenu.add(item); } /**** * Se encarga de realizar las operacioens necesarias para llevar a cabo una anulacion * @param nTerminal * @param sTimeStamp */ private void anulaAutorizacion(int nTerminal, String sTimeStamp){ //Si está autorizada Autorizacion aut=autBean.getAutorizacionByID(nTerminal,sTimeStamp); if(aut!=null){ String sURL=jpAutorizacionesPanel.getCmbURLService().getSelectedItem().toString(); java.net.URL endPointURL=null; try{ endPointURL=new java.net.URL(sURL); }catch(Exception err){ err.printStackTrace(); WebServiceTrayIcon.showErrorMessage(getTitle(),"No se pudo enviar la solicitud a '"+sURL+"' debido al error:"+err.getMessage()); } if(endPointURL!=null){ UsuarioTVS userTVS=(UsuarioTVS)jpAutorizacionesPanel.getCmbImageComboUsuarios().getSelectedItem(); if(userTVS!=null){ try{ progressWindow.setVisible(true); progressWindow.setProgressState(0); progressWindow.setModal(false); UtilGUI.centerOnWindow(progressWindow,this); AnulReq anulReqMes=new AnulReq(nTerminal,sTimeStamp,userTVS); setEnabled(false); ClienteServicioWeb objClienteServicioWeb=new ClienteServicioWeb(anulReqMes,this,endPointURL); ProgressBarThread PBTh=new ProgressBarThread(progressWindow,objClienteServicioWeb.getSegundosTimeout()); PBTh.start(); }catch(Exception err){ err.printStackTrace(); } } } } } /***** * Recibe la respuesta del Servicio Web */ public String recibeRespuesta(String sResponse){ setEnabled(true); if(progressWindow!=null) progressWindow.setVisible(false); if(sResponse!=null){ Msg objResponse=null; try{ objResponse=Msg.createMsgFromString(sResponse); if(objResponse.getTypeOfMessage()==Msg.TYPE_OF_MESSAGE_ERROR){ com.tarisan.chipcard.tpvvs.webservicetrayicon.messages.Error errorMes=(com.tarisan.chipcard.tpvvs.webservicetrayicon.messages.Error)objResponse; //Es un Error en la peticion showErrorMessage("Se ha producido el error con código "+errorMes.getErrorCode()+".\nDescripción:"+errorMes.getErrorDescription()); }else if(objResponse.getTypeOfMessage()==Msg.TYPE_OF_MESSAGE_CCRES){ com.tarisan.chipcard.tpvvs.webservicetrayicon.messages.AutRes autResMes=(com.tarisan.chipcard.tpvvs.webservicetrayicon.messages.AutRes)objResponse; Vector vAutorizaciones=WebServiceTrayIcon.AutResMes2Autorizacion(autResMes); for(int i=0;i