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.Component; 007import java.awt.event.ActionEvent; 008import java.util.List; 009 010import javax.swing.AbstractAction; 011import javax.swing.JCheckBoxMenuItem; 012 013import org.openstreetmap.josm.gui.layer.AbstractTileSourceLayer; 014import org.openstreetmap.josm.gui.layer.Layer; 015import org.openstreetmap.josm.gui.layer.Layer.LayerAction; 016 017/** 018 * Auto load tiles. 019 * @since 11950 (extracted from {@link AbstractTileSourceLayer}) 020 */ 021public class AutoLoadTilesAction extends AbstractAction implements LayerAction { 022 023 private final AbstractTileSourceLayer<?> layer; 024 025 /** 026 * Constructs a new {@code AutoLoadTilesAction}. 027 * @param layer imagery layer 028 */ 029 public AutoLoadTilesAction(AbstractTileSourceLayer<?> layer) { 030 super(tr("Auto load tiles")); 031 this.layer = layer; 032 } 033 034 @Override 035 public void actionPerformed(ActionEvent ae) { 036 TileSourceDisplaySettings settings = layer.getDisplaySettings(); 037 settings.setAutoLoad(!settings.isAutoLoad()); 038 } 039 040 @Override 041 public Component createMenuComponent() { 042 JCheckBoxMenuItem item = new JCheckBoxMenuItem(this); 043 item.setSelected(layer.getDisplaySettings().isAutoLoad()); 044 return item; 045 } 046 047 @Override 048 public boolean supportLayers(List<Layer> layers) { 049 return AbstractTileSourceLayer.actionSupportLayers(layers); 050 } 051}