package gcom.gui.cadastro.geografico;
import gcom.cadastro.geografico.Bairro;
import gcom.cadastro.geografico.BairroArea;
import gcom.cadastro.geografico.FiltroBairro;
import gcom.cadastro.geografico.FiltroMunicipio;
import gcom.cadastro.geografico.Municipio;
import gcom.fachada.Fachada;
import gcom.gui.GcomAction;
import gcom.util.ConstantesSistema;
import gcom.util.filtro.ParametroSimples;
import java.util.Collection;
import java.util.List;
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;
public class ExibirAtualizarBairroAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = null;
String redirecionarPagina = httpServletRequest.getParameter("redirecionarPagina");
String reloadPage = httpServletRequest.getParameter("reloadPage");
BairroActionForm bairroActionForm = (BairroActionForm) actionForm;
Fachada fachada = Fachada.getInstancia();
HttpSession sessao = httpServletRequest.getSession(false);
String codigoBairro = httpServletRequest.getParameter("idRegistroAtualizacao");
if(redirecionarPagina != null){
retorno = actionMapping.findForward(redirecionarPagina);
reloadPage = "ok";
}else{
retorno = actionMapping.findForward("atualizarBairro");
}
if (codigoBairro == null){
if (httpServletRequest.getAttribute("idRegistroAtualizacao") == null){
codigoBairro = (String) sessao.getAttribute("codigoBairro");
}else{
codigoBairro = (String) httpServletRequest.getAttribute("idRegistroAtualizacao").toString();
}
} else {
sessao.setAttribute("i", true);
}
sessao.setAttribute("codigoBairro", codigoBairro);
// -------Parte que trata do c�digo quando o usu�rio tecla enter
// caso seja o id do municipio
String idDigitadoEnterMunicipio = (String) bairroActionForm
.getIdMunicipio();
// Verifica se o c�digo foi digitado
if (idDigitadoEnterMunicipio != null
&& !idDigitadoEnterMunicipio.trim().equals("")
&& Integer.parseInt(idDigitadoEnterMunicipio) > 0) {
FiltroMunicipio filtroMunicipio = new FiltroMunicipio();
filtroMunicipio.adicionarParametro(new ParametroSimples(
FiltroMunicipio.ID, idDigitadoEnterMunicipio));
filtroMunicipio.adicionarParametro(new ParametroSimples(
FiltroMunicipio.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
Collection municipioEncontrado = fachada.pesquisar(filtroMunicipio,
Municipio.class.getName());
if (municipioEncontrado != null && !municipioEncontrado.isEmpty()) {
// O municipio foi encontrado
bairroActionForm
.setIdMunicipio(((Municipio) ((List) municipioEncontrado)
.get(0)).getId().toString());
bairroActionForm
.setNomeMunicipio(((Municipio) ((List) municipioEncontrado)
.get(0)).getNome());
httpServletRequest.setAttribute("nomeCampo", "codigoBairro");
} else {
bairroActionForm.setIdMunicipio("");
httpServletRequest.setAttribute("idMunicipioNaoEncontrado",
"true");
bairroActionForm.setNomeMunicipio("C�digo inexistente");
httpServletRequest.setAttribute("nomeCampo", "idMunicipio");
}
}
// -------Fim da Parte que trata do c�digo quando o usu�rio tecla enter
// ------Inicio da parte que verifica se vem da p�gina de
// manter_bairro.jsp
if (codigoBairro != null && !codigoBairro.equals("")
&& reloadPage == null) {
FiltroBairro filtroBairro = new FiltroBairro();
filtroBairro.adicionarParametro(new ParametroSimples(
FiltroBairro.ID, codigoBairro));
// Informa ao filtro para ele buscar objetos associados ao Bairro
filtroBairro
.adicionarCaminhoParaCarregamentoEntidade("municipio");
Collection bairros = fachada.pesquisar(filtroBairro, Bairro.class
.getName());
if (bairros != null && !bairros.isEmpty()) {
// O bairro foi encontrado
bairroActionForm
.setIdMunicipio(formatarResultado(((Bairro) ((List) bairros)
.get(0)).getMunicipio().getId().toString()));
bairroActionForm
.setNomeMunicipio(formatarResultado(((Bairro) ((List) bairros)
.get(0)).getMunicipio().getNome()));
bairroActionForm.setCodigoBairro(formatarResultado(""
+ ((Bairro) ((List) bairros).get(0)).getCodigo()));
bairroActionForm
.setNomeBairro(formatarResultado(((Bairro) ((List) bairros)
.get(0)).getNome()));
bairroActionForm.setCodigoBairroPrefeitura(formatarResultado(""
+ ((Bairro) ((List) bairros).get(0))
.getCodigoBairroPrefeitura()));
bairroActionForm
.setIndicadorUso(formatarResultado(""
+ ((Bairro) ((List) bairros).get(0))
.getIndicadorUso()));
Bairro bairro = ((Bairro) ((List) bairros).get(0));
sessao.setAttribute("bairro", bairro);
Collection<BairroArea> colecaoBairroArea =
(Collection<BairroArea>) fachada.pesquisarBairroArea(bairro.getId());
sessao.setAttribute("colecaoBairroArea",colecaoBairroArea);
}
}
// ------Fim da parte que verifica se vem da p�gina de manter_bairro.jsp
// caso ainda n�o tenha sido setado o nome campo(na primeira vez)
if (httpServletRequest.getAttribute("nomeCampo") == null) {
httpServletRequest.setAttribute("nomeCampo", "nomeBairro");
}
if (httpServletRequest.getParameter("manter") != null){
sessao.setAttribute("manter", "manter");
}
sessao.setAttribute("reloadPage","ATUALIZARBAIRRO");
return retorno;
}
/**
* < <Descri��o do m�todo>>
*
* @param parametro
* Descri��o do par�metro
* @return Descri��o do retorno
*/
private String formatarResultado(String parametro) {
if (parametro != null && !parametro.trim().equals("")) {
if (parametro.equals("null")) {
return "";
} else {
return parametro.trim();
}
} else {
return "";
}
}
}