/* 
* 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;
import administrador.utiles.Global;

public class TModelTiempos extends AbstractTableModel {

    PanelServidor panel;
    MapaOperadores operadores;
    ColeccionRegistros acciones;
    private final static String[] titulos = {"ESTADO", "NOMBRE", "MESA", "1ªCONEXION", "ULTIMO MOV", "LIBRE", "NO DISPO.", "OCUPADO", "CITAS", "COLA"};

    public TModelTiempos(PanelServidor panel) {
        this.panel = panel;
        operadores = panel.getMapaOperadores();
        acciones = panel.getColeccionMesas();
    }

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

    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        RegistroMesa reg = (RegistroMesa) acciones.getRegistro(rowIndex);
        if (reg == null) {
            return null;
        }
        switch (columnIndex) {
            case 0:
                return reg.estado;
            case 1:
                return operadores.getNombre(reg.codigo);
            case 2:
                return reg.puesto;
            case 3:
                return reg.horaPrimeraConexion.substring(11, 19);
            case 4:
                return reg.horaUltimoMovimiento;
            case 5:
                return Global.segundosAsString(reg.tiempoLibre);
            case 6:
                return Global.segundosAsString(reg.tiempoDescanso);
            case 7:
                return Global.segundosAsString(reg.tiempoOcupado);
            case 8:
                return "" + reg.numeroCitas;
            case 9:
                return reg.cola;
            case 10:
                return "NO";
            default:
                return "";
        }
    }

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

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