diff options
author | Andreas L. Delmelle <adelmelle@apache.org> | 2016-01-03 14:30:10 +0000 |
---|---|---|
committer | Andreas L. Delmelle <adelmelle@apache.org> | 2016-01-03 14:30:10 +0000 |
commit | 2e297aed43f1a1b61df9de402b7691095a69aecc (patch) | |
tree | 010fc1efaa1aa53ea3b71aaba5beedb5257943b6 /src/java | |
parent | 6d6c7f0a84279f8fdb7531941c1cbfad7ef8dfd8 (diff) | |
download | xmlgraphics-fop-2e297aed43f1a1b61df9de402b7691095a69aecc.tar.gz xmlgraphics-fop-2e297aed43f1a1b61df9de402b7691095a69aecc.zip |
Move code to where it belongs: if it only applies to RetrieveTableMarker, it does not belong in FObj
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1722725 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/java')
-rw-r--r-- | src/java/org/apache/fop/fo/FObj.java | 11 | ||||
-rw-r--r-- | src/java/org/apache/fop/fo/flow/RetrieveTableMarker.java | 28 |
2 files changed, 30 insertions, 9 deletions
diff --git a/src/java/org/apache/fop/fo/FObj.java b/src/java/org/apache/fop/fo/FObj.java index 1ef9af8f2..ce983dfb2 100644 --- a/src/java/org/apache/fop/fo/FObj.java +++ b/src/java/org/apache/fop/fo/FObj.java @@ -21,7 +21,6 @@ package org.apache.fop.fo; import java.util.Collections; import java.util.HashMap; -import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -36,7 +35,6 @@ import org.apache.xmlgraphics.util.QName; import org.apache.fop.apps.FOPException; import org.apache.fop.fo.extensions.ExtensionAttachment; import org.apache.fop.fo.flow.Marker; -import org.apache.fop.fo.flow.table.TableCell; import org.apache.fop.fo.properties.Property; import org.apache.fop.fo.properties.PropertyMaker; @@ -327,7 +325,7 @@ public abstract class FObj extends FONode implements Constants { * at the passed-in node (= first call to iterator.next() will * return childNode) * @param childNode First node in the iterator - * @return A ListIterator or null if childNode isn't a child of + * @return A FONodeIterator or null if childNode isn't a child of * this FObj. */ public FONodeIterator getChildNodes(FONode childNode) { @@ -372,7 +370,7 @@ public abstract class FObj extends FONode implements Constants { String mcname = marker.getMarkerClassName(); if (firstChild != null) { // check for empty childNodes - for (Iterator<FONode> iter = getChildNodes(); iter.hasNext();) { + for (FONodeIterator iter = getChildNodes(); iter.hasNext();) { FONode node = iter.next(); if (node instanceof FObj || (node instanceof FOText @@ -553,11 +551,6 @@ public abstract class FObj extends FONode implements Constants { int found = 1; FONode temp = getParent(); while (temp != null) { - if (temp instanceof TableCell && (ancestorID == FO_TABLE_HEADER || ancestorID == FO_TABLE_FOOTER)) { - // note that if the retrieve-table-marker is not in a table-header/footer an exception is - // thrown, so no need to reset this flag in that case - ((TableCell) temp).flagAsHavingRetrieveTableMarker(); - } if (temp.getNameId() == ancestorID) { return found; } diff --git a/src/java/org/apache/fop/fo/flow/RetrieveTableMarker.java b/src/java/org/apache/fop/fo/flow/RetrieveTableMarker.java index 57ae9e7bb..8340736c7 100644 --- a/src/java/org/apache/fop/fo/flow/RetrieveTableMarker.java +++ b/src/java/org/apache/fop/fo/flow/RetrieveTableMarker.java @@ -25,6 +25,7 @@ import org.xml.sax.Locator; import org.apache.fop.apps.FOPException; import org.apache.fop.fo.FONode; import org.apache.fop.fo.PropertyList; +import org.apache.fop.fo.flow.table.TableCell; /** * Class modelling the <a href="http://www.w3.org/TR/xsl/#fo_retrieve-table-marker"> @@ -81,6 +82,33 @@ public class RetrieveTableMarker extends AbstractRetrieveMarker { } /** + * Overridden to flag the ancestor table-cell. + * + * @param ancestorID ID of node name to check for (e.g., FO_ROOT) + * @return number of levels above FO where ancestor exists, + * -1 if not found + */ + @Override + protected int findAncestor(int ancestorID) { + int found = 1; + FONode temp = getParent(); + while (temp != null) { + if (temp instanceof TableCell + && (ancestorID == FO_TABLE_HEADER || ancestorID == FO_TABLE_FOOTER)) { + // note that if the retrieve-table-marker is not in a table-header/footer an exception is + // thrown, so no need to reset this flag in that case + ((TableCell) temp).flagAsHavingRetrieveTableMarker(); + } + if (temp.getNameId() == ancestorID) { + return found; + } + found += 1; + temp = temp.getParent(); + } + return -1; + } + + /** * Return the value for the <code>retrieve-position-within-table</code> * property * @return the value for retrieve-position-within-table; one of |