Ignore:
Timestamp:
2012-08-20T01:11:45+02:00 (14 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/io/FileExporter.java

    r3083 r5459  
    88
    99import org.openstreetmap.josm.actions.ExtensionFileFilter;
     10import org.openstreetmap.josm.gui.MapView.LayerChangeListener;
    1011import org.openstreetmap.josm.gui.layer.Layer;
    1112
    12 public abstract class FileExporter {
    13     public ExtensionFileFilter filter;
     13public abstract class FileExporter implements LayerChangeListener {
     14   
     15    public final ExtensionFileFilter filter;
     16
     17    private boolean enabled;
    1418
    1519    public FileExporter(ExtensionFileFilter filter) {
    1620        this.filter = filter;
     21        this.enabled = true;
    1722    }
    1823
     
    2429        throw new IOException(tr("Could not export ''{0}''.", file.getName()));
    2530    }
     31
     32    /**
     33     * Returns the enabled state of this {@code FileExporter}. When enabled, it is listed and usable in "File->Save" dialogs.
     34     * @return true if this {@code FileExporter} is enabled
     35     * @since 5459
     36     */
     37    public final boolean isEnabled() {
     38        return enabled;
     39    }
     40
     41    /**
     42     * Sets the enabled state of the {@code FileExporter}. When enabled, it is listed and usable in "File->Save" dialogs.
     43     * @param enabled true to enable this {@code FileExporter}, false to disable it
     44     * @since 5459
     45     */
     46    public final void setEnabled(boolean enabled) {
     47        this.enabled = enabled;
     48    }
     49
     50    @Override
     51    public void activeLayerChange(Layer oldLayer, Layer newLayer) {
     52        // To be overriden by subclasses if their enabled state depends of the active layer nature
     53    }
     54
     55    @Override
     56    public void layerAdded(Layer newLayer) {
     57        // To be overriden by subclasses if needed
     58    }
     59
     60    @Override
     61    public void layerRemoved(Layer oldLayer) {
     62        // To be overriden by subclasses if needed
     63    }
    2664}
Note: See TracChangeset for help on using the changeset viewer.