Revision 900 org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/provider/tile/FileTileServer.java

View differences:

FileTileServer.java
37 37
* @author Nacho Brodin (nachobrodin@gmail.com)
38 38
*/
39 39
public class FileTileServer implements TileServer {
40
	private CacheStruct                struct      = null;
41
	private Downloader                 downloader  = null;
42
	private DefaultRasterProvider      provider    = null;
43
	private String                     suffix      = "tif";
40
	private CacheStruct                struct         = null;
41
	private Downloader                 downloader     = null;
42
	private DefaultRasterProvider      provider       = null;
43
	private String                     suffix         = "tif";
44
	private boolean                    externalStruct = false;
44 45
	
45 46
	public FileTileServer(DefaultRasterProvider prov) {
46 47
		this.provider = prov;
......
51 52
	 * @see org.gvsig.raster.cache.tile.provider.TileServer#getDownloader()
52 53
	 */
53 54
	public Downloader getDownloader() {
54
		//The downloader is built the first time or if the tile size has changed
55
		if(downloader == null || 
56
			((TileDownloaderForFiles)downloader).getTileSize()[0] != TileCacheLibrary.DEFAULT_TILEWIDTH ||
57
			((TileDownloaderForFiles)downloader).getTileSize()[1] != TileCacheLibrary.DEFAULT_TILEHEIGHT) {
58
			downloader = new TileDownloaderForFiles(provider, getStruct(), TileCacheLibrary.DEFAULT_TILEWIDTH, TileCacheLibrary.DEFAULT_TILEHEIGHT, getFileSuffix());
55
		//The downloader is built the first time or if the structure is assigned from the client. 
56
		boolean firstLoad = (downloader == null);
57
		
58
		if(firstLoad || externalStruct) {
59
			downloader = new TileDownloaderForFiles(provider, getStruct(), 
60
					getStruct().getTileSizeByLevel(0)[0], 
61
					getStruct().getTileSizeByLevel(0)[1], 
62
					getFileSuffix());
63
			externalStruct = false;
64
			return downloader;
59 65
		}
66
		
67
		//If the tile size has changed. 
68
		if(((TileDownloaderForFiles)downloader).getTileSize()[0] != TileCacheLibrary.DEFAULT_TILEWIDTH ||
69
		   ((TileDownloaderForFiles)downloader).getTileSize()[1] != TileCacheLibrary.DEFAULT_TILEHEIGHT) {
70
			downloader = new TileDownloaderForFiles(provider, getStruct(), 
71
					TileCacheLibrary.DEFAULT_TILEWIDTH, 
72
					TileCacheLibrary.DEFAULT_TILEHEIGHT, 
73
					getFileSuffix());
74
		}
60 75
		return downloader;
61 76
	}
62 77

  
......
109 124
						struct.getTileSizeByLevel(0)[0], 
110 125
						struct.getTileSizeByLevel(0)[1], 
111 126
						getFileSuffix());
127
				externalStruct = true;
112 128
			}
113 129
		}
114 130
	}

Also available in: Unified diff