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

import javax.swing.table.*;
import administrador.PanelServidor;

public class TModelUbac extends AbstractTableModel {

   PanelServidor panel;
   ColeccionRegistros colas;
   private final static String[] titulos = {"COLA", "DESCRIPCIÓN", "PRESENTES", "ACTUAL", "RETRASO", "OPERADORES", "CERRADA", "H.ESTIMADA", "UMBRAL OPERADOR"};

   public TModelUbac(PanelServidor panel) {
      this.panel = panel;
      colas = panel.getColeccionColas();
   }

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

   @Override
   public Class getColumnClass(int c) {
      return getValueAt(0, c).getClass();
   }

   @Override
   public Object getValueAt(int rowIndex, int columnIndex) {
      RegistroCola reg = (RegistroCola) colas.getRegistro(rowIndex);
      if (reg == null) {
         return null;
      }
      switch (columnIndex) {
         case 0:
            return reg.codigo;
         case 1:
            return reg.descripcion;
         case 2:
            return "" + reg.pendientes;
         case 3:
            return "" + reg.ultimoTicket;
         case 4:
            return reg.retraso;
         case 5:
            return reg.operadores + (reg.operadoresSup > 0 ? (" +" + reg.operadoresSup) : "");
         case 6:
            return reg.estaCerrada();
         case 7:
            return reg.getHoraEstimada();
         case 8:
            return reg.getUmbralSuplencia() + (reg.getUmbralSuplencia() > reg.operadores ? " *" : "  ");    
         default:
            return "";
      }
   }

   @Override
   public int getRowCount() {
      return colas.size();
   }

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

   public RegistroCola colaSeleccionada(int fila) {
      return (RegistroCola) colas.getRegistro(fila);
   }
}
