001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.data.imagery;
003
004import org.openstreetmap.gui.jmapviewer.JMapViewer;
005import org.openstreetmap.gui.jmapviewer.tilesources.TemplatedTMSTileSource;
006import org.openstreetmap.gui.jmapviewer.tilesources.TileSourceInfo;
007import org.openstreetmap.josm.gui.layer.TMSLayer;
008
009/**
010 * JOSM wrapper class that uses min/max zoom settings from imagery settings instead of JMapViewer defaults
011 * @since 15456
012 */
013public class JosmTemplatedTMSTileSource extends TemplatedTMSTileSource {
014
015    /**
016     * Creates TMS tilesource based on tilesource info
017     * @param info tile source info
018     */
019    public JosmTemplatedTMSTileSource(TileSourceInfo info) {
020        super(info);
021    }
022
023    @Override
024    public int getMinZoom() {
025        return (minZoom == 0) ? TMSLayer.PROP_MIN_ZOOM_LVL.get() : minZoom;
026    }
027
028    // return no more, than JMapViewer supports
029    @Override
030    public int getMaxZoom() {
031        return Math.min((maxZoom == 0) ? TMSLayer.PROP_MAX_ZOOM_LVL.get() : maxZoom, JMapViewer.MAX_ZOOM);
032    }
033}