Ticket #3319: filefilter

File filefilter, 3.4 KB (added by bastiK, 12 years ago)
Line 
1Index: src/org/openstreetmap/josm/actions/ExtensionFileFilter.java
2===================================================================
3--- src/org/openstreetmap/josm/actions/ExtensionFileFilter.java (revision 1992)
4+++ src/org/openstreetmap/josm/actions/ExtensionFileFilter.java (working copy)
5@@ -1,6 +1,8 @@
6 // License: GPL. Copyright 2007 by Immanuel Scholz and others
7 package org.openstreetmap.josm.actions;
8 
9+import static org.openstreetmap.josm.tools.I18n.tr;
10+
11 import java.io.File;
12 import java.util.ArrayList;
13 import java.util.Arrays;
14@@ -30,16 +32,17 @@
15     private final String description;
16     public final String defaultExtension;
17 
18+    /**
19+     * list of supported formats
20+     */
21     public static ArrayList<FileImporter> importers = new ArrayList<FileImporter>(Arrays.asList(new OsmImporter(),
22-            new OsmGzipImporter(), new OsmBzip2Importer(), new GpxImporter(), new NMEAImporter()));
23+            new OsmGzipImporter(), new OsmBzip2Importer(), new GpxImporter(), new NMEAImporter(), new AllFormatsImporter()));
24 
25-    // list of supported export formats
26     public static ArrayList<FileExporter> exporters = new ArrayList<FileExporter>(Arrays.asList(new GpxExporter(),
27             new OsmExporter(), new OsmGzipExporter(), new OsmBzip2Exporter()));
28-
29+   
30     /**
31      * Construct an extension file filter by giving the extension to check after.
32-     *
33      */
34     public ExtensionFileFilter(String extension, String defExt, String description) {
35         this.extension = extension;
36@@ -64,4 +67,18 @@
37     @Override public String getDescription() {
38         return description;
39     }
40+   
41+    /**
42+     * Dummy importer that adds the "All Formats"-Filter when opening files
43+     */
44+    public static class AllFormatsImporter extends FileImporter {
45+        public AllFormatsImporter() {
46+            super(
47+                new ExtensionFileFilter("osm,xml,osm.gz,osm.bz2,osm.bz,gpx,gpx.gz,nmea,nme,nma,txt", "", tr("All Formats")
48+                        + " (*.gpx *.osm *.nmea ...)"));
49+        }
50+        @Override public boolean acceptFile(File pathname) {
51+            return false;
52+        }
53+    }
54 }
55Index: src/org/openstreetmap/josm/actions/DiskAccessAction.java
56===================================================================
57--- src/org/openstreetmap/josm/actions/DiskAccessAction.java    (revision 1992)
58+++ src/org/openstreetmap/josm/actions/DiskAccessAction.java    (working copy)
59@@ -37,7 +37,7 @@
60         FileFilter defaultFilter = null;
61         for (FileImporter imExporter: ExtensionFileFilter.importers) {
62             fc.addChoosableFileFilter(imExporter.filter);
63-            if (imExporter.filter.defaultExtension.endsWith("osm")) {
64+            if (imExporter instanceof ExtensionFileFilter.AllFormatsImporter) {
65                 defaultFilter = imExporter.filter;
66             }
67 
68Index: src/org/openstreetmap/josm/io/OsmBzip2Importer.java
69===================================================================
70--- src/org/openstreetmap/josm/io/OsmBzip2Importer.java (revision 1992)
71+++ src/org/openstreetmap/josm/io/OsmBzip2Importer.java (working copy)
72@@ -15,7 +15,7 @@
73 public class OsmBzip2Importer extends OsmImporter {
74 
75     public OsmBzip2Importer() {
76-        super(new ExtensionFileFilter("osm.bz2, osm.bz", "osm.bz2", tr("OSM Server Files bzip2 compressed")
77+        super(new ExtensionFileFilter("osm.bz2,osm.bz", "osm.bz2", tr("OSM Server Files bzip2 compressed")
78                 + " (*.osm.bz2 *.osm.bz)"));
79     }
80