package gcom.gui.cadastro.geografico;
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;
/**
* Action respons�vel pela pre-exibi��o da pagina de inserir bairro
*
* @author S�vio Luiz
* @created 28 de Junho de 2004
*/
public class ExibirInserirBairroAction 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) {
// Seta o mapeamento de retorno
ActionForward retorno = null;
BairroActionForm bairroActionForm = (BairroActionForm) actionForm;
Fachada fachada = Fachada.getInstancia();
HttpSession sessao = httpServletRequest.getSession(false);
String redirecionarPagina = httpServletRequest.getParameter("redirecionarPagina");
if(redirecionarPagina != null){
retorno = actionMapping.findForward(redirecionarPagina);
}else{
retorno = actionMapping.findForward("inserirBairro");
}
// Mudar isso quando tiver esquema de seguran�a
//HttpSession sessao = httpServletRequest.getSession(false);
// -------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());
// Retorna o maior c�digo existente para o mun�cipio pesquisado
int codigo = fachada.pesquisarMaximoCodigoBairro(new Integer(idDigitadoEnterMunicipio));
// Acrescenta 1 no valor do c�digo para setar o primeiro c�digo vazio para o usu�rio
codigo = codigo + 1;
bairroActionForm.setCodigoBairro("" + codigo);
httpServletRequest.setAttribute("nomeCampo", "codigoBairro");
} else {
bairroActionForm.setIdMunicipio("");
httpServletRequest.setAttribute("idMunicipioNaoEncontrado",
"true");
bairroActionForm.setNomeMunicipio("Munic�pio inexistente");
httpServletRequest.setAttribute("nomeCampo", "idMunicipio");
}
}
// -------Fim da Parte que trata do c�digo quando o usu�rio tecla enter
if (httpServletRequest.getParameter("limparForm") != null){
bairroActionForm.setIdMunicipio("");
bairroActionForm.setNomeMunicipio("");
bairroActionForm.setCodigoBairro("");
bairroActionForm.setNomeBairro("");
bairroActionForm.setCodigoBairroPrefeitura("");
sessao.removeAttribute("colecaoBairroArea");
}
sessao.setAttribute("reloadPage","INSERIRBAIRRO");
return retorno;
}
}