package gcom.gui.integracao;
import gcom.gui.GcomAction;
import gcom.gui.SessaoHttpListener;
import gcom.integracao.GisRetornoMotivo;
import java.io.IOException;
import java.io.PrintWriter;
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 utilizado
*
*
*
* @author Genival Barbosa
* @since 06/05/2009
*/
public class ProcessarCoordenadasGisAction extends GcomAction {
/**
* Action que captura as requisi��es vindas da Integra��o do Gis com o Gsan.
*
* @param actionMapping
* @param actionForm
* @param httpServletRequest
* @param httpServletResponse
* @return
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest request,
HttpServletResponse response) {
ActionForward actionForward = null;
//RETORNO_MOTIVO GSAN
Integer retorno = GisRetornoMotivo.OPERACAO_SUCESSO;
String loginUsuario = request.getParameter("usur_nmlogin");
//Flag usada para verificar se a requisi��o gis veio da tela correta.
//inser��o de um R.A (Aba n� 02 - Dados do local de ocorr�ncia
HttpSession sessaoUsuario = SessaoHttpListener.listaSessoesAtivasGis.get(loginUsuario);
if(sessaoUsuario == null){
retorno = GisRetornoMotivo.LOGIN_USUARIO_INEXISTENTE;
}else{
//Boolean marcadorGis = (Boolean) sessao.getAttribute("gis");
GisHelper gisHelper = new GisHelper();
//Login do usu�rio
if(loginUsuario==null){
retorno = GisRetornoMotivo.LOGIN_USUARIO_INEXISTENTE;
}
//Coordenada norte da ocorr�ncia
String nnCoordenadaNorte = request.getParameter("rgat_nncoordenadanorte");
if("".equals(nnCoordenadaNorte) || nnCoordenadaNorte == null){
retorno = GisRetornoMotivo.COORDENADA_NORTE_INVALIDA;
}else{
gisHelper.setNnCoordenadaNorte(nnCoordenadaNorte);
}
//Coordenada leste da ocorr�ncia
String nnCoordenadaLeste = request.getParameter("rgat_nncoordenadaleste");
if("".equals(nnCoordenadaLeste) || nnCoordenadaLeste == null){
retorno = GisRetornoMotivo.COORDENADA_LESTE_INVALIDA;
}else{
gisHelper.setNnCoordenadaLeste(nnCoordenadaLeste);
}
//Colocando o helper na sess�o.
sessaoUsuario.setAttribute("gisHelper",gisHelper);
}
try{
PrintWriter pw = response.getWriter();
pw.println(retorno);
pw.flush();
} catch (IOException e) {
e.printStackTrace();
}
return actionForward;
}
}