package gcom.gui.cadastro.geografico; import gcom.cadastro.geografico.FiltroMicrorregiao; import gcom.cadastro.geografico.FiltroMunicipio; import gcom.cadastro.geografico.FiltroRegiao; import gcom.cadastro.geografico.FiltroRegiaoDesenvolvimento; import gcom.cadastro.geografico.FiltroUnidadeFederacao; import gcom.cadastro.geografico.Microrregiao; import gcom.cadastro.geografico.Municipio; import gcom.cadastro.geografico.Regiao; import gcom.cadastro.geografico.RegiaoDesenvolvimento; import gcom.cadastro.geografico.UnidadeFederacao; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.ConstantesSistema; import gcom.util.filtro.ParametroSimples; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; 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; /** * [UC0006] FILTRAR MUNICIPIO * * @author K�ssia Albuquerque * @date 03/01/2007 */ public class ExibirFiltrarMunicipioAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping.findForward("filtrarMunicipio"); Fachada fachada = Fachada.getInstancia(); HttpSession sessao = httpServletRequest.getSession(false); if (sessao.getAttribute("consulta") != null) { sessao.removeAttribute("consulta"); } FiltrarMunicipioActionForm form = (FiltrarMunicipioActionForm) actionForm; // C�digo para checar ou n�o o ATUALIZAR String primeiraVez = httpServletRequest.getParameter("menu"); if (primeiraVez != null && !primeiraVez.equals("")) { sessao.setAttribute("indicadorAtualizar", "1"); form.setIndicadorUso("3"); form.setOrdernarPor("1"); form.setTipoPesquisa(ConstantesSistema.TIPO_PESQUISA_INICIAL .toString()); } // Verificar a existencia de dados // REGIAO DESENVOLVIMENTO FiltroRegiaoDesenvolvimento filtroRegiaoDesenv = new FiltroRegiaoDesenvolvimento(); filtroRegiaoDesenv .setCampoOrderBy(FiltroRegiaoDesenvolvimento.DESCRICAO); Collection<RegiaoDesenvolvimento> colecaoRegiaoDesenv = fachada .pesquisar(filtroRegiaoDesenv, RegiaoDesenvolvimento.class .getName()); if (colecaoRegiaoDesenv == null || colecaoRegiaoDesenv.isEmpty()) { throw new ActionServletException( "atencao.entidade_sem_dados_para_selecao", null, "Regi�o Desenvolvimento"); } httpServletRequest.setAttribute("colecaoRegiaoDesenv", colecaoRegiaoDesenv); // REGIAO if (httpServletRequest.getParameter("carregarRegioes") != null) { Collection<Regiao> regioes = new ArrayList(); FiltroMunicipio filtroMunicipio = new FiltroMunicipio(); filtroMunicipio.adicionarParametro(new ParametroSimples( FiltroMunicipio.UNIDADE_FEDERACAO_ID, form.getUnidadeFederacao())); filtroMunicipio .adicionarCaminhoParaCarregamentoEntidade(FiltroMunicipio.MICRORREGICAO); filtroMunicipio .adicionarCaminhoParaCarregamentoEntidade(FiltroMunicipio.REGIAO); Collection colecaoMunicipios = fachada.pesquisar(filtroMunicipio, Municipio.class.getName()); if (colecaoMunicipios != null && !colecaoMunicipios.isEmpty()) { for (Iterator iter = colecaoMunicipios.iterator(); iter .hasNext();) { Municipio element = (Municipio) iter.next(); if (!regioes.contains(element .getMicrorregiao().getRegiao())) { regioes.add(element.getMicrorregiao().getRegiao()); } } } httpServletRequest.setAttribute("colecaoRegiao", regioes); } else { FiltroRegiao filtroRegiao = new FiltroRegiao(); filtroRegiao.setCampoOrderBy(FiltroRegiao.DESCRICAO); Collection<Regiao> colecaoRegiao = fachada.pesquisar(filtroRegiao, Regiao.class.getName()); if (colecaoRegiao == null || colecaoRegiao.isEmpty()) { throw new ActionServletException( "atencao.entidade_sem_dados_para_selecao", null, "Regi�o"); } httpServletRequest.setAttribute("colecaoRegiao", colecaoRegiao); } // MICRORREGIAO Collection<Microrregiao> colecaoMicrorregiao = new ArrayList(); FiltroMicrorregiao filtroMicrorregiao = new FiltroMicrorregiao(); if (httpServletRequest.getParameter("combo") != null && !form.getRegiao().equals( "" + ConstantesSistema.NUMERO_NAO_INFORMADO)) { filtroMicrorregiao.adicionarParametro(new ParametroSimples( FiltroMicrorregiao.REGIAO_ID, form.getRegiao())); filtroMicrorregiao.setCampoOrderBy(FiltroMicrorregiao.DESCRICAO); colecaoMicrorregiao = fachada.pesquisar(filtroMicrorregiao, Microrregiao.class.getName()); if (colecaoMicrorregiao == null || colecaoMicrorregiao.isEmpty()) { throw new ActionServletException( "atencao.entidade_sem_dados_para_selecao", null, "Microrregi�o"); } httpServletRequest.setAttribute("colecaoMicrorregiao", colecaoMicrorregiao); } // UNIDADE FEDERA��O if (httpServletRequest.getParameter("combo") != null && !form.getRegiao().equals( "" + ConstantesSistema.NUMERO_NAO_INFORMADO)) { Collection<UnidadeFederacao> unidadesFederacao = new ArrayList(); FiltroMunicipio filtroMunicipio = new FiltroMunicipio(); filtroMunicipio.adicionarParametro(new ParametroSimples( FiltroMunicipio.REGIAO_ID, form.getRegiao())); filtroMunicipio .adicionarCaminhoParaCarregamentoEntidade(FiltroMunicipio.UNIDADE_FEDERACAO); Collection colecaoMunicipios = fachada.pesquisar(filtroMunicipio, Municipio.class.getName()); if (colecaoMunicipios != null && !colecaoMunicipios.isEmpty()) { for (Iterator iter = colecaoMunicipios.iterator(); iter .hasNext();) { Municipio element = (Municipio) iter.next(); if (!unidadesFederacao.contains(element .getUnidadeFederacao())) { unidadesFederacao.add(element.getUnidadeFederacao()); } } } httpServletRequest.setAttribute("colecaoUnidadeFederacao", unidadesFederacao); } else { FiltroUnidadeFederacao filtroUnidadeFederacao = new FiltroUnidadeFederacao(); filtroUnidadeFederacao .setCampoOrderBy(FiltroUnidadeFederacao.DESCRICAO); Collection<UnidadeFederacao> colecaoUnidadeFederacao = fachada .pesquisar(filtroUnidadeFederacao, UnidadeFederacao.class .getName()); if (colecaoUnidadeFederacao == null || colecaoUnidadeFederacao.isEmpty()) { throw new ActionServletException( "atencao.entidade_sem_dados_para_selecao", null, "Unidade Federa��o"); } httpServletRequest.setAttribute("colecaoUnidadeFederacao", colecaoUnidadeFederacao); } // Se voltou da tela de Atualizar Localidade if (sessao.getAttribute("voltar") != null && sessao.getAttribute("voltar").equals("filtrar")) { sessao.setAttribute("indicadorAtualizar", "1"); if (sessao.getAttribute("tipoPesquisa") != null) { form.setTipoPesquisa(sessao.getAttribute("tipoPesquisa") .toString()); } } sessao.removeAttribute("voltar"); sessao.removeAttribute("tipoPesquisa"); return retorno; } }