Revision 20080 trunk/extensions/extRasterTools-SE/src/org/gvsig/raster/beans/previewbase/PreviewRequestManager.java

View differences:

PreviewRequestManager.java
23 23

  
24 24
import org.gvsig.fmap.raster.layers.FLyrRasterSE;
25 25
import org.gvsig.gui.beans.imagenavigator.IClientImageNavigator;
26
import org.gvsig.raster.dataset.InvalidSetViewException;
27
import org.gvsig.raster.dataset.io.RasterDriverException;
28 26
import org.gvsig.raster.datastruct.Extent;
29
import org.gvsig.raster.datastruct.ViewPortData;
30 27
import org.gvsig.raster.grid.filter.FilterTypeException;
31 28
import org.gvsig.raster.hierarchy.IRasterRendering;
32 29
import org.gvsig.raster.util.RasterToolsUtil;
33 30

  
31
import com.hardcode.gdbms.driver.exceptions.ReadDriverException;
34 32
import com.iver.andami.PluginServices;
35 33
import com.iver.cit.gvsig.fmap.ViewPort;
36 34
import com.iver.cit.gvsig.fmap.layers.FLayer;
......
94 92

  
95 93
		IRasterRendering rendering = ((IRasterRendering) previewLayer);
96 94

  
97
		if ((rendering == null) || ((x2 - x1) == 0.0) || ((y2 - y1) == 0.0))
98
			return;
99

  
100
		rendering.getRenderFilterList().pushStatus();
101

  
102 95
		// Inicializo el ViewPort
103 96
		ViewPort vp = new ViewPort(null);
104 97
		Extent extent = new Extent(x1, y1, x2, y2);
105 98
		vp.setExtent(extent.toRectangle2D());
106 99
		vp.setImageSize(new Dimension(width, height));
107
		vp.refreshExtent();
108
		
109
		if (vp.getAdjustedExtent() == null)
110
			return;
111 100

  
112
		// Defino la posicion como se hace en FryrRasterSE.draw()
113
		extent = new Extent(vp.getAdjustedExtent());
114
		Dimension imgSz = vp.getImageSize();
115
		ViewPortData vp2 = new ViewPortData(vp.getProjection(), extent, imgSz);
116
		vp2.setMat(vp.getAffineTransform());
117

  
101
		rendering.getRenderFilterList().pushStatus();
118 102
		try {
119 103
			renderProcess.process(rendering);
120 104
		} catch (FilterTypeException e1) {
121 105
			RasterToolsUtil.messageBoxError(PluginServices.getText(this, "error_adding_filters"), this, e1);
122 106
		}
107

  
123 108
		try {
124
			previewLayer.getRender().draw(g, vp2);
125
		} catch (RasterDriverException e) {
109
			previewLayer.draw(null, g, vp, null, 1.0);
110
		} catch (ReadDriverException e) {
126 111
			RasterToolsUtil.messageBoxError(PluginServices.getText(this, "error_preview_render"), this, e);
127
		} catch (InvalidSetViewException e) {
128
			RasterToolsUtil.messageBoxError(PluginServices.getText(this, "error_preview_setview"), this, e);
129
		} catch (InterruptedException e) {
130
			RasterToolsUtil.messageBoxError(PluginServices.getText(this, "error_preview_stop"), this, e);
131 112
		}
132

  
133 113
		rendering.getRenderFilterList().popStatus();
134 114
	}
135 115
}

Also available in: Unified diff