Ticket #18160: 18160.2.patch

File 18160.2.patch, 5.0 KB (added by taylor.smock, 5 years ago)

Add checks for layer visibility

  • src/org/openstreetmap/josm/gui/MapView.java

     
    2828import java.util.LinkedHashSet;
    2929import java.util.List;
    3030import java.util.Set;
    31 import java.util.TreeSet;
    3231import java.util.concurrent.CopyOnWriteArrayList;
    3332import java.util.concurrent.atomic.AtomicBoolean;
     33import java.util.stream.Collectors;
    3434
    3535import javax.swing.AbstractButton;
    3636import javax.swing.JComponent;
     
    5050import org.openstreetmap.josm.gui.MapViewState.MapViewRectangle;
    5151import org.openstreetmap.josm.gui.autofilter.AutoFilterManager;
    5252import org.openstreetmap.josm.gui.datatransfer.OsmTransferHandler;
    53 import org.openstreetmap.josm.gui.layer.GpxLayer;
    54 import org.openstreetmap.josm.gui.layer.ImageryLayer;
    5553import org.openstreetmap.josm.gui.layer.Layer;
    5654import org.openstreetmap.josm.gui.layer.LayerManager;
    5755import org.openstreetmap.josm.gui.layer.LayerManager.LayerAddEvent;
     
    6664import org.openstreetmap.josm.gui.layer.MapViewPaintable.PaintableInvalidationEvent;
    6765import org.openstreetmap.josm.gui.layer.MapViewPaintable.PaintableInvalidationListener;
    6866import org.openstreetmap.josm.gui.layer.OsmDataLayer;
    69 import org.openstreetmap.josm.gui.layer.geoimage.GeoImageLayer;
    7067import org.openstreetmap.josm.gui.layer.markerlayer.PlayHeadMarker;
    7168import org.openstreetmap.josm.gui.mappaint.MapPaintStyles;
    7269import org.openstreetmap.josm.gui.mappaint.MapPaintStyles.MapPaintSylesUpdateListener;
     
    818815     * @return A String of sources separated by ';'
    819816     */
    820817    public String getLayerInformationForSourceTag() {
    821         final Set<String> layerInfo = new TreeSet<>();
    822         if (!layerManager.getLayersOfType(GpxLayer.class).isEmpty()) {
    823             // no i18n for international values
    824             layerInfo.add("survey");
    825         }
    826         for (final GeoImageLayer i : layerManager.getLayersOfType(GeoImageLayer.class)) {
    827             if (i.isVisible()) {
    828                 layerInfo.add(i.getName());
    829             }
    830         }
    831         for (final ImageryLayer i : layerManager.getLayersOfType(ImageryLayer.class)) {
    832             if (i.isVisible()) {
    833                 layerInfo.add(i.getInfo().getSourceName());
    834             }
    835         }
     818        final Set<String> layerInfo = layerManager.getLayers().stream()
     819                .filter(layer -> layer.getChangesetSourceTag() != null && !layer.getChangesetSourceTag().trim().isEmpty())
     820                .map(layer -> layer.getChangesetSourceTag().trim()).distinct().collect(Collectors.toSet());
    836821        return Utils.join("; ", layerInfo);
    837822    }
    838823
  • src/org/openstreetmap/josm/gui/layer/GpxLayer.java

     
    473473    public void expertChanged(boolean isExpert) {
    474474        this.isExpertMode = isExpert;
    475475    }
     476
     477    @Override
     478    public String getChangesetSourceTag() {
     479        return "survey";
     480    }
    476481}
  • src/org/openstreetmap/josm/gui/layer/ImageryLayer.java

     
    354354    public String toString() {
    355355        return getClass().getSimpleName() + " [info=" + info + ']';
    356356    }
     357
     358    @Override
     359    public String getChangesetSourceTag() {
     360        if (isVisible())
     361            return getInfo().getSourceName();
     362        return null;
     363    }
    357364}
  • src/org/openstreetmap/josm/gui/layer/Layer.java

     
    674674        return v.getBounds();
    675675    }
    676676
     677    /**
     678     * Get the source for the layer
     679     * @return The string for the changeset source tag or {@code null}
     680     * @since xxx
     681     */
     682    public String getChangesetSourceTag() {
     683        return null;
     684    }
     685
    677686    @Override
    678687    public String toString() {
    679688        return getClass().getSimpleName() + " [name=" + name + ", associatedFile=" + associatedFile + ']';
  • src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java

     
    10101010    public void imageDataUpdated(ImageData data) {
    10111011        updateBufferAndRepaint();
    10121012    }
     1013
     1014    @Override
     1015    public String getChangesetSourceTag() {
     1016        if (isVisible())
     1017            return getName();
     1018        return null;
     1019    }
    10131020}