Changeset 17659 in josm


Ignore:
Timestamp:
2021-03-24T23:04:28+01:00 (3 years ago)
Author:
simon04
Message:

fix #20233 - Session: export/import layer color

Location:
trunk
Files:
6 edited

Legend:

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

    r16865 r17659  
    44import static org.openstreetmap.josm.tools.I18n.tr;
    55
     6import java.awt.Color;
    67import java.awt.GraphicsEnvironment;
    78import java.io.BufferedInputStream;
     
    4647import org.openstreetmap.josm.io.IllegalDataException;
    4748import org.openstreetmap.josm.tools.CheckParameterUtil;
     49import org.openstreetmap.josm.tools.ColorHelper;
    4850import org.openstreetmap.josm.tools.JosmRuntimeException;
    4951import org.openstreetmap.josm.tools.Logging;
     
    618620                }
    619621            }
     622            String colorString = el.getAttribute("color");
     623            if (colorString != null) {
     624                try {
     625                    Color color = ColorHelper.html2color(colorString);
     626                    layer.setColor(color);
     627                } catch (RuntimeException ex) {
     628                    Logging.warn("Cannot parse color " + colorString);
     629                }
     630            }
    620631            layer.setName(names.get(entry.getKey()));
    621632            layers.add(layer);
  • trunk/src/org/openstreetmap/josm/io/session/SessionWriter.java

    r17658 r17659  
    4444import org.openstreetmap.josm.gui.layer.markerlayer.MarkerLayer;
    4545import org.openstreetmap.josm.gui.preferences.projection.ProjectionPreference;
     46import org.openstreetmap.josm.tools.ColorHelper;
    4647import org.openstreetmap.josm.tools.JosmRuntimeException;
    4748import org.openstreetmap.josm.tools.Logging;
     
    239240            if (!Utils.equalsEpsilon(layer.getOpacity(), 1.0)) {
    240241                el.setAttribute("opacity", Double.toString(layer.getOpacity()));
     242            }
     243            if (layer.getColor() != null) {
     244                el.setAttribute("color", ColorHelper.color2html(layer.getColor()));
    241245            }
    242246            Set<Layer> deps = dependencies.get(layer);
  • trunk/test/data/sessions/gpx_markers.jos

    r17658 r17659  
    1616            <file>layers/01/data.gpx</file>
    1717        </layer>
    18         <layer index="2" name="Marker layer name" type="markers" version="0.1" visible="true">
     18        <layer color="#34567812" index="2" name="Marker layer name" opacity="0.5" type="markers" version="0.1" visible="true">
    1919            <file>layers/02/data.gpx</file>
    2020        </layer>
  • trunk/test/unit/org/openstreetmap/josm/io/session/SessionReaderTest.java

    r17275 r17659  
    66import static org.junit.jupiter.api.Assertions.assertTrue;
    77
     8import java.awt.Color;
    89import java.io.ByteArrayInputStream;
    910import java.io.File;
     
    119120        assertEquals(gpx.getName(), "GPX layer name");
    120121        assertEquals(marker.getName(), "Marker layer name");
     122        assertEquals(1.0, gpx.getOpacity());
     123        assertEquals(0.5, marker.getOpacity());
     124        assertEquals(new Color(0x204060), gpx.getColor());
     125        assertEquals(new Color(0x12345678, true), marker.getColor());
    121126    }
    122127
  • trunk/test/unit/org/openstreetmap/josm/io/session/SessionWriterTest.java

    r17658 r17659  
    22package org.openstreetmap.josm.io.session;
    33
     4import java.awt.Color;
    45import java.io.File;
    56import java.io.IOException;
     
    154155
    155156    private MarkerLayer createMarkerLayer(GpxLayer gpx) {
    156         return new MarkerLayer(gpx.data, "Marker layer name", gpx.getAssociatedFile(), gpx);
     157        MarkerLayer layer = new MarkerLayer(gpx.data, "Marker layer name", gpx.getAssociatedFile(), gpx);
     158        layer.setOpacity(0.5);
     159        layer.setColor(new Color(0x12345678, true));
     160        return layer;
    157161    }
    158162
Note: See TracChangeset for help on using the changeset viewer.