Changeset 78 in josm for src/org/openstreetmap/josm/actions
- Timestamp:
- 2006-04-01T13:01:41+02:00 (19 years ago)
- Location:
- src/org/openstreetmap/josm/actions
- Files:
-
- 2 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
src/org/openstreetmap/josm/actions/OpenAction.java
r71 r78 16 16 import org.jdom.JDOMException; 17 17 import org.openstreetmap.josm.Main; 18 import org.openstreetmap.josm.data.coor.LatLon;19 18 import org.openstreetmap.josm.data.osm.DataSet; 20 19 import org.openstreetmap.josm.gui.MapFrame; … … 22 21 import org.openstreetmap.josm.gui.layer.OsmDataLayer; 23 22 import org.openstreetmap.josm.gui.layer.RawGpsDataLayer; 23 import org.openstreetmap.josm.gui.layer.RawGpsDataLayer.GpsPoint; 24 24 import org.openstreetmap.josm.io.GpxReader; 25 25 import org.openstreetmap.josm.io.OsmReader; … … 35 35 * @author imi 36 36 */ 37 public class OpenAction extends JosmAction {37 public class OpenAction extends DiskAccessAction { 38 38 39 39 /** … … 45 45 46 46 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) 53 49 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]); 62 53 } 63 54 … … 71 62 72 63 if (asRawData(fn)) { 73 Collection<Collection< LatLon>> data;64 Collection<Collection<GpsPoint>> data; 74 65 if (ExtensionFileFilter.filters[ExtensionFileFilter.GPX].acceptName(fn)) { 75 66 data = new RawGpsReader(new FileReader(filename)).parse(); 76 67 } else if (ExtensionFileFilter.filters[ExtensionFileFilter.CSV].acceptName(fn)) { 77 data = new LinkedList<Collection< LatLon>>();68 data = new LinkedList<Collection<GpsPoint>>(); 78 69 data.add(new RawCsvReader(new FileReader(filename)).parse()); 79 70 } else … … 82 73 } else { 83 74 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."); 85 77 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)) { 87 79 try { 88 80 // temporary allow loading of old xml format. … … 91 83 if (x.getMessage().equals("Unknown version: null")) { 92 84 int answer = JOptionPane.showConfirmDialog(Main.main, 93 "Thisseems to be an old 0.2 API XML file.\n" +85 fn+" seems to be an old 0.2 API XML file.\n" + 94 86 "JOSM can try to open it with the old parser. This option\n" + 95 87 "will not be available in future JOSM version. You should\n" + … … 104 96 } 105 97 } 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."); 107 99 return; 108 100 } 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)); 110 102 return; 111 103 } … … 140 132 return false; 141 133 return JOptionPane.YES_OPTION == JOptionPane.showConfirmDialog( 142 Main.main, "Do you want to open the fileas raw gps data?",134 Main.main, "Do you want to open "+fn+" as raw gps data?", 143 135 "Open as raw data?", JOptionPane.YES_NO_OPTION); 144 136 } -
src/org/openstreetmap/josm/actions/SaveAction.java
r71 r78 15 15 import org.openstreetmap.josm.Main; 16 16 import org.openstreetmap.josm.data.osm.LineSegment; 17 import org.openstreetmap.josm.data.osm.OsmPrimitive;18 17 import org.openstreetmap.josm.io.GpxWriter; 19 18 import org.openstreetmap.josm.io.OsmWriter; … … 24 23 * @author imi 25 24 */ 26 public class SaveAction extends JosmAction {25 public class SaveAction extends DiskAccessAction { 27 26 28 27 /** 29 28 * 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. 30 31 */ 31 32 public SaveAction() { … … 41 42 return; 42 43 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 48 48 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;55 49 56 50 try { … … 58 52 if (fn.indexOf('.') == -1) { 59 53 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); 64 59 } 65 60 FileWriter fileWriter; … … 88 83 } 89 84 } 90 91 /**92 * Check the data set if it would be empty on save. It is empty, if it contains93 * no objects (after all objects that are created and deleted without beeing94 * 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 105 85 }
Note:
See TracChangeset
for help on using the changeset viewer.