001// License: GPL. For details, see LICENSE file. 002package org.openstreetmap.josm.gui.layer.imagery; 003 004import static org.openstreetmap.josm.tools.I18n.tr; 005 006import java.awt.event.ActionEvent; 007 008import javax.swing.AbstractAction; 009 010import org.openstreetmap.josm.gui.layer.AbstractTileSourceLayer; 011 012/** 013 * Change resolution to best zoom level. 014 * @since 11950 (extracted from {@link AbstractTileSourceLayer}) 015 */ 016public class ZoomToBestAction extends AbstractAction { 017 018 private final AbstractTileSourceLayer<?> layer; 019 020 /** 021 * Constructs a new {@code ZoomToBestAction}. 022 * @param layer imagery layer 023 */ 024 public ZoomToBestAction(AbstractTileSourceLayer<?> layer) { 025 super(tr("Change resolution")); 026 this.layer = layer; 027 setEnabled(!layer.getDisplaySettings().isAutoZoom() && layer.getBestZoom() != layer.getZoomLevel()); 028 } 029 030 @Override 031 public void actionPerformed(ActionEvent ae) { 032 layer.setZoomLevel(layer.getBestZoom()); 033 } 034}