Subversion Repositories Integrator Subversion

Rev

Blame | Last modification | View Log | Download | RSS feed

package br.edu.cesmac.sic.controller.beans;

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

import javax.annotation.PostConstruct;
import javax.inject.Inject;
import javax.inject.Named;

import org.springframework.context.annotation.Scope;

import br.edu.cesmac.core.consulta.ParametrosConsulta;
import br.edu.cesmac.core.generic.GenericService;
import br.edu.cesmac.sic.controller.beans.consultademanda.QuestaoConsultaPorDemanda;
import br.edu.cesmac.sic.core.domain.model.Questao;
import br.edu.cesmac.sic.core.domain.model.tipo.TipoTopico;
import br.edu.cesmac.sic.core.domain.service.QuestaoService;
import br.edu.cesmac.web.generic.AbstractBean;

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

        private static final long serialVersionUID = 1L;
       
        private QuestaoConsultaPorDemanda lazy;

        private QuestaoService questaoService;
       
        @Inject
        public QuestaoBean(QuestaoConsultaPorDemanda lazy, QuestaoService questaoService) {
                this.lazy = lazy;
                this.questaoService = questaoService;
        }

        @Override
        public Questao getId() {
                return getEntidade();
        }

        @Override
        public GenericService<Questao> getService() {
                return questaoService;
        }

        @Override
        public void limparEntidade() {
                setEntidade(new Questao());
        }
       
        @Override
        public Questao getEntidade() {
                return entidade;
        }

        public QuestaoConsultaPorDemanda getLazy() {
                return lazy;
        }
       
        public void prepararConsultaDemanda() {
                lazy.setarParametrosConsulta(getParametrosConsulta());
        }
       
        public TipoTopico[] getTiposTopico() {
                return TipoTopico.values();
        }
       
        @PostConstruct
        public void preCarregamento() {
                parametrosConsulta = new ParametrosConsulta<Questao>();
                parametrosConsulta.setEntidade(new Questao());
                prepararConsultaDemanda();
        }
       
        @Override
        public void cadastrar() {
                getEntidade().setAtivo(true);
                super.cadastrar();
        }
       
        public List<Questao> consultarQuestaosAtivas() {
                return questaoService.consultarQuestoesAtivas();
        }
       
}