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.FuncionalidadeCategoria;
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;
/**
* Action que define o pr�-processamento da p�gina de pesquisa Categoria da Funcionalidade
*
* @author Fernando Fontelles
* @created 21/08/2009
*/
public class ExibirPesquisarCategoriaFuncionalidadeAction extends GcomAction {
/**
* Description of the Method
*
* @param actionMapping
* Description of the Parameter
* @param actionForm
* Description of the Parameter
* @param httpServletRequest
* Description of the Parameter
* @param httpServletResponse
* Description of the Parameter
* @return Description of the Return Value
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
Fachada fachada = Fachada.getInstancia();
// Seta o mapeamento de retorno
ActionForward retorno = actionMapping.findForward("exibirPesquisarCategoriaFuncionalidade");
// Mudar isso quando tiver esquema de seguran�a
HttpSession sessao = httpServletRequest.getSession(false);
PesquisarCategoriaFuncionalidadeActionForm pesquisarCategoriaFuncionalidadeActionForm =
(PesquisarCategoriaFuncionalidadeActionForm) actionForm;
// Flag indicando que o usu�rio fez uma consulta a partir da tecla Enter
String objetoConsulta = httpServletRequest.getParameter("objetoConsulta");
if (objetoConsulta != null && !objetoConsulta.trim().equals("") &&
objetoConsulta.trim().equals("2")) {
// Faz a consulta de Categoria
pesquisarCategoriaFuncionalidade(httpServletRequest, retorno,pesquisarCategoriaFuncionalidadeActionForm);
}
FiltroModulo filtroModulo = new FiltroModulo();
// Verifica se os dados foram informados da tabela existem e joga numa
// colecao
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");
}
if (httpServletRequest.getParameter("caminhoRetornoTelaPesquisaCategoriaFuncionalidade") != null) {
sessao.setAttribute("caminhoRetornoTelaPesquisaCategoriaFuncionalidade",
httpServletRequest.getParameter("caminhoRetornoTelaPesquisaCategoriaFuncionalidade"));
}
if (httpServletRequest.getParameter("idCampoEnviarDados") != null &&
!httpServletRequest.getParameter("idCampoEnviarDados").equals("")) {
pesquisarCategoriaFuncionalidadeActionForm.setIdCategoriaSuperior(httpServletRequest.getParameter("idCampoEnviarDados"));
pesquisarCategoriaFuncionalidadeActionForm.setDescricaoCategoriaSuperior(httpServletRequest.getParameter("descricaoCampoEnviarDados"));
}
if(httpServletRequest.getParameter("limparForm") != null){
pesquisarCategoriaFuncionalidadeActionForm.setDescricao("");
pesquisarCategoriaFuncionalidadeActionForm.setIdCategoriaSuperior("");
pesquisarCategoriaFuncionalidadeActionForm.setDescricaoCategoriaSuperior("");
pesquisarCategoriaFuncionalidadeActionForm.setIdModulo("");
pesquisarCategoriaFuncionalidadeActionForm.setIndicadorUso("");
}
this.setaRequest(httpServletRequest,pesquisarCategoriaFuncionalidadeActionForm);
if(pesquisarCategoriaFuncionalidadeActionForm.getTipoPesquisa() == null){
pesquisarCategoriaFuncionalidadeActionForm.setTipoPesquisa(ConstantesSistema.TIPO_PESQUISA_INICIAL.toString());
}
httpServletRequest.setAttribute("colecaoModulo", colecaoModulo);
return retorno;
}
private void pesquisarCategoriaFuncionalidade(
HttpServletRequest httpServletRequest, ActionForward retorno,
PesquisarCategoriaFuncionalidadeActionForm pesquisarCategoriaFuncionalidadeActionForm) {
//Obt�m a inst�ncia da Fachada
Fachada fachada = Fachada.getInstancia();
// Filtro para obter Categorida da Funcionalidade ativo de id informado
FiltroFuncionalidadeCategoria filtroCategoriaFuncionalidade = new FiltroFuncionalidadeCategoria();
String idCategoria = pesquisarCategoriaFuncionalidadeActionForm.getIdCategoriaSuperior();
filtroCategoriaFuncionalidade.adicionarParametro(
new ParametroSimples(FiltroFuncionalidadeCategoria.ID , idCategoria));
// Pesquisa de acordo com os par�metros informados no filtro
Collection colecaoCategoria = fachada.pesquisar(filtroCategoriaFuncionalidade,FuncionalidadeCategoria.class.getName());
// Verifica se a pesquisa retornou algum objeto para a cole��o
if (colecaoCategoria != null && !colecaoCategoria.isEmpty()) {
// Obt�m o objeto da cole��o pesquisada
FuncionalidadeCategoria categoriaFuncionalidade =
(FuncionalidadeCategoria) Util.retonarObjetoDeColecao(colecaoCategoria);
// Exibe o c�digo e a descri��o pesquisa na p�gina
httpServletRequest.setAttribute("idCategoriaEncontrada","true");
pesquisarCategoriaFuncionalidadeActionForm.setIdCategoriaSuperior(categoriaFuncionalidade.getId().toString());
pesquisarCategoriaFuncionalidadeActionForm.setDescricaoCategoriaSuperior(categoriaFuncionalidade.getNome());
} else {
pesquisarCategoriaFuncionalidadeActionForm.setDescricaoCategoriaSuperior("FUNCIONALIDADE CATEGORIA INEXISTENTE");
pesquisarCategoriaFuncionalidadeActionForm.setIdCategoriaSuperior("");
}
}
private void setaRequest(HttpServletRequest httpServletRequest,
PesquisarCategoriaFuncionalidadeActionForm pesquisarCategoriaFuncionalidadeActionForm){
// Categoria Superior
if(pesquisarCategoriaFuncionalidadeActionForm.getIdCategoriaSuperior() != null &&
!pesquisarCategoriaFuncionalidadeActionForm.getIdCategoriaSuperior().equals("") &&
pesquisarCategoriaFuncionalidadeActionForm.getDescricaoCategoriaSuperior() != null &&
!pesquisarCategoriaFuncionalidadeActionForm.getDescricaoCategoriaSuperior().equals("")){
httpServletRequest.setAttribute("idCategoriaEncontrada","true");
}
}
}