Revision 135

View differences:

org.gvsig.raster.app/trunk/org.gvsig.raster.app/org.gvsig.raster.app.tools/src/main/java/org/gvsig/raster/app/extension/tool/saveraster/DriverProperties.java
21 21
*/
22 22
package org.gvsig.raster.app.extension.tool.saveraster;
23 23

  
24
import org.gvsig.raster.dataset.GeoRasterWriter;
24
import org.gvsig.fmap.dal.coverage.RasterLocator;
25
import org.gvsig.fmap.dal.coverage.util.ProviderServices;
25 26

  
26 27
/**
27 28
 * Clase que representa a las propiedades que se seleccionan de cada driver.
......
40 41
	private String[]				driversExtension = null;
41 42

  
42 43
	public DriverProperties(){
43

  
44
		driversExtensionProps = new String[GeoRasterWriter.getNDrivers()][];
45
		for(int i = 0; i < GeoRasterWriter.getNDrivers(); i++)
44
		ProviderServices prov = RasterLocator.getManager().getProviderServices();
45
		driversExtensionProps = new String[prov.getWriteNDrivers()][];
46
		for(int i = 0; i < prov.getWriteNDrivers(); i++)
46 47
			driversExtensionProps[i] = null;
47
		driversExtension = GeoRasterWriter.getDriversExtensions();
48

  
48
		driversExtension = prov.getDriversExtensions();
49 49
	}
50 50

  
51 51
	/**
org.gvsig.raster.app/trunk/org.gvsig.raster.app/org.gvsig.raster.app.tools/src/main/java/org/gvsig/raster/app/extension/tool/saveraster/ui/property/WriterPropertiesDialog.java
28 28
import org.gvsig.andami.PluginServices;
29 29
import org.gvsig.andami.ui.mdiManager.IWindow;
30 30
import org.gvsig.andami.ui.mdiManager.WindowInfo;
31
import org.gvsig.fmap.dal.coverage.datastruct.Params;
31 32
import org.gvsig.gui.beans.propertiespanel.PropertiesPanel;
32 33
import org.gvsig.raster.app.extension.tool.saveraster.ui.listener.WriterPropertiesListener;
33
import org.gvsig.raster.dataset.Params;
34 34

  
35 35

  
36 36
/**
org.gvsig.raster.app/trunk/org.gvsig.raster.app/org.gvsig.raster.app.tools/src/main/java/org/gvsig/raster/app/extension/tool/saveraster/ui/listener/DataInputListener.java
33 33
import java.util.EventObject;
34 34

  
35 35
import org.gvsig.andami.PluginServices;
36
import org.gvsig.fmap.dal.coverage.RasterLocator;
37
import org.gvsig.fmap.dal.coverage.util.MathUtils;
38
import org.gvsig.fmap.dal.coverage.util.RasterUtils;
36 39
import org.gvsig.gui.beans.buttonspanel.ButtonsPanel;
37 40
import org.gvsig.gui.beans.datainput.DataInputContainer;
38 41
import org.gvsig.gui.beans.datainput.DataInputContainerListener;
39 42
import org.gvsig.gui.beans.swing.JFileChooser;
40 43
import org.gvsig.raster.app.extension.tool.saveraster.ui.SaveRasterDialog;
41 44
import org.gvsig.raster.app.extension.tool.saveraster.ui.SaveRasterPanel;
42
import org.gvsig.raster.dataset.GeoRasterWriter;
43 45
import org.gvsig.raster.util.ExtendedFileFilter;
44
import org.gvsig.raster.util.MathUtils;
45
import org.gvsig.raster.util.RasterUtilities;
46 46

  
47 47
/**
48 48
 * Panel encargado de manejar los eventos del los controles de Salvar a Raster
......
60 60
	private Object                   obj                      = null;
61 61
	private double                   widthMts                 = 0D, heightMts = 0D;
62 62
	private boolean                  enableEventValueChanged  = true;
63

  
63
	private MathUtils                math                     = RasterLocator.getManager().getMathUtils();
64 64
	/**
65 65
	 * This method initializes
66 66
	 *
......
129 129

  
130 130
		int ppp = Integer.parseInt((String)controlPanel.getCbResolution().getSelectedItem());
131 131
		if(controlPanel.getCbMeasureType().getSelectedItem().equals("Mts"))
132
			return MathUtils.convertMtsToPixels(Double.parseDouble(value), ppp);
132
			return math.convertMtsToPixels(Double.parseDouble(value), ppp);
133 133
		if(controlPanel.getCbMeasureType().getSelectedItem().equals("Cms"))
134
			return MathUtils.convertCmsToPixels(Double.parseDouble(value), ppp);
134
			return math.convertCmsToPixels(Double.parseDouble(value), ppp);
135 135
		if(controlPanel.getCbMeasureType().getSelectedItem().equals("Mms"))
136
			return MathUtils.convertMmsToPixels(Double.parseDouble(value), ppp);
136
			return math.convertMmsToPixels(Double.parseDouble(value), ppp);
137 137
		if(controlPanel.getCbMeasureType().getSelectedItem().equals("Inches"))
138
			return MathUtils.convertInchesToPixels(Double.parseDouble(value), ppp);
138
			return math.convertInchesToPixels(Double.parseDouble(value), ppp);
139 139

  
140 140
		return 0;
141 141
	}
......
155 155
		enableEventValueChanged = false;
156 156
		int ppp = Integer.parseInt((String)controlPanel.getCbResolution().getSelectedItem());
157 157
		if(controlPanel.getCbMeasureType().getSelectedItem().equals("Mts"))
158
			field.setValue(String.valueOf(MathUtils.clipDecimals(MathUtils.convertPixelsToMts(pixel, ppp),5)));
158
			field.setValue(String.valueOf(math.clipDecimals(math.convertPixelsToMts(pixel, ppp),5)));
159 159

  
160 160
		if(controlPanel.getCbMeasureType().getSelectedItem().equals("Cms"))
161
			field.setValue(String.valueOf(MathUtils.clipDecimals(MathUtils.convertPixelsToCms(pixel, ppp),5)));
161
			field.setValue(String.valueOf(math.clipDecimals(math.convertPixelsToCms(pixel, ppp),5)));
162 162

  
163 163
		if(controlPanel.getCbMeasureType().getSelectedItem().equals("Mms"))
164
			field.setValue(String.valueOf(MathUtils.clipDecimals(MathUtils.convertPixelsToMms(pixel, ppp),5)));
164
			field.setValue(String.valueOf(math.clipDecimals(math.convertPixelsToMms(pixel, ppp),5)));
165 165

  
166 166
		if(controlPanel.getCbMeasureType().getSelectedItem().equals("Inches"))
167
			field.setValue(String.valueOf(MathUtils.clipDecimals(MathUtils.convertPixelsToInches(pixel, ppp),5)));
167
			field.setValue(String.valueOf(math.clipDecimals(math.convertPixelsToInches(pixel, ppp),5)));
168 168
		enableEventValueChanged = true;
169 169

  
170 170
	}
......
352 352
			}
353 353

  
354 354
			//Calculo del tama?o de la imagen definitiva en pulgadas
355
			double widthInches = (widthMts / scale) * MathUtils.INCHESMTR;
356
			double heightInches = (heightMts / scale) * MathUtils.INCHESMTR;
355
			double widthInches = (widthMts / scale) * math.INCHESMTR;
356
			double heightInches = (heightMts / scale) * math.INCHESMTR;
357 357

  
358 358
			//Ancho en pixeles = ppp * widthpulgadas
359 359
			this.widthInPixels = (int) (resolution * widthInches);
......
363 363
			//double mtsPixelH = wc_altomts/altoPixels;
364 364

  
365 365
			//recortamos a 5 decimales
366
			mtsPerPixel = MathUtils.clipDecimals(mtsPerPixel, 5);
366
			mtsPerPixel = math.clipDecimals(mtsPerPixel, 5);
367 367

  
368 368
			enableEventValueChanged = false;
369 369
			controlPanel.getTMtsPixel().setValue(String.valueOf(mtsPerPixel));
......
389 389
			mtsPerPixel = (double)(widthMts / widthInPixels);
390 390

  
391 391
			//recortamos a 5 decimales
392
			mtsPerPixel = MathUtils.clipDecimals(mtsPerPixel, 5);
392
			mtsPerPixel = math.clipDecimals(mtsPerPixel, 5);
393 393

  
394 394
			//Obtenemos el ancho y alto en pulgadas
395 395
			double widthInches = (double)(widthInPixels / Integer.parseInt(controlPanel.getCbResolution().getSelectedItem().toString()));
396 396
//			double heightInches = (double)(heightInPixels / Integer.parseInt(controlPanel.getCbResolution().getSelectedItem().toString()));
397 397

  
398 398
			//Calculo de la escala
399
			int scale = (int)((widthMts * MathUtils.INCHESMTR) / widthInches);
399
			int scale = (int)((widthMts * math.INCHESMTR) / widthInches);
400 400

  
401 401
			controlPanel.getTScale().setValue(String.valueOf(scale));
402 402
			controlPanel.getTMtsPixel().setValue(String.valueOf(mtsPerPixel));
......
418 418
			mtsPerPixel = (double)(widthMts / widthPixels);
419 419

  
420 420
			//recortamos a 5 decimales
421
			mtsPerPixel = MathUtils.clipDecimals(mtsPerPixel, 5);
421
			mtsPerPixel = math.clipDecimals(mtsPerPixel, 5);
422 422

  
423 423
			//Obtenemos el ancho y alto en pulgadas
424 424
			double widthInches = (double)(widthPixels / Integer.parseInt(controlPanel.getCbResolution().getSelectedItem().toString()));
425 425
//			double heightInches = (double)(heightPixels / Integer.parseInt(controlPanel.getCbResolution().getSelectedItem().toString()));
426 426

  
427 427
			//Calculo de la escala
428
			int scale = (int)((widthMts * MathUtils.INCHESMTR) / widthInches);
428
			int scale = (int)((widthMts * math.INCHESMTR) / widthInches);
429 429

  
430 430
			controlPanel.getTScale().setValue(String.valueOf(scale));
431 431
			controlPanel.getTMtsPixel().setValue(String.valueOf(mtsPerPixel));
......
471 471
			chooser.setAcceptAllFileFilterUsed(false);
472 472

  
473 473
			// A?adimos las extensiones que hayan sido registradas en el driver
474
			String[] extList = GeoRasterWriter.getDriversExtensions();
474
			String[] extList = RasterLocator.getManager().getProviderServices().getDriversExtensions();
475 475
			ExtendedFileFilter selectedFilter = null;
476 476
			for (int i = 0; i < extList.length; i++) {
477 477
				ExtendedFileFilter fileFilter = new ExtendedFileFilter(extList[i]);
......
489 489

  
490 490
				fName = chooser.getSelectedFile().toString();
491 491
				fName = fileFilter.getNormalizedFilename(chooser.getSelectedFile());
492
				String ext = RasterUtils.getExtensionFromFileName(fName);
492
				String ext = RasterLocator.getManager().getFileUtils().getExtensionFromFileName(fName);
493 493

  
494 494
				controlPanel.getBProperties().setText(
495
						PluginServices.getText(this, "props") + " " + GeoRasterWriter.getDriverType(ext));
495
						PluginServices.getText(this, "props") + " " + RasterLocator.getManager().getProviderServices().getWriteDriverType(ext));
496 496

  
497 497
				controlPanel.getBProperties().setEnabled(true);
498 498
				controlPanel.getLFileName().setText(
org.gvsig.raster.app/trunk/org.gvsig.raster.app/org.gvsig.raster.app.tools/src/main/java/org/gvsig/raster/app/extension/tool/saveraster/ui/listener/SaveRasterDialogListener.java
29 29
import javax.swing.JOptionPane;
30 30

  
31 31
import org.gvsig.andami.PluginServices;
32
import org.gvsig.fmap.dal.coverage.RasterLibrary;
33
import org.gvsig.fmap.dal.coverage.RasterLocator;
34
import org.gvsig.fmap.dal.coverage.RasterManager;
35
import org.gvsig.fmap.dal.coverage.datastruct.Params;
36
import org.gvsig.fmap.dal.coverage.exception.NotSupportedExtensionException;
37
import org.gvsig.fmap.dal.coverage.exception.RasterDriverException;
38
import org.gvsig.fmap.dal.coverage.store.RasterWriter;
32 39
import org.gvsig.fmap.geom.GeometryLocator;
33 40
import org.gvsig.fmap.geom.GeometryManager;
34 41
import org.gvsig.fmap.geom.Geometry.SUBTYPES;
......
41 48
import org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent;
42 49
import org.gvsig.gui.beans.buttonspanel.ButtonsPanelListener;
43 50
import org.gvsig.gui.beans.propertiespanel.PropertiesPanel;
44
import org.gvsig.raster.RasterLibrary;
45 51
import org.gvsig.raster.app.extension.tool.saveraster.operation.RasterizerLayer;
46 52
import org.gvsig.raster.app.extension.tool.saveraster.operation.SaveRasterActions;
47 53
import org.gvsig.raster.app.extension.tool.saveraster.operation.SaveRasterProcess;
48 54
import org.gvsig.raster.app.extension.tool.saveraster.ui.SaveRasterDialog;
49 55
import org.gvsig.raster.app.extension.tool.saveraster.ui.SaveRasterPanel;
50 56
import org.gvsig.raster.app.extension.tool.saveraster.ui.property.WriterPropertiesDialog;
51
import org.gvsig.raster.buffer.IQueryableRaster;
52
import org.gvsig.raster.dataset.GeoRasterWriter;
53
import org.gvsig.raster.dataset.NotSupportedExtensionException;
54
import org.gvsig.raster.dataset.Params;
55
import org.gvsig.raster.dataset.RasterDriverException;
56 57
import org.gvsig.raster.fmap.config.Configuration;
58
import org.gvsig.raster.fmap.layers.FLyrRasterSE;
57 59
import org.gvsig.raster.util.RasterToolsUtil;
58
import org.gvsig.raster.util.RasterUtilities;
59 60

  
60 61

  
61 62
/**
......
70 71
	private SaveRasterDialog 				dialog 		= null;
71 72
	private FLayers							layers		= null;
72 73
	private MapControl						mapCtrl 	= null;
73
	private GeoRasterWriter 				writer 		= null;
74
	private RasterWriter                    writer 		= null;
74 75

  
75 76
	/**
76 77
	 * Constructor
......
158 159
			RasterToolsUtil.debug("Error creating the envelope", null, e1);
159 160
		}
160 161
		
161
		
162 162
		// Controlamos el tama?o en caso de un jpeg2000
163
		long bytes = RasterUtils.getBytesFromRaster((int)dimension.getWidth(),
163
		long bytes = RasterLocator.getManager().getRasterUtils().getBytesFromRaster((int)dimension.getWidth(),
164 164
				(int)dimension.getHeight(), 0, 3);	
165 165
		
166 166
		long maxJp2 = 13000 * 12500 * 3;
......
222 222
	 * @return WriterParams
223 223
	 */
224 224
	private Params getWriterParams(String name) {
225
		String ext = RasterUtils.getExtensionFromFileName(name);
225
		RasterManager rManager = RasterLocator.getManager();
226
		String ext = rManager.getFileUtils().getExtensionFromFileName(name);
226 227
		try {
227 228
			if(writer == null) //La primera vez que se obtiene el driver
228
				writer = GeoRasterWriter.getWriter(name);
229
				writer = rManager.createWriter(name);
229 230
			else {
230
				String newType = GeoRasterWriter.getDriverType(ext);
231
				String newType = rManager.getProviderServices().getWriteDriverType(ext);
231 232
				String oldType = writer.getDriverName();
232 233
				if(!newType.equals(oldType))  //Cambio de driver despu?s de haber seleccionado y modificado las propiedades de uno
233
					writer = GeoRasterWriter.getWriter(name);
234
					writer = rManager.createWriter(name);
234 235
			}
235 236

  
236 237
			if(writer == null)
......
269 270
		boolean isTiling = false;
270 271
		int block = Integer.MAX_VALUE;
271 272
		for(int i = 0; i < flyrs.getLayersCount(); i++)
272
			if(flyrs.getLayer(i) instanceof IQueryableRaster)
273
				if(((IQueryableRaster)flyrs.getLayer(i)).isTiled()){
274
					wBlock = ((IQueryableRaster)flyrs.getLayer(i)).getTileSize();
273
			if(flyrs.getLayer(i) instanceof FLyrRasterSE)
274
				if(((FLyrRasterSE)flyrs.getLayer(i)).isTiled()){
275
					wBlock = ((FLyrRasterSE)flyrs.getLayer(i)).getTileSize();
275 276
					if((wBlock[0] - 1)< block){
276 277
						block = wBlock[0] - 1;
277 278
						isTiling = true;
org.gvsig.raster.app/trunk/org.gvsig.raster.app/org.gvsig.raster.app.tools/src/main/java/org/gvsig/raster/app/extension/tool/saveraster/operation/CopyDatasetThread.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
package org.gvsig.raster.app.extension.tool.saveraster.operation;
23

  
24
import java.io.IOException;
25

  
26
import org.gvsig.andami.messages.NotificationManager;
27
import org.gvsig.fmap.dal.coverage.dataset.io.GdalWriter;
28
import org.gvsig.fmap.mapcontext.ViewPort;
29

  
30
import es.gva.cit.jgdal.Gdal;
31
import es.gva.cit.jgdal.GdalDriver;
32
import es.gva.cit.jgdal.GdalException;
33
/**
34
 * Esta clase copia un dataset desde disco en un formato soportado por Gdal a
35
 * otro especificado.
36
 * 
37
 * @author Nacho Brodin (nachobrodin@gmail.com)
38
 */
39
class CopyDatasetThread extends Thread {
40
	private GdalDriver 				driver = null;
41
	private String 						fDstName = null;
42
	private String 						fSrcName = null;
43
	private ViewPort 					vp = null;
44
	private String[]					driverProps = null;
45
//	private String 						extension = null;
46
//	private double 						maxPercentBar = 0D;
47
//	private boolean 					runCopy = false;
48

  
49
	/**
50
	 * Constructor
51
	 * @param src	Nombre del fichero fuente
52
	 * @param dst	Nombre del fichero destino
53
	 * @param viewPort	Viewport
54
	 * @param dp	DriverProperties
55
	 * @param drvName	Nombre del driver de Gdal
56
	 * @param extens	Extensi?n del fichero
57
	 */
58
	public CopyDatasetThread(String src, String dst, ViewPort viewPort, String[] dp, String drvName, String extens) {
59
		fSrcName = src;
60
		fDstName = dst;
61
		vp = viewPort;
62
		this.driverProps = dp;
63
		// this.extension = extens;
64
		try {
65
			driver = Gdal.getDriverByName(drvName);
66
		} catch (GdalException exc) {
67
			System.err.println("No se ha podido obtener el driver.");
68
		}
69
		// runCopy = true;
70
	}
71

  
72
	/**
73
	 * Funci?n que realiza la copia del dataset
74
	 */
75
	public void copy() {
76
		try {
77
			GdalWriter.createCopy(driver, fDstName, fSrcName, false, driverProps, vp.getProjection());
78
		} catch (IOException ev) {
79
			NotificationManager.addError("Error al hacer la copia", ev);
80
		} catch (GdalException ev) {
81
			NotificationManager.addError("Error al hacer la copia", ev);
82
		}
83
//		runCopy = false;
84
	}
85

  
86
	/**
87
	 * El thread maneja el incremento de la barra
88
	 */
89
	public void run() {
90

  
91
	}
92

  
93
	/**
94
	 * Asigna el porcentaje m?ximo a la barra
95
	 * @param max	Porcentaje m?ximo de la barra
96
	 */
97
/*
98
	public void setMaxPercentBar(double max){
99
		this.maxPercentBar = max;
100
	}
101
*/
102
}
org.gvsig.raster.app/trunk/org.gvsig.raster.app/org.gvsig.raster.app.tools/src/main/java/org/gvsig/raster/app/extension/tool/saveraster/operation/CopyDataset.java
23 23

  
24 24
import java.io.File;
25 25

  
26
import org.gvsig.fmap.dal.coverage.RasterLocator;
27
import org.gvsig.fmap.dal.coverage.RasterManager;
28
import org.gvsig.fmap.dal.coverage.dataset.Buffer;
29
import org.gvsig.fmap.dal.coverage.datastruct.Params;
30
import org.gvsig.fmap.dal.coverage.exception.NotSupportedExtensionException;
31
import org.gvsig.fmap.dal.coverage.exception.ProcessInterruptedException;
32
import org.gvsig.fmap.dal.coverage.exception.RasterDriverException;
33
import org.gvsig.fmap.dal.coverage.store.DataServerWriter;
26 34
import org.gvsig.fmap.mapcontext.exceptions.LoadLayerException;
27 35
import org.gvsig.gui.beans.incrementabletask.IncrementableTask;
28 36
import org.gvsig.raster.app.extension.raster.process.ClippingProcess;
29 37
import org.gvsig.raster.app.extension.raster.process.RasterProcess;
30 38
import org.gvsig.raster.app.extension.tool.saveas.SaveAsActions;
31
import org.gvsig.raster.buffer.BufferInterpolation;
32
import org.gvsig.raster.buffer.WriterBufferServer;
33
import org.gvsig.raster.dataset.GeoRasterWriter;
34
import org.gvsig.raster.dataset.NotSupportedExtensionException;
35
import org.gvsig.raster.dataset.Params;
36
import org.gvsig.raster.dataset.RasterDriverException;
37 39
import org.gvsig.raster.fmap.layers.FLyrRasterSE;
38 40
import org.gvsig.raster.util.RasterToolsUtil;
39 41

  
......
47 49
	private String 						fSrcName          = null;
48 50
	private FLyrRasterSE                src               = null;
49 51
	private RasterProcess               clippingProcess   = null;
50
	private IncrementableTask           incrementableTask = null; 
52
	private IncrementableTask           incrementableTask = null;
53
	private RasterManager               rManager          = RasterLocator.getManager();
51 54

  
52 55
	/**
53 56
	 * Constructor
......
58 61
	 * @throws RasterDriverException 
59 62
	 * @throws NotSupportedExtensionException 
60 63
	 */
61
	@SuppressWarnings("deprecation")
62 64
	public CopyDataset(String src, String dst) throws LoadLayerException {
63 65
		fSrcName = src;
64 66
		fDstName = dst;
65 67
		File f = new File(fDstName);
66 68
		if(f.exists())
67 69
			f.delete();
68
		this.src = FLyrRasterSE.createLayer("lyr", new File(fSrcName), null);
70
		this.src = FLyrRasterSE.createLayer("lyr", new File(fSrcName));
69 71
	}
70 72
	
71 73
	/**
......
76 78
	 * @throws RasterDriverException 
77 79
	 * @throws NotSupportedExtensionException 
78 80
	 */
79
	@SuppressWarnings("deprecation")
80 81
	public CopyDataset(String src, String dst, IncrementableTask incrementableTask) throws LoadLayerException {
81 82
		fSrcName = src;
82 83
		fDstName = dst;
......
84 85
		File f = new File(fDstName);
85 86
		if(f.exists())
86 87
			f.delete();
87
		this.src = FLyrRasterSE.createLayer("lyr", new File(fSrcName), null);
88
		this.src = FLyrRasterSE.createLayer("lyr", new File(fSrcName));
88 89
	}
89 90
	
90 91
	/**
91 92
	 * Funci?n que realiza la copia del dataset
92 93
	 * @throws InterruptedException 
93 94
	 */
94
	public void copy() throws InterruptedException {
95
	public void copy() throws ProcessInterruptedException {
95 96
		// Creaci?n de par?metros
96
		WriterBufferServer dataWriter = new WriterBufferServer();
97
		DataServerWriter dataWriter = rManager.createDataServerWriter();
97 98
		int[] dValues = new int[] { 0, (int) src.getPxHeight(), (int) src.getPxWidth(), 0 };
98 99
		int[] drawableBands = new int[src.getBandCount()];
99 100
		for (int i = 0; i < src.getBandCount(); i++)
100 101
			drawableBands[i] = i;
101 102
		Params params = null;
102 103
		try {
103
			params = GeoRasterWriter.getWriter(fDstName).getParams();
104
			params = rManager.createWriter(fDstName).getParams();
104 105
		} catch (NotSupportedExtensionException e1) {
105 106
			RasterToolsUtil.messageBoxError("no_driver_escritura", this, e1);
106 107
		} catch (RasterDriverException e1) {
......
118 119
		clippingProcess.addParam("datawriter", dataWriter);
119 120
		clippingProcess.addParam("layer", src);
120 121
		clippingProcess.addParam("drawablebands", drawableBands);
121
		clippingProcess.addParam("colorInterpretation", src.getDataSource().getColorInterpretation());
122
		clippingProcess.addParam("colorInterpretation", src.getDataStore().getColorInterpretation());
122 123
		clippingProcess.addParam("onelayerperband", new Boolean(false));
123
		clippingProcess.addParam("interpolationmethod", new Integer(BufferInterpolation.INTERPOLATION_NearestNeighbour));
124
		clippingProcess.addParam("affinetransform", src.getAffineTransform(0));
124
		clippingProcess.addParam("interpolationmethod", new Integer(Buffer.INTERPOLATION_NearestNeighbour));
125
		clippingProcess.addParam("affinetransform", src.getAffineTransform());
125 126
		clippingProcess.addParam("resolution", new int[]{(int) src.getPxWidth(),
126 127
														 (int) src.getPxHeight()});
127 128
		clippingProcess.addParam("driverparams", params);
org.gvsig.raster.app/trunk/org.gvsig.raster.app/org.gvsig.raster.app.tools/src/main/java/org/gvsig/raster/app/extension/tool/saveraster/operation/RasterizerLayer.java
29 29

  
30 30
import org.gvsig.andami.PluginServices;
31 31
import org.gvsig.andami.messages.NotificationManager;
32
import org.gvsig.fmap.dal.coverage.dataset.Buffer;
33
import org.gvsig.fmap.dal.coverage.exception.ProcessInterruptedException;
34
import org.gvsig.fmap.dal.coverage.store.DataServerWriter;
32 35
import org.gvsig.fmap.dal.exception.ReadException;
33 36
import org.gvsig.fmap.geom.GeometryLocator;
34 37
import org.gvsig.fmap.geom.GeometryManager;
......
39 42
import org.gvsig.fmap.mapcontext.impl.DefaultMapContextDrawer;
40 43
import org.gvsig.fmap.mapcontext.layers.FLayers;
41 44
import org.gvsig.gui.beans.incrementabletask.IIncrementable;
42
import org.gvsig.raster.dataset.IBuffer;
43
import org.gvsig.raster.dataset.IDataWriter;
44 45
import org.gvsig.raster.fmap.layers.FLyrRasterSE;
45 46
import org.gvsig.raster.util.RasterToolsUtil;
46 47
import org.gvsig.tools.task.Cancellable;
47 48

  
49
import spatialindex.storagemanager.IBuffer;
50

  
48 51
/**
49 52
 * Sirve datos solicitados por los drivers que salvan a raster. Hereda de
50 53
 * Rasterizer y reescribe el m?todo readData que es el que ser? llamado desde el
......
53 56
 * @version 04/06/2007
54 57
 * @author Nacho Brodin (nachobrodin@gmail.com)
55 58
 */
56
public class RasterizerLayer implements IDataWriter, IIncrementable {
59
public class RasterizerLayer implements DataServerWriter, IIncrementable {
57 60
	private static final GeometryManager 	geomManager		= GeometryLocator.getGeometryManager();
58 61
	private ViewPort						viewPort 		= null;
59 62
	private ViewPort						viewPortBlock	= null;
......
149 152
	 * Compatibilidad con el piloto de raster
150 153
	 * @see readData
151 154
	 */
152
	public int[] readARGBData(int sX, int sY, int nBand) throws InterruptedException, OutOfMemoryError {
155
	public int[] readARGBData(int sX, int sY, int nBand) throws ProcessInterruptedException, OutOfMemoryError {
153 156
		return readData( sX, sY, nBand);
154 157
	}
155 158

  
156
	public int[] readData(int sX, int sY, int nBand) throws InterruptedException, OutOfMemoryError {
159
	public int[] readData(int sX, int sY, int nBand) throws ProcessInterruptedException, OutOfMemoryError {
157 160
		if (nBand == 0) { // Con nBand==0 se devuelven las 3 bandas
158 161
			nBlocks = (int) Math.ceil(imgHeight / (double) blockSize);
159 162
			image = new BufferedImage(sX, sY, BufferedImage.TYPE_INT_RGB);
......
169 172
					for (int i = 0; i < flayers.getLayersCount(); i++)
170 173
						if (flayers.getLayer(i) instanceof FLyrRasterSE) {
171 174
							FLyrRasterSE raster = (FLyrRasterSE) flayers.getLayer(i);
172
							if (raster.getDataType()[0] == IBuffer.TYPE_SHORT || raster.getDataType()[0] == IBuffer.TYPE_USHORT) {
175
							if (raster.getDataType()[0] == Buffer.TYPE_SHORT || raster.getDataType()[0] == Buffer.TYPE_USHORT) {
173 176
								//Statistic stats = raster.getSource().getFilterStack().getStats();
174 177
								//stats.history.add(stats.new History(raster.getName(), stats.minBandValue, stats.maxBandValue, stats.secondMinBandValue, stats.secondMaxBandValue));
175 178
							}
......
194 197
					for (int i = 0; i < flayers.getLayersCount(); i++)
195 198
						if (flayers.getLayer(i) instanceof FLyrRasterSE) {
196 199
							FLyrRasterSE raster = (FLyrRasterSE) flayers.getLayer(i);
197
							if (raster.getDataType()[0] == IBuffer.TYPE_SHORT || raster.getDataType()[0] == IBuffer.TYPE_USHORT) {
200
							if (raster.getDataType()[0] == Buffer.TYPE_SHORT || raster.getDataType()[0] == Buffer.TYPE_USHORT) {
198 201
								//raster.getDatasource().getFilterStack().getStats().history.clear();
199 202
								//Statistic stats = raster.getSource().getFilterStack().getStats();
200 203
							}
......
315 318
	public boolean isPausable() {
316 319
		return false;
317 320
	}
321

  
322
	public void setAlphaBuffer(Buffer alphaBuffer) {
323
		// TODO Auto-generated method stub
324
		
325
	}
326

  
327
	public void setBuffer(Buffer buffer, int nband) {
328
		// TODO Auto-generated method stub
329
		
330
	}
318 331
}
org.gvsig.raster.app/trunk/org.gvsig.raster.app/org.gvsig.raster.app.tools/src/main/java/org/gvsig/raster/app/extension/tool/saveraster/operation/ExternalCancellable.java
22 22
package org.gvsig.raster.app.extension.tool.saveraster.operation;
23 23

  
24 24
import org.gvsig.gui.beans.incrementabletask.IncrementableTask;
25
import org.gvsig.raster.dataset.IExternalCancellable;
26 25

  
27
public class ExternalCancellable implements IExternalCancellable {
26
public class ExternalCancellable implements org.gvsig.fmap.dal.coverage.store.ExternalCancellable {
28 27
	private IncrementableTask task = null;
29 28
	
30 29
	public ExternalCancellable(IncrementableTask task) {
org.gvsig.raster.app/trunk/org.gvsig.raster.app/org.gvsig.raster.app.tools/src/main/java/org/gvsig/raster/app/extension/tool/saveraster/operation/SaveRasterProcess.java
32 32
import javax.swing.JOptionPane;
33 33

  
34 34
import org.gvsig.andami.PluginServices;
35
import org.gvsig.fmap.dal.coverage.RasterLocator;
36
import org.gvsig.fmap.dal.coverage.RasterManager;
37
import org.gvsig.fmap.dal.coverage.dataset.Buffer;
38
import org.gvsig.fmap.dal.coverage.datastruct.Extent;
39
import org.gvsig.fmap.dal.coverage.datastruct.Params;
40
import org.gvsig.fmap.dal.coverage.datastruct.ViewPortData;
41
import org.gvsig.fmap.dal.coverage.exception.NotSupportedExtensionException;
42
import org.gvsig.fmap.dal.coverage.exception.ProcessInterruptedException;
43
import org.gvsig.fmap.dal.coverage.exception.RasterDriverException;
44
import org.gvsig.fmap.dal.coverage.process.TaskEventManager;
45
import org.gvsig.fmap.dal.coverage.store.DataServerWriter;
46
import org.gvsig.fmap.dal.coverage.store.RasterWriter;
35 47
import org.gvsig.fmap.geom.primitive.Envelope;
36 48
import org.gvsig.fmap.mapcontext.ViewPort;
37 49
import org.gvsig.fmap.mapcontext.exceptions.LoadLayerException;
38
import org.gvsig.raster.RasterLibrary;
39 50
import org.gvsig.raster.app.extension.raster.process.RasterProcess;
40
import org.gvsig.raster.dataset.GeoRasterWriter;
41
import org.gvsig.raster.dataset.IBuffer;
42
import org.gvsig.raster.dataset.IDataWriter;
43
import org.gvsig.raster.dataset.NotSupportedExtensionException;
44
import org.gvsig.raster.dataset.Params;
45
import org.gvsig.raster.dataset.RasterDriverException;
46
import org.gvsig.raster.datastruct.Extent;
47
import org.gvsig.raster.datastruct.ViewPortData;
48 51
import org.gvsig.raster.fmap.layers.FLyrRasterSE;
49
import org.gvsig.raster.process.RasterTask;
50
import org.gvsig.raster.process.RasterTaskQueue;
51 52
import org.gvsig.raster.util.RasterToolsUtil;
52
import org.gvsig.raster.util.RasterUtilities;
53 53

  
54 54
/**
55 55
 * Thread que se encarga de llamar a los writer para realizar la tarea de
......
67 67
	private boolean           supportImage      = false;
68 68
	private ArrayList<FLyrRasterSE>
69 69
                              layers            = null;
70
	private RasterManager     rManager          = RasterLocator.getManager();
71
	
70 72
	/*
71 73
	 * (non-Javadoc)
72 74
	 * @see org.gvsig.rastertools.RasterProcess#init()
......
85 87
	/**
86 88
	 * Procesos de escritura de una porci?n de la vista.
87 89
	 */
88
	public void process() throws InterruptedException {
89
		RasterTask task = RasterTaskQueue.get(Thread.currentThread().toString());
90
	public void process() throws ProcessInterruptedException {
91
		TaskEventManager task = rManager.getRasterTask();
90 92
		if(layers != null) {
91 93
			for (int i = 0; i < layers.size(); i++) 
92 94
				layers.get(i).setReadingData(Thread.currentThread().toString());
......
98 100
		
99 101
		//Creamos el driver
100 102
		Envelope env = viewPort.getAdjustedExtent();
101
		Extent ex = new Extent(env.getMinimum(0), env.getMaximum(1), env.getMaximum(0), env.getMinimum(1));
103
		Extent ex = rManager.createExtent(env.getMinimum(0), env.getMaximum(1), env.getMaximum(0), env.getMinimum(1));
102 104
		Dimension imgSz = viewPort.getImageSize();
103
		DefaultViewPortData vpData = new DefaultViewPortData(viewPort.getProjection(), ex, imgSz );
105
		ViewPortData vpData = rManager.createViewPortData(viewPort.getProjection(), ex, imgSz );
104 106
		AffineTransform at = new AffineTransform(vpData.getExtent().width() / imgSz.width,
105 107
												 0, 0,
106 108
												 -(vpData.getExtent().height() / imgSz.height),
......
109 111
		String oldFileName = fileName;
110 112
		if(supportImage) {
111 113
			fileName = fileName.substring(0, Math.min(fileName.lastIndexOf(File.separator) + 1, fileName.length() - 1));
112
			fileName += RasterLibrary.usesOnlyLayerName() + ".tif";
114
			fileName += rManager.getFileUtils().usesOnlyLayerName() + ".tif";
113 115
			writerParams = getWriterParams(fileName);
114 116
		}
115 117

  
......
126 128
					jp2Copy = new CopyDataset(fileName, oldFileName, incrementableTask);
127 129
					jp2Copy.copy();
128 130
					new File(fileName).delete();
129
					new File(RasterUtils.getRMFNameFromFileName(fileName)).delete();
131
					new File(rManager.getFileUtils().getRMFNameFromFileName(fileName)).delete();
130 132
				} catch (LoadLayerException e) {
131 133
				}
132 134
				jp2Copy = null;
......
168 170
	 * @throws IOException
169 171
	 * @throws InterruptedException
170 172
	 */
171
	private void write(String name, AffineTransform at, Params writerParams, IDataWriter rasterizerLayer) throws IOException, InterruptedException {
172
		RasterTask task = RasterTaskQueue.get(Thread.currentThread().toString());
173
		GeoRasterWriter geoRasterWriter = null;
173
	private void write(String name, AffineTransform at, Params writerParams, DataServerWriter rasterizerLayer) throws IOException, ProcessInterruptedException {
174
		TaskEventManager task = rManager.getRasterTask();
175
		RasterWriter geoRasterWriter = null;
174 176
		try {
175 177
			//TODO: FUNCIONALIDAD: Poner los gerWriter con la proyecci?n de la vista
176
			geoRasterWriter = GeoRasterWriter.getWriter(rasterizerLayer, name,
178
			geoRasterWriter = rManager.createWriter(rasterizerLayer, name,
177 179
												3, at, dimension.width,
178
												dimension.height, IBuffer.TYPE_IMAGE, writerParams, null);
180
												dimension.height, Buffer.TYPE_IMAGE, writerParams, null);
179 181
		} catch (NotSupportedExtensionException e) {
180 182
			RasterToolsUtil.messageBoxError("extension_no_soportada", (Component)PluginServices.getMainFrame(), e);
181 183
		} catch (RasterDriverException e) {
......
199 201
	 * @return WriterParams
200 202
	 */
201 203
	private Params getWriterParams(String name) {
202
		GeoRasterWriter writer = null;
203
		String ext = RasterUtils.getExtensionFromFileName(name);
204
		RasterWriter writer = null;
205
		String ext = rManager.getFileUtils().getExtensionFromFileName(name);
204 206
		try {
205 207
			if(writer == null) //La primera vez que se obtiene el driver
206
				writer = GeoRasterWriter.getWriter(name);
208
				writer = rManager.createWriter(name);
207 209
			else {
208
				String newType = GeoRasterWriter.getDriverType(ext);
210
				String newType = rManager.getProviderServices().getWriteDriverType(ext);
209 211
				String oldType = writer.getDriverName();
210 212
				if(!newType.equals(oldType))  //Cambio de driver despu?s de haber seleccionado y modificado las propiedades de uno
211
					writer = GeoRasterWriter.getWriter(name);
213
					writer = rManager.createWriter(name);
212 214
			}
213 215

  
214 216
			if(writer == null)
org.gvsig.raster.app/trunk/org.gvsig.raster.app/org.gvsig.raster.app.tools/src/main/java/org/gvsig/raster/app/extension/tool/saveas/SaveAsTocMenuEntry.java
35 35
import org.gvsig.app.project.documents.view.gui.DefaultViewPanel;
36 36
import org.gvsig.app.project.documents.view.toc.AbstractTocContextMenuAction;
37 37
import org.gvsig.app.project.documents.view.toc.ITocItem;
38
import org.gvsig.fmap.dal.coverage.RasterLocator;
39
import org.gvsig.fmap.dal.coverage.RasterManager;
40
import org.gvsig.fmap.dal.coverage.dataset.Buffer;
41
import org.gvsig.fmap.dal.coverage.datastruct.Params;
42
import org.gvsig.fmap.dal.coverage.exception.NotSupportedExtensionException;
43
import org.gvsig.fmap.dal.coverage.exception.RasterDriverException;
44
import org.gvsig.fmap.dal.coverage.store.DataServerWriter;
45
import org.gvsig.fmap.dal.coverage.store.RasterDataStore;
46
import org.gvsig.fmap.dal.coverage.util.ProviderServices;
38 47
import org.gvsig.fmap.mapcontext.layers.FLayer;
39 48
import org.gvsig.gui.beans.propertiespanel.PropertiesComponent;
40 49
import org.gvsig.gui.beans.swing.JFileChooser;
41 50
import org.gvsig.raster.app.extension.raster.gui.IGenericToolBarMenuItem;
42 51
import org.gvsig.raster.app.extension.raster.process.ClippingProcess;
43 52
import org.gvsig.raster.app.extension.raster.process.RasterProcess;
44
import org.gvsig.raster.buffer.BufferInterpolation;
45
import org.gvsig.raster.buffer.WriterBufferServer;
46
import org.gvsig.raster.dataset.GeoRasterWriter;
47
import org.gvsig.raster.dataset.IRasterDataSource;
48
import org.gvsig.raster.dataset.NotSupportedExtensionException;
49
import org.gvsig.raster.dataset.Params;
50
import org.gvsig.raster.dataset.RasterDriverException;
51 53
import org.gvsig.raster.fmap.layers.FLyrRasterSE;
52 54
import org.gvsig.raster.fmap.layers.ILayerState;
55
import org.gvsig.raster.fmap.layers.IRasterGeoOperations;
53 56
import org.gvsig.raster.fmap.layers.IRasterLayerActions;
54
import org.gvsig.raster.hierarchy.IRasterDataset;
55
import org.gvsig.raster.hierarchy.IRasterGeoOperations;
56
import org.gvsig.raster.hierarchy.IRasterOperations;
57
import org.gvsig.raster.fmap.layers.IRasterOperations;
57 58
import org.gvsig.raster.util.ExtendedFileFilter;
58 59
import org.gvsig.raster.util.RasterToolsUtil;
59
import org.gvsig.raster.util.RasterUtilities;
60 60

  
61 61

  
62 62
/**
......
170 170
	public void execute(ITocItem item, FLayer[] selectedItems) {
171 171
		FLayer fLayer = null;
172 172
		IWindow w = PluginServices.getMDIManager().getActiveWindow();
173
		RasterManager rManager = RasterLocator.getManager();
173 174

  
174 175
		if (selectedItems.length != 1)
175 176
			return;
176 177

  
177 178
		fLayer = selectedItems[0];
178 179

  
179
		if (!(fLayer instanceof IRasterOperations))
180
		if (!(fLayer instanceof FLyrRasterSE))
180 181
			return;
181 182

  
182 183
		chooser = new JFileChooser("SAVE_AS_TOC_MENU_ENTRY",JFileChooser.getLastPath("SAVE_AS_TOC_MENU_ENTRY", null));
......
184 185
		chooser.setDialogTitle(PluginServices.getText(this, "seleccionar_fichero"));
185 186

  
186 187
		// Cargamos las extensiones en la lista
187
		ArrayList extList = new ArrayList();
188
		ArrayList<String> extList = new ArrayList<String>();
188 189
		try {
189
			extList = GeoRasterWriter.getExtensionsSupported(((IRasterGeoOperations) fLayer).getDataType()[0], ((IRasterGeoOperations) fLayer).getBandCount(), false);
190
			ProviderServices serv = rManager.getProviderServices();
191
			extList = serv.getExtensionsSupported(((IRasterGeoOperations) fLayer).getDataType()[0], ((IRasterGeoOperations) fLayer).getBandCount(), false);
190 192
		} catch (RasterDriverException e2) {
191 193
			RasterToolsUtil.messageBoxError("error_extensiones_soportadas", chooser, e2);
192 194
			return;
......
214 216
			if (chooser.showSaveDialog(((AbstractViewPanel) w).getComponent(0)) == JFileChooser.APPROVE_OPTION) {
215 217
				// Creaci?n de par?metros
216 218
				String tit = PluginServices.getMDIManager().getWindowInfo(w).getTitle();
217
				WriterBufferServer dataWriter = new WriterBufferServer();
219
				DataServerWriter dataWriter = rManager.createDataServerWriter();
218 220
				int[] dValues = new int[] { 0, (int) ((IRasterOperations) fLayer).getPxHeight(), (int) ((IRasterOperations) fLayer).getPxWidth(), 0 };
219
				IRasterDataSource dataset = (IRasterDataSource)((IRasterDataset) fLayer).getDataSource();
221
				RasterDataStore datastore = ((FLyrRasterSE)fLayer).getDataStore();
220 222
				int[] drawableBands = new int[((IRasterOperations) fLayer).getBandCount()];
221 223
				for (int i = 0; i < ((IRasterOperations) fLayer).getBandCount(); i++)
222 224
					drawableBands[i] = i;
223 225
				JFileChooser.setLastPath("SAVE_AS_TOC_MENU_ENTRY", chooser.getCurrentDirectory());
224 226
				String file =  ((ExtendedFileFilter) chooser.getFileFilter()).getNormalizedFilename(chooser.getSelectedFile());
225 227
				
226
				long bytes = RasterUtils.getBytesFromRaster((int)((IRasterOperations) fLayer).getPxWidth(),
228
				long bytes = rManager.getRasterUtils().getBytesFromRaster((int)((IRasterOperations) fLayer).getPxWidth(),
227 229
						(int) ((IRasterOperations) fLayer).getPxHeight(),
228 230
						((IRasterGeoOperations) fLayer).getDataType()[0],
229 231
						((IRasterOperations) fLayer).getBandCount());
......
244 246
					return;
245 247
				Params params = null;
246 248
				try {
247
					params = GeoRasterWriter.getWriter(file).getParams();
249
					params = rManager.createWriter(file).getParams();
248 250
				} catch (NotSupportedExtensionException e1) {
249 251
					RasterToolsUtil.messageBoxError("no_driver_escritura", this, e1);
250 252
				} catch (RasterDriverException e1) {
......
260 262
				clippingProcess.addParam("datawriter", dataWriter);
261 263
				clippingProcess.addParam("layer", fLayer);
262 264
				clippingProcess.addParam("drawablebands", drawableBands);
263
				clippingProcess.addParam("colorInterpretation", dataset.getColorInterpretation());
265
				clippingProcess.addParam("colorInterpretation", datastore.getColorInterpretation());
264 266
				clippingProcess.addParam("onelayerperband", new Boolean(false));
265
				clippingProcess.addParam("interpolationmethod", new Integer(BufferInterpolation.INTERPOLATION_NearestNeighbour));
266
				clippingProcess.addParam("affinetransform", dataset.getAffineTransform(0));
267
				clippingProcess.addParam("interpolationmethod", new Integer(Buffer.INTERPOLATION_NearestNeighbour));
268
				clippingProcess.addParam("affinetransform", datastore.getAffineTransform());
267 269
				clippingProcess.addParam("resolution", new int[]{(int) ((IRasterOperations) fLayer).getPxWidth(),
268 270
																 (int) ((IRasterOperations) fLayer).getPxHeight()});
269 271

  
......
298 300
		PropertiesComponent panelProperty = new PropertiesComponent();
299 301
		Params params = null;
300 302
		try {
301
			params = GeoRasterWriter.getWriter(file).getParams();
303
			params = RasterLocator.getManager().createWriter(file).getParams();
302 304
		} catch (NotSupportedExtensionException e1) {
303 305
			JOptionPane.showMessageDialog((Component)PluginServices.getMainFrame(), PluginServices.getText(this, "no_driver_escritura"));
304 306
			return null;
org.gvsig.raster.app/trunk/org.gvsig.raster.app/org.gvsig.raster.app.tools/src/main/java/org/gvsig/raster/app/extension/tool/geolocation/listener/GeoLocationPanelListener.java
36 36

  
37 37
import org.gvsig.andami.PluginServices;
38 38
import org.gvsig.app.project.documents.view.gui.AbstractViewPanel;
39
import org.gvsig.fmap.dal.coverage.RasterLocator;
40
import org.gvsig.fmap.dal.coverage.RasterManager;
41
import org.gvsig.fmap.dal.coverage.datastruct.Extent;
42
import org.gvsig.fmap.dal.coverage.exception.RmfSerializerException;
43
import org.gvsig.fmap.dal.coverage.util.Historical;
39 44
import org.gvsig.fmap.geom.GeometryLocator;
40 45
import org.gvsig.fmap.geom.GeometryManager;
41 46
import org.gvsig.fmap.geom.Geometry.SUBTYPES;
......
49 54
import org.gvsig.raster.app.extension.tool.geolocation.ui.GeoLocationOpeningRasterPanel;
50 55
import org.gvsig.raster.app.extension.tool.geolocation.ui.GeoLocationPanel;
51 56
import org.gvsig.raster.app.extension.tool.geolocation.ui.GeolocationBaseClassPanel;
52
import org.gvsig.raster.dataset.serializer.RmfSerializerException;
53
import org.gvsig.raster.datastruct.Extent;
54 57
import org.gvsig.raster.util.ExtendedFileFilter;
55
import org.gvsig.raster.util.DefaultHistorical;
56 58
import org.gvsig.raster.util.RasterToolsUtil;
57 59
import org.slf4j.Logger;
58 60
import org.slf4j.LoggerFactory;
......
70 72
	private GeolocationBaseClassPanel		panel 					= null;
71 73
	private boolean                     	enableValueChangeEvent 	= false;
72 74
	private GeoLocationDialog               dialog                  = null;
75
	private RasterManager                   rManager                = RasterLocator.getManager();
73 76

  
74 77
	/**
75 78
	 * Crea un nuevo <code>GeoLocationPanelListener</code>
......
125 128
		if(e.getSource() == panel.getCancelButton())
126 129
			PluginServices.getMDIManager().closeWindow(((GeoLocationOpeningRasterPanel)panel).getDialog());
127 130

  
128
		DefaultHistorical hist = panel.getHistorical();
131
		Historical hist = panel.getHistorical();
129 132
		if(hist == null)
130 133
			return;
131 134

  
......
145 148

  
146 149
		//Cargamos la georreferenciaci?n del raster
147 150
		if(e.getSource() == panel.getResetButton())
148
			at = panel.getLayer().getDataSource().getOwnAffineTransform();
151
			at = panel.getLayer().getDataStore().getOwnAffineTransform();
149 152

  
150 153
		//Cargar la georreferenciaci?n desde tfw
151 154
		if(e.getSource() == panel.getTfwLoad()) {
......
252 255
			} catch (CreateEnvelopeException e) {
253 256
				logger.error("Error creating the envelope", e);
254 257
			}			
255
			tempExtent = new Extent(0, 0, widthPxImg, heightPxImg);
258
			tempExtent = rManager.createExtent(0, 0, widthPxImg, heightPxImg);
256 259
		} else{
257 260
			Envelope env=vp.getAdjustedExtent();
258
			tempExtent = new Extent(new Rectangle2D.Double(env.getMinimum(0),env.getMinimum(1),env.getLength(0),env.getLength(1)));
261
			tempExtent = rManager.createExtent(new Rectangle2D.Double(env.getMinimum(0),env.getMinimum(1),env.getLength(0),env.getLength(1)));
259 262
		}
260 263

  
261 264
		double ulX = 0D, ulY = 0D, lrX = 0D, lrY = 0D;
......
276 279
			ulX = centroX - (newAncho / 2);
277 280
			lrX = centroX + (newAncho / 2);
278 281
		}
279
		return new Extent(ulX, ulY, lrX, lrY);
282
		return rManager.createExtent(ulX, ulY, lrX, lrY);
280 283
	}
281 284

  
282 285
	/**
org.gvsig.raster.app/trunk/org.gvsig.raster.app/org.gvsig.raster.app.tools/src/main/java/org/gvsig/raster/app/extension/tool/geolocation/ui/GeoLocationDialog.java
32 32
import org.gvsig.andami.ui.mdiManager.IWindowListener;
33 33
import org.gvsig.andami.ui.mdiManager.WindowInfo;
34 34
import org.gvsig.app.project.documents.view.gui.AbstractViewPanel;
35
import org.gvsig.fmap.dal.coverage.exception.RmfSerializerException;
35 36
import org.gvsig.fmap.mapcontext.ViewPort;
36 37
import org.gvsig.fmap.mapcontext.layers.FLayer;
37 38
import org.gvsig.fmap.mapcontext.layers.FLayers;
38 39
import org.gvsig.fmap.mapcontrol.MapControl;
39 40
import org.gvsig.raster.app.extension.tool.geolocation.behavior.ITransformIO;
40
import org.gvsig.raster.dataset.serializer.RmfSerializerException;
41 41
import org.gvsig.raster.fmap.layers.FLyrRasterSE;
42 42
import org.gvsig.raster.util.RasterToolsUtil;
43 43

  
org.gvsig.raster.app/trunk/org.gvsig.raster.app/org.gvsig.raster.app.tools/src/main/java/org/gvsig/raster/app/extension/tool/geolocation/ui/GeoLocationPanel.java
32 32
import javax.swing.JPanel;
33 33

  
34 34
import org.gvsig.andami.PluginServices;
35
import org.gvsig.fmap.dal.coverage.RasterLocator;
36
import org.gvsig.fmap.dal.coverage.util.Historical;
37
import org.gvsig.fmap.dal.coverage.util.MathUtils;
35 38
import org.gvsig.fmap.mapcontext.ViewPort;
36 39
import org.gvsig.gui.beans.datainput.DataInputContainer;
37 40
import org.gvsig.raster.app.extension.tool.geolocation.listener.GeoLocationPanelListener;
38 41
import org.gvsig.raster.fmap.layers.FLyrRasterSE;
39
import org.gvsig.raster.util.DefaultHistorical;
40
import org.gvsig.raster.util.MathUtils;
41 42

  
42 43

  
43 44
/**
......
264 265
	 * @see org.gvsig.rastertools.geolocation.ui.GeolocationBaseClassPanel#activeButtons()
265 266
	 */
266 267
	public void activeButtons() {
267
		DefaultHistorical affineTransformHist = getLayer().getAffineTransformHistorical();
268
		Historical affineTransformHist = getLayer().getAffineTransformHistorical();
268 269
		if(!affineTransformHist.existNext())
269 270
			next.setEnabled(false);
270 271
		else
......
302 303
	 */
303 304
	public void loadTransform(AffineTransform at) {
304 305
		listener.setEnableValueChangeEvent(false);
305
		setUlx(String.valueOf(MathUtils.format(at.getTranslateX(), tailValue)));
306
		setUly(String.valueOf(MathUtils.format(at.getTranslateY(), tailValue)));
307
		setPsx(String.valueOf(MathUtils.format(at.getScaleX(), tailValue)));
308
		setPsy(String.valueOf(MathUtils.format(at.getScaleY(), tailValue)));
309
		setRotx(String.valueOf(MathUtils.format(at.getShearX(), tailValue)));
310
		setRoty(String.valueOf(MathUtils.format(at.getShearY(), tailValue)));
306
		MathUtils math = RasterLocator.getManager().getMathUtils();
307
		setUlx(String.valueOf(math.format(at.getTranslateX(), tailValue)));
308
		setUly(String.valueOf(math.format(at.getTranslateY(), tailValue)));
309
		setPsx(String.valueOf(math.format(at.getScaleX(), tailValue)));
310
		setPsy(String.valueOf(math.format(at.getScaleY(), tailValue)));
311
		setRotx(String.valueOf(math.format(at.getShearX(), tailValue)));
312
		setRoty(String.valueOf(math.format(at.getShearY(), tailValue)));
311 313
		listener.setEnableValueChangeEvent(true);
312 314
	}
313 315
	
org.gvsig.raster.app/trunk/org.gvsig.raster.app/org.gvsig.raster.app.tools/src/main/java/org/gvsig/raster/app/extension/tool/geolocation/ui/GeoLocationOpeningRasterDialog.java
30 30
import org.gvsig.andami.ui.mdiManager.IWindow;
31 31
import org.gvsig.andami.ui.mdiManager.IWindowListener;
32 32
import org.gvsig.andami.ui.mdiManager.WindowInfo;
33
import org.gvsig.fmap.dal.coverage.exception.RmfSerializerException;
33 34
import org.gvsig.fmap.mapcontrol.MapControl;
34 35
import org.gvsig.raster.app.extension.tool.geolocation.behavior.ITransformIO;
35
import org.gvsig.raster.dataset.serializer.RmfSerializerException;
36 36
import org.gvsig.raster.fmap.layers.FLyrRasterSE;
37 37
import org.gvsig.raster.util.RasterToolsUtil;
38 38

  
org.gvsig.raster.app/trunk/org.gvsig.raster.app/org.gvsig.raster.app.tools/src/main/java/org/gvsig/raster/app/extension/tool/geolocation/ui/GeolocationBaseClassPanel.java
26 26
import javax.swing.JButton;
27 27
import javax.swing.JPanel;
28 28

  
29
import org.gvsig.fmap.dal.coverage.util.Historical;
29 30
import org.gvsig.fmap.mapcontext.ViewPort;
30 31
import org.gvsig.fmap.mapcontrol.MapControl;
31 32
import org.gvsig.gui.beans.datainput.DataInputContainer;
32 33
import org.gvsig.raster.app.extension.tool.geolocation.listener.GeoLocationPanelListener;
33 34
import org.gvsig.raster.fmap.layers.FLyrRasterSE;
34
import org.gvsig.raster.util.DefaultHistorical;
35 35
/**
36 36
 * Clase base para los paneles que tienen la geolocalizaci?n. Tiene los m?todos necesarios
37 37
 * para que el listener que gestiona sus acciones sea com?n.
......
251 251
	 * Obtiene el historico de transformaciones
252 252
	 * @return Historical
253 253
	 */
254
	public DefaultHistorical getHistorical() {
254
	public Historical getHistorical() {
255 255
		return lyr.getAffineTransformHistorical();
256 256
	}
257 257
}
org.gvsig.raster.app/trunk/org.gvsig.raster.app/org.gvsig.raster.app.tools/src/main/java/org/gvsig/raster/app/extension/tool/geolocation/ui/GeoLocationOpeningRasterCornersPanel.java
32 32
import javax.swing.JPanel;
33 33

  
34 34
import org.gvsig.andami.PluginServices;
35
import org.gvsig.fmap.dal.coverage.RasterLocator;
36
import org.gvsig.fmap.dal.coverage.util.MathUtils;
35 37
import org.gvsig.fmap.mapcontext.ViewPort;
36 38
import org.gvsig.gui.beans.datainput.DataInputContainer;
37 39
import org.gvsig.raster.app.extension.tool.geolocation.listener.GeoLocationPanelListener;
38 40
import org.gvsig.raster.fmap.layers.FLyrRasterSE;
39
import org.gvsig.raster.util.MathUtils;
40 41

  
41 42

  
42 43
/**
......
170 171
	 */
171 172
	public void loadTransform(AffineTransform at) {
172 173
		listener.setEnableValueChangeEvent(false);
173
		setUlx(String.valueOf(MathUtils.format(at.getTranslateX(), tailValue)));
174
		setUly(String.valueOf(MathUtils.format(at.getTranslateY(), tailValue)));
175
		setLrx(String.valueOf(MathUtils.format(at.getTranslateX() + (at.getScaleX() * getLayer().getPxWidth()), tailValue)));
176
		setLry(String.valueOf(MathUtils.format(at.getTranslateY() + (at.getScaleY()  * getLayer().getPxHeight()), tailValue)));		
174
		MathUtils math = RasterLocator.getManager().getMathUtils();
175
		setUlx(String.valueOf(math.format(at.getTranslateX(), tailValue)));
176
		setUly(String.valueOf(math.format(at.getTranslateY(), tailValue)));
177
		setLrx(String.valueOf(math.format(at.getTranslateX() + (at.getScaleX() * getLayer().getPxWidth()), tailValue)));
178
		setLry(String.valueOf(math.format(at.getTranslateY() + (at.getScaleY()  * getLayer().getPxHeight()), tailValue)));		
177 179
		listener.setEnableValueChangeEvent(true);
178 180
	}
179 181

  
org.gvsig.raster.app/trunk/org.gvsig.raster.app/org.gvsig.raster.app.tools/src/main/java/org/gvsig/raster/app/extension/tool/geolocation/ui/GeoLocationOpeningRasterTransfPanel.java
29 29
import javax.swing.JPanel;
30 30

  
31 31
import org.gvsig.andami.PluginServices;
32
import org.gvsig.fmap.dal.coverage.RasterLocator;
33
import org.gvsig.fmap.dal.coverage.util.MathUtils;
32 34
import org.gvsig.fmap.mapcontext.ViewPort;
33 35
import org.gvsig.gui.beans.datainput.DataInputContainer;
34 36
import org.gvsig.raster.app.extension.tool.geolocation.listener.GeoLocationPanelListener;
35 37
import org.gvsig.raster.fmap.layers.FLyrRasterSE;
36
import org.gvsig.raster.util.MathUtils;
37 38

  
38 39

  
39 40
/**
......
162 163
	 */
163 164
	public void loadTransform(AffineTransform at) {
164 165
		listener.setEnableValueChangeEvent(false);
165
		setUlx(String.valueOf(MathUtils.format(at.getTranslateX(), tailValue)));
166
		setUly(String.valueOf(MathUtils.format(at.getTranslateY(), tailValue)));
167
		setPsx(String.valueOf(MathUtils.format(at.getScaleX(), tailValue)));
168
		setPsy(String.valueOf(MathUtils.format(at.getScaleY(), tailValue)));
169
		setRotx(String.valueOf(MathUtils.format(at.getShearX(), tailValue)));
170
		setRoty(String.valueOf(MathUtils.format(at.getShearY(), tailValue)));
166
		MathUtils math = RasterLocator.getManager().getMathUtils();
167
		setUlx(String.valueOf(math.format(at.getTranslateX(), tailValue)));
168
		setUly(String.valueOf(math.format(at.getTranslateY(), tailValue)));
169
		setPsx(String.valueOf(math.format(at.getScaleX(), tailValue)));
170
		setPsy(String.valueOf(math.format(at.getScaleY(), tailValue)));
171
		setRotx(String.valueOf(math.format(at.getShearX(), tailValue)));
172
		setRoty(String.valueOf(math.format(at.getShearY(), tailValue)));
171 173
		listener.setEnableValueChangeEvent(true);
172 174
	}
173 175
	
org.gvsig.raster.app/trunk/org.gvsig.raster.app/org.gvsig.raster.app.tools/src/main/java/org/gvsig/raster/app/extension/tool/geolocation/behavior/RotationBehavior.java
31 31

  
32 32
import javax.swing.ImageIcon;
33 33

  
34
import org.gvsig.fmap.dal.coverage.datastruct.Extent;
34 35
import org.gvsig.fmap.mapcontext.ViewPort;
35 36
import org.gvsig.fmap.mapcontrol.MapControlDrawer;
36 37
import org.gvsig.fmap.mapcontrol.tools.BehaviorException;
37 38
import org.gvsig.fmap.mapcontrol.tools.Listeners.RectangleListener;
38 39
import org.gvsig.fmap.mapcontrol.tools.Listeners.ToolListener;
39
import org.gvsig.raster.datastruct.Extent;
40 40
import org.gvsig.raster.util.RasterToolsUtil;
41 41

  
42 42

  
......
119 119
		if(lyr == null)
120 120
			return ;
121 121

  
122
		Extent ext = lyr.getDataSource().getExtent();
122
		Extent ext = lyr.getDataStore().getExtent();
123 123
		AffineTransform atImg = lyr.getAffineTransform();
124 124

  
125 125
		//Establecer una escala entre las coordenadas de la vista y las coordenadas pixel
......
305 305

  
306 306
		//Comprobar si est? dentro del raster
307 307
		Point2D p1 = new Point2D.Double(0, 0);
308
		Point2D p2 = new Point2D.Double(lyr.getDataSource().getWidth(), lyr.getDataSource().getHeight());
308
		Point2D p2 = new Point2D.Double(lyr.getDataStore().getWidth(), lyr.getDataStore().getHeight());
309 309

  
310 310
		//esquina superior izquierda
311 311
		if ((e.getX() > (p1.getX() - PX_SELEC) && e.getX() <= (p1.getX() + LONG_CORNER) && e.getY() <= p1.getY() && e.getY() > (p1.getY() - PX_SELEC)) ||
org.gvsig.raster.app/trunk/org.gvsig.raster.app/org.gvsig.raster.app.tools/src/main/java/org/gvsig/raster/app/extension/tool/geolocation/behavior/ShearBehavior.java
30 30

  
31 31
import javax.swing.ImageIcon;
32 32

  
33
import org.gvsig.fmap.dal.coverage.datastruct.Extent;
33 34
import org.gvsig.fmap.mapcontext.ViewPort;
34 35
import org.gvsig.fmap.mapcontrol.MapControlDrawer;
35 36
import org.gvsig.fmap.mapcontrol.tools.BehaviorException;
36 37
import org.gvsig.fmap.mapcontrol.tools.Listeners.RectangleListener;
37 38
import org.gvsig.fmap.mapcontrol.tools.Listeners.ToolListener;
38
import org.gvsig.raster.datastruct.Extent;
39 39
import org.gvsig.raster.util.RasterToolsUtil;
40 40

  
41 41

  
......
120 120
		if(lyr == null)
121 121
			return ;
122 122

  
123
		Extent ext = lyr.getDataSource().getExtent();
123
		Extent ext = lyr.getDataStore().getExtent();
124 124
		AffineTransform atImg = lyr.getAffineTransform();
125 125

  
126 126
		//Establecer una escala entre las coordenadas de la vista y las coordenadas pixel
......
310 310

  
311 311
		//Comprobar si est? dentro del raster
312 312
		Point2D p1 = new Point2D.Double(0, 0);
313
		Point2D p2 = new Point2D.Double(lyr.getDataSource().getWidth(), lyr.getDataSource().getHeight());
313
		Point2D p2 = new Point2D.Double(lyr.getDataStore().getWidth(), lyr.getDataStore().getHeight());
314 314

  
315 315
		//System.out.println("--->" + e.getX() + " , " + e.getY());
316 316

  
org.gvsig.raster.app/trunk/org.gvsig.raster.app/org.gvsig.raster.app.tools/src/main/java/org/gvsig/raster/app/extension/tool/geolocation/behavior/ScaleBehavior.java
30 30

  
31 31
import javax.swing.ImageIcon;
32 32

  
33
import org.gvsig.fmap.dal.coverage.datastruct.Extent;
33 34
import org.gvsig.fmap.mapcontext.ViewPort;
34 35
import org.gvsig.fmap.mapcontrol.MapControlDrawer;
35 36
import org.gvsig.fmap.mapcontrol.tools.BehaviorException;
36 37
import org.gvsig.fmap.mapcontrol.tools.Listeners.RectangleListener;
37 38
import org.gvsig.fmap.mapcontrol.tools.Listeners.ToolListener;
38
import org.gvsig.raster.datastruct.Extent;
39 39
import org.gvsig.raster.util.RasterToolsUtil;
40 40

  
41 41

  
......
119 119
		if(lyr == null)
120 120
			return ;
121 121

  
122
		Extent ext = lyr.getDataSource().getExtent();
122
		Extent ext = lyr.getDataStore().getExtent();
123 123
		AffineTransform atImg = lyr.getAffineTransform();
124 124

  
125 125
		//Establecer una escala entre las coordenadas de la vista y las coordenadas pixel
......
413 413

  
414 414
		//Comprobar si est? dentro del raster
415 415
		Point2D p1 = new Point2D.Double(0, 0);
416
		Point2D p2 = new Point2D.Double(lyr.getDataSource().getWidth(), lyr.getDataSource().getHeight());
416
		Point2D p2 = new Point2D.Double(lyr.getDataStore().getWidth(), lyr.getDataStore().getHeight());
417 417

  
418 418
		//Fuera del raster
419 419
		if(e.getX() < p1.getX() || e.getX() > p2.getX() || e.getY() < p1.getY() || e.getY() > p2.getY() ) {
org.gvsig.raster.app/trunk/org.gvsig.raster.app/org.gvsig.raster.app.tools/src/main/java/org/gvsig/raster/app/extension/tool/geolocation/behavior/TranslateBehavior.java
32 32
import java.awt.geom.Point2D;
33 33

  
34 34
import org.gvsig.andami.PluginServices;
35
import org.gvsig.fmap.dal.coverage.datastruct.Extent;
35 36
import org.gvsig.fmap.mapcontext.ViewPort;
36 37
import org.gvsig.fmap.mapcontrol.MapControlDrawer;
37 38
import org.gvsig.fmap.mapcontrol.tools.BehaviorException;
38 39
import org.gvsig.fmap.mapcontrol.tools.Listeners.ToolListener;
39
import org.gvsig.raster.datastruct.Extent;
40 40
import org.gvsig.raster.fmap.layers.FLyrRasterSE;
41 41
import org.gvsig.raster.util.RasterToolsUtil;
42 42

  
org.gvsig.raster.app/trunk/org.gvsig.raster.app/org.gvsig.raster.app.tools/src/main/java/org/gvsig/raster/app/extension/tool/reproject/ReprojectProcess.java
25 25

  
26 26
import org.cresques.cts.IProjection;
27 27
import org.gvsig.andami.PluginServices;
28
import org.gvsig.fmap.dal.coverage.exception.ProcessInterruptedException;
28 29
import org.gvsig.raster.app.extension.raster.process.RasterProcess;
29 30
import org.gvsig.raster.fmap.layers.FLyrRasterSE;
30 31
import org.gvsig.raster.util.RasterToolsUtil;
......
59 60
	/**
60 61
	 * M?todo donde se ejecutar? el Thread, aqu? se reproyecta el raster.
61 62
	 */
62
	public void process() throws InterruptedException {
63
	public void process() throws ProcessInterruptedException {
63 64
		long t1 = new java.util.Date().getTime();
64 65
		insertLineLog(PluginServices.getText(this, "reprojecting"));
65 66
		reproject = new Reproject(lyr, filename);
org.gvsig.raster.app/trunk/org.gvsig.raster.app/org.gvsig.raster.app.tools/src/main/java/org/gvsig/raster/app/extension/tool/reproject/Reproject.java
24 24
import java.io.File;
25 25

  
26 26
import org.cresques.cts.IProjection;
27
import org.gvsig.raster.dataset.GeoRasterWriter;
28
import org.gvsig.raster.dataset.NotSupportedExtensionException;
29
import org.gvsig.raster.dataset.RasterDriverException;
27
import org.gvsig.fmap.dal.coverage.RasterLocator;
28
import org.gvsig.fmap.dal.coverage.exception.NotSupportedExtensionException;
29
import org.gvsig.fmap.dal.coverage.exception.RasterDriverException;
30 30
import org.gvsig.raster.fmap.layers.FLyrRasterSE;
31 31

  
32 32
import es.gva.cit.jgdal.GdalWarp;
......
150 150
//			ADRG_FORMAT = 27;     // No reproyecta
151 151

  
152 152
//			warper.setFormat(27);
153
			return warper.warp(epsg, source, pathDest, GeoRasterWriter.getWriter(pathDest).getDriverName());
153
			return warper.warp(epsg, source, pathDest, RasterLocator.getManager().createWriter(pathDest).getDriverName());
154 154
		} catch (NotSupportedExtensionException e) {
155 155
			throw new ReprojectException("Error al reproyectar.");
156 156
		} catch (RasterDriverException e) {
org.gvsig.raster.app/trunk/org.gvsig.raster.app/org.gvsig.raster.app.tools/src/main/java/org/gvsig/raster/app/extension/raster/process/ClippingProcess.java
34 34
import org.gvsig.fmap.dal.coverage.RasterLocator;
35 35
import org.gvsig.fmap.dal.coverage.RasterManager;
36 36
import org.gvsig.fmap.dal.coverage.dataset.Buffer;
37
import org.gvsig.fmap.dal.coverage.datastruct.NoData;
37 38
import org.gvsig.fmap.dal.coverage.datastruct.Params;
38 39
import org.gvsig.fmap.dal.coverage.exception.InvalidSetViewException;
39 40
import org.gvsig.fmap.dal.coverage.exception.NotSupportedExtensionException;
40 41
import org.gvsig.fmap.dal.coverage.exception.ProcessInterruptedException;
41 42
import org.gvsig.fmap.dal.coverage.exception.RasterDriverException;
42 43
import org.gvsig.fmap.dal.coverage.exception.RmfSerializerException;
43
import org.gvsig.fmap.dal.coverage.grid.RasterFilterList;
44
import org.gvsig.fmap.dal.coverage.process.IncrementableTask;
44 45
import org.gvsig.fmap.dal.coverage.store.DataServerWriter;
45 46
import org.gvsig.fmap.dal.coverage.store.RasterDataStore;
46 47
import org.gvsig.fmap.dal.coverage.store.RasterQuery;
......
88 89
	private int                           resolutionWidth     = 0;
89 90
	private int                           resolutionHeight    = 0;
90 91
	
91
	private Buffer                       buffer              = null;
92
	private Buffer                        buffer              = null;
93
	private IncrementableTask             task                = null;
92 94

  
93 95
	/**
94 96
	 * Par?metros obligatorios al proceso:
......
105 107
	 * <LI>resolution: Ancho y alto de la capa de salida</LI>
106 108
	 * </UL> 
107 109
	 */
110
	@SuppressWarnings("unchecked")
108 111
	public void init() {
109 112
		fileName = getStringParam("filename");
110 113
		writerBufferServer = (DataServerWriter) getParam("datawriter");
......
154 157
			return;
155 158
		}
156 159

  
157
		RasterFilterList rasterFilterList = rasterSE.getRender().getFilterList();
158

  
159 160
		// Guardamos en el RMF el valor NoData
160 161
		if (Configuration.getValue("nodata_transparency_enabled", Boolean.FALSE).booleanValue()) {
161 162
			try {
162
				RasterDataset.saveObjectToRmfFile(fileName, NoData.class, new NoData(rasterSE.getNoDataValue(), rasterSE.getNoDataType(), rasterSE.getDataType()[0]));
163
				RasterLocator.getManager().getProviderServices().saveObjectToRmfFile(fileName, 
164
							NoData.class, 
165
							RasterLocator.getManager().createNoData(rasterSE.getNoDataValue(), rasterSE.getNoDataType(), rasterSE.getDataType()[0]));		
163 166
			} catch (RmfSerializerException e) {
164 167
				RasterToolsUtil.messageBoxError("error_salvando_rmf", this, e);
165 168
			}
166 169
		}
167 170

  
168 171
		// Guardamos en el RMF la tabla de color
169
		ColorTableFilter colorTableFilter = (ColorTableFilter) rasterFilterList.getByName(ColorTableFilter.names[0]);
170
		if (colorTableFilter != null) {
171
			GridPalette gridPalette = new GridPalette((ColorTable) colorTableFilter.getColorTable().clone());
172
			try {
173
				RasterDataset.saveObjectToRmfFile(fileName, ColorTable.class, (ColorTable) gridPalette);
174
			} catch (RmfSerializerException e) {
175
				RasterToolsUtil.messageBoxError("error_salvando_rmf", this, e);
176
			}
172

  
173
		ColorTable colorTable = rasterSE.getRender().getColorTable();
174
		try {
175
			RasterLocator.getManager().getProviderServices().saveObjectToRmfFile(fileName, ColorTable.class, colorTable);
176
		} catch (RmfSerializerException e) {
177
			RasterToolsUtil.messageBoxError("error_salvando_rmf", this, e);
177 178
		}
178 179
	}
179 180

  
......
182 183
	 */
183 184
	public void process() throws ProcessInterruptedException {
184 185
		RasterDataStore dstoreCopy = null;
186
		RasterUtils util = RasterLocator.getManager().getRasterUtils();
187
		task = null;
188
		
185 189
		try {
186 190
			long t2;
187 191
			long t1 = new java.util.Date().getTime();
......
195 199
			if(interpolationMethod != Buffer.INTERPOLATION_Undefined) {
196 200
				try {
197 201
					if(pValues != null) {
198
						if (RasterUtils.isBufferTooBig(new double[] { pValues[0], pValues[3], pValues[2], pValues[1] }, drawableBands.length))
202
						if (util.isBufferTooBig(new double[] { pValues[0], pValues[3], pValues[2], pValues[1] }, drawableBands.length))
199 203
							query.setReadOnly(true);
200 204
						query.setAreaOfInterest(pValues[0], pValues[3], pValues[2] - pValues[0], pValues[1] - pValues[3]);
201 205
					} else if(wcValues != null) {
......
211 215
				insertLineLog(RasterToolsUtil.getText(this, "interpolando"));
212 216

  
213 217
				buffer = buffer.getAdjustedWindow(resolutionWidth, resolutionHeight, interpolationMethod);
218
				task = buffer.getIncrementableTask();
214 219
			} else {
215 220
				try {
216
					if (RasterUtils.isBufferTooBig(new double[] { 0, 0, resolutionWidth, resolutionHeight }, drawableBands.length))
221
					if (util.isBufferTooBig(new double[] { 0, 0, resolutionWidth, resolutionHeight }, drawableBands.length))
217 222
						query.setReadOnly(true);
218 223
					if(pValues != null) 
219 224
						query.setAreaOfInterest(pValues[0], pValues[3], Math.abs(pValues[2] - pValues[0]) + 1, Math.abs(pValues[1] - pValues[3]) + 1, resolutionWidth, resolutionHeight);
......
439 444
	 * @see org.gvsig.gui.beans.incrementabletask.IIncrementable#getPercent()
440 445
	 */
441 446
	public int getPercent() {
442
		if (buffer != null) {
443
			BufferInterpolation interpolation = ((RasterBuffer) buffer).getLastInterpolation();
444
			
445
			if (interpolation != null)
446
				if ((interpolation.getPercent() > 0) && (interpolation.getPercent() < 99))
447
					return interpolation.getPercent();
447
		if (task != null) {
448
			if ((task.getPercent() > 0) && (task.getPercent() < 99))
449
				return task.getPercent();
448 450
		}
449 451
		
450 452
		return (writerBufferServer != null) ? writerBufferServer.getPercent() : 0;
org.gvsig.raster.app/trunk/org.gvsig.raster.app/org.gvsig.raster.app.tools/src/main/java/org/gvsig/raster/app/extension/raster/process/FilterProcess.java
27 27
import javax.swing.SwingUtilities;
28 28

  
29 29
import org.gvsig.andami.PluginServices;
30
import org.gvsig.fmap.dal.coverage.RasterLocator;
31
import org.gvsig.fmap.dal.coverage.RasterManager;
32
import org.gvsig.fmap.dal.coverage.dataset.Buffer;
33
import org.gvsig.fmap.dal.coverage.datastruct.NoData;
34
import org.gvsig.fmap.dal.coverage.exception.FilterManagerException;
35
import org.gvsig.fmap.dal.coverage.exception.FilterTypeException;
36
import org.gvsig.fmap.dal.coverage.exception.InvalidSetViewException;
37
import org.gvsig.fmap.dal.coverage.exception.NotSupportedExtensionException;
38
import org.gvsig.fmap.dal.coverage.exception.ProcessInterruptedException;
39
import org.gvsig.fmap.dal.coverage.exception.RasterDriverException;
40
import org.gvsig.fmap.dal.coverage.exception.RmfSerializerException;
41
import org.gvsig.fmap.dal.coverage.grid.Grid;
42
import org.gvsig.fmap.dal.coverage.grid.RasterFilterList;
43
import org.gvsig.fmap.dal.coverage.grid.RasterFilterListManager;
44
import org.gvsig.fmap.dal.coverage.store.DataServerWriter;
45
import org.gvsig.fmap.dal.coverage.store.RasterDataStore;
46
import org.gvsig.fmap.dal.coverage.store.RasterQuery;
47
import org.gvsig.fmap.dal.coverage.store.RasterWriter;
48
import org.gvsig.fmap.dal.coverage.store.props.ColorInterpretation;
30 49
import org.gvsig.raster.app.extension.raster.bean.previewbase.ParamStruct;
31
import org.gvsig.raster.buffer.BufferFactory;
32
import org.gvsig.raster.buffer.WriterBufferServer;
33
import org.gvsig.raster.buffer.cache.RasterReadOnlyBuffer;
34
import org.gvsig.raster.dataset.GeoRasterWriter;
35
import org.gvsig.raster.dataset.IBuffer;
36
import org.gvsig.raster.dataset.IRasterDataSource;
37
import org.gvsig.raster.dataset.NotSupportedExtensionException;
38
import org.gvsig.raster.dataset.RasterDataset;
39
import org.gvsig.raster.dataset.RasterDriverException;
40
import org.gvsig.raster.dataset.properties.DatasetColorInterpretation;
41
import org.gvsig.raster.dataset.serializer.RmfSerializerException;
42
import org.gvsig.raster.datastruct.NoData;
43
import org.gvsig.raster.datastruct.Transparency;
44 50
import org.gvsig.raster.fmap.config.Configuration;
45 51
import org.gvsig.raster.fmap.layers.FLyrRasterSE;
46
import org.gvsig.raster.grid.Grid;
47
import org.gvsig.raster.grid.filter.FilterTypeException;
48
import org.gvsig.raster.grid.filter.IRasterFilterListManager;
49
import org.gvsig.raster.grid.filter.RasterFilterList;
50
import org.gvsig.raster.grid.filter.RasterFilterListManager;
51
import org.gvsig.raster.hierarchy.IRasterRendering;
52 52
import org.gvsig.raster.util.RasterToolsUtil;
53 53

  
54 54
/**
......
60 60
 */
61 61
public class FilterProcess extends RasterProcess {
62 62
	private String            filename         = "";
63
	private IRasterDataSource rasterDataSource = null;
63
	private RasterDataStore   rasterDataSource = null;
64 64
	private ArrayList         listFilterUsed   = null;
65 65

  
66 66
	private RasterFilterList  rasterFilterList = null;
67
	private GeoRasterWriter   geoRasterWriter  = null;
68
	private IRasterRendering  rendering        = null;
67
	private RasterWriter      geoRasterWriter  = null;
69 68
	private FLyrRasterSE      lyr              = null;
69
	private RasterManager     rManager         = RasterLocator.getManager();
70 70

  
71 71
	/*
72 72
	 * (non-Javadoc)
73 73
	 * @see org.gvsig.rastertools.RasterProcess#init()
74 74
	 */
75 75
	public void init() {
76
		rendering = (IRasterRendering) getParam("rendering");
77 76
		filename = getStringParam("filename");
78
		rasterDataSource = (IRasterDataSource) getParam("rasterdatasource");
79 77
		listFilterUsed = (ArrayList) getParam("listfilterused");
80 78
		lyr = (FLyrRasterSE)getParam("layer");
79
		rasterDataSource = lyr.getDataStore();
81 80
	}
82 81

  
83 82
	/**
......
85 84
	 * rendering y no podemos saber que interpretacion l?gica ten?a antes.
86 85
	 * @param geoRasterWriter
87 86
	 */
88
	private DatasetColorInterpretation getColorIntepretation(IBuffer buffer, Grid grid) {
89
		DatasetColorInterpretation colorInterpretation = null;
87
	private ColorInterpretation getColorIntepretation(Buffer buffer, Grid grid) {
88
		ColorInterpretation colorInterpretation = null;
90 89

  
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff