Subversion Repositories Integrator Subversion

Rev

Rev 555 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

package br.com.ec.controller;

import java.io.Serializable;
import java.util.List;

import javax.inject.Inject;
import javax.inject.Named;

import org.primefaces.event.FileUploadEvent;
import org.primefaces.model.StreamedContent;
import org.primefaces.model.file.UploadedFile;
import org.springframework.context.annotation.Scope;

import br.com.ec.core.generic.GenericService;
import br.com.ec.domain.dto.ArquivoPadraoDTO;
import br.com.ec.domain.service.ArquivosPadraoService;
import br.com.ec.web.exception.VerificadorLancamentoException;
import br.com.ec.web.exception.VerificadorLancamentoException.CommandBean;
import br.com.ec.web.exception.VerificadorLancamentoException.CommandRelatorioStreamedContent;
import br.com.ec.web.generic.AbstractBean;
import br.com.ec.web.message.LancadorMensagem;
import br.com.ec.web.util.TipoOperacao;

@Named
@Scope("view")
public class ArquivosPadraoBean extends AbstractBean<ArquivoPadraoDTO> implements Serializable {

        private static final long serialVersionUID = 1L;
       
        private ArquivoPadraoDTO entidadeParaConsulta;
        private List<ArquivoPadraoDTO> arquivosPadrao;
        private UploadedFile arquivoParaUpload;
       
        private ArquivosPadraoService arquivosPadraoService;
       
        @Inject
        public ArquivosPadraoBean(ArquivosPadraoService arquivosPadraoService) {
                this.arquivosPadraoService = arquivosPadraoService;
        }
       
        @Override
        public void preCarregamento() {
                limparEntidade();
                carregarArquivos();
        }

        @Override
        public void limparEntidade() {
                setEntidade(new ArquivoPadraoDTO());
        }

        @Override
        public GenericService<ArquivoPadraoDTO> getService() {
                return null;
        }
       
        @Override
        public ArquivoPadraoDTO getEntidade() {
                return entidade;
        }
       
        @Override
        public void preConsultar() {
                setTipoOperacao(TipoOperacao.CONSULTAR);
        }
       
        @Override
        public ArquivoPadraoDTO getId() {
                return getEntidade();
        }
       
        public List<ArquivoPadraoDTO> getArquivosPadrao() {
                return arquivosPadrao;
        }
        public void setArquivosPadrao(List<ArquivoPadraoDTO> arquivosPadrao) {
                this.arquivosPadrao = arquivosPadrao;
        }
       
        public UploadedFile getArquivoParaUpload() {
                return arquivoParaUpload;
        }
        public void setArquivoParaUpload(UploadedFile arquivoParaUpload) {
                this.arquivoParaUpload = arquivoParaUpload;
        }
       
        /*********************************************************/

        private void carregarArquivos() {
                setArquivosPadrao(arquivosPadraoService.consultarArquivos());
        }
       
        /*********************************************************/
       
        public StreamedContent downloadArquivo(final ArquivoPadraoDTO arquivoPadraoDTO) throws Exception {
                return new VerificadorLancamentoException().verificarLancamentoException(new CommandRelatorioStreamedContent() {
                        @Override
                        public StreamedContent execute() {
                                return arquivosPadraoService.downloadArquivo(arquivoPadraoDTO);
                        }
                });
        }
       
        public void uploadArquivoPadrao(final FileUploadEvent e) {
        new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                arquivosPadraoService.uploadArquivo(getEntidade(), e.getFile());
                                LancadorMensagem.lancarSucessoRedirecionandoTela("ARQUIVO " + getEntidade().getDescricao() + " ALTERADO COM SUCESSO", "/sistema/arquivos/arquivos.xhtml");
                        }
                });
    }
       
}