Revision: 7564
Author: victormote
Date: 2006-06-13 13:21:40 -0700 (Tue, 13 Jun 2006)
ViewCVS: http://svn.sourceforge.net/foray/?rev=7564&view=rev
Log Message:
-----------
Use new capabilities of the axsl interfaces to get a context-aware LineText item pushed through the line-breaking logic.
Modified Paths:
--------------
trunk/foray/foray-pioneer/src/java/org/foray/pioneer/FONodePL.java
trunk/foray/foray-pioneer/src/java/org/foray/pioneer/FOTextPL.java
Modified: trunk/foray/foray-pioneer/src/java/org/foray/pioneer/FONodePL.java
===================================================================
--- trunk/foray/foray-pioneer/src/java/org/foray/pioneer/FONodePL.java 2006-06-13 20:19:22 UTC (rev 7563)
+++ trunk/foray/foray-pioneer/src/java/org/foray/pioneer/FONodePL.java 2006-06-13 20:21:40 UTC (rev 7564)
@@ -30,14 +30,14 @@
import org.axsl.areaW.NormalBlockArea;
import org.axsl.areaW.TableCellArea;
import org.axsl.areaW.TableRowContainer;
+import org.axsl.foR.FOLineNonText;
+import org.axsl.foR.FOLineText;
import org.axsl.foR.FONode;
import org.axsl.foR.FObj;
import org.axsl.foR.fo.RetrieveMarker;
import org.axsl.foR.fo.TableCell;
import org.axsl.text.TextException;
import org.axsl.text.line.LineBreaker;
-import org.axsl.text.line.LineNonText;
-import org.axsl.text.line.LineText;
import org.apache.commons.logging.Log;
@@ -153,7 +153,7 @@
* @return The index into the text (char []) to the first character that
* was <em>not</em> successfully added to the line.
*/
- protected int addTextItemToLine(LineArea lineArea, LineText lineText,
+ protected int addTextItemToLine(LineArea lineArea, FOLineText lineText,
int start, int end, RetrieveMarker retrieveMarker)
throws AreaWException {
LineBreaker lb = layout.getLineBreaker();
@@ -162,13 +162,14 @@
lineArea.getFontConsumer());
}
int status = 0;
+ FOLineText contextAware = lineText.getContextWrapper(retrieveMarker);
try {
- status = lb.processLineContent(lineText, start, end,
+ status = lb.processLineContent(contextAware, start, end,
lineArea.asLineOutput(), retrieveMarker);
} catch (TextException e) {
FObj generatedBy = lineArea.traitGeneratedBy();
throw new AreaWException("Error in text layout:\n"
- + generatedBy.getContextMessage());
+ + generatedBy.getContextMessage(), e);
}
layout.setLineBreaker(lb);
if (status >= end) {
@@ -181,7 +182,7 @@
* @return For non-text items, returns 1 for success or 0 if the item did
* not fit onto the current line.
*/
- protected int addNonTextItemToLine(LineArea lineArea, LineNonText nonText,
+ protected int addNonTextItemToLine(LineArea lineArea, FOLineNonText nonText,
RetrieveMarker retrieveMarker)
throws AreaWException {
LineBreaker lb = layout.getLineBreaker();
@@ -190,8 +191,9 @@
lineArea.getFontConsumer());
}
int status = 0;
+ FOLineNonText contextAware = nonText.getContextWrapper(retrieveMarker);
try {
- status = lb.processLineContent(nonText, -1, -1,
+ status = lb.processLineContent(contextAware, -1, -1,
lineArea.asLineOutput(), retrieveMarker);
} catch (TextException e) {
FObj generatedBy = lineArea.traitGeneratedBy();
@@ -205,10 +207,10 @@
protected int layoutInlineContent(FObj node, LineArea lineArea,
RetrieveMarker retrieveMarker)
throws AreaWException {
- if (! (node instanceof LineNonText)) {
+ if (! (node instanceof FOLineNonText)) {
return -1000;
}
- LineNonText nonText = (LineNonText) node;
+ FOLineNonText nonText = (FOLineNonText) node;
// this should start a new page
if (lineArea == null) {
return Status.AREA_FULL_SOME;
Modified: trunk/foray/foray-pioneer/src/java/org/foray/pioneer/FOTextPL.java
===================================================================
--- trunk/foray/foray-pioneer/src/java/org/foray/pioneer/FOTextPL.java 2006-06-13 20:19:22 UTC (rev 7563)
+++ trunk/foray/foray-pioneer/src/java/org/foray/pioneer/FOTextPL.java 2006-06-13 20:21:40 UTC (rev 7564)
@@ -25,13 +25,12 @@
package org.foray.pioneer;
import org.axsl.areaW.Area;
+import org.axsl.areaW.AreaWException;
import org.axsl.areaW.LineArea;
import org.axsl.areaW.NormalBlockArea;
-
-import org.axsl.areaW.AreaWException;
+import org.axsl.foR.FOLineText;
import org.axsl.foR.FOText;
import org.axsl.foR.fo.RetrieveMarker;
-import org.axsl.text.line.LineText;
/**
*
@@ -71,7 +70,7 @@
* laid out. If the first six characters have been laid out (indices 0-5),
* then 6 should be returned.
*/
- private int addText(LineText lineText, Area area, int start,
+ private int addText(FOLineText lineText, Area area, int start,
RetrieveMarker retrieveMarker) throws AreaWException {
int end = lineText.inlineText().length;
LineArea la = this.activeLineArea(area);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|