pbwest 2002/11/13 15:22:16 Modified: src/org/apache/fop/fo/flow Tag: FOP_0-20-0_Alt-Design FoBidiOverride.java FoBlock.java FoBlockContainer.java Log: Generate children according to content model. Revision Changes Path No revision No revision 1.1.2.5 +35 -7 xml-fop/src/org/apache/fop/fo/flow/Attic/FoBidiOverride.java Index: FoBidiOverride.java =================================================================== RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/flow/Attic/FoBidiOverride.java,v retrieving revision 1.1.2.4 retrieving revision 1.1.2.5 diff -u -r1.1.2.4 -r1.1.2.5 --- FoBidiOverride.java 13 Nov 2002 04:13:04 -0000 1.1.2.4 +++ FoBidiOverride.java 13 Nov 2002 23:22:06 -0000 1.1.2.5 @@ -15,12 +15,15 @@ import org.apache.fop.fo.FObjectNames; import org.apache.fop.fo.FONode; import org.apache.fop.fo.FOTree; +import org.apache.fop.fo.FObjects; import org.apache.fop.fo.expr.PropertyException; import org.apache.fop.xml.FoXMLEvent; +import org.apache.fop.xml.UnexpectedStartElementException; import org.apache.fop.apps.FOPException; import org.apache.fop.datastructs.TreeException; import org.apache.fop.datatypes.PropertyValue; import org.apache.fop.datatypes.Ints; +import org.apache.fop.messaging.MessageHandler; import java.util.HashMap; import java.util.BitSet; @@ -81,20 +84,45 @@ } /** + * Construct an fo:bidi-override node, and build the + * fo:bidi-override subtree. + * <p>Content model for fo:bidi-override: (#PCDATA|%inline;|%block;)* * @param foTree the FO tree being built * @param parent the parent FONode of this node * @param event the <tt>FoXMLEvent</tt> that triggered the creation of * this node - * @param attrSet the index of the attribute set applying to the node. + * @param stateFlags - passed down from the parent. Includes the + * attribute set information. */ public FoBidiOverride - (FOTree foTree, FONode parent, FoXMLEvent event, int attrSet) + (FOTree foTree, FONode parent, FoXMLEvent event, int stateFlags) throws TreeException, FOPException { super(foTree, FObjectNames.BIDI_OVERRIDE, parent, event, - attrSet, sparsePropsMap, sparseIndices); - FoXMLEvent ev; - String nowProcessing; + stateFlags, sparsePropsMap, sparseIndices); + xmlevents = foTree.getXmlevents(); + FoXMLEvent ev = null; + do { + try { + if ((stateFlags & FONode.OUT_OF_LINE) == 0) + ev = xmlevents.expectPcdataOrInlineOrBlock(); + else + ev = xmlevents.expectOutOfLinePcdataOrInlineOrBlock(); + if (ev != null) { + // Generate the flow object + FObjects.fobjects.makeFlowObject + (foTree, this, ev, stateFlags); + if (ev.getFoType() != FObjectNames.PCDATA) + ev = xmlevents.getEndElement(ev); + } + } catch(UnexpectedStartElementException e) { + MessageHandler.logln + ("Ignoring unexpected Start Element: " + + ev.getQName()); + ev = xmlevents.getStartElement(); + ev = xmlevents.getEndElement(ev); + } + } while (ev != null); makeSparsePropsSet(); } 1.1.2.5 +35 -10 xml-fop/src/org/apache/fop/fo/flow/Attic/FoBlock.java Index: FoBlock.java =================================================================== RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/flow/Attic/FoBlock.java,v retrieving revision 1.1.2.4 retrieving revision 1.1.2.5 diff -u -r1.1.2.4 -r1.1.2.5 --- FoBlock.java 13 Nov 2002 04:13:04 -0000 1.1.2.4 +++ FoBlock.java 13 Nov 2002 23:22:06 -0000 1.1.2.5 @@ -15,12 +15,15 @@ import org.apache.fop.fo.FObjectNames; import org.apache.fop.fo.FONode; import org.apache.fop.fo.FOTree; +import org.apache.fop.fo.FObjects; import org.apache.fop.fo.expr.PropertyException; import org.apache.fop.xml.FoXMLEvent; +import org.apache.fop.xml.UnexpectedStartElementException; import org.apache.fop.apps.FOPException; import org.apache.fop.datastructs.TreeException; import org.apache.fop.datatypes.PropertyValue; import org.apache.fop.datatypes.Ints; +import org.apache.fop.messaging.MessageHandler; import java.util.HashMap; import java.util.BitSet; @@ -50,7 +53,6 @@ static { // Collect the sets of properties that apply - System.out.println("In static block of FoBlock."); BitSet propsets = new BitSet(); propsets.or(PropertySets.accessibilitySet); propsets.or(PropertySets.auralSet); @@ -105,25 +107,48 @@ sparsePropsMap.put (Ints.consts.get(next), Ints.consts.get(propx++)); } - System.out.println("End of static block of FoBlock."); } /** + * Construct an fo:block node, and build the fo:block subtree. + * <p>Content model for fo:title: (#PCDATA|%inline;|%block;)* * @param foTree the FO tree being built * @param parent the parent FONode of this node * @param event the <tt>FoXMLEvent</tt> that triggered the creation of * this node - * @param attrSet the index of the attribute set applying to the node. + * @param stateFlags - passed down from the parent. Includes the + * attribute set information. */ public FoBlock - (FOTree foTree, FONode parent, FoXMLEvent event, int attrSet) + (FOTree foTree, FONode parent, FoXMLEvent event, int stateFlags) throws TreeException, FOPException { super(foTree, FObjectNames.BLOCK, parent, event, - attrSet, sparsePropsMap, sparseIndices); - System.out.println("Back from super constructor of FoBlock."); - FoXMLEvent ev; - String nowProcessing; + stateFlags, sparsePropsMap, sparseIndices); + xmlevents = foTree.getXmlevents(); + FoXMLEvent ev = null; + do { + try { + if ((stateFlags & FONode.OUT_OF_LINE) == 0) + ev = xmlevents.expectPcdataOrInlineOrBlock(); + else + ev = xmlevents.expectOutOfLinePcdataOrInlineOrBlock(); + if (ev != null) { + // Generate the flow object + //System.out.println("Generating flow object for " + ev); + FObjects.fobjects.makeFlowObject + (foTree, this, ev, stateFlags); + if (ev.getFoType() != FObjectNames.PCDATA) + ev = xmlevents.getEndElement(ev); + } + } catch(UnexpectedStartElementException e) { + MessageHandler.logln + ("Ignoring unexpected Start Element: " + + ev.getQName()); + ev = xmlevents.getStartElement(); + ev = xmlevents.getEndElement(ev); + } + } while (ev != null); makeSparsePropsSet(); } 1.1.2.5 +35 -7 xml-fop/src/org/apache/fop/fo/flow/Attic/FoBlockContainer.java Index: FoBlockContainer.java =================================================================== RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/flow/Attic/FoBlockContainer.java,v retrieving revision 1.1.2.4 retrieving revision 1.1.2.5 diff -u -r1.1.2.4 -r1.1.2.5 --- FoBlockContainer.java 13 Nov 2002 04:13:04 -0000 1.1.2.4 +++ FoBlockContainer.java 13 Nov 2002 23:22:06 -0000 1.1.2.5 @@ -15,12 +15,15 @@ import org.apache.fop.fo.FObjectNames; import org.apache.fop.fo.FONode; import org.apache.fop.fo.FOTree; +import org.apache.fop.fo.FObjects; import org.apache.fop.fo.expr.PropertyException; import org.apache.fop.xml.FoXMLEvent; +import org.apache.fop.xml.UnexpectedStartElementException; import org.apache.fop.apps.FOPException; import org.apache.fop.datastructs.TreeException; import org.apache.fop.datatypes.PropertyValue; import org.apache.fop.datatypes.Ints; +import org.apache.fop.messaging.MessageHandler; import java.util.HashMap; import java.util.BitSet; @@ -93,20 +96,45 @@ } /** + * Construct an fo:block-container node, and build the + * fo:block-container subtree. + * <p>Content model for fo:title: (#PCDATA|%inline;|%block;)* * @param foTree the FO tree being built * @param parent the parent FONode of this node * @param event the <tt>FoXMLEvent</tt> that triggered the creation of * this node - * @param attrSet the index of the attribute set applying to the node. + * @param stateFlags - passed down from the parent. Includes the + * attribute set information. */ public FoBlockContainer - (FOTree foTree, FONode parent, FoXMLEvent event, int attrSet) + (FOTree foTree, FONode parent, FoXMLEvent event, int stateFlags) throws TreeException, FOPException { super(foTree, FObjectNames.BLOCK_CONTAINER, parent, event, - attrSet, sparsePropsMap, sparseIndices); - FoXMLEvent ev; - String nowProcessing; + stateFlags, sparsePropsMap, sparseIndices); + xmlevents = foTree.getXmlevents(); + FoXMLEvent ev = null; + do { + try { + if ((stateFlags & FONode.OUT_OF_LINE) == 0) + ev = xmlevents.expectPcdataOrInlineOrBlock(); + else + ev = xmlevents.expectOutOfLinePcdataOrInlineOrBlock(); + if (ev != null) { + // Generate the flow object + FObjects.fobjects.makeFlowObject + (foTree, this, ev, stateFlags); + if (ev.getFoType() != FObjectNames.PCDATA) + ev = xmlevents.getEndElement(ev); + } + } catch(UnexpectedStartElementException e) { + MessageHandler.logln + ("Ignoring unexpected Start Element: " + + ev.getQName()); + ev = xmlevents.getStartElement(); + ev = xmlevents.getEndElement(ev); + } + } while (ev != null); makeSparsePropsSet(); }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]