// License: GPL. For details, see LICENSE file. package gpxfilter; import static org.openstreetmap.josm.tools.I18n.tr; import org.openstreetmap.josm.Main; import org.openstreetmap.josm.data.Bounds; import org.openstreetmap.josm.data.gpx.GpxData; import org.openstreetmap.josm.gui.layer.GpxLayer; public class EGpxLayer extends GpxLayer { public EGpxLayer(final Bounds b) { super(new GpxData(), tr("GPX Data")); Thread t = new Thread(new Runnable() { @Override public void run() { GpxGrabber grabber = new GpxGrabber(b); while (true) { GpxData newData; try { newData = grabber.parseRawGps(); } catch (Exception e) { e.printStackTrace(); break; } if (newData == null || !newData.hasTrackPoints()) break; synchronized (this) { data.mergeFrom(newData); } Main.map.repaint(); } grabber.cancel(); } }); t.setDaemon(true); t.start(); } }