package net.sf.lab3f.gwt.gps.client; import com.google.gwt.core.client.JavaScriptObject; import com.google.gwt.user.client.Timer; import com.google.gwt.user.client.Window; import com.google.gwt.json.client.JSONArray; import com.google.gwt.json.client.JSONObject; import net.sf.lab3f.gwt.util.client.Util; /* import java.util.HashMap; import java.util.Vector; import com.google.gwt.core.client.GWT; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.DialogBox; import com.google.gwt.user.client.ui.DisclosurePanel; import com.google.gwt.user.client.ui.FlexTable; import com.google.gwt.user.client.ui.HTML; import com.google.gwt.user.client.ui.HTMLPanel; import com.google.gwt.user.client.ui.HasHorizontalAlignment; import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.Image; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.RootPanel; import com.google.gwt.user.client.ui.SimplePanel; import com.google.gwt.user.client.ui.VerticalPanel; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.dom.client.KeyCodes; import com.google.gwt.event.dom.client.KeyPressEvent; import com.google.gwt.event.dom.client.KeyPressHandler; import com.google.gwt.event.dom.client.LoadEvent; import com.google.gwt.event.dom.client.LoadHandler; import com.google.gwt.event.logical.shared.CloseHandler; import com.google.gwt.event.logical.shared.CloseEvent; import com.google.gwt.event.logical.shared.OpenHandler; import com.google.gwt.event.logical.shared.OpenEvent; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.maps.client.InfoWindowContent; import com.google.gwt.maps.client.MapOptions; import com.google.gwt.maps.client.MapType; import com.google.gwt.maps.client.MapWidget; import com.google.gwt.maps.client.Maps; import com.google.gwt.maps.client.geom.Point; import com.google.gwt.maps.client.control.ControlAnchor; import com.google.gwt.maps.client.control.ControlPosition; import com.google.gwt.maps.client.control.SmallMapControl; import com.google.gwt.maps.client.control.MapTypeControl; import com.google.gwt.maps.client.event.MarkerClickHandler; import com.google.gwt.maps.client.geom.LatLng; import com.google.gwt.maps.client.geom.LatLngBounds; import com.google.gwt.maps.client.geocode.Geocoder; import com.google.gwt.maps.client.geocode.Placemark; import com.google.gwt.maps.client.geocode.LocationCallback; import com.google.gwt.maps.client.overlay.Icon; import com.google.gwt.maps.client.overlay.Marker; import com.google.gwt.maps.client.overlay.MarkerOptions; import com.google.gwt.maps.client.overlay.Polyline; import com.google.gwt.http.client.RequestCallback; import com.google.gwt.http.client.RequestBuilder; import com.google.gwt.http.client.RequestException; import com.google.gwt.http.client.Request; import com.google.gwt.http.client.Response; import com.google.gwt.xml.client.Document; import com.google.gwt.xml.client.Element; import com.google.gwt.xml.client.Node; import com.google.gwt.xml.client.NodeList; import com.google.gwt.xml.client.XMLParser; */ public class GPS { private static JSONArray data; public final static JSONArray getData(){return data;} public final static void prepareData(){ Util.xslt("gps", "gps.xml", "gps.xsl"); (new Timer(){ public void run(){ String s = getRawGpsData(); if(s.trim().length() == 0)return; int m = s.indexOf('['); int n = s.lastIndexOf(']') + 1; s = s.substring(m, n).replaceAll(",]", "]").replaceAll("\\s+", " "); data = new JSONObject(eval(s)).isArray(); cancel(); } }).scheduleRepeating(300); } private native static JavaScriptObject eval(String s)/*-{return eval(s);}-*/; private native static String getRawGpsData()/*-{ return $doc.getElementById("gps").innerHTML; }-*/; }