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.PleaseWaitRunnable; 011import org.openstreetmap.josm.gui.layer.AbstractTileSourceLayer; 012 013/** 014 * Flush tile cache. 015 * @since 11950 (extracted from {@link AbstractTileSourceLayer}) 016 */ 017public class FlushTileCacheAction extends AbstractAction { 018 019 private final AbstractTileSourceLayer<?> layer; 020 021 /** 022 * Constructs a new {@code FlushTileCacheAction}. 023 * @param layer imagery layer 024 */ 025 public FlushTileCacheAction(AbstractTileSourceLayer<?> layer) { 026 super(tr("Flush tile cache")); 027 this.layer = layer; 028 } 029 030 @Override 031 public void actionPerformed(ActionEvent ae) { 032 new PleaseWaitRunnable(tr("Flush tile cache")) { 033 @Override 034 protected void realRun() { 035 layer.clearTileCache(); 036 layer.invalidate(); 037 } 038 039 @Override 040 protected void finish() { 041 // empty - flush is instantaneous 042 } 043 044 @Override 045 protected void cancel() { 046 // empty - flush is instantaneous 047 } 048 }.run(); 049 } 050}