]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
Merge from origin/trunk.
authorGlenn Adams <gadams@apache.org>
Mon, 4 Jun 2012 06:04:00 +0000 (06:04 +0000)
committerGlenn Adams <gadams@apache.org>
Mon, 4 Jun 2012 06:04:00 +0000 (06:04 +0000)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/fop-1_1rc1@1345839 13f79535-47bb-0310-9956-ffa450edef68

47 files changed:
src/java/org/apache/fop/accessibility/Accessibility.java
src/java/org/apache/fop/accessibility/fo/FO2StructureTreeConverter.java
src/java/org/apache/fop/afp/AFPGraphics2D.java
src/java/org/apache/fop/afp/modca/ImageObject.java
src/java/org/apache/fop/afp/modca/PresentationTextData.java
src/java/org/apache/fop/afp/util/DefaultFOPResourceAccessor.java
src/java/org/apache/fop/apps/FOUserAgent.java
src/java/org/apache/fop/complexscripts/fonts/GlyphPositioningTable.java
src/java/org/apache/fop/complexscripts/scripts/IndicScriptProcessor.java
src/java/org/apache/fop/fo/FOEventHandler.java
src/java/org/apache/fop/fo/flow/Wrapper.java
src/java/org/apache/fop/layoutmgr/BalancingColumnBreakingAlgorithm.java
src/java/org/apache/fop/layoutmgr/BreakElement.java
src/java/org/apache/fop/layoutmgr/KnuthPenalty.java
src/java/org/apache/fop/pdf/PDFColor.java
src/java/org/apache/fop/pdf/PDFEmbeddedFile.java
src/java/org/apache/fop/pdf/PDFObject.java
src/java/org/apache/fop/pdf/PDFResources.java
src/java/org/apache/fop/render/ImageHandler.java
src/java/org/apache/fop/render/afp/AFPDocumentHandler.java
src/java/org/apache/fop/render/afp/extensions/AFPIncludeFormMap.java
src/java/org/apache/fop/render/afp/extensions/AFPIncludeFormMapElement.java
src/java/org/apache/fop/render/afp/extensions/AFPPageOverlay.java
src/java/org/apache/fop/render/bitmap/AbstractBitmapDocumentHandler.java
src/java/org/apache/fop/render/bitmap/PNGDocumentHandler.java
src/java/org/apache/fop/render/bitmap/TIFFDocumentHandler.java
src/java/org/apache/fop/render/intermediate/IFContext.java
src/java/org/apache/fop/render/intermediate/IFUtil.java
src/java/org/apache/fop/render/java2d/CustomFontMetricsMapper.java
src/java/org/apache/fop/render/java2d/Java2DPainter.java
src/java/org/apache/fop/render/pcl/PCLDocumentHandler.java
src/java/org/apache/fop/render/pcl/PCLPainter.java
src/java/org/apache/fop/render/ps/NativeTextHandler.java
src/java/org/apache/fop/render/ps/PSDocumentHandler.java
src/java/org/apache/fop/svg/PDFAElementBridge.java
src/java/org/apache/fop/traits/MinOptMax.java
src/java/org/apache/fop/traits/TraitEnum.java
src/java/org/apache/fop/util/ColorExt.java
src/sandbox/org/apache/fop/render/mif/MIFHandler.java
src/sandbox/org/apache/fop/render/svg/SVGDocumentHandler.java
src/sandbox/org/apache/fop/render/svg/SVGPrintDocumentHandler.java
status.xml
test/java/org/apache/fop/accessibility/fo/FO2StructureTreeConverterTestCase.java
test/java/org/apache/fop/accessibility/fo/artifact.fo [new file with mode: 0644]
test/java/org/apache/fop/accessibility/fo/fo2StructureTree.xsl
test/pdf/accessibility/pdf/role.pdf
test/pdf/accessibility/role.fo

index c842cf43f6e1760865ba96d26d44929596f95cd0..88ec6dbddcda40f43c5ce9c5b6c4dfb159440921 100644 (file)
@@ -28,6 +28,12 @@ public final class Accessibility {
     /** Constant string for the rendering options key to enable accessibility features. */
     public static final String ACCESSIBILITY = "accessibility";
 
+    /**
+     * The value to be set on the 'role' property for the element and its descendants to
+     * be considered as artifacts.
+     */
+    public static final String ROLE_ARTIFACT = "artifact";
+
     private Accessibility() { }
 
 }
index 47c227e9a543dd122ac64a6ecd25dda6ec35d047..27469d6e067bb92a2121febf3a5b6a343129026f 100644 (file)
@@ -23,6 +23,7 @@ import java.util.Stack;
 
 import org.xml.sax.SAXException;
 
+import org.apache.fop.accessibility.Accessibility;
 import org.apache.fop.accessibility.StructureTreeEventHandler;
 import org.apache.fop.fo.DelegatingFOEventHandler;
 import org.apache.fop.fo.FOEventHandler;
@@ -57,6 +58,8 @@ import org.apache.fop.fo.pagination.Flow;
 import org.apache.fop.fo.pagination.PageSequence;
 import org.apache.fop.fo.pagination.Root;
 import org.apache.fop.fo.pagination.StaticContent;
+import org.apache.fop.fo.properties.CommonAccessibility;
+import org.apache.fop.fo.properties.CommonAccessibilityHolder;
 
 /**
  * Allows to create the structure tree of an FO document, by converting FO
@@ -355,6 +358,7 @@ public class FO2StructureTreeConverter extends DelegatingFOEventHandler {
 
     @Override
     public void startStatic(StaticContent staticContent) {
+        handleStartArtifact(staticContent);
         converter.startStatic(staticContent);
         super.startStatic(staticContent);
     }
@@ -362,6 +366,7 @@ public class FO2StructureTreeConverter extends DelegatingFOEventHandler {
     @Override
     public void endStatic(StaticContent statisContent) {
         converter.endStatic(statisContent);
+        handleEndArtifact(statisContent);
         super.endStatic(statisContent);
     }
 
@@ -454,6 +459,7 @@ public class FO2StructureTreeConverter extends DelegatingFOEventHandler {
 
     @Override
     public void startWrapper(Wrapper wrapper) {
+        handleStartArtifact(wrapper);
         converter.startWrapper(wrapper);
         super.startWrapper(wrapper);
     }
@@ -461,6 +467,7 @@ public class FO2StructureTreeConverter extends DelegatingFOEventHandler {
     @Override
     public void endWrapper(Wrapper wrapper) {
         converter.endWrapper(wrapper);
+        handleEndArtifact(wrapper);
         super.endWrapper(wrapper);
     }
 
@@ -488,4 +495,22 @@ public class FO2StructureTreeConverter extends DelegatingFOEventHandler {
         super.endExternalDocument(document);
     }
 
+    private void handleStartArtifact(CommonAccessibilityHolder fobj) {
+        if (isArtifact(fobj)) {
+            converters.push(converter);
+            converter = eventSwallower;
+        }
+    }
+
+    private void handleEndArtifact(CommonAccessibilityHolder fobj) {
+        if (isArtifact(fobj)) {
+            converter = converters.pop();
+        }
+    }
+
+    private boolean isArtifact(CommonAccessibilityHolder fobj) {
+        CommonAccessibility accessibility = fobj.getCommonAccessibility();
+        return Accessibility.ROLE_ARTIFACT.equalsIgnoreCase(accessibility.getRole());
+    }
+
 }
index e9a269ac4f820c27c45665edf61adccdc2bc4d53..7172b0ee3f4656aaa9b6add37a47428f8a9dd71b 100644 (file)
@@ -67,7 +67,7 @@ import org.apache.fop.svg.NativeImageHandler;
 
 /**
  * This is a concrete implementation of {@link AbstractGraphics2D} (and
- * therefore of {@link Graphics2D}) which is able to generate GOCA byte
+ * therefore of {@link java.awt.Graphics2D}) which is able to generate GOCA byte
  * codes.
  *
  * @see org.apache.xmlgraphics.java2d.AbstractGraphics2D
@@ -165,7 +165,7 @@ public class AFPGraphics2D extends AbstractGraphics2D implements NativeImageHand
     }
 
     /**
-     * Returns the AFP resource manager associated with this {@link Graphics2D} instance.
+     * Returns the AFP resource manager associated with this {@link java.awt.Graphics2D} instance.
      * @return the resource manager
      */
     public AFPResourceManager getResourceManager() {
index adb56e6261435673fd2185e470ee9325d5e4ee0f..e4263924812d223da5f5851eaf3910fe18b70b54 100644 (file)
@@ -119,7 +119,8 @@ public class ImageObject extends AbstractDataObject {
      * Sets the image IDE color model.
      *
      * @param colorModel    the IDE color model.
-     * @deprecated Use {@link IDEStructureParameter#setColorModel(byte)} instead.
+     * @deprecated Use {@link org.apache.fop.afp.ioca.IDEStructureParameter#setColorModel(byte)}
+     * instead.
      */
     public void setIDEColorModel(byte colorModel) {
         getImageSegment().setIDEColorModel(colorModel);
@@ -128,7 +129,8 @@ public class ImageObject extends AbstractDataObject {
     /**
      * Set either additive or subtractive mode (used for ASFLAG).
      * @param subtractive true for subtractive mode, false for additive mode
-     * @deprecated Use {@link IDEStructureParameter#setSubtractive(boolean)} instead.
+     * @deprecated Use {@link org.apache.fop.afp.ioca.IDEStructureParameter#setSubtractive(boolean)}
+     * instead.
      */
     public void setSubtractive(boolean subtractive) {
         getImageSegment().setSubtractive(subtractive);
index b681314137256ada13cd32ac09501e2a192d424b..c0934b1e55bd8fd20c7199ef43b16238511e3859 100644 (file)
@@ -46,7 +46,7 @@ import org.apache.fop.afp.util.BinaryUtils;
  * which signal an alternate mode of processing for the content of the current
  * Presentation Text data.
  * <p>
- * The content for this object can be created using {@link PtocaBuilder}.
+ * The content for this object can be created using {@link org.apache.fop.afp.ptoca.PtocaBuilder}.
  */
 public class PresentationTextData extends AbstractAFPObject implements PtocaConstants {
 
index f379546e2e94a57dc6c2650450170c182e9d07f1..2872976b6dd26a0cbf2a4dfacfa66125a1977f0e 100644 (file)
@@ -44,7 +44,8 @@ public class DefaultFOPResourceAccessor extends SimpleResourceAccessor {
      * Constructor for resource to be accessed via the {@link FOUserAgent}. This contructor
      * can take two base URIs: the category base URI is the one to use when differentiating between
      * normal resources (ex. images) and font resources. So, if fonts need to be accessed, you can
-     * set the {@link FontManager}'s base URI instead of the one on the {@link FopFactory}.
+     * set the {@link org.apache.fop.fonts.FontManager}'s base URI instead of the one on the
+     * {@link org.apache.fop.apps.FopFactory}.
      * @param userAgent the FO user agent
      * @param categoryBaseURI the category base URI (may be null)
      * @param baseURI the custom base URI to resolve relative URIs against (may be null)
index 665c1abf812544577ca6a19b84052b58a4111771..035b6f1a1195e4e7ab6a12a9972dd4fa0fe3eb39 100644 (file)
@@ -355,7 +355,7 @@ public class FOUserAgent {
     /**
      * Sets font base URL.
      * @param fontBaseUrl font base URL
-     * @deprecated Use {@link FontManager#setFontBaseURL(String)} instead.
+     * @deprecated Use {@link org.apache.fop.fonts.FontManager#setFontBaseURL(String)} instead.
      */
     public void setFontBaseURL(String fontBaseUrl) {
         try {
@@ -500,7 +500,8 @@ public class FOUserAgent {
     /**
      * Returns the font base URL.
      * @return the font base URL
-     * @deprecated Use {@link FontManager#getFontBaseURL()} instead. This method is not used by FOP.
+     * @deprecated Use {@link org.apache.fop.fonts.FontManager#getFontBaseURL()} instead.
+     * This method is not used by FOP.
      */
     public String getFontBaseURL() {
         String fontBase = getFactory().getFontManager().getFontBaseURL();
index 3b7c14b0e11dd92d9fcc555b76eaaff6b8a53420..6db6be7264b2f430d796304a00859f75a0091ef0 100644 (file)
@@ -1783,9 +1783,9 @@ public class GlyphPositioningTable extends GlyphTable {
          * Find device adjustment.
          * @param fontSize the font size to search for
          * @return an adjustment if font size matches an entry
-         * @asf.todo at present, assumes that 1 device unit equals one point
          */
         public int findAdjustment ( int fontSize ) {
+            // [TODO] at present, assumes that 1 device unit equals one point
             int fs = fontSize / 1000;
             if ( fs < startSize ) {
                 return 0;
index ce45858287f6dacc2516fdc07317d258c28e8571..26249bc22d574613bee14aeca5df8195ea451cf2 100644 (file)
@@ -360,7 +360,7 @@ public class IndicScriptProcessor extends DefaultScriptProcessor {
     }
 
     /** Abstract syllabizer. */
-    protected abstract static class Syllabizer {
+    protected abstract static class Syllabizer implements Comparable {
         private String script;
         private String language;
         Syllabizer ( String script, String language ) {
index 743708b72a3b6db65496c7273213671f4c50360e..11b6d4a2f4a34b8c03453bda2c4614cdd665f53c 100644 (file)
@@ -123,11 +123,17 @@ public abstract class FOEventHandler {
     public void endDocument() throws SAXException {
     }
 
-    /** {@inheritDoc} */
+    /**
+     * Called upon start of root element.
+     * @param root element
+     */
     public void startRoot(Root root) {
     }
 
-    /** {@inheritDoc} */
+    /**
+     * Called upon end of root element.
+     * @param root element
+     */
     public void endRoot(Root root) {
     }
 
@@ -413,9 +419,9 @@ public abstract class FOEventHandler {
 
     /**
      * Process end of a Static.
-     * @param statisContent StaticContent that is ending
+     * @param staticContent StaticContent that is ending
      */
-    public void endStatic(StaticContent statisContent) {
+    public void endStatic(StaticContent staticContent) {
     }
 
 
index 1302e31343672ad35e848cbbbe029d5c162d6a1b..0aec7ce162926300e1998a6dc9fac331784a10e9 100644 (file)
@@ -26,7 +26,10 @@ import org.apache.fop.fo.Constants;
 import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.FOText;
 import org.apache.fop.fo.FObjMixed;
+import org.apache.fop.fo.PropertyList;
 import org.apache.fop.fo.ValidationException;
+import org.apache.fop.fo.properties.CommonAccessibility;
+import org.apache.fop.fo.properties.CommonAccessibilityHolder;
 
 /**
  * Class modelling the <a href=http://www.w3.org/TR/xsl/#fo_wrapper">
@@ -34,13 +37,13 @@ import org.apache.fop.fo.ValidationException;
  * The <code>fo:wrapper</code> object serves as a property holder for
  * its child node objects.
  */
-public class Wrapper extends FObjMixed {
-    // The value of properties relevant for fo:wrapper.
-    // End of property values
+public class Wrapper extends FObjMixed implements CommonAccessibilityHolder {
 
     // used for FO validation
     private boolean blockOrInlineItemFound = false;
 
+    private CommonAccessibility commonAccessibility;
+
     /**
      * Create a Wrapper instance that is a child of the
      * given {@link FONode}
@@ -51,6 +54,12 @@ public class Wrapper extends FObjMixed {
         super(parent);
     }
 
+    @Override
+    public void bind(PropertyList pList) throws FOPException {
+        super.bind(pList);
+        commonAccessibility = CommonAccessibility.getInstance(pList);
+    }
+
     @Override
     protected void startOfNode() throws FOPException {
         super.startOfNode();
@@ -136,6 +145,10 @@ public class Wrapper extends FObjMixed {
         return FO_WRAPPER;
     }
 
+    public CommonAccessibility getCommonAccessibility() {
+        return commonAccessibility;
+    }
+
     @Override
     public boolean isDelimitedTextRangeBoundary ( int boundary ) {
         return false;
index 2bcdb612717f5c8d674dc1a1f4bedea116dfa0bd..03c159843141f936c290757975b26ba7974dcf63 100644 (file)
@@ -41,12 +41,16 @@ public class BalancingColumnBreakingAlgorithm extends PageBreakingAlgorithm {
      * @param topLevelLM the top level layout manager
      * @param pageProvider the page provider
      * @param layoutListener the layout listener
-     * @param alignment     alignment of the paragraph/page. One of {@link Constants#EN_START},
-     *                  {@link Constants#EN_JUSTIFY}, {@link Constants#EN_CENTER},
-     *                  {@link Constants#EN_END}.
-     *                  For pages, {@link Constants#EN_BEFORE} and {@link Constants#EN_AFTER}
-     *                  are mapped to the corresponding inline properties,
-     *                  {@link Constants#EN_START} and {@link Constants#EN_END}.
+     * @param alignment     alignment of the paragraph/page. One of
+     *   {@link org.apache.fop.fo.Constants#EN_START},
+     *   {@link org.apache.fop.fo.Constants#EN_JUSTIFY},
+     *   {@link org.apache.fop.fo.Constants#EN_CENTER},
+     *   {@link org.apache.fop.fo.Constants#EN_END}.
+     *   For pages, {@link org.apache.fop.fo.Constants#EN_BEFORE} and
+     *   {@link org.apache.fop.fo.Constants#EN_AFTER}
+     *   are mapped to the corresponding inline properties,
+     *   {@link org.apache.fop.fo.Constants#EN_START} and
+     *   {@link org.apache.fop.fo.Constants#EN_END}.
      * @param alignmentLast alignment of the paragraph's last line
      * @param footnoteSeparatorLength length of footnote separator
      * @param partOverflowRecovery  {@code true} if too long elements should be moved to
index 1c89c20094492f7910f52d3012390b4cf9dae039..77e7f140b5e0a3acfe8a627544d4b0c7a527b517 100644 (file)
@@ -46,8 +46,11 @@ public class BreakElement extends UnresolvedListElement {
      * Create a new BreakElement for the given {@code position}, {@code penaltyValue}
      * and {@code breakClass}. (Used principally to generate break-possibilities in
      * ranges of content that must be kept together within the context corresponding
-     * to the {@code breakClass}; expected to be one of {@link Constants#EN_AUTO},
-     * {@link Constants#EN_LINE}, {@link Constants#EN_COLUMN} or {@link Constants#EN_PAGE})
+     * to the {@code breakClass}; expected to be one of
+     *   {@link org.apache.fop.fo.Constants#EN_AUTO},
+     *   {@link org.apache.fop.fo.Constants#EN_LINE},
+     *   {@link org.apache.fop.fo.Constants#EN_COLUMN} or
+     *   {@link org.apache.fop.fo.Constants#EN_PAGE})
      * @param position  the corresponding {@link Position}
      * @param penaltyValue  the penalty value
      * @param breakClass    the break class
@@ -64,9 +67,12 @@ public class BreakElement extends UnresolvedListElement {
      * @param position the Position instance needed by the addAreas stage of the LMs.
      * @param penaltyWidth the penalty width
      * @param penaltyValue the penalty value for the penalty element to be constructed
-     * @param breakClass the break class of this penalty (one of {@link Constants#EN_AUTO},
-     * {@link Constants#EN_COLUMN}, {@link Constants#EN_PAGE},
-     * {@link Constants#EN_EVEN_PAGE}, {@link Constants#EN_ODD_PAGE})
+     * @param breakClass the break class of this penalty (one of
+     *   {@link org.apache.fop.fo.Constants#EN_AUTO},
+     *   {@link org.apache.fop.fo.Constants#EN_COLUMN},
+     *   {@link org.apache.fop.fo.Constants#EN_PAGE},
+     *   {@link org.apache.fop.fo.Constants#EN_EVEN_PAGE},
+     *   {@link org.apache.fop.fo.Constants#EN_ODD_PAGE})
      * @param context the layout context which contains the pending conditional elements
      */
     public BreakElement(Position position, int penaltyWidth, int penaltyValue,
@@ -120,9 +126,12 @@ public class BreakElement extends UnresolvedListElement {
     /**
      * Returns the break class of this penalty.
      *
-     * @return one of {@link Constants#EN_AUTO}, {@link Constants#EN_COLUMN},
-     * {@link Constants#EN_PAGE}, {@link Constants#EN_EVEN_PAGE},
-     * {@link Constants#EN_ODD_PAGE}
+     * @return one of
+     *   {@link org.apache.fop.fo.Constants#EN_AUTO},
+     *   {@link org.apache.fop.fo.Constants#EN_COLUMN},
+     *   {@link org.apache.fop.fo.Constants#EN_PAGE},
+     *   {@link org.apache.fop.fo.Constants#EN_EVEN_PAGE},
+     *   {@link org.apache.fop.fo.Constants#EN_ODD_PAGE}.
      */
     public int getBreakClass() {
         return breakClass;
@@ -131,9 +140,12 @@ public class BreakElement extends UnresolvedListElement {
     /**
      * Sets the break class.
      *
-     * @param breakClass one of {@link Constants#EN_AUTO}, {@link Constants#EN_COLUMN},
-     * {@link Constants#EN_PAGE}, {@link Constants#EN_EVEN_PAGE},
-     * {@link Constants#EN_ODD_PAGE}
+     * @param breakClass one of
+     *   {@link org.apache.fop.fo.Constants#EN_AUTO},
+     *   {@link org.apache.fop.fo.Constants#EN_COLUMN},
+     *   {@link org.apache.fop.fo.Constants#EN_PAGE},
+     *   {@link org.apache.fop.fo.Constants#EN_EVEN_PAGE},
+     *   {@link org.apache.fop.fo.Constants#EN_ODD_PAGE}.
      */
     public void setBreakClass(int breakClass) {
         this.breakClass = breakClass;
index 2d4e1f2bed585098b7736091dda8637843dafd6d..220f9c35d341935f15533be85b646e3eb9ee76d5 100644 (file)
@@ -72,8 +72,11 @@ public class KnuthPenalty extends KnuthElement {
      * @param penalty the penalty value of this penalty
      * @param penaltyFlagged is this penalty flagged?
      * @param breakClass the break class of this penalty (one of
-     * {@link Constants#EN_AUTO}, {@link Constants#EN_COLUMN}, {@link Constants#EN_PAGE},
-     * {@link Constants#EN_EVEN_PAGE}, {@link Constants#EN_ODD_PAGE})
+     *   {@link org.apache.fop.fo.Constants#EN_AUTO},
+     *   {@link org.apache.fop.fo.Constants#EN_COLUMN},
+     *   {@link org.apache.fop.fo.Constants#EN_PAGE},
+     *   {@link org.apache.fop.fo.Constants#EN_EVEN_PAGE},
+     *   {@link org.apache.fop.fo.Constants#EN_ODD_PAGE}).
      * @param pos the Position stored in this penalty
      * @param isAuxiliary is this penalty auxiliary?
      */
index 8eea7e390c13e51f7f0d3c1768520fb74af08649..1fb544368e2c94898ba0a166c13871a6eb3cb3a0 100644 (file)
@@ -30,7 +30,7 @@ import org.apache.xmlgraphics.java2d.color.DeviceCMYKColorSpace;
  * image. And in this context, only RGB and Gray values are used.
  * <p>
  * Use of this class is discouraged. {@link PDFColorHandler} is now used for in-content color
- * selection. For masked bitmaps, it may be wiser to switch to {@link Color} in the long run.
+ * selection. For masked bitmaps, it may be wiser to switch to {@link java.awt.Color} in the long run.
  */
 public class PDFColor extends PDFPathPaint {
     // could be 3.0 as well.
index dc0681405b8a9995cf8855618609c6e5657755c6..ae68939449e70227118db870604b19e62cdf71df 100644 (file)
@@ -38,7 +38,10 @@ public class PDFEmbeddedFile extends PDFStream {
         put("Params", params);
     }
 
-    /** {@inheritDoc} */
+    /**
+     * Determine if should encode on the fly.
+     * @return true if should encode on the fly
+     */
     protected boolean isEncodingOnTheFly() {
         //Acrobat doesn't like an indirect /Length object in this case,
         //but only when the embedded file is a PDF file.
index 1b9c4eea754bf4bc3c4333f50346c282bfed45d4..e0f9501541e469567e7f04932d949daba78085a6 100644 (file)
@@ -22,7 +22,6 @@ package org.apache.fop.pdf;
 // Java
 import java.io.IOException;
 import java.io.OutputStream;
-import java.io.Writer;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -210,11 +209,6 @@ public abstract class PDFObject implements PDFWritable {
         return pdf.length;
     }
 
-    /** {@inheritDoc} */
-    public void outputInline(OutputStream out, Writer writer) throws IOException {
-        throw new UnsupportedOperationException("Don't use anymore: " + getClass().getName());
-    }
-
     /** {@inheritDoc} */
     public void outputInline(OutputStream out, StringBuilder textBuffer) throws IOException {
         if (hasObjectNumber()) {
index df8647bf41c3463a5867389c40bf948d2c4ca81b..cded7c00a97e2ae8e22e3200da8c40339070c192 100644 (file)
@@ -21,9 +21,8 @@ package org.apache.fop.pdf;
 
 import java.io.IOException;
 import java.io.OutputStream;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
 import java.util.Map;
 import java.util.Set;
 
@@ -46,33 +45,33 @@ public class PDFResources extends PDFDictionary {
     /**
      * /Font objects keyed by their internal name
      */
-    protected Map fonts = new HashMap();
+    protected Map<String, PDFFont> fonts = new LinkedHashMap<String, PDFFont>();
 
     /**
      * Set of XObjects
      */
-    protected Set xObjects = new HashSet();
+    protected Set<PDFXObject> xObjects = new LinkedHashSet<PDFXObject>();
 
     /**
      * Set of patterns
      */
-    protected Set patterns = new HashSet();
+    protected Set<PDFPattern> patterns = new LinkedHashSet<PDFPattern>();
 
     /**
      * Set of shadings
      */
-    protected Set shadings = new HashSet();
+    protected Set<PDFShading> shadings = new LinkedHashSet<PDFShading>();
 
     /**
      * Set of ExtGStates
      */
-    protected Set gstates = new HashSet();
+    protected Set<PDFGState> gstates = new LinkedHashSet<PDFGState>();
 
     /** Map of color spaces (key: color space name) */
-    protected Map colorSpaces = new HashMap();
+    protected Map<PDFName, PDFColorSpace> colorSpaces = new LinkedHashMap<PDFName, PDFColorSpace>();
 
     /** Map of ICC color spaces (key: ICC profile description) */
-    protected Map iccColorSpaces = new HashMap();
+    protected Map<String, PDFICCBasedColorSpace> iccColorSpaces = new LinkedHashMap<String, PDFICCBasedColorSpace>();
 
     /**
      * create a /Resources object.
@@ -168,7 +167,7 @@ public class PDFResources extends PDFDictionary {
             PDFICCBasedColorSpace icc = (PDFICCBasedColorSpace)colorSpace;
             String desc = ColorProfileUtil.getICCProfileDescription(
                     icc.getICCStream().getICCProfile());
-            this.iccColorSpaces.put(desc, colorSpace);
+            this.iccColorSpaces.put(desc, icc);
         }
     }
 
@@ -178,7 +177,7 @@ public class PDFResources extends PDFDictionary {
      * @return the requested color space or null if it wasn't found
      */
     public PDFICCBasedColorSpace getICCColorSpaceByProfileName(String desc) {
-        PDFICCBasedColorSpace cs = (PDFICCBasedColorSpace)this.iccColorSpaces.get(desc);
+        PDFICCBasedColorSpace cs = this.iccColorSpaces.get(desc);
         return cs;
     }
 
@@ -188,7 +187,7 @@ public class PDFResources extends PDFDictionary {
      * @return the requested color space or null if it wasn't found
      */
     public PDFColorSpace getColorSpace(PDFName name) {
-        PDFColorSpace cs = (PDFColorSpace)this.colorSpaces.get(name);
+        PDFColorSpace cs = this.colorSpaces.get(name);
         return cs;
     }
 
@@ -202,28 +201,24 @@ public class PDFResources extends PDFDictionary {
         if (!this.fonts.isEmpty()) {
             PDFDictionary dict = new PDFDictionary(this);
             /* construct PDF dictionary of font object references */
-            Iterator fontIterator = this.fonts.keySet().iterator();
-            while (fontIterator.hasNext()) {
-                String fontName = (String)fontIterator.next();
-                dict.put(fontName, (PDFFont)this.fonts.get(fontName));
+            for (Map.Entry<String, PDFFont> entry : fonts.entrySet()) {
+                dict.put(entry.getKey(), entry.getValue());
             }
             put("Font", dict);
         }
 
         if (!this.shadings.isEmpty()) {
             PDFDictionary dict = new PDFDictionary(this);
-            for (Iterator iter = shadings.iterator(); iter.hasNext();) {
-                PDFShading currentShading = (PDFShading)iter.next();
-                dict.put(currentShading.getName(), currentShading);
+            for (PDFShading shading : shadings) {
+                dict.put(shading.getName(), shading);
             }
             put("Shading", dict);
         }
 
         if (!this.patterns.isEmpty()) {
             PDFDictionary dict = new PDFDictionary(this);
-            for (Iterator iter = patterns.iterator(); iter.hasNext();) {
-                PDFPattern currentPattern = (PDFPattern)iter.next();
-                dict.put(currentPattern.getName(), currentPattern);
+            for (PDFPattern pattern : patterns) {
+                dict.put(pattern.getName(), pattern);
             }
             put("Pattern", dict);
         }
@@ -237,26 +232,23 @@ public class PDFResources extends PDFDictionary {
 
         if (this.xObjects != null && !this.xObjects.isEmpty()) {
             PDFDictionary dict = new PDFDictionary(this);
-            for (Iterator iter = xObjects.iterator(); iter.hasNext();) {
-                PDFXObject xobj = (PDFXObject)iter.next();
-                dict.put(xobj.getName().toString(), xobj);
+            for (PDFXObject xObject : xObjects) {
+                dict.put(xObject.getName().toString(), xObject);
             }
             put("XObject", dict);
         }
 
         if (!this.gstates.isEmpty()) {
             PDFDictionary dict = new PDFDictionary(this);
-            for (Iterator iter = gstates.iterator(); iter.hasNext();) {
-                PDFGState gs = (PDFGState)iter.next();
-                dict.put(gs.getName(), gs);
+            for (PDFGState gstate : gstates) {
+                dict.put(gstate.getName(), gstate);
             }
             put("ExtGState", dict);
         }
 
         if (!this.colorSpaces.isEmpty()) {
             PDFDictionary dict = new PDFDictionary(this);
-            for (Iterator iter = colorSpaces.values().iterator(); iter.hasNext();) {
-                PDFColorSpace colorSpace = (PDFColorSpace)iter.next();
+            for (PDFColorSpace colorSpace : colorSpaces.values()) {
                 dict.put(colorSpace.getName(), colorSpace);
             }
             put("ColorSpace", dict);
index fe6952de1a5f068a5fd5bce9a348697aa2136b47..190d7c5d6d310133fca03b510a29751d1207333e 100644 (file)
@@ -33,7 +33,8 @@ public interface ImageHandler extends ImageHandlerBase {
      * Indicates whether the image handler is compatible with the indicated target represented
      * by the rendering context object and with the image to be processed. The image is also
      * passed as a parameter because a handler might not support every subtype of image that is
-     * presented. For example: in the case of {@link ImageXMLDOM}, the image might carry an SVG
+     * presented. For example: in the case of
+     * {@link org.apache.xmlgraphics.image.loader.impl.ImageXMLDOM}, the image might carry an SVG
      * or some other XML format. One handler might only handle SVG but no other XML format.
      * @param targetContext the target rendering context
      * @param image the image to be processed (or null if only to check based on the rendering
index 7823a2ce6f7074dacca0b5ba80f1a327cc781e5e..2ae95dd4c91e090e53ff168fc5166c31d32a961a 100644 (file)
@@ -58,7 +58,8 @@ import org.apache.fop.render.intermediate.IFException;
 import org.apache.fop.render.intermediate.IFPainter;
 
 /**
- * {@link IFDocumentHandler} implementation that produces AFP (MO:DCA).
+ * {@link org.apache.fop.render.intermediate.IFDocumentHandler} implementation that
+ * produces AFP (MO:DCA).
  */
 public class AFPDocumentHandler extends AbstractBinaryWritingIFDocumentHandler
             implements AFPCustomizable {
index 842456f6958fb2e3a979fac10b1eeb48c66bdabc..824ecbabb2985c213aed2e8eeb699515fea3f6d5 100644 (file)
@@ -27,7 +27,7 @@ import org.xml.sax.helpers.AttributesImpl;
 
 /**
  * This extension allows to include an AFP form map resource. It is implemented as an extension
- * attachment ({@link ExtensionAttachment}).
+ * attachment ({@link org.apache.fop.fo.extensions.ExtensionAttachment}).
  */
 public class AFPIncludeFormMap extends AFPExtensionAttachment {
 
index 37f818f6459688fcdaff5797f7c060ab066ae91f..c5079b2bd9c807af3ca007414d67d0d275cffe1b 100644 (file)
@@ -32,8 +32,8 @@ import org.apache.fop.fo.PropertyList;
 import org.apache.fop.fo.extensions.ExtensionAttachment;
 
 /**
- * This class extends the {@link ExtensionObj} class. It represents the "include-form-map"
- * extension in the FO tree.
+ * This class extends the {@link org.apache.fop.fo.extensions.ExtensionObj} class.
+ * It represents the "include-form-map" extension in the FO tree.
  */
 public class AFPIncludeFormMapElement extends AbstractAFPExtensionObject {
 
index 0900d40b4dd38d4c74925ad6f07e376601e36450..1e6aee7d55a73aac1622315236f106ba9a8b6ebd 100644 (file)
@@ -25,7 +25,7 @@ import org.xml.sax.helpers.AttributesImpl;
 
 /**
  * This extension allows to include an AFP Page Overlay resource. It is implemented as an extension
- * attachment ({@link ExtensionAttachment}).
+ * attachment ({@link org.apache.fop.fo.extensions.ExtensionAttachment}).
  */
 public class AFPPageOverlay extends AFPExtensionAttachment {
 
index c98c05a8e557767589afa2ba0fc588f638636e4b..0c6ebde56d030b70846affc99a9dfca7866b25cc 100644 (file)
@@ -47,7 +47,8 @@ import org.apache.fop.render.java2d.Java2DPainter;
 import org.apache.fop.render.java2d.Java2DUtil;
 
 /**
- * Abstract {@link IFDocumentHandler} implementation for producing bitmap images.
+ * Abstract {@link org.apache.fop.render.intermediate.IFDocumentHandler} implementation
+ * for producing bitmap images.
  */
 public abstract class AbstractBitmapDocumentHandler extends AbstractBinaryWritingIFDocumentHandler {
 
index 05c44a1a65b1acd7955ba422ba7de6caba8d30ec..ed92b852f9b96c513dcf6e65a58c1d1ef1e3919b 100644 (file)
@@ -23,7 +23,8 @@ import org.apache.fop.apps.MimeConstants;
 import org.apache.fop.render.intermediate.IFDocumentHandlerConfigurator;
 
 /**
- * {@link IFDocumentHandler} implementation that produces PNG files.
+ * {@link org.apache.fop.render.intermediate.IFDocumentHandler} implementation
+ * that produces PNG files.
  */
 public class PNGDocumentHandler extends AbstractBitmapDocumentHandler {
 
index 4b7fa3c2d7c9ca2259f5573849075c93fb6968d0..1c9a39bbe46275fbbb2c2857cdb60c24e4fa9285 100644 (file)
@@ -23,7 +23,8 @@ import org.apache.fop.apps.MimeConstants;
 import org.apache.fop.render.intermediate.IFDocumentHandlerConfigurator;
 
 /**
- * {@link IFDocumentHandler} implementation that produces TIFF files.
+ * {@link org.apache.fop.render.intermediate.IFDocumentHandler} implementation
+ * that produces TIFF files.
  */
 public class TIFFDocumentHandler extends AbstractBitmapDocumentHandler {
 
index c59a02ba850392ea207d2784775d52c87e56e8cb..681b996e452607c6474314d9f5c89032e6265416 100644 (file)
@@ -145,7 +145,7 @@ public class IFContext {
 
     /**
      * Resets the current structure tree element.
-     * @see #setStructureTreeElement(String)
+     * @see #setStructureTreeElement(StructureTreeElement)
      */
     public void resetStructureTreeElement() {
         setStructureTreeElement(null);
@@ -154,7 +154,7 @@ public class IFContext {
     /**
      * Returns the current structure tree element.
      * @return the structure tree element (or null if no element is active)
-     * @see #setStructureTreeElement(String)
+     * @see #setStructureTreeElement(StructureTreeElement)
      */
     public StructureTreeElement getStructureTreeElement() {
         return this.structureTreeElement;
index e8651a3dfda23536004dfbcba2a082fec7ee6703..c4f68193623a0f0b8d2e20a29722e3cfe30421cd 100644 (file)
@@ -147,8 +147,8 @@ public final class IFUtil {
 
     /**
      * Sets up the fonts on a document handler. If the document handler provides a configurator
-     * object the configuration from the {@link FopFactory} will be used. Otherwise,
-     * a default font configuration will be set up.
+     * object the configuration from the {@link org.apache.fop.apps.FopFactory} will be used.
+     * Otherwise, a default font configuration will be set up.
      * @param documentHandler the document handler
      * @param fontInfo the font info object (may be null)
      * @throws FOPException if an error occurs while setting up the fonts
@@ -175,8 +175,8 @@ public final class IFUtil {
 
     /**
      * Sets up the fonts on a document handler. If the document handler provides a configurator
-     * object the configuration from the {@link FopFactory} will be used. Otherwise,
-     * a default font configuration will be set up.
+     * object the configuration from the {@link org.apache.fop.apps.FopFactory} will be used.
+     * Otherwise, a default font configuration will be set up.
      * @param documentHandler the document handler
      * @throws FOPException if an error occurs while setting up the fonts
      */
index 5d964cbbf8679e70c504c8df9dc63b1151df799b..36df00f20046c7db3d10cb911eb1243ec4e771dd 100644 (file)
@@ -36,7 +36,7 @@ import org.apache.fop.fonts.Typeface;
 
 /**
  * FontMetricsMapper that delegates most methods to an underlying
- * {@link FontMetrics} instance. This class was designed to allow
+ * {@link org.apache.fop.fonts.FontMetrics} instance. This class was designed to allow
  * the underlying {@link Font} to be loaded from a
  * user-configured file not registered in the current graphics environment.
  */
index dd830a15b6667a0dc94cc556c10fe1884de3d028..575242d3897aec6a48170607515b2a2d7b5eb8eb 100644 (file)
@@ -47,7 +47,8 @@ import org.apache.fop.traits.RuleStyle;
 import org.apache.fop.util.CharUtilities;
 
 /**
- * {@link IFPainter} implementation that paints on a Graphics2D instance.
+ * {@link org.apache.fop.render.intermediate.IFPainter} implementation
+ * that paints on a Graphics2D instance.
  */
 public class Java2DPainter extends AbstractIFPainter {
 
index 52e522c7a98bc8bdeccbcf97e7e3b38e1cbe823f..332b4a77dcdac65c2c201559b5fec3932c40d588 100644 (file)
@@ -45,7 +45,8 @@ import org.apache.fop.render.java2d.Java2DUtil;
 import org.apache.fop.render.pcl.extensions.PCLElementMapping;
 
 /**
- * {@link IFDocumentHandler} implementation that produces PCL 5.
+ * {@link org.apache.fop.render.intermediate.IFDocumentHandler} implementation
+ * that produces PCL 5.
  */
 public class PCLDocumentHandler extends AbstractBinaryWritingIFDocumentHandler
             implements PCLConstants {
index 9fc5754566b880d0327726c420e7fbd655570a02..0d630826c38ddc012b8d8540a8ddead0bbddc0ce 100644 (file)
@@ -58,7 +58,8 @@ import org.apache.fop.traits.RuleStyle;
 import org.apache.fop.util.CharUtilities;
 
 /**
- * {@link IFPainter} implementation that produces PCL 5.
+ * {@link org.apache.fop.render.intermediate.IFPainter} implementation
+ * that produces PCL 5.
  */
 public class PCLPainter extends AbstractIFPainter implements PCLConstants {
 
index 33adcb8d7f81891b08344f3f9697d5610fbb6a67..e8f123dc5bb70693c6de477ffe25e55d69459a9a 100644 (file)
@@ -100,12 +100,6 @@ public class NativeTextHandler implements PSTextHandler {
         //nop
     }
 
-    /** {@inheritDoc} */
-    public void drawString(String text, float x, float y) throws IOException {
-        // TODO Remove me after removing the deprecated method in TextHandler.
-        throw new UnsupportedOperationException("Deprecated method!");
-    }
-
     /**
      * Draw a string to the PostScript document. The text is painted using
      * text operations.
index 95647d820088beda18a98f56da940aaa4a53c1f1..dc785ea1850a53dd3cf738dbd9e17e33de3daca6 100644 (file)
@@ -63,7 +63,8 @@ import org.apache.fop.render.ps.extensions.PSSetPageDevice;
 import org.apache.fop.render.ps.extensions.PSSetupCode;
 
 /**
- * {@link IFDocumentHandler} implementation that produces PostScript.
+ * {@link org.apache.fop.render.intermediate.IFDocumentHandler} implementation
+ * that produces PostScript.
  */
 public class PSDocumentHandler extends AbstractBinaryWritingIFDocumentHandler {
 
index cd70bed34f59113ee654161369c0bdf638f83f5a..c2a481af95444b5ee759c6ee9598b4f38ce926c2 100644 (file)
@@ -64,7 +64,7 @@ public class PDFAElementBridge extends AbstractGraphicsNodeBridge {
     }
 
     /**
-     * Creates a {@link CompositeGraphicsNode}.
+     * Creates a {@link org.apache.batik.gvt.CompositeGraphicsNode}.
      * @return a new PDFANode
      */
     protected GraphicsNode instantiateGraphicsNode() {
index 022f3c21439a49f3c4a6877cc5464f830cd449e4..84fb0156a68ac5b48e347e0d142e96f8984c5b6b 100644 (file)
@@ -22,8 +22,9 @@ package org.apache.fop.traits;
 import java.io.Serializable;
 
 /**
- * This class holds the resolved (as mpoints) form of a {@link LengthRangeProperty LengthRange} or
- * {@link SpaceProperty Space} type property value.
+ * This class holds the resolved (as mpoints) form of a
+ * {@link org.apache.fop.fo.properties.LengthRangeProperty} or
+ * {@link org.apache.fop.fo.properties.SpaceProperty} type property value.
  * <p/>
  * Instances of this class are immutable. All arithmetic methods like {@link #plus(MinOptMax) plus},
  * {@link #minus(MinOptMax) minus} or {@link #mult(int) mult} return a different instance. So it is
index 18fdffaab19cfdb36e39433f0be583273317592a..0d664a6df6b74a096524eaef930ed7f75e425e96 100644 (file)
@@ -30,7 +30,7 @@ public abstract class TraitEnum implements Serializable {
     /**
      * Constructor to add a new named item.
      * @param name Name of the item.
-     * @param enumValue the {@link Constants}.EN_* value
+     * @param enumValue the {@link org.apache.fop.fo.Constants}.EN_* value
      */
     protected TraitEnum(String name, int enumValue) {
         this.name = name;
@@ -46,7 +46,7 @@ public abstract class TraitEnum implements Serializable {
     }
 
     /**
-     * Returns the enumeration value (one of {@link Constants}.EN_*).
+     * Returns the enumeration value (one of {@link org.apache.fop.fo.Constants}.EN_*).
      * @return the enumeration value
      */
     public int getEnumValue() {
index d0ac6767c66fdbcf7cbf15b49cf5625cd194d61d..f92e7c2a6cfe78d820987584137e1b723ff4ef55 100644 (file)
@@ -28,7 +28,7 @@ import java.util.Arrays;
  * <p>
  * This class extends java.awt.Color class keeping track of the original color
  * property values specified by the fo user in a rgb-icc call.
- * @deprecated Replaced by {@link ColorWithAlternatives}
+ * @deprecated Replaced by {@link org.apache.xmlgraphics.java2d.color.ColorWithAlternatives}
  */
 @Deprecated
 public final class ColorExt extends Color {
index cfc86edc72136aab3b0435792527a4dc052d5087..5ef4c0940174f821bc47436b36976948311483ad 100644 (file)
@@ -29,8 +29,10 @@ import org.apache.commons.logging.LogFactory;
 
 import org.apache.fop.apps.FOUserAgent;
 import org.apache.fop.fo.FOEventHandler;
+import org.apache.fop.fo.FOText;
 import org.apache.fop.fo.flow.BasicLink;
 import org.apache.fop.fo.flow.Block;
+import org.apache.fop.fo.flow.Character;
 import org.apache.fop.fo.flow.ExternalGraphic;
 import org.apache.fop.fo.flow.Footnote;
 import org.apache.fop.fo.flow.FootnoteBody;
@@ -39,6 +41,8 @@ import org.apache.fop.fo.flow.InstreamForeignObject;
 import org.apache.fop.fo.flow.Leader;
 import org.apache.fop.fo.flow.ListBlock;
 import org.apache.fop.fo.flow.ListItem;
+import org.apache.fop.fo.flow.ListItemBody;
+import org.apache.fop.fo.flow.ListItemLabel;
 import org.apache.fop.fo.flow.PageNumber;
 import org.apache.fop.fo.flow.table.Table;
 import org.apache.fop.fo.flow.table.TableBody;
@@ -51,6 +55,7 @@ import org.apache.fop.fo.pagination.Flow;
 import org.apache.fop.fo.pagination.PageSequence;
 import org.apache.fop.fo.pagination.PageSequenceMaster;
 import org.apache.fop.fo.pagination.SimplePageMaster;
+import org.apache.fop.fo.pagination.StaticContent;
 import org.apache.fop.fonts.FontSetup;
 import org.apache.fop.render.DefaultFontResolver;
 
@@ -267,27 +272,27 @@ public class MIFHandler extends FOEventHandler {
     }
 
     /** {@inheritDoc} */
-    public void startListLabel() {
+    public void startListLabel(ListItemLabel listItemLabel) {
     }
 
     /** {@inheritDoc} */
-    public void endListLabel() {
+    public void endListLabel(ListItemLabel listItemLabel) {
     }
 
     /** {@inheritDoc} */
-    public void startListBody() {
+    public void startListBody(ListItemBody listItemBody) {
     }
 
     /** {@inheritDoc} */
-    public void endListBody() {
+    public void endListBody(ListItemBody listItemBody) {
     }
 
     /** {@inheritDoc} */
-    public void startStatic() {
+    public void startStatic(StaticContent staticContent) {
     }
 
     /** {@inheritDoc} */
-    public void endStatic() {
+    public void endStatic(StaticContent staticContent) {
     }
 
     /** {@inheritDoc} */
@@ -303,7 +308,7 @@ public class MIFHandler extends FOEventHandler {
     }
 
     /** {@inheritDoc} */
-    public void endLink() {
+    public void endLink(BasicLink basicLink) {
     }
 
     /** {@inheritDoc} */
@@ -315,7 +320,11 @@ public class MIFHandler extends FOEventHandler {
     }
 
     /** {@inheritDoc} */
-    public void foreignObject(InstreamForeignObject ifo) {
+    public void startInstreamForeignObject(InstreamForeignObject ifo) {
+    }
+
+    /** {@inheritDoc} */
+    public void endInstreamForeignObject(InstreamForeignObject ifo) {
     }
 
     /** {@inheritDoc} */
@@ -335,19 +344,37 @@ public class MIFHandler extends FOEventHandler {
     }
 
     /** {@inheritDoc} */
-    public void leader(Leader l) {
+    public void startLeader(Leader l) {
+    }
+
+    /** {@inheritDoc} */
+    public void endLeader(Leader l) {
+    }
+
+    public void character(Character c) {
+        appendCharacters ( new String ( new char[] {c.getCharacter()} ) );
+    }
+
+    /** {@inheritDoc} */
+    public void characters(FOText foText) {
+        appendCharacters ( foText.getCharSequence().toString() );
+    }
+
+    /** {@inheritDoc} */
+    public void startPageNumber(PageNumber pagenum) {
     }
 
     /** {@inheritDoc} */
-    public void characters(char[] data, int start, int length) {
+    public void endPageNumber(PageNumber pagenum) {
+    }
+
+    private void appendCharacters ( String str ) {
         if (para != null) {
-            String str = new String(data, start, length);
             str = str.trim();
             // break into nice length chunks
             if (str.length() == 0) {
                 return;
             }
-
             MIFElement line = new MIFElement("ParaLine");
             MIFElement prop = new MIFElement("TextRectID");
             prop.setValue("2");
@@ -355,17 +382,8 @@ public class MIFHandler extends FOEventHandler {
             prop = new MIFElement("String");
             prop.setValue("\"" + str + "\"");
             line.addElement(prop);
-
             para.addElement(line);
         }
     }
-
-    /** {@inheritDoc} */
-    public void startPageNumber(PageNumber pagenum) {
-    }
-
-    /** {@inheritDoc} */
-    public void endPageNumber(PageNumber pagenum) {
-    }
 }
 
index ef0d9f30199c7e9b3f4dd5c365d8d778f60f80a4..6fd4d36182fdb466499bb7189a8557ff0776bd4a 100644 (file)
@@ -54,7 +54,8 @@ import org.apache.fop.util.GenerationHelperContentHandler;
 import org.apache.fop.util.XMLUtil;
 
 /**
- * {@link IFDocumentHandler} implementation that writes SVG 1.1.
+ * {@link org.apache.fop.render.intermediate.IFDocumentHandler} implementation
+ * that writes SVG 1.1.
  */
 public class SVGDocumentHandler extends AbstractSVGDocumentHandler {
 
index 10be9588ebdbb9da37165ca6560e514767b0d766..8ec374731339e2b6097624fc23f778ce6bc24a47 100644 (file)
@@ -32,7 +32,8 @@ import org.apache.fop.render.intermediate.IFPainter;
 import org.apache.fop.util.XMLUtil;
 
 /**
- * {@link IFDocumentHandler} implementation that writes SVG Print.
+ * {@link org.apache.fop.render.intermediate.IFDocumentHandler} implementation
+ * that writes SVG Print.
  */
 public class SVGPrintDocumentHandler extends AbstractSVGDocumentHandler {
 
index 8cfed70eb91e215d3c4bd2c93c1facf7e0931642..9fc448cf4588adc7bef20bdcefbae4ec40c0968d 100644 (file)
       documents. Example: the fix of marks layering will be such a case when it's done.
     -->
     <release version="1.1rc1" date="3 June 2012">
+      <action context="Code" dev="GA" type="fix">
+        Eliminate javadocs warnings.
+      </action>
+      <action context="Code" dev="GA" type="update" fixes-bug="53055">
+        Update xmlgraphics common jar to reflect recent fixes in XGC.
+      </action>
+      <action context="Code" dev="GA" type="update" fixes-bug="43940" due-to="Julien Aymé">
+        Fix handling of NaN, {+,-}Infinity, and other edge cases. Submitted by Julien Aymé.
+      </action>
+      <action context="Renderers" dev="GA" type="fix" fixes-bug="53304,53306">
+        Add version attribute to AT and IF intermediate formats. Also eliminate redundant use of reversed attribute in AT format.
+      </action>
       <action context="Renderers" dev="GA" type="fix" fixes-bug="53304,53306">
         Add version attribute to AT and IF intermediate formats. Also eliminate redundant use of reversed attribute in AT format.
       </action>
index 9c53bdde39131208672440fdb1b96a7c6b09c54b..863bfe79733912209c8466ed13a76806b39a3080 100644 (file)
@@ -19,8 +19,6 @@
 
 package org.apache.fop.accessibility.fo;
 
-import static org.junit.Assert.assertTrue;
-
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
@@ -45,6 +43,8 @@ import org.w3c.dom.Document;
 import org.xml.sax.SAXException;
 import org.xml.sax.helpers.AttributesImpl;
 
+import static org.junit.Assert.assertTrue;
+
 import org.apache.fop.accessibility.StructureTree2SAXEventAdapter;
 import org.apache.fop.accessibility.StructureTreeEventHandler;
 import org.apache.fop.apps.FOPException;
@@ -102,6 +102,17 @@ public class FO2StructureTreeConverterTestCase {
         testConverter();
     }
 
+    @Test
+    public void testArtifact() throws Exception {
+        foLoader = new FOLoader() {
+
+            public InputStream getFoInputStream() {
+                return getResource("artifact.fo");
+            }
+        };
+        testConverter();
+    }
+
     private Transformer createTransformer(Source xslt) throws TransformerFactoryConfigurationError,
             TransformerConfigurationException {
         TransformerFactory transformerFactory = TransformerFactory.newInstance();
diff --git a/test/java/org/apache/fop/accessibility/fo/artifact.fo b/test/java/org/apache/fop/accessibility/fo/artifact.fo
new file mode 100644 (file)
index 0000000..c3d5fad
--- /dev/null
@@ -0,0 +1,97 @@
+<?xml version="1.0" standalone="no"?>
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
+  <fo:layout-master-set>
+    <fo:simple-page-master master-name="page"
+      page-height="500pt" page-width="300pt" margin="20pt">
+      <fo:region-body/>
+    </fo:simple-page-master>
+  </fo:layout-master-set>
+
+  <fo:page-sequence master-reference="page">
+    <fo:flow flow-name="xsl-region-body" text-align="justify">
+
+      <fo:block>This piece of text is normal content that should be read out loud by a screen 
+        reader.</fo:block>
+
+      <fo:block space-before="10pt">The following content will be treated as artifact:</fo:block>
+
+      <fo:wrapper role="artifact">
+        <fo:block-container border="1pt solid black" padding="5pt"  background-color="#F0F0F0" 
+          space-before="10pt" start-indent="6pt" end-indent="6pt" color="#606060">
+          <fo:block start-indent="0" end-indent="0">
+            <fo:block>A block as artifact.</fo:block>
+            <fo:table space-before="5pt" width="100%" table-layout="fixed">
+              <fo:table-column column-width="proportional-column-width(1)"/>
+              <fo:table-column column-width="proportional-column-width(2)"/>
+              <fo:table-header>
+                <fo:table-cell border="1pt solid #606060"><fo:block>Header 1.1</fo:block></fo:table-cell>
+                <fo:table-cell border="1pt solid #606060"><fo:block>Header 1.2</fo:block></fo:table-cell>
+              </fo:table-header>
+              <fo:table-footer>
+                <fo:table-cell border="1pt solid #606060"><fo:block>Footer 1.1</fo:block></fo:table-cell>
+                <fo:table-cell border="1pt solid #606060"><fo:block>Footer 1.2</fo:block></fo:table-cell>
+              </fo:table-footer>
+              <fo:table-body>
+                <fo:table-row>
+                  <fo:table-cell border="1pt solid #606060"><fo:block>Cell 1.1</fo:block></fo:table-cell>
+                  <fo:table-cell border="1pt solid #606060"><fo:block>Cell 1.2</fo:block></fo:table-cell>
+                </fo:table-row>
+                <fo:table-row>
+                  <fo:table-cell border="1pt solid #606060"><fo:block>Cell 2.1</fo:block></fo:table-cell>
+                  <fo:table-cell border="1pt solid #606060"><fo:block>Cell 2.2</fo:block></fo:table-cell>
+                </fo:table-row>
+              </fo:table-body>
+            </fo:table>
+            <fo:list-block space-before="7pt" provisional-distance-between-starts="8pt" 
+              provisional-label-separation="5pt">
+              <fo:list-item>
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>•</fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block>Item 1.</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item>
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>•</fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block>Item 2.</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item>
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>•</fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block>Item 3.</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+            </fo:list-block>
+            <fo:wrapper>
+              <fo:block>A block in a nested wrapper.</fo:block>
+            </fo:wrapper>
+            <fo:wrapper role="artifact">
+              <fo:block>A block in a nested artifact wrapper.</fo:block>
+            </fo:wrapper>
+            <fo:wrapper>
+              <fo:block>Inside a nested wrapper.
+                <fo:wrapper role="artifact">An artifact wrapper inside the nested wrapper.
+                  <fo:inline><fo:wrapper>Inside a wrapper inside the artifact wrapper that is inside 
+                      the nested wrapper.</fo:wrapper> Outside the wrapper inside the artifact 
+                    wrapper that is inside the nested wrapper.</fo:inline>
+              </fo:wrapper> Outside the artifact wrapper.</fo:block>
+            </fo:wrapper>
+          </fo:block>
+        </fo:block-container>
+      </fo:wrapper>
+
+      <fo:block space-before="10pt">Now we are back to normal content that is part of the logical 
+        structure, should appear in the structure tree and should be read out loud by the screen 
+        reader.</fo:block>
+
+    </fo:flow>
+  </fo:page-sequence>
+
+</fo:root>
index ce326f3b19f432393abdb6e639ef3ab0b812e899..db0dffb14e18ebe3fd743a8900db28c94dcf1910 100644 (file)
     <xsl:call-template name="copy"/>
   </xsl:template>
 
+  <xsl:template match="fo:wrapper[translate(normalize-space(@role), 'ARTIFCT', 'artifct') = 'artifact']"/>
+
 
   <!-- Discard descendants of fo:leader -->
   <xsl:template match="fo:leader"/>
index 38fcf1bde3c847f0480323f16f90b38d310ddc0d..4dfb686c9f962f298f1b1611ca221d67eb0a300d 100644 (file)
Binary files a/test/pdf/accessibility/pdf/role.pdf and b/test/pdf/accessibility/pdf/role.pdf differ
index 8856385925ca4d807b9fce1dce81e5d1b3ee9892..b94c6ab670228a15fbd010ff0c588a91ed116f37 100644 (file)
@@ -24,8 +24,8 @@
       <fo:region-after extent="10pt"/>
     </fo:simple-page-master>
   </fo:layout-master-set>
-  <fo:page-sequence master-reference="page" role="Art">
-    <fo:static-content flow-name="xsl-region-after" role="NonStruct" font-size="8pt">
+  <fo:page-sequence master-reference="page" language="en" country="GB" role="Art">
+    <fo:static-content flow-name="xsl-region-after" role="artifact" font-size="8pt">
       <fo:block text-align="center"><fo:page-number/></fo:block>
     </fo:static-content>
     <fo:flow flow-name="xsl-region-body" role="NonStruct"  hyphenate="true"