[josm-dev] Save file dialog

Dirk Stöcker openstreetmap at dstoecker.de
Mon Jul 7 16:01:06 BST 2008


Hello,

to fix bug http://josm.openstreetmap.de/ticket/836

I need to add osm/gpx file extension seperation (first three files). To 
make more understandable, that a GPX is written instead of the normal data 
I introduced a dialog title (other files).

Objections to this? If not I will check it in next days.

Index: src/org/openstreetmap/josm/actions/SaveActionBase.java
===================================================================
--- src/org/openstreetmap/josm/actions/SaveActionBase.java	(Revision 681)
+++ src/org/openstreetmap/josm/actions/SaveActionBase.java	(Arbeitskopie)
@@ -86,8 +86,8 @@
  		return true;
  	}

-	public static File openFileDialog() {
-		JFileChooser fc = createAndOpenFileChooser(false, false);
+	public static File openFileDialog(Layer layer) {
+		JFileChooser fc = createAndOpenFileChooser(false, false, layer instanceof GpxLayer ? tr("Save GPX file") : tr("Save OSM file"));
  		if (fc == null)
  			return null;

@@ -98,6 +98,8 @@
  			FileFilter ff = fc.getFileFilter();
  			if (ff instanceof ExtensionFileFilter)
  				fn += "." + ((ExtensionFileFilter)ff).defaultExtension;
+			else if (layer instanceof GpxLayer)
+				fn += ".gpx";
  			else
  				fn += ".osm";
  			file = new File(fn);
Index: src/org/openstreetmap/josm/actions/SaveAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/SaveAction.java	(Revision 681)
+++ src/org/openstreetmap/josm/actions/SaveAction.java	(Arbeitskopie)
@@ -39,6 +39,6 @@
  				return f;
  			}
  		}
-		return openFileDialog();
+		return openFileDialog(layer);
  	}
  }
Index: src/org/openstreetmap/josm/actions/SaveAsAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/SaveAsAction.java	(Revision 681)
+++ src/org/openstreetmap/josm/actions/SaveAsAction.java	(Arbeitskopie)
@@ -25,6 +25,6 @@
  	}

  	@Override protected File getFile(Layer layer) {
-		return openFileDialog();
+		return openFileDialog(layer);
  	}
  }
Index: src/org/openstreetmap/josm/actions/DiskAccessAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/DiskAccessAction.java	(Revision 681)
+++ src/org/openstreetmap/josm/actions/DiskAccessAction.java	(Arbeitskopie)
@@ -19,11 +19,14 @@
  		super(name, iconName, tooltip, shortCut, modifiers, true);
  	}

-	protected static JFileChooser createAndOpenFileChooser(boolean open, boolean multiple) {
+	protected static JFileChooser createAndOpenFileChooser(boolean open, boolean multiple, String title) {
  		String curDir = Main.pref.get("lastDirectory");
  		if (curDir.equals(""))
  			curDir = ".";
  		JFileChooser fc = new JFileChooser(new File(curDir));
+		if(title != null)
+			fc.setDialogTitle(title);
+
  		fc.setMultiSelectionEnabled(multiple);
  		for (int i = 0; i < ExtensionFileFilter.filters.length; ++i)
  			fc.addChoosableFileFilter(ExtensionFileFilter.filters[i]);
Index: src/org/openstreetmap/josm/actions/GpxExportAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/GpxExportAction.java	(Revision 681)
+++ src/org/openstreetmap/josm/actions/GpxExportAction.java	(Arbeitskopie)
@@ -54,7 +54,7 @@
  			return;
  		}

-		JFileChooser fc = createAndOpenFileChooser(false, false);
+		JFileChooser fc = createAndOpenFileChooser(false, false, null);
  		if (fc == null)
  			return;
  		File file = fc.getSelectedFile();
Index: src/org/openstreetmap/josm/actions/OpenAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/OpenAction.java	(Revision 681)
+++ src/org/openstreetmap/josm/actions/OpenAction.java	(Arbeitskopie)
@@ -40,7 +40,7 @@
  	}

  	public void actionPerformed(ActionEvent e) {
-		JFileChooser fc = createAndOpenFileChooser(true, true);
+		JFileChooser fc = createAndOpenFileChooser(true, true, null);
  		if (fc == null)
  			return;
  		File[] files = fc.getSelectedFiles();

Ciao
-- 
http://www.dstoecker.eu/ (PGP key available)




More information about the josm-dev mailing list