/*
*
* Copyright (c) 2013 - 2014 INT - National Institute of Technology & COPPE - Alberto Luiz Coimbra Institute
- Graduate School and Research in Engineering.
* See the file license.txt for copyright permission.
*
*/
package actions;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import javax.faces.model.SelectItem;
import org.ajax4jsf.context.AjaxContext;
import exception.relatorio.RelatorioException;
import modelo.Modelo;
import modelo.PerioPM;
import modelo.CapacRec;
import modelo.PlanoModelo;
import modelo.Recurso;
import service.PerioPMAppService;
import service.CapacRecAppService;
import service.RecursoAppService;
import service.controleTransacao.FabricaDeAppService;
import service.exception.AplicacaoException;
import util.SelectOneDataModel;
public class CapacRecActions extends BaseActions {
// Services
private static CapacRecAppService capacRecService;
private static RecursoAppService recursoService;
private static PerioPMAppService perioPMService;
// Paginas
public final String PAGINA_LIST = "listCapacRec";
public final String PAGINA_EDIT = "editCapacRec";
public final String PAGINA_EDIT_CAPACPADRAO = "editCapacPadrao";
// Variaveis de Tela
private CapacRec capacRecCorrente;
private Recurso recursoCorrente;
private DataModel listaDeRecursos;
/**
* Campo existente apenas em tela e que sera usado para
* propagar a mesma capacidade para todos os periodos
*/
private double capacidadePadrao;
private int pagina;
public CapacRecActions() throws Exception {
try {
perioPMService = FabricaDeAppService.getAppService(PerioPMAppService.class);
capacRecService = FabricaDeAppService.getAppService(CapacRecAppService.class);
recursoService = FabricaDeAppService.getAppService(RecursoAppService.class);
} catch (Exception e) {
throw e;
}
// Resgata a pagina do managed bean "recursoActions" que foi mantido na requisao atrav�s do keepAlive
pagina = ((RecursoActions) getManagedBean("recursoActions")).getPagina();
}
/**
* obtem do data Model (tabelaRecModels) o objeto recModelCorrente
* @return
*/
public String preparaAlteracao(){
return PAGINA_EDIT;
}
public String PreparaAlteraCapacPadrao(){
return PAGINA_EDIT_CAPACPADRAO;
}
public String altera() {
capacRecService.altera(capacRecCorrente);
info("capacRec.SUCESSO_ALTERACAO");
listaDeRecursos = null;
return PAGINA_LIST;
}
/**
* Alteracao da capacidade de todos os registros a partir
* da variavel capacidadePadrao informada pelo usuario
* retorna para a tela list de capacrec.
**/
public String alteraCapacPadrao(){
recursoCorrente = ((List<Recurso>) listaDeRecursos.getWrappedData()).get(pagina - 1);
capacRecService.alteraCapacPadrao(recursoCorrente, capacidadePadrao);
info("capacRec.SUCESSO_ALTERACAO_CAPACPADRAO");
listaDeRecursos = null;
return PAGINA_LIST;
}
public String cancela() {
listaDeRecursos = null;
return PAGINA_LIST;
}
// ================================== M�todos get() e set() ================================== //
public CapacRec getCapacRecCorrente() {
return capacRecCorrente;
}
public void setCapacRecCorrente(CapacRec capacRecCorrente) {
this.capacRecCorrente = capacRecCorrente;
}
public void setRecursoCorrente(Recurso recursoCorrente) {
this.recursoCorrente = recursoCorrente;
}
public Recurso getRecursoCorrente() {
return recursoCorrente;
}
public DataModel getListaDeRecursos() {
if (listaDeRecursos == null){
listaDeRecursos = new ListDataModel(recursoService.recuperaListaPaginadaDeRecursosComListaDeCapacRecs());
}
return listaDeRecursos;
}
public void setListaDeRecursos(DataModel listaDeRecursos) {
this.listaDeRecursos = listaDeRecursos;
}
public int getPagina() {
return pagina;
}
public void setPagina(int pagina) {
this.pagina = pagina;
}
public double getCapacidadePadrao() {
return capacidadePadrao;
}
public void setCapacidadePadrao(double capacidadePadrao) {
this.capacidadePadrao = capacidadePadrao;
}
}