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.primefaces.event.SelectEvent;
import org.springframework.context.annotation.Scope;
import br.edu.cesmac.core.generic.GenericService;
import br.edu.cesmac.sac.shared.views.CursoView;
import br.edu.cesmac.sic.controller.beans.consultademanda.AvaliadorConsultaPorDemanda;
import br.edu.cesmac.sic.core.domain.model.Area;
import br.edu.cesmac.sic.core.domain.model.Avaliador;
import br.edu.cesmac.sic.core.domain.model.dto.ParametrosConsultaAvaliadorDTO;
import br.edu.cesmac.sic.core.domain.service.AreaService;
import br.edu.cesmac.sic.core.domain.service.AvaliadorService;
import br.edu.cesmac.views.PessoaView;
import br.edu.cesmac.web.generic.AbstractBean;
@Named
@Scope
("view")
public class AvaliadorBean
extends AbstractBean
<Avaliador
> implements Serializable {
private static final long serialVersionUID = 1L
;
private AvaliadorConsultaPorDemanda lazy
;
private AvaliadorService avaliadorService
;
private List<Area> listaArea
;
private AreaService areaService
;
@Inject
public AvaliadorBean
(AvaliadorConsultaPorDemanda lazy, AvaliadorService avaliadorService, AreaService areaService
) {
this.
lazy = lazy
;
this.
avaliadorService = avaliadorService
;
this.
areaService = areaService
;
}
@
Override
public Avaliador getId
() {
return getEntidade
();
}
@
Override
public GenericService
<Avaliador
> getService
() {
return avaliadorService
;
}
@
Override
public void limparEntidade
() {
setEntidade
(new Avaliador
());
}
@
Override
public Avaliador getEntidade
() {
return entidade
;
}
public AvaliadorConsultaPorDemanda getLazy
() {
return lazy
;
}
public void prepararConsultaDemanda
() {
lazy.
setarParametrosConsulta(getParametrosConsulta
());
}
@PostConstruct
public void preCarregamento
() {
parametrosConsulta =
new ParametrosConsultaAvaliadorDTO
();
parametrosConsulta.
setEntidade(new Avaliador
());
prepararConsultaDemanda
();
setListaArea
(consultarTodasAreas
());
}
public void limparParametrosConsulta
() {
preCarregamento
();
}
public void selecionarCurso
(SelectEvent event
) {
getEntidade
().
setCurso(((CursoView
) event.
getObject()));
}
public void retirarCurso
() {
getEntidade
().
setCurso(null);
}
public void selecionarPessoa
(SelectEvent event
) {
getEntidade
().
setPessoa((PessoaView
) event.
getObject());
}
public void retirarPessoa
() {
getEntidade
().
setPessoa(null);
}
public List<Area> getListaArea
() {
return listaArea
;
}
public void setListaArea
(List<Area> listaArea
) {
this.
listaArea = listaArea
;
}
public List<Area> consultarTodasAreas
() {
return areaService.
consultarTodos(new Area());
}
}