Ignore:
Timestamp:
2012-08-20T01:11:45+02:00 (12 years ago)
Author:
Don-vip
Message:

fix #2961 - Improve usability of WMS Layer Saving/Loading

  • Replaced the unconventional method of creating a blank layer, then loading a .wms file to a standard File->Open approach
  • Fixed memory leaks with some actions registered as listeners but never destroyed
  • Layer interface modified to allow a generic approach of layer saving in SaveActionBase rather than the previous one restricted to OSM and GPX data
  • FileImporters and FileExporters can now be enabled/disabled at runtime, for example when the active layer changes
File:
1 edited

Legend:

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

    r5438 r5459  
    1212import javax.swing.filechooser.FileFilter;
    1313
     14import org.openstreetmap.josm.gui.MapView;
    1415import org.openstreetmap.josm.io.AllFormatsImporter;
    1516import org.openstreetmap.josm.io.FileExporter;
     
    5152                "org.openstreetmap.josm.io.OsmBzip2Importer",
    5253                "org.openstreetmap.josm.io.JpgImporter",
     54                "org.openstreetmap.josm.io.WMSLayerImporter",
    5355                "org.openstreetmap.josm.io.AllFormatsImporter"
    5456        };
     
    5658        for (String classname : importerNames) {
    5759            try {
    58                 Class<?> klass = Class.forName(classname);
    59                 importers.add((FileImporter) klass.newInstance());
    60             } catch (Exception e) {}
     60                FileImporter importer = (FileImporter) Class.forName(classname).newInstance();
     61                importers.add(importer);
     62                MapView.addLayerChangeListener(importer);
     63            } catch (Throwable t) { }
    6164        }
    6265
     
    6972                "org.openstreetmap.josm.io.OsmBzip2Exporter",
    7073                "org.openstreetmap.josm.io.GeoJSONExporter",
     74                "org.openstreetmap.josm.io.WMSLayerExporter"
    7175        };
    7276
    7377        for (String classname : exporterNames) {
    7478            try {
    75                 Class<?> klass = Class.forName(classname);
    76                 exporters.add((FileExporter)klass.newInstance());
    77             } catch (Exception e) {}
     79                FileExporter exporter = (FileExporter)Class.forName(classname).newInstance();
     80                exporters.add(exporter);
     81                MapView.addLayerChangeListener(exporter);
     82            } catch (Throwable t) { }
    7883        }
    7984    }
     
    134139
    135140    /**
    136      * Replies an ordered list of {@link ExtensionFileFilter}s for exporting.
     141     * Replies an ordered list of enabled {@link ExtensionFileFilter}s for exporting.
    137142     * The list is ordered according to their description, an {@link AllFormatsImporter}
    138143     * is append at the end.
    139144     *
    140      * @return an ordered list of {@link ExtensionFileFilter}s for exporting.
     145     * @return an ordered list of enabled {@link ExtensionFileFilter}s for exporting.
    141146     * @since 2029
    142147     */
     
    144149        LinkedList<ExtensionFileFilter> filters = new LinkedList<ExtensionFileFilter>();
    145150        for (FileExporter exporter : exporters) {
    146             if (filters.contains(exporter.filter)) {
     151            if (filters.contains(exporter.filter) || !exporter.isEnabled()) {
    147152                continue;
    148153            }
Note: See TracChangeset for help on using the changeset viewer.