Revision 20080 trunk/extensions/extRasterTools-SE/src/org/gvsig/raster/beans/previewbase/PreviewRequestManager.java
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