Changeset 4757 in josm
- Timestamp:
- 2012-01-01T13:17:54+01:00 (12 years ago)
- Location:
- trunk
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/io/GpxImporter.java
r4755 r4757 24 24 public class GpxImporter extends FileImporter { 25 25 26 protected GpxLayer gpxLayer; 27 protected MarkerLayer markerLayer; 28 protected Runnable postLayerTask; 26 protected class GpxImporterData { 27 public GpxLayer gpxLayer; 28 public MarkerLayer markerLayer; 29 public Runnable postLayerTask; 30 } 29 31 30 32 public GpxImporter() { … … 40 42 } 41 43 String fileName = file.getName(); 42 loadLayers(is, file, fileName, tr("Markers from {0}", fileName), progressMonitor);44 final GpxImporterData data = loadLayers(is, file, fileName, tr("Markers from {0}", fileName), progressMonitor); 43 45 44 46 final GpxLayer gpxLayer = this.gpxLayer; … … 49 51 GuiHelper.runInEDT(new Runnable() { 50 52 public void run() { 51 if ( markerLayer != null) {52 Main.main.addLayer( markerLayer);53 if (data.markerLayer != null) { 54 Main.main.addLayer(data.markerLayer); 53 55 } 54 if ( gpxLayer != null) {55 Main.main.addLayer( gpxLayer);56 if (data.gpxLayer != null) { 57 Main.main.addLayer(data.gpxLayer); 56 58 } 57 postLayerTask.run();59 data.postLayerTask.run(); 58 60 } 59 61 }); 60 62 } 61 63 62 public voidloadLayers(InputStream is, final File associatedFile,64 public GpxImporterData loadLayers(InputStream is, final File associatedFile, 63 65 final String gpxLayerName, String markerLayerName, ProgressMonitor progressMonitor) throws IOException { 66 final GpxImporterData data = new GpxImporterData(); 64 67 try { 65 68 final GpxReader r = new GpxReader(is); … … 67 70 r.data.storageFile = associatedFile; 68 71 if (r.data.hasRoutePoints() || r.data.hasTrackPoints()) { 69 gpxLayer = new GpxLayer(r.data, gpxLayerName, associatedFile != null);72 data.gpxLayer = new GpxLayer(r.data, gpxLayerName, associatedFile != null); 70 73 } 71 74 if (Main.pref.getBoolean("marker.makeautomarkers", true) && !r.data.waypoints.isEmpty()) { 72 markerLayer = new MarkerLayer(r.data, markerLayerName, associatedFile,gpxLayer, false);73 if ( markerLayer.data.size() == 0) {74 markerLayer = null;75 data.markerLayer = new MarkerLayer(r.data, markerLayerName, associatedFile, data.gpxLayer, false); 76 if (data.markerLayer.data.size() == 0) { 77 data.markerLayer = null; 75 78 } 76 79 } 77 postLayerTask = new Runnable() {80 data.postLayerTask = new Runnable() { 78 81 @Override 79 82 public void run() { 80 if ( markerLayer != null) {81 markerLayer.addMouseHandler();83 if (data.markerLayer != null) { 84 data.markerLayer.addMouseHandler(); 82 85 } 83 86 if (!parsedProperly) { … … 98 101 throw new IOException(tr("Parsing data for layer ''{0}'' failed", gpxLayerName)); 99 102 } 100 } 101 102 public GpxLayer getGpxLayer() { 103 return gpxLayer; 104 } 105 106 public MarkerLayer getMarkerLayer() { 107 return markerLayer; 108 } 109 110 public Runnable getPostLayerTask() { 111 return postLayerTask; 103 return data; 112 104 } 113 105 }
Note: See TracChangeset
for help on using the changeset viewer.