Ignore:
Timestamp:
2017-08-12T11:24:39+02:00 (7 years ago)
Author:
bastiK
Message:

fixed #15139 - raster-image filter settings are Not Stored when saving session (color Saturation, Brightness, Sharpness)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/io/session/ImagerySessionImporter.java

    r12267 r12594  
    1818import org.openstreetmap.josm.gui.layer.WMSLayer;
    1919import org.openstreetmap.josm.gui.layer.WMTSLayer;
     20import org.openstreetmap.josm.gui.layer.imagery.ImageryFilterSettings;
    2021import org.openstreetmap.josm.gui.progress.ProgressMonitor;
    2122import org.openstreetmap.josm.io.IllegalDataException;
    2223import org.openstreetmap.josm.io.session.SessionReader.ImportSupport;
     24import org.openstreetmap.josm.tools.Utils;
    2325import org.w3c.dom.Element;
    2426import org.w3c.dom.Node;
     
    4547            AbstractTileSourceLayer<?> tsLayer = (AbstractTileSourceLayer<?>) layer;
    4648            tsLayer.getDisplaySettings().loadFrom(attributes);
    47             NodeList nodes = elem.getChildNodes();
    48             for (int i = 0; i < nodes.getLength(); ++i) {
    49                 Node node = nodes.item(i);
    50                 if (node.getNodeType() == Node.ELEMENT_NODE && "offset".equals(node.getLocalName())) {
    51                     Map<String, String> offsetAttributes = readProperties((Element) node);
    52                     OffsetBookmark offset = OffsetBookmark.fromPropertiesMap(offsetAttributes);
    53                     tsLayer.getDisplaySettings().setOffsetBookmark(offset);
    54                     break;
    55                 }
     49            Element offsetEl = getFirstElementByTagName(elem, "offset");
     50            if (offsetEl != null) {
     51                Map<String, String> offsetAttributes = readProperties(offsetEl);
     52                OffsetBookmark offset = OffsetBookmark.fromPropertiesMap(offsetAttributes);
     53                tsLayer.getDisplaySettings().setOffsetBookmark(offset);
     54            }
     55        }
     56        Element filtersEl = getFirstElementByTagName(elem, "filters");
     57        if (filtersEl != null) {
     58            ImageryFilterSettings filterSettings = layer.getFilterSettings();
     59            if (filterSettings != null) {
     60                Map<String, String> filtersProps = readProperties(filtersEl);
     61                filterSettings.getProcessors().stream()
     62                        .flatMap(Utils.castToStream(SessionAwareReadApply.class))
     63                        .forEach(proc -> proc.applyFromPropertiesMap(filtersProps));
    5664            }
    5765        }
    5866        return layer;
     67    }
     68
     69    private static Element getFirstElementByTagName(Element el, String name) {
     70        NodeList nl = el.getElementsByTagName(name);
     71        if (nl.getLength() == 0)
     72            return null;
     73        return (Element) nl.item(0);
    5974    }
    6075
Note: See TracChangeset for help on using the changeset viewer.