Ticket #12370: NonDefaultFileExtension.patch

File NonDefaultFileExtension.patch, 2.4 KB (added by kolesar, 10 years ago)
  • src/org/openstreetmap/josm/actions/ExtensionFileFilter.java

    diff --git a/src/org/openstreetmap/josm/actions/ExtensionFileFilter.java b/src/org/openstreetmap/josm/actions/ExtensionFileFilter.java
    index de44d7b..202bca7 100644
    a b public class ExtensionFileFilter extends FileFilter implements java.io.FileFilte  
    221221            if (extension.equals(exporter.filter.getDefaultExtension()))
    222222                return exporter.filter;
    223223        }
     224        // if extension did not match defaultExtension of any exporter,
     225        // scan all supported extensions
     226        File file = new File("file." + extension);
     227        for (FileExporter exporter : exporters) {
     228            if (exporter.filter.accept(file))
     229                return exporter.filter;
     230        }
    224231        return new AllFormatsImporter().filter;
    225232    }
    226233
    public class ExtensionFileFilter extends FileFilter implements java.io.FileFilte  
    236243     */
    237244    public static void applyChoosableImportFileFilters(AbstractFileChooser fileChooser, String extension, boolean allTypes) {
    238245        for (ExtensionFileFilter filter: getImportExtensionFileFilters()) {
     246
    239247            if (allTypes || filter.acceptName("file."+extension)) {
    240248                fileChooser.addChoosableFileFilter(filter);
    241249            }
  • src/org/openstreetmap/josm/actions/SaveActionBase.java

    diff --git a/src/org/openstreetmap/josm/actions/SaveActionBase.java b/src/org/openstreetmap/josm/actions/SaveActionBase.java
    index cc8a6f7..0eebdae 100644
    a b public abstract class SaveActionBase extends DiskAccessAction {  
    168168            }
    169169            // No filefilter accepts current filename, add default extension
    170170            String fn = file.getPath();
    171             if (ff instanceof ExtensionFileFilter) {
    172                 fn += '.' + ((ExtensionFileFilter) ff).getDefaultExtension();
    173             } else if (extension != null) {
     171            if (extension != null) {
    174172                fn += '.' + extension;
     173            } else if (ff instanceof ExtensionFileFilter) {
     174                fn += '.' + ((ExtensionFileFilter) ff).getDefaultExtension();
    175175            }
    176176            file = new File(fn);
    177177            // Confirm overwrite, except for OSX native file dialogs which already ask for confirmation (see #11362)