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


Ignore:
Timestamp:
2006-04-01T13:01:41+02:00 (19 years ago)
Author:
imi
Message:
  • added more context menu items to layer list
  • added GPX export (raw gps and osm)
Location:
src/org/openstreetmap/josm/actions
Files:
2 added
2 edited

Legend:

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

    r71 r78  
    1616import org.jdom.JDOMException;
    1717import org.openstreetmap.josm.Main;
    18 import org.openstreetmap.josm.data.coor.LatLon;
    1918import org.openstreetmap.josm.data.osm.DataSet;
    2019import org.openstreetmap.josm.gui.MapFrame;
     
    2221import org.openstreetmap.josm.gui.layer.OsmDataLayer;
    2322import org.openstreetmap.josm.gui.layer.RawGpsDataLayer;
     23import org.openstreetmap.josm.gui.layer.RawGpsDataLayer.GpsPoint;
    2424import org.openstreetmap.josm.io.GpxReader;
    2525import org.openstreetmap.josm.io.OsmReader;
     
    3535 * @author imi
    3636 */
    37 public class OpenAction extends JosmAction {
     37public class OpenAction extends DiskAccessAction {
    3838
    3939        /**
     
    4545
    4646        public void actionPerformed(ActionEvent e) {
    47                 JFileChooser fc = new JFileChooser(Main.main.currentDirectory);
    48                 for (int i = 0; i < ExtensionFileFilter.filters.length; ++i)
    49                         fc.addChoosableFileFilter(ExtensionFileFilter.filters[i]);
    50                 fc.setAcceptAllFileFilterUsed(true);
    51 
    52                 if (fc.showOpenDialog(Main.main) != JFileChooser.APPROVE_OPTION)
     47                JFileChooser fc = createAndOpenFileChooser(true, true);
     48                if (fc == null)
    5349                        return;
    54                
    55                 Main.main.currentDirectory = fc.getCurrentDirectory();
    56 
    57                 File filename = fc.getSelectedFile();
    58                 if (filename == null)
    59                         return;
    60 
    61                 openFile(filename);
     50                File[] files = fc.getSelectedFiles();
     51                for (int i = files.length; i > 0; --i)
     52                        openFile(files[i-1]);
    6253        }
    6354
     
    7162
    7263                        if (asRawData(fn)) {
    73                                 Collection<Collection<LatLon>> data;
     64                                Collection<Collection<GpsPoint>> data;
    7465                                if (ExtensionFileFilter.filters[ExtensionFileFilter.GPX].acceptName(fn)) {
    7566                                        data = new RawGpsReader(new FileReader(filename)).parse();
    7667                                } else if (ExtensionFileFilter.filters[ExtensionFileFilter.CSV].acceptName(fn)) {
    77                                         data = new LinkedList<Collection<LatLon>>();
     68                                        data = new LinkedList<Collection<GpsPoint>>();
    7869                                        data.add(new RawCsvReader(new FileReader(filename)).parse());
    7970                                } else
     
    8273                        } else {
    8374                                DataSet dataSet;
    84                                 if (ExtensionFileFilter.filters[ExtensionFileFilter.GPX].acceptName(fn))
     75                                if (ExtensionFileFilter.filters[ExtensionFileFilter.GPX].acceptName(fn)) {
     76                                        JOptionPane.showMessageDialog(Main.main, "Warning: Soon, it will be no longer possible to open GPX files as osm data. Please convert your files to .osm format.");
    8577                                        dataSet = new GpxReader(new FileReader(filename)).parse();
    86                                 else if (ExtensionFileFilter.filters[ExtensionFileFilter.OSM].acceptName(fn)) {
     78                                } else if (ExtensionFileFilter.filters[ExtensionFileFilter.OSM].acceptName(fn)) {
    8779                                        try {
    8880                                                // temporary allow loading of old xml format.
     
    9183                                                if (x.getMessage().equals("Unknown version: null")) {
    9284                                                        int answer = JOptionPane.showConfirmDialog(Main.main,
    93                                                                         "This seems to be an old 0.2 API XML file.\n" +
     85                                                                        fn+" seems to be an old 0.2 API XML file.\n" +
    9486                                                                        "JOSM can try to open it with the old parser. This option\n" +
    9587                                                                        "will not be available in future JOSM version. You should\n" +
     
    10496                                        }                                       
    10597                                } else if (ExtensionFileFilter.filters[ExtensionFileFilter.CSV].acceptName(fn)) {
    106                                         JOptionPane.showMessageDialog(Main.main, "CSV Data import for non-GPS data is not implemented yet.");
     98                                        JOptionPane.showMessageDialog(Main.main, fn+": CSV Data import for non-GPS data is not implemented yet.");
    10799                                        return;
    108100                                } else {
    109                                         JOptionPane.showMessageDialog(Main.main, "Unknown file extension: "+fn.substring(filename.getName().lastIndexOf('.')+1));
     101                                        JOptionPane.showMessageDialog(Main.main, fn+": Unknown file extension: "+fn.substring(filename.getName().lastIndexOf('.')+1));
    110102                                        return;
    111103                                }
     
    140132                        return false;
    141133                return JOptionPane.YES_OPTION == JOptionPane.showConfirmDialog(
    142                                 Main.main, "Do you want to open the file as raw gps data?",
     134                                Main.main, "Do you want to open "+fn+" as raw gps data?",
    143135                                "Open as raw data?", JOptionPane.YES_NO_OPTION);
    144136        }
  • src/org/openstreetmap/josm/actions/SaveAction.java

    r71 r78  
    1515import org.openstreetmap.josm.Main;
    1616import org.openstreetmap.josm.data.osm.LineSegment;
    17 import org.openstreetmap.josm.data.osm.OsmPrimitive;
    1817import org.openstreetmap.josm.io.GpxWriter;
    1918import org.openstreetmap.josm.io.OsmWriter;
     
    2423 * @author imi
    2524 */
    26 public class SaveAction extends JosmAction {
     25public class SaveAction extends DiskAccessAction {
    2726
    2827        /**
    2928         * Construct the action with "Save" as label.
     29         * @param layer Save only this layer. If <code>null</code>, save the whole Main
     30         *              data set.
    3031         */
    3132        public SaveAction() {
     
    4142                        return;
    4243
    43                 JFileChooser fc = new JFileChooser(Main.main.currentDirectory);
    44                 for (int i = 0; i < ExtensionFileFilter.filters.length; ++i)
    45                         fc.addChoosableFileFilter(ExtensionFileFilter.filters[i]);
    46                 fc.setAcceptAllFileFilterUsed(true);
    47                 fc.showSaveDialog(Main.main);
     44                JFileChooser fc = createAndOpenFileChooser(false, false);
     45                if (fc == null)
     46                        return;
     47
    4848                File file = fc.getSelectedFile();
    49                 if (file == null)
    50                         return;
    51                 Main.main.currentDirectory = fc.getCurrentDirectory();
    52                 if (file.exists() && JOptionPane.YES_OPTION !=
    53                                 JOptionPane.showConfirmDialog(Main.main, "File exists. Overwrite?", "Overwrite", JOptionPane.YES_NO_OPTION))
    54                         return;
    5549
    5650                try {
     
    5852                        if (fn.indexOf('.') == -1) {
    5953                                FileFilter ff = fc.getFileFilter();
    60                                 if (ff instanceof ExtensionFileFilter) {
    61                                         fn = fn + "." + ((ExtensionFileFilter)ff).defaultExtension;
    62                                         file = new File(fn);
    63                                 }
     54                                if (ff instanceof ExtensionFileFilter)
     55                                        fn = "." + ((ExtensionFileFilter)ff).defaultExtension;
     56                                else
     57                                        fn += ".osm";
     58                                file = new File(fn);
    6459                        }
    6560                        FileWriter fileWriter;
     
    8883                }
    8984        }
    90 
    91         /**
    92          * Check the data set if it would be empty on save. It is empty, if it contains
    93          * no objects (after all objects that are created and deleted without beeing
    94          * transfered to the server have been removed).
    95          * 
    96          * @return <code>true</code>, if a save result in an empty data set.
    97          */
    98         private boolean isDataSetEmpty() {
    99                 for (OsmPrimitive osm : Main.main.ds.allPrimitives())
    100                         if (!osm.isDeleted() || osm.id > 0)
    101                                 return false;
    102                 return true;
    103         }
    104 
    10585}
Note: See TracChangeset for help on using the changeset viewer.