Ignore:
Timestamp:
2014-08-01T23:03:40+02:00 (10 years ago)
Author:
Don-vip
Message:

see #9899 - refactor save/upload layer stuff to allow different layers (i.e: notes layer) to benefit from the mechanism

File:
1 edited

Legend:

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

    r7335 r7358  
    7777import org.openstreetmap.josm.gui.io.SaveLayersDialog;
    7878import org.openstreetmap.josm.gui.layer.Layer;
     79import org.openstreetmap.josm.gui.layer.ModifiableLayer;
    7980import org.openstreetmap.josm.gui.layer.OsmDataLayer;
    8081import org.openstreetmap.josm.gui.layer.OsmDataLayer.CommandQueueListener;
     
    890891
    891892    /**
    892      * Asks user to perform "save layer" operations (save .osm on disk and/or upload osm data to server) for all {@link OsmDataLayer} before JOSM exits.
     893     * Asks user to perform "save layer" operations (save on disk and/or upload data to server) for all {@link ModifiableLayer} before JOSM exits.
    893894     * @return {@code true} if there was nothing to save, or if the user wants to proceed to save operations. {@code false} if the user cancels.
    894895     * @since 2025
     
    896897    public static boolean saveUnsavedModifications() {
    897898        if (!isDisplayingMapView()) return true;
    898         return saveUnsavedModifications(map.mapView.getLayersOfType(OsmDataLayer.class), true);
    899     }
    900 
    901     /**
    902      * Asks user to perform "save layer" operations (save .osm on disk and/or upload osm data to server) before osm layers deletion.
    903      *
    904      * @param selectedLayers The layers to check. Only instances of {@link OsmDataLayer} are considered.
     899        return saveUnsavedModifications(map.mapView.getLayersOfType(ModifiableLayer.class), true);
     900    }
     901
     902    /**
     903     * Asks user to perform "save layer" operations (save on disk and/or upload data to server) before data layers deletion.
     904     *
     905     * @param selectedLayers The layers to check. Only instances of {@link ModifiableLayer} are considered.
    905906     * @param exit {@code true} if JOSM is exiting, {@code false} otherwise.
    906907     * @return {@code true} if there was nothing to save, or if the user wants to proceed to save operations. {@code false} if the user cancels.
     
    909910    public static boolean saveUnsavedModifications(Iterable<? extends Layer> selectedLayers, boolean exit) {
    910911        SaveLayersDialog dialog = new SaveLayersDialog(parent);
    911         List<OsmDataLayer> layersWithUnmodifiedChanges = new ArrayList<>();
     912        List<ModifiableLayer> layersWithUnmodifiedChanges = new ArrayList<>();
    912913        for (Layer l: selectedLayers) {
    913             if (!(l instanceof OsmDataLayer)) {
     914            if (!(l instanceof ModifiableLayer)) {
    914915                continue;
    915916            }
    916             OsmDataLayer odl = (OsmDataLayer)l;
    917             if ((odl.requiresSaveToFile() || (odl.requiresUploadToServer() && !odl.isUploadDiscouraged())) && odl.data.isModified()) {
     917            ModifiableLayer odl = (ModifiableLayer)l;
     918            if ((odl.requiresSaveToFile() || (odl.requiresUploadToServer() && !odl.isUploadDiscouraged())) && odl.isModified()) {
    918919                layersWithUnmodifiedChanges.add(odl);
    919920            }
Note: See TracChangeset for help on using the changeset viewer.