public void setBackingUrl(String aBackingUrl) { String oldBackingUrl = getBackingUrl(); if (oldBackingUrl == null) { oldBackingUrl = ""; } if (aBackingUrl == null) { aBackingUrl = ""; } if (!oldBackingUrl.equals(aBackingUrl)) { removeLayersListeners(); MapContent generalMapContext = getGeneralMapContext(); assert cache instanceof AsyncMapTilesCache; ((AsyncMapTilesCache) cache).shutdown(); if (aBackingUrl.isEmpty()) { cache = new AsyncMapTilesCache(generalMapContext, cacheLock, cartesian2Screen); } else { cache = GeoPaneUtils.createWebTilesCache( generalMapContext, cacheLock, cartesian2Screen, aBackingUrl); } cache.setBackground(getBackground()); ((AsyncMapTilesCache) cache).addRenderingTaskListener(new TileRenderedRepainter()); cache.scaleChanged(); lightweightCache.scaleChanged(); addLayersListeners(); } repaint(); }