/* 
* 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 gestor.datos;

import gestor.utiles.Fecha;
import javax.swing.grid.SortTableModel;
import javax.swing.table.*;

public class TModelPresentes extends AbstractTableModel implements SortTableModel {

   TablaPresentes tabla;
   private final static String[] titulos = {"NOMBRE", "HORA CITA", "TIQUE", "MESA", "H.ESTIMADA"};
   private final static int[] anchosCol = {250, 80, 80, 60, 80};

   public TModelPresentes() {
      tabla = TablaPresentes.getTablaPresentes();
   }

   public void recargaDatos() {
      tabla.recargarTabla(TablaCandidatos.getTablaCandidatos());
   }

   @Override
   public Object getValueAt(int rowIndex, int columnIndex) {
      try {
         RegistroCandidatos r = tabla.getRegistroNum(rowIndex);
         switch (columnIndex) {
            case 0:
               return r.nombre;
            case 1:
               return Fecha.formatoHoraHM(r.horaCalculada);
            case 2:
               return r.numeroTicket;
            case 3:
               return r.mesa;
            case 4:
               return Fecha.formatoHoraHM(r.horaEstimada);
         }
      } catch (Exception exc) {
         return "??";
      }
      return "";
   }

   @Override
   public int getRowCount() {
      return tabla.recordsCount();
   }

   @Override
   public int getColumnCount() {
      return 5;
   }

   public void anchosColumna(javax.swing.JTable grid) {
      for (int i = 0; i < anchosCol.length; i++) {
         grid.getColumnModel().getColumn(i).setMinWidth(0);
         grid.getColumnModel().getColumn(i).setPreferredWidth(anchosCol[i]);
      }
   }

   @Override
   public String getColumnName(int c) {
      return titulos[c];
   }

   public int getIdFila(int f) {
      return tabla.getRegistroNum(f).id;
   }
   final String ceros = "00";

   @Override
   public Object getSortValueAt(int rowIndex, int columnIndex) {
      if (columnIndex == 2) {
         String s = (String) getValueAt(rowIndex, columnIndex);
         if (s.length() > 2) {
            int p = s.indexOf('-');
            String numero = s.substring(p+1);
            return s.substring(0, p) + "-" + ceros.substring(0, 3 - numero.length()) + numero;
         } else {
            return "";
         }
      }
      return getValueAt(rowIndex, columnIndex);
   }
}
