/* * * 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.List; import javax.faces.model.DataModel; import javax.faces.model.ListDataModel; import modelo.Familia; import modelo.Modelo; import modelo.Parametros; import service.FamiliaAppService; import service.ParametrosAppService; import service.controleTransacao.FabricaDeAppService; import service.exception.AplicacaoException; import util.SelectOneDataModel; /** * @author samuelbandeira * */ public class FamiliaActions extends BaseActions implements Serializable{ // Services private static FamiliaAppService familiaService; private static ParametrosAppService parametrosService; private Familia familia; private DataModel listaDeFamilias; // Paginas public final String PAGINA_LIST = "listFamilia"; private String campoDeBusca;// private boolean buscaEfetuada = false;// private boolean renderizarDemandas = false;// private SelectOneDataModel<String> comboTiposDeBusca;// public final String BUSCA_POR_CODIGO = "C�digo";// public final String BUSCA_POR_DESCRICAO = "Descri��o";// private int opcaoRelatorioEscolhido; private int OPCAO_RELATORIO_FAMILIAS = 4; private int OPCAO_RELATORIO_FAMILIAS_COM_MODELOS = 5; public FamiliaActions() { try { familiaService = FabricaDeAppService.getAppService(FamiliaAppService.class); parametrosService = FabricaDeAppService.getAppService(ParametrosAppService.class); } catch (Exception e) { e.printStackTrace(); } } public String preparaInclusao() { Parametros parametro = parametrosService.recuperaListaDeParametros().get(0); if (!parametro.isInicPlanejamento()){ error("parametros.PLANEJAMENTO_NAO_INCIALIZADO"); return PAGINA_LIST; } familia = new Familia(); return "newFamilia"; } /** * @author bruno.oliveira * <br /> * M�todo que limpa a vari�vel de lista e depois redireciona para p�gina list da fam�lia.<br /> * � necess�rio apenas quando o cadastro tiver op��o de busca (como no caso de familia e modelo), pois * depois de realizar a busca sen�o houver novo get na lista de familias vai manter a lista resultante da busca. * * @return String */ public String preparaListagem() { listaDeFamilias = null; buscaEfetuada = false; return PAGINA_LIST; } /** * Executa a regra de neg�cio de inclus�o de uma fam�lia * * Atualiza a lista de Fam�lia e a insere no request * * @return String */ public String inclui() { try { familiaService.inclui(familia); listaDeFamilias = null; info("familia.SUCESSO_INCLUSAO"); return PAGINA_LIST; } catch (AplicacaoException e) { error(e.getMessage()); return "newFamilia"; } } /** * Seleciona o objeto para edi��o e redireciona para a tela de edi��o * * Insere o objeto no request * * @return String */ public String preparaAlteracao() { familia = (Familia) listaDeFamilias.getRowData(); return "editFamilia"; } /** * Executa a regra de neg�cio de altera��o de uma fam�lia * * Atualiza a lista de Fam�lia e a insere no request * * @return String */ public String altera() { familiaService.altera(familia); info("familia.SUCESSO_ALTERACAO"); listaDeFamilias = null; buscaEfetuada = false; return PAGINA_LIST; } /** * Exibe um objeto Fam�lia * * Redireciona para a p�gina show * * @return String */ public String mostra() { familia = (Familia) listaDeFamilias.getRowData(); return "showFamilia"; } public void prepararExclusao() { familia = (Familia)listaDeFamilias.getRowData(); } /** * Executa a regra de neg�cio de exclus�o de uma fam�lia * * @return String */ public String exclui() { try { familiaService.exclui(familia); listaDeFamilias = null; buscaEfetuada = false; info("familia.SUCESSO_EXCLUSAO"); } catch (AplicacaoException e) { error(e.getMessage()); } return PAGINA_LIST; } /** * Volta para a p�gina de lista de Fam�lia * * @return String */ public String cancela() { listaDeFamilias = null; buscaEfetuada = false; return PAGINA_LIST; } public void imprimir(){ List<Familia> listaFamilia = null; listaFamilia = familiaService.recuperaListaDeFamilias(); try{ if(listaFamilia.isEmpty()){ error("familia.FAMILIAS_INEXISTENTES"); }else{ if( opcaoRelatorioEscolhido == OPCAO_RELATORIO_FAMILIAS ){ familiaService.gerarRelatorio(familiaService.recuperaListaDeFamilias()); }else{ familiaService.gerarRelatorioAgregado(familiaService.recuperaListaDeFamiliasComModelos()); } } } catch (AplicacaoException re){ re.getMessage(); } } /** * M�todo que busca uma Familia por c�digo/descri��o aproximados * redireciona para pagina list com a mensagem adequada: encontrado/nao encontrado * * @author walanem */ public String buscaFamilia(){ List<Familia> familiasEncontradas = null; if (campoDeBusca.trim().isEmpty()){ error("familia.FORNECER_CAMPO_DE_BUSCA"); return PAGINA_LIST; } else { listaDeFamilias = null; if (comboTiposDeBusca.getObjetoSelecionado().equals(BUSCA_POR_CODIGO)){ familiasEncontradas = new ArrayList<Familia>(familiaService. recuperaListaDeFamiliasPeloCodigoLike(campoDeBusca)); } else { familiasEncontradas = new ArrayList<Familia>(familiaService. recuperaListaDeFamiliasPorDescricao(campoDeBusca)); } if (familiasEncontradas.isEmpty()){ error("familia.NAO_ENCONTRADA"); listaDeFamilias = null; return PAGINA_LIST; }else{ info("familia.ENCONTRADAS"); } } listaDeFamilias = new ListDataModel(familiasEncontradas); buscaEfetuada = true; return PAGINA_LIST; } public Familia getFamilia() { return familia; } public void setFamilia(Familia familia) { this.familia = familia; } public DataModel getListaDeFamilias() { if (listaDeFamilias == null) { listaDeFamilias = new ListDataModel(familiaService.recuperaListaPaginadaDeFamilias()); } return listaDeFamilias; } public void setListaDeFamilias(DataModel listaDeFamilias) { this.listaDeFamilias = listaDeFamilias; } public int getOpcaoRelatorioEscolhido() { return opcaoRelatorioEscolhido; } public void setOpcaoRelatorioEscolhido(int opcaoRelatorioEscolhido) { this.opcaoRelatorioEscolhido = opcaoRelatorioEscolhido; } 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; } }