Changeset 38 in josm for src/org/openstreetmap/josm/actions


Ignore:
Timestamp:
2006-01-02T21:57:25+01:00 (20 years ago)
Author:
imi
Message:

Added support for CSV import (well, CSV without "" specification)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/org/openstreetmap/josm/actions/OpenAction.java

    r32 r38  
    88import java.io.FileReader;
    99import java.io.IOException;
     10import java.io.Reader;
    1011import java.util.Collection;
     12import java.util.LinkedList;
    1113
    1214import javax.swing.Box;
     
    2931import org.openstreetmap.josm.io.GpxReader;
    3032import org.openstreetmap.josm.io.OsmReader;
     33import org.openstreetmap.josm.io.RawCsvReader;
    3134import org.openstreetmap.josm.io.RawGpsReader;
    3235
     
    5558                JCheckBox rawGps = new JCheckBox("Raw GPS data", true);
    5659                rawGps.setToolTipText("Check this, if the data were obtained from a gps device.");
    57                 JCheckBox newLayer = new JCheckBox("As Layer", true);
    58                 newLayer.setToolTipText("Open as a new layer or replace all current layers.");
    59                 if (Main.main.getMapFrame() == null) {
    60                         newLayer.setEnabled(false);
    61                         newLayer.setSelected(false);
    62                 }
    6360               
    6461                JPanel p = new JPanel(new GridBagLayout());
    6562                p.add(new JLabel("Options"), GBC.eop());
    6663                p.add(rawGps, GBC.eol());
    67                 p.add(newLayer, GBC.eol());
    6864                p.add(Box.createVerticalGlue(), GBC.eol().fill());
    6965                fc.setAccessory(p);
     
    7167                if (fc.showOpenDialog(Main.main) != JFileChooser.APPROVE_OPTION)
    7268                        return;
    73                
     69
    7470                File filename = fc.getSelectedFile();
    7571                if (filename == null)
     
    7874                try {
    7975                        Layer layer;
     76                        Reader in = new FileReader(filename);
     77                        String extension = filename.getName().toLowerCase().substring(filename.getName().lastIndexOf('.')+1);
    8078                        if (rawGps.isSelected()) {
    81                                 Collection<Collection<GeoPoint>> data = new RawGpsReader(new FileReader(filename)).parse();
     79                                Collection<Collection<GeoPoint>> data;
     80                                if (extension.equals("gpx"))
     81                                        data = new RawGpsReader(in).parse();
     82                                else if (extension.equals("xml") || extension.equals("osm")) {
     83                                        JOptionPane.showMessageDialog(Main.main, "Osm server data import for GPS data is not supported.");
     84                                        return;
     85                                } else if (extension.equals("csv") || extension.equals("txt")) {
     86                                        data = new LinkedList<Collection<GeoPoint>>();
     87                                        data.add(new RawCsvReader(in).parse());
     88                                } else {
     89                                        JOptionPane.showMessageDialog(Main.main, "Unknown file extension: "+extension);
     90                                        return;
     91                                }
    8292                                layer = new RawGpsDataLayer(data, filename.getName());
    8393                        } else {
    84                                 DataSet dataSet = filename.getName().toLowerCase().endsWith(".gpx") ?
    85                                                 new GpxReader(new FileReader(filename)).parse() :
    86                                                 new OsmReader(new FileReader(filename)).parse();
     94                                DataSet dataSet;
     95                                if (extension.equals("gpx"))
     96                                        dataSet = new GpxReader(in).parse();
     97                                else if (extension.equals("xml") || extension.equals("osm"))
     98                                        dataSet = new OsmReader(in).parse();
     99                                else if (extension.equals("csv") || extension.equals("txt")) {
     100                                        JOptionPane.showMessageDialog(Main.main, "CSV Data import for non-GPS data is not implemented yet.");
     101                                        return;
     102                                } else {
     103                                        JOptionPane.showMessageDialog(Main.main, "Unknown file extension: "+extension);
     104                                        return;
     105                                }
    87106                                layer = new OsmDataLayer(dataSet, filename.getName());
    88107                        }
    89108                       
    90                         if (Main.main.getMapFrame() == null || !newLayer.isSelected())
     109                        if (Main.main.getMapFrame() == null)
    91110                                Main.main.setMapFrame(filename.getName(), new MapFrame(layer));
    92111                        else
Note: See TracChangeset for help on using the changeset viewer.