beans.FotoBean.java Source code

Java tutorial

Introduction

Here is the source code for beans.FotoBean.java

Source

package beans;

import controladores.FotoController;
import entidades.Foto;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.imageio.stream.FileImageOutputStream;
import javax.servlet.ServletContext;
import org.apache.commons.io.FileUtils;
import org.primefaces.event.CaptureEvent;
import org.primefaces.event.FileUploadEvent;
import org.primefaces.model.DefaultStreamedContent;
import org.primefaces.model.StreamedContent;
import util.Util;

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
/**
 *
 * @author DeividNn
 */
@ManagedBean
@ViewScoped
public class FotoBean implements Serializable {

    private Foto foto;
    private List<Foto> fotos;
    private List<Foto> arquivos;
    private boolean abriuWebcam;
    private String arquivo;
    private File fotosalva;
    StreamedContent fotoc;

    @PostConstruct
    public void init() {
        listarFotos();
        listarArquivos();
    }

    public void listarFotos() {
        fotos = new ArrayList<>();
        String hql = "select vo from Foto vo where vo.nome is null order by vo.dataHora desc";
        fotos = new FotoController().listar(hql);
    }

    public void listarArquivos() {
        arquivos = new ArrayList<>();
        String hql = "select vo from Foto vo where vo.nome is not null order by vo.dataHora desc";
        arquivos = new FotoController().listar(hql);
    }

    public void abrirJanelaFoto() {
        abriuWebcam = true;
        arquivo = "";
        foto = new Foto();
        Util.atualizarComponente("dlgfoto");
        Util.executarJavascript("PF('dlgfoto').show();");
    }

    public void excluir(Foto f) {
        try {
            if (new FotoController().excluir(f)) {
                listarFotos();
                Util.criarMensagemAviso("foto excluida");
                Util.atualizarComponente("foto");

                abriuWebcam = false;
            }
        } catch (Exception e) {
            Util.criarMensagemErro(e.toString());
        }
    }

    public String gerarNome() {
        return String.valueOf(Calendar.getInstance().getTimeInMillis());
    }

    public void tirarFoto(CaptureEvent captureEvent) throws IOException {
        arquivo = gerarNome();
        byte[] data = captureEvent.getData();

        ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext()
                .getContext();
        String pasta = servletContext.getRealPath("") + File.separator + "resources" + File.separator
                + "fotossalvas";
        File vpasta = new File(pasta);
        if (!vpasta.exists()) {
            vpasta.setWritable(true);
            vpasta.mkdirs();
        }
        String novoarquivo = pasta + File.separator + arquivo + ".jpeg";
        System.out.println(novoarquivo);
        fotosalva = new File(novoarquivo);
        fotosalva.createNewFile();
        FileImageOutputStream imageOutput;
        try {
            imageOutput = new FileImageOutputStream(fotosalva);
            imageOutput.write(data, 0, data.length);
            imageOutput.close();

        } catch (IOException e) {
            Util.criarMensagemErro(e.toString());

        }
    }

    public void salvarFoto() {
        try {
            byte[] fotobyte = FileUtils.readFileToByteArray(fotosalva);
            foto.setArquivo(fotobyte);
            foto.setDataHora(Calendar.getInstance().getTime());

            if (new FotoController().salvar(foto)) {
                listarFotos();
                Util.executarJavascript("PF('dlgfoto').hide()");
                Util.criarMensagem("foto salva");
                Util.atualizarComponente("foto");
                fotosalva.delete();
                abriuWebcam = false;
            }
        } catch (Exception e) {
            Util.criarMensagemErro(e.toString());
        }
    }

    public void abrirJanelaUpload() {
        foto = new Foto();
        Util.atualizarComponente("dlgfoto");
        Util.executarJavascript("PF('dlgfoto').show();");
    }

    public void enviarArquivo(FileUploadEvent event) {
        try {
            arquivo = gerarNome();
            ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext()
                    .getContext();
            String pasta = servletContext.getRealPath("") + File.separator + "resources" + File.separator
                    + "arquivossalvos";
            File vpasta = new File(pasta);
            if (!vpasta.exists()) {
                vpasta.setWritable(true);
                vpasta.mkdirs();
            }
            String novoarquivo = pasta + File.separator + event.getFile().getFileName();
            File a = new File(novoarquivo);
            a.createNewFile();
            FileUtils.copyInputStreamToFile(event.getFile().getInputstream(), a);
            byte[] fotobyte = FileUtils.readFileToByteArray(a);
            foto.setNome(event.getFile().getFileName());
            foto.setArquivo(fotobyte);
            foto.setDataHora(Calendar.getInstance().getTime());

            if (new FotoController().salvar(foto)) {
                listarArquivos();
                Util.executarJavascript("PF('dlgfoto').hide()");
                Util.criarMensagem("arquivo salvo");
                Util.atualizarComponente("foto");
                a.delete();
            }

        } catch (Exception e) {
            Util.criarMensagemErro(e.toString());
        }
    }

    public StreamedContent fazerDownload(Foto f) {
        return new DefaultStreamedContent(new ByteArrayInputStream(f.getArquivo()), "application/octet-stream",
                f.getNome());
    }

    public void excluirArquivo(Foto f) {
        try {
            if (new FotoController().excluir(f)) {
                listarArquivos();
                Util.criarMensagemAviso("arquivo excluido");
                Util.atualizarComponente("foto");

            }
        } catch (Exception e) {
            Util.criarMensagemErro(e.toString());
        }
    }

    public Foto getFoto() {
        return foto;
    }

    public void setFoto(Foto foto) {
        this.foto = foto;
    }

    public List<Foto> getFotos() {
        return fotos;
    }

    public void setFotos(List<Foto> fotos) {
        this.fotos = fotos;
    }

    public boolean isAbriuWebcam() {
        return abriuWebcam;
    }

    public void setAbriuWebcam(boolean abriuWebcam) {
        this.abriuWebcam = abriuWebcam;
    }

    public String getArquivo() {
        return arquivo;
    }

    public void setArquivo(String arquivo) {
        this.arquivo = arquivo;
    }

    public File getFotosalva() {
        return fotosalva;
    }

    public void setFotosalva(File fotosalva) {
        this.fotosalva = fotosalva;
    }

    public StreamedContent getFotoc() {
        return fotoc;
    }

    public void setFotoc(StreamedContent fotoc) {
        this.fotoc = fotoc;
    }

    public List<Foto> getArquivos() {
        return arquivos;
    }

    public void setArquivos(List<Foto> arquivos) {
        this.arquivos = arquivos;
    }

}