/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package br.edu.ifnmg.GerenciamentoEventos.Apresentacao;
import br.edu.ifnmg.GerenciamentoEventos.Aplicacao.ControllerBaseEntidade;
import br.edu.ifnmg.GerenciamentoEventos.DomainModel.AtividadeTipo;
import br.edu.ifnmg.GerenciamentoEventos.DomainModel.Evento;
import br.edu.ifnmg.GerenciamentoEventos.DomainModel.EventoInscricaoCategoria;
import br.edu.ifnmg.GerenciamentoEventos.DomainModel.Servicos.EventoInscricaoCategoriaRepositorio;
import br.edu.ifnmg.GerenciamentoEventos.DomainModel.Servicos.EventoRepositorio;
import javax.inject.Named;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.enterprise.context.RequestScoped;
/**
*
* @author Isla Guedes
*/
@Named(value = "eventoInscricaoCategoriaController")
@RequestScoped
public class EventoInscricaoCategoriaController
extends ControllerBaseEntidade<EventoInscricaoCategoria> implements Serializable {
AtividadeTipo atividadeTipo;
Integer limite;
/**
* Creates a new instance of CampusController
*/
public EventoInscricaoCategoriaController() {
padrao = new Evento();
}
@EJB
EventoInscricaoCategoriaRepositorio dao;
@EJB
EventoRepositorio daoE;
Evento padrao;
public void checaEventoPadrao() {
String evt = getConfiguracao("EVENTO_PADRAO");
if (evt != null) {
padrao = daoE.Abrir(Long.parseLong(evt));
if (getEntidade().getEvento() == null) {
getEntidade().setEvento(padrao);
}
if (getFiltro().getEvento() == null) {
getFiltro().setEvento(padrao);
}
}
}
@Override
public EventoInscricaoCategoria getFiltro() {
if (filtro == null) {
filtro = new EventoInscricaoCategoria();
filtro.setEvento((Evento)getSessao("eicctrl_evt",daoE));
}
return filtro;
}
@Override
public void setFiltro(EventoInscricaoCategoria filtro) {
this.filtro = filtro;
if (filtro != null) {
setSessao("eicctrl_evt", filtro.getNome());
}
}
@PostConstruct
public void init() {
setRepositorio(dao);
checaEventoPadrao();
setPaginaEdicao("editarEventoInscricaoCategoria.xhtml");
setPaginaListagem("listagemEventoInscricaoCategorias.xhtml");
}
@Override
public void limpar() {
setEntidade(new EventoInscricaoCategoria());
}
public void addLimite() {
entidade = dao.Refresh(getEntidade());
entidade.addLimite(atividadeTipo, limite);
SalvarAgregado(atividadeTipo);
atividadeTipo = new AtividadeTipo();
}
public void removeLimite() {
entidade = dao.Refresh(getEntidade());
entidade.removeLimite(atividadeTipo);
RemoverAgregado(atividadeTipo);
atividadeTipo = new AtividadeTipo();
}
public Integer getLimite() {
return limite;
}
public void setLimite(Integer limite) {
this.limite = limite;
}
public List<Map.Entry<AtividadeTipo, Integer>> getLimitesAtividades() {
return new ArrayList<>(entidade.getInscricoesPorAtividade().entrySet());
}
public AtividadeTipo getAtividadeTipo() {
return atividadeTipo;
}
public void setAtividadeTipo(AtividadeTipo atividadeTipo) {
this.atividadeTipo = atividadeTipo;
}
public Evento getPadrao() {
return padrao;
}
public void setPadrao(Evento padrao) {
this.padrao = padrao;
}
}