Adrian,

this change (r706226) introduced a problem with image handling in AFP.
AFPImageGraphics2DFactory assumes that all Graphics2DImagePainters
passed in are "GenericGraphics2DImagePainters" (the subclass you made
top-level from ImageConverterSVG2G2D, strange naming, BTW, because
there's nothing generic about this, it's very Batik/SVG-specific). If a
normal Graphics2DImagePainter is passed in, you get a ClassCastException.
That happens, for example, when you have a MathML document that is
handled through our example MathML extension. Please note that
ImageConverterSVG2G2D is supposed to be a generic SVG handler/converter
for output targets that don't have any special handling of SVG for
improved painting (custom bridges for text etc.). Now I finally
understand why you added a setGraphics2DImagePainter() method to
ImageGraphics2D. I assume you did this because of the following:

Max changed the image flavor reported for SVG images:
http://svn.apache.org/viewvc?rev=695776&view=rev
That triggered a bug (uhm, missing feature) in the image loader
framework which resulted in SVG being returned as ImageGraphics2D
instead of ImageXMLDOM. I fixed this in:
http://svn.apache.org/viewvc?rev=706270&view=rev
So now, SVG images once again run through the AFPSVGHandler but in the
meantime you moved the bridge setup into the code that should actually
handle generic Graphic2D images. You might want to revisit that change.

HTH

On 20.10.2008 12:57:30 acumiskey wrote:
> Author: acumiskey
> Date: Mon Oct 20 03:57:29 2008
> New Revision: 706226
> 
> URL: http://svn.apache.org/viewvc?rev=706226&view=rev
> Log:
> * SVG circle drawing improvements in AFPGraphics2D.
> * GenericGraphics2DImagePainter becomes a top level class.
> * AFPGraphics2DImagePainter implementation to correctly adjust y-axis for AFP.
> 
> Added:
>     
> xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/image/loader/batik/GenericGraphics2DImagePainter.java
>    (with props)
>     
> xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/AFPImageConverterSVG2G2D.java
>    (with props)
> Modified:
>     
> xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/image/loader/batik/ImageConverterSVG2G2D.java
>     
> xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/AFPDataObjectFactory.java
>     
> xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/AFPGraphics2D.java
>     
> xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/AFPImageGraphics2DFactory.java
>     
> xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/AFPInfo.java
>     
> xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/AFPSVGHandler.java
>     
> xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/AFPTextHandler.java
>     
> xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/goca/GraphicsSetProcessColor.java
>     
> xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/afp/goca/GraphicsString.java
<snip/>

Jeremias Maerki

Reply via email to