You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by ss...@apache.org on 2018/07/05 11:29:02 UTC
svn commit: r1835125 [1/3] - in /xmlgraphics/fop/branches/Temp_ChangeBars2:
fop-core/src/main/java/org/apache/fop/area/
fop-core/src/main/java/org/apache/fop/area/inline/
fop-core/src/main/java/org/apache/fop/fo/
fop-core/src/main/java/org/apache/fop/f...
Author: ssteiner
Date: Thu Jul 5 11:29:01 2018
New Revision: 1835125
URL: http://svn.apache.org/viewvc?rev=1835125&view=rev
Log:
FOP-1760: Change bar generation
Added:
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/area/inline/InlineBlock.java (with props)
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/flow/ChangeBar.java (with props)
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/flow/ChangeBarBegin.java (with props)
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/flow/ChangeBarEnd.java (with props)
xmlgraphics/fop/branches/Temp_ChangeBars2/fop/test/layoutengine/standard-testcases/change-bar_block.xml (with props)
xmlgraphics/fop/branches/Temp_ChangeBars2/fop/test/layoutengine/standard-testcases/change-bar_inline.xml (with props)
xmlgraphics/fop/branches/Temp_ChangeBars2/fop/test/layoutengine/standard-testcases/change-bar_list.xml (with props)
xmlgraphics/fop/branches/Temp_ChangeBars2/fop/test/layoutengine/standard-testcases/change-bar_overlapped.xml (with props)
xmlgraphics/fop/branches/Temp_ChangeBars2/fop/test/layoutengine/standard-testcases/change-bar_placement-rtl.xml (with props)
xmlgraphics/fop/branches/Temp_ChangeBars2/fop/test/layoutengine/standard-testcases/change-bar_placement.xml (with props)
xmlgraphics/fop/branches/Temp_ChangeBars2/fop/test/layoutengine/standard-testcases/change-bar_style.xml (with props)
xmlgraphics/fop/branches/Temp_ChangeBars2/fop/test/layoutengine/standard-testcases/change-bar_table.xml (with props)
Modified:
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/area/Area.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/area/AreaTreeParser.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/area/Span.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/area/inline/TextArea.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/FOElementMapping.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/FONode.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/FOPropertyMapping.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/FOText.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/FOTreeBuilder.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/FOValidationEventProducer.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/FObj.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/flow/table/TableRow.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/pagination/PageSequence.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/pagination/Root.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/AbstractBaseLayoutManager.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/BlockContainerLayoutManager.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/BlockLayoutManager.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/BlockStackingLayoutManager.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/ExternalDocumentLayoutManager.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/LayoutManagerMapping.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/AbstractPageNumberCitationLayoutManager.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/CharacterLayoutManager.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/ContentLayoutManager.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/ExternalGraphicLayoutManager.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/InlineLayoutManager.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/InlineStackingLayoutManager.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/InstreamForeignObjectLM.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/LeaderLayoutManager.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/LineLayoutManager.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/TextLayoutManager.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/WrapperLayoutManager.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/list/ListBlockLayoutManager.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/list/ListItemContentLayoutManager.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/list/ListItemLayoutManager.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/table/RowPainter.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/table/TableAndCaptionLayoutManager.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/table/TableCaptionLayoutManager.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/table/TableCellLayoutManager.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/table/TableLayoutManager.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/render/AbstractPathOrientedRenderer.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/render/AbstractRenderer.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/render/xml/XMLRenderer.java
xmlgraphics/fop/branches/Temp_ChangeBars2/fop/src/documentation/intermediate-format-ng/fop-intermediate-format-ng-datatypes.xsd
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/area/Area.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/area/Area.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/area/Area.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/area/Area.java Thu Jul 5 11:29:01 2018
@@ -20,12 +20,14 @@
package org.apache.fop.area;
import java.io.Serializable;
+import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.fop.fo.flow.ChangeBar;
import org.apache.fop.traits.BorderProps;
import org.apache.fop.traits.WritingModeTraitsGetter;
@@ -129,6 +131,29 @@ public class Area extends AreaTreeObject
protected static final Log log = LogFactory.getLog(Area.class);
/**
+ * The active change bar list
+ */
+ private List<ChangeBar> changeBarList;
+
+ /**
+ * Returns the active change bar list.
+ *
+ * @return The active change bar list
+ */
+ public List<ChangeBar> getChangeBarList() {
+ return changeBarList;
+ }
+
+ /**
+ * Sets the active change bar list.
+ *
+ * @param changeBarList The active change bar list
+ */
+ public void setChangeBarList(List<ChangeBar> changeBarList) {
+ this.changeBarList = changeBarList;
+ }
+
+ /**
* Get the area class of this area.
*
* @return the area class
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/area/AreaTreeParser.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/area/AreaTreeParser.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/area/AreaTreeParser.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/area/AreaTreeParser.java Thu Jul 5 11:29:01 2018
@@ -66,6 +66,7 @@ import org.apache.fop.area.inline.Contai
import org.apache.fop.area.inline.ForeignObject;
import org.apache.fop.area.inline.Image;
import org.apache.fop.area.inline.InlineArea;
+import org.apache.fop.area.inline.InlineBlock;
import org.apache.fop.area.inline.InlineBlockParent;
import org.apache.fop.area.inline.InlineParent;
import org.apache.fop.area.inline.InlineViewport;
@@ -80,6 +81,7 @@ import org.apache.fop.fo.extensions.Exte
import org.apache.fop.fonts.Font;
import org.apache.fop.fonts.FontInfo;
import org.apache.fop.traits.BorderProps;
+import org.apache.fop.traits.Direction;
import org.apache.fop.traits.Visibility;
import org.apache.fop.util.ColorUtil;
import org.apache.fop.util.ContentHandlerFactory;
@@ -190,6 +192,7 @@ public class AreaTreeParser {
makers.put("block", new BlockMaker());
makers.put("lineArea", new LineAreaMaker());
makers.put("inline", new InlineMaker());
+ makers.put("inlineblock", new InlineBlockMaker());
makers.put("inlineparent", new InlineParentMaker());
makers.put("inlineblockparent", new InlineBlockParentMaker());
makers.put("text", new TextMaker());
@@ -594,6 +597,17 @@ public class AreaTreeParser {
BodyRegion body = getCurrentBodyRegion();
Span span = new Span(columnCount,
body.getColumnGap(), ipd);
+
+ String blockDirection = attributes.getValue("block-progression-direction");
+ if (blockDirection != null) {
+ span.addTrait(Trait.BLOCK_PROGRESSION_DIRECTION, Direction.valueOf(blockDirection));
+ }
+
+ String inlineDirection = attributes.getValue("inline-progression-direction");
+ if (inlineDirection != null) {
+ span.addTrait(Trait.INLINE_PROGRESSION_DIRECTION, Direction.valueOf(inlineDirection));
+ }
+
transferForeignObjects(attributes, span);
setAreaAttributes(attributes, span);
body.getMainReference().getSpans().add(span);
@@ -723,6 +737,34 @@ public class AreaTreeParser {
}
}
+ private class InlineBlockMaker extends AbstractMaker {
+
+ public void startElement(Attributes attributes) {
+
+ Block block = new Block();
+
+ if (attributes.getValue("left-offset") != null) {
+ block.setXOffset(XMLUtil.getAttributeAsInt(attributes, "left-offset", 0));
+ }
+ if (attributes.getValue("top-offset") != null) {
+ block.setYOffset(XMLUtil.getAttributeAsInt(attributes, "top-offset", 0));
+ }
+ transferForeignObjects(attributes, block);
+ setAreaAttributes(attributes, block);
+ setTraits(attributes, block, SUBSET_COMMON);
+ setTraits(attributes, block, SUBSET_BOX);
+ setTraits(attributes, block, SUBSET_COLOR);
+ Area parent = (Area)areaStack.peek();
+ InlineBlock inlineBlock = new InlineBlock(block);
+ parent.addChildArea(inlineBlock);
+ areaStack.push(inlineBlock);
+ }
+
+ public void endElement() {
+ assertObjectOfClass(areaStack.pop(), InlineBlock.class);
+ }
+ }
+
private class InlineParentMaker extends AbstractMaker {
public void startElement(Attributes attributes) {
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/area/Span.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/area/Span.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/area/Span.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/area/Span.java Thu Jul 5 11:29:01 2018
@@ -82,6 +82,15 @@ public class Span extends Area {
}
/**
+ * Get the column gap for this span area.
+ *
+ * @return the column gap for this span area
+ */
+ public int getColumnGap() {
+ return colGap;
+ }
+
+ /**
* Get the width of a single column within this Span
*
* @return the width of a single column
@@ -206,6 +215,8 @@ public class Span extends Area {
}
break;
}
+ addTrait(Trait.INLINE_PROGRESSION_DIRECTION, wmtg.getInlineProgressionDirection());
+ addTrait(Trait.BLOCK_PROGRESSION_DIRECTION, wmtg.getBlockProgressionDirection());
}
/** {@inheritDoc} */
Added: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/area/inline/InlineBlock.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/area/inline/InlineBlock.java?rev=1835125&view=auto
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/area/inline/InlineBlock.java (added)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/area/inline/InlineBlock.java Thu Jul 5 11:29:01 2018
@@ -0,0 +1,42 @@
+/*
+ * 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.area.inline;
+
+import org.apache.fop.area.Block;
+
+/**
+ * This is the inline block area class.
+ * It wraps the child block when it has to be placed into inline parent.
+ */
+public class InlineBlock extends InlineParent {
+
+ private final Block block;
+
+ public InlineBlock(Block block) {
+ this.block = block;
+ }
+
+ /**
+ * @return the wrapped block
+ */
+ public Block getBlock() {
+ return block;
+ }
+}
Propchange: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/area/inline/InlineBlock.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/area/inline/TextArea.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/area/inline/TextArea.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/area/inline/TextArea.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/area/inline/TextArea.java Thu Jul 5 11:29:01 2018
@@ -95,6 +95,7 @@ public class TextArea extends AbstractTe
WordArea wordArea = new WordArea(
blockProgressionOffset, minWordLevel, word, letterAdjust, levels, gposAdjustments);
wordArea.setIPD(ipd);
+ wordArea.setChangeBarList(getChangeBarList());
addChildArea(wordArea);
wordArea.setParentArea(this);
updateLevel(minWordLevel);
@@ -113,6 +114,7 @@ public class TextArea extends AbstractTe
char space, int ipd, boolean adjustable, int blockProgressionOffset, int level) {
SpaceArea spaceArea = new SpaceArea(blockProgressionOffset, level, space, adjustable);
spaceArea.setIPD(ipd);
+ spaceArea.setChangeBarList(getChangeBarList());
addChildArea(spaceArea);
spaceArea.setParentArea(this);
updateLevel(level);
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/FOElementMapping.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/FOElementMapping.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/FOElementMapping.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/FOElementMapping.java Thu Jul 5 11:29:01 2018
@@ -141,6 +141,10 @@ public class FOElementMapping extends El
foObjs.put("marker", new MarkerMaker());
foObjs.put("retrieve-marker", new RetrieveMarkerMaker());
foObjs.put("retrieve-table-marker", new RetrieveTableMarkerMaker());
+
+ // change bars
+ foObjs.put("change-bar-begin", new ChangeBarBeginMaker());
+ foObjs.put("change-bar-end", new ChangeBarEndMaker());
}
}
@@ -527,4 +531,16 @@ public class FOElementMapping extends El
return new org.apache.fop.fo.flow.RetrieveTableMarker(parent);
}
}
+
+ static class ChangeBarBeginMaker extends ElementMapping.Maker {
+ public FONode make(FONode parent) {
+ return new org.apache.fop.fo.flow.ChangeBarBegin(parent);
+ }
+ }
+
+ static class ChangeBarEndMaker extends ElementMapping.Maker {
+ public FONode make(FONode parent) {
+ return new org.apache.fop.fo.flow.ChangeBarEnd(parent);
+ }
+ }
}
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/FONode.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/FONode.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/FONode.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/FONode.java Thu Jul 5 11:29:01 2018
@@ -20,6 +20,7 @@
package org.apache.fop.fo;
// Java
+import java.util.List;
import java.util.ListIterator;
import java.util.Map;
import java.util.Stack;
@@ -42,6 +43,7 @@ import org.apache.fop.fo.extensions.Exte
import org.apache.fop.fo.extensions.ExtensionElementMapping;
import org.apache.fop.fo.extensions.InternalElementMapping;
import org.apache.fop.fo.extensions.svg.SVGElementMapping;
+import org.apache.fop.fo.flow.ChangeBar;
import org.apache.fop.fo.pagination.Root;
import org.apache.fop.util.CharUtilities;
import org.apache.fop.util.ContentHandlerFactory;
@@ -63,6 +65,12 @@ public abstract class FONode implements
/** pointer to the sibling nodes */
protected FONode[] siblings;
+ /** The list of active change bars for the given node */
+ protected List<ChangeBar> nodeChangeBarList;
+
+ /** The list of active change bars for the start of the given node */
+ protected List<ChangeBar> startOfNodeChangeBarList;
+
/**
* Marks the location of this object from the input FO
* <br>Call <code>locator.getSystemId()</code>,
@@ -174,6 +182,18 @@ public abstract class FONode implements
}
/**
+ * Tests if the given element is a change bar element.
+ *
+ * @param namespaceURI The name space of the element
+ * @param localName The local name of the element
+ * @return A boolean value true if the given element is a change bar element
+ */
+ public boolean isChangeBarElement(String namespaceURI, String localName) {
+ return FO_URI.equals(namespaceURI)
+ && (localName.equals("change-bar-begin") || localName.equals("change-bar-end"));
+ }
+
+ /**
* Returns the user agent that is associated with the
* tree's <code>FOEventHandler</code>.
*
@@ -1083,6 +1103,15 @@ public abstract class FONode implements
}
/**
+ * Returns the list of active change bars.
+ *
+ * @return The list of active change bars
+ */
+ public List<ChangeBar> getChangeBarList() {
+ return nodeChangeBarList;
+ }
+
+ /**
* Sets the structure tree element.
*
* @param structureTreeElement set.
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/FOPropertyMapping.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/FOPropertyMapping.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/FOPropertyMapping.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/FOPropertyMapping.java Thu Jul 5 11:29:01 2018
@@ -322,6 +322,7 @@ public final class FOPropertyMapping imp
gp.createTableProperties();
gp.createWritingModeProperties();
gp.createMiscProperties();
+ gp.createChangeBarProperties();
// Hardcode the subproperties.
addSubpropMakerName("length", CP_LENGTH);
@@ -2588,6 +2589,56 @@ public final class FOPropertyMapping imp
addPropertyMaker("writing-mode", m);
}
+ private void createChangeBarProperties() {
+ PropertyMaker m;
+
+ // change-bar-class
+ m = new StringProperty.Maker(PR_CHANGE_BAR_CLASS);
+ m.setInherited(false);
+ m.setDefault("");
+ addPropertyMaker("change-bar-class", m);
+
+ // change-bar-color
+ m = new ColorProperty.Maker(PR_CHANGE_BAR_COLOR);
+
+ m.setInherited(true);
+ // TODO: fall back to "color" property
+ m.setDefault("black");
+ addPropertyMaker("change-bar-color", m);
+
+ // change-bar-placement
+ m = new EnumProperty.Maker(PR_CHANGE_BAR_PLACEMENT);
+ m.setInherited(true);
+ m.setDefault("start");
+ m.addEnum("start", getEnumProperty(EN_START, "START"));
+ m.addEnum("end", getEnumProperty(EN_END, "END"));
+ m.addEnum("left", getEnumProperty(EN_LEFT, "LEFT"));
+ m.addEnum("right", getEnumProperty(EN_RIGHT, "RIGHT"));
+ m.addEnum("inside", getEnumProperty(EN_INSIDE, "INSIDE"));
+ m.addEnum("outside", getEnumProperty(EN_OUTSIDE, "OUTSIDE"));
+ m.addEnum("alternate", getEnumProperty(EN_ALTERNATE, "ALTERNATE"));
+ addPropertyMaker("change-bar-placement", m);
+
+ // change-bar-style
+ m = new EnumProperty.Maker(PR_CHANGE_BAR_STYLE);
+ m.useGeneric(genericBorderStyle);
+ m.setInherited(true);
+ m.setDefault("solid");
+ addPropertyMaker("change-bar-style", m);
+
+ // change-bar-width
+ m = new LengthProperty.Maker(PR_CHANGE_BAR_WIDTH);
+ m.setInherited(true);
+ m.setDefault("6pt");
+ addPropertyMaker("change-bar-width", m);
+
+ // change-bar-offset
+ m = new LengthProperty.Maker(PR_CHANGE_BAR_OFFSET);
+ m.setInherited(true);
+ m.setDefault("6pt");
+ addPropertyMaker("change-bar-offset", m);
+ }
+
private void createMiscProperties() {
PropertyMaker m;
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/FOText.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/FOText.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/FOText.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/FOText.java Thu Jul 5 11:29:01 2018
@@ -33,6 +33,7 @@ import org.apache.fop.apps.FOPException;
import org.apache.fop.complexscripts.bidi.DelimitedTextRange;
import org.apache.fop.datatypes.Length;
import org.apache.fop.fo.flow.Block;
+import org.apache.fop.fo.pagination.PageSequence;
import org.apache.fop.fo.properties.CommonFont;
import org.apache.fop.fo.properties.CommonHyphenation;
import org.apache.fop.fo.properties.CommonTextDecoration;
@@ -109,6 +110,11 @@ public class FOText extends FONode imple
*/
public FOText(FONode parent) {
super(parent);
+
+ PageSequence pageSequence = getRoot().getLastPageSequence();
+ if (pageSequence != null && pageSequence.hasChangeBars()) {
+ nodeChangeBarList = getRoot().getLastPageSequence().getClonedChangeBarList();
+ }
}
/** {@inheritDoc} */
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/FOTreeBuilder.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/FOTreeBuilder.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/FOTreeBuilder.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/FOTreeBuilder.java Thu Jul 5 11:29:01 2018
@@ -273,7 +273,9 @@ public class FOTreeBuilder extends Defau
if (currentFObj.getNamespaceURI().equals(FOElementMapping.URI)
|| currentFObj.getNamespaceURI().equals(ExtensionElementMapping.URI)
|| currentFObj.getNamespaceURI().equals(PDFElementMapping.NAMESPACE)) {
- currentFObj.validateChildNode(locator, namespaceURI, localName);
+ if (!currentFObj.isChangeBarElement(namespaceURI, localName)) {
+ currentFObj.validateChildNode(locator, namespaceURI, localName);
+ }
}
}
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/FOValidationEventProducer.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/FOValidationEventProducer.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/FOValidationEventProducer.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/FOValidationEventProducer.java Thu Jul 5 11:29:01 2018
@@ -382,6 +382,47 @@ public interface FOValidationEventProduc
QName offendingNode, Locator loc);
/**
+ * A class for change bars is not unique.
+ * @param source the event source
+ * @param elementName the name of the context node
+ * @param name the class name
+ * @param loc the location of the error or null
+ * @event.severity FATAL
+ */
+ void changeBarClassNotUnique(Object source, String elementName, String name,
+ Locator loc);
+
+ /**
+ * Change bars were not stacked correctly
+ * @param source the event source
+ * @param elementName the name of the context node
+ * @param beginName the class name of the beginning change bar
+ * @param endName the class name of the ending change bar
+ * @param loc the location of the error or null
+ * @event.severity FATAL
+ */
+ void changeBarWrongStacking(Object source, String elementName, String beginName,
+ String endName, Locator loc);
+
+ /**
+ * Change bar ended without a start of bar occurred
+ * @param source the event source
+ * @param elementName the name of the context node
+ * @param loc the location of the error or null
+ * @event.severity FATAL
+ */
+ void changeBarNoBegin(Object source, String elementName, Locator loc);
+
+ /**
+ * Change bar not descendant of fo:flow or fo:static-content
+ * @param source the event source
+ * @param elementName the name of the context node
+ * @param loc the location of the error or null
+ * @event.severity FATAL
+ */
+ void changeBarWrongAncestor(Object source, String elementName, Locator loc);
+
+ /**
* Alternate text is missing for a graphic element.
*
* @param source the event source
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/FObj.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/FObj.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/FObj.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/FObj.java Thu Jul 5 11:29:01 2018
@@ -21,6 +21,7 @@ package org.apache.fop.fo;
import java.util.Collections;
import java.util.HashMap;
+import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
@@ -34,7 +35,9 @@ 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.ChangeBar;
import org.apache.fop.fo.flow.Marker;
+import org.apache.fop.fo.pagination.PageSequence;
import org.apache.fop.fo.properties.Property;
import org.apache.fop.fo.properties.PropertyMaker;
@@ -182,6 +185,39 @@ public abstract class FObj extends FONod
if (id != null) {
checkId(id);
}
+
+ PageSequence pageSequence = getRoot().getLastPageSequence();
+ if (pageSequence != null && pageSequence.hasChangeBars()) {
+ startOfNodeChangeBarList = pageSequence.getClonedChangeBarList();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ * @throws FOPException FOP Exception
+ */
+ public void endOfNode() throws FOPException {
+
+ List<ChangeBar> endOfNodeChangeBarList = null;
+
+ PageSequence pageSequence = getRoot().getLastPageSequence();
+ if (pageSequence != null) {
+ endOfNodeChangeBarList = pageSequence.getClonedChangeBarList();
+ }
+
+ if (startOfNodeChangeBarList != null && endOfNodeChangeBarList != null) {
+
+ nodeChangeBarList = new LinkedList<ChangeBar>(endOfNodeChangeBarList);
+ nodeChangeBarList.retainAll(startOfNodeChangeBarList);
+
+ if (nodeChangeBarList.isEmpty()) {
+ nodeChangeBarList = null;
+ }
+
+ startOfNodeChangeBarList = null;
+ }
+
+ super.endOfNode();
}
/**
@@ -492,6 +528,8 @@ public abstract class FObj extends FONod
protected boolean isInlineItem(String nsURI, String lName) {
return (FO_URI.equals(nsURI)
&& ("bidi-override".equals(lName)
+ || "change-bar-begin".equals(lName)
+ || "change-bar-end".equals(lName)
|| "character".equals(lName)
|| "external-graphic".equals(lName)
|| "instream-foreign-object".equals(lName)
Added: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/flow/ChangeBar.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/flow/ChangeBar.java?rev=1835125&view=auto
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/flow/ChangeBar.java (added)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/flow/ChangeBar.java Thu Jul 5 11:29:01 2018
@@ -0,0 +1,214 @@
+/*
+ * 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 java.awt.Color;
+
+import org.xml.sax.Attributes;
+import org.xml.sax.Locator;
+
+import org.apache.fop.apps.FOPException;
+import org.apache.fop.datatypes.Length;
+import org.apache.fop.fo.FONode;
+import org.apache.fop.fo.FObj;
+import org.apache.fop.fo.PropertyList;
+import org.apache.fop.fo.StaticPropertyList;
+import org.apache.fop.fo.ValidationException;
+import org.apache.fop.fo.properties.SpaceProperty;
+
+/**
+ * Common change bar base class. Handles change bar properties and validates child nodes.
+ */
+public abstract class ChangeBar extends FObj {
+
+ /**
+ * Constructs a ChangeBar element with common parts for both begin and end change bars.
+ *
+ * @param parent The parent node
+ */
+ public ChangeBar(FONode parent) {
+ super(parent);
+ }
+
+ /**
+ * The change bar class (required).
+ */
+ protected String changeBarClass;
+
+ /**
+ * The change bar color.
+ */
+ protected Color color;
+
+ /**
+ * The change bar offset.
+ */
+ protected Length offset;
+
+ /**
+ * The change bar placement.
+ */
+ protected int placement = -1;
+
+ /**
+ * The change bar style.
+ */
+ protected int style = -1;
+
+ /**
+ * The change bar width.
+ */
+ protected Length width;
+
+ /**
+ * The actual line height.
+ */
+ protected SpaceProperty lineHeight;
+
+ /** {@inheritDoc} */
+ public void bind(PropertyList pList) throws FOPException {
+ super.bind(pList);
+
+ changeBarClass = pList.get(PR_CHANGE_BAR_CLASS).getString();
+ color = pList.get(PR_CHANGE_BAR_COLOR).getColor(getUserAgent());
+ offset = pList.get(PR_CHANGE_BAR_OFFSET).getLength();
+ placement = pList.get(PR_CHANGE_BAR_PLACEMENT).getEnum();
+ style = pList.get(PR_CHANGE_BAR_STYLE).getEnum();
+ width = pList.get(PR_CHANGE_BAR_WIDTH).getLength();
+ lineHeight = pList.get(PR_LINE_HEIGHT).getSpace();
+ }
+
+ /** {@inheritDoc} */
+ protected void validateChildNode(
+ Locator loc,
+ String namespaceURI,
+ String localName) throws ValidationException {
+ // no children allowed
+ invalidChildError(loc, namespaceURI, localName);
+ }
+
+ /** {@inheritDoc} */
+ public void processNode(String elementName, Locator locator,
+ Attributes attlist, PropertyList pList) throws FOPException {
+ super.processNode(elementName, locator, attlist, pList);
+
+ if (inMarker()) {
+ PropertyList newPList = new StaticPropertyList(this, null);
+ newPList.addAttributesToList(attlist);
+ bind(newPList);
+ }
+
+ if (changeBarClass == null || changeBarClass.isEmpty()) {
+ missingPropertyError("change-bar-class");
+ }
+
+ if (findAncestor(FO_FLOW) == -1
+ && findAncestor(FO_STATIC_CONTENT) == -1) {
+ getFOValidationEventProducer().changeBarWrongAncestor(this, getName(), locator);
+ }
+ }
+
+ /**
+ * Adds the current change bar to the active change bar list.
+ */
+ protected void push() {
+ getRoot().getLastPageSequence().pushChangeBar(this);
+ }
+
+ /**
+ * Removes the starting counterpart of the current change bar from the active change bar list.
+ */
+ protected void pop() {
+ getRoot().getLastPageSequence().popChangeBar(this);
+ }
+
+ /**
+ * Returns the starting counterpart of the current (ending) change bar.
+ *
+ * @return The starting counterpart of the current (ending) change bar
+ */
+ protected ChangeBar getChangeBarBegin() {
+ return getRoot().getLastPageSequence().getChangeBarBegin(this);
+ }
+
+ /**
+ * Returns the change bar class.
+ *
+ * @return The change bar class
+ */
+ public String getChangeBarClass() {
+ return changeBarClass;
+ }
+
+ /**
+ * Returns the change bar color.
+ *
+ * @return The change bar color
+ */
+ public Color getColor() {
+ return color;
+ }
+
+ /**
+ * Returns the change bar offset.
+ *
+ * @return The change bar offset
+ */
+ public Length getOffset() {
+ return offset;
+ }
+
+ /**
+ * Returns the change bar placement.
+ *
+ * @return The change bar placement
+ */
+ public int getPlacement() {
+ return placement;
+ }
+
+ /**
+ * Returns the change bar style.
+ *
+ * @return The change bar style
+ */
+ public int getStyle() {
+ return style;
+ }
+
+ /**
+ * Returns the change bar width.
+ *
+ * @return The change bar width
+ */
+ public Length getWidth() {
+ return width;
+ }
+
+ /**
+ * Returns the line height.
+ *
+ * @return The line height
+ */
+ public SpaceProperty getLineHeight() {
+ return lineHeight;
+ }
+
+}
Propchange: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/flow/ChangeBar.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/flow/ChangeBarBegin.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/flow/ChangeBarBegin.java?rev=1835125&view=auto
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/flow/ChangeBarBegin.java (added)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/flow/ChangeBarBegin.java Thu Jul 5 11:29:01 2018
@@ -0,0 +1,60 @@
+/*
+ * 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.xml.sax.Attributes;
+import org.xml.sax.Locator;
+
+import org.apache.fop.apps.FOPException;
+import org.apache.fop.fo.FONode;
+import org.apache.fop.fo.PropertyList;
+
+public class ChangeBarBegin extends ChangeBar {
+
+ /**
+ * Constructs a new ChangeBarBegin element.
+ *
+ * @param parent The parent node
+ */
+ public ChangeBarBegin(FONode parent) {
+ super(parent);
+ }
+
+ /** {@inheritDoc} */
+ public String getLocalName() {
+ return "change-bar-begin";
+ }
+
+ /**
+ * {@inheritDoc}
+ * @return {@link org.apache.fop.fo.Constants#FO_CHANGE_BAR_BEGIN}
+ */
+ public int getNameId() {
+ return FO_CHANGE_BAR_BEGIN;
+ }
+
+ /** {@inheritDoc} */
+ public void processNode(String elementName, Locator locator,
+ Attributes attlist, PropertyList pList) throws FOPException {
+ super.processNode(elementName, locator, attlist, pList);
+
+ push();
+ }
+}
Propchange: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/flow/ChangeBarBegin.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/flow/ChangeBarEnd.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/flow/ChangeBarEnd.java?rev=1835125&view=auto
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/flow/ChangeBarEnd.java (added)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/flow/ChangeBarEnd.java Thu Jul 5 11:29:01 2018
@@ -0,0 +1,67 @@
+/*
+ * 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.xml.sax.Attributes;
+import org.xml.sax.Locator;
+
+import org.apache.fop.apps.FOPException;
+import org.apache.fop.fo.FONode;
+import org.apache.fop.fo.PropertyList;
+
+public class ChangeBarEnd extends ChangeBar {
+
+ /**
+ * Constructs a new ChangeBarEnd element.
+ *
+ * @param parent The parent node
+ */
+ public ChangeBarEnd(FONode parent) {
+ super(parent);
+ }
+
+ /** {@inheritDoc} */
+ public String getLocalName() {
+ return "change-bar-end";
+ }
+
+ /**
+ * {@inheritDoc}
+ * @return {@link org.apache.fop.fo.Constants#FO_CHANGE_BAR_END}
+ */
+ public int getNameId() {
+ return FO_CHANGE_BAR_END;
+ }
+
+ /** {@inheritDoc} */
+ public void processNode(String elementName, Locator locator,
+ Attributes attlist, PropertyList pList) throws FOPException {
+ super.processNode(elementName, locator, attlist, pList);
+
+ // check if we have an element on the stack at all
+ ChangeBar changeBarStart = getChangeBarBegin();
+
+ if (changeBarStart == null) {
+ getFOValidationEventProducer().changeBarNoBegin(this, getName(), locator);
+ } else {
+ pop();
+ }
+ }
+}
Propchange: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/flow/ChangeBarEnd.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/flow/table/TableRow.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/flow/table/TableRow.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/flow/table/TableRow.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/flow/table/TableRow.java Thu Jul 5 11:29:01 2018
@@ -90,9 +90,11 @@ public class TableRow extends TableCellC
/** {@inheritDoc} */
protected void addChildNode(FONode child) throws FOPException {
if (!inMarker()) {
- TableCell cell = (TableCell) child;
- TablePart part = (TablePart) getParent();
- addTableCellChild(cell, part.isFirst(this));
+ if (child instanceof TableCell) {
+ TableCell cell = (TableCell) child;
+ TablePart part = (TablePart) getParent();
+ addTableCellChild(cell, part.isFirst(this));
+ }
}
super.addChildNode(child);
}
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/pagination/PageSequence.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/pagination/PageSequence.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/pagination/PageSequence.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/pagination/PageSequence.java Thu Jul 5 11:29:01 2018
@@ -19,6 +19,8 @@
package org.apache.fop.fo.pagination;
+import java.util.LinkedList;
+import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Stack;
@@ -31,6 +33,7 @@ import org.apache.fop.datatypes.Numeric;
import org.apache.fop.fo.FONode;
import org.apache.fop.fo.PropertyList;
import org.apache.fop.fo.ValidationException;
+import org.apache.fop.fo.flow.ChangeBar;
import org.apache.fop.fo.properties.CommonHyphenation;
import org.apache.fop.traits.Direction;
import org.apache.fop.traits.WritingMode;
@@ -78,6 +81,11 @@ public class PageSequence extends Abstra
private Flow mainFlow;
/**
+ * Active change bars
+ */
+ private final List<ChangeBar> changeBarList = new LinkedList<ChangeBar>();
+
+ /**
* Create a PageSequence instance that is a child of the
* given {@link FONode}.
*
@@ -118,6 +126,7 @@ public class PageSequence extends Abstra
masterReference, getLocator());
}
}
+ getRoot().addPageSequence(this);
getFOEventHandler().startPageSequence(this);
}
@@ -464,4 +473,73 @@ public class PageSequence extends Abstra
return pageSequenceMaster.getLastSimplePageMaster(isOddPage, isFirstPage, isBlank, getMainFlow()
.getFlowName());
}
+
+ /**
+ * Adds the specified change bar to the active change bar list.
+ *
+ * @param changeBarBegin The starting change bar element
+ */
+ public void pushChangeBar(ChangeBar changeBarBegin) {
+ changeBarList.add(changeBarBegin);
+ }
+
+ /**
+ * Removes the couple of the specified change bar from the active change bar list.
+ *
+ * @param changeBarEnd The ending change bar element
+ */
+ public void popChangeBar(ChangeBar changeBarEnd) {
+ ChangeBar changeBarBegin = getChangeBarBegin(changeBarEnd);
+ if (changeBarBegin != null) {
+ changeBarList.remove(changeBarBegin);
+ }
+ }
+
+ /**
+ * Returns the starting counterpart of the specified ending change bar.
+ *
+ * @param changeBarEnd The ending change bar element
+ * @return The starting counterpart of the specified ending change bar
+ */
+ public ChangeBar getChangeBarBegin(ChangeBar changeBarEnd) {
+ if (changeBarList.isEmpty()) {
+ return null;
+ } else {
+ String changeBarClass = changeBarEnd.getChangeBarClass();
+ for (int i = changeBarList.size() - 1; i >= 0; i--) {
+ ChangeBar changeBar = changeBarList.get(i);
+ if (changeBar.getChangeBarClass().equals(changeBarClass)) {
+ return changeBar;
+ }
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Tests if there are any active change bars.
+ *
+ * @return A boolean value true if there are any active change bars
+ */
+ public boolean hasChangeBars() {
+ return !changeBarList.isEmpty();
+ }
+
+ /**
+ * Returns the list of active change bars.
+ *
+ * @return The list of active change bars
+ */
+ public List<ChangeBar> getChangeBarList() {
+ return changeBarList;
+ }
+
+ /**
+ * Returns the copy of active change bars list.
+ *
+ * @return The list containing a copy of the active change bars
+ */
+ public List<ChangeBar> getClonedChangeBarList() {
+ return new LinkedList<ChangeBar>(changeBarList);
+ }
}
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/pagination/Root.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/pagination/Root.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/pagination/Root.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/fo/pagination/Root.java Thu Jul 5 11:29:01 2018
@@ -282,6 +282,28 @@ public class Root extends FObj implement
}
/**
+ * Adds the specified page sequence.
+ *
+ * @param pageSequence The page sequence to add
+ */
+ public void addPageSequence(PageSequence pageSequence) {
+ pageSequences.add(pageSequence);
+ }
+
+ /**
+ * Returns the last page sequence (current while parsing).
+ *
+ * @return The last page sequence or null
+ */
+ public PageSequence getLastPageSequence() {
+ if (getPageSequenceCount() > 0) {
+ return pageSequences.get(getPageSequenceCount() - 1);
+ } else {
+ return null;
+ }
+ }
+
+ /**
* Returns the associated LayoutMasterSet.
* @return the LayoutMasterSet instance
*/
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/AbstractBaseLayoutManager.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/AbstractBaseLayoutManager.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/AbstractBaseLayoutManager.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/AbstractBaseLayoutManager.java Thu Jul 5 11:29:01 2018
@@ -28,6 +28,7 @@ import org.apache.commons.logging.LogFac
import org.apache.fop.datatypes.LengthBase;
import org.apache.fop.datatypes.PercentBaseContext;
import org.apache.fop.fo.FObj;
+import org.apache.fop.fo.flow.ChangeBar;
/**
* The base class for nearly all LayoutManagers.
@@ -257,6 +258,19 @@ public abstract class AbstractBaseLayout
return fobj;
}
+ /**
+ * Returns the active change bar list.
+ *
+ * @return The active change bar list
+ */
+ public List<ChangeBar> getChangeBarList() {
+ if (fobj == null) {
+ return null;
+ } else {
+ return fobj.getChangeBarList();
+ }
+ }
+
/** {@inheritDoc} */
public void reset() {
throw new UnsupportedOperationException("Not implemented");
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/BlockContainerLayoutManager.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/BlockContainerLayoutManager.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/BlockContainerLayoutManager.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/BlockContainerLayoutManager.java Thu Jul 5 11:29:01 2018
@@ -854,6 +854,7 @@ public class BlockContainerLayoutManager
int level = getBlockContainerFO().getBidiLevel();
viewportBlockArea = new BlockViewport(allowBPDUpdate);
+ viewportBlockArea.setChangeBarList(getChangeBarList());
viewportBlockArea.addTrait(Trait.IS_VIEWPORT_AREA, Boolean.TRUE);
if (level >= 0) {
viewportBlockArea.setBidiLevel(level);
@@ -892,6 +893,7 @@ public class BlockContainerLayoutManager
}
referenceArea = new Block();
+ referenceArea.setChangeBarList(getChangeBarList());
referenceArea.addTrait(Trait.IS_REFERENCE_AREA, Boolean.TRUE);
if (level >= 0) {
referenceArea.setBidiLevel(level);
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/BlockLayoutManager.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/BlockLayoutManager.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/BlockLayoutManager.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/BlockLayoutManager.java Thu Jul 5 11:29:01 2018
@@ -357,6 +357,7 @@ public class BlockLayoutManager extends
public Area getParentArea(Area childArea) {
if (curBlockArea == null) {
curBlockArea = new Block();
+ curBlockArea.setChangeBarList(getChangeBarList());
curBlockArea.setIPD(super.getContentAreaIPD());
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/BlockStackingLayoutManager.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/BlockStackingLayoutManager.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/BlockStackingLayoutManager.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/BlockStackingLayoutManager.java Thu Jul 5 11:29:01 2018
@@ -124,6 +124,7 @@ public abstract class BlockStackingLayou
int sp = TraitSetter.getEffectiveSpace(adjust, minoptmax);
if (sp != 0) {
Block spacer = new Block();
+ spacer.setChangeBarList(getChangeBarList());
spacer.setBPD(sp);
parentLayoutManager.addChildArea(spacer);
}
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/ExternalDocumentLayoutManager.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/ExternalDocumentLayoutManager.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/ExternalDocumentLayoutManager.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/ExternalDocumentLayoutManager.java Thu Jul 5 11:29:01 2018
@@ -178,6 +178,7 @@ public class ExternalDocumentLayoutManag
Dimension imageSize = this.imageLayout.getViewportSize();
Block blockArea = new Block();
+ blockArea.setChangeBarList(getChangeBarList());
blockArea.setIPD(imageSize.width);
LineArea lineArea = new LineArea();
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/LayoutManagerMapping.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/LayoutManagerMapping.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/LayoutManagerMapping.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/LayoutManagerMapping.java Thu Jul 5 11:29:01 2018
@@ -39,6 +39,8 @@ import org.apache.fop.fo.flow.BasicLink;
import org.apache.fop.fo.flow.BidiOverride;
import org.apache.fop.fo.flow.Block;
import org.apache.fop.fo.flow.BlockContainer;
+import org.apache.fop.fo.flow.ChangeBarBegin;
+import org.apache.fop.fo.flow.ChangeBarEnd;
import org.apache.fop.fo.flow.Character;
import org.apache.fop.fo.flow.ExternalGraphic;
import org.apache.fop.fo.flow.Float;
@@ -146,6 +148,8 @@ public class LayoutManagerMapping implem
registerMaker(TableHeader.class, new Maker());
registerMaker(Wrapper.class, new WrapperLayoutManagerMaker());
registerMaker(Title.class, new InlineLayoutManagerMaker());
+ registerMaker(ChangeBarBegin.class, new Maker());
+ registerMaker(ChangeBarEnd.class, new Maker());
registerMaker(MultiCase.class, new MultiCaseLayoutManagerMaker());
registerMaker(MultiSwitch.class, new MultiSwitchLayoutManagerMaker());
registerMaker(Float.class, new FloatLayoutManagerMaker());
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/AbstractPageNumberCitationLayoutManager.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/AbstractPageNumberCitationLayoutManager.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/AbstractPageNumberCitationLayoutManager.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/AbstractPageNumberCitationLayoutManager.java Thu Jul 5 11:29:01 2018
@@ -133,6 +133,7 @@ public abstract class AbstractPageNumber
getPSLM().addUnresolvedArea(citation.getRefId(), unresolved);
text = unresolved;
}
+ text.setChangeBarList(getChangeBarList());
setTraits(text);
return text;
}
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/CharacterLayoutManager.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/CharacterLayoutManager.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/CharacterLayoutManager.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/CharacterLayoutManager.java Thu Jul 5 11:29:01 2018
@@ -75,6 +75,7 @@ public class CharacterLayoutManager exte
private TextArea createCharacterArea() {
Character fobj = (Character) this.fobj;
TextArea text = new TextArea();
+ text.setChangeBarList(getChangeBarList());
char ch = fobj.getCharacter();
int ipd = font.getCharWidth(ch);
int blockProgressionOffset = 0;
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/ContentLayoutManager.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/ContentLayoutManager.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/ContentLayoutManager.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/ContentLayoutManager.java Thu Jul 5 11:29:01 2018
@@ -84,6 +84,7 @@ public class ContentLayoutManager extend
// get breaks then add areas to title
this.parentLM = pslm;
holder = new LineArea();
+ holder.setChangeBarList(getChangeBarList());
// setUserAgent(foTitle.getUserAgent());
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/ExternalGraphicLayoutManager.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/ExternalGraphicLayoutManager.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/ExternalGraphicLayoutManager.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/ExternalGraphicLayoutManager.java Thu Jul 5 11:29:01 2018
@@ -42,7 +42,9 @@ public class ExternalGraphicLayoutManage
/** {@inheritDoc} */
protected Area getChildArea() {
- return new Image(((ExternalGraphic) fobj).getSrc());
+ Image im = new Image(((ExternalGraphic) fobj).getSrc());
+ im.setChangeBarList(getChangeBarList());
+ return im;
}
}
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/InlineLayoutManager.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/InlineLayoutManager.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/InlineLayoutManager.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/InlineLayoutManager.java Thu Jul 5 11:29:01 2018
@@ -206,9 +206,11 @@ public class InlineLayoutManager extends
InlineArea area;
if (isInline) {
area = createInlineParent();
+ area.setChangeBarList(getChangeBarList());
area.setBlockProgressionOffset(0);
} else {
area = new InlineBlockParent();
+ area.setChangeBarList(getChangeBarList());
}
if (fobj instanceof Inline || fobj instanceof BasicLink) {
TraitSetter.setProducerID(area, fobj.getId());
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/InlineStackingLayoutManager.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/InlineStackingLayoutManager.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/InlineStackingLayoutManager.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/InlineStackingLayoutManager.java Thu Jul 5 11:29:01 2018
@@ -181,6 +181,7 @@ public abstract class InlineStackingLayo
if (iAdjust != 0) {
//getLogger().debug("Add leading space: " + iAdjust);
Space ls = new Space();
+ ls.setChangeBarList(getChangeBarList());
ls.setIPD(iAdjust);
int level = parentArea.getBidiLevel();
if (level >= 0) {
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/InstreamForeignObjectLM.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/InstreamForeignObjectLM.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/InstreamForeignObjectLM.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/InstreamForeignObjectLM.java Thu Jul 5 11:29:01 2018
@@ -46,7 +46,9 @@ public class InstreamForeignObjectLM ext
org.w3c.dom.Document doc = child.getDOMDocument();
String ns = child.getNamespaceURI();
- return new ForeignObject(doc, ns);
+ ForeignObject obj = new ForeignObject(doc, ns);
+ obj.setChangeBarList(getChangeBarList());
+ return obj;
}
}
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/LeaderLayoutManager.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/LeaderLayoutManager.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/LeaderLayoutManager.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/LeaderLayoutManager.java Thu Jul 5 11:29:01 2018
@@ -217,6 +217,9 @@ public class LeaderLayoutManager extends
leaderArea.setBidiLevel(fobj.getBidiLevelRecursive());
}
}
+
+ leaderArea.setChangeBarList(getChangeBarList());
+
TraitSetter.setProducerID(leaderArea, fobj.getId());
return leaderArea;
}
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/LineLayoutManager.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/LineLayoutManager.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/LineLayoutManager.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/LineLayoutManager.java Thu Jul 5 11:29:01 2018
@@ -1504,6 +1504,8 @@ public class LineLayoutManager extends I
LineArea lineArea = new LineArea(
(lbp.getLeafPos() < seq.size() - 1 ? textAlignment : textAlignmentLast),
lbp.difference, lbp.availableStretch, lbp.availableShrink);
+ lineArea.setChangeBarList(getChangeBarList());
+
if (lbp.startIndent != 0) {
lineArea.addTrait(Trait.START_INDENT, lbp.startIndent);
}
@@ -1619,6 +1621,7 @@ public class LineLayoutManager extends I
}
LineArea lineArea = new LineArea();
+ lineArea.setChangeBarList(getChangeBarList());
setCurrentArea(lineArea);
LayoutContext lc = LayoutContext.newInstance();
lc.setAlignmentContext(alignmentContext);
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/TextLayoutManager.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/TextLayoutManager.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/TextLayoutManager.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/TextLayoutManager.java Thu Jul 5 11:29:01 2018
@@ -32,6 +32,7 @@ import org.apache.fop.area.Trait;
import org.apache.fop.area.inline.TextArea;
import org.apache.fop.fo.Constants;
import org.apache.fop.fo.FOText;
+import org.apache.fop.fo.flow.ChangeBar;
import org.apache.fop.fonts.Font;
import org.apache.fop.fonts.FontSelector;
import org.apache.fop.fonts.GlyphMapping;
@@ -312,6 +313,7 @@ public class TextLayoutManager extends L
TextArea textArea = new TextAreaBuilder(realWidth, totalAdjust, context, firstMappingIndex,
lastMappingIndex, context.isLastArea(), mapping.font).build();
+ textArea.setChangeBarList(getChangeBarList());
// wordSpaceDim is computed in relation to wordSpaceIPD.opt
// but the renderer needs to know the adjustment in relation
@@ -411,6 +413,7 @@ public class TextLayoutManager extends L
textArea = new TextArea(width.getStretch(), width.getShrink(),
adjust);
}
+ textArea.setChangeBarList(getChangeBarList());
}
private void setInlineProgressionDimension() {
@@ -1457,6 +1460,15 @@ public class TextLayoutManager extends L
}
+ @Override
+ public List<ChangeBar> getChangeBarList() {
+ if (foText == null) {
+ return null;
+ } else {
+ return foText.getChangeBarList();
+ }
+ }
+
/** {@inheritDoc} */
public String toString() {
return super.toString() + "{"
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/WrapperLayoutManager.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/WrapperLayoutManager.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/WrapperLayoutManager.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/WrapperLayoutManager.java Thu Jul 5 11:29:01 2018
@@ -68,10 +68,12 @@ public class WrapperLayoutManager extend
if (parentLayoutManager instanceof BlockStackingLayoutManager
&& !(parentLayoutManager instanceof BlockLayoutManager)) {
Block helperBlock = new Block();
+ helperBlock.setChangeBarList(getChangeBarList());
TraitSetter.setProducerID(helperBlock, fobj.getId());
parentLayoutManager.addChildArea(helperBlock);
} else {
InlineArea area = getEffectiveArea(context);
+ area.setChangeBarList(getChangeBarList());
parentLayoutManager.addChildArea(area);
}
}
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/list/ListBlockLayoutManager.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/list/ListBlockLayoutManager.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/list/ListBlockLayoutManager.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/list/ListBlockLayoutManager.java Thu Jul 5 11:29:01 2018
@@ -216,6 +216,7 @@ public class ListBlockLayoutManager exte
public Area getParentArea(Area childArea) {
if (curBlockArea == null) {
curBlockArea = new Block();
+ curBlockArea.setChangeBarList(getChangeBarList());
// Set up dimensions
// Must get dimensions from parent area
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/list/ListItemContentLayoutManager.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/list/ListItemContentLayoutManager.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/list/ListItemContentLayoutManager.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/list/ListItemContentLayoutManager.java Thu Jul 5 11:29:01 2018
@@ -176,6 +176,7 @@ public class ListItemContentLayoutManage
public Area getParentArea(Area childArea) {
if (curBlockArea == null) {
curBlockArea = new Block();
+ curBlockArea.setChangeBarList(getChangeBarList());
curBlockArea.setPositioning(Block.ABSOLUTE);
// set position
curBlockArea.setXOffset(xOffset);
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/list/ListItemLayoutManager.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/list/ListItemLayoutManager.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/list/ListItemLayoutManager.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/list/ListItemLayoutManager.java Thu Jul 5 11:29:01 2018
@@ -739,6 +739,7 @@ public class ListItemLayoutManager exten
public Area getParentArea(Area childArea) {
if (curBlockArea == null) {
curBlockArea = new Block();
+ curBlockArea.setChangeBarList(getChangeBarList());
// Set up dimensions
/*Area parentArea =*/ parentLayoutManager.getParentArea(curBlockArea);
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/table/RowPainter.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/table/RowPainter.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/table/RowPainter.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/table/RowPainter.java Thu Jul 5 11:29:01 2018
@@ -468,6 +468,7 @@ class RowPainter {
//generate the block area
Block block = new Block();
+ block.setChangeBarList(tclm.getTableLM().getFObj().getChangeBarList());
block.setPositioning(Block.ABSOLUTE);
block.addTrait(Trait.IS_REFERENCE_AREA, Boolean.TRUE);
block.setIPD(ipd);
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/table/TableAndCaptionLayoutManager.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/table/TableAndCaptionLayoutManager.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/table/TableAndCaptionLayoutManager.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/table/TableAndCaptionLayoutManager.java Thu Jul 5 11:29:01 2018
@@ -179,6 +179,8 @@ public class TableAndCaptionLayoutManage
public Area getParentArea(Area childArea) {
if (curBlockArea == null) {
curBlockArea = new Block();
+ curBlockArea.setChangeBarList(getChangeBarList());
+
// Set up dimensions
// Must get dimensions from parent area
Area parentArea = parentLayoutManager.getParentArea(curBlockArea);
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/table/TableCaptionLayoutManager.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/table/TableCaptionLayoutManager.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/table/TableCaptionLayoutManager.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/table/TableCaptionLayoutManager.java Thu Jul 5 11:29:01 2018
@@ -175,6 +175,8 @@ public class TableCaptionLayoutManager e
public Area getParentArea(Area childArea) {
if (curBlockArea == null) {
curBlockArea = new Block();
+ curBlockArea.setChangeBarList(getChangeBarList());
+
// Set up dimensions
// Must get dimensions from parent area
Area parentArea = parentLayoutManager.getParentArea(curBlockArea);
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/table/TableCellLayoutManager.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/table/TableCellLayoutManager.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/table/TableCellLayoutManager.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/table/TableCellLayoutManager.java Thu Jul 5 11:29:01 2018
@@ -529,11 +529,13 @@ public class TableCellLayoutManager exte
if (usedBPD < cellBPD) {
if (getTableCell().getDisplayAlign() == EN_CENTER) {
Block space = new Block();
+ space.setChangeBarList(getChangeBarList());
space.setBPD((cellBPD - usedBPD) / 2);
space.setBidiLevel(getTableCell().getBidiLevelRecursive());
curBlockArea.addBlock(space);
} else if (getTableCell().getDisplayAlign() == EN_AFTER) {
Block space = new Block();
+ space.setChangeBarList(getChangeBarList());
space.setBPD(cellBPD - usedBPD);
space.setBidiLevel(getTableCell().getBidiLevelRecursive());
curBlockArea.addBlock(space);
@@ -620,6 +622,7 @@ public class TableCellLayoutManager exte
boolean outer, int level) {
if (blocks[i][j] == null) {
blocks[i][j] = new Block();
+ blocks[i][j].setChangeBarList(getChangeBarList());
blocks[i][j].addTrait(Trait.IS_REFERENCE_AREA, Boolean.TRUE);
blocks[i][j].setPositioning(Block.ABSOLUTE);
blocks[i][j].setBidiLevel(level);
@@ -651,6 +654,7 @@ public class TableCellLayoutManager exte
int paddingEnd = padding.getPaddingEnd(false, this);
Block block = new Block();
+ block.setChangeBarList(getChangeBarList());
TraitSetter.setProducerID(block, getTable().getId());
block.setPositioning(Block.ABSOLUTE);
block.setIPD(cellIPD + paddingStart + paddingEnd);
@@ -677,6 +681,7 @@ public class TableCellLayoutManager exte
public Area getParentArea(Area childArea) {
if (curBlockArea == null) {
curBlockArea = new Block();
+ curBlockArea.setChangeBarList(getChangeBarList());
curBlockArea.addTrait(Trait.IS_REFERENCE_AREA, Boolean.TRUE);
TraitSetter.setProducerID(curBlockArea, getTableCell().getId());
curBlockArea.setPositioning(Block.ABSOLUTE);
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/table/TableLayoutManager.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/table/TableLayoutManager.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/table/TableLayoutManager.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/layoutmgr/table/TableLayoutManager.java Thu Jul 5 11:29:01 2018
@@ -438,6 +438,8 @@ public class TableLayoutManager extends
public Area getParentArea(Area childArea) {
if (curBlockArea == null) {
curBlockArea = new Block();
+ curBlockArea.setChangeBarList(getChangeBarList());
+
// Set up dimensions
// Must get dimensions from parent area
/*Area parentArea =*/ parentLayoutManager.getParentArea(curBlockArea);
Modified: xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/render/AbstractPathOrientedRenderer.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/render/AbstractPathOrientedRenderer.java?rev=1835125&r1=1835124&r2=1835125&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/render/AbstractPathOrientedRenderer.java (original)
+++ xmlgraphics/fop/branches/Temp_ChangeBars2/fop-core/src/main/java/org/apache/fop/render/AbstractPathOrientedRenderer.java Thu Jul 5 11:29:01 2018
@@ -736,6 +736,7 @@ public abstract class AbstractPathOrient
// save position and offset
int saveIP = currentIPPosition;
int saveBP = currentBPPosition;
+ int saveBO = getBeginOffset();
//Establish a new coordinate system
AffineTransform at = new AffineTransform();
@@ -743,6 +744,8 @@ public abstract class AbstractPathOrient
at.translate(block.getXOffset(), block.getYOffset());
at.translate(0, block.getSpaceBefore());
+ setBeginOffset(saveBO - block.getXOffset());
+
if (!at.isIdentity()) {
establishTransformationMatrix(at);
}
@@ -760,6 +763,8 @@ public abstract class AbstractPathOrient
restoreGraphicsState();
}
+ setBeginOffset(saveBO);
+
// stacked and relative blocks effect stacking
currentIPPosition = saveIP;
currentBPPosition = saveBP;
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org