svn - r34328 - trunk/modules/plugin/arcsde/datastore/src/main/java/org/geotools/arcsde/raster/jai

1 message Options
Embed this post
Permalink
svn_geotools

svn - r34328 - trunk/modules/plugin/arcsde/datastore/src/main/java/org/geotools/arcsde/raster/jai

Reply Threaded More More options
Print post
Permalink
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