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