package gcom.gui.cadastro.imovel; import gcom.cadastro.imovel.FiltroSubCategoria; import gcom.cadastro.imovel.Subcategoria; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import java.util.Collection; import java.util.Map; 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; /** * Description of the Class * * @author Fernanda Karla * @created 30 de Dezembro de 2005 */ public class ExibirManterSubcategoriaAction 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) { ActionForward retorno = actionMapping.findForward("manterSubcategoria"); //Fachada fachada = Fachada.getInstancia(); //FiltrarSubcategoriaActionForm filtrarSubcategoriaActionForm = (FiltrarSubcategoriaActionForm) actionForm; Collection subcategorias = null; //Mudar isso quando implementar a parte de seguran�a HttpSession sessao = httpServletRequest.getSession(false); //Parte da verifica��o do filtro FiltroSubCategoria filtroSubcategoria = new FiltroSubCategoria(); if (sessao.getAttribute("i") != null){ sessao.removeAttribute("i"); } //Verifica se o filtro foi informado pela p�gina de filtragem de categoria if(httpServletRequest.getAttribute("filtroSubcategoria") != null){ filtroSubcategoria = (FiltroSubCategoria) httpServletRequest .getAttribute("filtroSubcategoria"); }else{ //Se o limite de registros foi atingido, a p�gina de filtragem � chamada retorno = actionMapping.findForward("filtrarSubcategoria"); } //A pesquisa de subcategorias s� ser� feita se o forward estiver direcionado para a p�gina de manterSubCategoria if(retorno.getName().equalsIgnoreCase("manterSubcategoria")){ //Seta a ordena��o desejada do filtro filtroSubcategoria.setCampoOrderBy(FiltroSubCategoria.DESCRICAO); //Informa ao filtro para ele buscar objetos associados a SubCategoria filtroSubcategoria.adicionarCaminhoParaCarregamentoEntidade("categoria"); // Aciona o controle de pagina��o para que sejam pesquisados apenas // os registros que aparecem na p�gina Map resultado = controlarPaginacao(httpServletRequest, retorno, filtroSubcategoria, Subcategoria.class.getName()); subcategorias = (Collection) resultado.get("colecaoRetorno"); retorno = (ActionForward) resultado.get("destinoActionForward"); if (subcategorias == null || subcategorias.isEmpty()) { //Nenhuma SubCategoria cadastrada throw new ActionServletException("atencao.subcategoria_inexistente"); } sessao.setAttribute("subcategorias", subcategorias); sessao.setAttribute("filtroSubcategoria", filtroSubcategoria); } return retorno; } }