Changeset 5779 in josm for trunk/src/org


Ignore:
Timestamp:
2013-03-15T17:29:38+01:00 (11 years ago)
Author:
akks
Message:

Allow plugins to replace default tile loader (OsmFileCacheTileLoader)
by calling TMSLayer.setCustomTileLoaderFactory

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

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/bbox/SlippyMapBBoxChooser.java

    r5357 r5779  
    3232import org.openstreetmap.gui.jmapviewer.interfaces.MapMarker;
    3333import org.openstreetmap.gui.jmapviewer.interfaces.TileLoader;
     34import org.openstreetmap.gui.jmapviewer.interfaces.TileLoaderListener;
    3435import org.openstreetmap.gui.jmapviewer.interfaces.TileSource;
    3536import org.openstreetmap.gui.jmapviewer.tilesources.MapQuestOpenAerialTileSource;
     
    185186        super();
    186187        TMSLayer.setMaxWorkers();
    187         cachedLoader = null;
    188         String cachePath = TMSLayer.PROP_TILECACHE_DIR.get();
    189         if (cachePath != null && !cachePath.isEmpty()) {
    190             try {
    191                 cachedLoader = new OsmFileCacheTileLoader(this, new File(cachePath));
    192             } catch (IOException e) {
    193             }
    194         }
     188        cachedLoader = TMSLayer.loaderFactory.makeTileLoader(this);
    195189
    196190        uncachedLoader = new OsmTileLoader(this);
  • trunk/src/org/openstreetmap/josm/gui/layer/TMSLayer.java

    r5391 r5779  
    118118    /*boolean debug = true;*/
    119119
     120    public interface TileLoaderFactory {
     121        OsmTileLoader makeTileLoader(TileLoaderListener listener);
     122    }
     123
    120124    protected MemoryTileCache tileCache;
    121125    protected TileSource tileSource;
    122126    protected OsmTileLoader tileLoader;
    123 
     127   
     128    public static TileLoaderFactory loaderFactory = new TileLoaderFactory() {
     129        @Override
     130        public OsmTileLoader makeTileLoader(TileLoaderListener listener) {
     131            String cachePath = TMSLayer.PROP_TILECACHE_DIR.get();
     132            if (cachePath != null && !cachePath.isEmpty()) {
     133                try {
     134                    return new OsmFileCacheTileLoader(listener, new File(cachePath));
     135                } catch (IOException e) {
     136                }
     137            }
     138            return null;
     139        }
     140    };
     141   
     142    /**
     143    * Plugins that wish to set custom tile loader should call this method
     144    */
     145    public static void setCustomTileLoaderFactory(TileLoaderFactory loaderFactory) {
     146        TMSLayer.loaderFactory = loaderFactory;
     147    }
     148   
    124149    HashSet<Tile> tileRequestsOutstanding = new HashSet<Tile>();
    125150    @Override
     
    380405        tileCache = new MemoryTileCache();
    381406
    382         String cachePath = TMSLayer.PROP_TILECACHE_DIR.get();
    383         tileLoader = null;
    384         if (cachePath != null && !cachePath.isEmpty()) {
    385             try {
    386                 tileLoader = new OsmFileCacheTileLoader(this, new File(cachePath));
    387             } catch (IOException e) {
    388             }
    389         }
     407        tileLoader = loaderFactory.makeTileLoader(this);
    390408        if (tileLoader == null) {
    391409            tileLoader = new OsmTileLoader(this);
Note: See TracChangeset for help on using the changeset viewer.