Ticket #675: OpenAction.patch
| File OpenAction.patch, 2.5 KB (added by , 18 years ago) |
|---|
-
P:/workspace_tools/JOSM/src/org/openstreetmap/josm/actions/OpenAction.java
17 17 18 18 import org.openstreetmap.josm.Main; 19 19 import org.openstreetmap.josm.data.osm.DataSet; 20 import org.openstreetmap.josm.gui.layer.GpxLayer; 20 21 import org.openstreetmap.josm.gui.layer.OsmDataLayer; 21 import org.openstreetmap.josm.gui.layer.GpxLayer;22 22 import org.openstreetmap.josm.gui.layer.markerlayer.MarkerLayer; 23 import org.openstreetmap.josm.io.GpxReader; 24 import org.openstreetmap.josm.io.NmeaReader; 23 25 import org.openstreetmap.josm.io.OsmReader; 24 import org.openstreetmap.josm.io.GpxReader;25 26 import org.xml.sax.SAXException; 26 27 27 28 /** 28 29 * Open a file chooser dialog and select an file to import. Than call the gpx-import 29 30 * driver. Finally open an internal frame into the main window with the gpx data shown. 30 * 31 * 31 32 * @author imi 32 33 */ 33 34 public class OpenAction extends DiskAccessAction { 34 35 35 36 /** 36 37 * Create an open action. The name is "Open a file". 37 38 */ … … 55 56 try { 56 57 if (asGpxData(file.getName())) 57 58 openFileAsGpx(file); 59 else if (asNmeaData(file.getName())) 60 openFileAsNmea(file); 58 61 else 59 62 openAsData(file); 60 63 } catch (SAXException x) { … … 102 105 } 103 106 104 107 108 private void openFileAsNmea(File file) throws IOException, FileNotFoundException { 109 String fn = file.getName(); 110 if (ExtensionFileFilter.filters[ExtensionFileFilter.NMEA].acceptName(fn)) { 111 NmeaReader r = null; 112 r = new NmeaReader(new FileInputStream(file), file.getAbsoluteFile().getParentFile()); 113 r.data.storageFile = file; 114 GpxLayer gpxLayer = new GpxLayer(r.data, fn); 115 Main.main.addLayer(gpxLayer); 116 if (Main.pref.getBoolean("marker.makeautomarkers", true)) { 117 MarkerLayer ml = new MarkerLayer(r.data, tr("Markers from {0}", fn), file, gpxLayer); 118 if (ml.data.size() > 0) { 119 Main.main.addLayer(ml); 120 } 121 } 122 123 } else { 124 throw new IllegalStateException(); 125 } 126 } 127 105 128 private boolean asGpxData(String fn) { 106 129 return ExtensionFileFilter.filters[ExtensionFileFilter.GPX].acceptName(fn); 107 130 } 108 131 132 private boolean asNmeaData(String fn) { 133 return ExtensionFileFilter.filters[ExtensionFileFilter.NMEA].acceptName(fn); 134 } 109 135 136 110 137 }
