Subversion Repositories Integrator Subversion

Rev

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

package br.com.ec.controller.managedbean;

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

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

import org.springframework.context.annotation.Scope;

import br.com.ec.core.generic.GenericService;
import br.com.ec.core.util.VerificadorUtil;
import br.com.ec.domain.model.Perfil;
import br.com.ec.domain.model.UniversidadeConteudo;
import br.com.ec.domain.model.UniversidadeModulo;
import br.com.ec.domain.model.UniversidadeTopico;
import br.com.ec.domain.model.UniversidadeTopicoUsuario;
import br.com.ec.domain.model.tipos.TipoUniversidadeConteudo;
import br.com.ec.domain.service.seguranca.ContextoSeguranca;
import br.com.ec.domain.service.universidadeconteudo.UniversidadeConteudoService;
import br.com.ec.domain.service.universidademodulo.UniversidadeModuloService;
import br.com.ec.domain.service.universidadetopico.UniversidadeTopicoService;
import br.com.ec.domain.service.universidadetopicousuario.UniversidadeTopicoUsuarioService;
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 UniversidadeModuloBean extends AbstractBean<UniversidadeModulo> implements Serializable {

        private static final long serialVersionUID = 1L;
       
        private UniversidadeTopico topicoSelecionado;
        private UniversidadeConteudo conteudoSelecionado;
        private List<UniversidadeTopico> topicos;
        private List<UniversidadeTopicoUsuario> acessosTopico;
        private List<UniversidadeConteudo> conteudos;
        private List<UniversidadeModulo> listaModulos;
        private List<UniversidadeModulo> listaModulosAtivos;
        private List<Perfil> perfisSelecionados;
       
        private UniversidadeModuloService universidadeModuloService;
        private UniversidadeTopicoService universidadeTopicoService;
        private UniversidadeTopicoUsuarioService universidadeTopicoUsuarioService;
        private UniversidadeConteudoService universidadeConteudoService;
       
        private ContextoSeguranca contextoSeguranca;
       
        @Inject
        public UniversidadeModuloBean(UniversidadeModuloService universidadeModuloService, UniversidadeTopicoService universidadeTopicoService,
                        UniversidadeTopicoUsuarioService universidadeTopicoUsuarioService, UniversidadeConteudoService universidadeConteudoService,
                        ContextoSeguranca contextoSeguranca) {
                this.universidadeModuloService = universidadeModuloService;
                this.universidadeTopicoService = universidadeTopicoService;
                this.universidadeTopicoUsuarioService = universidadeTopicoUsuarioService;
                this.universidadeConteudoService = universidadeConteudoService;
                this.contextoSeguranca = contextoSeguranca;
        }
       
        @Override
        public void limparEntidade() {
                setEntidade(new UniversidadeModulo());
        }

        @Override
        public GenericService<UniversidadeModulo> getService() {
                return universidadeModuloService;
        }
       
        @Override
        public UniversidadeModulo getEntidade() {
                return entidade;
        }

        @Override
        public UniversidadeModulo getId() {
                return getEntidade();
        }
       
        public UniversidadeTopico getTopicoSelecionado() {
                return topicoSelecionado;
        }
        public void setTopicoSelecionado(UniversidadeTopico topicoSelecionado) {
                this.topicoSelecionado = topicoSelecionado;
        }
       
        public UniversidadeConteudo getConteudoSelecionado() {
                return conteudoSelecionado;
        }
        public void setConteudoSelecionado(UniversidadeConteudo conteudoSelecionado) {
                this.conteudoSelecionado = conteudoSelecionado;
        }
       
        public List<UniversidadeTopico> getTopicos() {
                return topicos;
        }
        public void setTopicos(List<UniversidadeTopico> topicos) {
                this.topicos = topicos;
        }
       
        public List<UniversidadeTopicoUsuario> getAcessosTopico() {
                return acessosTopico;
        }
        public void setAcessosTopico(List<UniversidadeTopicoUsuario> acessosTopico) {
                this.acessosTopico = acessosTopico;
        }
       
        public List<UniversidadeConteudo> getConteudos() {
                return conteudos;
        }
        public void setConteudos(List<UniversidadeConteudo> conteudos) {
                this.conteudos = conteudos;
        }
       
        public List<UniversidadeModulo> getListaModulos() {
//              if (VerificadorUtil.estaNulo(listaModulos)) {
                        setListaModulos(universidadeModuloService.consultarTodos(new UniversidadeModulo()));
//              }
                return listaModulos;
        }
        public void setListaModulos(List<UniversidadeModulo> listaModulos) {
                this.listaModulos = listaModulos;
        }
       
        public List<UniversidadeModulo> getListaModulosAtivos() {
                if (VerificadorUtil.estaNulo(listaModulosAtivos)) {
                        setListaModulosAtivos(universidadeModuloService.listarModulosAtivos());
                }
                return listaModulosAtivos;
        }
        public void setListaModulosAtivos(List<UniversidadeModulo> listaModulosAtivos) {
                this.listaModulosAtivos = listaModulosAtivos;
        }
       
        public List<Perfil> getPerfisSelecionados() {
                return perfisSelecionados;
        }
        public void setPerfisSelecionados(List<Perfil> perfisSelecionados) {
                this.perfisSelecionados = perfisSelecionados;
        }
       
        public TipoUniversidadeConteudo[] getTiposConteudo() {
                return TipoUniversidadeConteudo.values();
        }
       
        public void prepararTopico() {
                setTopicoSelecionado(new UniversidadeTopico());
        }
       
        public void cadastrarTopico() {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                getTopicoSelecionado().setModulo(getEntidade());
                                universidadeTopicoService.cadastrar(getTopicoSelecionado());
                                LancadorMensagem.lancarSucesso(getMensagens().get(IDENTIFICADOR_MENSAGEM_CADASTRADO_COM_SUCESSO));
                                consultarTopicos(getEntidade());
                        }
                });
        }
       
        public void alterarTopico() {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                universidadeTopicoService.alterar(getTopicoSelecionado());
                                LancadorMensagem.lancarSucesso(getMensagens().get(IDENTIFICADOR_MENSAGEM_ALTERADO_COM_SUCESSO));
                        }
                });
        }
       
        public void selecionarTopico(UniversidadeTopico universidadeTopico) {
                setTopicoSelecionado(universidadeTopico);
                setConteudos(universidadeTopicoService.consultarConteudos(universidadeTopico, true));
        }
       
        public void prepararConteudo() {
                setConteudoSelecionado(new UniversidadeConteudo());
        }
       
        public void cadastrarConteudo() {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                getConteudoSelecionado().setTopico(getTopicoSelecionado());
                                universidadeConteudoService.cadastrar(getConteudoSelecionado());
                                LancadorMensagem.lancarSucesso(getMensagens().get(IDENTIFICADOR_MENSAGEM_CADASTRADO_COM_SUCESSO));
                                selecionarTopico(getTopicoSelecionado());
                        }
                });
        }
       
        public void alterarConteudo() {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                universidadeConteudoService.alterar(getConteudoSelecionado());
                                LancadorMensagem.lancarSucesso(getMensagens().get(IDENTIFICADOR_MENSAGEM_ALTERADO_COM_SUCESSO));
                        }
                });
        }
       
        public void acessarTopicos(UniversidadeModulo universidadeModulo) {
                setEntidade(universidadeModulo);
                setTopicos(universidadeTopicoService.consultarTopicos(universidadeModulo, true));
        }
       
        public void acessarConteudo(UniversidadeTopico universidadeTopico) {
                setTopicoSelecionado(universidadeTopico);
                setConteudos(universidadeTopicoService.consultarConteudos(universidadeTopico, true));
                universidadeTopicoService.atualizarAcessoUsuario(universidadeTopico, contextoSeguranca.obterUsuario());
        }
       
        public void consultarTopicos(UniversidadeModulo universidadeModulo) {
                setTipoOperacao(TipoOperacao.REALIZAR);
                setEntidade(universidadeModuloService.detalharModulo(universidadeModulo));
                setConteudoSelecionado(null);
                setConteudos(null);
                setAcessosTopico(null);
        }
       
        public void acessosTopico(UniversidadeTopico universidadeTopico) {
                setTopicoSelecionado(universidadeTopico);
                setAcessosTopico(universidadeTopicoUsuarioService.acessosTopico(universidadeTopico));
        }
       
        public void excluirTopico(final UniversidadeTopico universidadeTopico) {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                universidadeTopicoService.excluir(universidadeTopico);
                                LancadorMensagem.lancarSucesso(getMensagens().get(IDENTIFICADOR_MENSAGEM_EXCLUIDO_COM_SUCESSO));
                                consultarTopicos(getEntidade());
                        }
                });
        }
       
        public void excluirConteudo(final UniversidadeConteudo universidadeConteudo) {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                universidadeConteudoService.excluir(universidadeConteudo);
                                LancadorMensagem.lancarSucesso(getMensagens().get(IDENTIFICADOR_MENSAGEM_EXCLUIDO_COM_SUCESSO));
                                selecionarTopico(getTopicoSelecionado());
                        }
                });
        }
       
}