Author: groldan
Date: 2009-11-04 15:42:58 -0500 (Wed, 04 Nov 2009)
New Revision: 34328
Modified:
trunk/modules/plugin/arcsde/datastore/src/main/java/org/geotools/arcsde/raster/jai/ArcSDEImageReader.java
Log:
GEOT-2616, make the reader call the listeners
Modified: trunk/modules/plugin/arcsde/datastore/src/main/java/org/geotools/arcsde/raster/jai/ArcSDEImageReader.java
===================================================================
--- trunk/modules/plugin/arcsde/datastore/src/main/java/org/geotools/arcsde/raster/jai/ArcSDEImageReader.java 2009-11-04 19:13:17 UTC (rev 34327)
+++ trunk/modules/plugin/arcsde/datastore/src/main/java/org/geotools/arcsde/raster/jai/ArcSDEImageReader.java 2009-11-04 20:42:58 UTC (rev 34328)
@@ -1,5 +1,7 @@
package org.geotools.arcsde.raster.jai;
+import java.awt.Graphics2D;
+import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.awt.image.RenderedImage;
import java.io.IOException;
@@ -14,7 +16,6 @@
import org.geotools.arcsde.raster.io.TileReader;
-
public class ArcSDEImageReader extends ImageReader {
private TileReader tileReader;
@@ -63,10 +64,17 @@
throws IOException {
// return read(imageIndex, param);
+ checkIndex(imageIndex);
+ clearAbortRequest();
+ processImageStarted(0);
+
RenderedImage image = new ArcSDETiledRenderedImage(tileReader, typeSpec);
- // BufferedImage bufferedImage = PlanarImage.wrapRenderedImage(image).getAsBufferedImage();
- // return bufferedImage;
+ if (abortRequested())
+ processReadAborted();
+ else
+ processImageComplete();
+
return image;
}
@@ -76,13 +84,33 @@
param = getDefaultReadParam();
}
- RenderedImage rendered = readAsRenderedImage(imageIndex, param);
+ checkIndex(imageIndex);
+ clearAbortRequest();
+ processImageStarted(imageIndex);
- BufferedImage bufferedImage = PlanarImage.wrapRenderedImage(rendered).getAsBufferedImage();
+ BufferedImage bi = param.getDestination();
+ RenderedImage rendered = readAsRenderedImage(imageIndex, param);
+ final BufferedImage bufferedImage;
+ if (bi == null) {
+ bufferedImage = PlanarImage.wrapRenderedImage(rendered).getAsBufferedImage();
+ } else {
+ // REVISIT: this is too naive, though it doesn't look like being used
+ AffineTransform identity = new AffineTransform();
+ Graphics2D graphics = (Graphics2D) bi.getGraphics();
+ graphics.drawRenderedImage(rendered, identity);
+ graphics.dispose();
+ bufferedImage = bi;
+ }
return bufferedImage;
}
+ private void checkIndex(int imageIndex) throws IOException {
+ if (imageIndex < 0 || imageIndex >= getNumImages(true)) {
+ throw new IndexOutOfBoundsException("Image index: " + imageIndex);
+ }
+ }
+
@Override
public void setInput(Object input, boolean seekForwardOnly, boolean ignoreMetadata) {
this.tileReader = (TileReader) input;
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.
http://p.sf.net/sfu/bobj-july_______________________________________________
GeoTools-commits mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/geotools-commits