Subversion Repositories Integrator Subversion

Rev

Rev 531 | 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.springframework.context.annotation.Scope;

import br.com.ec.controller.consultademanda.EstampaConsultaPorDemanda;
import br.com.ec.core.generic.GenericService;
import br.com.ec.domain.dto.EstampaDTO;
import br.com.ec.domain.dto.ImagemDTO;
import br.com.ec.domain.dto.TemaEstampaDTO;
import br.com.ec.domain.dto.consulta.ParametrosConsultaEstampaDTO;
import br.com.ec.domain.model.Estampa;
import br.com.ec.domain.model.TemaEstampa;
import br.com.ec.domain.service.EstampaService;
import br.com.ec.domain.service.ImagemService;
import br.com.ec.web.exception.VerificadorLancamentoException;
import br.com.ec.web.exception.VerificadorLancamentoException.CommandBean;
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 EstampaBean extends AbstractBean<Estampa> implements Serializable {

        private static final long serialVersionUID = 1L;
       
        private EstampaDTO entidadeParaConsulta;
        private List<EstampaDTO> estampas;
       
        private ParametrosConsultaEstampaDTO parametrosConsultaEstampaDTO;
        private EstampaConsultaPorDemanda lazy;
       
        private EstampaService estampaService;
        private ImagemService imagemService;
       
        @Inject
        public EstampaBean(EstampaConsultaPorDemanda lazy, EstampaService estampaService, ImagemService imagemService) {
                this.lazy = lazy;
                this.estampaService = estampaService;
                this.imagemService = imagemService;
        }
       
        @Override
        public void preCarregamento() {
                parametrosConsultaEstampaDTO = new ParametrosConsultaEstampaDTO();
                prepararConsultaDemanda();
                limparEntidade();
        }

        @Override
        public void limparEntidade() {
                setEntidade(new Estampa());
                getEntidade().setTemaEstampa(new TemaEstampa(new Long(1)));
                setEntidadeParaConsulta(new EstampaDTO());
        }

        @Override
        public GenericService<Estampa> getService() {
                return estampaService;
        }
       
        @Override
        public Estampa getEntidade() {
                return entidade;
        }
       
        @Override
        public void preConsultar() {
                setTipoOperacao(TipoOperacao.CONSULTAR);
        }

        @Override
        public Estampa getId() {
                return getEntidade();
        }
       
        @Override
        public void cadastrar(final Estampa entidade) {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                modificarEntidadeAntesDaOperacao();
                                getService().cadastrar(entidade);
                                modificarEntidadeDepoisDaOperacao();
                                LancadorMensagem.lancarSucesso(getMensagens().get(IDENTIFICADOR_MENSAGEM_CADASTRADO_COM_SUCESSO));
                                preAlterar(entidade);
                        }
                });
        }
       
        /*********************************************************/
       
        public EstampaDTO getEntidadeParaConsulta() {
                return entidadeParaConsulta;
        }
        public void setEntidadeParaConsulta(EstampaDTO entidadeParaConsulta) {
                this.entidadeParaConsulta = entidadeParaConsulta;
        }
       
        public List<EstampaDTO> getEstampas() {
                return estampas;
        }
        public void setEstampas(List<EstampaDTO> estampas) {
                this.estampas = estampas;
        }
       
        public ParametrosConsultaEstampaDTO getParametrosConsultaEstampaDTO() {
                return parametrosConsultaEstampaDTO;
        }
        public void setParametrosConsultaEstampaDTO(ParametrosConsultaEstampaDTO parametrosConsultaEstampaDTO) {
                this.parametrosConsultaEstampaDTO = parametrosConsultaEstampaDTO;
        }
       
        public EstampaConsultaPorDemanda getLazy() {
                return lazy;
        }
        public void setLazy(EstampaConsultaPorDemanda lazy) {
                this.lazy = lazy;
        }
        public void prepararConsultaDemanda() {
                lazy.setarParametrosConsulta(getParametrosConsultaEstampaDTO());
        }
       
        /*********************************************************/
       
        public void prepararDetalhar(TemaEstampaDTO temaEstampaDTO) {
//              super.preDetalhar(temaEstampaService.consultarPorId(new TemaEstampa(temaEstampaDTO.getSequencial())));
        }
       
        public void prepararAlterar(TemaEstampaDTO temaEstampaDTO) {
//              super.preAlterar(temaEstampaService.consultarPorId(new TemaEstampa(temaEstampaDTO.getSequencial())));
        }
       
        private void consultarEstampas() {
                setEstampas(estampaService.consultarEstampas(getEntidadeParaConsulta().getTemaEstampa()));
        }
       
        public void uploadImagem(final FileUploadEvent e) {
        new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                ImagemDTO imagemEnviada = imagemService.uploadImagem(e.getFile(), getEntidade().identificadorImagemEstampa(), imagemService.caminhoPastaEstampas());
                                getEntidade().setExtensao(imagemEnviada.getExtensao());
                                alterar(getEntidade());
                                LancadorMensagem.lancarSucessoRedirecionandoTela("ESTAMPA ADICIONADA COM SUCESSO", "/sistema/estampas/estampas.xhtml");
                        }
                });
    }
       
        public String retornarCaminhoEstampa(Estampa estampa) {
                return imagemService.retornarCaminhoImagem(imagemService.caminhoPastaEstampas(), imagemService.caminhoPadraoEstampas(), estampa.identificadorImagemEstampa(), estampa.getExtensao());
        }
       
}