package gcom.gui.seguranca.acesso; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.seguranca.acesso.FiltroFuncionalidade; import gcom.seguranca.acesso.FiltroFuncionalidadeCategoria; import gcom.seguranca.acesso.FiltroFuncionalidadeDependencia; import gcom.seguranca.acesso.FiltroModulo; import gcom.seguranca.acesso.Funcionalidade; import gcom.seguranca.acesso.FuncionalidadeCategoria; import gcom.seguranca.acesso.FuncionalidadeDependencia; import gcom.seguranca.acesso.Modulo; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.util.Collection; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; /** * Descri��o da classe * * @author R�mulo Aur�lio * @date 15/05/2006 */ public class ExibirAtualizarFuncionalidadeAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta o mapeamento de retorno ActionForward retorno = actionMapping .findForward("atualizarFuncionalidade"); AtualizarFuncionalidadeActionForm atualizarFuncionalidadeActionForm = (AtualizarFuncionalidadeActionForm) actionForm; Fachada fachada = Fachada.getInstancia(); String id = null; HttpSession sessao = httpServletRequest.getSession(false); if (httpServletRequest.getParameter("idFuncionalidade") != null && !httpServletRequest.getParameter("idFuncionalidade").equals( "")) { if (sessao.getAttribute("adicionar") != null) { sessao.removeAttribute("objetoFuncionalidade"); sessao.removeAttribute("adicionar"); }/* * else { sessao.removeAttribute("objetoFuncionalidade"); * sessao.removeAttribute("colecaoFuncionalidadeTela"); } */ } this.pesquisarCampoEnter(httpServletRequest, atualizarFuncionalidadeActionForm, fachada); // Verifica se veio do filtrar ou do manter if (httpServletRequest.getParameter("manter") != null) { sessao.setAttribute("manter", true); } else if (httpServletRequest.getParameter("filtrar") != null) { sessao.removeAttribute("manter"); } // Verifica se a funcionalidade j� est� na sess�o, em caso afirmativo // significa que o usu�rio j� entrou na tela e apenas selecionou algum // item que deu um reload na tela e em caso negativo significa que ele // est� entrando pela primeira vez if (sessao.getAttribute("colecaoFuncionalidadeTela") == null) { if (sessao.getAttribute("objetoFuncionalidade") != null) { Funcionalidade funcionalidade = (Funcionalidade) sessao .getAttribute("objetoFuncionalidade"); sessao.setAttribute("idFuncionalidade", funcionalidade.getId() .toString()); atualizarFuncionalidadeActionForm .setIdFuncionalidade(funcionalidade.getId().toString()); atualizarFuncionalidadeActionForm.setDescricao(funcionalidade .getDescricao()); atualizarFuncionalidadeActionForm .setDescricaoAbreviada(funcionalidade .getDescricaoAbreviada()); atualizarFuncionalidadeActionForm.setCaminhoMenu(funcionalidade .getCaminhoMenu()); atualizarFuncionalidadeActionForm.setCaminhoUrl(funcionalidade .getCaminhoUrl()); atualizarFuncionalidadeActionForm.setModulo(funcionalidade .getModulo().getId().toString()); atualizarFuncionalidadeActionForm.setIndicadorPontoEntrada("" + funcionalidade.getIndicadorPontoEntrada()); atualizarFuncionalidadeActionForm.setIndicadorNovaJanela("" + funcionalidade.getIndicadorNovaJanela()); atualizarFuncionalidadeActionForm.setIndicadorOlap("" + funcionalidade.getIndicadorOlap()); atualizarFuncionalidadeActionForm .setNumeroOrdemMenu(funcionalidade.getNumeroOrdemMenu() .toString()); if (funcionalidade.getFuncionalidadeCategoria() != null) { atualizarFuncionalidadeActionForm .setIdFuncionalidadeCategoria(funcionalidade .getFuncionalidadeCategoria().getId() .toString()); atualizarFuncionalidadeActionForm .setNomeFuncionalidadeCategoria(funcionalidade .getFuncionalidadeCategoria().getNome()); } if (funcionalidade.getIndicadorPontoEntrada().toString() .equalsIgnoreCase( ConstantesSistema.INDICADOR_USO_ATIVO .toString())) { httpServletRequest.setAttribute("funcionalidadeCategoria", "sim"); } else { httpServletRequest .removeAttribute("funcionalidadeCategoria"); atualizarFuncionalidadeActionForm .setIdFuncionalidadeCategoria(""); atualizarFuncionalidadeActionForm .setNomeFuncionalidadeCategoria(""); } id = funcionalidade.getId().toString(); // Parte do adicionar // recupera a cole��o de funcionalidade dependencia FiltroFuncionalidadeDependencia filtroFuncionalidadeDependencia = new FiltroFuncionalidadeDependencia(); filtroFuncionalidadeDependencia .adicionarParametro(new ParametroSimples( FiltroFuncionalidadeDependencia.FUNCIONALIDADE_ID, funcionalidade.getId())); filtroFuncionalidadeDependencia .adicionarCaminhoParaCarregamentoEntidade("funcionalidadeDependencia"); Collection colecaoFuncionalidadeTela = fachada.pesquisar( filtroFuncionalidadeDependencia, FuncionalidadeDependencia.class.getName()); if (colecaoFuncionalidadeTela != null && !colecaoFuncionalidadeTela.isEmpty()) { sessao.setAttribute("colecaoFuncionalidadeTela", colecaoFuncionalidadeTela); } sessao.setAttribute("funcionalidadeAtualizar", funcionalidade); sessao.removeAttribute("objetoFuncionalidade"); } else if (httpServletRequest.getAttribute("remover") == null && httpServletRequest.getAttribute("desfazer") == null && httpServletRequest.getParameter("enter") == null && httpServletRequest.getParameter("reload") == null) { String funcionalidadeID = null; if (httpServletRequest.getParameter("idFuncionalidade") != null && !httpServletRequest.getParameter("idFuncionalidade") .equals("")) { funcionalidadeID = (String) httpServletRequest .getParameter("idFuncionalidade"); httpServletRequest.setAttribute("idFuncionalidade", funcionalidadeID); id = funcionalidadeID; FiltroFuncionalidade filtroFuncionalidade = new FiltroFuncionalidade(); filtroFuncionalidade .adicionarCaminhoParaCarregamentoEntidade("modulo"); filtroFuncionalidade .adicionarCaminhoParaCarregamentoEntidade("funcionalidadeCategoria"); filtroFuncionalidade .adicionarParametro(new ParametroSimples( FiltroFuncionalidade.ID, funcionalidadeID)); Collection<Funcionalidade> colecaoFuncionalidade = fachada .pesquisar(filtroFuncionalidade, Funcionalidade.class.getName()); if (colecaoFuncionalidade == null || colecaoFuncionalidade.isEmpty()) { throw new ActionServletException( "atencao.atualizacao.timestamp"); } httpServletRequest.setAttribute("colecaoFuncionalidade", colecaoFuncionalidade); Funcionalidade funcionalidade = (Funcionalidade) colecaoFuncionalidade .iterator().next(); atualizarFuncionalidadeActionForm .setIdFuncionalidade(funcionalidade.getId() .toString()); atualizarFuncionalidadeActionForm .setDescricao(funcionalidade.getDescricao()); atualizarFuncionalidadeActionForm .setDescricaoAbreviada(funcionalidade .getDescricaoAbreviada()); atualizarFuncionalidadeActionForm .setCaminhoMenu(funcionalidade.getCaminhoMenu()); atualizarFuncionalidadeActionForm .setCaminhoUrl(funcionalidade.getCaminhoUrl()); atualizarFuncionalidadeActionForm.setModulo(funcionalidade .getModulo().getId().toString()); atualizarFuncionalidadeActionForm .setIndicadorPontoEntrada("" + funcionalidade.getIndicadorPontoEntrada()); atualizarFuncionalidadeActionForm.setNumeroOrdemMenu("" + funcionalidade.getNumeroOrdemMenu()); atualizarFuncionalidadeActionForm.setIndicadorNovaJanela("" + funcionalidade.getIndicadorNovaJanela()); atualizarFuncionalidadeActionForm.setIndicadorOlap("" + funcionalidade.getIndicadorOlap()); if (funcionalidade.getFuncionalidadeCategoria() != null) { atualizarFuncionalidadeActionForm .setIdFuncionalidadeCategoria(funcionalidade .getFuncionalidadeCategoria().getId() .toString()); atualizarFuncionalidadeActionForm .setNomeFuncionalidadeCategoria(funcionalidade .getFuncionalidadeCategoria().getNome()); } if (funcionalidade.getIndicadorPontoEntrada().toString() .equalsIgnoreCase( ConstantesSistema.INDICADOR_USO_ATIVO .toString())) { httpServletRequest.setAttribute( "funcionalidadeCategoria", "sim"); } else { httpServletRequest .removeAttribute("funcionalidadeCategoria"); atualizarFuncionalidadeActionForm .setIdFuncionalidadeCategoria(""); atualizarFuncionalidadeActionForm .setNomeFuncionalidadeCategoria(""); } // sessao.setAttribute("colecaoFuncionalidade", // colecaoFuncionalidade); // Parte do adicionar // recupera a cole��o de funcionalidade dependencia FiltroFuncionalidadeDependencia filtroFuncionalidadeDependencia = new FiltroFuncionalidadeDependencia(); filtroFuncionalidadeDependencia .adicionarParametro(new ParametroSimples( FiltroFuncionalidadeDependencia.FUNCIONALIDADE_ID, funcionalidade.getId())); filtroFuncionalidadeDependencia .adicionarCaminhoParaCarregamentoEntidade("funcionalidadeDependencia"); Collection colecaoFuncionalidadeTela = fachada.pesquisar( filtroFuncionalidadeDependencia, FuncionalidadeDependencia.class.getName()); if (colecaoFuncionalidadeTela != null && !colecaoFuncionalidadeTela.isEmpty()) { // httpServletRequest.setAttribute("colecaoFuncionalidadeTela",colecaoFuncionalidadeTela); sessao.setAttribute("colecaoFuncionalidadeTela", colecaoFuncionalidadeTela); } sessao.setAttribute("funcionalidadeAtualizar", funcionalidade); } // sessao.removeAttribute("colecaoFuncionalidadeTela"); } } // -------------- bt DESFAZER --------------- if (httpServletRequest.getParameter("desfazer") != null && httpServletRequest.getParameter("desfazer") .equalsIgnoreCase("S")) { sessao.removeAttribute("colecaoFuncionalidadeTela"); String funcionalidadeID = null; if (httpServletRequest.getParameter("idFuncionalidade") == null || httpServletRequest.getParameter("idFuncionalidade") .equals("")) { funcionalidadeID = (String) sessao .getAttribute("idFuncionalidade"); } else { funcionalidadeID = (String) httpServletRequest .getParameter("idFuncionalidade"); sessao.setAttribute("idFuncionalidade", funcionalidadeID); } if (funcionalidadeID.equalsIgnoreCase("")) { funcionalidadeID = null; } if ((funcionalidadeID == null) && (id == null)) { Funcionalidade funcionalidade = (Funcionalidade) sessao .getAttribute("objetoFuncionalidade"); atualizarFuncionalidadeActionForm .setIdFuncionalidade(funcionalidade.getId().toString()); atualizarFuncionalidadeActionForm.setDescricao(funcionalidade .getDescricao()); atualizarFuncionalidadeActionForm .setDescricaoAbreviada(funcionalidade .getDescricaoAbreviada()); atualizarFuncionalidadeActionForm.setCaminhoMenu(funcionalidade .getCaminhoMenu()); atualizarFuncionalidadeActionForm.setCaminhoUrl(funcionalidade .getCaminhoUrl()); atualizarFuncionalidadeActionForm.setModulo(funcionalidade .getModulo().getId().toString()); atualizarFuncionalidadeActionForm.setIndicadorPontoEntrada("" + funcionalidade.getIndicadorPontoEntrada()); atualizarFuncionalidadeActionForm.setNumeroOrdemMenu("" + funcionalidade.getNumeroOrdemMenu()); atualizarFuncionalidadeActionForm.setIndicadorNovaJanela("" + funcionalidade.getIndicadorNovaJanela()); atualizarFuncionalidadeActionForm.setIndicadorOlap("" + funcionalidade.getIndicadorOlap()); atualizarFuncionalidadeActionForm .setIdFuncionalidadeCategoria(funcionalidade .getFuncionalidadeCategoria().getId() .toString()); atualizarFuncionalidadeActionForm .setNomeFuncionalidadeCategoria(funcionalidade .getFuncionalidadeCategoria().getNome()); if (funcionalidade.getIndicadorPontoEntrada().toString() .equalsIgnoreCase( ConstantesSistema.INDICADOR_USO_ATIVO .toString())) { httpServletRequest.setAttribute("funcionalidadeCategoria", "sim"); } else { httpServletRequest .removeAttribute("funcionalidadeCategoria"); } // Parte do adicionar // recupera a cole��o de funcionalidade dependencia FiltroFuncionalidadeDependencia filtroFuncionalidadeDependencia = new FiltroFuncionalidadeDependencia(); filtroFuncionalidadeDependencia .adicionarParametro(new ParametroSimples( FiltroFuncionalidadeDependencia.FUNCIONALIDADE_ID, funcionalidade.getId())); filtroFuncionalidadeDependencia .adicionarCaminhoParaCarregamentoEntidade("funcionalidadeDependencia"); Collection colecaoFuncionalidadeTela = fachada.pesquisar( filtroFuncionalidadeDependencia, FuncionalidadeDependencia.class.getName()); if (colecaoFuncionalidadeTela != null && !colecaoFuncionalidadeTela.isEmpty()) { sessao.setAttribute("colecaoFuncionalidadeTela", colecaoFuncionalidadeTela); } sessao.setAttribute("funcionalidadeAtualizar", funcionalidade); sessao.removeAttribute("funcionalidade"); } if ((funcionalidadeID == null) && (id != null)) { funcionalidadeID = id; } if (funcionalidadeID != null) { FiltroFuncionalidade filtroFuncionalidade = new FiltroFuncionalidade(); filtroFuncionalidade .adicionarCaminhoParaCarregamentoEntidade("modulo"); filtroFuncionalidade .adicionarCaminhoParaCarregamentoEntidade("funcionalidadeCategoria"); filtroFuncionalidade.adicionarParametro(new ParametroSimples( FiltroFuncionalidade.ID, funcionalidadeID)); Collection<Funcionalidade> colecaoFuncionalidade = fachada .pesquisar(filtroFuncionalidade, Funcionalidade.class .getName()); if (colecaoFuncionalidade == null || colecaoFuncionalidade.isEmpty()) { throw new ActionServletException( "atencao.atualizacao.timestamp"); } httpServletRequest.setAttribute("colecaoFuncionalidade", colecaoFuncionalidade); Funcionalidade funcionalidade = (Funcionalidade) colecaoFuncionalidade .iterator().next(); atualizarFuncionalidadeActionForm .setIdFuncionalidade(funcionalidade.getId().toString()); atualizarFuncionalidadeActionForm.setDescricao(funcionalidade .getDescricao()); atualizarFuncionalidadeActionForm .setDescricaoAbreviada(funcionalidade .getDescricaoAbreviada()); atualizarFuncionalidadeActionForm.setCaminhoMenu(funcionalidade .getCaminhoMenu()); atualizarFuncionalidadeActionForm.setCaminhoUrl(funcionalidade .getCaminhoUrl()); atualizarFuncionalidadeActionForm.setModulo(funcionalidade .getModulo().getId().toString()); atualizarFuncionalidadeActionForm.setIndicadorPontoEntrada("" + funcionalidade.getIndicadorPontoEntrada()); atualizarFuncionalidadeActionForm.setIndicadorNovaJanela("" + funcionalidade.getIndicadorNovaJanela()); atualizarFuncionalidadeActionForm.setIndicadorOlap("" + funcionalidade.getIndicadorOlap()); atualizarFuncionalidadeActionForm.setNumeroOrdemMenu("" + funcionalidade.getNumeroOrdemMenu()); if (funcionalidade.getFuncionalidadeCategoria() != null) { atualizarFuncionalidadeActionForm .setIdFuncionalidadeCategoria(funcionalidade .getFuncionalidadeCategoria().getId() .toString()); atualizarFuncionalidadeActionForm .setNomeFuncionalidadeCategoria(funcionalidade .getFuncionalidadeCategoria().getNome()); } if (funcionalidade.getIndicadorPontoEntrada().toString() .equalsIgnoreCase( ConstantesSistema.INDICADOR_USO_ATIVO .toString())) { httpServletRequest.setAttribute("funcionalidadeCategoria", "sim"); } else { httpServletRequest .removeAttribute("funcionalidadeCategoria"); } // Parte do adicionar // recupera a cole��o de funcionalidade dependencia FiltroFuncionalidadeDependencia filtroFuncionalidadeDependencia = new FiltroFuncionalidadeDependencia(); filtroFuncionalidadeDependencia .adicionarParametro(new ParametroSimples( FiltroFuncionalidadeDependencia.FUNCIONALIDADE_ID, funcionalidade.getId())); filtroFuncionalidadeDependencia .adicionarCaminhoParaCarregamentoEntidade("funcionalidadeDependencia"); Collection colecaoFuncionalidadeTela = fachada.pesquisar( filtroFuncionalidadeDependencia, FuncionalidadeDependencia.class.getName()); if (colecaoFuncionalidadeTela != null && !colecaoFuncionalidadeTela.isEmpty()) { sessao.setAttribute("colecaoFuncionalidadeTela", colecaoFuncionalidadeTela); } httpServletRequest.setAttribute("funcionalidadeID", funcionalidadeID); sessao.setAttribute("funcionalidadeAtualizar", funcionalidade); } } // -------------- bt DESFAZER --------------- httpServletRequest.setAttribute("colecaoFuncionalidadeTela", sessao .getAttribute("colecaoFuncionalidadeTela")); return retorno; } private void pesquisarCampoEnter(HttpServletRequest httpServletRequest, AtualizarFuncionalidadeActionForm form, Fachada fachada) { String idFuncionalidadeCategoria = form.getIdFuncionalidadeCategoria(); // Pesquisa a empresa if (idFuncionalidadeCategoria != null && !idFuncionalidadeCategoria.trim().equals("")) { FiltroFuncionalidadeCategoria filtroFuncionalidadeCategoria = new FiltroFuncionalidadeCategoria(); filtroFuncionalidadeCategoria .adicionarParametro(new ParametroSimples( FiltroFuncionalidadeCategoria.ID, idFuncionalidadeCategoria)); Collection colecaoFuncionalidadeCategoria = fachada.pesquisar( filtroFuncionalidadeCategoria, FuncionalidadeCategoria.class.getName()); if (colecaoFuncionalidadeCategoria != null && !colecaoFuncionalidadeCategoria.isEmpty()) { FuncionalidadeCategoria funcionalidadeCategoria = (FuncionalidadeCategoria) Util .retonarObjetoDeColecao(colecaoFuncionalidadeCategoria); form.setIdFuncionalidadeCategoria(funcionalidadeCategoria .getId().toString()); form.setNomeFuncionalidadeCategoria(funcionalidadeCategoria .getNome()); httpServletRequest.setAttribute("nomeCampo", "idFuncionalidadeCategoria"); } else { form.setIdFuncionalidadeCategoria(""); form .setNomeFuncionalidadeCategoria("FUNCIONALIDADE CATEGORIA INEXISTENTE"); httpServletRequest.setAttribute( "funcionalidadeCategoriaInexistente", true); httpServletRequest.setAttribute("nomeCampo", "idEmpresa"); } } else { form.setNomeFuncionalidadeCategoria(""); } // Verifica se os dados foram informados da tabela existem e joga numa // colecao FiltroModulo filtroModulo = new FiltroModulo(); filtroModulo.setCampoOrderBy(FiltroModulo.DESCRICAO_MODULO); Collection<Modulo> colecaoModulo = fachada.pesquisar(filtroModulo, Modulo.class.getName()); if (colecaoModulo == null || colecaoModulo.isEmpty()) { throw new ActionServletException( "atencao.entidade_sem_dados_para_selecao", null, "Tabela Modulo"); } httpServletRequest.setAttribute("colecaoModulo", colecaoModulo); if (form.getIndicadorPontoEntrada() != null && form.getIndicadorPontoEntrada().toString().equalsIgnoreCase( ConstantesSistema.INDICADOR_USO_ATIVO.toString())) { httpServletRequest.setAttribute("funcionalidadeCategoria", "sim"); } else { httpServletRequest.removeAttribute("funcionalidadeCategoria"); } } }