/* * * 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 javax.faces.model.DataModel; import javax.faces.model.ListDataModel; import modelo.DeModPer; import modelo.Modelo; import modelo.ModeloDecorado; import br.blog.arruda.plot.Plot; import service.DeModPerAppService; import service.ModeloAppService; import service.controleTransacao.FabricaDeAppService; import service.exception.AplicacaoException; import util.SelectOneDataModel; public class DeModPerActions extends BaseActions implements Serializable{ // Services private static DeModPerAppService demandaModeloPeriodoService; private static ModeloAppService modeloService; // Paginas public final String PAGINA_LIST = "listDeModPer"; public final String PAGINA_GRAFICO = "graficoDeModPer"; // Componentes de controle private DataModel listaDeModPer; private DataModel listaModelos; private SelectOneDataModel<String> comboTiposDeBusca; private List<DeModPer> demandasModelo; // Variaveis de Tela private DeModPer demanda; private ModeloDecorado modeloDecoradoCorrente; private Modelo modeloCorrente; private int pagina = 1; private boolean buscaEfetuada = false; private String campoDeBusca; public final String BUSCA_POR_CODIGO = "C�digo"; public final String BUSCA_POR_DESCRICAO = "Descri��o"; public Plot plotDeModPer; public DeModPerActions(){ try { demandaModeloPeriodoService = FabricaDeAppService.getAppService(DeModPerAppService.class); modeloService = FabricaDeAppService.getAppService(ModeloAppService.class); } catch (Exception e) { e.printStackTrace(); } plotDeModPer = null; } @SuppressWarnings("unchecked") public String exibirDemandas(){ if (modeloService.recuperaListaDeModelosComFamilias().isEmpty()){ error("modelo.MODELOS_NAO_CADASTRADOS"); return null; } return PAGINA_LIST; } @SuppressWarnings("unchecked") public String exibirGrafico(){ modeloCorrente = (Modelo) listaModelos.getRowData(); try { demandasModelo = modeloService.recuperaModeloComFamiliaEPeriodos (modeloCorrente).getDeModPers(); // Aqui estamos obrigando a lista ficar ordenada, ja que definimos como a classe DeModPer deve se ordenar. Collections.sort(demandasModelo); } catch (AplicacaoException e) { } plotDeModPer = demandaModeloPeriodoService.gerarDadosGrafico(demandasModelo); return PAGINA_GRAFICO; } /** * M�todo que busca um Modelo por c�digo/descri��o aproximados * * @author walanem */ public String buscaModelo(){ List<Modelo> modelosEncontrados = null; if (campoDeBusca.trim().isEmpty()){ error("modelo.FORNECER_CAMPO_DE_BUSCA"); return PAGINA_LIST; } else { listaModelos = null; if (comboTiposDeBusca.getObjetoSelecionado().equals(BUSCA_POR_CODIGO)){ modelosEncontrados = new ArrayList<Modelo>(modeloService.recuperaModeloPorCodigoLike(campoDeBusca)); } else { modelosEncontrados = new ArrayList<Modelo>(modeloService.recuperaModeloPorDescricao(campoDeBusca)); } if (modelosEncontrados.isEmpty()){ error("modelo.NAO_ENCONTRADO"); } else { info("modelo.ENCONTRADOS"); listaModelos = new ListDataModel(modelosEncontrados); buscaEfetuada = true; } } return PAGINA_LIST; } @SuppressWarnings("unchecked") public String informarDemandasPorModeloPeriodo(){ modeloDecoradoCorrente = (ModeloDecorado) listaModelos.getRowData(); try { demandasModelo = modeloService.recuperaModeloComFamiliaEPeriodos (modeloDecoradoCorrente.getModelo()).getDeModPers(); // Aqui estamos obrigando a lista ficar ordenada, ja que definimos como a classe DeModPer deve se ordenar. Collections.sort(demandasModelo); } catch (AplicacaoException e) { } if (demandasModelo.isEmpty()){ error("modelo.NAO_EXISTEM_DEMODPERS_ASSOCIADAS"); } else { pagina = ((List<Modelo>) listaModelos.getWrappedData()).indexOf(modeloDecoradoCorrente) + 1; listaDeModPer = new ListDataModel(demandasModelo); } return PAGINA_LIST; } public String altera(){ demandaModeloPeriodoService.altera(demanda); info("demodper.SUCESSO_ALTERACAO"); buscaEfetuada = false; listaDeModPer = null; listaModelos = null; modeloCorrente=null; plotDeModPer = null; return PAGINA_LIST; } public String cancelar(){ buscaEfetuada = false; listaModelos = null; modeloCorrente=null; plotDeModPer = null; return PAGINA_LIST; } // ================================== M�todos get() e set() ================================== // public void setTabelaDemandaModeloPeriodo(DataModel tabelaDemandaModeloPeriodo) { this.listaDeModPer = tabelaDemandaModeloPeriodo; } public DataModel getListaDeModPer() { return listaDeModPer; } public void setModeloDecoradoCorrente(ModeloDecorado modeloDecoradoCorrente) { this.modeloDecoradoCorrente = modeloDecoradoCorrente; } public ModeloDecorado getModeloDecoradoCorrente() { return modeloDecoradoCorrente; } public void setListaModelos(DataModel listaModelos) { this.listaModelos = listaModelos; } public DataModel getListaModelos() { if (listaModelos == null){ List<Modelo> modelos = modeloService.recuperaListaDeModelosComFamiliasEPeriodos(); for (Modelo modelo : modelos) { Collections.sort(modelo.getDeModPers()); } listaModelos = new ListDataModel(modelos); } return listaModelos; } public void setDemanda(DeModPer demanda) { this.demanda = demanda; } public DeModPer getDemanda() { return demanda; } public String getCampoDeBusca() { return campoDeBusca; } public boolean isBuscaEfetuada() { return buscaEfetuada; } public void setCampoDeBusca(String campoDeBusca) { this.campoDeBusca = campoDeBusca; } public void setBuscaEfetuada(boolean buscaEfetuada) { this.buscaEfetuada = buscaEfetuada; } public void setComboTiposDeBusca(SelectOneDataModel<String> comboTiposDeBusca) { this.comboTiposDeBusca = comboTiposDeBusca; } public SelectOneDataModel<String> getComboTiposDeBusca() { if (comboTiposDeBusca == null){ List<String> tiposDeBusca = new ArrayList<String>(2); tiposDeBusca.add(BUSCA_POR_CODIGO); tiposDeBusca.add(BUSCA_POR_DESCRICAO); comboTiposDeBusca = SelectOneDataModel.criaComObjetoSelecionadoSemTextoInicial(tiposDeBusca, BUSCA_POR_CODIGO); } return comboTiposDeBusca; } public void setPagina(int pagina) { this.pagina = pagina; } public int getPagina() { return pagina; } public void setDemandasModelo(List<DeModPer> demandasModelo) { this.demandasModelo = demandasModelo; } public List<DeModPer> getDemandasModelo() { return demandasModelo; } public String getPAGINA_GRAFICO() { return PAGINA_GRAFICO; } public Modelo getModeloCorrente() { return modeloCorrente; } public void setModeloCorrente(Modelo modeloCorrente) { this.modeloCorrente = modeloCorrente; } public Plot getPlotDeModPer() { return plotDeModPer; } public void setPlotDeModPer(Plot plotDeModPer) { this.plotDeModPer = plotDeModPer; } }