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 * Decrease zoom. 014 * @since 11950 (extracted from {@link AbstractTileSourceLayer}) 015 */ 016public class DecreaseZoomAction extends AbstractAction { 017 018 private final AbstractTileSourceLayer<?> layer; 019 020 /** 021 * Constructs a new {@code DecreaseZoomAction}. 022 * @param layer imagery layer 023 */ 024 public DecreaseZoomAction(AbstractTileSourceLayer<?> layer) { 025 super(tr("Decrease zoom")); 026 this.layer = layer; 027 setEnabled(!layer.getDisplaySettings().isAutoZoom() && layer.zoomDecreaseAllowed()); 028 } 029 030 @Override 031 public void actionPerformed(ActionEvent ae) { 032 layer.decreaseZoomLevel(); 033 } 034}