Ignore:
Timestamp:
2009-06-07T16:18:31+02:00 (15 years ago)
Author:
stoecker
Message:

add support for compressed OSM files (bzip2, gzip)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/io/OsmImporter.java

    r1637 r1653  
    99import java.io.FileNotFoundException;
    1010import java.io.IOException;
     11import java.io.InputStream;
    1112
    1213import javax.swing.JOptionPane;
     
    2425    }
    2526
     27    public OsmImporter(ExtensionFileFilter filter) {
     28        super(filter);
     29    }
     30
    2631    @Override public void importData(File file) throws IOException {
    2732        try {
    28             OsmReader osm = OsmReader.parseDataSetOsm(new FileInputStream(file), null, Main.pleaseWaitDlg);
    29             DataSet dataSet = osm.getDs();
    30             OsmDataLayer layer = new OsmDataLayer(dataSet, file.getName(), file);
    31             Main.main.addLayer(layer);
    32             layer.fireDataChange();
    33             if (osm.getParseNotes().length() != 0) {
    34                 /* display at most five lines */
    35                 String notes = osm.getParseNotes();
    36                 int j = 0;
    37                 for (int i = 0; i < 5; i++)
    38                     j = notes.indexOf('\n', j + 1);
    39                 j = j >= 0 ? j : notes.length();
    40                 JOptionPane.showMessageDialog(Main.parent, notes.substring(0, j));
    41             }
     33            FileInputStream in = new FileInputStream(file);
     34            importData(in, file);
    4235        } catch (HeadlessException e) {
    4336            e.printStackTrace();
     
    5144        }
    5245    }
     46
     47    protected void importData(InputStream in, File associatedFile) throws SAXException, IOException {
     48        OsmReader osm = OsmReader.parseDataSetOsm(in, null, Main.pleaseWaitDlg);
     49        DataSet dataSet = osm.getDs();
     50        OsmDataLayer layer = new OsmDataLayer(dataSet, associatedFile.getName(), associatedFile);
     51        Main.main.addLayer(layer);
     52        layer.fireDataChange();
     53        if (osm.getParseNotes().length() != 0) {
     54            /* display at most five lines */
     55            String notes = osm.getParseNotes();
     56            int j = 0;
     57            for (int i = 0; i < 5; i++)
     58                j = notes.indexOf('\n', j + 1);
     59            j = j >= 0 ? j : notes.length();
     60            JOptionPane.showMessageDialog(Main.parent, notes.substring(0, j));
     61        }
     62    }
    5363}
Note: See TracChangeset for help on using the changeset viewer.