/* 
* Copyright 2016 Agencia Estatal de Administración Tibutaria
*
* Licencia con arreglo a la EUPL, Versión 1.1 o –en cuanto
* sean aprobadas por la Comisión Europea– versiones
* posteriores de la EUPL (la «Licencia»);
* Solo podrá usarse esta obra si se respeta la Licencia.
* Puede obtenerse una copia de la Licencia en:
*  
* https://joinup.ec.europa.eu/software/page/eupl
*  
* Salvo cuando lo exija la legislación aplicable o se acuerde
* por escrito, el programa distribuido con arreglo a la
* Licencia se distribuye «TAL CUAL», SIN GARANTÍAS NI CONDICIONES
* DE NINGÚN TIPO, ni expresasni implícitas.
*
* Véase la Licencia en el idioma concreto que rige los permisos y 
* limitaciones que establece la Licencia.
*/ 

package Fichas;

import java.awt.*;
import java.sql.ResultSet;
import java.util.*;
import java.util.List;
import javax.swing.*;
import javax.swing.table.*;
import Datos.*;
import Graficos.*;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import org.jfree.chart.ChartPanel;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.general.DefaultPieDataset;

public class Selector extends javax.swing.JFrame {

   private BaseDeDatos bd;
   private static Selector yo;
   private ConsultasSQL Consultas;
   public DefaultTableModel modeloColas;
   Cursor hourGlass = new Cursor(Cursor.WAIT_CURSOR);
   Cursor hourNormal = new Cursor(Cursor.DEFAULT_CURSOR);
   String complemento = "";

   HashMap<String, Component> listaTabs = new HashMap<String, Component>();

   public Selector() {
      yo = this;
      initComponents();
     // Date maxDate = crearFechaMaxima();
      jFechaI.setDate(new Date(System.currentTimeMillis() - (86400000)*7));
      jFechaF.setDate(new Date(System.currentTimeMillis() - 86400000));
//      if (maxDate != null)
//        {
//      jFechaF.setMaxSelectableDate( maxDate);
//        }
      this.jRadioFF.setSelected(true);
      bd = new BaseDeDatos();
      Consultas = new ConsultasSQL(bd);
      rellenarColasIniciales("SELECT Colas.Cola, Colas.Descripcion FROM Colas");
      setTitle(Datos.Variables.getVariables().getNombreAdmon() + " Graficos Ateneo");
      invalidate();
      validate();
      jComboTurno.setSelectedIndex(Datos.Variables.getVariables().calculaTurno());
      Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
      if (dim.getHeight() > 600 ) {
         setSize(900, 700);
      } else {
         setSize(700, 490);
      }
   }

   /** This method is called from within the constructor to
    * initialize the form.
    * WARNING: Do NOT modify this code. The content of this method is
    * always regenerated by the Form Editor.
    */
   public static Selector getSelector() {
      return yo;
   }
//   Date crearFechaMaxima()
//   {
//       try {
//       SimpleDateFormat formatoFecha = new SimpleDateFormat("dd/MM/yyyy",Locale.getDefault());
//       return formatoFecha.parse("01/05/2012");
//       }
//       catch(Exception ex)
//       {
//           return null;
//       }
//   }


   public boolean ComprobarFechas() {
      return true;
   }
   public void borrarBotonesIniciales()
   {
        int n = this.jPanelColas.getComponentCount();
      for (int i = 0; i < n; i++) {
         this.jPanelColas.remove(i);
      }
   }
   public void TextoDeConsultaMenu() {
          if (getjRadioCola()) {
              jLabel2.setText("Colas");
          }
          else {
                jLabel2.setText("Cod.Estadistico");
          }
      int n = panelMenu.getComponentCount();
      JLabel miBoton;
      String texto;
      for (int i = 0; i < n; i++) {
         miBoton = (JLabel)panelMenu.getComponent(i);
         texto =  miBoton.getText();
         texto = transformaACodEstaCola(texto);
          miBoton.setText(texto);
      }
      this.panelMenu.invalidate();
      this.panelMenu.validate();
   }
 public String transformaACodEstaCola( String sq)
    {
        String sq1 = sq;
  
     if (getjRadioCola()) {
       sq1 = sq1.replace("Cod.Estadistico","Cola");
     }
     else
     {
        sq1 = sq1.replace("Cola","Cod.Estadistico");
     }
       return sq1;
    }
 public String transformaACP( String sq)
    {
       String sq1 = sq;
   complemento = " ";
    
     if (this.getjCheckHP()) {
       sq1 = sq1 + " C.P.";
       complemento = " C.P. ";
     }
     
             
       return sq1;
    }
   public void rellenarColasIniciales(String SQL1) {
       this.jPanelColas.removeAll();
       borrarBotonesIniciales();
       this.jPanelColas2.removeAll();
      modeloColas = new DefaultTableModel();
     /// String SQL1;
      bd.estableceConexion();
      //SQL1 = "SELECT Colas.Cola, Colas.Descripcion FROM Colas ";
       //SQL1 = "SELECT CodigoEstadistico, CategoriaEsta FROM CategoriasEsta ";
       ResultSet rs = bd.dameLista(SQL1);
      ConversorResultSetADefaultTableModel.rellena(rs, modeloColas);
      bd.cierraConexion();
      String cola1;
      String cola2;
      DefaultPieDataset data2 = new DefaultPieDataset();
      for (int i = 0; i < modeloColas.getRowCount(); i++) {
         cola1 = (String) modeloColas.getValueAt(i, 0);
         cola2 = (String) modeloColas.getValueAt(i, 1);
         UnBotonRadioMas(cola1 + "-" + cola2);
         if (i < 6) {
            data2.setValue(cola2, new Double(10.0));
         }
      }
      Datos.Variables.getVariables().construirTablaColores(modeloColas);
      TartaMovimiento tarta = new TartaMovimiento("Graficos Ateneo", this.jPanelColas2, data2);
      this.jPanelColas.invalidate();
      this.jPanelColas.validate();
      this.repaint();

   }

   public void UnBotonRadioMas(String Texto) {
      JCheckBox miBoton = new JCheckBox(Texto);
      miBoton.setBackground(jPanelColas.getBackground());
      miBoton.setFont(new java.awt.Font("MS Sans Serif", 0, 11));
      miBoton.setSelected(true);
      this.jPanelColas.add(miBoton);
   }

   public DefaultPieDataset CrearData(DefaultTableModel modelo) {
      DefaultPieDataset data = new DefaultPieDataset();
      String Titulo = null;
      Number Valor = null;
      for (int i = 1; i < modelo.getColumnCount(); i++) {
         Titulo = modelo.getColumnName(i) ;
         Valor = (Number) modelo.getValueAt(0,i) ;
         data.setValue(Titulo, new Double(Valor.doubleValue()));
      }
      return data;
   }
  

   public String pedirNombreDeCola(String cola) {
      String cola1;
      String cola2;
      for (int i = 0; i < modeloColas.getRowCount(); i++) {
         cola1 = (String) modeloColas.getValueAt(i, 0);
         cola2 = (String) modeloColas.getValueAt(i, 1);
         if (cola1.equals(cola)) {
            return cola2;
         }
      }
      return "Desconocida";
   }

   public void ConsultaTicketEmitidosPorCola() {
      if (ComprobarFechas() == false) {
         JOptionPane.showMessageDialog(this, "Mal");
         return;
      }
      DefaultTableModel modelo = Consultas.DatosConsultaTicketEmitidosPorCola();
      PanelDatos panel = nuevoPanel("Tiques Atendidos", modelo);
      String fechas = PedirFechasTitulo();
      BarrasConCategorias barras = new BarrasConCategorias("Consulta Tiques Atendidos  " + fechas+ complemento, panel, modelo, 1);
      jTab.setSelectedIndex(jTab.getComponentCount() - 1);
   }

   public void ConsultaTicketAbandonadosPorCola() {
      if (ComprobarFechas() == false) {
         JOptionPane.showMessageDialog(this, "Mal");
         return;
      }
       DefaultTableModel modelo2;
      DefaultTableModel modelo = Consultas.DatosConsultaTicketAbandonadosPorCola();
      String estado=" ";  
      for (int i = 0; i < modelo.getRowCount(); i++) {
         estado = (String) modelo.getValueAt(i, 0);
          if (estado.equals(" ")){
              modelo.setValueAt("Ausente",i, 0);
          }
          if (estado.equals("P")){
              modelo.setValueAt("Presente",i, 0);
          }
             if (estado.equals("D")){
              modelo.setValueAt("Descartado",i, 0);
          }
            
             if (estado.equals("F")){
              modelo.setValueAt("Finalizado",i, 0);
           }
              
             if (estado.equals("I")){
              modelo.setValueAt("Incidencia",i, 0);
          }
              
             if (estado.equals("S")){
              modelo.setValueAt("Finalizado",i, 0);
          }
              if (estado.equals("B")){
              modelo.setValueAt("Baja",i, 0);
          }
                if (estado.equals("A")){
              modelo.setValueAt("Atendido",i, 0);
          }
      }

          
      PanelDatos panel = nuevoPanel("Tiques Estado ", modelo);
      String fechas = PedirFechasTitulo();
      BarrasConCategorias barras = new BarrasConCategorias("Consulta Tiques Estado  " + fechas+ complemento, panel, modelo, 1);
      jTab.setSelectedIndex(jTab.getComponentCount() - 1);
   }

   public void ConsultaTicketReenviadosPorCola(boolean ori_dest) {
      if (ComprobarFechas() == false) {
         JOptionPane.showMessageDialog(this, "Mal");
         return;
      }
      DefaultTableModel modelo2 = new DefaultTableModel();
      DefaultTableModel modelo = Consultas.DatosConsultaTicketReenviadosPorCola();
      modelo2 = SumarDatosRepetidos(modelo, ori_dest, modelo2);
      PanelDatos panel = nuevoPanel("Tiques Reenvios ", modelo2);
      String fechas = PedirFechasTitulo();
      if (ori_dest) {
         BarrasConCategorias barras = new BarrasConCategorias("Consulta Tiques Reenviados Origen  " + fechas + complemento, panel, modelo2, 1);
      } else {
         BarrasConCategorias barras = new BarrasConCategorias("Consulta Tiques Reenviados Destino  " + fechas+ complemento, panel, modelo2, 1);
      }
      jTab.setSelectedIndex(jTab.getComponentCount() - 1);
   }

   public void ConsultaTicketEmitidosPorCola_Dia() {
      if (ComprobarFechas() == false) {
         JOptionPane.showMessageDialog(this, "Mal");
         return;
      }
      DefaultTableModel modelo = Consultas.DatosConsultaTicketEmitidosPorFecha_Cola();
      PanelDatos panel = nuevoPanel("Tiques Atendidos", modelo);
      String fechas = PedirFechasTitulo();
      BarrasConCategorias barras = new BarrasConCategorias("Consulta Tiques Atendidos  " + fechas+ complemento, panel, modelo, 3);
      jTab.setSelectedIndex(jTab.getComponentCount() - 1);
   }

   public void ConsultaTicketEmitidosPorFecha() {
      DefaultTableModel modelo = Consultas.DatosConsultaTicketEmitidosPorFecha();
      PanelDatos panel = nuevoPanel("Tiques Atendidos.H", modelo);
      String fechas = PedirFechasTitulo();
      BarrasConCategorias barras = new BarrasConCategorias("Consulta Tiques Atendidos  " + fechas+ complemento, panel, modelo, -1);
      jTab.setSelectedIndex(jTab.getComponentCount() - 1);
   }

   public void ConsultaTicketEmitidosPorHoraMinuto() {
      DefaultTableModel modelo1 = Consultas.DatosConsultaTicketEmitidosPorHoraMinuto1();
      DefaultTableModel modelo2 = Consultas.DatosConsultaTicketEmitidosPorHoraMinuto2();

       PanelDatos panel = new PanelDatos("Horas", modelo2);
         panel.setLayout(new java.awt.GridLayout(1, 1));

      JSplitPane spliter = new JSplitPane();
      spliter.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);
      JPanel panelSuperior = new JPanel();
    panelSuperior.setPreferredSize(new Dimension(200,200));
    panelSuperior.setLayout(new java.awt.BorderLayout());
      spliter.setTopComponent(panelSuperior);
      JPanel panelInferior = new JPanel();
       panelInferior.setPreferredSize(new Dimension(200,200));
    panelInferior.setLayout(new java.awt.BorderLayout());
     String fechas = PedirFechasTitulo();
      TimeSeriesA linas = new TimeSeriesA("Consulta Tiques Emitidos por Hora-Minuto"+fechas+ complemento, panelSuperior,modelo1);
      BarrasConCategorias barras = new BarrasConCategorias("Consulta Tiques Emitidos por Hora"+ complemento, panelInferior, modelo2, -1);
      JScrollPane scroll2 = new JScrollPane(panelSuperior);
      JScrollPane scroll = new JScrollPane(panelInferior);
      spliter.setBottomComponent(scroll);
      spliter.setContinuousLayout(false);
      spliter.setTopComponent(scroll2);
      spliter.setDividerLocation(this.getHeight() / 2);
      panel.add(spliter);

      panel.invalidate();
      panel.validate();
      jTab.add(panel);

      jTab.setTitleAt(jTab.getComponentCount() - 1, "Tiques Emitidos");
      jTab.setSelectedIndex(jTab.getComponentCount() - 1);


   }
//   public void ConsultaTicketEmitidosPorHoraMinuto() {
//      DefaultTableModel modelo = Consultas.DatosConsultaTicketEmitidosPorHora();
//      PanelDatos panel = nuevoPanel("Tiques Atendidos por Hora", modelo);
//      String fechas = PedirFechasTitulo();
//      BarrasConCategorias barras = new BarrasConCategorias("Consulta Tiques Atendidos por Hora  " + fechas, panel, modelo, -1);
//      jTab.setSelectedIndex(jTab.getComponentCount() - 1);
//   }

   public void ConsultaTicketAbandonadosPorHora() {
      DefaultTableModel modelo = Consultas.DatosConsultaTicketAbandonadosPorHora();
      PanelDatos panel = nuevoPanel("Tiques Descartados por Hora", modelo);
      String fechas = PedirFechasTitulo();
      BarrasConCategorias barras = new BarrasConCategorias("Consulta Tiques Descartados por Hora  " + fechas+ complemento, panel, modelo, -1);
      jTab.setSelectedIndex(jTab.getComponentCount() - 1);
   }

   public void ConsultaRetrasos_Fecha() {
      if (ComprobarFechas() == false) {
         JOptionPane.showMessageDialog(this, "Mal");
         return;
      }
      DefaultTableModel modelo = Consultas.DatosConsultaRetrasos_Fecha();
      PanelDatos panel = nuevoPanel("Tiempo Espera por Fecha", modelo);
      String fechas = PedirFechasTitulo();
      if (this.jCheckHP.isSelected()) fechas = fechas + "  Hora Emisión";
      BarrasDoble barras = new BarrasDoble("Tiempo Espera por Fecha " + fechas+ complemento, panel, modelo);
      jTab.setSelectedIndex(jTab.getComponentCount() - 1);
   }
public void ConsultaRetrasos_AgrupadosH() {
      if (ComprobarFechas() == false) {
         JOptionPane.showMessageDialog(this, "Mal");
         return;
      }
      DefaultTableModel modelo = Consultas.DatosConsultaRetrasos_AgrupadosH();
      PanelDatos panel = nuevoPanel("Tiempo Espera Agrupado", modelo);
      String fechas = PedirFechasTitulo();
      if (this.jCheckHP.isSelected()) fechas = fechas + "  Hora Emisión";
        BarrasConCategorias barras = new BarrasConCategorias("Tiempo Espera Agrupado  " + fechas+ complemento, panel, modelo, 1);
      jTab.setSelectedIndex(jTab.getComponentCount() - 1);
   }
public void ConsultaRetrasos_Agrupados() {
      if (ComprobarFechas() == false) {
         JOptionPane.showMessageDialog(this, "Mal");
         return;
      }
      DefaultTableModel modelo = Consultas.DatosConsultaRetrasos_Agrupados();
      PanelDatos panel = nuevoPanel("Tiempo Espera Agrupado", modelo);
      String fechas = "(Actual)";
      if (this.jCheckHP.isSelected()) fechas = fechas + "  Hora Emisión";
        BarrasConCategorias barras = new BarrasConCategorias("Tiempo Espera Agrupado (Actual) "+ complemento , panel, modelo, 1);
      jTab.setSelectedIndex(jTab.getComponentCount() - 1);
   }
   public void ConsultaRetrasos_Cola() {
      if (ComprobarFechas() == false) {
         JOptionPane.showMessageDialog(this, "Mal");
         return;
      }
      DefaultTableModel modelo = Consultas.DatosConsultaRetrasos_Cola();
      String texto = "Tiempo Espera por Cola ";
      texto = this.transformaACodEstaCola(texto);
      PanelDatos panel = nuevoPanel(texto, modelo);
      String fechas = PedirFechasTitulo();
      if (this.jCheckHP.isSelected()) fechas = fechas + "  Hora Emisión";
      BarrasDoble barras = new BarrasDoble(texto + fechas+ complemento, panel, modelo);
      jTab.setSelectedIndex(jTab.getComponentCount() - 1);
   }

   public void ConsultaRetrasos_Hora() {
      if (ComprobarFechas() == false) {
         JOptionPane.showMessageDialog(this, "Mal");
         return;
      }
      DefaultTableModel modelo = Consultas.DatosConsultaRetrasos_Hora();
      PanelDatos panel = nuevoPanel("Tiempo Espera por Hora", modelo);
      String fechas = PedirFechasTitulo();
      if (this.jCheckHP.isSelected()) fechas = fechas + "  Hora Emisión";
      BarrasDoble barras = new BarrasDoble("Tiempo de espera por Hora " + fechas+ complemento, panel, modelo);
      jTab.setSelectedIndex(jTab.getComponentCount() - 1);
   }

   public void ConsultaTiempoMedio_Cola() {
      if (ComprobarFechas() == false) {
         JOptionPane.showMessageDialog(this, "Mal");
         return;
      }
      DefaultTableModel modelo = Consultas.DatosConsultaTiempoMedio_Cola();
      PanelDatos panel = nuevoPanel("Tiempo Medio Atención ", modelo);
      String fechas = PedirFechasTitulo();
      BarrasDoble barras = new BarrasDoble("Tiempo Medio Atención   " + fechas+ complemento, panel, modelo);
      jTab.setSelectedIndex(jTab.getComponentCount() - 1);
   }

   public void ConsultaTiemposOperador() {
      if (ComprobarFechas() == false) {
         JOptionPane.showMessageDialog(this, "Mal");
         return;
      }
      DefaultTableModel modelo = Consultas.DatosConsultaTiemposOperador();
      PanelDatos panel = nuevoPanel("Tiempos por Operador ", modelo);
      String fechas = PedirFechasTitulo();
      StackedBarChart barras = new StackedBarChart("Tiempos por Operador  " + fechas, panel, modelo);
      jTab.setSelectedIndex(jTab.getComponentCount() - 1);
   }

   public void ConsultaTiemposOperadorActual() {
      if (ComprobarFechas() == false) {
         JOptionPane.showMessageDialog(this, "Mal");
         return;
      }
      DefaultTableModel modelo = Consultas.DatosConsultaTiemposOperadorActual();
      PanelDatos panel = nuevoPanel("Tiempos por Operador ", modelo);
      StackedBarChart barras = new StackedBarChart("Tiempos por Operador  " + "Actual "+ complemento, panel, modelo);
      jTab.setSelectedIndex(jTab.getComponentCount() - 1);
   }

   public void ConsultaServiciosOperadorActual() {
      if (ComprobarFechas() == false) {
         JOptionPane.showMessageDialog(this, "Mal");
         return;
      }

      DefaultTableModel modelo = Consultas.DatosConsultaServiciosOperadorActual();
      PanelDatos panel = nuevoPanel("Servicios por Operador ", modelo);
      StackedBar2 barras = new StackedBar2("Servicios por Operador  " + "Actual "+ complemento, panel, modelo, "Citas Atendidas");
      jTab.setSelectedIndex(jTab.getComponentCount() - 1);
   }

   public void ConsultaServiciosOperador() {
      if (ComprobarFechas() == false) {
         JOptionPane.showMessageDialog(this, "Mal");
         return;
      }
      DefaultTableModel modelo = Consultas.DatosConsultaServiciosOperador();
      PanelDatos panel = nuevoPanel("Servicios por Operador ", modelo);
      String fechas = PedirFechasTitulo();
      StackedBar2 barras = new StackedBar2("Servicios por Operador  " + fechas+ complemento, panel, modelo, "Citas Atendidas");
      jTab.setSelectedIndex(jTab.getComponentCount() - 1);
   }

   public void ConsultaTicketEmitidosPorColaActual() {
      if (ComprobarFechas() == false) {
         JOptionPane.showMessageDialog(this, "Mal");
         return;
      }
       String texto = "Consulta Tiques Emitidos";
      DefaultTableModel modelo = Consultas.DatosConsultaTicketEmitidosPorColaActual();
      PanelDatos panel = nuevoPanel("Tiques Emitidos", modelo);
      BarrasConCategorias barras = new BarrasConCategorias(texto + complemento, panel, modelo, 1);
      jTab.setSelectedIndex(jTab.getComponentCount() - 1);
   }
   public void ConsultaOrigenActual() {
      if (ComprobarFechas() == false) {
         JOptionPane.showMessageDialog(this, "Mal");
         return;
      }
       String texto = "Consulta Origen Citas";
      DefaultTableModel modelo = Consultas.DatosConsultaOrigenActual();
      PanelDatos panel = nuevoPanel("Origen Citas Actual", modelo);
      BarrasConCategorias barras = new BarrasConCategorias(texto + complemento, panel, modelo, 1);
      jTab.setSelectedIndex(jTab.getComponentCount() - 1);
   }
public void ConsultaOrigenHistoricoAcciones() {
      if (ComprobarFechas() == false) {
         JOptionPane.showMessageDialog(this, "Mal");
         return;
      }
      String fechas = PedirFechasTitulo();
       String texto = "Consulta Origen Citas Historico";
      DefaultTableModel modelo = Consultas.DatosConsultaOrigenHistoricoAcciones();
      PanelDatos panel = nuevoPanel("Origen Citas Historico", modelo);
      BarrasConCategorias barras = new BarrasConCategorias(texto +fechas + complemento, panel, modelo, 1);
      jTab.setSelectedIndex(jTab.getComponentCount() - 1);
   }

   public void ConsultaCitaPreviaPorColaActual() {
      if (ComprobarFechas() == false) {
         JOptionPane.showMessageDialog(this, "Mal");
         return;
      }
       String texto = "Cita Previa por Cola ";
      texto = this.transformaACodEstaCola(texto);
      DefaultTableModel modelo = Consultas.DatosConsultaCitaPreviaPorColaActual();
      PanelDatos panel = nuevoPanel(texto, modelo);
      BarrasConCategorias barras = new BarrasConCategorias(texto+ complemento, panel, modelo, 1);

      jTab.setSelectedIndex(jTab.getComponentCount() - 1);
   }
  
   public void ConsultaRelacionActual() {
      DefaultTableModel modelo = Consultas.DatosConsultaTicketRelacionActual();
      PanelDatos panel = nuevoPanel("Relacion Citas", modelo);
      jTab.setSelectedIndex(jTab.getComponentCount() - 1);
      this.MostrarValoresTab();
   }

   public void ConsultaTicketEmitidosPorHoraActual() {
      DefaultTableModel modelo = Consultas.DatosConsultaTicketEmitidosPorHoraActual();
      PanelDatos panel = nuevoPanel("Tiques Emitidos por Hora", modelo);
      BarrasConCategorias barras = new BarrasConCategorias("Consulta Tiques Emitidos por Hora"+ complemento, panel, modelo, -1);
      jTab.setSelectedIndex(jTab.getComponentCount() - 1);
   }
    public void ConsultaTicketEmitidosPorHoraMinutoActual() {
      DefaultTableModel modelo1 = Consultas.DatosConsultaTicketEmitidosPorHoraActual();
      DefaultTableModel modelo2 = Consultas.DatosConsultaTicketEmitidosPorHoraMinutoActual();

       PanelDatos panel = new PanelDatos("Horas", modelo1);
         panel.setLayout(new java.awt.GridLayout(1, 1));

      JSplitPane spliter = new JSplitPane();
      spliter.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);
      JPanel panelSuperior = new JPanel();
    panelSuperior.setPreferredSize(new Dimension(200,200));
    panelSuperior.setLayout(new java.awt.BorderLayout());
      spliter.setTopComponent(panelSuperior);
      JPanel panelInferior = new JPanel();
       panelInferior.setPreferredSize(new Dimension(200,200));
    panelInferior.setLayout(new java.awt.BorderLayout());
      TimeSeriesA linas = new TimeSeriesA("Tiques Emitidos por Hora-Minuto"+ complemento, panelSuperior,modelo2);
      BarrasConCategorias barras = new BarrasConCategorias("Tiques Emitidos por Hora"+ complemento, panelInferior, modelo1, -1);
      JScrollPane scroll2 = new JScrollPane(panelSuperior);
      JScrollPane scroll = new JScrollPane(panelInferior);
      spliter.setBottomComponent(scroll);
      spliter.setContinuousLayout(false);
      spliter.setTopComponent(scroll2);
      spliter.setDividerLocation(this.getHeight() / 2);
      panel.add(spliter);
      
      panel.invalidate();
      panel.validate();
      jTab.add(panel);
      
      jTab.setTitleAt(jTab.getComponentCount() - 1, "Tiques Emitidos");
      jTab.setSelectedIndex(jTab.getComponentCount() - 1);
   }


   public void ConsultaRentaPorEstadoHoraActual() {

      DefaultTableModel modelo1 = Consultas.DatosConsultaRentaPorEstadoHoraActual1("'P','X'");
      DefaultTableModel modelo2 = Consultas.DatosConsultaRentaPorEstadoHoraActual1("'F','S','D','A'");
      DefaultTableModel modelo3 = Consultas.DatosConsultaRentaPorEstadoHoraActual1("' '");
      DefaultTableModel modelo4 = Consultas.DatosConsultaHuecosHoraActual();

      PanelDatos panel = nuevoPanel("Cita Previa Hora", modelo1);
      StackedBarRenta2 barras = new StackedBarRenta2("Consulta de Cita Previa por Hora"+ complemento, panel, modelo1, modelo2, modelo3, modelo4);
      CategoryDataset categorydataset = barras.getmodelo();
      DefaultTableModel modelo5 = tranformarCategoryATableModel(categorydataset);
      panel.setModelo(modelo5);
      jTab.setSelectedIndex(jTab.getComponentCount() - 1);
   }

   public void ConsultaRentaPorEstadoHoraMinutoActual() {
      DefaultTableModel modelo0 = Consultas.DatosConsultaRentaPorEstadoHoraMinutoActual1Vacia();
      DefaultTableModel modelo1 = Consultas.DatosConsultaRentaPorEstadoHoraMinutoActual1("'P','X'");
      DefaultTableModel modelo2 = Consultas.DatosConsultaRentaPorEstadoHoraMinutoActual1("'F','S','D','A'");
      DefaultTableModel modelo3 = Consultas.DatosConsultaRentaPorEstadoHoraMinutoActual1("' '");
         Locale locale = Locale.ITALIAN;
       String txt  =  DateFormat.getTimeInstance(DateFormat.SHORT, locale).format(new Date());
      PanelDatos panel = nuevoPanel("Cita Previa DIT "+ txt, modelo1);
      StackedBarRenta3 barras = new StackedBarRenta3("Consulta de Cita Previa por Hora-Minuto"+ complemento, panel, modelo1, modelo2, modelo3, modelo0);
      CategoryDataset categorydataset = barras.getmodelo();
      DefaultTableModel modelo5 = tranformarCategoryATableModel(categorydataset);
      panel.setModelo(modelo5);
      jTab.setSelectedIndex(jTab.getComponentCount() - 1);
   }

   
   
  

   public void ConsultaRetrasos_ColaActual() {
      if (ComprobarFechas() == false) {
         JOptionPane.showMessageDialog(this, "Mal");
         return;
      }
      DefaultTableModel modelo = Consultas.DatosConsultaRetrasos_ColaActual();
           String texto = "Tiempo Espera por Cola ";
           if (this.jCheckHP.isSelected()) texto = texto + "  Hora Emisión";
      texto = this.transformaACodEstaCola(texto);

      PanelDatos panel = nuevoPanel(texto+ complemento, modelo);
      BarrasDoble barras = new BarrasDoble(texto+ complemento, panel, modelo);
      jTab.setSelectedIndex(jTab.getComponentCount() - 1);
   }

   public void ConsultaRetrasos_ColaPresentesActual() {
      if (ComprobarFechas() == false) {
         JOptionPane.showMessageDialog(this, "Mal");
         return;
      }
      DefaultTableModel modelo = Consultas.DatosConsultaRetrasos_ColaPresentesActual();
      PanelDatos panel = nuevoPanel("Consulta Presentes", modelo);
      panel.setLayout(new java.awt.GridLayout(2, 1));
      BarrasConCategorias barras2 = new BarrasConCategorias("Consulta Presentes" + complemento, panel, modelo, 2, "NN");
           String texto = "Tiempo Espera ";
           if (this.jCheckHP.isSelected()) texto = texto + "  Hora Emisión";
      BarrasDoble barras = new BarrasDoble(texto + complemento, panel, modelo);
      jTab.setSelectedIndex(jTab.getComponentCount() - 1);
   }

   public void ConsultaRetrasos_HoraActual() {
      DefaultTableModel modelo = Consultas.DatosConsultaRetrasos_HoraActual();
      PanelDatos panel = nuevoPanel("Tiempo Espera por Hora", modelo);
      BarrasDoble barras = new BarrasDoble("Tiempo Espera por Hora"+ complemento, panel, modelo);
      jTab.setSelectedIndex(jTab.getComponentCount() - 1);
   }

   void ConsultaRenta_Actual() {
      DefaultTableModel modelo1 = Consultas.DatosConsultaRentaActual();
      DefaultTableModel modelo2 = Consultas.DatosConsultaRenta2Actual();
      DefaultTableModel modelo3 = UnirDatos(modelo1, modelo2);

      PanelDatos panel = new PanelDatos("Renta", modelo3);
      JSplitPane spliter = new JSplitPane();
      spliter.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);

      DefaultPieDataset data2 = new DefaultPieDataset();
      data2 = CrearData(modelo1);
      JPanel panelSuperior = new JPanel();
      panelSuperior.setLayout(new java.awt.BorderLayout());
      spliter.setTopComponent(panelSuperior);
      TartaMovimiento tm = new TartaMovimiento("Renta", panelSuperior, data2);

      StackedBarChartx scb = new StackedBarChartx("Renta ", modelo2);
      int filas = modelo2.getRowCount();
      ChartPanel cp;
      if (filas < 10) {
         cp = new ChartPanel(scb.chart);
      } else {
         int alto = filas * 35;
         cp = new ChartPanel(scb.chart,
                 800, alto,
                 0, 0,
                 800, alto,
                 true, true, true, true, true, true);
      }
      JScrollPane scroll = new JScrollPane(cp);
      spliter.setBottomComponent(scroll);
      panel.add(spliter);
      jTab.add(panel);
      jTab.setTitleAt(jTab.getComponentCount() - 1, "Renta");
      jTab.setSelectedIndex(jTab.getComponentCount() - 1);
      spliter.setDividerLocation(this.getHeight() / 3);
   }

   public String PedirFechasTitulo() {
      java.text.SimpleDateFormat dateFormatDMA = new java.text.SimpleDateFormat("dd-MM-yyyy");
      String F1 = dateFormatDMA.format(this.jFechaI.getDate());
      String F2 = "";
      if (getjRadioFI()) {
         F2 = dateFormatDMA.format(this.jFechaI.getDate());
      } else {
         F2 = dateFormatDMA.format(this.jFechaF.getDate());
      }
      return "(" + F1 + "  " + F2 + ") ";
   }

   String crearToolTip(String nombre) {
      StringBuffer toolTip = new StringBuffer("<html>");
      toolTip.append(nombre).append("<br>");
      toolTip.append(ColasValidas().replaceAll("'", "")).append(" <br>");
      toolTip.append(PedirFechasTitulo());
      toolTip.append("</html>");
      return toolTip.toString();
   }

   PanelDatos nuevoPanel(String nombre, DefaultTableModel modelo) {
      PanelDatos panel = new PanelDatos(nombre, modelo);
      jTab.addTab(nombre, null, panel, crearToolTip(nombre));
      return panel;
   }

   public void MarcarSelecion(boolean s) {
      int n = this.jPanelColas.getComponentCount();
      JCheckBox miBoton;
      for (int i = 0; i < n; i++) {
         miBoton = (JCheckBox) jPanelColas.getComponent(i);
         miBoton.setSelected(s);
      }
   }

   public Date getFechaI() {
      return this.jFechaI.getDate();
   }

   public Date getFechaF() {
      return this.jFechaF.getDate();
   }

   public boolean getjRadioFF() {
      return jRadioFF.isSelected();
   }

   public boolean getjRadioFI() {
      return jRadioFI.isSelected();
   }
    public boolean getjRadioCola() {
      return this.jRadioCola.isSelected();
   }
public boolean getjCheckHP()
{
return this.jCheckHP.isSelected();
}
public boolean getjCheckCP()
{
return this.jCheckCP.isSelected();
}

   public String ColasValidas() {
      int n = this.jPanelColas.getComponentCount();
      JCheckBox miBoton;
      StringBuffer colas = new StringBuffer();
      for (int i = 0; i < n; i++) {
         miBoton = (JCheckBox) jPanelColas.getComponent(i);
         if (miBoton.isSelected()) {
            String[] params = Datos.Variables.split(miBoton.getText(), '-');
            colas.append("'").append(params[0]).append("',");
         }
      }
      if (colas.length() > 0) {
         colas.setLength(colas.length() - 1);
      }
      return colas.toString();
   }

   private void MostrarMenu(java.awt.event.MouseEvent evt) {
      int p = evt.getButton();
      if (evt.getButton() == 3) {
         if (jTab.getSelectedIndex() == 0) {
            return;
         }
         this.jPopupMenu1.show(this, evt.getPoint().x, evt.getPoint().y);
      }
   }

   public void MostrarValoresTab() {
      PanelDatos panel = (PanelDatos) jTab.getSelectedComponent();
      DefaultTableModel modelo = panel.getModelo();
      VisorDatos Ficha1 = new VisorDatos(modelo, panel.getNombre());
      //Ficha1.invalidate();
      Ficha1.setVisible(true);
   }

   public void CerrarTab() {
      PanelDatos panel = (PanelDatos) jTab.getSelectedComponent();
      jTab.remove(panel);
      if (listaTabs.containsValue(panel)) {
         listaTabs.values().remove(panel);
      }
   }

   public void CerrarTodosTab() {
      while (jTab.getComponentCount() > 1) {
         jTab.remove(1);
      }
      listaTabs.clear();
   }

   boolean tabYaCreado(String key) {
      return listaTabs.containsKey(key);
   }

   public void CambiarColor(java.awt.event.MouseEvent evt) {
      JLabel etiqueta = (JLabel) evt.getComponent();
      etiqueta.setForeground(Color.blue);
   }

   public String PedirTurno() {
      if (jComboTurno.getSelectedIndex() > 0) {
         if (jComboTurno.getSelectedIndex() == 1) {
            return "M";
         } else {
            return "T";
         }
      }
      return " ";
   }

   private DefaultTableModel UnirDatos(DefaultTableModel modelo2, DefaultTableModel modelo1) {
      int numeroColumnas = modelo1.getColumnCount();
      DefaultTableModel modeloP = new DefaultTableModel();
      Object[] etiquetas = new Object[numeroColumnas];
      for (int i = 0; i < numeroColumnas; i++) {
         etiquetas[i] = modelo1.getColumnName(i);
      }
      modeloP.setColumnIdentifiers(etiquetas);
      for (int s = 0; s < modelo1.getRowCount(); s++) {
         Object[] datosFila = new Object[modelo1.getColumnCount()];
         for (int i = 0; i < modelo1.getColumnCount(); i++) {
            datosFila[i] = modelo1.getValueAt(s, i);
         }
         modeloP.addRow(datosFila);
      }
      for (int s = 0; s < modelo2.getRowCount(); s++) {
         Object[] datosFila = new Object[modelo2.getColumnCount()];
         for (int i = 0; i < modelo2.getColumnCount(); i++) {
            datosFila[i] = modelo2.getValueAt(s, i);
         }
         modeloP.addRow(datosFila);
      }
      return modeloP;
   }

   public DefaultTableModel SumarDatosRepetidos(DefaultTableModel tabla1, boolean orig_des, DefaultTableModel tabla2) {
      HashMap<String,Integer> hash = new HashMap<String,Integer>();
      Object[] cabecera = new Object[]{"Descripcion", "Total"};
      tabla2.setColumnIdentifiers(cabecera);

      int l = tabla1.getRowCount();
      for (int i = 0; i < l; i++) {
         String cola = (String) tabla1.getValueAt(i, 2);
         String ticket = (String) tabla1.getValueAt(i, 1);
         ticket = ticket.split("-")[0];
         if (cola.equals(ticket) == orig_des) {
            if (!hash.containsKey(cola)) {
               hash.put(cola, 1);
            } else {
               int valor = hash.get(cola) + 1;
               hash.put(cola, valor);
            }
         }

      }
      Object[] fila = new Object[2];
      for (String key : hash.keySet()) {
         fila[0] = key;
         fila[1] = hash.get(key);
         tabla2.addRow(fila);
      }
      ponerDescripcionAcolas(tabla2, 0);
      return tabla2;
   }

   public DefaultTableModel ponerDescripcionAcolas(DefaultTableModel model, int col) {
      for (int i = 0; i < model.getRowCount(); i++) {
         String cola = (String) model.getValueAt(i, col);
         cola = pedirNombreDeCola(cola);
         model.setValueAt(cola, i, col);
      }
      return model;
   }

   public DefaultTableModel tranformarCategoryATableModel(CategoryDataset categorydataset) {
      DefaultTableModel moddef = new DefaultTableModel();
      moddef.addColumn("");
      List cabecera = categorydataset.getRowKeys();
      for (int i = 0; i < cabecera.size(); i++) {
         moddef.addColumn(cabecera.get(i));
      }
      for (int i = 0; i < categorydataset.getColumnKeys().size(); i++) {
         Object[] filax = new Object[cabecera.size() + 1];
         filax[0] = (String) categorydataset.getColumnKey(i);
         for (int c = 1; c <= cabecera.size(); c++) {
            filax[c] = valorDataset(categorydataset.getValue(c - 1, i));
         }
         moddef.addRow(filax);
      }
      return moddef;
   }

   Integer valorDataset(Object ob) {
      if (ob == null) {
         return new Integer(0);
      }
      return new Integer(((Number) ob).intValue());
   }

    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jPopupMenu1 = new javax.swing.JPopupMenu();
        jMenuCerrar = new javax.swing.JMenuItem();
        jMenuCerrarTodo = new javax.swing.JMenuItem();
        jMenuMostrarValores = new javax.swing.JMenuItem();
        GrupoFechas = new javax.swing.ButtonGroup();
        GrupoEstadistico = new javax.swing.ButtonGroup();
        jScrollPane1 = new javax.swing.JScrollPane();
        panelMenu = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jTiketEmitidosCola = new javax.swing.JLabel();
        jTiketEmitidosFecha = new javax.swing.JLabel();
        jTiketEmitidosHora = new javax.swing.JLabel();
        jTiketEmitidosFecha_Cola = new javax.swing.JLabel();
        jTiketRetrasoFecha = new javax.swing.JLabel();
        JTicketRetrasoCola = new javax.swing.JLabel();
        JTicketRetrasoHora = new javax.swing.JLabel();
        JTicketTiempoMedioCola = new javax.swing.JLabel();
        JTiempoOperador = new javax.swing.JLabel();
        JServiciosOperador = new javax.swing.JLabel();
        jTiketDescartadosHora = new javax.swing.JLabel();
        jTiketDescartadosCola = new javax.swing.JLabel();
        jTiketReenviados = new javax.swing.JLabel();
        jTiketReenviadosDestino = new javax.swing.JLabel();
        jLabel6 = new javax.swing.JLabel();
        jTiketEmitidosColaActual = new javax.swing.JLabel();
        jTiketEmitidosHoraActual = new javax.swing.JLabel();
        JTicketRetrasoColaActual = new javax.swing.JLabel();
        JTicketRetrasoHoraActual = new javax.swing.JLabel();
        jTiketPresentesActual = new javax.swing.JLabel();
        jTiketCitaPreviaHoraActual = new javax.swing.JLabel();
        jTiketCitaPreviaColaActual = new javax.swing.JLabel();
        JServiciosOperadorActual = new javax.swing.JLabel();
        JTiempoOperadorActual = new javax.swing.JLabel();
        jTiketCandidatos = new javax.swing.JLabel();
        jTiketCitaPreviaHoraDITActual1 = new javax.swing.JLabel();
        jLabel7 = new javax.swing.JLabel();
        jLabel8 = new javax.swing.JLabel();
        jTiketOrigen = new javax.swing.JLabel();
        jTiketOrigen1 = new javax.swing.JLabel();
        jTab = new javax.swing.JTabbedPane();
        jpFechas = new javax.swing.JPanel();
        jPanel2 = new javax.swing.JPanel();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jFechaI = new com.toedter.calendar.JDateChooser();
        jComboTurno = new javax.swing.JComboBox();
        jLabel5 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jBmarcar = new javax.swing.JButton();
        jBdesmarcar = new javax.swing.JButton();
        jRadioFI = new javax.swing.JRadioButton();
        jRadioFF = new javax.swing.JRadioButton();
        jFechaF = new com.toedter.calendar.JDateChooser();
        jRadioCola = new javax.swing.JRadioButton();
        jRadioCodigoEs = new javax.swing.JRadioButton();
        jCheckHP = new javax.swing.JCheckBox();
        jCheckCP = new javax.swing.JCheckBox();
        jPanelInicial = new javax.swing.JPanel();
        jPanelColas = new javax.swing.JPanel();
        jPanelColas2 = new javax.swing.JPanel();

        jMenuCerrar.setText("Cerrar panel");
        jMenuCerrar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuCerrarActionPerformed(evt);
            }
        });
        jPopupMenu1.add(jMenuCerrar);

        jMenuCerrarTodo.setText("Cerrar todos los panel");
        jMenuCerrarTodo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuCerrarTodoActionPerformed(evt);
            }
        });
        jPopupMenu1.add(jMenuCerrarTodo);

        jMenuMostrarValores.setText("Mostrar valores");
        jMenuMostrarValores.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuMostrarValoresActionPerformed(evt);
            }
        });
        jPopupMenu1.add(jMenuMostrarValores);

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jScrollPane1.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
        jScrollPane1.setPreferredSize(new java.awt.Dimension(192, 100));
        jScrollPane1.addComponentListener(new java.awt.event.ComponentAdapter() {
            public void componentResized(java.awt.event.ComponentEvent evt) {
                jScrollPane1ComponentResized(evt);
            }
        });

        panelMenu.setBackground(new java.awt.Color(255, 255, 255));
        panelMenu.setAutoscrolls(true);
        panelMenu.setMinimumSize(new java.awt.Dimension(190, 90));
        panelMenu.setPreferredSize(new java.awt.Dimension(190, 90));
        panelMenu.setLayout(null);

        jLabel1.setFont(new java.awt.Font("Garamond", 1, 14)); // NOI18N
        jLabel1.setForeground(new java.awt.Color(255, 51, 51));
        jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel1.setText(" Consultas Historico");
        jLabel1.setToolTipText("");
        jLabel1.setMaximumSize(new java.awt.Dimension(190, 17));
        jLabel1.setMinimumSize(new java.awt.Dimension(190, 17));
        jLabel1.setPreferredSize(new java.awt.Dimension(210, 24));
        panelMenu.add(jLabel1);
        jLabel1.setBounds(5, 5, 180, 24);

        jTiketEmitidosCola.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
        jTiketEmitidosCola.setText("Tiques Atendidos Cola");
        jTiketEmitidosCola.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTiketEmitidosMouseClicked(evt);
            }
        });
        panelMenu.add(jTiketEmitidosCola);
        jTiketEmitidosCola.setBounds(10, 34, 180, 13);

        jTiketEmitidosFecha.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
        jTiketEmitidosFecha.setText("Tiques Atendidos Fecha");
        jTiketEmitidosFecha.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTiketEmitidosFechaMouseClicked(evt);
            }
        });
        panelMenu.add(jTiketEmitidosFecha);
        jTiketEmitidosFecha.setBounds(10, 54, 180, 13);

        jTiketEmitidosHora.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
        jTiketEmitidosHora.setText("Tiques Emitidos Hora");
        jTiketEmitidosHora.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTiketEmitidosHoraMouseClicked(evt);
            }
        });
        panelMenu.add(jTiketEmitidosHora);
        jTiketEmitidosHora.setBounds(10, 74, 180, 13);

        jTiketEmitidosFecha_Cola.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
        jTiketEmitidosFecha_Cola.setText("Tiques Atendidos Fecha-Cola");
        jTiketEmitidosFecha_Cola.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTiketEmitidosFecha_ColajTiketEmitidosMouseClicked(evt);
            }
        });
        panelMenu.add(jTiketEmitidosFecha_Cola);
        jTiketEmitidosFecha_Cola.setBounds(10, 94, 190, 13);

        jTiketRetrasoFecha.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
        jTiketRetrasoFecha.setText("Tiempo Espera por Fecha");
        jTiketRetrasoFecha.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTiketRetrasoFechaMouseClicked(evt);
            }
        });
        panelMenu.add(jTiketRetrasoFecha);
        jTiketRetrasoFecha.setBounds(10, 114, 170, 13);

        JTicketRetrasoCola.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
        JTicketRetrasoCola.setText("Tiempo Espera por Cola");
        JTicketRetrasoCola.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                JTicketRetrasoColaMouseClicked(evt);
            }
        });
        panelMenu.add(JTicketRetrasoCola);
        JTicketRetrasoCola.setBounds(10, 134, 180, 13);

        JTicketRetrasoHora.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
        JTicketRetrasoHora.setText("Tiempo Espera por Hora");
        JTicketRetrasoHora.setRequestFocusEnabled(false);
        JTicketRetrasoHora.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                JTicketRetrasoHoraMouseClicked(evt);
            }
        });
        panelMenu.add(JTicketRetrasoHora);
        JTicketRetrasoHora.setBounds(10, 150, 180, 20);

        JTicketTiempoMedioCola.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
        JTicketTiempoMedioCola.setText("Tiempo Medio Atención");
        JTicketTiempoMedioCola.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                JTicketTiempoMedioColaMouseClicked(evt);
            }
        });
        panelMenu.add(JTicketTiempoMedioCola);
        JTicketTiempoMedioCola.setBounds(10, 190, 170, 20);

        JTiempoOperador.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
        JTiempoOperador.setText("Tiempos por Operador");
        JTiempoOperador.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                JTiempoOperadorMouseClicked(evt);
            }
        });
        panelMenu.add(JTiempoOperador);
        JTiempoOperador.setBounds(10, 210, 170, 20);

        JServiciosOperador.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
        JServiciosOperador.setText("Servicios por Operador");
        JServiciosOperador.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                JServiciosOperadorMouseClicked(evt);
            }
        });
        panelMenu.add(JServiciosOperador);
        JServiciosOperador.setBounds(10, 230, 180, 20);

        jTiketDescartadosHora.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
        jTiketDescartadosHora.setText("Tiques Descartados Hora");
        jTiketDescartadosHora.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTiketDescartadosHoraMouseClicked(evt);
            }
        });
        panelMenu.add(jTiketDescartadosHora);
        jTiketDescartadosHora.setBounds(10, 250, 180, 20);

        jTiketDescartadosCola.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
        jTiketDescartadosCola.setText("Estado Tiques");
        jTiketDescartadosCola.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTiketDescartadosColaMouseClicked(evt);
            }
        });
        panelMenu.add(jTiketDescartadosCola);
        jTiketDescartadosCola.setBounds(10, 270, 180, 20);

        jTiketReenviados.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
        jTiketReenviados.setText("Tiques Reenviados Origen");
        jTiketReenviados.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTiketReenviadosMouseClicked(evt);
            }
        });
        panelMenu.add(jTiketReenviados);
        jTiketReenviados.setBounds(10, 290, 180, 20);

        jTiketReenviadosDestino.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
        jTiketReenviadosDestino.setText("Tiques Reenviados Destino");
        jTiketReenviadosDestino.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTiketReenviadosDestinoMouseClicked(evt);
            }
        });
        panelMenu.add(jTiketReenviadosDestino);
        jTiketReenviadosDestino.setBounds(10, 310, 180, 20);

        jLabel6.setFont(new java.awt.Font("Garamond", 1, 14)); // NOI18N
        jLabel6.setForeground(new java.awt.Color(255, 51, 51));
        jLabel6.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel6.setText("Consultas Actual    ");
        jLabel6.setToolTipText("");
        jLabel6.setPreferredSize(new java.awt.Dimension(200, 24));
        panelMenu.add(jLabel6);
        jLabel6.setBounds(10, 350, 180, 24);

        jTiketEmitidosColaActual.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
        jTiketEmitidosColaActual.setText("Tiques Emitidos Cola");
        jTiketEmitidosColaActual.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTiketEmitidosColaActualMouseClicked(evt);
            }
        });
        panelMenu.add(jTiketEmitidosColaActual);
        jTiketEmitidosColaActual.setBounds(10, 380, 180, 13);

        jTiketEmitidosHoraActual.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
        jTiketEmitidosHoraActual.setText("Tiques Emitidos Hora");
        jTiketEmitidosHoraActual.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTiketEmitidosHoraActualMouseClicked(evt);
            }
        });
        panelMenu.add(jTiketEmitidosHoraActual);
        jTiketEmitidosHoraActual.setBounds(10, 400, 180, 13);

        JTicketRetrasoColaActual.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
        JTicketRetrasoColaActual.setText("Tiempo Espera por Cola");
        JTicketRetrasoColaActual.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                JTicketRetrasoColaActualMouseClicked(evt);
            }
        });
        panelMenu.add(JTicketRetrasoColaActual);
        JTicketRetrasoColaActual.setBounds(10, 420, 180, 13);

        JTicketRetrasoHoraActual.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
        JTicketRetrasoHoraActual.setText("Tiempo Espera por Hora");
        JTicketRetrasoHoraActual.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                JTicketRetrasoHoraActualMouseClicked(evt);
            }
        });
        panelMenu.add(JTicketRetrasoHoraActual);
        JTicketRetrasoHoraActual.setBounds(10, 440, 180, 13);

        jTiketPresentesActual.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
        jTiketPresentesActual.setText("Presentes Cola Espera");
        jTiketPresentesActual.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTiketPresentesActualMouseClicked(evt);
            }
        });
        panelMenu.add(jTiketPresentesActual);
        jTiketPresentesActual.setBounds(10, 460, 170, 13);

        jTiketCitaPreviaHoraActual.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
        jTiketCitaPreviaHoraActual.setText("Cita Previa Hora");
        jTiketCitaPreviaHoraActual.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTiketCitaPreviaHoraActualMouseClicked(evt);
            }
        });
        panelMenu.add(jTiketCitaPreviaHoraActual);
        jTiketCitaPreviaHoraActual.setBounds(10, 480, 140, 13);

        jTiketCitaPreviaColaActual.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
        jTiketCitaPreviaColaActual.setText("Cita Previa Cola        ");
        jTiketCitaPreviaColaActual.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTiketCitaPreviaColaActualMouseClicked(evt);
            }
        });
        panelMenu.add(jTiketCitaPreviaColaActual);
        jTiketCitaPreviaColaActual.setBounds(10, 500, 160, 13);

        JServiciosOperadorActual.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
        JServiciosOperadorActual.setText("Servicios por Operador");
        JServiciosOperadorActual.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                JServiciosOperadorActualMouseClicked(evt);
            }
        });
        panelMenu.add(JServiciosOperadorActual);
        JServiciosOperadorActual.setBounds(10, 520, 170, 13);

        JTiempoOperadorActual.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
        JTiempoOperadorActual.setText("Tiempos por Operador");
        JTiempoOperadorActual.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                JTiempoOperadorActualMouseClicked(evt);
            }
        });
        panelMenu.add(JTiempoOperadorActual);
        JTiempoOperadorActual.setBounds(10, 540, 170, 13);

        jTiketCandidatos.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
        jTiketCandidatos.setText("Relacion de Candidatos");
        jTiketCandidatos.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTiketCandidatosMouseClicked(evt);
            }
        });
        panelMenu.add(jTiketCandidatos);
        jTiketCandidatos.setBounds(10, 560, 170, 13);

        jTiketCitaPreviaHoraDITActual1.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
        jTiketCitaPreviaHoraDITActual1.setText("Cita Previa Hora-Minuto");
        jTiketCitaPreviaHoraDITActual1.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTiketCitaPreviaHoraDITActual1MouseClicked(evt);
            }
        });
        panelMenu.add(jTiketCitaPreviaHoraDITActual1);
        jTiketCitaPreviaHoraDITActual1.setBounds(10, 580, 170, 13);

        jLabel7.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
        jLabel7.setText("Tiempos Espera Agupados");
        jLabel7.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jLabel7MouseClicked(evt);
            }
        });
        panelMenu.add(jLabel7);
        jLabel7.setBounds(10, 600, 170, 13);

        jLabel8.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
        jLabel8.setText("Tiempos Espera Agupados");
        jLabel8.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jLabel8MouseClicked(evt);
            }
        });
        panelMenu.add(jLabel8);
        jLabel8.setBounds(10, 170, 170, 20);

        jTiketOrigen.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
        jTiketOrigen.setText("Origen Citas");
        jTiketOrigen.setToolTipText("");
        jTiketOrigen.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTiketOrigenMouseClicked(evt);
            }
        });
        panelMenu.add(jTiketOrigen);
        jTiketOrigen.setBounds(10, 620, 180, 13);
        jTiketOrigen.getAccessibleContext().setAccessibleName("jTiketOrigen");

        jTiketOrigen1.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
        jTiketOrigen1.setText("Origen Citas");
        jTiketOrigen1.setToolTipText("");
        jTiketOrigen1.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTiketOrigen1MouseClicked(evt);
            }
        });
        panelMenu.add(jTiketOrigen1);
        jTiketOrigen1.setBounds(10, 330, 180, 20);

        jScrollPane1.setViewportView(panelMenu);

        getContentPane().add(jScrollPane1, java.awt.BorderLayout.WEST);

        jTab.setBackground(new java.awt.Color(255, 255, 204));
        jTab.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTabMouseClicked(evt);
            }
        });

        jpFechas.setMaximumSize(new java.awt.Dimension(1000, 1000));
        jpFechas.setLayout(new java.awt.BorderLayout());

        jPanel2.setBackground(new java.awt.Color(255, 255, 204));
        jPanel2.setMaximumSize(new java.awt.Dimension(1200, 1200));
        jPanel2.setPreferredSize(new java.awt.Dimension(100, 120));
        jPanel2.setLayout(null);

        jLabel3.setText("Fecha inicial");
        jPanel2.add(jLabel3);
        jLabel3.setBounds(136, 12, 101, 14);

        jLabel4.setText("Fecha final");
        jPanel2.add(jLabel4);
        jLabel4.setBounds(136, 36, 106, 14);

        jFechaI.setDateFormatString("dd-MM-yyyy");
        jPanel2.add(jFechaI);
        jFechaI.setBounds(248, 8, 117, 20);

        jComboTurno.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Todos", "Mañana", "Tarde" }));
        jComboTurno.setOpaque(false);
        jPanel2.add(jComboTurno);
        jComboTurno.setBounds(396, 32, 98, 20);

        jLabel5.setText("Turno");
        jPanel2.add(jLabel5);
        jLabel5.setBounds(396, 12, 95, 14);

        jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        jLabel2.setText("Colas");
        jLabel2.setVerticalAlignment(javax.swing.SwingConstants.BOTTOM);
        jPanel2.add(jLabel2);
        jLabel2.setBounds(10, 100, 150, 14);

        jBmarcar.setText("SeleccionarTodas");
        jBmarcar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBmarcarActionPerformed(evt);
            }
        });
        jPanel2.add(jBmarcar);
        jBmarcar.setBounds(200, 90, 148, 23);

        jBdesmarcar.setText("Quitar Selección");
        jBdesmarcar.setPreferredSize(new java.awt.Dimension(117, 23));
        jBdesmarcar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBdesmarcarActionPerformed(evt);
            }
        });
        jPanel2.add(jBdesmarcar);
        jBdesmarcar.setBounds(360, 90, 148, 23);

        jRadioFI.setBackground(new java.awt.Color(255, 255, 204));
        GrupoFechas.add(jRadioFI);
        jRadioFI.setSelected(true);
        jRadioFI.setText("Una Fecha");
        jRadioFI.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
        jRadioFI.setMargin(new java.awt.Insets(0, 0, 0, 0));
        jRadioFI.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jRadioFIActionPerformed(evt);
            }
        });
        jPanel2.add(jRadioFI);
        jRadioFI.setBounds(12, 12, 112, 15);

        jRadioFF.setBackground(new java.awt.Color(255, 255, 204));
        GrupoFechas.add(jRadioFF);
        jRadioFF.setText("Entre Fechas");
        jRadioFF.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
        jRadioFF.setMargin(new java.awt.Insets(0, 0, 0, 0));
        jRadioFF.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jRadioFFActionPerformed(evt);
            }
        });
        jPanel2.add(jRadioFF);
        jRadioFF.setBounds(12, 36, 114, 15);

        jFechaF.setDateFormatString("dd-MM-yyyy");
        jPanel2.add(jFechaF);
        jFechaF.setBounds(248, 32, 117, 20);

        jRadioCola.setBackground(new java.awt.Color(255, 255, 204));
        GrupoEstadistico.add(jRadioCola);
        jRadioCola.setSelected(true);
        jRadioCola.setText("Por Cola");
        jRadioCola.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jRadioColaActionPerformed(evt);
            }
        });
        jPanel2.add(jRadioCola);
        jRadioCola.setBounds(10, 60, 93, 23);

        jRadioCodigoEs.setBackground(new java.awt.Color(255, 255, 204));
        GrupoEstadistico.add(jRadioCodigoEs);
        jRadioCodigoEs.setText("Por Categoria Estadistica");
        jRadioCodigoEs.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jRadioCodigoEsActionPerformed(evt);
            }
        });
        jPanel2.add(jRadioCodigoEs);
        jRadioCodigoEs.setBounds(120, 60, 160, 23);

        jCheckHP.setBackground(new java.awt.Color(255, 255, 204));
        jCheckHP.setLabel("Hora de Emision Ticket");
        jPanel2.add(jCheckHP);
        jCheckHP.setBounds(510, 10, 170, 30);

        jCheckCP.setBackground(new java.awt.Color(255, 255, 204));
        jCheckCP.setText("Cita Previa Internet");
        jCheckCP.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckCPActionPerformed(evt);
            }
        });
        jPanel2.add(jCheckCP);
        jCheckCP.setBounds(510, 40, 170, 23);

        jpFechas.add(jPanel2, java.awt.BorderLayout.NORTH);

        jPanelInicial.setBackground(new java.awt.Color(255, 255, 255));
        jPanelInicial.setLayout(new java.awt.BorderLayout());

        jPanelColas.setBackground(new java.awt.Color(204, 255, 204));
        jPanelColas.setMaximumSize(new java.awt.Dimension(1280, 900));
        jPanelColas.setMinimumSize(new java.awt.Dimension(180, 120));
        jPanelColas.setPreferredSize(new java.awt.Dimension(180, 120));
        jPanelColas.setLayout(new javax.swing.BoxLayout(jPanelColas, javax.swing.BoxLayout.Y_AXIS));
        jPanelInicial.add(jPanelColas, java.awt.BorderLayout.WEST);

        jPanelColas2.setBackground(new java.awt.Color(204, 255, 204));
        jPanelColas2.setMinimumSize(new java.awt.Dimension(180, 100));
        jPanelColas2.setPreferredSize(new java.awt.Dimension(180, 100));
        jPanelColas2.setLayout(new javax.swing.BoxLayout(jPanelColas2, javax.swing.BoxLayout.Y_AXIS));
        jPanelInicial.add(jPanelColas2, java.awt.BorderLayout.CENTER);

        jpFechas.add(jPanelInicial, java.awt.BorderLayout.CENTER);

        jTab.addTab("Parametros", jpFechas);

        getContentPane().add(jTab, java.awt.BorderLayout.CENTER);

        pack();
    }// </editor-fold>//GEN-END:initComponents
   String cadenaTab(Object fuente) {
      JLabel lb = (JLabel) fuente;
      String txt = lb.getText();
      txt += "-" + ColasValidas();
      txt += PedirFechasTitulo();
      return txt;
   }

    private void jTiketReenviadosDestinoMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTiketReenviadosDestinoMouseClicked
       if (evt.getClickCount() > 1) {
          CambiarColor(evt);
          String txt = cadenaTab(evt.getSource());
//          if (listaTabs.containsKey(txt)) {
//             jTab.setSelectedComponent(listaTabs.get(txt));
//          } else {
                 setCursor(hourGlass);
             ConsultaTicketReenviadosPorCola(false);
             listaTabs.put(txt, jTab.getSelectedComponent());
                setCursor(hourNormal);
//          }
       }
    }//GEN-LAST:event_jTiketReenviadosDestinoMouseClicked

    private void JTiempoOperadorActualMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_JTiempoOperadorActualMouseClicked
       if (evt.getClickCount() > 1) {
          CambiarColor(evt);
          String txt = cadenaTab(evt.getSource());
//          if (listaTabs.containsKey(txt)) {
//             jTab.setSelectedComponent(listaTabs.get(txt));
//          } else {
             ConsultaTiemposOperadorActual();
             listaTabs.put(txt, jTab.getSelectedComponent());
//          }
       }
    }//GEN-LAST:event_JTiempoOperadorActualMouseClicked

    private void JServiciosOperadorActualMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_JServiciosOperadorActualMouseClicked
       if (evt.getClickCount() > 1) {
          CambiarColor(evt);
          String txt = cadenaTab(evt.getSource());
//          if (listaTabs.containsKey(txt)) {
//             jTab.setSelectedComponent(listaTabs.get(txt));
//          } else {
             ConsultaServiciosOperadorActual();
             listaTabs.put(txt, jTab.getSelectedComponent());
//          }
       }
    }//GEN-LAST:event_JServiciosOperadorActualMouseClicked

    private void jTiketCandidatosMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTiketCandidatosMouseClicked
       if (evt.getClickCount() > 1) {
          CambiarColor(evt);
          String txt = cadenaTab(evt.getSource());
//          if (listaTabs.containsKey(txt)) {
//             jTab.setSelectedComponent(listaTabs.get(txt));
//          } else {
             ConsultaRelacionActual();
             listaTabs.put(txt, jTab.getSelectedComponent());
//          }
       }
    }//GEN-LAST:event_jTiketCandidatosMouseClicked

    private void jTiketCitaPreviaColaActualMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTiketCitaPreviaColaActualMouseClicked
       if (evt.getClickCount() > 1) {
          CambiarColor(evt);
          String txt = cadenaTab(evt.getSource());
//          if (listaTabs.containsKey(txt)) {
//             jTab.setSelectedComponent(listaTabs.get(txt));
//          } else {
             ConsultaCitaPreviaPorColaActual();
             listaTabs.put(txt, jTab.getSelectedComponent());
//          }
       }
    }//GEN-LAST:event_jTiketCitaPreviaColaActualMouseClicked

    private void jTiketCitaPreviaHoraActualMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTiketCitaPreviaHoraActualMouseClicked
       if (evt.getClickCount() > 1) {
          CambiarColor(evt);
          String txt = cadenaTab(evt.getSource());
//          if (listaTabs.containsKey(txt)) {
//             jTab.setSelectedComponent(listaTabs.get(txt));
//          } else {
             ConsultaRentaPorEstadoHoraActual();
             listaTabs.put(txt, jTab.getSelectedComponent());
//          }
       }
    }//GEN-LAST:event_jTiketCitaPreviaHoraActualMouseClicked

    private void jTiketPresentesActualMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTiketPresentesActualMouseClicked
       if (evt.getClickCount() > 1) {
          CambiarColor(evt);
          String txt = cadenaTab(evt.getSource());
//          if (listaTabs.containsKey(txt)) {
//             jTab.setSelectedComponent(listaTabs.get(txt));
//          } else {
             ConsultaRetrasos_ColaPresentesActual();
             listaTabs.put(txt, jTab.getSelectedComponent());
//          }
       }
    }//GEN-LAST:event_jTiketPresentesActualMouseClicked

    private void JTicketRetrasoHoraActualMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_JTicketRetrasoHoraActualMouseClicked
       if (evt.getClickCount() > 1) {
          CambiarColor(evt);
          String txt = cadenaTab(evt.getSource());
//          if (listaTabs.containsKey(txt)) {
//             jTab.setSelectedComponent(listaTabs.get(txt));
//          } else {
             ConsultaRetrasos_HoraActual();
             listaTabs.put(txt, jTab.getSelectedComponent());
//          }
       }
    }//GEN-LAST:event_JTicketRetrasoHoraActualMouseClicked

    private void JTicketRetrasoColaActualMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_JTicketRetrasoColaActualMouseClicked
       if (evt.getClickCount() > 1) {
          CambiarColor(evt);
          String txt = cadenaTab(evt.getSource());
//          if (listaTabs.containsKey(txt)) {
//             jTab.setSelectedComponent(listaTabs.get(txt));
//          } else {
             ConsultaRetrasos_ColaActual();
             listaTabs.put(txt, jTab.getSelectedComponent());
//          }
       }
    }//GEN-LAST:event_JTicketRetrasoColaActualMouseClicked

    private void jTiketEmitidosHoraActualMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTiketEmitidosHoraActualMouseClicked
       if (evt.getClickCount() > 1) {
          CambiarColor(evt);
          String txt = cadenaTab(evt.getSource());
//          if (listaTabs.containsKey(txt)) {
//             jTab.setSelectedComponent(listaTabs.get(txt));
//          } else {
              ConsultaTicketEmitidosPorHoraMinutoActual();
             //ConsultaTicketEmitidosPorHoraActual();
             listaTabs.put(txt, jTab.getSelectedComponent());
//          }
       }
    }//GEN-LAST:event_jTiketEmitidosHoraActualMouseClicked

    private void jTiketEmitidosColaActualMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTiketEmitidosColaActualMouseClicked
       if (evt.getClickCount() > 1) {
          CambiarColor(evt);
          String txt = cadenaTab(evt.getSource());
//          if (listaTabs.containsKey(txt)) {
//             jTab.setSelectedComponent( listaTabs.get(txt));
//          } else {
             ConsultaTicketEmitidosPorColaActual();
             listaTabs.put(txt, jTab.getSelectedComponent());
//          }
       }
    }//GEN-LAST:event_jTiketEmitidosColaActualMouseClicked

    private void jTiketReenviadosMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTiketReenviadosMouseClicked
       if (evt.getClickCount() > 1) {
          CambiarColor(evt);
          String txt = cadenaTab(evt.getSource());
//          if (listaTabs.containsKey(txt)) {
//             jTab.setSelectedComponent(listaTabs.get(txt));
//          } else {
              setCursor(hourGlass);
             ConsultaTicketReenviadosPorCola(true);
             listaTabs.put(txt, jTab.getSelectedComponent());
              setCursor(hourNormal);

//          }
        
       }
    }//GEN-LAST:event_jTiketReenviadosMouseClicked

    private void jTiketDescartadosColaMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTiketDescartadosColaMouseClicked
       if (evt.getClickCount() > 1) {
          CambiarColor(evt);
          String txt = cadenaTab(evt.getSource());
//          if (listaTabs.containsKey(txt)) {
//             jTab.setSelectedComponent(listaTabs.get(txt));
//          } else {
             ConsultaTicketAbandonadosPorCola();
             listaTabs.put(txt, jTab.getSelectedComponent());
//          }
       }
    }//GEN-LAST:event_jTiketDescartadosColaMouseClicked

    private void jTiketDescartadosHoraMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTiketDescartadosHoraMouseClicked
       if (evt.getClickCount() > 1) {
          CambiarColor(evt);
          String txt = cadenaTab(evt.getSource());
//          if (listaTabs.containsKey(txt)) {
//             jTab.setSelectedComponent( listaTabs.get(txt));
//          } else {
             ConsultaTicketAbandonadosPorHora();
             listaTabs.put(txt, jTab.getSelectedComponent());
//          }
       }
    }//GEN-LAST:event_jTiketDescartadosHoraMouseClicked

    private void jMenuCerrarTodoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuCerrarTodoActionPerformed
       CerrarTodosTab();
    }//GEN-LAST:event_jMenuCerrarTodoActionPerformed

    private void JServiciosOperadorMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_JServiciosOperadorMouseClicked
       if (evt.getClickCount() > 1) {
          CambiarColor(evt);
          String txt = cadenaTab(evt.getSource());
//          if (listaTabs.containsKey(txt)) {
//             jTab.setSelectedComponent(listaTabs.get(txt));
//          } else {
             ConsultaServiciosOperador();
             listaTabs.put(txt, jTab.getSelectedComponent());
//          }
       }
    }//GEN-LAST:event_JServiciosOperadorMouseClicked

    private void jRadioFFActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jRadioFFActionPerformed
    }//GEN-LAST:event_jRadioFFActionPerformed

    private void jRadioFIActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jRadioFIActionPerformed
    }//GEN-LAST:event_jRadioFIActionPerformed

    private void JTiempoOperadorMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_JTiempoOperadorMouseClicked
       if (evt.getClickCount() > 1) {
          CambiarColor(evt);
          String txt = cadenaTab(evt.getSource());
//          if (listaTabs.containsKey(txt)) {
//             jTab.setSelectedComponent(listaTabs.get(txt));
//          } else {
             ConsultaTiemposOperador();
             listaTabs.put(txt, jTab.getSelectedComponent());
//          }
       }
    }//GEN-LAST:event_JTiempoOperadorMouseClicked

    private void JTicketTiempoMedioColaMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_JTicketTiempoMedioColaMouseClicked
       if (evt.getClickCount() > 1) {
          CambiarColor(evt);
          String txt = cadenaTab(evt.getSource());
//          if (listaTabs.containsKey(txt)) {
//             jTab.setSelectedComponent(listaTabs.get(txt));
//          } else {
             ConsultaTiempoMedio_Cola();
             listaTabs.put(txt, jTab.getSelectedComponent());
//          }
       }
    }//GEN-LAST:event_JTicketTiempoMedioColaMouseClicked

    private void JTicketRetrasoHoraMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_JTicketRetrasoHoraMouseClicked
       if (evt.getClickCount() > 1) {
          CambiarColor(evt);
          String txt = cadenaTab(evt.getSource());
//          if (listaTabs.containsKey(txt)) {
//             jTab.setSelectedComponent(listaTabs.get(txt));
//          } else {
             ConsultaRetrasos_Hora();
             listaTabs.put(txt, jTab.getSelectedComponent());
//          }
       }
    }//GEN-LAST:event_JTicketRetrasoHoraMouseClicked

    private void JTicketRetrasoColaMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_JTicketRetrasoColaMouseClicked
       if (evt.getClickCount() > 1) {
          CambiarColor(evt);
          String txt = cadenaTab(evt.getSource());
//          if (listaTabs.containsKey(txt)) {
//             jTab.setSelectedComponent(listaTabs.get(txt));
//          } else {
             ConsultaRetrasos_Cola();
             listaTabs.put(txt, jTab.getSelectedComponent());
//          }
       }
    }//GEN-LAST:event_JTicketRetrasoColaMouseClicked

    private void jTiketRetrasoFechaMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTiketRetrasoFechaMouseClicked
       if (evt.getClickCount() > 1) {
          CambiarColor(evt);
          String txt = cadenaTab(evt.getSource());
//          if (listaTabs.containsKey(txt)) {
//             jTab.setSelectedComponent(listaTabs.get(txt));
//          } else {
             ConsultaRetrasos_Fecha();
             listaTabs.put(txt, jTab.getSelectedComponent());
//          }
       }
    }//GEN-LAST:event_jTiketRetrasoFechaMouseClicked

    private void jTiketEmitidosFecha_ColajTiketEmitidosMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTiketEmitidosFecha_ColajTiketEmitidosMouseClicked
       if (evt.getClickCount() > 1) {
          CambiarColor(evt);
          String txt = cadenaTab(evt.getSource());
//          if (listaTabs.containsKey(txt)) {
//             jTab.setSelectedComponent(listaTabs.get(txt));
//          } else {
             ConsultaTicketEmitidosPorCola_Dia();
             listaTabs.put(txt, jTab.getSelectedComponent());
//          }
       }
    }//GEN-LAST:event_jTiketEmitidosFecha_ColajTiketEmitidosMouseClicked

    private void jTiketEmitidosMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTiketEmitidosMouseClicked
       if (evt.getClickCount() > 1) {
          CambiarColor(evt);
          String txt = cadenaTab(evt.getSource());
//          if (listaTabs.containsKey(txt)) {
//             jTab.setSelectedComponent(listaTabs.get(txt));
//          } else {
             ConsultaTicketEmitidosPorCola();
             listaTabs.put(txt, jTab.getSelectedComponent());
//          }
       }
    }//GEN-LAST:event_jTiketEmitidosMouseClicked

    private void jTiketEmitidosHoraMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTiketEmitidosHoraMouseClicked
       if (evt.getClickCount() > 1) {
          CambiarColor(evt);
          String txt = cadenaTab(evt.getSource());
//          if (listaTabs.containsKey(txt)) {
//             jTab.setSelectedComponent(listaTabs.get(txt));
//          } else {
             ConsultaTicketEmitidosPorHoraMinuto();
             listaTabs.put(txt, jTab.getSelectedComponent());
//          }
       }
    }//GEN-LAST:event_jTiketEmitidosHoraMouseClicked

    private void jBdesmarcarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBdesmarcarActionPerformed
       MarcarSelecion(false);
    }//GEN-LAST:event_jBdesmarcarActionPerformed

    private void jBmarcarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBmarcarActionPerformed
       MarcarSelecion(true);
    }//GEN-LAST:event_jBmarcarActionPerformed

    private void jMenuCerrarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuCerrarActionPerformed
       CerrarTab();
    }//GEN-LAST:event_jMenuCerrarActionPerformed

    private void jTiketEmitidosFechaMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTiketEmitidosFechaMouseClicked
       if (evt.getClickCount() > 1) {
          CambiarColor(evt);
          String txt = cadenaTab(evt.getSource());
//          if (listaTabs.containsKey(txt)) {
//             jTab.setSelectedComponent(listaTabs.get(txt));
//          } else {
             ConsultaTicketEmitidosPorFecha();
             listaTabs.put(txt, jTab.getSelectedComponent());
//          }
       }
    }//GEN-LAST:event_jTiketEmitidosFechaMouseClicked

    private void jMenuMostrarValoresActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuMostrarValoresActionPerformed
       MostrarValoresTab();
    }//GEN-LAST:event_jMenuMostrarValoresActionPerformed

    private void jTabMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTabMouseClicked
       MostrarMenu(evt);
    }//GEN-LAST:event_jTabMouseClicked

    private void jTiketCitaPreviaHoraDITActual1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTiketCitaPreviaHoraDITActual1MouseClicked
           if (evt.getClickCount() > 1) {
          CambiarColor(evt);
            String txt = cadenaTab(evt.getSource());
            this.ConsultaRentaPorEstadoHoraMinutoActual();
             listaTabs.put(txt, jTab.getSelectedComponent());
          
       }
    }//GEN-LAST:event_jTiketCitaPreviaHoraDITActual1MouseClicked

    void scrollResize() {
       int lineas = panelMenu.getComponentCount() - 2;
       int ancho = 190;
       int alto = 20 * lineas + 31* 2;
       if(alto < panelMenu.getHeight()) {
          alto = panelMenu.getHeight() - 1;
       }
       //if(this.jScrollPane1.getVerticalScrollBar().isVisible()) {
       //   ancho = ancho + this.jScrollPane1.getVerticalScrollBar().getWidth();
       //}
       panelMenu.setPreferredSize(new Dimension(ancho, alto));
       panelMenu.invalidate();
    }
   
    
private void jScrollPane1ComponentResized(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_jScrollPane1ComponentResized
   scrollResize();
}//GEN-LAST:event_jScrollPane1ComponentResized

private void jRadioColaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jRadioColaActionPerformed
    // TODO add your handling code here:
     TextoDeConsultaMenu();
     rellenarColasIniciales("SELECT Colas.Cola, Colas.Descripcion FROM Colas");
}//GEN-LAST:event_jRadioColaActionPerformed

private void jRadioCodigoEsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jRadioCodigoEsActionPerformed
  TextoDeConsultaMenu();
    rellenarColasIniciales("SELECT CodigoEstadistico, CategoriaEsta FROM CategoriasEsta");
  // TODO add your handling code here:
}//GEN-LAST:event_jRadioCodigoEsActionPerformed

private void jLabel7MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jLabel7MouseClicked
    // TODO add your handling code here:
     if (evt.getClickCount() > 1) {
          CambiarColor(evt);
          String txt = cadenaTab(evt.getSource());
//          if (listaTabs.containsKey(txt)) {
//             jTab.setSelectedComponent(listaTabs.get(txt));
//          } else {
            ConsultaRetrasos_Agrupados();
             listaTabs.put(txt, jTab.getSelectedComponent());
//          }
       }
}//GEN-LAST:event_jLabel7MouseClicked

private void jLabel8MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jLabel8MouseClicked
    // TODO add your handling code here:
       if (evt.getClickCount() > 1) {
          CambiarColor(evt);
          String txt = cadenaTab(evt.getSource());
//          if (listaTabs.containsKey(txt)) {
//             jTab.setSelectedComponent(listaTabs.get(txt));
//          } else {
            ConsultaRetrasos_AgrupadosH();
             listaTabs.put(txt, jTab.getSelectedComponent());
//          }
       }
}//GEN-LAST:event_jLabel8MouseClicked

    private void jCheckCPActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckCPActionPerformed
        // TODO add your handling code here:
        if (this.jCheckCP.isSelected())
        {
            complemento = " C.P. ";
            return;
        }
            complemento = " ";
    }//GEN-LAST:event_jCheckCPActionPerformed

    private void jTiketOrigenMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTiketOrigenMouseClicked
        // TODO add your handling code here:
      if (evt.getClickCount() > 1) {
          CambiarColor(evt);
          String txt = cadenaTab(evt.getSource());
//          if (listaTabs.containsKey(txt)) {
//             jTab.setSelectedComponent( listaTabs.get(txt));
//          } else {
             ConsultaOrigenActual();
             listaTabs.put(txt, jTab.getSelectedComponent());
//          }
       }
    }//GEN-LAST:event_jTiketOrigenMouseClicked

    private void jTiketOrigen1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTiketOrigen1MouseClicked
        // TODO add your handling code here:
           if (evt.getClickCount() > 1) {
          CambiarColor(evt);
          String txt = cadenaTab(evt.getSource());
//          if (listaTabs.containsKey(txt)) {
//             jTab.setSelectedComponent( listaTabs.get(txt));
//          } else {
            ConsultaOrigenHistoricoAcciones();
             listaTabs.put(txt, jTab.getSelectedComponent());
//          }
       }
    }//GEN-LAST:event_jTiketOrigen1MouseClicked

   /**
    * @param args the command line arguments
    */
   public static void main(String args[]) {
      if (args.length == 2) {
         Datos.Variables.getVariables().setNombreMaquina(args[0]);
         Datos.Variables.getVariables().setNombreAdmon(args[1]);
      }
      if (args.length == 3) {
         Datos.Variables.getVariables().setNombreMaquina(args[0]);
         Datos.Variables.getVariables().setNombreAdmon(args[1]);
           Datos.Variables.getVariables().setNombreBasedatos(args[2]);
      }
      java.awt.EventQueue.invokeLater(new Runnable() {

         public void run() {
            new Selector().setVisible(true);
         }
      });
   }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.ButtonGroup GrupoEstadistico;
    private javax.swing.ButtonGroup GrupoFechas;
    private javax.swing.JLabel JServiciosOperador;
    private javax.swing.JLabel JServiciosOperadorActual;
    private javax.swing.JLabel JTicketRetrasoCola;
    private javax.swing.JLabel JTicketRetrasoColaActual;
    private javax.swing.JLabel JTicketRetrasoHora;
    private javax.swing.JLabel JTicketRetrasoHoraActual;
    private javax.swing.JLabel JTicketTiempoMedioCola;
    private javax.swing.JLabel JTiempoOperador;
    private javax.swing.JLabel JTiempoOperadorActual;
    private javax.swing.JButton jBdesmarcar;
    private javax.swing.JButton jBmarcar;
    private javax.swing.JCheckBox jCheckCP;
    private javax.swing.JCheckBox jCheckHP;
    private javax.swing.JComboBox jComboTurno;
    private com.toedter.calendar.JDateChooser jFechaF;
    private com.toedter.calendar.JDateChooser jFechaI;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JMenuItem jMenuCerrar;
    private javax.swing.JMenuItem jMenuCerrarTodo;
    private javax.swing.JMenuItem jMenuMostrarValores;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanelColas;
    private javax.swing.JPanel jPanelColas2;
    private javax.swing.JPanel jPanelInicial;
    private javax.swing.JPopupMenu jPopupMenu1;
    private javax.swing.JRadioButton jRadioCodigoEs;
    private javax.swing.JRadioButton jRadioCola;
    private javax.swing.JRadioButton jRadioFF;
    private javax.swing.JRadioButton jRadioFI;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTabbedPane jTab;
    private javax.swing.JLabel jTiketCandidatos;
    private javax.swing.JLabel jTiketCitaPreviaColaActual;
    private javax.swing.JLabel jTiketCitaPreviaHoraActual;
    private javax.swing.JLabel jTiketCitaPreviaHoraDITActual1;
    private javax.swing.JLabel jTiketDescartadosCola;
    private javax.swing.JLabel jTiketDescartadosHora;
    private javax.swing.JLabel jTiketEmitidosCola;
    private javax.swing.JLabel jTiketEmitidosColaActual;
    private javax.swing.JLabel jTiketEmitidosFecha;
    private javax.swing.JLabel jTiketEmitidosFecha_Cola;
    private javax.swing.JLabel jTiketEmitidosHora;
    private javax.swing.JLabel jTiketEmitidosHoraActual;
    private javax.swing.JLabel jTiketOrigen;
    private javax.swing.JLabel jTiketOrigen1;
    private javax.swing.JLabel jTiketPresentesActual;
    private javax.swing.JLabel jTiketReenviados;
    private javax.swing.JLabel jTiketReenviadosDestino;
    private javax.swing.JLabel jTiketRetrasoFecha;
    private javax.swing.JPanel jpFechas;
    private javax.swing.JPanel panelMenu;
    // End of variables declaration//GEN-END:variables
}
