package gcom.gui.seguranca.acesso;
import gcom.gui.GcomAction;
import gcom.seguranca.acesso.FiltroFuncionalidade;
import gcom.seguranca.acesso.FiltroFuncionalidadeCategoria;
import gcom.seguranca.acesso.Funcionalidade;
import gcom.seguranca.acesso.FuncionalidadeCategoria;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import java.util.Collection;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public class ExibirOrganizarMenuArvoreAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
// Seta o mapeamento de retorno
ActionForward retorno = actionMapping.findForward("exibirOrganizarMenuArvore");
OrganizarMenuActionForm form =
(OrganizarMenuActionForm) actionForm;
String ehParaSalvar = httpServletRequest.getParameter("ehParaSalvar");
if(ehParaSalvar != null && !ehParaSalvar.equals("")){
if(httpServletRequest.getParameter("idFuncionalidade") != null &&
!httpServletRequest.getParameter("idFuncionalidade").equals("")){
String idFuncionalidade =
httpServletRequest.getParameter("idFuncionalidade");
Funcionalidade funcionalidade =
this.pesquisarFuncionalidade(idFuncionalidade);
funcionalidade.setNumeroOrdemMenu(new Long(form.getNumeroOrdemFuncionalidade()));
this.getFachada().atualizar(funcionalidade);
}else{
String idFuncionalidade =
httpServletRequest.getParameter("idFuncionalidadeCategoria");
FuncionalidadeCategoria funcionalidadeCategoria =
this.pesquisarFuncionalidadeCategoria(idFuncionalidade);
funcionalidadeCategoria.setNumeroOrdemMenu(new Long(form.getNumeroOrdemPasta()));
this.getFachada().atualizar(funcionalidadeCategoria);
}
} else {
String idFuncionalidade = null;
String descricao = null;
boolean ordemFuncionalidade = false;
if(httpServletRequest.getParameter("idFuncionalidade") != null &&
!httpServletRequest.getParameter("idFuncionalidade").equals("")){
idFuncionalidade =
httpServletRequest.getParameter("idFuncionalidade");
Funcionalidade funcionalidade =
this.pesquisarFuncionalidade(idFuncionalidade);
if(funcionalidade.getNumeroOrdemMenu() != null){
form.setNumeroOrdemFuncionalidade(funcionalidade.getNumeroOrdemMenu().toString());
}
descricao = funcionalidade.getDescricao();
ordemFuncionalidade = true;
form.setTipoOrdem("F");
httpServletRequest.setAttribute("ordemFuncionalidade",ordemFuncionalidade);
} else if(httpServletRequest.getParameter("idFuncionalidadeCategoria") != null &&
!httpServletRequest.getParameter("idFuncionalidadeCategoria").equals("")){
idFuncionalidade =
httpServletRequest.getParameter("idFuncionalidadeCategoria");
FuncionalidadeCategoria funcionalidade =
this.pesquisarFuncionalidadeCategoria(idFuncionalidade);
if(funcionalidade.getNumeroOrdemMenu() != null){
form.setNumeroOrdemPasta(funcionalidade.getNumeroOrdemMenu().toString());
}
descricao = funcionalidade.getNome();
form.setTipoOrdem("P");
httpServletRequest.setAttribute("ordemFuncionalidade",ordemFuncionalidade);
}
httpServletRequest.setAttribute("descricaoFuncionalidade",descricao);
httpServletRequest.setAttribute("idFuncionalidade",idFuncionalidade);
}
FuncionalidadeCategoria arvoreFuncionalidades =
this.getFachada().pesquisarArvoreFuncionalidades(new Integer(form.getModulo()));
MenuGCOM menu = new MenuGCOM();
String menuGerado = menu.gerarMenuOrganizarMenu(arvoreFuncionalidades);
httpServletRequest.setAttribute("arvoreFuncionalidades",menuGerado);
return retorno;
}
private Funcionalidade pesquisarFuncionalidade(String idFuncionalidade){
Funcionalidade funcionalidade = null;
FiltroFuncionalidade filtro = new FiltroFuncionalidade();
filtro.adicionarParametro(
new ParametroSimples(
FiltroFuncionalidade.ID,idFuncionalidade));
Collection colecaoFuncionalidade =
this.getFachada().pesquisar(filtro,Funcionalidade.class.getName());
funcionalidade = (Funcionalidade) Util.retonarObjetoDeColecao(colecaoFuncionalidade);
return funcionalidade;
}
private FuncionalidadeCategoria pesquisarFuncionalidadeCategoria(String idFuncionalidade){
FuncionalidadeCategoria funcionalidade = null;
FiltroFuncionalidadeCategoria filtro = new FiltroFuncionalidadeCategoria();
filtro.adicionarParametro(
new ParametroSimples(
FiltroFuncionalidadeCategoria.ID,idFuncionalidade));
Collection colecaoFuncionalidade =
this.getFachada().pesquisar(filtro,FuncionalidadeCategoria.class.getName());
funcionalidade = (FuncionalidadeCategoria) Util.retonarObjetoDeColecao(colecaoFuncionalidade);
return funcionalidade;
}
}