You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by ac...@apache.org on 2008/06/27 12:33:16 UTC

svn commit: r672235 - in /xmlgraphics/fop/branches/Temp_AFPGOCAResources: ./ lib/ src/java/org/apache/fop/apps/ src/java/org/apache/fop/fo/ src/java/org/apache/fop/fo/flow/ src/java/org/apache/fop/fo/pagination/bookmarks/ src/java/org/apache/fop/fonts/...

Author: acumiskey
Date: Fri Jun 27 03:33:16 2008
New Revision: 672235

URL: http://svn.apache.org/viewvc?rev=672235&view=rev
Log:
Merged revisions 670689,670723,670760-670761,670763,670765-670767,670770,670773,670777,671145,672010,672026 via svnmerge from 
https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk

........
  r670689 | adelmelle | 2008-06-23 19:01:25 +0100 (Mon, 23 Jun 2008) | 1 line
  
  Fix XMLObj.addCharacters(): incorrect after r670341
........
  r670723 | adelmelle | 2008-06-23 20:56:51 +0100 (Mon, 23 Jun 2008) | 1 line
  
  Javadoc modification + addition of clarifying comments
........
  r670760 | adelmelle | 2008-06-23 22:18:45 +0100 (Mon, 23 Jun 2008) | 1 line
  
  Javadoc fixup
........
  r670761 | adelmelle | 2008-06-23 22:21:09 +0100 (Mon, 23 Jun 2008) | 1 line
  
  Minor cleanup: remove unused parameter from method signature
........
  r670763 | adelmelle | 2008-06-23 22:22:48 +0100 (Mon, 23 Jun 2008) | 1 line
  
  Minor cleanup: remove double storage of the FObj
........
  r670765 | adelmelle | 2008-06-23 22:24:46 +0100 (Mon, 23 Jun 2008) | 1 line
  
  Minor cleanup: remove redundant cast
........
  r670766 | adelmelle | 2008-06-23 22:25:30 +0100 (Mon, 23 Jun 2008) | 1 line
  
  Minor cleanup: remove redundant cast
........
  r670767 | adelmelle | 2008-06-23 22:26:56 +0100 (Mon, 23 Jun 2008) | 1 line
  
  Javadoc fixup
........
  r670770 | adelmelle | 2008-06-23 22:29:53 +0100 (Mon, 23 Jun 2008) | 1 line
  
  Minor cleanup: simplified conditional
........
  r670773 | adelmelle | 2008-06-23 22:32:31 +0100 (Mon, 23 Jun 2008) | 1 line
  
  A nit...
........
  r670777 | adelmelle | 2008-06-23 22:39:19 +0100 (Mon, 23 Jun 2008) | 1 line
  
  Fix imports...
........
  r671145 | maxberger | 2008-06-24 12:59:33 +0100 (Tue, 24 Jun 2008) | 2 lines
  
  Another character handling problem, replaced end-start by length
........
  r672010 | adelmelle | 2008-06-26 20:44:20 +0100 (Thu, 26 Jun 2008) | 1 line
  
  Fixed a possible NullPointerException: if the citation appears in a fo:marker, the property will only be parsed if the marker is retrieved...
........
  r672026 | acumiskey | 2008-06-26 21:49:11 +0100 (Thu, 26 Jun 2008) | 5 lines
  
  Some basic cleanup.
  
  * Duplicated/redundant PSDictionary, PSPageDeviceDictionary and PSDictionaryFormatException removed and now referenced from xmlgraphics commons.
  * Updated xmlgraphics commons jar containing migrated PSPageDeviceDictionary class.
........

Removed:
    xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/ps/PSDictionary.java
    xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/ps/PSDictionaryFormatException.java
    xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/ps/PSPageDeviceDictionary.java
Modified:
    xmlgraphics/fop/branches/Temp_AFPGOCAResources/   (props changed)
    xmlgraphics/fop/branches/Temp_AFPGOCAResources/lib/xmlgraphics-commons-1.4svn.jar
    xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/apps/MimeConstants.java
    xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/fo/XMLObj.java
    xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/fo/flow/AbstractPageNumberCitation.java
    xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/fo/pagination/bookmarks/BookmarkTitle.java
    xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/fonts/SingleByteFont.java
    xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/layoutmgr/FlowLayoutManager.java
    xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/layoutmgr/PageSequenceLayoutManager.java
    xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/layoutmgr/inline/PageNumberCitationLayoutManager.java
    xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/layoutmgr/inline/WrapperLayoutManager.java
    xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/layoutmgr/table/RowGroupLayoutManager.java
    xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/ps/ImageEncoderCCITTFax.java
    xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/ps/PSRenderer.java
    xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/ps/extensions/PSExtensionAttachment.java
    xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/text/linebreak/LineBreakStatus.java

Propchange: xmlgraphics/fop/branches/Temp_AFPGOCAResources/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Fri Jun 27 03:33:16 2008
@@ -1 +1 @@
-/xmlgraphics/fop/trunk:1-670492
+/xmlgraphics/fop/trunk:1-672234

Modified: xmlgraphics/fop/branches/Temp_AFPGOCAResources/lib/xmlgraphics-commons-1.4svn.jar
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AFPGOCAResources/lib/xmlgraphics-commons-1.4svn.jar?rev=672235&r1=672234&r2=672235&view=diff
==============================================================================
Binary files - no diff available.

Modified: xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/apps/MimeConstants.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/apps/MimeConstants.java?rev=672235&r1=672234&r2=672235&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/apps/MimeConstants.java (original)
+++ xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/apps/MimeConstants.java Fri Jun 27 03:33:16 2008
@@ -55,7 +55,7 @@
     /** FrameMaker's MIF */
     String MIME_MIF             = "application/mif";
     
-    /** Structured Vector Graphics */
+    /** Scalable Vector Graphics */
     String MIME_SVG             = "image/svg+xml";
     
     /** GIF images */

Modified: xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/fo/XMLObj.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/fo/XMLObj.java?rev=672235&r1=672234&r2=672235&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/fo/XMLObj.java (original)
+++ xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/fo/XMLObj.java Fri Jun 27 03:33:16 2008
@@ -214,7 +214,7 @@
      */
     protected void addCharacters(char[] data, int start, int length,
                                  PropertyList pList, Locator locator) {
-        String str = new String(data, start, length - start);
+        String str = new String(data, start, length);
         org.w3c.dom.Text text = doc.createTextNode(str);
         element.appendChild(text);
     }

Modified: xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/fo/flow/AbstractPageNumberCitation.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/fo/flow/AbstractPageNumberCitation.java?rev=672235&r1=672234&r2=672235&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/fo/flow/AbstractPageNumberCitation.java (original)
+++ xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/fo/flow/AbstractPageNumberCitation.java Fri Jun 27 03:33:16 2008
@@ -22,6 +22,7 @@
 import java.awt.Color;
 
 import org.xml.sax.Locator;
+import org.xml.sax.Attributes;
 
 import org.apache.fop.apps.FOPException;
 import org.apache.fop.datatypes.Length;
@@ -104,13 +105,18 @@
     }
 
     /** {@inheritDoc} */
-    protected void startOfNode() throws FOPException {
-        super.startOfNode();
-        if (refId.equals("")) {
+    public void processNode(String elementName, Locator locator, Attributes attlist, PropertyList pList) throws FOPException {
+        super.processNode(elementName, locator, attlist, pList);
+        if (!inMarker() && (refId == null || "".equals(refId))) {
             missingPropertyError("ref-id");
         }
     }
 
+    /** {@inheritDoc} */
+    protected void startOfNode() throws FOPException {
+        super.startOfNode();
+    }
+
     /**
      * {@inheritDoc}
      * <br>XSL Content Model: empty

Modified: xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/fo/pagination/bookmarks/BookmarkTitle.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/fo/pagination/bookmarks/BookmarkTitle.java?rev=672235&r1=672234&r2=672235&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/fo/pagination/bookmarks/BookmarkTitle.java (original)
+++ xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/fo/pagination/bookmarks/BookmarkTitle.java Fri Jun 27 03:33:16 2008
@@ -51,13 +51,13 @@
      *
      * @param data the character data
      * @param start the start position in the data array
-     * @param end the end position in the character array
+     * @param length the length of the character array
      * @param locator location in fo source file.
      */
-    protected void addCharacters(char[] data, int start, int end,
+    protected void addCharacters(char[] data, int start, int length,
                                  PropertyList pList,
                                  Locator locator) {
-        title += new String(data, start, end - start);
+        title += new String(data, start, length);
     }
 
     /**

Modified: xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/fonts/SingleByteFont.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/fonts/SingleByteFont.java?rev=672235&r1=672234&r2=672235&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/fonts/SingleByteFont.java (original)
+++ xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/fonts/SingleByteFont.java Fri Jun 27 03:33:16 2008
@@ -50,8 +50,8 @@
     
     /** {@inheritDoc} */
     public boolean isEmbeddable() {
-        return (getEmbedFileName() == null && getEmbedResourceName() == null) ? false
-               : true;
+        return (!(getEmbedFileName() == null 
+                && getEmbedResourceName() == null));
     }
 
     /** {@inheritDoc} */

Modified: xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/layoutmgr/FlowLayoutManager.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/layoutmgr/FlowLayoutManager.java?rev=672235&r1=672234&r2=672235&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/layoutmgr/FlowLayoutManager.java (original)
+++ xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/layoutmgr/FlowLayoutManager.java Fri Jun 27 03:33:16 2008
@@ -68,7 +68,7 @@
 
         // set layout dimensions
         int flowIPD = getCurrentPV().getCurrentSpan().getColumnWidth();
-        int flowBPD = (int) getCurrentPV().getBodyRegion().getBPD();
+        int flowBPD = getCurrentPV().getBodyRegion().getBPD();
 
         // currently active LM
         LayoutManager curLM;

Modified: xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/layoutmgr/PageSequenceLayoutManager.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/layoutmgr/PageSequenceLayoutManager.java?rev=672235&r1=672234&r2=672235&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/layoutmgr/PageSequenceLayoutManager.java (original)
+++ xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/layoutmgr/PageSequenceLayoutManager.java Fri Jun 27 03:33:16 2008
@@ -102,18 +102,17 @@
         curPage = makeNewPage(false, false);
         
         PageBreaker breaker = new PageBreaker(this);
-        int flowBPD = (int)getCurrentPV().getBodyRegion().getRemainingBPD();
+        int flowBPD = getCurrentPV().getBodyRegion().getRemainingBPD();
         breaker.doLayout(flowBPD);
 
         finishPage();
     }
-        
+
     /** {@inheritDoc} */
     public void finishPageSequence() {
         if (pageSeq.hasId()) {
             idTracker.signalIDProcessed(pageSeq.getId());
         }
-
         pageSeq.getRoot().notifyPageSequenceFinished(currentPageNum,
                 (currentPageNum - startPageNum) + 1);
         areaTreeHandler.notifyPageSequenceFinished(pageSeq,
@@ -150,9 +149,9 @@
             return;
         }
 
-        StaticContentLayoutManager lm = (StaticContentLayoutManager)
-            getLayoutManagerMaker().makeStaticContentLayoutManager(
-                    this, sc, reg);
+        StaticContentLayoutManager lm = getLayoutManagerMaker()
+                                            .makeStaticContentLayoutManager(
+                                                this, sc, reg);
         lm.doLayout();
     }
 
@@ -166,5 +165,5 @@
         
         super.finishPage();
     }
-        
+    
 }

Modified: xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/layoutmgr/inline/PageNumberCitationLayoutManager.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/layoutmgr/inline/PageNumberCitationLayoutManager.java?rev=672235&r1=672234&r2=672235&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/layoutmgr/inline/PageNumberCitationLayoutManager.java (original)
+++ xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/layoutmgr/inline/PageNumberCitationLayoutManager.java Fri Jun 27 03:33:16 2008
@@ -44,7 +44,7 @@
     
     /** {@inheritDoc} */
     public InlineArea get(LayoutContext context) {
-        curArea = getPageNumberCitationInlineArea(parentLM);
+        curArea = getPageNumberCitationInlineArea();
         return curArea;
     }
     
@@ -52,7 +52,7 @@
      * if id can be resolved then simply return a word, otherwise
      * return a resolvable area
      */
-    private InlineArea getPageNumberCitationInlineArea(LayoutManager parentLM) {
+    private InlineArea getPageNumberCitationInlineArea() {
         PageViewport page = getPSLM().getFirstPVWithID(fobj.getRefId());
         TextArea text = null;
         if (page != null) {

Modified: xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/layoutmgr/inline/WrapperLayoutManager.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/layoutmgr/inline/WrapperLayoutManager.java?rev=672235&r1=672234&r2=672235&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/layoutmgr/inline/WrapperLayoutManager.java (original)
+++ xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/layoutmgr/inline/WrapperLayoutManager.java Fri Jun 27 03:33:16 2008
@@ -20,9 +20,7 @@
 package org.apache.fop.layoutmgr.inline;
 
 import org.apache.fop.area.inline.InlineArea;
-import org.apache.fop.area.inline.InlineParent;
 import org.apache.fop.area.Block;
-import org.apache.fop.area.LineArea;
 import org.apache.fop.fo.flow.Wrapper;
 import org.apache.fop.layoutmgr.BlockLayoutManager;
 import org.apache.fop.layoutmgr.BlockStackingLayoutManager;
@@ -30,20 +28,19 @@
 import org.apache.fop.layoutmgr.PositionIterator;
 import org.apache.fop.layoutmgr.TraitSetter;
 
+import java.util.LinkedList;
+
 /**
  * This is the layout manager for the fo:wrapper formatting object.
  */
 public class WrapperLayoutManager extends LeafNodeLayoutManager {
     
-    private Wrapper fobj;
-
     /**
      * Creates a new LM for fo:wrapper.
      * @param node the fo:wrapper
      */
     public WrapperLayoutManager(Wrapper node) {
         super(node);
-        fobj = node;
     }
 
     /** {@inheritDoc} */
@@ -70,13 +67,13 @@
     public void addAreas(PositionIterator posIter, LayoutContext context) {
         if (fobj.hasId()) {
             addId();
-            InlineArea area = getEffectiveArea();
             if (parentLM instanceof BlockStackingLayoutManager
                     && !(parentLM instanceof BlockLayoutManager)) {
                 Block helperBlock = new Block();
                 TraitSetter.setProducerID(helperBlock, fobj.getId());
                 parentLM.addChildArea(helperBlock);
             } else {
+                InlineArea area = getEffectiveArea();
                 parentLM.addChildArea(area);
             }
         }

Modified: xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/layoutmgr/table/RowGroupLayoutManager.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/layoutmgr/table/RowGroupLayoutManager.java?rev=672235&r1=672234&r2=672235&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/layoutmgr/table/RowGroupLayoutManager.java (original)
+++ xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/layoutmgr/table/RowGroupLayoutManager.java Fri Jun 27 03:33:16 2008
@@ -88,7 +88,6 @@
      * @param alignment alignment indicator
      * @param bodyType Indicates what kind of body is being processed (BODY, HEADER or FOOTER)
      * @param returnList List to received the generated elements
-     * @param rowGroup row group to process
      */
     private void createElementsForRowGroup(LayoutContext context, int alignment, 
             int bodyType, LinkedList returnList) {

Modified: xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/ps/ImageEncoderCCITTFax.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/ps/ImageEncoderCCITTFax.java?rev=672235&r1=672234&r2=672235&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/ps/ImageEncoderCCITTFax.java (original)
+++ xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/ps/ImageEncoderCCITTFax.java Fri Jun 27 03:33:16 2008
@@ -25,6 +25,7 @@
 import org.apache.xmlgraphics.image.codec.tiff.TIFFImage;
 import org.apache.xmlgraphics.image.loader.impl.ImageRawCCITTFax;
 import org.apache.xmlgraphics.ps.ImageEncoder;
+import org.apache.xmlgraphics.ps.PSDictionary;
 
 /**
  * ImageEncoder implementation for CCITT encoded images.

Modified: xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/ps/PSRenderer.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/ps/PSRenderer.java?rev=672235&r1=672234&r2=672235&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/ps/PSRenderer.java (original)
+++ xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/ps/PSRenderer.java Fri Jun 27 03:33:16 2008
@@ -57,6 +57,9 @@
 import org.apache.xmlgraphics.image.loader.util.ImageUtil;
 import org.apache.xmlgraphics.ps.DSCConstants;
 import org.apache.xmlgraphics.ps.ImageEncoder;
+import org.apache.xmlgraphics.ps.PSDictionary;
+import org.apache.xmlgraphics.ps.PSPageDeviceDictionary;
+import org.apache.xmlgraphics.ps.PSDictionaryFormatException;
 import org.apache.xmlgraphics.ps.PSGenerator;
 import org.apache.xmlgraphics.ps.PSImageUtils;
 import org.apache.xmlgraphics.ps.PSProcSets;

Modified: xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/ps/extensions/PSExtensionAttachment.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/ps/extensions/PSExtensionAttachment.java?rev=672235&r1=672234&r2=672235&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/ps/extensions/PSExtensionAttachment.java (original)
+++ xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/render/ps/extensions/PSExtensionAttachment.java Fri Jun 27 03:33:16 2008
@@ -78,7 +78,7 @@
      * 
      * @param handler ContentHandler instance to send the SAX events to
      * @throws SAXException if there's a problem generating the SAX events
-     * @see org.apache.fop.util.XMLizable#toSAX(org.xml.sax.ContentHandler)
+     * @see org.apache.xmlgraphics.util.XMLizable#toSAX(org.xml.sax.ContentHandler)
      */
     public void toSAX(ContentHandler handler) throws SAXException {
         AttributesImpl atts = new AttributesImpl();

Modified: xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/text/linebreak/LineBreakStatus.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/text/linebreak/LineBreakStatus.java?rev=672235&r1=672234&r2=672235&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/text/linebreak/LineBreakStatus.java (original)
+++ xmlgraphics/fop/branches/Temp_AFPGOCAResources/src/java/org/apache/fop/text/linebreak/LineBreakStatus.java Fri Jun 27 03:33:16 2008
@@ -61,52 +61,90 @@
     }
 
     /**
-     * Check whether a line break may happen.
-     * The function returns the line breaking status of the point before the given character. 
-     * The algorithm is the table driven algorithm described in the Unicode
-     * <a href="http://unicode.org/reports/tr14/#PairBasedImplementation">technical report #14</a>.
-     * The pair table is taken from @see LineBreakUtils
+     * Check whether a line break may happen according to the rules described in
+     * the <a href="http://unicode.org/reports/tr14/#Algorithm">Unicode Line Breaking Algorithm</a>.
+     * The function returns the line breaking status of the point <em>before</em> the given character. 
+     * The algorithm is the table-driven algorithm, as described in 
+     * <a href="http://unicode.org/reports/tr14/#PairBasedImplementation">
+     * Unicode Technical Report #14</a>.
+     * The pair table is taken from {@link LineBreakUtils}.
      * 
-     * TODO: Better handling for AI, SA, CB and other line break classes.
+     * TODO: Better handling for AI, SA, SG and XX line break classes.
      * 
-     * @param c The character.
+     * @param c the character to check
      * @return the break action to be taken
+     *          one of: {@link #DIRECT_BREAK}, 
+     *                  {@link #INDIRECT_BREAK}, 
+     *                  {@link #COMBINING_INDIRECT_BREAK}, 
+     *                  {@link #COMBINING_PROHIBITED_BREAK},
+     *                  {@link #PROHIBITED_BREAK},
+     *                  {@link #EXPLICIT_BREAK}
      */
     public byte nextChar(char c) {
         
         byte currentClass = LineBreakUtils.getLineBreakProperty(c);
         
-        if (currentClass == LineBreakUtils.LINE_BREAK_PROPERTY_AI
-            || leftClass == LineBreakUtils.LINE_BREAK_PROPERTY_XX) {
-            //current "Ambiguous" or previous "Unknown": 
-            // assume current "Alphabetic"
-            currentClass = LineBreakUtils.LINE_BREAK_PROPERTY_AL;
+        /* Initial conversions */
+        switch (currentClass) {
+            case LineBreakUtils.LINE_BREAK_PROPERTY_AI:
+            case LineBreakUtils.LINE_BREAK_PROPERTY_SG:
+            case LineBreakUtils.LINE_BREAK_PROPERTY_XX:
+                // LB 1: Resolve AI, ... SG and XX into other line breaking classes 
+                //       depending on criteria outside the scope of this algorithm.
+                //       In the absence of such criteria, it is recommended that 
+                //       classes AI, ... SG and XX be resolved to AL
+                currentClass = LineBreakUtils.LINE_BREAK_PROPERTY_AL;
+                break;
+            
+            case LineBreakUtils.LINE_BREAK_PROPERTY_SA:
+                // LB 1: Resolve ... SA ... into other line breaking classes 
+                //       depending on criteria outside the scope of this algorithm.
+                //       In the absence of such criteria, it is recommended that 
+                //       ... SA be resolved to AL, except that characters of 
+                //       class SA that have General_Category Mn or Mc be resolved to CM
+                switch (Character.getType(c)) {
+                    case Character.COMBINING_SPACING_MARK: //General_Category "Mc"
+                    case Character.NON_SPACING_MARK: //General_Category "Mn"
+                        currentClass = LineBreakUtils.LINE_BREAK_PROPERTY_CM;
+                        break;
+                    default:
+                        currentClass = LineBreakUtils.LINE_BREAK_PROPERTY_AL;
+                }
+                
+            default:
+                //nop
         }
         
-        /** Check 1: initial character after a reset/mandatory break? */
+        /* Check 1: First character or initial character after a reset/mandatory break? */
         switch (leftClass) {
             case -1:
-                //first character after a reset()
+                //first character or initial character after a reset()
                 leftClass = currentClass;
                 if (leftClass == LineBreakUtils.LINE_BREAK_PROPERTY_CM) {
-                    leftClass = LineBreakUtils.LINE_BREAK_PROPERTY_ID;
+                    // LB 10: Treat any remaining combining marks as AL
+                    leftClass = LineBreakUtils.LINE_BREAK_PROPERTY_AL;
                 }
-                // LB 2a
+                // LB 2: Never break at the start of text
                 return PROHIBITED_BREAK;
             
             case LineBreakUtils.LINE_BREAK_PROPERTY_BK:
             case LineBreakUtils.LINE_BREAK_PROPERTY_LF:
             case LineBreakUtils.LINE_BREAK_PROPERTY_NL:
                 //first character after mandatory break
+                // LB 4: Always break after hard line breaks
+                // LB 5: Treat ... LF and NL has hard line breaks
                 reset();
                 leftClass = currentClass;
                 return EXPLICIT_BREAK;
             
             case LineBreakUtils.LINE_BREAK_PROPERTY_CR:
                 //first character after a carriage return: 
-                // explicit break if it is not a linefeed
+                // LB 5: Treat CR followed by LF, as well as CR ... as hard line breaks
+                // If current is LF, then fall through to Check 2 (see below),
+                // and the hard break will be signaled for the character after LF (see above)
                 if (currentClass != LineBreakUtils.LINE_BREAK_PROPERTY_LF) {
                     reset();
+                    leftClass = currentClass;
                     return EXPLICIT_BREAK;
                 }
                 
@@ -114,16 +152,19 @@
                 //nop
         }
         
-        /** Check 2: current is a mandatory break or space? */
+        /* Check 2: current is a mandatory break or space? */
         switch (currentClass) {
             case LineBreakUtils.LINE_BREAK_PROPERTY_BK:
             case LineBreakUtils.LINE_BREAK_PROPERTY_LF:
             case LineBreakUtils.LINE_BREAK_PROPERTY_NL:
             case LineBreakUtils.LINE_BREAK_PROPERTY_CR:
+                // LB 6: Do not break before a hard break
                 leftClass = currentClass;
                 return PROHIBITED_BREAK;
             
             case LineBreakUtils.LINE_BREAK_PROPERTY_SP:
+                // LB 7: Do not break before spaces ...
+                // Zero-width spaces are in the pair-table (see below)
                 hadSpace = true;
                 return PROHIBITED_BREAK;
             
@@ -131,7 +172,7 @@
                 //nop
         }
         
-        /** Normal treatment, if the first two checks did not return */
+        /* Normal treatment, if the first two checks did not return */
         boolean savedHadSpace = hadSpace;
         hadSpace = false;
         byte breakAction = LineBreakUtils.getLineBreakPairProperty(leftClass, currentClass);



---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org