Author: jeremias
Date: Fri Jan 16 07:55:58 2009
New Revision: 735038

URL: http://svn.apache.org/viewvc?rev=735038&view=rev
Log:
Merge from Trunk revisions 731480 - 735028.

Added:
    
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/events/model/package.html
      - copied unchanged from r735028, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/events/model/package.html
    
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/events/package.html
      - copied unchanged from r735028, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/events/package.html
    
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/fonts/substitute/package.html
      - copied unchanged from r735028, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/fonts/substitute/package.html
    
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/text/linebreak/package.html
      - copied unchanged from r735028, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/text/linebreak/package.html
    
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/util/BitmapImageUtil.java
      - copied, changed from r735028, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/util/BitmapImageUtil.java
    
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/util/text/package.html
      - copied unchanged from r735028, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/util/text/package.html
Modified:
    xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/   (props changed)
    xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/NOTICE
    xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/build.xml
    
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/documentation/content/xdocs/trunk/graphics.xml
    
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/documentation/content/xdocs/trunk/upgrading.xml
    
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/META-INF/services/org.apache.fop.render.intermediate.IFDocumentHandler
   (props changed)
    
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/AFPDataObjectFactory.java
    
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/AFPImageObjectInfo.java
    
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/ioca/ImageContent.java
    
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/ioca/ImageSegment.java
    
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/modca/AbstractPageObject.java
    
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/modca/ImageObject.java
    
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/modca/Overlay.java
    
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/modca/PageObject.java
    
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/area/AreaTreeObject.java
    
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/area/PageViewport.java
    
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/image/loader/batik/Graphics2DImagePainterImpl.java
    
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/afp/AFPImageHandlerRenderedImage.java
    
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/intermediate/AbstractIFDocumentHandler.java
   (props changed)
    
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/intermediate/IFContentHandler.java
   (props changed)
    
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/intermediate/IFPainter.java
   (props changed)
    
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/intermediate/IFRenderer.java
   (props changed)
    
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/intermediate/extensions/DocumentNavigationExtensionConstants.java
   (props changed)
    
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pcl/PCLDocumentHandler.java
   (props changed)
    
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pcl/PCLDocumentHandlerMaker.java
   (props changed)
    
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pcl/PCLGenerator.java
    
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pdf/PDFDocumentHandler.java
   (props changed)
    
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/servlet/FopServlet.java
    
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/sandbox/org/apache/fop/render/svg/AbstractSVGDocumentHandler.java
   (props changed)
    
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/sandbox/org/apache/fop/render/svg/SVGDocumentHandler.java
   (props changed)
    xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/status.xml

Propchange: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Jan 16 07:55:58 2009
@@ -1,3 +1,3 @@
 /xmlgraphics/fop/branches/Temp_AFPGOCAResources:630874-721418
 /xmlgraphics/fop/branches/fop-0_95:684572,688085,688696
-/xmlgraphics/fop/trunk:603620-731479
+/xmlgraphics/fop/trunk:603620-735028

Modified: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/NOTICE
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/NOTICE?rev=735038&r1=735037&r2=735038&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/NOTICE (original)
+++ xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/NOTICE Fri Jan 16 07:55:58 
2009
@@ -1,5 +1,5 @@
 Apache FOP
-Copyright 1999-2008 The Apache Software Foundation
+Copyright 1999-2009 The Apache Software Foundation
 
 This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).

Modified: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/build.xml
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/build.xml?rev=735038&r1=735037&r2=735038&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/build.xml (original)
+++ xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/build.xml Fri Jan 16 
07:55:58 2009
@@ -134,7 +134,7 @@
   <property name="name" value="fop"/>
   <property name="NAME" value="FOP"/>
   <property name="version" value="svn-trunk"/>
-  <property name="year" value="1999-2008"/>
+  <property name="year" value="1999-2009"/>
   <property name="javac.debug" value="on"/>
   <property name="javac.optimize" value="off"/>
   <property name="javac.deprecation" value="on"/>
@@ -1009,7 +1009,7 @@
     <property name="javadoc.level" value=""/>
     <echo message="Producing the javadoc files${javadoc.level}"/>
     <mkdir dir="${build.javadocs.dir}"/>
-    <javadoc packagenames="${javadoc.packages}" 
destdir="${build.javadocs.dir}" author="true" version="true" 
windowtitle="${Name} ${version} API" doctitle="Apache Formatting Objects 
Processor (FOP)" bottom="Copyright ${year} The Apache Software Foundation. All 
Rights Reserved." overview="${src.dir}/java/org/apache/fop/overview.html" 
use="true" failonerror="true" source="${javac.source}" 
public="${javadoc.public}" package="${javadoc.package}" 
private="${javadoc.private}">
+    <javadoc packagenames="${javadoc.packages}" 
destdir="${build.javadocs.dir}" author="true" version="true" 
windowtitle="${Name} ${version} API" doctitle="Apache Formatting Objects 
Processor (FOP)" bottom="Copyright ${year} The Apache Software Foundation. All 
Rights Reserved." overview="${src.dir}/java/org/apache/fop/overview.html" 
use="true" failonerror="true" source="${javac.source}" 
public="${javadoc.public}" package="${javadoc.package}" 
private="${javadoc.private}" maxmemory="128M">
       <header><![CDATA[${name} ${version}]]></header>
       <footer><![CDATA[${name} ${version}]]></footer>
       <classpath>
@@ -1022,6 +1022,7 @@
         <pathelement path="${build.gensrc.dir}"/>
       </sourcepath>
       <tag name="todo" scope="all" description="To do:"/>
+      <tag name="event.severity" scope="all" description="Event severity 
level:"/>
       <group title="Control and Startup">
         <package name="org.apache.fop"/>
         <package name="org.apache.fop.apps"/>
@@ -1053,17 +1054,31 @@
         <package name="org.apache.fop.render.rtf"/>
         <package name="org.apache.fop.render.mif"/>
       </group>
+      <group title="Fonts">
+        <package name="org.apache.fop.fonts"/>
+        <package name="org.apache.fop.fonts.*"/>
+      </group>
+      <group title="Events">
+        <package name="org.apache.fop.events"/>
+        <package name="org.apache.fop.events.*"/>
+      </group>
       <group title="Utility">
         <package name="org.apache.fop.hyphenation"/>
-        <package name="org.apache.fop.pdf"/>
         <package name="org.apache.fop.tools"/>
         <package name="org.apache.fop.tools.*"/>
-        <package name="org.apache.fop.svg"/>
         <package name="org.apache.fop.image"/>
         <package name="org.apache.fop.image.*"/>
-        <package name="org.apache.fop.fonts"/>
-        <package name="org.apache.fop.fonts.*"/>
+        <package name="org.apache.fop.text.*"/>
         <package name="org.apache.fop.util"/>
+        <package name="org.apache.fop.util.*"/>
+      </group>
+      <group title="AFP library">
+        <package name="org.apache.fop.afp"/>
+        <package name="org.apache.fop.afp.*"/>
+      </group>
+      <group title="PDF library">
+        <package name="org.apache.fop.pdf"/>
+        <package name="org.apache.fop.svg"/>
       </group>
       <group title="RTFLib (formerly JFor) Subpackage Candidate">
         <package name="org.apache.fop.render.rtf.rtflib"/>

Modified: 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/documentation/content/xdocs/trunk/graphics.xml
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/documentation/content/xdocs/trunk/graphics.xml?rev=735038&r1=735037&r2=735038&view=diff
==============================================================================
--- 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/documentation/content/xdocs/trunk/graphics.xml
 (original)
+++ 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/documentation/content/xdocs/trunk/graphics.xml
 Fri Jan 16 07:55:58 2009
@@ -461,7 +461,7 @@
         <section id="svg-font-selection">
           <title>Font selection notes</title>
           <p>
-            Apache Batik uses the AWT/Java2D subsystem as font source while 
FOP has its on font
+            Apache Batik uses the AWT/Java2D subsystem as font source while 
FOP has its own font
             subsystem. Great care has been taken that font selection does the 
best possible choices.
             But it must be noted when creating PDF or PostScript that a font 
used in SVG graphics
             needs to be registered with the operating system as well as in 
FOP's configuration.

Modified: 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/documentation/content/xdocs/trunk/upgrading.xml
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/documentation/content/xdocs/trunk/upgrading.xml?rev=735038&r1=735037&r2=735038&view=diff
==============================================================================
--- 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/documentation/content/xdocs/trunk/upgrading.xml
 (original)
+++ 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/documentation/content/xdocs/trunk/upgrading.xml
 Fri Jan 16 07:55:58 2009
@@ -55,13 +55,12 @@
           src/foschema/fop-configuration.xsd.
         </li>
         <li>
-          If you are using font metrics files for version 0.20.5 or
-          0.92 or earlier, you have to regenerate them in the new
-          format. The new format is characterized by a version
-          attribute on the top-level font-metrics element, whose value
-          is 2.0. The absence of a version attribute will be
-          interpreted as version 1.0, and such metrics files will no
-          longer be parsed.
+          Beginning with version 0.94 you can skip the generation of
+          font metric files and remove the "font-metrics" attribute
+          in the font configuration. In the unlikely case that due to
+          a bug you still need to use font metrics files you will need
+          to regenerate the font metrics file if yours are from a FOP
+          version before 0.93.
         </li>
         <li>
           <p>
@@ -123,11 +122,6 @@
           The <code>fox:outline</code> extension is not implemented in this 
version anymore. 
           It has been superseded by the new bookmark elements from XSL-FO 1.1.
         </li>
-        <li>
-          The <code>fox:destination</code> extension is also not implemented 
in this version
-          although it may be added in the future. See also
-          <a 
href="http://issues.apache.org/bugzilla/show_bug.cgi?id=37157";>Bug 37157</a>.
-        </li>
       </ul>
     </section>
   </body>

Propchange: 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/META-INF/services/org.apache.fop.render.intermediate.IFDocumentHandler
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Jan 16 07:55:58 2009
@@ -1 +1 @@
-/xmlgraphics/fop/trunk/src/java/META-INF/services/org.apache.fop.render.intermediate.IFDocumentHandler:699793-731479
+/xmlgraphics/fop/trunk/src/java/META-INF/services/org.apache.fop.render.intermediate.IFDocumentHandler:699793-735028

Modified: 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/AFPDataObjectFactory.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/AFPDataObjectFactory.java?rev=735038&r1=735037&r2=735038&view=diff
==============================================================================
--- 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/AFPDataObjectFactory.java
 (original)
+++ 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/AFPDataObjectFactory.java
 Fri Jan 16 07:55:58 2009
@@ -21,6 +21,9 @@
 
 import java.awt.geom.Rectangle2D;
 
+import org.apache.xmlgraphics.image.codec.tiff.TIFFImage;
+import org.apache.xmlgraphics.java2d.Graphics2DImagePainter;
+
 import org.apache.fop.afp.ioca.ImageContent;
 import org.apache.fop.afp.modca.AbstractDataObject;
 import org.apache.fop.afp.modca.AbstractNamedAFPObject;
@@ -35,8 +38,6 @@
 import org.apache.fop.afp.modca.ResourceObject;
 import org.apache.fop.afp.modca.triplets.MappingOptionTriplet;
 import org.apache.fop.afp.modca.triplets.ObjectClassificationTriplet;
-import org.apache.xmlgraphics.image.codec.tiff.TIFFImage;
-import org.apache.xmlgraphics.java2d.Graphics2DImagePainter;
 
 /**
  * Factory for high level data objects (Image/Graphics etc)
@@ -117,6 +118,7 @@
         } else {
             imageObj.setIDESize((byte) imageObjectInfo.getBitsPerPixel());
         }
+        imageObj.setSubtractive(imageObjectInfo.isSubtractive());
 
         imageObj.setData(imageObjectInfo.getData());
 

Modified: 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/AFPImageObjectInfo.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/AFPImageObjectInfo.java?rev=735038&r1=735037&r2=735038&view=diff
==============================================================================
--- 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/AFPImageObjectInfo.java
 (original)
+++ 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/AFPImageObjectInfo.java
 Fri Jan 16 07:55:58 2009
@@ -34,6 +34,8 @@
     /** compression type if any */
     private int compression = -1;
 
+    private boolean subtractive;
+
     /**
      * Default constructor
      */
@@ -104,12 +106,29 @@
         this.compression = compression;
     }
 
+    /**
+     * Set either additive or subtractive mode (used for ASFLAG).
+     * @param subtractive true for subtractive mode, false for additive mode
+     */
+    public void setSubtractive(boolean subtractive) {
+        this.subtractive = subtractive;
+    }
+
+    /**
+     * Indicates whether additive or subtractive mode is set.
+     * @return true for subtractive mode, false for additive mode
+     */
+    public boolean isSubtractive() {
+        return subtractive;
+    }
+
     /** {...@inheritdoc} */
     public String toString() {
         return "AFPImageObjectInfo{" + super.toString()
             + ", compression=" + compression
             + ", color=" + color
             + ", bitsPerPixel=" + bitsPerPixel
+            + ", " + (isSubtractive() ? "subtractive" : "additive")
             + "}";
     }
 }
\ No newline at end of file

Modified: 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/ioca/ImageContent.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/ioca/ImageContent.java?rev=735038&r1=735037&r2=735038&view=diff
==============================================================================
--- 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/ioca/ImageContent.java
 (original)
+++ 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/ioca/ImageContent.java
 Fri Jan 16 07:55:58 2009
@@ -68,6 +68,9 @@
     /** the image color model */
     private byte colorModel = (byte)0x01;
 
+    /** additive/subtractive setting for ASFLAG */
+    private boolean subtractive = false;
+
     /** the image data */
     private byte[] data;
 
@@ -123,6 +126,14 @@
     }
 
     /**
+     * Set either additive or subtractive mode (used for ASFLAG).
+     * @param subtractive true for subtractive mode, false for additive mode
+     */
+    public void setSubtractive(boolean subtractive) {
+        this.subtractive = subtractive;
+    }
+
+    /**
      * Set the image data (can be byte array or inputstream)
      *
      * @param imageData the image data
@@ -243,12 +254,16 @@
      * @return byte[] The data stream.
      */
     private byte[] getIDEStructureParameter() {
+        byte flags = 0x00;
+        if (subtractive) {
+            flags |= 1 << 7;
+        }
         if (colorModel != 0 && size == 24) {
             final byte bits = (byte)(size / 3);
             final byte[] ideStructData = new byte[] {
                 (byte)0x9B, // ID
                 0x00, // Length
-                0x00, // FLAGS
+                flags, // FLAGS
                 0x00, // Reserved
                 colorModel, // COLOR MODEL
                 0x00, // Reserved
@@ -260,6 +275,20 @@
             };
             ideStructData[1] = (byte)(ideStructData.length - 2);
             return ideStructData;
+        } else if (size == 1) {
+            final byte[] ideStructData = new byte[] {
+                    (byte)0x9B, // ID
+                    0x00, // Length
+                    flags, // FLAGS
+                    0x00, // Reserved
+                    colorModel, // COLOR MODEL
+                    0x00, // Reserved
+                    0x00, // Reserved
+                    0x00, // Reserved
+                    1
+                };
+                ideStructData[1] = (byte)(ideStructData.length - 2);
+                return ideStructData;
         }
         return new byte[0];
     }

Modified: 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/ioca/ImageSegment.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/ioca/ImageSegment.java?rev=735038&r1=735037&r2=735038&view=diff
==============================================================================
--- 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/ioca/ImageSegment.java
 (original)
+++ 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/ioca/ImageSegment.java
 Fri Jan 16 07:55:58 2009
@@ -114,6 +114,14 @@
     }
 
     /**
+     * Set either additive or subtractive mode (used for ASFLAG).
+     * @param subtractive true for subtractive mode, false for additive mode
+     */
+    public void setSubtractive(boolean subtractive) {
+        getImageContent().setSubtractive(subtractive);
+    }
+
+    /**
      * Set the data image data.
      *
      * @param data the image data

Modified: 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/modca/AbstractPageObject.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/modca/AbstractPageObject.java?rev=735038&r1=735037&r2=735038&view=diff
==============================================================================
--- 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/modca/AbstractPageObject.java
 (original)
+++ 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/modca/AbstractPageObject.java
 Fri Jan 16 07:55:58 2009
@@ -60,9 +60,6 @@
     /** The list of tag logical elements */
     protected List/*<TagLogicalElement>*/ tagLogicalElements = null;
 
-    /** The list of the include page segments */
-    protected List/*<IncludePageSegment>*/ includePageSegments = null;
-
     /** The list of objects within this resource container */
     protected List/*<AbstractStructuredAFPObject>*/ objects = new 
java.util.ArrayList();
 
@@ -253,19 +250,7 @@
      */
     public void createIncludePageSegment(String name, int x, int y) {
         IncludePageSegment ips = factory.createIncludePageSegment(name, x, y);
-        getIncludePageSegments().add(ips);
-    }
-
-    /**
-     * Returns the include page segments list
-     *
-     * @return the include page segments list
-     */
-    private List getIncludePageSegments() {
-        if (this.includePageSegments == null) {
-            this.includePageSegments = new 
java.util.ArrayList/*<IncludePageSegment>*/();
-        }
-        return this.includePageSegments;
+        addObject(ips);
     }
 
     /**

Modified: 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/modca/ImageObject.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/modca/ImageObject.java?rev=735038&r1=735037&r2=735038&view=diff
==============================================================================
--- 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/modca/ImageObject.java
 (original)
+++ 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/modca/ImageObject.java
 Fri Jan 16 07:55:58 2009
@@ -23,6 +23,7 @@
 import java.io.OutputStream;
 
 import org.apache.commons.io.output.ByteArrayOutputStream;
+
 import org.apache.fop.afp.AFPDataObjectInfo;
 import org.apache.fop.afp.AFPImageObjectInfo;
 import org.apache.fop.afp.Factory;
@@ -114,9 +115,17 @@
     }
 
     /**
+     * Set either additive or subtractive mode (used for ASFLAG).
+     * @param subtractive true for subtractive mode, false for additive mode
+     */
+    public void setSubtractive(boolean subtractive) {
+        getImageSegment().setSubtractive(subtractive);
+    }
+
+    /**
      * Set the data of the image.
      *
-     * @param data the image data
+     * @param imageData the image data
      */
     public void setData(byte[] imageData) {
         getImageSegment().setData(imageData);

Modified: 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/modca/Overlay.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/modca/Overlay.java?rev=735038&r1=735037&r2=735038&view=diff
==============================================================================
--- 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/modca/Overlay.java
 (original)
+++ 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/modca/Overlay.java
 Fri Jan 16 07:55:58 2009
@@ -72,7 +72,6 @@
 
         getActiveEnvironmentGroup().writeToStream(os);
 
-        writeObjects(includePageSegments, os);
         writeObjects(tagLogicalElements, os);
         writeObjects(objects, os);
     }

Modified: 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/modca/PageObject.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/modca/PageObject.java?rev=735038&r1=735037&r2=735038&view=diff
==============================================================================
--- 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/modca/PageObject.java
 (original)
+++ 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/afp/modca/PageObject.java
 Fri Jan 16 07:55:58 2009
@@ -185,7 +185,6 @@
 
         getActiveEnvironmentGroup().writeToStream(os);
 
-        writeObjects(includePageSegments, os);
         writeObjects(tagLogicalElements, os);
         writeObjects(objects, os);
     }

Modified: 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/area/AreaTreeObject.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/area/AreaTreeObject.java?rev=735038&r1=735037&r2=735038&view=diff
==============================================================================
--- 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/area/AreaTreeObject.java
 (original)
+++ 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/area/AreaTreeObject.java
 Fri Jan 16 07:55:58 2009
@@ -26,6 +26,8 @@
 
 import org.apache.xmlgraphics.util.QName;
 
+import org.apache.fop.fo.extensions.ExtensionAttachment;
+
 /**
  * Abstract base class for all area tree objects.
  */
@@ -36,7 +38,7 @@
 
     /** Extension attachments */
     protected List/*<ExtensionAttachment>*/ extensionAttachments = null;
-    
+
     /**
      * Sets a foreign attribute.
      * @param name the qualified name of the attribute
@@ -87,21 +89,46 @@
             return Collections.EMPTY_MAP;
         }
     }
-    
+
+    private void prepareExtensionAttachmentContainer() {
+        if (this.extensionAttachments == null) {
+            this.extensionAttachments = new 
java.util.ArrayList/*<ExtensionAttachment>*/();
+        }
+    }
+
     /**
-     * Set extension attachments from a List 
+     * Adds a new ExtensionAttachment instance to this page.
+     * @param attachment the ExtensionAttachment
+     */
+    public void addExtensionAttachment(ExtensionAttachment attachment) {
+        prepareExtensionAttachmentContainer();
+        extensionAttachments.add(attachment);
+    }
+
+    /**
+     * Set extension attachments from a List
      * @param extensionAttachments a List with extension attachments
      */
     public void setExtensionAttachments(List extensionAttachments) {
-        this.extensionAttachments = extensionAttachments;
+        prepareExtensionAttachmentContainer();
+        this.extensionAttachments.addAll(extensionAttachments);
     }
 
     /** @return the extension attachments associated with this area */
     public List getExtensionAttachments() {
-        if (this.foreignAttributes != null) {
+        if (this.extensionAttachments != null) {
             return Collections.unmodifiableList(this.extensionAttachments);
         } else {
             return Collections.EMPTY_LIST;
         }
-    }    
+    }
+
+    /**
+     * Indicates whether this area tree object has any extension attachments.
+     * @return true if there are extension attachments
+     */
+    public boolean hasExtensionAttachments() {
+        return this.extensionAttachments != null && 
!this.extensionAttachments.isEmpty();
+    }
+
 }

Modified: 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/area/PageViewport.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/area/PageViewport.java?rev=735038&r1=735037&r2=735038&view=diff
==============================================================================
--- 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/area/PageViewport.java
 (original)
+++ 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/area/PageViewport.java
 Fri Jan 16 07:55:58 2009
@@ -25,7 +25,6 @@
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -36,7 +35,6 @@
 import org.apache.commons.logging.LogFactory;
 
 import org.apache.fop.fo.Constants;
-import org.apache.fop.fo.extensions.ExtensionAttachment;
 import org.apache.fop.fo.pagination.SimplePageMaster;
 
 /**
@@ -87,10 +85,6 @@
     private Map markerLastEnd = null;
     private Map markerLastAny = null;
 
-    //Arbitrary attachments to the page from extensions that need to pass 
information
-    //down to the renderers.
-    private List/*<ExtensionAttachment>*/ extensionAttachments = null;
-
     /**
      * logging instance
      */
@@ -105,7 +99,7 @@
      */
     public PageViewport(SimplePageMaster spm, int pageNumber, String pageStr, 
boolean blank) {
         this.simplePageMasterName = spm.getMasterName();
-        this.extensionAttachments = spm.getExtensionAttachments();
+        setExtensionAttachments(spm.getExtensionAttachments());
         this.blank = blank;
         int pageWidth = spm.getPageWidth().getValue();
         int pageHeight = spm.getPageHeight().getValue();
@@ -122,8 +116,7 @@
      */
     public PageViewport(PageViewport original) {
         if (original.extensionAttachments != null) {
-            this.extensionAttachments
-                = new 
java.util.ArrayList/*<ExtensionAttachment>*/(original.extensionAttachments);
+            setExtensionAttachments(original.extensionAttachments);
         }
         this.pageIndex = original.pageIndex;
         this.pageNumber = original.pageNumber;
@@ -583,26 +576,6 @@
         return this.simplePageMasterName;
     }
 
-    /**
-     * Adds a new ExtensionAttachment instance to this page.
-     * @param attachment the ExtensionAttachment
-     */
-    public void addExtensionAttachment(ExtensionAttachment attachment) {
-        if (this.extensionAttachments == null) {
-            this.extensionAttachments = new 
java.util.ArrayList/*<ExtensionAttachment>*/();
-        }
-        extensionAttachments.add(attachment);
-    }
-
-    /** @return the list of extension attachments for this page */
-    public List getExtensionAttachments() {
-        if (this.extensionAttachments == null) {
-            return Collections.EMPTY_LIST;
-        } else {
-            return this.extensionAttachments;
-        }
-    }
-
     /** @return True if this is a blank page. */
     public boolean isBlank() {
         return this.blank;
@@ -671,8 +644,4 @@
         return getPage().getRegionViewport(id).getRegionReference();
     }
 
-    /** @return whether this page viewport has any extension attachments */
-    public boolean hasExtensionAttachments() {
-        return this.extensionAttachments != null && 
!this.extensionAttachments.isEmpty();
-    }
 }

Modified: 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/image/loader/batik/Graphics2DImagePainterImpl.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/image/loader/batik/Graphics2DImagePainterImpl.java?rev=735038&r1=735037&r2=735038&view=diff
==============================================================================
--- 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/image/loader/batik/Graphics2DImagePainterImpl.java
 (original)
+++ 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/image/loader/batik/Graphics2DImagePainterImpl.java
 Fri Jan 16 07:55:58 2009
@@ -1,3 +1,22 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* $Id$ */
+
 package org.apache.fop.image.loader.batik;
 
 import java.awt.Dimension;
@@ -10,7 +29,7 @@
 import org.apache.xmlgraphics.java2d.Graphics2DImagePainter;
 
 /**
- * A generic graphics 2D image painter implementation
+ * A graphics 2D image painter implementation for painting SVG images using 
Batik.
  */
 public class Graphics2DImagePainterImpl implements Graphics2DImagePainter {
 

Modified: 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/afp/AFPImageHandlerRenderedImage.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/afp/AFPImageHandlerRenderedImage.java?rev=735038&r1=735037&r2=735038&view=diff
==============================================================================
--- 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/afp/AFPImageHandlerRenderedImage.java
 (original)
+++ 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/afp/AFPImageHandlerRenderedImage.java
 Fri Jan 16 07:55:58 2009
@@ -20,10 +20,13 @@
 package org.apache.fop.render.afp;
 
 import java.awt.Rectangle;
+import java.awt.image.ColorModel;
 import java.awt.image.RenderedImage;
 import java.io.IOException;
 
 import org.apache.commons.io.output.ByteArrayOutputStream;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 
 import org.apache.xmlgraphics.image.loader.Image;
 import org.apache.xmlgraphics.image.loader.ImageFlavor;
@@ -37,12 +40,16 @@
 import org.apache.fop.afp.AFPPaintingState;
 import org.apache.fop.render.ImageHandler;
 import org.apache.fop.render.RenderingContext;
+import org.apache.fop.util.BitmapImageUtil;
 
 /**
  * PDFImageHandler implementation which handles RenderedImage instances.
  */
 public class AFPImageHandlerRenderedImage extends AFPImageHandler implements 
ImageHandler {
 
+    /** logging instance */
+    private static Log log = 
LogFactory.getLog(AFPImageHandlerRenderedImage.class);
+
     private static final ImageFlavor[] FLAVORS = new ImageFlavor[] {
         ImageFlavor.BUFFERED_IMAGE,
         ImageFlavor.RENDERED_IMAGE
@@ -82,29 +89,74 @@
         int dataWidth = renderedImage.getWidth();
         imageObjectInfo.setDataWidth(dataWidth);
 
-        //TODO This needs to be improved: Buffering whole images in memory is 
bad.
-        //Images with fewer bits per pixel than the required output format are 
unnecessarily
-        //increased in size (extreme case: 1-bit images are blown up to 24 
bits if color is
-        //enabled). For grayscale output, encoding is even a two-step process 
which
-        //needs to be streamlined to a single step. The resulting bitmap is 
then still buffered
-        //in memory. To reduce AFP file size, investigate using a compression 
scheme.
+        //TODO To reduce AFP file size, investigate using a compression scheme.
         //Currently, all image data is uncompressed.
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        ImageEncodingHelper.encodeRenderedImageAsRGB(renderedImage, baos);
-        byte[] imageData = baos.toByteArray();
 
-        boolean colorImages = paintingState.isColorImages();
-        imageObjectInfo.setColor(colorImages);
+        int maxPixelSize = paintingState.getBitsPerPixel();
+        if (paintingState.isColorImages()) {
+            maxPixelSize *= 3; //RGB only at the moment
+        }
+
+        ColorModel cm = renderedImage.getColorModel();
+        if (log.isTraceEnabled()) {
+            log.trace("ColorModel: " + cm);
+        }
+        int pixelSize = cm.getPixelSize();
+        if (cm.hasAlpha()) {
+            pixelSize -= 8;
+        }
+        //TODO Add support for CMYK images
 
-        // convert to grayscale
-        if (!colorImages) {
-            baos.reset();
-            int bitsPerPixel = paintingState.getBitsPerPixel();
-            imageObjectInfo.setBitsPerPixel(bitsPerPixel);
-            ImageEncodingHelper.encodeRGBAsGrayScale(
-                  imageData, dataWidth, dataHeight, bitsPerPixel, baos);
+        byte[] imageData = null;
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        boolean allowDirectEncoding = true;
+        if (allowDirectEncoding && pixelSize <= maxPixelSize) {
+            //Attempt to encode without resampling the image
+            ImageEncodingHelper helper = new 
ImageEncodingHelper(renderedImage);
+            ColorModel encodedColorModel = helper.getEncodedColorModel();
+            boolean directEncode = true;
+            if (helper.getEncodedColorModel().getPixelSize() > maxPixelSize) {
+                directEncode = false; //pixel size needs to be reduced
+            }
+            if (BitmapImageUtil.getColorIndexSize(renderedImage) > 2) {
+                directEncode = false; //Lookup tables are not implemented, yet
+            }
+            if (directEncode) {
+                log.debug("Encoding image directly...");
+                
imageObjectInfo.setBitsPerPixel(encodedColorModel.getPixelSize());
+                if (BitmapImageUtil.isMonochromeImage(renderedImage)
+                        && !BitmapImageUtil.isZeroBlack(renderedImage)) {
+                    log.trace("set subtractive mode");
+                    imageObjectInfo.setSubtractive(true);
+                }
+
+                helper.encode(baos);
+                imageData = baos.toByteArray();
+            }
+        }
+        if (imageData == null) {
+            log.debug("Encoding image via RGB...");
+            //Convert image to 24bit RGB
+            ImageEncodingHelper.encodeRenderedImageAsRGB(renderedImage, baos);
             imageData = baos.toByteArray();
+
+            boolean colorImages = paintingState.isColorImages();
+            imageObjectInfo.setColor(colorImages);
+
+            // convert to grayscale
+            if (!colorImages) {
+                log.debug("Converting RGB image to grayscale...");
+                baos.reset();
+                int bitsPerPixel = paintingState.getBitsPerPixel();
+                imageObjectInfo.setBitsPerPixel(bitsPerPixel);
+                //TODO this should be done off the RenderedImage to avoid 
buffering the
+                //intermediate 24bit image
+                ImageEncodingHelper.encodeRGBAsGrayScale(
+                      imageData, dataWidth, dataHeight, bitsPerPixel, baos);
+                imageData = baos.toByteArray();
+            }
         }
+
         imageObjectInfo.setData(imageData);
 
         // set object area info

Propchange: 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/intermediate/AbstractIFDocumentHandler.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Jan 16 07:55:58 2009
@@ -1 +1 @@
-/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/AbstractIFDocumentHandler.java:699793-731479
+/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/AbstractIFDocumentHandler.java:699793-735028

Propchange: 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/intermediate/IFContentHandler.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Jan 16 07:55:58 2009
@@ -1 +1 @@
-/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFContentHandler.java:680381-731479
+/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFContentHandler.java:680381-735028

Propchange: 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/intermediate/IFPainter.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Jan 16 07:55:58 2009
@@ -1 +1 @@
-/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFPainter.java:680381-731479
+/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFPainter.java:680381-735028

Propchange: 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/intermediate/IFRenderer.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Jan 16 07:55:58 2009
@@ -1 +1 @@
-/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFRenderer.java:680381-731479
+/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFRenderer.java:680381-735028

Propchange: 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/intermediate/extensions/DocumentNavigationExtensionConstants.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Jan 16 07:55:58 2009
@@ -1 +1 @@
-/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/extensions/DocumentNavigationExtensionConstants.java:685127-731479
+/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/extensions/DocumentNavigationExtensionConstants.java:685127-735028

Propchange: 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pcl/PCLDocumentHandler.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Jan 16 07:55:58 2009
@@ -1 +1 @@
-/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/pcl/PCLDocumentHandler.java:699793-731479
+/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/pcl/PCLDocumentHandler.java:699793-735028

Propchange: 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pcl/PCLDocumentHandlerMaker.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Jan 16 07:55:58 2009
@@ -1 +1 @@
-/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/pcl/PCLDocumentHandlerMaker.java:699793-731479
+/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/pcl/PCLDocumentHandlerMaker.java:699793-735028

Modified: 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pcl/PCLGenerator.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pcl/PCLGenerator.java?rev=735038&r1=735037&r2=735038&view=diff
==============================================================================
--- 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pcl/PCLGenerator.java
 (original)
+++ 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pcl/PCLGenerator.java
 Fri Jan 16 07:55:58 2009
@@ -47,6 +47,8 @@
 import org.apache.xmlgraphics.image.GraphicsUtil;
 import org.apache.xmlgraphics.util.UnitConv;
 
+import org.apache.fop.util.BitmapImageUtil;
+
 /**
  * This class provides methods for generating PCL print files.
  */
@@ -534,7 +536,7 @@
      * @return the gray value
      */
     public final int convertToGray(int r, int g, int b) {
-        return (r * 30 + g * 59 + b * 11) / 100;
+        return BitmapImageUtil.convertToGray(r, g, b);
     }
 
     /**
@@ -586,14 +588,8 @@
      * @return true if it's a monochrome image
      */
     public static boolean isMonochromeImage(RenderedImage img) {
-        ColorModel cm = img.getColorModel();
-        if (cm instanceof IndexColorModel) {
-            IndexColorModel icm = (IndexColorModel)cm;
-            return icm.getMapSize() == 2;
-        } else {
-            return false;
+        return BitmapImageUtil.isMonochromeImage(img);
         }
-    }
 
     /**
      * Indicates whether an image is a grayscale image.
@@ -601,7 +597,7 @@
      * @return true if it's a grayscale image
      */
     public static boolean isGrayscaleImage(RenderedImage img) {
-        return (img.getColorModel().getNumColorComponents() == 1);
+        return BitmapImageUtil.isGrayscaleImage(img);
     }
 
     private static int jaiAvailable = -1; //no synchronization necessary, not 
critical
@@ -816,21 +812,8 @@
                 }
             }
             if (src == null) {
-                src = new BufferedImage(effDim.width, effDim.height,
-                        BufferedImage.TYPE_BYTE_GRAY);
-                Graphics2D g2d = src.createGraphics();
-                try {
-                    clearBackground(g2d, effDim);
-
-                    AffineTransform at = new AffineTransform();
-                    double sx = effDim.getWidth() / orgDim.getWidth();
-                    double sy = effDim.getHeight() / orgDim.getHeight();
-                    at.scale(sx, sy);
-                    g2d.drawRenderedImage(img, at);
-                } finally {
-                    g2d.dispose();
+                src = BitmapImageUtil.convertToGrayscale(img, effDim);
                 }
-            }
             MonochromeBitmapConverter converter = 
createMonochromeBitmapConverter();
             converter.setHint("quality", "false");
 
@@ -841,23 +824,10 @@
             setTransparencyMode(sourceTransparency || mask != null, true);
             paintMonochromeBitmap(red, effResolution);
         } else {
-            //TODO untested!
             RenderedImage effImg = img;
             if (scaled) {
-                BufferedImage buf = new BufferedImage(effDim.width, 
effDim.height,
-                        BufferedImage.TYPE_BYTE_BINARY);
-                Graphics2D g2d = buf.createGraphics();
-                try {
-                    AffineTransform at = new AffineTransform();
-                    double sx = effDim.getWidth() / orgDim.getWidth();
-                    double sy = effDim.getHeight() / orgDim.getHeight();
-                    at.scale(sx, sy);
-                    g2d.drawRenderedImage(img, at);
-                } finally {
-                    g2d.dispose();
+                effImg = BitmapImageUtil.convertToMonochrome(img, effDim);
                 }
-                effImg = buf;
-            }
             setSourceTransparencyMode(sourceTransparency);
             selectCurrentPattern(0, 0); //Solid black
             paintMonochromeBitmap(effImg, effResolution);

Propchange: 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/render/pdf/PDFDocumentHandler.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Jan 16 07:55:58 2009
@@ -1 +1 @@
-/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/pdf/PDFDocumentHandler.java:699793-731479
+/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/pdf/PDFDocumentHandler.java:699793-735028

Modified: 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/servlet/FopServlet.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/servlet/FopServlet.java?rev=735038&r1=735037&r2=735038&view=diff
==============================================================================
--- 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/servlet/FopServlet.java
 (original)
+++ 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/servlet/FopServlet.java
 Fri Jan 16 07:55:58 2009
@@ -37,11 +37,10 @@
 import javax.xml.transform.stream.StreamSource;
 
 import org.apache.commons.io.output.ByteArrayOutputStream;
-import org.apache.commons.logging.impl.SimpleLog;
 
+import org.apache.fop.apps.FOPException;
 import org.apache.fop.apps.FOUserAgent;
 import org.apache.fop.apps.Fop;
-import org.apache.fop.apps.FOPException;
 import org.apache.fop.apps.FopFactory;
 import org.apache.fop.apps.MimeConstants;
 
@@ -78,8 +77,6 @@
     /** Name of the parameter used for the XSLT file */
     protected static final String XSLT_REQUEST_PARAM = "xslt";
 
-    /** Logger to give to FOP */
-    protected SimpleLog log = null;
     /** The TransformerFactory used to create Transformer instances */
     protected TransformerFactory transFactory = null;
     /** The FopFactory used to create Fop instances */
@@ -91,8 +88,6 @@
      * {...@inheritdoc}
      */
     public void init() throws ServletException {
-        this.log = new SimpleLog("FOP/Servlet");
-        log.setLevel(SimpleLog.LOG_LEVEL_WARN);
         this.uriResolver = new ServletContextURIResolver(getServletContext());
         this.transFactory = TransformerFactory.newInstance();
         this.transFactory.setURIResolver(this.uriResolver);

Copied: 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/util/BitmapImageUtil.java
 (from r735028, 
xmlgraphics/fop/trunk/src/java/org/apache/fop/util/BitmapImageUtil.java)
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/util/BitmapImageUtil.java?p2=xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/util/BitmapImageUtil.java&p1=xmlgraphics/fop/trunk/src/java/org/apache/fop/util/BitmapImageUtil.java&r1=735028&r2=735038&rev=735038&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/util/BitmapImageUtil.java 
(original)
+++ 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/java/org/apache/fop/util/BitmapImageUtil.java
 Fri Jan 16 07:55:58 2009
@@ -101,7 +101,7 @@
      * @return true if it's a grayscale image
      */
     public static final boolean isGrayscaleImage(RenderedImage img) {
-        return (img.getColorModel().getColorSpace().getNumComponents() == 1);
+        return (img.getColorModel().getNumColorComponents() == 1);
     }
 
     /**

Propchange: 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/sandbox/org/apache/fop/render/svg/AbstractSVGDocumentHandler.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Jan 16 07:55:58 2009
@@ -1 +1 @@
-/xmlgraphics/fop/trunk/src/sandbox/org/apache/fop/render/svg/AbstractSVGDocumentHandler.java:699793-731479
+/xmlgraphics/fop/trunk/src/sandbox/org/apache/fop/render/svg/AbstractSVGDocumentHandler.java:699793-735028

Propchange: 
xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/src/sandbox/org/apache/fop/render/svg/SVGDocumentHandler.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Jan 16 07:55:58 2009
@@ -1 +1 @@
-/xmlgraphics/fop/trunk/src/sandbox/org/apache/fop/render/svg/SVGDocumentHandler.java:699793-731479
+/xmlgraphics/fop/trunk/src/sandbox/org/apache/fop/render/svg/SVGDocumentHandler.java:699793-735028

Modified: xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/status.xml
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/status.xml?rev=735038&r1=735037&r2=735038&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/status.xml (original)
+++ xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/status.xml Fri Jan 16 
07:55:58 2009
@@ -52,6 +52,11 @@
   </contexts>
 
   <changes>
+    <!--
+      When adding changes, please try to highlight those which might affect 
upgrading
+      users, i.e. when the behaviour changes and could affect the layout of 
existing
+      documents. Example: the fix of marks layering will be such a case when 
it's done.
+    -->
     <release version="FOP Trunk" date="TBD">
       <action context="Fonts" dev="JM" type="add">
         FOP now creates ToUnicode CMaps for single-byte fonts that don't use 
built-in



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to