package gcom.gui.seguranca.acesso; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.seguranca.acesso.FiltroFuncionalidadeCategoria; import gcom.seguranca.acesso.FiltroModulo; import gcom.seguranca.acesso.Funcionalidade; import gcom.seguranca.acesso.FuncionalidadeCategoria; import gcom.seguranca.acesso.Modulo; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.util.ArrayList; 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 25/04/2006 */ public class ExibirInserirFuncionalidadeAction extends GcomAction { /** * Este caso de uso permite a inclus�o de uma nova Funcionalidade * * [UC0280] Inserir Funcionalidade * * * @author R�mulo Aur�lio * @date 25/04/2006 * * @param actionMapping * @param actionForm * @param httpServletRequest * @param httpServletResponse * @return */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping .findForward("funcionalidadeInserir"); Fachada fachada = Fachada.getInstancia(); HttpSession sessao = httpServletRequest.getSession(false); InserirFuncionalidadeActionForm inserirFuncionalidadeActionForm = (InserirFuncionalidadeActionForm) actionForm; this.pesquisarCampoEnter(httpServletRequest, inserirFuncionalidadeActionForm, fachada); if (inserirFuncionalidadeActionForm.getIndicadorPontoEntrada() == null || inserirFuncionalidadeActionForm.equals("")) { inserirFuncionalidadeActionForm .setIndicadorPontoEntrada(ConstantesSistema.INDICADOR_USO_ATIVO .toString()); } if (inserirFuncionalidadeActionForm.getIndicadorOlap() == null || !inserirFuncionalidadeActionForm.equals("")) { inserirFuncionalidadeActionForm .setIndicadorOlap(ConstantesSistema.INDICADOR_USO_DESATIVO .toString()); } if (inserirFuncionalidadeActionForm.getIndicadorNovaJanela() == null || !inserirFuncionalidadeActionForm.equals("")) { inserirFuncionalidadeActionForm .setIndicadorNovaJanela(ConstantesSistema.INDICADOR_USO_DESATIVO .toString()); } // Parte do adicionar Collection<Funcionalidade> colecaoFuncionalidade = null; if (sessao.getAttribute("colecaoFuncionalidadeTela") != null) { colecaoFuncionalidade = (Collection) sessao .getAttribute("colecaoFuncionalidadeTela"); } else { colecaoFuncionalidade = new ArrayList(); } if (sessao.getAttribute("colecaoFuncionalidade") != null) { Collection colecaoPopUp = (Collection) sessao .getAttribute("colecaoFuncionalidade"); colecaoFuncionalidade.addAll(colecaoPopUp); sessao.removeAttribute("colecaoFuncionalidade"); sessao.setAttribute("colecaoFuncionalidadeTela", colecaoFuncionalidade); } if (inserirFuncionalidadeActionForm.getIndicadorPontoEntrada() != null && inserirFuncionalidadeActionForm.getIndicadorPontoEntrada() .equalsIgnoreCase( ConstantesSistema.INDICADOR_USO_ATIVO .toString())) { httpServletRequest.setAttribute("funcionalidadeCategoria", "sim"); } else { httpServletRequest.removeAttribute("funcionalidadeCategoria"); } if (httpServletRequest.getParameter("desfazer") != null && httpServletRequest.getParameter("desfazer") .equalsIgnoreCase("S")) { // -------------- bt DESFAZER --------------- inserirFuncionalidadeActionForm.setDescricao(""); inserirFuncionalidadeActionForm.setDescricaoAbreviada(""); inserirFuncionalidadeActionForm.setCaminhoMenu(""); inserirFuncionalidadeActionForm.setCaminhoUrl(""); inserirFuncionalidadeActionForm .setIndicadorPontoEntrada(ConstantesSistema.INDICADOR_USO_ATIVO .toString()); inserirFuncionalidadeActionForm.setModulo("-1"); inserirFuncionalidadeActionForm .setIndicadorNovaJanela(ConstantesSistema.INDICADOR_USO_DESATIVO .toString()); inserirFuncionalidadeActionForm .setIndicadorOlap(ConstantesSistema.INDICADOR_USO_DESATIVO .toString()); inserirFuncionalidadeActionForm.setNumeroOrdemMenu(""); if (inserirFuncionalidadeActionForm.getIndicadorPontoEntrada() .equals(ConstantesSistema.INDICADOR_USO_ATIVO.toString())) { inserirFuncionalidadeActionForm .setIdFuncionalidadeCategoria(""); inserirFuncionalidadeActionForm .setNomeFuncionalidadeCategoria(""); httpServletRequest.setAttribute("funcionalidadeCategoria", "sim"); } else { httpServletRequest.removeAttribute("funcionalidadeCategoria"); } sessao.removeAttribute("colecaoFuncionalidadeTela"); } return retorno; } private void pesquisarCampoEnter(HttpServletRequest httpServletRequest, InserirFuncionalidadeActionForm 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); httpServletRequest.setAttribute("idFuncionalidadeCategoria", "true"); form.setIdFuncionalidadeCategoria(funcionalidadeCategoria .getId().toString()); form.setNomeFuncionalidadeCategoria(funcionalidadeCategoria .getNome()); } else { form.setIdFuncionalidadeCategoria(""); form .setNomeFuncionalidadeCategoria("FUNCIONALIDADE CATEGORIA INEXISTENTE"); //httpServletRequest.setAttribute( // "funcionalidadeCategoriaInexistente", true); //httpServletRequest.setAttribute("nomeCampo", "idFuncionalidadeCategoria"); } } 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); } }