package br.com.triadworks.issuetracker.controller;
import javax.annotation.PostConstruct;
import javax.inject.Inject;
import javax.inject.Named;
import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.ViewAccessScoped;
import org.conventionsframework.bean.BaseMBean;
import org.conventionsframework.bean.state.CrudState;
import org.conventionsframework.paginator.Paginator;
import org.conventionsframework.qualifier.Service;
import org.conventionsframework.service.BaseService;
import br.com.triadworks.issuetracker.controller.util.FacesUtils;
import br.com.triadworks.issuetracker.model.Projeto;
import br.com.triadworks.issuetracker.service.ProjetoService;
@ViewAccessScoped
@Named
public class ProjetoBean extends BaseMBean<Projeto> {
private Projeto projeto = new Projeto();
@Inject
private ProjetoService projetoService;
@Inject
private FacesUtils facesUtils;
public void lista() {
setBeanState(CrudState.FIND);
}
@PostConstruct
public void init(){
super.setBaseService(projetoService);
setBeanState(CrudState.FIND);
super.init();
}
public void preparaParaAdicionar() {
this.projeto = new Projeto();
setBeanState(CrudState.INSERT);
}
public void adiciona() {
projetoService.salva(projeto);
facesUtils.adicionaMensagemDeInformacao("Projeto adicionado com sucesso!");
lista();
}
public void remove() {
projetoService.remove(projeto);
facesUtils.adicionaMensagemDeInformacao("Projeto removido com sucesso!");
lista();
}
public void preparaParaAlterar(Projeto projeto) {
this.projeto = projetoService.crud().get(projeto.getId()); // evita LazyInitializationException
setBeanState(CrudState.UPDATE);
}
public void altera() {
projetoService.atualiza(projeto);
facesUtils.adicionaMensagemDeInformacao("Projeto atualizado com sucesso!");
lista();
}
public void voltar() {
this.projeto = new Projeto();
lista();
}
public boolean isAdicionando() {
return super.isInsertState();
}
public boolean isEditando() {
return super.isUpdateState();
}
public boolean isPesquisando() {
return super.isFindState();
}
public void setProjetoDao(ProjetoService projetoDao) {
this.projetoService = projetoDao;
}
public Projeto getprojeto() {
return projeto;
}
public void setprojeto(Projeto projeto) {
this.projeto = projeto;
}
public void setFacesUtils(FacesUtils facesUtils) {
this.facesUtils = facesUtils;
}
}