ev = xmlevents.expectOutOfLinePcdataOrInlineOrBlock();
if (ev != null) {
// Generate the flow object
- FObjects.fobjects.makePageSeqFOChild(
+ FObjects.makePageSeqFOChild(
foTree, pageSequence, this, ev, stateFlags);
if (ev.getType() != XmlEvent.CHARACTERS)
ev = xmlevents.getEndElement(
ev = xmlevents.expectOutOfLinePcdataOrInlineOrBlock();
if (ev != null) {
// Generate the flow object
- FObjects.fobjects.makePageSeqFOChild(
+ FObjects.makePageSeqFOChild(
foTree, pageSequence, this, ev, stateFlags);
if (ev.getType() != XmlEvent.CHARACTERS)
ev = xmlevents.getEndElement(
ev = xmlevents.expectOutOfLinePcdataOrInlineOrBlock();
if (ev != null) {
// Generate the flow object
- FObjects.fobjects.makePageSeqFOChild(
+ FObjects.makePageSeqFOChild(
foTree, pageSequence, this, ev, stateFlags);
if (ev.getType() != XmlEvent.CHARACTERS) {
ev = xmlevents.getEndElement(
throw new FOPException
("%block; not found in fo:block-container");
// Generate the flow object
- FObjects.fobjects.makePageSeqFOChild(
+ FObjects.makePageSeqFOChild(
foTree, pageSequence, this, (FoXmlEvent)ev, stateFlags);
// Clear the blockage
ev = xmlevents.getEndElement(XmlEventReader.DISCARD_EV, ev);
ev = xmlevents.expectOutOfLineBlock();
if (ev != null) {
// Generate the flow object
- FObjects.fobjects.makePageSeqFOChild(
+ FObjects.makePageSeqFOChild(
foTree, pageSequence, this, (FoXmlEvent)ev,
stateFlags);
ev = xmlevents.getEndElement(
throw new FOPException
("%block; not found in fo:float");
// Generate the flow object
- FObjects.fobjects.makePageSeqFOChild(
+ FObjects.makePageSeqFOChild(
foTree, pageSequence, this, (FoXmlEvent)ev,
stateFlags | FONode.MC_FLOAT);
// Clear the blockage
ev = xmlevents.expectOutOfLineBlock();
if (ev != null) {
// Generate the flow object
- FObjects.fobjects.makePageSeqFOChild(
+ FObjects.makePageSeqFOChild(
foTree, pageSequence, this, (FoXmlEvent)ev,
stateFlags | FONode.MC_FLOAT);
ev = xmlevents.getEndElement(
import java.util.BitSet;
import org.apache.fop.apps.FOPException;
+import org.apache.fop.area.Area;
import org.apache.fop.datastructs.TreeException;
import org.apache.fop.fo.FONode;
import org.apache.fop.fo.FOPageSeqNode;
if ((ev = xmlevents.expectBlock()) == null)
throw new FOPException("%block; not found in fo:flow");
// Generate the flow object
- FObjects.fobjects.makePageSeqFOChild(
+ FObjects.makePageSeqFOChild(
foTree, pageSequence, this, (FoXmlEvent)ev,
FONode.FLOW_SET);
// Clear the blockage
ev = xmlevents.expectBlock();
if (ev != null) {
// Generate the flow object
- FObjects.fobjects.makePageSeqFOChild(
+ FObjects.makePageSeqFOChild(
foTree, parent, this, (FoXmlEvent)ev,
FONode.FLOW_SET);
ev = xmlevents.getEndElement(
makeSparsePropsSet();
}
+ public Area getReferenceRectangle() throws FOPException {
+ // TODO Reference rectangle is assumed to be the content rectangle of
+ // the first region into which the content is flowed. For region-body
+ // it is normal-flow reference-area; for other regions it is the
+ // region-reference-area. See
+ // 7.3 Reference Rectangle for Percentage Computations
+ throw new FOPException("Called from FoFlow");
+ }
+
+ public Area getLayoutContext() {
+ // The layout context for fo:flow is is the region-body-reference-area.
+ // TODO - the real version
+ Area context = null;
+ return context;
+ }
}
throw new FOPException
("%block; not found in fo:footnote-body");
// Generate the flow object
- FObjects.fobjects.makePageSeqFOChild(
+ FObjects.makePageSeqFOChild(
foTree, pageSequence, this, (FoXmlEvent)ev, stateFlags);
// Clear the blockage
ev = xmlevents.getEndElement(XmlEventReader.DISCARD_EV, ev);
ev = xmlevents.expectOutOfLineBlock();
if (ev != null) {
// Generate the flow object
- FObjects.fobjects.makePageSeqFOChild(
+ FObjects.makePageSeqFOChild(
foTree, pageSequence, this,
(FoXmlEvent)ev, stateFlags);
ev = xmlevents.getEndElement(
if (ev != null) {
// Generate the flow object
//System.out.println("Generating flow object for " + ev);
- FObjects.fobjects.makePageSeqFOChild(
+ FObjects.makePageSeqFOChild(
foTree, pageSequence, this, ev, stateFlags);
if (ev.getType() != XmlEvent.CHARACTERS) {
ev = xmlevents.getEndElement(
throw new FOPException
("%block; not found in fo:inline-container");
// Generate the flow object
- FObjects.fobjects.makePageSeqFOChild(
+ FObjects.makePageSeqFOChild(
foTree, pageSequence, this, (FoXmlEvent)ev, stateFlags);
// Clear the blockage
ev = xmlevents.getEndElement(
ev = xmlevents.expectOutOfLineBlock();
if (ev != null) {
// Generate the flow object
- FObjects.fobjects.makePageSeqFOChild(
+ FObjects.makePageSeqFOChild(
foTree, pageSequence, this,
(FoXmlEvent)ev, stateFlags);
ev = xmlevents.getEndElement(
ev = xmlevents.expectOutOfLinePcdataOrInline();
if (ev != null) {
// Generate the flow object
- FObjects.fobjects.makePageSeqFOChild(
+ FObjects.makePageSeqFOChild(
foTree, pageSequence, this,
ev, stateFlags | FONode.MC_LEADER);
if (ev.getType() != XmlEvent.CHARACTERS) {
throw new FOPException
("%block; not found in fo:list-item-body");
// Generate the flow object
- FObjects.fobjects.makePageSeqFOChild(
+ FObjects.makePageSeqFOChild(
foTree, pageSequence, this, (FoXmlEvent)ev, stateFlags);
// Clear the blockage
ev = xmlevents.getEndElement(XmlEventReader.DISCARD_EV, ev);
ev = xmlevents.expectOutOfLineBlock();
if (ev != null) {
// Generate the flow object
- FObjects.fobjects.makePageSeqFOChild(
+ FObjects.makePageSeqFOChild(
foTree, pageSequence, this,
(FoXmlEvent)ev, stateFlags);
ev = xmlevents.getEndElement(XmlEventReader.DISCARD_EV, ev);
throw new FOPException
("%block; not found in fo:list-item-label");
// Generate the flow object
- FObjects.fobjects.makePageSeqFOChild(
+ FObjects.makePageSeqFOChild(
foTree, pageSequence, this, (FoXmlEvent)ev, stateFlags);
// Clear the blockage
ev = xmlevents.getEndElement(XmlEventReader.DISCARD_EV, ev);
ev = xmlevents.expectOutOfLineBlock();
if (ev != null) {
// Generate the flow object
- FObjects.fobjects.makePageSeqFOChild(
+ FObjects.makePageSeqFOChild(
foTree, pageSequence, this, (FoXmlEvent)ev, stateFlags);
ev = xmlevents.getEndElement(XmlEventReader.DISCARD_EV, ev);
namespaces.relinquishEvent(ev);
if (ev != null) {
// Generate the flow object
//System.out.println("Generating flow object for " + ev);
- FObjects.fobjects.makePageSeqFOChild(
+ FObjects.makePageSeqFOChild(
foTree, pageSequence, this, ev, stateFlags);
if (ev.getType() != XmlEvent.CHARACTERS) {
ev = xmlevents.getEndElement(
ev = xmlevents.expectOutOfLinePcdataOrInlineOrBlock();
if (ev != null) {
// Generate the flow object
- FObjects.fobjects.makePageSeqFOChild(
+ FObjects.makePageSeqFOChild(
foTree, pageSequence, this, ev, stateFlags);
if (ev.getType() != XmlEvent.CHARACTERS) {
ev = xmlevents.getEndElement(
import java.util.Set;
import org.apache.fop.apps.FOPException;
+import org.apache.fop.area.Area;
import org.apache.fop.area.Page;
import org.apache.fop.datastructs.TreeException;
import org.apache.fop.fo.FONode;
public Map staticContents = null;
/** Child index of fo:flow child. */
private int flowChild = -1;
+ /** The page currently being processed by this page-sequence */
+ private Page page = null;
+ /**
+ * Gets the current page of this page-sequence
+ * @return the page
+ */
+ public Page getPage() {
+ return page;
+ }
/**
* @param foTree the FO tree being built
FONode.PAGESEQ_SET, sparsePropsMap, sparseIndices);
XmlEvent ev;
// Look for optional title
+ log.finer("page-sequence title");
String nowProcessing = "title";
try {
ev = xmlevents.expectStartElement
} // else ignore
// Look for zero or more static-content subtrees
+ log.finer("static-content");
nowProcessing = "static-content";
while ((ev = xmlevents.expectStartElement
(FObjectNames.STATIC_CONTENT, XmlEvent.DISCARD_W_SPACE))
staticContents = Collections.unmodifiableMap(staticSubtrees);
}
// Generate a null page for the flow(s)
- Page page = Page.setupNullPage(this, foTree.getNextPageId());
+ page = Page.setupNullPage(this, foTree.getNextPageId());
// Look for one or more fo:flow
// must have at least one: N.B. in 1.0, only one is allowed,
// but in 1.1. multiple flows are allowed with different
// flow maps
+ log.finer("flow");
nowProcessing = "flow";
ev = xmlevents.expectStartElement
(FObjectNames.FLOW, XmlEvent.DISCARD_W_SPACE);
makeSparsePropsSet();
}
+ public Area getReferenceRectangle() throws FOPException {
+ // TODO Reference rectangle is assumed to be equivalent to the
+ // "auto" value on "page-height" and "page-width". The
+ // inline-progression-dimension and block-progression-dimension are
+ // calculated according to the computed values of the
+ // reference-orientation and writing-mode of the FO for which the
+ // percentage is calculated. See
+ // 7.3 Reference Rectangle for Percentage Computations
+ throw new FOPException("Called from FoPageSequence");
+ }
+
}
import java.util.BitSet;
import org.apache.fop.apps.FOPException;
+import org.apache.fop.area.Area;
import org.apache.fop.datastructs.TreeException;
import org.apache.fop.datatypes.NCName;
import org.apache.fop.fo.FONode;
public String getFlowName() {
return flowName;
}
+
+ public Area getReferenceRectangle() throws FOPException {
+ // TODO Reference rectangle is assumed to be the content rectangle of
+ // the first region into which the content is flowed. For region-body
+ // it is normal-flow reference-area; for other regions it is the
+ // region-reference-area. See
+ // 7.3 Reference Rectangle for Percentage Computations
+ throw new FOPException("Called from FoStaticContent");
+ }
}
throw new FOPException
("%block; not found in fo:table-caption");
// Generate the flow object
- FObjects.fobjects.makePageSeqFOChild(
+ FObjects.makePageSeqFOChild(
foTree, pageSequence, this, (FoXmlEvent)ev, stateFlags);
// Clear the blockage
ev = xmlevents.getEndElement(XmlEventReader.DISCARD_EV, ev);
ev = xmlevents.expectOutOfLineBlock();
if (ev != null) {
// Generate the flow object
- FObjects.fobjects.makePageSeqFOChild(
+ FObjects.makePageSeqFOChild(
foTree, pageSequence, this,
(FoXmlEvent)ev, stateFlags);
ev = xmlevents.getEndElement(
throw new FOPException
("%block; not found in fo:table-cell");
// Generate the flow object
- FObjects.fobjects.makePageSeqFOChild(
+ FObjects.makePageSeqFOChild(
foTree, pageSequence, this,
(FoXmlEvent)ev, stateFlags);
// Clear the blockage
ev = xmlevents.expectOutOfLineBlock();
if (ev != null) {
// Generate the flow object
- FObjects.fobjects.makePageSeqFOChild(
+ FObjects.makePageSeqFOChild(
foTree, pageSequence, this,
(FoXmlEvent)ev, stateFlags);
ev = xmlevents.getEndElement(XmlEventReader.DISCARD_EV, ev);
import java.util.Arrays;
import java.util.BitSet;
import org.apache.fop.apps.FOPException;
+import org.apache.fop.area.Area;
import org.apache.fop.datastructs.TreeException;
import org.apache.fop.fo.FONode;
import org.apache.fop.fo.FOPageSeqNode;
ev = xmlevents.expectOutOfLinePcdataOrInline();
if (ev != null) {
// Generate the flow object
- FObjects.fobjects.makePageSeqFOChild(
+ FObjects.makePageSeqFOChild(
foTree, parent, this, ev, FONode.TITLE_SET);
if (ev.getType() != XmlEvent.CHARACTERS)
ev = xmlevents.getEndElement(
makeSparsePropsSet();
}
+ public Area getReferenceRectangle() throws FOPException {
+ // TODO Reference rectangle is assumed to be equivalent to the
+ // "auto" value on "page-height" and "page-width". The
+ // inline-progression-dimension and block-progression-dimension are
+ // calculated according to the computed values of the
+ // reference-orientation and writing-mode of the FO for which the
+ // percentage is calculated. See
+ // 7.3 Reference Rectangle for Percentage Computations
+ // This applies to all descendants of fo:title, except that for
+ // descendants, the relevant reference-orientation and writing-mode are
+ // those applying to fo:title.
+ throw new FOPException("Called from FoTitle");
+ }
+
}
ev = xmlevents.expectOutOfLinePcdataOrInlineOrBlock();
if (ev != null) {
// Generate the flow object
- FObjects.fobjects.makePageSeqFOChild(
+ FObjects.makePageSeqFOChild(
foTree, pageSequence, this, ev, stateFlags);
if (ev.getType() != XmlEvent.CHARACTERS)
ev = xmlevents.getEndElement(