/* 
* 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 monitor;

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.logging.Level;
import javax.imageio.*;
import monitor.utiles.Global;

public final class PanelAnuncio extends javax.swing.JPanel {

    java.awt.image.BufferedImage fondo = null;
    ArrayList<String> tablaFicherosImagen = new ArrayList<>();
    int p = -1;

    public PanelAnuncio() {
        initComponents();
        cargaTablaImagenes();
    }

    @Override
    public void paint(java.awt.Graphics g) {
        g.drawImage(fondo, 0, 0, this.getWidth(), this.getHeight(), 0, 0, fondo.getWidth(null), fondo.getHeight(null), null, null);
    }

    public void preparaFondo() {
        p++;
        if (p >= tablaFicherosImagen.size()) {
            p = 0;
        }
        try {
            fondo = ImageIO.read(new File(tablaFicherosImagen.get(p)));
            this.repaint();
        } catch (Exception exc) {
            Ventana.log.log(Level.WARNING, "Excepcion en PanelAnuncio.preparaFondo: {0}", exc.getMessage());
        }
    }

    void cargaTablaImagenes() {
        String subdirectorio = Configuracion.instanciaUnica().rutaRecursos;
        if (subdirectorio.equals("recursos")) {
            subdirectorio = System.getProperty("user.dir") + "\\Recursos";
        }
        File dir = new File(subdirectorio);
        if (!dir.exists()) {
            return;
        }
        File[] files = dir.listFiles();
        for (File file : files) {
            if (file.getName().toLowerCase().endsWith("jpg")) {
                try {
                    tablaFicherosImagen.add(file.getAbsolutePath());
                } catch (Exception exc) {
                    Ventana.log.log(Level.WARNING, "Excepcion en PanelAnuncio.cargaTablaImagenes: {0}", exc.getMessage());
                    exc.printStackTrace();
                }
            }
        }
        Collections.sort(tablaFicherosImagen);
        if(tablaFicherosImagen.isEmpty()) {
            Global.extraerRecursoDelJar("Recursos/cartelCERO.jpg", "Recursos/cartelCERO.jpg");
            File file = new File("Recursos/cartelCERO.jpg");
            tablaFicherosImagen.add(file.getAbsolutePath());
        }
    }

    public boolean hayImagenes() {
        return !tablaFicherosImagen.isEmpty();
    }
    /**
     * 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.
     */
// <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
   private void initComponents() {
	  
	  setLayout(new java.awt.BorderLayout());
	  
	  addComponentListener(new java.awt.event.ComponentAdapter() {
		 public void componentShown(java.awt.event.ComponentEvent evt) {
			formComponentShown(evt);
		 }
	  });
	  
   }
// </editor-fold>//GEN-END:initComponents
   private void formComponentShown(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_formComponentShown
       repaint();
   }//GEN-LAST:event_formComponentShown
// Variables declaration - do not modify//GEN-BEGIN:variables
// End of variables declaration//GEN-END:variables
}
