From 1363d649560c5cc6f76a849aff880eb7c802cc45 Mon Sep 17 00:00:00 2001 From: "Andreas L. Delmelle" Date: Thu, 1 May 2008 21:34:19 +0000 Subject: [PATCH] First steps towards fo:retrieve-table-marker git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@652673 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/fop/events/EventFormatter.xml | 3 +- src/java/org/apache/fop/fo/Constants.java | 22 ++- .../org/apache/fop/fo/FOElementMapping.java | 6 + .../org/apache/fop/fo/FOPropertyMapping.java | 19 ++ .../fop/fo/flow/AbstractRetrieveMarker.java | 168 ++++++++++++++++++ .../apache/fop/fo/flow/RetrieveMarker.java | 145 +++------------ .../fop/fo/flow/RetrieveTableMarker.java | 111 ++++++++++++ .../fop/layoutmgr/LayoutManagerMapping.java | 19 +- .../testcases/table_retrieve-table-marker.fo | 68 +++++++ 9 files changed, 418 insertions(+), 143 deletions(-) create mode 100644 src/java/org/apache/fop/fo/flow/AbstractRetrieveMarker.java create mode 100644 src/java/org/apache/fop/fo/flow/RetrieveTableMarker.java create mode 100644 test/fotree/testcases/table_retrieve-table-marker.fo diff --git a/src/java/org/apache/fop/events/EventFormatter.xml b/src/java/org/apache/fop/events/EventFormatter.xml index f5e4609e9..74e120407 100644 --- a/src/java/org/apache/fop/events/EventFormatter.xml +++ b/src/java/org/apache/fop/events/EventFormatter.xml @@ -19,7 +19,8 @@ [ (See position {loc})| (See {#gatherContextInfo})| (No context info available)] An fo:marker is permitted only as the descendant of an fo:flow. - An fo:retrieve-marker is permitted only as the descendant of an fo:static-content. + An fo:retrieve-marker is permitted only as the descendant of an fo:static-content. + An fo:retrieve-table-marker is permitted only as the descendant of an fo:table-header or an fo:table-footer. An fo:bidi-override that is a descendant of an fo:leader or of the fo:inline child of an fo:footnote may not have block-level children, unless it has a nearer ancestor that is an fo:inline-container. An fo:inline that is a descendant of an fo:leader or fo:footnote may not have block-level children, unless it has a nearer ancestor that is an fo:inline-container. The element must be a child of fo:simple-page-master. diff --git a/src/java/org/apache/fop/fo/Constants.java b/src/java/org/apache/fop/fo/Constants.java index 25c2fe371..2a7f7e0c9 100644 --- a/src/java/org/apache/fop/fo/Constants.java +++ b/src/java/org/apache/fop/fo/Constants.java @@ -159,8 +159,10 @@ public interface Constants { int FO_PAGE_SEQUENCE_WRAPPER = 60; /** FO element constant - XSL 1.1 */ int FO_PAGE_NUMBER_CITATION_LAST = 61; + /** FO element constant - XSL 1.1 */ + int FO_RETRIEVE_TABLE_MARKER = 62; /** Number of FO element constants defined */ - int FRM_OBJ_COUNT = 61; + int FRM_OBJ_COUNT = 62; // Masks /** @@ -688,8 +690,12 @@ public interface Constants { int PR_X_WIDOW_CONTENT_LIMIT = 252; /** Property constant - FOP proprietary: limit for orphan content in lists and tables */ int PR_X_ORPHAN_CONTENT_LIMIT = 253; + /** Property constant */ + int PR_RETRIEVE_POSITION_WITHIN_TABLE = 254; + /** Property constant */ + int PR_RETRIEVE_BOUNDARY_WITHIN_TABLE = 255; /** Number of property constants defined */ - int PROPERTY_COUNT = 253; + int PROPERTY_COUNT = 255; // compound property constants @@ -1097,6 +1103,16 @@ public interface Constants { int EN_REPLACE = 189; /** Enumeration constant -- for fo:basic-link show-destination */ int EN_NEW = 190; + /** Enumeration constant -- for fo:retrieve-table-marker */ + int EN_FIRST_STARTING = 191; + /** Enumeration constant -- for fo:retrieve-table-marker */ + int EN_LAST_STARTING = 192; + /** Enumeration constant -- for fo:retrieve-table-marker */ + int EN_LAST_ENDING = 193; + /** Enumeration constant -- for fo:retrieve-table-marker */ + int EN_TABLE = 194; + /** Enumeration constant -- for fo:retrieve-table-marker */ + int EN_TABLE_FRAGMENT = 195; /** Number of enumeration constants defined */ - int ENUM_COUNT = 190; + int ENUM_COUNT = 195; } diff --git a/src/java/org/apache/fop/fo/FOElementMapping.java b/src/java/org/apache/fop/fo/FOElementMapping.java index 62721afeb..facb1c304 100644 --- a/src/java/org/apache/fop/fo/FOElementMapping.java +++ b/src/java/org/apache/fop/fo/FOElementMapping.java @@ -135,6 +135,7 @@ public class FOElementMapping extends ElementMapping { foObjs.put("wrapper", new WrapperMaker()); foObjs.put("marker", new MarkerMaker()); foObjs.put("retrieve-marker", new RetrieveMarkerMaker()); + foObjs.put("retrieve-table-marker", new RetrieveTableMarkerMaker()); } } @@ -514,4 +515,9 @@ public class FOElementMapping extends ElementMapping { } } + static class RetrieveTableMarkerMaker extends ElementMapping.Maker { + public FONode make(FONode parent) { + return new org.apache.fop.fo.flow.RetrieveTableMarker(parent); + } + } } diff --git a/src/java/org/apache/fop/fo/FOPropertyMapping.java b/src/java/org/apache/fop/fo/FOPropertyMapping.java index 6d136535b..643fc7b73 100644 --- a/src/java/org/apache/fop/fo/FOPropertyMapping.java +++ b/src/java/org/apache/fop/fo/FOPropertyMapping.java @@ -2097,6 +2097,25 @@ public final class FOPropertyMapping implements Constants { m.addEnum("document", getEnumProperty(EN_DOCUMENT, "DOCUMENT")); m.setDefault("page-sequence"); addPropertyMaker("retrieve-boundary", m); + + // retrieve-position-within-table + m = new EnumProperty.Maker(PR_RETRIEVE_POSITION_WITHIN_TABLE); + m.setInherited(false); + m.addEnum("first-starting", getEnumProperty(EN_FIRST_STARTING, "FIRST_STARTING")); + m.addEnum("first-including-carryover", getEnumProperty(EN_FIC, "FIC")); + m.addEnum("last-starting", getEnumProperty(EN_LAST_STARTING, "LAST_STARTING")); + m.addEnum("last-ending", getEnumProperty(EN_LAST_ENDING, "LAST_ENDING")); + m.setDefault("first-starting"); + addPropertyMaker("retrieve-position-within-table", m); + + // retrieve-boundary-within-table + m = new EnumProperty.Maker(PR_RETRIEVE_BOUNDARY_WITHIN_TABLE); + m.setInherited(false); + m.addEnum("table", getEnumProperty(EN_TABLE, "TABLE")); + m.addEnum("table-fragment", getEnumProperty(EN_TABLE_FRAGMENT, "TABLE_FRAGMENT")); + m.addEnum("page", getEnumProperty(EN_DOCUMENT, "PAGE")); + m.setDefault("table"); + addPropertyMaker("retrieve-boundary-within-table", m); } private void createNumberToStringProperties() { diff --git a/src/java/org/apache/fop/fo/flow/AbstractRetrieveMarker.java b/src/java/org/apache/fop/fo/flow/AbstractRetrieveMarker.java new file mode 100644 index 000000000..30bb3fbf1 --- /dev/null +++ b/src/java/org/apache/fop/fo/flow/AbstractRetrieveMarker.java @@ -0,0 +1,168 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* $Id:$ */ +package org.apache.fop.fo.flow; + +import org.apache.fop.fo.*; +import org.apache.fop.fo.flow.table.TableFObj; +import org.apache.fop.fo.flow.table.Table; +import org.apache.fop.apps.FOPException; + +import java.util.Iterator; + +/** + * Abstract base class for the + * fo:retrieve-marker and + * + * fo:retrieve-table-marker formatting objects. + + */ +public abstract class AbstractRetrieveMarker extends FObjMixed { + + private PropertyList propertyList; + + /** + * Create a new AbstractRetrieveMarker instance that + * is a child of the given {@link FONode} + * + * @param parent the parent {@link FONode} + */ + public AbstractRetrieveMarker(FONode parent) { + super(parent); + } + + /** + * {@inheritDoc} + * Store a reference to the parent {@link PropertyList} + * to be used when the retrieve-marker is resolved. + */ + public void bind(PropertyList pList) throws FOPException { + super.bind(pList); + this.propertyList = pList.getParentPropertyList(); + } + + private PropertyList createPropertyListFor(FObj fo, PropertyList parent) { + return getFOEventHandler().getPropertyListMaker().make(fo, parent); + } + + private void cloneSingleNode(FONode child, FONode newParent, + Marker marker, PropertyList parentPropertyList) + throws FOPException { + + if (child != null) { + FONode newChild = child.clone(newParent, true); + if (child instanceof FObj) { + Marker.MarkerPropertyList pList; + PropertyList newPropertyList = createPropertyListFor( + (FObj) newChild, parentPropertyList); + + pList = marker.getPropertyListFor(child); + newChild.processNode( + child.getLocalName(), + getLocator(), + pList, + newPropertyList); + if (newChild instanceof TableFObj) { + // TODO calling startOfNode (and endOfNode, below) on other fobjs may + // have undesirable side-effects. This is really ugly and will need to + // be addressed sooner or later + ((TableFObj) newChild).startOfNode(); + } + addChildTo(newChild, (FObj) newParent); + if (newChild.getNameId() == FO_TABLE) { + Table t = (Table) child; + cloneSubtree(t.getColumns().listIterator(), + newChild, marker, newPropertyList); + cloneSingleNode(t.getTableHeader(), + newChild, marker, newPropertyList); + cloneSingleNode(t.getTableFooter(), + newChild, marker, newPropertyList); + } + cloneSubtree(child.getChildNodes(), newChild, + marker, newPropertyList); + if (newChild instanceof TableFObj) { + // TODO this is ugly + ((TableFObj) newChild).endOfNode(); + } + } else if (child instanceof FOText) { + FOText ft = (FOText) newChild; + ft.bind(parentPropertyList); + addChildTo(newChild, (FObj) newParent); + } + if (newChild instanceof FObjMixed) { + handleWhiteSpaceFor((FObjMixed) newChild); + } + } + } + + /** + * Clone the FO nodes in the parent iterator, + * attach the new nodes to the new parent, + * and map the new nodes to the existing property lists. + * FOText nodes are also in the new map, with a null value. + * Clone the subtree by a recursive call to this method. + * @param parentIter the iterator over the children of the old parent + * @param newParent the new parent for the cloned nodes + * @param marker the marker that contains the old property list mapping + * @param parentPropertyList the parent PropertyList + * @throws FOPException in case there was an error + */ + private void cloneSubtree(Iterator parentIter, FONode newParent, + Marker marker, PropertyList parentPropertyList) + throws FOPException { + if (parentIter != null) { + FONode child; + while (parentIter.hasNext()) { + child = (FONode) parentIter.next(); + cloneSingleNode(child, newParent, + marker, parentPropertyList); + } + } + } + + private void cloneFromMarker(Marker marker) + throws FOPException { + // clean up remnants from a possible earlier layout + if (firstChild != null) { + currentTextNode = null; + firstChild = null; + } + cloneSubtree(marker.getChildNodes(), this, + marker, propertyList); + handleWhiteSpaceFor(this); + } + + /** + * Clone the subtree of the given marker + * + * @param marker the marker that is to be cloned + */ + public void bindMarker(Marker marker) { + if (marker.getChildNodes() != null) { + try { + cloneFromMarker(marker); + } catch (FOPException exc) { + getFOValidationEventProducer().markerCloningFailed(this, + marker.getMarkerClassName(), exc, getLocator()); + } + } else if (log.isDebugEnabled()) { + log.debug("Empty marker retrieved..."); + } + } + +} diff --git a/src/java/org/apache/fop/fo/flow/RetrieveMarker.java b/src/java/org/apache/fop/fo/flow/RetrieveMarker.java index 0283dc7da..b75e14664 100644 --- a/src/java/org/apache/fop/fo/flow/RetrieveMarker.java +++ b/src/java/org/apache/fop/fo/flow/RetrieveMarker.java @@ -23,29 +23,25 @@ import java.util.Iterator; import org.apache.fop.apps.FOPException; import org.apache.fop.fo.FONode; -import org.apache.fop.fo.FOText; -import org.apache.fop.fo.FObj; -import org.apache.fop.fo.FObjMixed; import org.apache.fop.fo.PropertyList; import org.apache.fop.fo.ValidationException; -import org.apache.fop.fo.flow.table.Table; -import org.apache.fop.fo.flow.table.TableFObj; import org.xml.sax.Locator; +import org.xml.sax.Attributes; /** - * Class modelling the fo:retrieve-marker object. + * Class modelling the + * fo:retrieve-marker formatting object. * This will create a layout manager that will retrieve * a marker based on the information. */ -public class RetrieveMarker extends FObjMixed { +public class RetrieveMarker extends AbstractRetrieveMarker { + // The value of properties relevant for fo:retrieve-marker. private String retrieveClassName; private int retrievePosition; private int retrieveBoundary; // End of property values - private PropertyList propertyList; - /** * Create a new RetrieveMarker instance that is a * child of the given {@link FONode}. @@ -56,12 +52,26 @@ public class RetrieveMarker extends FObjMixed { super(parent); } - /** {@inheritDoc} */ - public void bind(PropertyList pList) throws FOPException { + /** + * {@inheritDoc} + * NOTE: An fo:retrieve-marker is only permitted as a descendant + * of an fo:static-content. + */ + public void processNode(String elementName, + Locator locator, + Attributes attlist, + PropertyList pList) + throws FOPException { if (findAncestor(FO_STATIC_CONTENT) < 0) { invalidChildError(locator, getParent().getName(), FO_URI, getName(), - "rule.retrieveMarkerDescendatOfStaticContent"); + "rule.retrieveMarkerDescendantOfStaticContent"); + } else { + super.processNode(elementName, locator, attlist, pList); } + } + + /** {@inheritDoc} */ + public void bind(PropertyList pList) throws FOPException { retrieveClassName = pList.get(PR_RETRIEVE_CLASS_NAME).getString(); retrievePosition = pList.get(PR_RETRIEVE_POSITION).getEnum(); @@ -70,8 +80,6 @@ public class RetrieveMarker extends FObjMixed { if (retrieveClassName == null || retrieveClassName.equals("")) { missingPropertyError("retrieve-class-name"); } - - propertyList = pList.getParentPropertyList(); super.bind(pList); } @@ -107,115 +115,6 @@ public class RetrieveMarker extends FObjMixed { return retrieveBoundary; } - private PropertyList createPropertyListFor(FObj fo, PropertyList parent) { - return getFOEventHandler().getPropertyListMaker().make(fo, parent); - } - - private void cloneSingleNode(FONode child, FONode newParent, - Marker marker, PropertyList parentPropertyList) - throws FOPException { - - if (child != null) { - FONode newChild = child.clone(newParent, true); - if (child instanceof FObj) { - Marker.MarkerPropertyList pList; - PropertyList newPropertyList = createPropertyListFor( - (FObj) newChild, parentPropertyList); - - pList = marker.getPropertyListFor(child); - newChild.processNode( - child.getLocalName(), - getLocator(), - pList, - newPropertyList); - if (newChild instanceof TableFObj) { - // TODO calling startOfNode (and endOfNode, below) on other fobjs may - // have undesirable side-effects. This is really ugly and will need to - // be addressed sooner or later - ((TableFObj) newChild).startOfNode(); - } - addChildTo(newChild, (FObj) newParent); - if (newChild.getNameId() == FO_TABLE) { - Table t = (Table) child; - cloneSubtree(t.getColumns().listIterator(), - newChild, marker, newPropertyList); - cloneSingleNode(t.getTableHeader(), - newChild, marker, newPropertyList); - cloneSingleNode(t.getTableFooter(), - newChild, marker, newPropertyList); - } - cloneSubtree(child.getChildNodes(), newChild, - marker, newPropertyList); - if (newChild instanceof TableFObj) { - // TODO this is ugly - ((TableFObj) newChild).endOfNode(); - } - } else if (child instanceof FOText) { - FOText ft = (FOText) newChild; - ft.bind(parentPropertyList); - addChildTo(newChild, (FObj) newParent); - } - if (newChild instanceof FObjMixed) { - handleWhiteSpaceFor((FObjMixed) newChild); - } - } - } - - /** - * Clone the FO nodes in the parent iterator, - * attach the new nodes to the new parent, - * and map the new nodes to the existing property lists. - * FOText nodes are also in the new map, with a null value. - * Clone the subtree by a recursive call to this method. - * @param parentIter the iterator over the children of the old parent - * @param newParent the new parent for the cloned nodes - * @param marker the marker that contains the old property list mapping - * @param descPLists the map of the new nodes to property lists - */ - private void cloneSubtree(Iterator parentIter, FONode newParent, - Marker marker, PropertyList parentPropertyList) - throws FOPException { - if (parentIter != null) { - FONode child; - while (parentIter.hasNext()) { - child = (FONode) parentIter.next(); - cloneSingleNode(child, newParent, - marker, parentPropertyList); - } - } - } - - private void cloneFromMarker(Marker marker) - throws FOPException { - // clean up remnants from a possible earlier layout - if (firstChild != null) { - currentTextNode = null; - firstChild = null; - } - cloneSubtree(marker.getChildNodes(), this, - marker, propertyList); - handleWhiteSpaceFor(this); - } - - /** - * Clone the subtree of the given marker - * - * @param marker the marker that is to be cloned - */ - public void bindMarker(Marker marker) { - if (marker.getChildNodes() != null) { - try { - cloneFromMarker(marker); - } catch (FOPException exc) { - getFOValidationEventProducer().markerCloningFailed(this, - marker.getMarkerClassName(), exc, getLocator()); - return; - } - } else if (log.isDebugEnabled()) { - log.debug("Empty marker retrieved..."); - } - } - /** {@inheritDoc} */ public String getLocalName() { return "retrieve-marker"; diff --git a/src/java/org/apache/fop/fo/flow/RetrieveTableMarker.java b/src/java/org/apache/fop/fo/flow/RetrieveTableMarker.java new file mode 100644 index 000000000..4a7b8af0d --- /dev/null +++ b/src/java/org/apache/fop/fo/flow/RetrieveTableMarker.java @@ -0,0 +1,111 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* $Id:$ */ +package org.apache.fop.fo.flow; + +import org.apache.fop.fo.FONode; +import org.apache.fop.fo.PropertyList; +import org.apache.fop.apps.FOPException; +import org.xml.sax.Locator; +import org.xml.sax.Attributes; + +/** + * Class modelling the + * fo:retrieve-table-marker formatting object. + */ +public class RetrieveTableMarker extends AbstractRetrieveMarker { + + // The value of properties relevant for fo:retrieve-marker. + private String retrieveClassName; + private int retrievePositionWithinTable; + private int retrieveBoundaryWithinTable; + // end property values + + /** + * Create a new RetrieveTableMarker instance that is + * a child of the given {@link FONode}. + * + * @param parent the parent {@link FONode} + */ + public RetrieveTableMarker(FONode parent) { + super(parent); + } + + /** {@inheritDoc} */ + public void processNode(String elementName, Locator locator, Attributes attlist, PropertyList pList) throws FOPException { + if (findAncestor(FO_TABLE_HEADER) < 0 + && findAncestor(FO_TABLE_FOOTER) < 0) { + invalidChildError(locator, getParent().getName(), FO_URI, getName(), + "rule.retrieveTableMarkerDescendantOfHeaderOrFooter"); + } else { + super.processNode(elementName, locator, attlist, pList); + } + } + + /** {@inheritDoc} */ + public void bind(PropertyList pList) throws FOPException { + this.retrieveClassName = pList.get(PR_RETRIEVE_CLASS_NAME).getString(); + this.retrievePositionWithinTable + = pList.get(PR_RETRIEVE_POSITION_WITHIN_TABLE).getEnum(); + this.retrieveBoundaryWithinTable + = pList.get(PR_RETRIEVE_BOUNDARY_WITHIN_TABLE).getEnum(); + } + + /** {@inheritDoc} */ + public String getRetrieveClassName() { + return this.retrieveClassName; + } + + /** + * Return the value for the retrieve-position-within-table + * property + * @return the value for retrieve-position-within-table; one of + * {@link org.apache.fop.fo.Constants#EN_FIRST_STARTING}, + * {@link org.apache.fop.fo.Constants#EN_FIC}, + * {@link org.apache.fop.fo.Constants#EN_LAST_STARTING}, + * {@link org.apache.fop.fo.Constants#EN_LAST_ENDING}. + */ + public int getRetrievePositionWithinTable() { + return this.retrievePositionWithinTable; + } + + /** + * Return the value for the retrieve-boundary-within-table + * property + * @return the value for retrieve-boundary-within-table; one of + * {@link org.apache.fop.fo.Constants#EN_TABLE}, + * {@link org.apache.fop.fo.Constants#EN_TABLE_FRAGMENT}, + * {@link org.apache.fop.fo.Constants#EN_PAGE}. + */ + public int getRetrieveBoundaryWithinTable() { + return this.retrieveBoundaryWithinTable; + } + + /** {@inheritDoc} */ + public String getLocalName() { + return "retrieve-table-marker"; + } + + /** + * {@inheritDoc} + * @return {@link org.apache.fop.fo.Constants#FO_RETRIEVE_TABLE_MARKER} + */ + public int getNameId() { + return FO_RETRIEVE_TABLE_MARKER; + } +} diff --git a/src/java/org/apache/fop/layoutmgr/LayoutManagerMapping.java b/src/java/org/apache/fop/layoutmgr/LayoutManagerMapping.java index ad7d48caf..087963013 100644 --- a/src/java/org/apache/fop/layoutmgr/LayoutManagerMapping.java +++ b/src/java/org/apache/fop/layoutmgr/LayoutManagerMapping.java @@ -51,6 +51,7 @@ import org.apache.fop.fo.flow.PageNumber; import org.apache.fop.fo.flow.PageNumberCitation; import org.apache.fop.fo.flow.PageNumberCitationLast; import org.apache.fop.fo.flow.RetrieveMarker; +import org.apache.fop.fo.flow.RetrieveTableMarker; import org.apache.fop.fo.flow.Wrapper; import org.apache.fop.fo.flow.table.Table; import org.apache.fop.fo.flow.table.TableBody; @@ -117,6 +118,7 @@ public class LayoutManagerMapping implements LayoutManagerMaker { makers.put(Block.class, new BlockLayoutManagerMaker()); makers.put(Leader.class, new LeaderLayoutManagerMaker()); makers.put(RetrieveMarker.class, new RetrieveMarkerLayoutManagerMaker()); + makers.put(RetrieveTableMarker.class, new Maker()); makers.put(Character.class, new CharacterLayoutManagerMaker()); makers.put(ExternalGraphic.class, new ExternalGraphicLayoutManagerMaker()); @@ -207,9 +209,7 @@ public class LayoutManagerMapping implements LayoutManagerMaker { return new StaticContentLayoutManager(pslm, sc, reg); } - /* - * {@inheritDoc} - */ + /** {@inheritDoc} */ public StaticContentLayoutManager makeStaticContentLayoutManager( PageSequenceLayoutManager pslm, StaticContent sc, org.apache.fop.area.Block block) { return new StaticContentLayoutManager(pslm, sc, block); @@ -218,7 +218,6 @@ public class LayoutManagerMapping implements LayoutManagerMaker { public static class Maker { public void make(FONode node, List lms) { // no layout manager - return; } } @@ -231,18 +230,6 @@ public class LayoutManagerMapping implements LayoutManagerMaker { } } - /* - public static class FObjMixedLayoutManagerMaker extends Maker { - public void make(FONode node, List lms) { - if (node.getChildNodes() != null) { - InlineStackingLayoutManager lm; - lm = new InlineStackingLayoutManager((FObjMixed) node); - lms.add(lm); - } - } - } - */ - public static class BidiOverrideLayoutManagerMaker extends Maker { // public static class BidiOverrideLayoutManagerMaker extends FObjMixedLayoutManagerMaker { public void make(BidiOverride node, List lms) { diff --git a/test/fotree/testcases/table_retrieve-table-marker.fo b/test/fotree/testcases/table_retrieve-table-marker.fo new file mode 100644 index 000000000..3697fcd19 --- /dev/null +++ b/test/fotree/testcases/table_retrieve-table-marker.fo @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cell1 + + + cell2 + + + + + cell3 + + + cell4 + + + + + + + -- 2.39.5