Revision 2241

View differences:

org.gvsig.raster.tools/branches/org.gvsig.raster.tools_dataaccess_refactoring/org.gvsig.raster.tools.app.basic/src/main/java/org/gvsig/raster/tools/app/basic/tool/viewexport/Export.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22 1
package org.gvsig.raster.tools.app.basic.tool.viewexport;
23 2

  
24 3
import java.awt.Component;
......
34 13
import javax.swing.filechooser.FileFilter;
35 14

  
36 15
import org.gvsig.andami.PluginServices;
37
import org.gvsig.andami.messages.NotificationManager;
38 16
import org.gvsig.andami.plugins.Extension;
39 17
import org.gvsig.andami.ui.mdiManager.IWindow;
40 18
import org.gvsig.app.project.documents.view.gui.AbstractViewPanel;
......
48 26
import org.gvsig.fmap.dal.coverage.store.DataServerWriter;
49 27
import org.gvsig.fmap.dal.coverage.store.RasterWriter;
50 28
import org.gvsig.fmap.mapcontext.layers.FLayers;
29
import org.slf4j.Logger;
30
import org.slf4j.LoggerFactory;
51 31

  
52 32
import com.sun.jimi.core.Jimi;
53 33
import com.sun.jimi.core.JimiException;
54 34

  
55 35

  
56 36
/**
57
 * Extensi?n para exportar en algunos formatos raster la vista actual.
58
 *
59
 * @author Fernando Gonz?lez Cort?s
37
 * Plugin to export the view to image
60 38
 */
61 39
public class Export extends Extension {
62
	private String lastPath = null;
63
	private Hashtable<String, MyFileFilter> cmsExtensionsSupported = null;
40
	private Logger                          log                     = LoggerFactory.getLogger(Export.class);
41
	private String                          lastPath                = null;
42
	private Hashtable<String, MyFileFilter> cmsExtensionsSupported  = null;
64 43
	private Hashtable<String, MyFileFilter> jimiExtensionsSupported = null;
65 44

  
66
	/**
67
	 * @see org.gvsig.andami.plugins.IExtension#isEnabled()
68
	 */
69 45
	public boolean isEnabled() {
70 46
		IWindow f = PluginServices.getMDIManager().getActiveWindow();
71 47

  
......
82 58
		return false;
83 59
	}
84 60

  
85
	/**
86
	 * @see com.iver.mdiApp.plugins.IExtension#isVisible()
87
	 */
88 61
	public boolean isVisible() {
89 62
		IWindow f = PluginServices.getMDIManager().getActiveWindow();
90 63
		if (f == null) {
......
94 67
		return (f instanceof AbstractViewPanel);
95 68
	}
96 69

  
97
	/**
98
	 * @see org.gvsig.andami.plugins.IExtension#initialize()
99
	 */
100 70
	public void initialize() {
101 71
	}
102 72

  
103
	/* (non-Javadoc)
104
	 * @see com.iver.andami.plugins.Extension#postInitialize()
105
	 */
106 73
	public void postInitialize() {
107 74
		cmsExtensionsSupported = new Hashtable<String, MyFileFilter>();
108 75
		jimiExtensionsSupported = new Hashtable<String, MyFileFilter>();
......
116 83
				PluginServices.getText(this, "tif"), "cms"));
117 84
	}
118 85

  
119
	public static boolean saveImageCMS(File fileDst,BufferedImage srcImage) throws IOException, NotSupportedExtensionException, RasterDriverException {
86
	public static boolean saveImageCMS(File fileDst,BufferedImage srcImage) throws RasterDriverException, IOException   {
120 87
		RasterManager manager = (RasterManager)RasterLocator.getManager();
121 88
		DataServerWriter data = new RasterizerImage(srcImage);
122 89
		RasterWriter writer = null;
123 90
		try {
91
			/*DataServerExplorerParameters eparams = DALLocator.getDataManager().createServerExplorerParameters("FilesystemExplorer");
92
			eparams.setDynValue("initialpath", fileDst.getAbsolutePath());
93
			DataServerExplorer serverExplorer = DALLocator.getDataManager().openServerExplorer(eparams.getExplorerName(), eparams);
94
			NewRasterStoreParameters sparams = (NewRasterStoreParameters)serverExplorer.getAddParameters("Gdal Store");
95
			sparams.setDataServer((DataServerWriter)processIncrement);
96
			sparams.setDestination(path, file);
97
			sparams.setBuffer(buffer);
98
			sparams.setColorInterpretation(new String[]{ColorInterpretation.GRAY_BAND});
99
			sparams.setWktProjection(dstoreCopy.getWktProjection());
100
			sparams.setBand(i);
101
			sparams.setAffineTransform(affineTransform);
102
			sparams.setDriverParams(params);
103
			serverExplorer.add(provider, sparams, true);*/
104
			
124 105
			Params params = manager.createWriter(fileDst.getAbsolutePath()).getParams();
125 106
			params.changeParamValue("blocksize", "7"); //posici?n 7 del array -> 512
126 107
			params.changeParamValue("tfw", "false");
......
128 109
			writer = manager.createWriter(data, 
129 110
											fileDst.getAbsolutePath(),
130 111
											3,
131
											new AffineTransform(),
112
											new AffineTransform(1, 0, 0, -1, 0, 0),
132 113
											srcImage.getWidth(), 
133 114
											srcImage.getHeight(), 
134 115
											Buffer.TYPE_IMAGE,
......
217 198
				try {
218 199
					saveImageCMS(f, tempImage);
219 200
				} catch (IOException e) {
220
					NotificationManager.addError("Error exportando la imagen", e);
221
				} catch (NotSupportedExtensionException e) {
222
					NotificationManager.addError("Error exportando la imagen: formato no soportado", e);
201
					log.debug("Error exportando la imagen", e);
223 202
				} catch (RasterDriverException e) {
224
					NotificationManager.addError("Error exportando la imagen", e);
203
					log.debug("Error exportando la imagen", e);
225 204
				}
226 205
			}else if (filter.getInfo().equalsIgnoreCase("jimi")) {
227 206
				try {
228 207
					saveImageJimi(f, tempImage);
229 208
				} catch (Exception e) {
230
					NotificationManager.addError("Error exportando la imagen", e);
209
					log.debug("Error exportando la imagen", e);
231 210
				}
232 211

  
233 212
			}
org.gvsig.raster.tools/branches/org.gvsig.raster.tools_dataaccess_refactoring/org.gvsig.raster.tools.app.basic/src/main/java/org/gvsig/raster/tools/app/basic/raster/process/FilterProcess.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
*
3
* Copyright (C) 2007-2008 Infrastructures and Transports Department
4
* of the Valencian Government (CIT)
5
* 
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version 2
9
* of the License, or (at your option) any later version.
10
* 
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
* GNU General Public License for more details.
15
* 
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
19
* MA  02110-1301, USA.
20
* 
21
*/
22 1
package org.gvsig.raster.tools.app.basic.raster.process;
23 2

  
24 3
import java.io.IOException;
......
67 46
	private FLyrRaster               lyr              = null;
68 47
	private RasterManager            rManager         = RasterLocator.getManager();
69 48

  
70
	/*
71
	 * (non-Javadoc)
72
	 * @see org.gvsig.rastertools.RasterProcess#init()
73
	 */
74 49
	@SuppressWarnings("unchecked")
75 50
	public void init() {
76 51
		filename = getStringParam("filename");
......
120 95
		return colorInterpretation;
121 96
	}
122 97
	
123
	/*
124
	 * (non-Javadoc)
125
	 * @see org.gvsig.rastertools.RasterProcess#process()
126
	 */
127 98
	public void process() throws ProcessInterruptedException, ProcessException {
128 99
		DataServerWriter writerBufferServer = null;
129 100
		if(lyr != null)
......
318 289
		filterList.resetPercent();
319 290
	}
320 291

  
321
	/*
322
	 * (non-Javadoc)
323
	 * @see org.gvsig.gui.beans.incrementabletask.IIncrementable#getPercent()
324
	 */
325 292
	public int getPercent() {
326 293
		if (rasterFilterList == null)
327 294
			return 0;
......
335 302
		return geoRasterWriter.getPercent();
336 303
	}
337 304

  
338
	/*
339
	 * (non-Javadoc)
340
	 * @see org.gvsig.gui.beans.incrementabletask.IIncrementable#getTitle()
341
	 */
342 305
	public String getTitle() {
343 306
		return PluginServices.getText(this, "aplicando_filtros");
344 307
	}
345 308
	
346
	/*
347
	 * (non-Javadoc)
348
	 * @see org.gvsig.raster.tools.app.basic.raster.process.RasterProcess#dispose()
349
	 */
350 309
	public void dispose() {
351 310
		rasterDataSource = null;
352 311
		if(listFilterUsed != null) {
......
358 317
		lyr              = null;
359 318
	}
360 319
	
361
	/*
362
	 * (non-Javadoc)
363
	 * @see java.lang.Object#finalize()
364
	 */
365 320
	@Override
366 321
	protected void finalize() throws Throwable {
367 322
		dispose();
org.gvsig.raster/branches/org.gvsig.raster_dataaccess_refactoring/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/buffer/DefaultRasterQuery.java
46 46
	public static final int  TYPE_TILED                 = 8;
47 47
	public static final int  TYPE_ONE_TILE              = 9;
48 48

  
49
	private int              type                       = -1;
49
	private int              type                       = TYPE_ENTIRE;
50 50
	/*
51 51
	 * Request in pixels
52 52
	 */
......
917 917
		 this.bufferForProviders = buffer;
918 918
	 }
919 919

  
920
	 /**
921
	  * Buffer without adjust to the source limits. This is useful for
922
	  * request with shift. Normally the result will have frames with nodata
923
	  * values
924
	  * @return
925
	  */
926
	 /*public Buffer getBufferWithoutAdjust() {
927
		 return bufferWithoutAdjust;
928
	 }*/
929

  
930
	 /**
931
	  * Buffer without adjust to the source limits. This is useful for
932
	  * request with shift. Normally the result will have frames with nodata
933
	  * values
934
	  */
935
	 /*public void setBufferWithoutAdjust(Buffer buffer) {
936
		 this.bufferWithoutAdjust = buffer;
937
	 }*/
938

  
939 920
	 public double[] getStep() {
940 921
		 return step;
941 922
	 }
org.gvsig.raster/branches/org.gvsig.raster_dataaccess_refactoring/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/buffer/SpiRasterQuery.java
42 42
	public Rectangle getAdjustedRequestPxWindow();
43 43
	
44 44
	/**
45
	 * Gets the window of the request in pixel coordinates
46
	 */
47
	 public Rectangle getRequestPxWindow();
48
	
49
	/**
50
	  * Gets a bounding box of a request in world coordinates without adjust to the layer limits.
51
	  */
52
	 public Extent getRequestBoundingBox();
53
	
54
	/**
45 55
	 * Gets a bounding box of a request in world coordinates adjusted to the bounding box of the source.
46 56
	 */
47 57
	public Extent getAdjustedRequestBoundingBox();
58
	
59
	public int getBufWidth();
48 60

  
49
	
61
	public int getBufHeight();
62

  
50 63
	public int getAdjustedBufWidth();
51 64

  
52 65
	public int getAdjustedBufHeight();
......
60 73
	public int getTileCol();
61 74

  
62 75
	public int getResolutionLevel();
76
	
63 77
	/**
64 78
	 * Gets the task status
65 79
	 */
org.gvsig.raster/branches/org.gvsig.raster_dataaccess_refactoring/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/provider/tile/BaseTileDownloader.java
22 22
package org.gvsig.raster.impl.provider.tile;
23 23

  
24 24
import java.awt.Graphics;
25
import java.awt.Rectangle;
26 25
import java.awt.color.ColorSpace;
27 26
import java.awt.geom.AffineTransform;
28 27
import java.awt.image.BufferedImage;
......
33 32
import org.gvsig.fmap.dal.coverage.RasterLocator;
34 33
import org.gvsig.fmap.dal.coverage.RasterManager;
35 34
import org.gvsig.fmap.dal.coverage.dataset.Buffer;
35
import org.gvsig.fmap.dal.coverage.dataset.BufferParam;
36 36
import org.gvsig.fmap.dal.coverage.datastruct.BandList;
37 37
import org.gvsig.fmap.dal.coverage.datastruct.DatasetBand;
38 38
import org.gvsig.fmap.dal.coverage.datastruct.Extent;
39 39
import org.gvsig.fmap.dal.coverage.datastruct.NoData;
40 40
import org.gvsig.fmap.dal.coverage.datastruct.Params;
41 41
import org.gvsig.fmap.dal.coverage.exception.BandNotFoundInListException;
42
import org.gvsig.fmap.dal.coverage.exception.BufferCreationException;
42 43
import org.gvsig.fmap.dal.coverage.exception.NotSupportedExtensionException;
43 44
import org.gvsig.fmap.dal.coverage.exception.ProcessInterruptedException;
44 45
import org.gvsig.fmap.dal.coverage.exception.QueryException;
......
60 61
import org.gvsig.raster.impl.provider.RasterProvider;
61 62
import org.gvsig.raster.impl.store.DefaultRasterStore;
62 63
import org.gvsig.raster.util.DefaultProviderServices;
64
import org.gvsig.tools.locator.LocatorException;
65
import org.slf4j.Logger;
66
import org.slf4j.LoggerFactory;
63 67

  
64 68
/** 
65 69
 * Base class for downloaders  
66 70
 * @author Nacho Brodin (nachobrodin@gmail.com)
67 71
 */
68 72
public abstract class BaseTileDownloader implements Downloader {
73
	private Logger                          log               = LoggerFactory.getLogger(BaseTileDownloader.class);
69 74
	protected int                           tilePxWidth       = 0;
70 75
	protected int                           tilePxHeight      = 0;
71
	protected RasterDataStore               store              = null;
76
	protected RasterDataStore               store             = null;
72 77
	protected byte                          byteNoData        = (byte)0x00;
73 78
	protected short                         shortNoData       = Short.MIN_VALUE;
74 79
	protected int                           intNoData         = Integer.MIN_VALUE;
......
109 114
		Buffer buf = RasterDefaultImplLibrary.defaultImages.get(key);
110 115
		Buffer alpha = RasterDefaultImplLibrary.defaultImages.get(key + "_Alpha");
111 116
		if(buf == null) {
112
			buf = RasterLocator.getManager().createBuffer(Buffer.TYPE_BYTE, w, h, 3, true);
113
			alpha = RasterLocator.getManager().createBuffer(Buffer.TYPE_BYTE, w, h, 1, true);
117
			try {
118
				BufferParam par = RasterLocator.getManager().getBufferFactory().createBufferParams(w, h, 3, Buffer.TYPE_BYTE, true);
119
				buf = RasterLocator.getManager().getBufferFactory().createBuffer(par);
120

  
121
				BufferParam parAlpha = RasterLocator.getManager().getBufferFactory().createBufferParams(w, h, 1, Buffer.TYPE_BYTE, true);
122
				alpha = RasterLocator.getManager().getBufferFactory().createBuffer(parAlpha);
123
			} catch (LocatorException e) {
124
				log.debug("Error creating buffers ", e);
125
			} catch (BufferCreationException e) {
126
				log.debug("Error creating buffers ", e);
127
			}
128

  
114 129
			byte[] background = new byte[]{-1, -1, -1};
115 130
			for (int i = 0; i < buf.getHeight(); i++)
116 131
				for (int j = 0; j < buf.getWidth(); j++) {
......
176 191
		}
177 192
		
178 193
		BandList bandList = (BandList)tile.getDownloaderParams("BandList");
179
		/*for (int j = 0; j < bandList.getBandCount(); j++) {
180
			bandList.getBand(j).setFileName(tile.getFile().getAbsolutePath());
181
		}
182 194
		
183
		int mallocNBands = 0;
184
		if(bandList.getDrawableBands() != null)
185
			mallocNBands = bandList.getDrawableBands().length;
186
		else
187
			mallocNBands = bandList.getDrawableBandsCount();*/
188
		
189 195
		try {
190 196
			DefaultRasterStore tileStore = new DefaultRasterStore();
191 197
			AbstractRasterProvider tileProvider = DefaultProviderServices.loadProvider(tile.getFile());
192 198
			tileStore.setProvider(tileProvider);
193 199
			this.tilePxWidth = tile.getWidthPx();
194 200
			this.tilePxHeight = tile.getHeightPx();
195
			//int mallocNBands = prov.getDataType()[0] == Buffer.TYPE_BYTE ? provider.getBandCount() - 1 : provider.getBandCount();
196
			//Buffer buf = DefaultRasterManager.getInstance().createMemoryBuffer(store.getDataType()[0], this.tilePxWidth, this.tilePxHeight, mallocNBands, true);
197
			//Buffer transparency = DefaultRasterManager.getInstance().createMemoryBuffer(store.getDataType()[0], this.tilePxWidth, this.tilePxHeight, 1, true);
198 201
			
199
			//buf = provider.getWindow((int)0, (int)0, createBandListFromProvider(provider), buf);
200
			
201 202
			RasterQuery q = RasterLocator.getManager().createQuery();
202
			
203
			q.setAreaOfInterest(new Rectangle((int)0, (int)0, this.tilePxWidth, this.tilePxHeight));
204
			q.setDrawableBands(bandList.getDrawableBands());//;.setBandList(bandList);
203
			q.setDrawableBands(bandList.getDrawableBands());
205 204
			Buffer buf = tileStore.query(q);
206 205
			
207 206
			if(tileStore.getTransparency().getAlphaBandNumber() >= 0) {
208 207
				//Lee la banda de transparencia para eliminar la zona del tile que est? fuera de la imagen
209
				//BandList newBandList = new BandListImpl(tile.getFile().getAbsolutePath(), tileStore.getBandCount(), tileStore.getDataType()[0]);
210
				//newBandList.clearDrawableBands();
211
				//newBandList.addDrawableBand(0, tileStore.getBandCount() - 1);
212
				
213 208
				q = RasterLocator.getManager().createQuery();
214
				q.setAreaOfInterest(new Rectangle((int)0, (int)0, this.tilePxWidth, this.tilePxHeight));
215 209
				q.setDrawableBands(new int[]{tileStore.getBandCount() - 1});//.setBandList(newBandList);
216 210
				Buffer transparency = tileStore.query(q);
217 211
				
org.gvsig.raster/branches/org.gvsig.raster_dataaccess_refactoring/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/store/DefaultStoreFactory.java
24 24
import org.gvsig.fmap.dal.DataParameters;
25 25
import org.gvsig.fmap.dal.DataStore;
26 26
import org.gvsig.fmap.dal.DataStoreFactory;
27
import org.gvsig.fmap.dal.coverage.store.parameter.RemoteStoreParameters;
28 27
import org.gvsig.fmap.dal.exception.InitializeException;
29 28

  
30 29
/**
......
35 34
public class DefaultStoreFactory implements DataStoreFactory {
36 35
	private DataParameters  parameters = null;
37 36
	
38
	/*
39
	 * (non-Javadoc)
40
	 * @see org.gvsig.fmap.dal.DataStoreFactory#createStore()
41
	 */
42 37
	public DataStore createStore() throws InitializeException {
43 38
		if(parameters == null)
44 39
			return null;
......
46 41
		//DataManagerProviderServices dataManager = (DataManagerProviderServices)DALLocator.getDataManager();
47 42
		
48 43
		//Servicio remoto
49
		if(	parameters instanceof RemoteStoreParameters) {
50
			/*DefaultRemoteRasterStore store = new DefaultRemoteRasterStore();
51
			
52
			DefaultRasterProvider provider = null;
53
			try {
54
				provider = (DefaultRasterProvider)dataManager.createProvider(store, (DataStoreParameters)parameters);
55
			} catch (ProviderNotRegisteredException e) {
56
				throw new InitializeException("Provider not register error", e);
57
			}
58
			store.setProvider((RemoteRasterProvider)provider);
59
			return store;*/
44
		/*if(	parameters instanceof RemoteStoreParameters) {
60 45
			return new DefaultRemoteRasterStore();
61
		} 
46
		} */
62 47
		
63
		//Fichero
64
 		/*RasterManager manager = (DefaultRasterManager)RasterLocator.getManager();
65
		try {
66
			return manager.open((DataStoreParameters)parameters);
67
		} catch (NotSupportedExtensionException e) {
68
			throw new InitializeException(e);
69
		} catch (RasterDriverException e) {
70
			throw new InitializeException(e);
71
		}*/
72 48
		return new DefaultRasterStore();
73 49
	}
74 50

  
75
	/*
76
	 * (non-Javadoc)
77
	 * @see org.gvsig.fmap.dal.DataStoreFactory#setParameters(org.gvsig.fmap.dal.DataParameters)
78
	 */
79 51
	public void setParameters(DataParameters parameters) {
80 52
		this.parameters = parameters;
81 53
	}
org.gvsig.raster/branches/org.gvsig.raster_dataaccess_refactoring/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/store/AbstractRasterDataStore.java
181 181
		Buffer buf = null;
182 182
		
183 183
		if(q.isSupersamplingOptionActive() && q.isSupersamplingTheRequest()) {
184
			//TODO: Sin probar
184 185
			Supersampling supersampling = new Supersampling(q, this);
185 186
			buf = supersampling.query(provider);
186 187
		} else if(q.requestHasShift()) {
188
			//TODO: Sin probar
187 189
			FramedBufferResampling framedBufferResampling = new FramedBufferResampling(q, this);
188 190
			buf = framedBufferResampling.query(provider);			
189 191
		} else {
org.gvsig.raster.cache/trunk/org.gvsig.raster.cache/org.gvsig.raster.cache.lib.impl/src/main/java/org/gvsig/raster/cache/tile/impl/layer/TiledLayerImpl.java
139 139
			null;
140 140
	}
141 141
	
142
	/*
143
	 * (non-Javadoc)
144
	 * @see org.gvsig.raster.cache.tile.layer.TiledLayer#getTiles(java.util.ArrayList, org.gvsig.raster.cache.tile.provider.TileListener)
145
	 */
146 142
	public void getTiles(List<Tile> tiles, TileListener listener, TaskStatus status) throws TileGettingException {
147 143
		//If a tile is in memory or in disk then this will be returned 
148 144
		//else this will be gotten from the provider
......
209 205
		tileCache.saveSize();
210 206
	}
211 207

  
212
	/*
213
	 * (non-Javadoc)
214
	 * @see org.gvsig.raster.cache.tile.layer.TiledLayer#getBaseLayerDirectory()
215
	 */
216 208
	public String getBaseLayerDirectory() {
217 209
		CacheStruct struct = provider.getStruct();
218 210
		int maxLevel = struct.getNumberOfLevels() - 1;
......
252 244
		return pathToDirLayer;
253 245
	}
254 246
	
255
	/*
256
	 * (non-Javadoc)
257
	 * @see org.gvsig.raster.cache.tile.layer.TiledLayer#getID()
258
	 */
259 247
	public String getID() {
260 248
		if(idLayer == null)
261 249
			getBaseLayerDirectory();
262 250
		return idLayer;
263 251
	}
264 252
	
265
	/*
266
	 * (non-Javadoc)
267
	 * @see org.gvsig.raster.cache.tile.layer.TiledLayer#delete()
268
	 */
269 253
	public long delete() {
270 254
		File f = new File(getBaseLayerDirectory());
271 255
		if(f.exists() && f.isDirectory()) {
org.gvsig.raster.wms/branches/org.gvsig.raster.wms_dataaccess_refactoring/org.gvsig.raster.wms.app.wmsclient/src/main/java/org/gvsig/raster/wms/app/wmsclient/layer/FLyrWMS.java
56 56
import org.gvsig.fmap.dal.coverage.datastruct.ViewPortData;
57 57
import org.gvsig.fmap.dal.coverage.exception.FilePaletteException;
58 58
import org.gvsig.fmap.dal.coverage.exception.InfoByPointException;
59
import org.gvsig.fmap.dal.coverage.exception.InvalidSetViewException;
60 59
import org.gvsig.fmap.dal.coverage.exception.ProcessInterruptedException;
60
import org.gvsig.fmap.dal.coverage.exception.QueryException;
61 61
import org.gvsig.fmap.dal.coverage.exception.RasterDriverException;
62
import org.gvsig.fmap.dal.coverage.exception.RemoteServiceException;
63 62
import org.gvsig.fmap.dal.coverage.grid.RasterFilter;
64 63
import org.gvsig.fmap.dal.coverage.store.RasterDataStore;
65 64
import org.gvsig.fmap.dal.coverage.store.parameter.RasterDataParameters;
......
416 415
			return;
417 416
		}
418 417

  
419
		try {
418
		//try {
420 419
			
421 420
			Rectangle2D extent = new Rectangle2D.Double();
422 421
			Rectangle2D.Double vpExtent = this.getRectable2DFromEnvelope(vpEnv);
......
453 452
					getRender().drawTiledService(g, vp2, vp.getImageSize(), taskStatus);
454 453
				}
455 454
				//this.updateDrawVersion();
456
			} catch (RasterDriverException e) {
455
			
456
			} catch (ProcessInterruptedException e) {
457
			} catch (QueryException e) {
457 458
				setAvailable(false);
458 459
				JOptionPane.showMessageDialog(null, "Problems drawing this layer:" + e.getMessage(), Messages.getText("Error"), JOptionPane.ERROR_MESSAGE);
459 460
				logger.info("Problems drawing this layer:" + e.getMessage(), e);
460
			} catch (InvalidSetViewException e) {
461
				throw new RemoteServiceException("Problems drawing this layer: " + e.getMessage(), e);
462
			} catch (ProcessInterruptedException e) {
463 461
			} finally {
464 462
				taskStatus.terminate();				
465 463
			}
466 464

  
467
		} catch (RemoteServiceException e) {
465
		/*} catch (RemoteServiceException e) {
468 466
			if (!taskStatus.isCancellationRequested()) {
469 467
				if (callCount < MAX_RETRY_TIMES) {
470 468
					logger.warn("\n[ FLyrWMS.drawFixedSize() ]  Failed in trying " + callCount + "/" + MAX_RETRY_TIMES + ")\n"); // mess code
......
476 474
					logger.error("Server error:" + e.getMessage(), e);
477 475
				}
478 476
			}
479
		}
477
		}*/
480 478
		callCount--;
481 479
		return;
482 480
	}
org.gvsig.raster.wms/branches/org.gvsig.raster.wms_dataaccess_refactoring/org.gvsig.raster.wms.io/src/main/java/org/gvsig/raster/wms/io/downloader/TileDownloaderForWMS.java
28 28
import org.cresques.cts.IProjection;
29 29
import org.gvsig.fmap.dal.coverage.RasterLocator;
30 30
import org.gvsig.fmap.dal.coverage.dataset.Buffer;
31
import org.gvsig.fmap.dal.coverage.datastruct.BandList;
32 31
import org.gvsig.fmap.dal.coverage.datastruct.Extent;
33 32
import org.gvsig.fmap.dal.coverage.exception.NotSupportedExtensionException;
34 33
import org.gvsig.fmap.dal.coverage.exception.ProcessInterruptedException;
34
import org.gvsig.fmap.dal.coverage.exception.QueryException;
35 35
import org.gvsig.fmap.dal.coverage.exception.RasterDriverException;
36 36
import org.gvsig.fmap.dal.coverage.exception.RemoteServiceException;
37
import org.gvsig.fmap.dal.coverage.store.RasterDataStore;
38
import org.gvsig.fmap.dal.coverage.store.RasterQuery;
37 39
import org.gvsig.fmap.dal.exception.InitializeException;
38 40
import org.gvsig.fmap.dal.exception.ProviderNotRegisteredException;
39 41
import org.gvsig.raster.cache.tile.Tile;
40 42
import org.gvsig.raster.cache.tile.exception.TileGettingException;
41 43
import org.gvsig.raster.impl.DefaultRasterManager;
42
import org.gvsig.raster.impl.buffer.DefaultRasterQuery;
43
import org.gvsig.raster.impl.datastruct.BandListImpl;
44 44
import org.gvsig.raster.impl.provider.RasterProvider;
45 45
import org.gvsig.raster.impl.provider.tile.BaseTileDownloader;
46 46
import org.gvsig.raster.util.DefaultProviderServices;
......
61 61

  
62 62
	
63 63
	
64
	public TileDownloaderForWMS(WMSProvider prov,
64
	public TileDownloaderForWMS(RasterDataStore store,
65 65
			int tilePxWidth,
66
			int tilePxHeight,
67
			WMSConnector connector) {
68
		super(prov, tilePxWidth, tilePxHeight);
69
		this.connector = connector;
70
		lyrExtent = prov.getExtent();
66
			int tilePxHeight) throws RemoteServiceException {
67
		super(store, tilePxWidth, tilePxHeight);
68
		this.connector = ((WMSProvider)store.getProvider()).getConnector();
69
		lyrExtent = store.getExtent();
71 70
	}
72 71
	
73
	/*
74
	 * (non-Javadoc)
75
	 * @see org.gvsig.raster.cache.tile.provider.Downloader#getTile(org.gvsig.raster.cache.tile.Tile)
76
	 */
77 72
	public synchronized Tile downloadTile(Tile tile) throws TileGettingException {
78 73
		try {
79 74
			Rectangle2D r = new Rectangle2D.Double(tile.getExtent().getMinX(), 
......
81 76
					tile.getExtent().getWidth(), 
82 77
					tile.getExtent().getHeight());
83 78
			//Extent tileExtent = RasterLocator.getManager().getDataStructFactory().createExtent(r);
84
			WMSDataParameters p = ((WMSProvider)prov).getParameters();
79
			WMSDataParameters p = (WMSDataParameters)store.getParameters();
85 80
			WMSStatus wmsStatus = new WMSStatus();
86 81
			wmsStatus.setLayerNames(Utilities.createVector(p.getLayerQuery(), ","));
87 82
			wmsStatus.setSrs(p.getSRSCode());
......
112 107
	
113 108
	@SuppressWarnings("unused")
114 109
	private void fuseFiles(Extent dstExtent, int dstWidth, int dstHeight, File src, File dst, double pixelSize) 
115
		throws RasterDriverException, ProcessInterruptedException, ProviderNotRegisteredException, InitializeException, LocatorException, NotSupportedExtensionException, IOException {
110
		throws RasterDriverException, ProcessInterruptedException, ProviderNotRegisteredException, InitializeException, LocatorException, NotSupportedExtensionException, IOException, QueryException {
116 111
		RasterProvider provider = DefaultProviderServices.loadProvider(src);
117
		Buffer bufSrc = DefaultRasterManager.getInstance().createMemoryBuffer(
118
				provider.getDataType()[0], (int)provider.getWidth(), (int)provider.getHeight(), provider.getBandCount(), true);
119
		DefaultRasterQuery q = (DefaultRasterQuery)RasterLocator.getManager().createQuery();
120
		q.setAreaOfInterest(0, 0, (int)provider.getWidth(), (int)provider.getHeight());
121
		BandList newBandList = new BandListImpl(provider.getURIOfFirstProvider(), provider.getBandCount(), provider.getDataType()[0]);
122
		q.setBandList(newBandList);
123
		q.setBuffer(bufSrc);
124
		q.setAdjustToExtent(true);
125
		Buffer bufInput = (Buffer)provider.getDataSet(q);
126 112
		
113
		RasterQuery q = RasterLocator.getManager().createQuery();
114
		Buffer bufInput = store.query(q);
115
		
127 116
		Buffer bufDst = DefaultRasterManager.getInstance().createMemoryBuffer(provider.getDataType()[0], dstWidth, dstHeight, provider.getBandCount(), true);
128 117
		String extension = RasterLocator.getManager().getFileUtils().getExtensionFromFileName(src.getAbsolutePath());
129 118
		RasterLocator.getManager().getRasterUtils().copyToBuffer(
org.gvsig.raster.wms/branches/org.gvsig.raster.wms_dataaccess_refactoring/org.gvsig.raster.wms.io/src/main/java/org/gvsig/raster/wms/io/downloader/WMSTileServer.java
25 25
import org.gvsig.fmap.dal.coverage.RasterLibrary;
26 26
import org.gvsig.fmap.dal.coverage.datastruct.Extent;
27 27
import org.gvsig.fmap.dal.coverage.exception.RemoteServiceException;
28
import org.gvsig.fmap.dal.coverage.store.RasterDataStore;
28 29
import org.gvsig.raster.cache.tile.TileCacheLibrary;
29 30
import org.gvsig.raster.cache.tile.TileCacheLocator;
30 31
import org.gvsig.raster.cache.tile.TileCacheManager;
31 32
import org.gvsig.raster.cache.tile.provider.CacheStruct;
32 33
import org.gvsig.raster.cache.tile.provider.Downloader;
33 34
import org.gvsig.raster.cache.tile.provider.TileServer;
35
import org.gvsig.raster.impl.provider.RasterProvider;
34 36
import org.gvsig.raster.wms.io.WMSProvider;
35 37
import org.slf4j.Logger;
36 38
import org.slf4j.LoggerFactory;
......
43 45
	private static Logger              logger               = LoggerFactory.getLogger(WMSTileServer.class);
44 46
	private CacheStruct                struct               = null;
45 47
	private Downloader                 downloader           = null;
46
	private WMSProvider                provider             = null;
48
	private RasterDataStore            store                = null;
47 49
	private String                     suffix               = ".tif";
48 50
	
49
	public WMSTileServer(WMSProvider prov) {
50
		this.provider = prov;
51
		this.suffix = prov.getFileSuffix();
51
	public WMSTileServer(RasterDataStore store) {
52
		this.store = store;
53
		this.suffix = ((RasterProvider)store.getProvider()).getFileSuffix();
52 54
	}
53 55
	
54
	/*
55
	 * (non-Javadoc)
56
	 * @see org.gvsig.raster.cache.tile.provider.TileServer#getDownloader()
57
	 */
58 56
	public Downloader getDownloader() {
59 57
		if(downloader == null ||
60 58
		   ((TileDownloaderForWMS)downloader).getTileSize()[0] != TileCacheLibrary.ALTERNATIVE_TILESIZE ||
61 59
		   ((TileDownloaderForWMS)downloader).getTileSize()[1] != TileCacheLibrary.ALTERNATIVE_TILESIZE) {
62 60
			try {
63 61
				downloader = new TileDownloaderForWMS(
64
						provider, 
62
						store, 
65 63
						TileCacheLibrary.ALTERNATIVE_TILESIZE, 
66
						TileCacheLibrary.ALTERNATIVE_TILESIZE, 
67
						provider.getConnector());
64
						TileCacheLibrary.ALTERNATIVE_TILESIZE);
68 65
			} catch (RemoteServiceException e) {
69 66
				return null;
70 67
			}
......
77 74
			TileCacheManager  manager = TileCacheLocator.getManager();
78 75
			
79 76
			int coordinates = CacheStruct.FLAT;
80
			if(provider.getProjection() != null)
81
				coordinates = (provider.getProjection() != null && provider.getProjection().isProjected()) ? CacheStruct.FLAT : CacheStruct.GEOGRAFIC;
77
			if(store.getProjection() != null)
78
				coordinates = (store.getProjection() != null && store.getProjection().isProjected()) ? CacheStruct.FLAT : CacheStruct.GEOGRAFIC;
82 79
			else {
83
				Extent e = provider.getExtent();
80
				Extent e = store.getExtent();
84 81
				if(e.getULX() >= -180 && e.getULX() <= 180 && e.getLRX() >= -180 && e.getLRX() <= 180 && 
85 82
					e.getULY() >= -90 && e.getULY() <= 90 && e.getLRY() >= -90 && e.getLRY() <= 90) {
86 83
					coordinates = CacheStruct.GEOGRAFIC;
......
88 85
			}
89 86
			
90 87
			String epsg = null;
91
			IProjection proj = provider.getProjection();
88
			IProjection proj = store.getProjection();
92 89
			if(proj != null)
93 90
				epsg = proj.getAbrev();
94 91
			
95 92
			struct = manager.createCacheStructure(coordinates, 
96 93
					TileCacheLibrary.DEFAULT_LEVELS, 
97
					provider.getExtent().toRectangle2D(), 
94
					store.getExtent().toRectangle2D(), 
98 95
					Double.POSITIVE_INFINITY,//provider.getCellSize(), 
99 96
					TileCacheLibrary.ALTERNATIVE_TILESIZE, 
100 97
					TileCacheLibrary.ALTERNATIVE_TILESIZE,
101
					provider.getURIOfFirstProvider(),
102
					provider.getParameters().getLayerQuery(),
98
					((RasterProvider)store.getProvider()).getURIOfFirstProvider(),
99
					((WMSProvider)store.getProvider()).getParameters().getLayerQuery(),
103 100
					TileCacheLibrary.DEFAULT_STRUCTURE,
104 101
					RasterLibrary.pathTileCache,
105 102
					getFileSuffix(),
......
109 106
		return struct;
110 107
	}
111 108
	
112
	/*
113
	 * (non-Javadoc)
114
	 * @see org.gvsig.raster.cache.tile.provider.TileServer#setStruct(org.gvsig.raster.cache.tile.provider.CacheStruct)
115
	 */
116 109
	public void setStruct(CacheStruct struct) {
117 110
		if(struct != null) {
118 111
			this.struct = struct;
119 112
			if(struct.getTileSizeByLevel(0) != null) {
120 113
				try {
121
					downloader = new TileDownloaderForWMS(provider, 
114
					downloader = new TileDownloaderForWMS(store, 
122 115
							struct.getTileSizeByLevel(0)[0], 
123
							struct.getTileSizeByLevel(0)[1],
124
							provider.getConnector());
116
							struct.getTileSizeByLevel(0)[1]);
125 117
				} catch (RemoteServiceException ex) {
126 118
					logger.error("Constructing TileDownloaderForWCS: " + ex.getMessage());
127 119
				}
......
129 121
		}
130 122
	}
131 123
	
132
	/*
133
	 * (non-Javadoc)
134
	 * @see org.gvsig.raster.cache.tile.provider.TileServer#getFileSuffix()
135
	 */
136 124
	public String getFileSuffix() {
137 125
		return suffix;
138 126
	}
139 127
	
140
	/*
141
	 * (non-Javadoc)
142
	 * @see org.gvsig.raster.cache.tile.provider.TileServer#setFileExtension(java.lang.String)
143
	 */
144 128
	public void setFileSuffix(String extension) {
145 129
		this.suffix = extension;
146 130
	}
org.gvsig.raster.wms/branches/org.gvsig.raster.wms_dataaccess_refactoring/org.gvsig.raster.wms.io/src/main/java/org/gvsig/raster/wms/io/WMSProvider.java
52 52
import org.gvsig.fmap.dal.coverage.exception.InvalidSetViewException;
53 53
import org.gvsig.fmap.dal.coverage.exception.NotSupportedExtensionException;
54 54
import org.gvsig.fmap.dal.coverage.exception.ProcessInterruptedException;
55
import org.gvsig.fmap.dal.coverage.exception.QueryException;
55 56
import org.gvsig.fmap.dal.coverage.exception.RasterDriverException;
56 57
import org.gvsig.fmap.dal.coverage.exception.RemoteServiceException;
58
import org.gvsig.fmap.dal.coverage.store.RasterQuery;
57 59
import org.gvsig.fmap.dal.coverage.store.props.ColorInterpretation;
58 60
import org.gvsig.fmap.dal.coverage.store.props.HistogramComputer;
59 61
import org.gvsig.fmap.dal.coverage.store.props.Transparency;
......
62 64
import org.gvsig.fmap.dal.spi.DataManagerProviderServices;
63 65
import org.gvsig.fmap.dal.spi.DataStoreProviderServices;
64 66
import org.gvsig.metadata.MetadataLocator;
65
import org.gvsig.raster.cache.tile.TileCacheLocator;
66
import org.gvsig.raster.cache.tile.TileCacheManager;
67
import org.gvsig.raster.cache.tile.exception.TileGettingException;
68
import org.gvsig.raster.cache.tile.provider.TileListener;
69 67
import org.gvsig.raster.cache.tile.provider.TileServer;
70
import org.gvsig.raster.impl.DefaultRasterManager;
71
import org.gvsig.raster.impl.buffer.DefaultRasterQuery;
68
import org.gvsig.raster.impl.buffer.SpiRasterQuery;
72 69
import org.gvsig.raster.impl.datastruct.BandListImpl;
73 70
import org.gvsig.raster.impl.datastruct.DatasetBandImpl;
74 71
import org.gvsig.raster.impl.datastruct.ExtentImpl;
75
import org.gvsig.raster.impl.provider.DefaultRasterProvider;
72
import org.gvsig.raster.impl.provider.AbstractRasterProvider;
76 73
import org.gvsig.raster.impl.provider.RasterProvider;
77 74
import org.gvsig.raster.impl.provider.RemoteRasterProvider;
75
import org.gvsig.raster.impl.store.DefaultRasterStore;
78 76
import org.gvsig.raster.impl.store.DefaultStoreFactory;
79 77
import org.gvsig.raster.impl.store.properties.DataStoreColorInterpretation;
80 78
import org.gvsig.raster.impl.store.properties.DataStoreTransparency;
......
84 82
import org.gvsig.remoteclient.utils.Utilities;
85 83
import org.gvsig.remoteclient.wms.WMSStatus;
86 84
import org.gvsig.tools.ToolsLocator;
87
import org.gvsig.tools.task.TaskStatus;
88 85
import org.slf4j.Logger;
89 86
import org.slf4j.LoggerFactory;
90 87
/**
......
92 89
 *
93 90
 * @author Nacho Brodin (nachobrodin@gmail.com)
94 91
 */
95
public class WMSProvider extends DefaultRasterProvider implements RemoteRasterProvider {
92
public class WMSProvider extends AbstractRasterProvider implements RemoteRasterProvider {
96 93
	public static String                NAME                     = "Wms Store";
97 94
	public static String                DESCRIPTION              = "Wms Raster file";
98 95
	public static final String          METADATA_DEFINITION_NAME = "WmsStore";
......
111 108
	//Only for fixed size. Complete extent and FIXED_SIZE in long side
112 109
	private File                        fileLayerPixelSize       = null;
113 110
	private File                        lastRequest              = null;
114
	private DefaultRasterProvider       lastRequestProvider      = null; 
111
	private AbstractRasterProvider       lastRequestProvider      = null; 
115 112
	
116 113
	public static void register() {
117 114
		DataManagerProviderServices dataman = (DataManagerProviderServices) DALLocator.getDataManager();
......
230 227
		WMSStatus wmsStatus = loadWMSStatus(bBox);
231 228
		
232 229
		lastRequest = downloadFile(wmsStatus, ext.getULX(), ext.getULY(), ext.getLRX(), ext.getLRY(), w, h);
233
		DefaultRasterProvider driver;
230
		AbstractRasterProvider driver;
234 231
		try {
235 232
			driver = DefaultProviderServices.loadProvider(lastRequest);
236 233
			setDataType(driver.getDataType());
......
529 526
	public Buffer getBufferLastRequest() throws ProcessInterruptedException, RasterDriverException {
530 527
		try {
531 528
			lastRequestProvider = openLastRequest();
532
			
533
			BandList bandList = new BandListImpl();
534
			for (int i = 0; i < lastRequestProvider.getBandCount(); i++) {
535
				try {
536
					bandList.addBand(new DatasetBandImpl(lastRequest.getPath(), i, Buffer.TYPE_BYTE, 3));
537
				} catch (BandNotFoundInListException e1) {
538
				}
539
			}
540
			bandList.setDrawableBands(new int[]{0, 1, 2});
541
			Buffer newBuffer = DefaultRasterManager.getInstance().createBuffer(lastRequestProvider.getDataType()[0], (int)lastRequestProvider.getWidth(), (int)lastRequestProvider.getHeight(), lastRequestProvider.getBandCount(), true);
542
			
543
			DefaultRasterQuery q = (DefaultRasterQuery)RasterLocator.getManager().createQuery();
544
			q.setAreaOfInterest(lastRequestProvider.getExtent(), 
545
					(int)lastRequestProvider.getWidth(), 
546
					(int)lastRequestProvider.getHeight());
547
			q.setBandList(bandList);
548
			q.setBuffer(newBuffer);
549
			q.setAdjustToExtent(true);
550
			
551
			return lastRequestProvider.getDataSet(q);
529
			return getDownloadedRaster(lastRequestProvider);
552 530
		} catch (ProviderNotRegisteredException e) {
553 531
			throw new RasterDriverException("Error building GdalDriver", e);
554 532
		} catch (InitializeException e) {
555 533
			throw new RasterDriverException("Error building GdalDriver", e);
534
		} catch (QueryException e) {
535
			throw new RasterDriverException("Error building GdalDriver", e);
556 536
		}
557 537
	}
558 538
	
......
563 543
	 * @throws InitializeException
564 544
	 * @throws RasterDriverException
565 545
	 */
566
	private DefaultRasterProvider openLastRequest() throws ProviderNotRegisteredException, InitializeException, RasterDriverException {
546
	private AbstractRasterProvider openLastRequest() throws ProviderNotRegisteredException, InitializeException, RasterDriverException {
567 547
		if(lastRequestProvider != null)
568 548
			lastRequestProvider.close();
569 549
		File lastFile = getFileLayer();
......
668 648
		return lastRequest;
669 649
	}
670 650
	
651
	@Override
652
	public void loadBuffer(SpiRasterQuery q) 
653
			throws ProcessInterruptedException, RasterDriverException {
654
		Extent bbox = q.getRequestBoundingBox();
655
		lastWidthRequest = q.getBufWidth();
656
		lastHeightRequest = q.getBufHeight();
657
		WMSStatus wmsStatus = loadWMSStatus(bbox.toRectangle2D());
658
		
659
		lastRequest = downloadFile(wmsStatus, 
660
				bbox.getULX(), 
661
				bbox.getULY(), 
662
				bbox.getLRX(), 
663
				bbox.getLRY(), 
664
				q.getBufWidth(), 
665
				q.getBufHeight());
666
		
667
		if (lastRequest == null) {
668
			return;
669
		}
670
		
671
		Buffer b = null;
672
		try {
673
			b = getDownloadedRaster(lastRequest);
674
		} catch (QueryException e) {
675
			throw new RasterDriverException("Error building GdalDriver", e);
676
		} catch (ProviderNotRegisteredException e) {
677
			throw new RasterDriverException("Error building GdalDriver", e);
678
		} catch (InitializeException e) {
679
			throw new RasterDriverException("Error building GdalDriver", e);
680
		}
681
		q.setBufferResult(b);
682
	}
683
	
684
	private Buffer getDownloadedRaster(File f) throws ProcessInterruptedException, QueryException, ProviderNotRegisteredException, InitializeException {
685
		AbstractRasterProvider provider = DefaultProviderServices.loadProvider(new File(f.getPath()));
686
		setColorTable(provider.getColorTable());
687
		return getDownloadedRaster(provider);
688
	}
689
	
690
	private Buffer getDownloadedRaster(AbstractRasterProvider provider) throws ProcessInterruptedException, QueryException, ProviderNotRegisteredException, InitializeException {
691
		DefaultRasterStore store = new DefaultRasterStore();
692
		store.setProvider(provider);
693

  
694
		RasterQuery q = RasterLocator.getManager().createQuery();
695
		q.setAreaOfInterest();
696
		q.setAllDrawableBands();
697
		Buffer buf = store.query(q);
698

  
699
		store.close();
700
		return buf;
701
	}
702
	
671 703
	/**
672 704
	 * Assigns the list of bands RGB and read a window of data
673 705
	 * @param rasterBuf
......
681 713
	 * @throws RasterDriverException
682 714
	 * @throws ProcessInterruptedException
683 715
	 */
684
	public Buffer getBuffer(Buffer rasterBuf, BandList bandList, File lastFile, 
716
	/*public Buffer getBuffer(Buffer rasterBuf, BandList bandList, File lastFile, 
685 717
			double ulx, double uly, double lrx, double lry) throws RasterDriverException, ProcessInterruptedException {
686 718
		try {
687 719
			//El nombre de fichero que ha puesto en el bandList es el del servidor y no el del fichero en disco
......
690 722
				bandList.getBand(i).setFileName(lastFile.getPath());
691 723
			}
692 724
			
693
			DefaultRasterProvider driver = DefaultProviderServices.loadProvider(new File(lastFile.getPath()));
725
			AbstractRasterProvider driver = DefaultProviderServices.loadProvider(new File(lastFile.getPath()));
694 726
			setColorTable(driver.getColorTable());
695 727
			
696 728
			DefaultRasterQuery q = (DefaultRasterQuery)RasterLocator.getManager().createQuery();
......
709 741
		} catch (InitializeException e) {
710 742
			throw new RasterDriverException("Error building GdalDriver", e);
711 743
		}
712
	}
744
	}*/
713 745
	
714
	public void getWindow(Extent ex, int bufWidth, int bufHeight, 
746
	/*public void getWindow(Extent ex, int bufWidth, int bufHeight, 
715 747
			BandList bandList, TileListener listener, TaskStatus status) throws ProcessInterruptedException, RasterDriverException {
716 748

  
717 749
		Buffer raster = DefaultRasterManager.getInstance().createBuffer(getDataType()[0], bufWidth, bufHeight, 3, true);
......
733 765

  
734 766
		//listener.nextBuffer(raster, null, new ExtentImpl(minX, minY, maxX, maxY), getAffineTransform(), null, false);
735 767
		listener.endReading();
736
	}
768
	}*/
737 769

  
738
	public Buffer getWindow(Extent ex, BandList bandList, Buffer rasterBuf, TaskStatus status) 
770
	/*public Buffer getWindow(Extent ex, BandList bandList, Buffer rasterBuf, TaskStatus status) 
739 771
		throws ProcessInterruptedException, RasterDriverException {
740 772
		Rectangle2D bBox = ex.toRectangle2D();
741 773
		lastWidthRequest = rasterBuf.getWidth();
......
755 787
				bandList.getBand(i).setFileName(lastRequest.getPath());
756 788
			}
757 789
			
758
			DefaultRasterProvider driver = DefaultProviderServices.loadProvider(new File(lastRequest.getPath()));
790
			AbstractRasterProvider driver = DefaultProviderServices.loadProvider(new File(lastRequest.getPath()));
759 791
			setColorTable(driver.getColorTable());
760 792
			
761 793
			DefaultRasterQuery q = (DefaultRasterQuery)RasterLocator.getManager().createQuery();
......
774 806
		} catch (InitializeException e) {
775 807
			throw new RasterDriverException("Error building GdalDriver", e);
776 808
		}
777
	}
809
	}*/
778 810

  
779
	public Buffer getWindow(double ulx, double uly, double w, double h, 
811
	/*public Buffer getWindow(double ulx, double uly, double w, double h, 
780 812
			BandList bandList, Buffer rasterBuf, boolean adjustToExtent, TaskStatus status) throws ProcessInterruptedException, RasterDriverException {
781 813
		Rectangle2D bBox = new Rectangle2D.Double(ulx, uly, w, h);
782 814
		lastWidthRequest = rasterBuf.getWidth();
......
796 828
				bandList.getBand(i).setFileName(lastRequest.getPath());
797 829
			}
798 830
			
799
			DefaultRasterProvider driver = DefaultProviderServices.loadProvider(new File(lastRequest.getPath()));
831
			AbstractRasterProvider driver = DefaultProviderServices.loadProvider(new File(lastRequest.getPath()));
800 832
			setColorTable(driver.getColorTable());
801 833
			
802 834
			DefaultRasterQuery q = (DefaultRasterQuery)RasterLocator.getManager().createQuery();
......
817 849
		} catch (InitializeException e) {
818 850
			throw new RasterDriverException("Error building GdalDriver", e);
819 851
		}
820
	}
852
	}*/
821 853

  
822
	public Buffer getWindow(Extent extent, int bufWidth, int bufHeight, 
854
	/*public Buffer getWindow(Extent extent, int bufWidth, int bufHeight, 
823 855
			BandList bandList, Buffer rasterBuf, boolean adjustToExtent, TaskStatus status) throws ProcessInterruptedException, RasterDriverException {
824 856
		Rectangle2D bBox = extent.toRectangle2D();//new Rectangle2D.Double(ulx, lry, Math.abs(lrx - ulx), Math.abs(lry - uly));
825 857
		lastWidthRequest = rasterBuf.getWidth();
......
838 870
				bandList.getBand(i).setFileName(lastRequest.getPath());
839 871
			}
840 872
			
841
			DefaultRasterProvider driver = DefaultProviderServices.loadProvider(new File(lastRequest.getPath()));
873
			AbstractRasterProvider driver = DefaultProviderServices.loadProvider(new File(lastRequest.getPath()));
842 874
			setColorTable(driver.getColorTable());
843 875
			
844 876
			DefaultRasterQuery q = (DefaultRasterQuery)RasterLocator.getManager().createQuery();
......
858 890
		} catch (InitializeException e) {
859 891
			throw new RasterDriverException("Error building GdalDriver", e);
860 892
		}
861
	}
893
	}*/
862 894

  
863 895
//	public Buffer getWindow(int x, int y, 
864 896
//			BandList bandList, Buffer rasterBuf) throws ProcessInterruptedException, RasterDriverException {
......
877 909
//			return rasterBuf;
878 910
//		}
879 911
//
880
//		DefaultRasterProvider driver = null;
912
//		AbstractRasterProvider driver = null;
881 913
//		try {
882 914
//			//El nombre de fichero que ha puesto en el bandList es el del servidor y no el del fichero en disco
883 915
//			String serverName = bandList.getBand(0).getFileName();
......
900 932
//		}
901 933
//	}
902 934

  
903
	public Buffer getWindow(int x, int y, int w, int h, 
935
	/*public Buffer getWindow(int x, int y, int w, int h, 
904 936
			BandList bandList, Buffer rasterBuf, TaskStatus status) throws ProcessInterruptedException, RasterDriverException {
905 937
		Point2D p1 = rasterToWorld(new Point2D.Double(x, y));
906 938
		Point2D p2 = rasterToWorld(new Point2D.Double(x + w, y + h));
......
915 947
			return rasterBuf;
916 948
		}
917 949

  
918
		DefaultRasterProvider driver = null;
950
		AbstractRasterProvider driver = null;
919 951
		try {
920 952
			//El nombre de fichero que ha puesto en el bandList es el del servidor y no el del fichero en disco
921 953
			String serverName = bandList.getBand(0).getFileName();
......
942 974
		} catch (InitializeException e) {
943 975
			throw new RasterDriverException("Error building GdalDriver", e);
944 976
		}
945
	}
977
	}*/
946 978

  
947 979
	public Image getImageLegend() {
948 980
		try {
......
1087 1119
	
1088 1120
	public TileServer getTileServer() {
1089 1121
		if(tileServer == null) {
1090
			tileServer = new WMSTileServer(this);
1122
			DefaultRasterStore store = new DefaultRasterStore();
1123
			store.setProvider(this);
1124
			tileServer = new WMSTileServer(store);
1091 1125
		}
1092 1126
		return tileServer;
1093 1127
	}
org.gvsig.raster.tilecache/branches/org.gvsig.raster.tilecache_dataaccess_refactoring/org.gvsig.raster.tilecache.io/src/main/java/org/gvsig/raster/tilecache/io/TileProvider.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22 1
package org.gvsig.raster.tilecache.io;
23 2

  
24 3
import java.awt.Image;
......
86 65
import org.gvsig.raster.impl.datastruct.DatasetBandImpl;
87 66
import org.gvsig.raster.impl.datastruct.ExtentImpl;
88 67
import org.gvsig.raster.impl.provider.AbstractRasterProvider;
89
import org.gvsig.raster.impl.provider.MemoryTileMatrixBuffer;
90 68
import org.gvsig.raster.impl.provider.RasterProvider;
91 69
import org.gvsig.raster.impl.provider.RemoteRasterProvider;
92 70
import org.gvsig.raster.impl.provider.TiledRasterProvider;
......
679 657
		
680 658
	}
681 659

  
682
	/*public void getWindow(Extent ex, int bufWidth, int bufHeight, 
683
			BandList bandList, TileListener listener, TaskStatus taskStatus) throws ProcessInterruptedException, RasterDriverException {
684
		try {
685
			List<Tile> tileList = getTileList(ex, bandList, bufWidth, bufHeight);
686
			tiledLayer.getTiles(tileList, listener, taskStatus);
687
		} catch (TileGettingException e) {
688
			throw new RasterDriverException("Error getting the tile list", e);
689
		} catch (TileBuildException e) {
690
			throw new RasterDriverException("Error building the tile list", e);
691
		}
692
	}
693
	
694
	public Buffer getWindow(Extent extent, int bufWidth, int bufHeight, 
695
			BandList bandList, Buffer rasterBuf, boolean adjustToExtent, TaskStatus status) throws ProcessInterruptedException, RasterDriverException {
696
		//draw method
697
		List<Tile> tileList = null;
698
		try {
699
			tileList = getTileList(extent, bandList, bufWidth, bufHeight);
700
			for (int i = 0; i < tileList.size(); i++) {
701
				tiledLayer.getTile(tileList.get(i));
702
			}
703
		} catch (TileGettingException e) {public static final int  TYPE_PX_RESCALED           = 5;
704
			throw new RasterDriverException("Error getting the tile list", e);
705
		} catch (TileBuildException e) {
706
			throw new RasterDriverException("Error building the tile list", e);
707
		}
708
		MemoryTileMatrixBuffer matrixBuffer = new MemoryTileMatrixBuffer(tileList);
709
		return matrixBuffer.getWindow(extent, rasterBuf);
710
	}
711

  
712
	public Buffer getWindow(double ulx, double uly, double w, double h, 
713
			BandList bandList, Buffer rasterBuf, boolean adjustToExtent, TaskStatus status) throws ProcessInterruptedException, RasterDriverException {
714
		Extent extent = new ExtentImpl(ulx, uly, ulx + w, uly - h);
715
		List<Tile> tileList = null;
716
		try {
717
			tileList = getTileList(extent, bandList, rasterBuf.getWidth(), rasterBuf.getHeight());
718
			for (int i = 0; i < tileList.size(); i++) {
719
				tiledLayer.getTile(tileList.get(i));
720
			}
721
		} catch (TileGettingException e) {
722
			throw new RasterDriverException("Error getting the tile list", e);
723
		} catch (TileBuildException e) {
724
			throw new RasterDriverException("Error building the tile list", e);
725
		}
726
		MemoryTileMatrixBuffer matrixBuffer = new MemoryTileMatrixBuffer(tileList);
727
		return matrixBuffer.getWindow(extent, rasterBuf);
728
	}*/
729

  
730 660
	public int getBlockSize() {
731 661
		return 0;
732 662
	}

Also available in: Unified diff