package gcom.gui.cadastro.geografico; import gcom.cadastro.geografico.Bairro; import gcom.cadastro.geografico.FiltroBairro; import gcom.cadastro.geografico.FiltroMunicipio; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.filtro.ComparacaoTexto; import gcom.util.filtro.ParametroSimples; import gcom.cadastro.geografico.Municipio; 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; /** * Esta classe tem por finalidade exibir para o usu�rio os bairros que ser�o retornados * a partir dos par�metros que foram passados pelo filtro * * @author Raphael Rossiter * @date 02/05/2006 */ public class PesquisarSelecionarBairroAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping.findForward("exibirSelecionarBairro"); Fachada fachada = Fachada.getInstancia(); HttpSession sessao = httpServletRequest.getSession(false); SelecionarBairroActionForm selecionarBairroActionForm = (SelecionarBairroActionForm) actionForm; FiltroBairro filtroBairro = new FiltroBairro(); filtroBairro.setConsultaSemLimites(true); //Objetos que ser�o retornados pelo hibernate. filtroBairro.adicionarCaminhoParaCarregamentoEntidade("municipio"); filtroBairro.setCampoOrderBy(FiltroBairro.NOME); Collection colecaoBairro = null; //Validando os campos do formulario boolean peloMenosUmParametroInformado = false; //Munic�pio if (selecionarBairroActionForm.getIdMunicipio() != null && !selecionarBairroActionForm.getIdMunicipio().equals("")) { String municipioJSP = selecionarBairroActionForm.getIdMunicipio(); peloMenosUmParametroInformado = true; FiltroMunicipio filtroMunicipio = new FiltroMunicipio(); filtroMunicipio.adicionarParametro(new ParametroSimples( FiltroMunicipio.ID, municipioJSP)); Collection colecaoMunicipio = fachada.pesquisar(filtroMunicipio, Municipio.class.getName()); if (colecaoMunicipio == null || colecaoMunicipio.isEmpty()){ throw new ActionServletException("atencao.municipio.inexistente"); } filtroBairro.adicionarParametro(new ParametroSimples( FiltroBairro.MUNICIPIO_ID, municipioJSP)); } //Bairro if (selecionarBairroActionForm.getNomeBairro() != null && !selecionarBairroActionForm.getNomeBairro().equals("")) { String nomeBairroJSP = selecionarBairroActionForm.getNomeBairro(); peloMenosUmParametroInformado = true; filtroBairro.adicionarParametro(new ComparacaoTexto( FiltroBairro.NOME, nomeBairroJSP)); filtroBairro.setCampoOrderBy(FiltroBairro.NOME); } //Erro caso o usu�rio mandou filtrar sem nenhum par�metro if (!peloMenosUmParametroInformado) { throw new ActionServletException( "atencao.filtro.nenhum_parametro_informado"); } //Retorna o(s) bairro(s) colecaoBairro = fachada.pesquisar(filtroBairro, Bairro.class.getName()); if (colecaoBairro == null || colecaoBairro.isEmpty()) { //Nenhum bairro cadastrado de acordo com os par�metros passados throw new ActionServletException( "atencao.pesquisa.nenhumresultado", null, "bairro"); } else { sessao.setAttribute("colecaoBairrosSelecionados", colecaoBairro); } httpServletRequest.setAttribute("nomeCampo", "botaoSelecionar"); return retorno; } }