/* * * 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.util.ArrayList; import java.util.List; import java.util.Map; import java.util.ResourceBundle; import java.util.Set; import javax.faces.application.FacesMessage; import javax.faces.context.FacesContext; import javax.faces.event.ActionEvent; import javax.faces.model.DataModel; import javax.faces.model.ListDataModel; import modelo.Modelo; import modelo.Parametros; import modelo.RecModel; import modelo.Recurso; import modelo.TecModel; import modelo.Tecido; import org.ajax4jsf.context.AjaxContext; import org.jboss.util.NotImplementedException; import service.ParametrosAppService; import service.RecursoAppService; import service.controleTransacao.FabricaDeAppService; import service.exception.AplicacaoException; import util.SelectOneDataModel; public class RecursoActions extends BaseActions { private static RecursoAppService recursoService; private static ParametrosAppService parametrosAppService; private Recurso recurso; private DataModel listaDeRecursos; private SelectOneDataModel<Recurso> listaSelecaoDeRecursos; private SelectOneDataModel<String> comboTiposDeBusca; private String campoDeBusca; private String tipoDeBuscaSelecionada; private boolean buscaEfetuada = false; private DataModel listaDeModelos; private int pagina; public final String BUSCA_POR_CODIGO = "C�digo"; public final String BUSCA_POR_DESCRICAO = "Descri��o"; public RecursoActions() { try { recursoService = FabricaDeAppService.getAppService(RecursoAppService.class); parametrosAppService = FabricaDeAppService.getAppService(ParametrosAppService.class); } catch (Exception e) { e.printStackTrace(); } } /** * @author bruno.oliveira * <br /> * M�todo que limpa a vari�vel de lista e depois redireciona para p�gina list da recurso.<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 recurso vai manter a lista resultante da busca. * * @return String */ public String preparaListagem() { listaDeRecursos = null; buscaEfetuada = false; return "listRecurso"; } /** * Volta para a p�gina de lista de Recurso * * @return String */ public String cancela() { listaDeRecursos = null; buscaEfetuada = false; return "listRecurso"; } /** * Insere na requisicao um novo recurso * Retorna "newRecurso" * Prepara para utilizar a pagina de inclusao(new) * @return */ public String preparaInclusao() { Parametros parametro = parametrosAppService.recuperaListaDeParametros().get(0); if (!parametro.isInicPlanejamento()){ error("parametros.PLANEJAMENTO_NAO_INCIALIZADO"); return "listRecurso"; } recurso = new Recurso(); return "newRecurso"; } /** * Executa a regra de neg�cio de inclus�o de um recurso * Atraves do recursoService * * Atualiza a lista de Recurso e a insere no request * * @return String */ public String inclui() { try { recursoService.incluiComCriticas(recurso); listaDeRecursos = null; info("recurso.SUCESSO_INCLUSAO"); return "listRecurso"; } catch (AplicacaoException e) { error(e.getMessage()); return "newRecurso"; } } /** * Seleciona o objeto para edi��o e redireciona para a tela de edi��o * * Insere o objeto no request * * @return String */ public String preparaAlteracao() { recurso = (Recurso) listaDeRecursos.getRowData(); try{ recurso = recursoService.recuperaRecursoComListaDeCapacRecs(recurso); }catch(AplicacaoException e){ } return "editRecurso"; } /** * Executa a regra de neg�cio de altera��o de um recurso * * Atualiza a lista de Recurso e a insere no request * * @return String */ public String altera() { recursoService.altera(recurso); info("recurso.SUCESSO_ALTERACAO"); listaDeRecursos = null; return "listRecurso"; } /** * Seleciona o objeto para exclusao * * Insere o objeto no request * */ public void preparaExclusao() { recurso = (Recurso) listaDeRecursos.getRowData(); } /** * Executa a regra de neg�cio de exclus�o de um recurso * * @return String */ public String exclui() { try { recursoService.exclui(recurso); listaDeRecursos = null; info("recurso.SUCESSO_EXCLUSAO"); } catch (AplicacaoException e) { error(e.getMessage()); } return "listRecurso"; } /** * Exibe um objeto Recurso * * Redireciona para a p�gina show * * @return String */ public String mostra() { recurso = (Recurso) listaDeRecursos.getRowData(); return "showRecurso"; } /** * M�todo que busca um Recurso por c�digo/descri��o aproximados * redireciona para pagina list com a mensagem adequada: encontrado/nao encontrado * * @author walanem */ public String buscaRecurso(){ List<Recurso> recursosEncontrados = null; if (campoDeBusca.trim().isEmpty()){ error("recurso.FORNECER_CAMPO_DE_BUSCA"); return "listRecurso"; } else { listaDeRecursos = null; if (comboTiposDeBusca.getObjetoSelecionado().equals(BUSCA_POR_CODIGO)){ recursosEncontrados = new ArrayList<Recurso>(recursoService.recuperaListaDeRecursosPeloCodigoLike(campoDeBusca)); } else { recursosEncontrados = new ArrayList<Recurso>(recursoService.recuperaListaDeRecursosPorDescricao(campoDeBusca)); } if (recursosEncontrados.isEmpty()){ error("recurso.NAO_ENCONTRADO"); listaDeRecursos = null; return "listRecurso"; }else{ info("recurso.ENCONTRADOS"); } } listaDeRecursos = new ListDataModel(recursosEncontrados); buscaEfetuada = true; return "listRecurso"; } /** * Ao voltar da tela "informa consumo de recurso por modelo" * limpa a listaDeRecursos que estava sendo usada pois esta * carregava todos os recmodels de cada recurso. * Fazendo listaDeRecursos = null, quando a tela for renderizada * vai usar getListaDeRecursos que obtem entao a lista mais leve, * sem os recmodels * * @return */ public String voltaLimpando() { listaDeRecursos = null; return "listRecurso"; } public void imprimir(){ try{ recursoService.gerarRelatorio(recursoService.recuperaListaDeRecursos()); } catch (AplicacaoException re){ error("recurso.RECURSOS_INEXISTENTES"); } } /** * Obtem listaDeRecursos trazendo os RecModels de cada recurso para * usar na tela de master detail * * Insere o objeto no request * direciona para a pagina list de recModel * */ public String informaConsumoPorModelo() { recurso = (Recurso) listaDeRecursos.getRowData(); int pag = ((List<Recurso>)listaDeRecursos.getWrappedData()).indexOf(recurso); pagina = pag +1; listaDeRecursos = new ListDataModel(recursoService.recuperaListaPaginadaDeRecursosComListaDeRecModels()); return "listRecModel"; } /** * Obtem listaDeRecursos trazendo os CapacRecs de cada recurso para * usar na tela de master detail * * Insere o objeto no request * direciona para a pagina list de CapacRecs * */ public String informaCapacidadeDoRecurso() { recurso = (Recurso) listaDeRecursos.getRowData(); int pag = ((List<Recurso>)listaDeRecursos.getWrappedData()).indexOf(recurso); pagina = pag +1; return "listCapacRec"; } /* * *********** Gets e Sets ***************** * */ public String getCampoDeBusca() { return campoDeBusca; } public void setCampoDeBusca(String campoDeBusca) { this.campoDeBusca = campoDeBusca; } public void setComboTiposDeBusca(SelectOneDataModel<String> comboTiposDeBusca) { this.comboTiposDeBusca = comboTiposDeBusca; } /** * M�todo que cria a ComboBox relativos as formas de busca de um Recurso * * @author Felipe */ 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 setBuscaEfetuada(boolean buscaEfetuada) { this.buscaEfetuada = buscaEfetuada; } public boolean isBuscaEfetuada() { return buscaEfetuada; } public void setTipoDeBuscaSelecionada(String tipoDeBuscaSelecionada) { this.tipoDeBuscaSelecionada = tipoDeBuscaSelecionada; } public String getTipoDeBuscaSelecionada() { return tipoDeBuscaSelecionada; } public Recurso getRecurso() { return recurso; } public void setRecurso(Recurso recurso) { this.recurso = recurso; } /** * Obtem Data Model listaDeRecursos com lista paginada atraves de recursoAppService * @return */ public DataModel getListaDeRecursos() { if (listaDeRecursos == null) { listaDeRecursos = new ListDataModel(recursoService.recuperaListaPaginadaDeRecursos()); } return listaDeRecursos; } public void setListaDeRecursos(DataModel listaDeRecursos) { this.listaDeRecursos = listaDeRecursos; } public void setListaSelecaoDeRecursos(SelectOneDataModel<Recurso> listaSelecaoDeRecursos) { this.listaSelecaoDeRecursos = listaSelecaoDeRecursos; } public SelectOneDataModel<Recurso> getListaSelecaoDeRecursos() { return listaSelecaoDeRecursos; } public void setListaDeModelos(DataModel listaDeModelos) { this.listaDeModelos = listaDeModelos; } public DataModel getListaDeModelos() { return listaDeModelos; } public int getPagina() { return pagina; } public void setPagina(int pagina) { this.pagina = pagina; } }