Ignore:
Timestamp:
2017-04-17T23:55:53+02:00 (7 years ago)
Author:
Don-vip
Message:

extract actions from AbstractTileSourceLayer to gui.layer.imagery package

Location:
trunk/src/org/openstreetmap/josm/gui/layer
Files:
10 added
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java

    r11947 r11950  
    55
    66import java.awt.Color;
    7 import java.awt.Component;
    87import java.awt.Dimension;
    98import java.awt.Font;
     
    5049import javax.swing.AbstractAction;
    5150import javax.swing.Action;
    52 import javax.swing.JCheckBoxMenuItem;
    5351import javax.swing.JLabel;
    5452import javax.swing.JMenuItem;
     
    9391import org.openstreetmap.josm.gui.MapView;
    9492import org.openstreetmap.josm.gui.NavigatableComponent.ZoomChangeListener;
    95 import org.openstreetmap.josm.gui.PleaseWaitRunnable;
    9693import org.openstreetmap.josm.gui.dialogs.LayerListDialog;
    9794import org.openstreetmap.josm.gui.dialogs.LayerListPopup;
     95import org.openstreetmap.josm.gui.layer.imagery.AutoLoadTilesAction;
     96import org.openstreetmap.josm.gui.layer.imagery.AutoZoomAction;
     97import org.openstreetmap.josm.gui.layer.imagery.DecreaseZoomAction;
     98import org.openstreetmap.josm.gui.layer.imagery.FlushTileCacheAction;
    9899import org.openstreetmap.josm.gui.layer.imagery.ImageryFilterSettings.FilterChangeListener;
     100import org.openstreetmap.josm.gui.layer.imagery.IncreaseZoomAction;
     101import org.openstreetmap.josm.gui.layer.imagery.LoadAllTilesAction;
     102import org.openstreetmap.josm.gui.layer.imagery.LoadErroneousTilesAction;
    99103import org.openstreetmap.josm.gui.layer.imagery.ReprojectionTile;
     104import org.openstreetmap.josm.gui.layer.imagery.ShowErrorsAction;
    100105import org.openstreetmap.josm.gui.layer.imagery.TileAnchor;
    101106import org.openstreetmap.josm.gui.layer.imagery.TileCoordinateConverter;
     
    104109import org.openstreetmap.josm.gui.layer.imagery.TileSourceDisplaySettings.DisplaySettingsChangeEvent;
    105110import org.openstreetmap.josm.gui.layer.imagery.TileSourceDisplaySettings.DisplaySettingsChangeListener;
     111import org.openstreetmap.josm.gui.layer.imagery.ZoomToBestAction;
     112import org.openstreetmap.josm.gui.layer.imagery.ZoomToNativeLevelAction;
    106113import org.openstreetmap.josm.gui.progress.ProgressMonitor;
    107114import org.openstreetmap.josm.gui.util.GuiHelper;
     
    312319     * @see #invalidate() To trigger a repaint of all places where the layer is displayed.
    313320     */
    314     protected void redraw() {
     321    public void redraw() {
    315322        invalidate();
    316323    }
     
    391398     * @return average number of screen pixels per tile pixel
    392399     */
    393     protected double getScaleFactor(int zoom) {
     400    public double getScaleFactor(int zoom) {
    394401        if (coordinateConverter != null) {
    395402            return coordinateConverter.getScaleFactor(zoom);
     
    399406    }
    400407
    401     protected int getBestZoom() {
     408    public int getBestZoom() {
    402409        double factor = getScaleFactor(1); // check the ratio between area of tilesize at zoom 1 to current view
    403410        double result = Math.log(factor)/Math.log(2)/2;
     
    422429    }
    423430
    424     private static boolean actionSupportLayers(List<Layer> layers) {
     431    /**
     432     * Default implementation of {@link org.openstreetmap.josm.gui.layer.Layer.LayerAction#supportLayers(List)}.
     433     * @param layers layers
     434     * @return {@code true} is layers contains only a {@code TMSLayer}
     435     */
     436    public static boolean actionSupportLayers(List<Layer> layers) {
    425437        return layers.size() == 1 && layers.get(0) instanceof TMSLayer;
    426438    }
     
    512524    }
    513525
    514     private class AutoZoomAction extends AbstractAction implements LayerAction {
    515         AutoZoomAction() {
    516             super(tr("Auto zoom"));
    517         }
    518 
    519         @Override
    520         public void actionPerformed(ActionEvent ae) {
    521             getDisplaySettings().setAutoZoom(!getDisplaySettings().isAutoZoom());
    522         }
    523 
    524         @Override
    525         public Component createMenuComponent() {
    526             JCheckBoxMenuItem item = new JCheckBoxMenuItem(this);
    527             item.setSelected(getDisplaySettings().isAutoZoom());
    528             return item;
    529         }
    530 
    531         @Override
    532         public boolean supportLayers(List<Layer> layers) {
    533             return actionSupportLayers(layers);
    534         }
    535     }
    536 
    537     private class AutoLoadTilesAction extends AbstractAction implements LayerAction {
    538         AutoLoadTilesAction() {
    539             super(tr("Auto load tiles"));
    540         }
    541 
    542         @Override
    543         public void actionPerformed(ActionEvent ae) {
    544             getDisplaySettings().setAutoLoad(!getDisplaySettings().isAutoLoad());
    545         }
    546 
    547         @Override
    548         public Component createMenuComponent() {
    549             JCheckBoxMenuItem item = new JCheckBoxMenuItem(this);
    550             item.setSelected(getDisplaySettings().isAutoLoad());
    551             return item;
    552         }
    553 
    554         @Override
    555         public boolean supportLayers(List<Layer> layers) {
    556             return actionSupportLayers(layers);
    557         }
    558     }
    559 
    560     private class ShowErrorsAction extends AbstractAction implements LayerAction {
    561         ShowErrorsAction() {
    562             super(tr("Show errors"));
    563         }
    564 
    565         @Override
    566         public void actionPerformed(ActionEvent ae) {
    567             getDisplaySettings().setShowErrors(!getDisplaySettings().isShowErrors());
    568         }
    569 
    570         @Override
    571         public Component createMenuComponent() {
    572             JCheckBoxMenuItem item = new JCheckBoxMenuItem(this);
    573             item.setSelected(getDisplaySettings().isShowErrors());
    574             return item;
    575         }
    576 
    577         @Override
    578         public boolean supportLayers(List<Layer> layers) {
    579             return actionSupportLayers(layers);
    580         }
    581     }
    582 
    583     private class LoadAllTilesAction extends AbstractAction {
    584         LoadAllTilesAction() {
    585             super(tr("Load all tiles"));
    586         }
    587 
    588         @Override
    589         public void actionPerformed(ActionEvent ae) {
    590             loadAllTiles(true);
    591         }
    592     }
    593 
    594     private class LoadErroneusTilesAction extends AbstractAction {
    595         LoadErroneusTilesAction() {
    596             super(tr("Load all error tiles"));
    597         }
    598 
    599         @Override
    600         public void actionPerformed(ActionEvent ae) {
    601             loadAllErrorTiles(true);
    602         }
    603     }
    604 
    605     private class ZoomToNativeLevelAction extends AbstractAction {
    606         ZoomToNativeLevelAction() {
    607             super(tr("Zoom to native resolution"));
    608         }
    609 
    610         @Override
    611         public void actionPerformed(ActionEvent ae) {
    612             double newFactor = Math.sqrt(getScaleFactor(currentZoomLevel));
    613             Main.map.mapView.zoomToFactor(newFactor);
    614             redraw();
    615         }
    616     }
    617 
    618     private class ZoomToBestAction extends AbstractAction {
    619         ZoomToBestAction() {
    620             super(tr("Change resolution"));
    621             setEnabled(!getDisplaySettings().isAutoZoom() && getBestZoom() != currentZoomLevel);
    622         }
    623 
    624         @Override
    625         public void actionPerformed(ActionEvent ae) {
    626             setZoomLevel(getBestZoom());
    627         }
    628     }
    629 
    630     private class IncreaseZoomAction extends AbstractAction {
    631         IncreaseZoomAction() {
    632             super(tr("Increase zoom"));
    633             setEnabled(!getDisplaySettings().isAutoZoom() && zoomIncreaseAllowed());
    634         }
    635 
    636         @Override
    637         public void actionPerformed(ActionEvent ae) {
    638             increaseZoomLevel();
    639         }
    640     }
    641 
    642     private class DecreaseZoomAction extends AbstractAction {
    643         DecreaseZoomAction() {
    644             super(tr("Decrease zoom"));
    645             setEnabled(!getDisplaySettings().isAutoZoom() && zoomDecreaseAllowed());
    646         }
    647 
    648         @Override
    649         public void actionPerformed(ActionEvent ae) {
    650             decreaseZoomLevel();
    651         }
    652     }
    653 
    654     private class FlushTileCacheAction extends AbstractAction {
    655         FlushTileCacheAction() {
    656             super(tr("Flush tile cache"));
    657         }
    658 
    659         @Override
    660         public void actionPerformed(ActionEvent ae) {
    661             new PleaseWaitRunnable(tr("Flush tile cache")) {
    662                 @Override
    663                 protected void realRun() {
    664                     clearTileCache();
    665                 }
    666 
    667                 @Override
    668                 protected void finish() {
    669                     // empty - flush is instaneus
    670                 }
    671 
    672                 @Override
    673                 protected void cancel() {
    674                     // empty - flush is instaneus
    675                 }
    676             }.run();
    677         }
    678     }
    679 
    680526    /**
    681527     * Simple class to keep clickedTile within hookUpMapView
     
    1028874    }
    1029875
    1030     protected void loadAllTiles(boolean force) {
     876    /**
     877     * Load all visible tiles.
     878     * @param force {@code true} to force loading if auto-load is disabled
     879     * @since 11950
     880     */
     881    public void loadAllTiles(boolean force) {
    1031882        TileSet ts = getVisibleTileSet();
    1032883
     
    1040891    }
    1041892
    1042     protected void loadAllErrorTiles(boolean force) {
     893    /**
     894     * Load all visible tiles in error.
     895     * @param force {@code true} to force loading if auto-load is disabled
     896     * @since 11950
     897     */
     898    public void loadAllErrorTiles(boolean force) {
    1043899        TileSet ts = getVisibleTileSet();
    1044900        ts.loadAllErrorTiles(force);
     
    18011657    public Action[] getCommonEntries() {
    18021658        return new Action[] {
    1803             new AutoLoadTilesAction(),
    1804             new AutoZoomAction(),
    1805             new ShowErrorsAction(),
    1806             new IncreaseZoomAction(),
    1807             new DecreaseZoomAction(),
    1808             new ZoomToBestAction(),
    1809             new ZoomToNativeLevelAction(),
    1810             new FlushTileCacheAction(),
    1811             new LoadErroneusTilesAction(),
    1812             new LoadAllTilesAction()
     1659            new AutoLoadTilesAction(this),
     1660            new AutoZoomAction(this),
     1661            new ShowErrorsAction(this),
     1662            new IncreaseZoomAction(this),
     1663            new DecreaseZoomAction(this),
     1664            new ZoomToBestAction(this),
     1665            new ZoomToNativeLevelAction(this),
     1666            new FlushTileCacheAction(this),
     1667            new LoadErroneousTilesAction(this),
     1668            new LoadAllTilesAction(this)
    18131669        };
    18141670    }
  • trunk/src/org/openstreetmap/josm/gui/layer/WMTSLayer.java

    r11858 r11950  
    6969
    7070    @Override
    71     protected int getBestZoom() {
     71    public int getBestZoom() {
    7272        if (!Main.isDisplayingMapView())
    7373            return 0;
Note: See TracChangeset for help on using the changeset viewer.