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 vh...@apache.org on 2009/11/24 15:48:53 UTC

svn commit: r883709 - in /xmlgraphics/fop/trunk: src/java/org/apache/fop/layoutmgr/AbstractLayoutManager.java test/layoutengine/standard-testcases/flow_changing-ipd_break-before.xml

Author: vhennebert
Date: Tue Nov 24 14:48:52 2009
New Revision: 883709

URL: http://svn.apache.org/viewvc?rev=883709&view=rev
Log:
Bugfix in Changing IPD: reset only the children LMs that have been created so far. Layout managers following a forced break have not even been created yet.

Added:
    xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/flow_changing-ipd_break-before.xml   (with props)
Modified:
    xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/AbstractLayoutManager.java

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/AbstractLayoutManager.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/AbstractLayoutManager.java?rev=883709&r1=883708&r2=883709&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/AbstractLayoutManager.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/AbstractLayoutManager.java Tue Nov 24 14:48:52 2009
@@ -20,6 +20,7 @@
 package org.apache.fop.layoutmgr;
 
 import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.List;
 import java.util.ListIterator;
 import java.util.Map;
@@ -463,11 +464,8 @@
         isFinished = false;
         curChildLM = null;
         childLMiter = new LMiter(this);
-        /*
-         * Reset the children LM. Can't rely on childLMiter since it may have
-         * been set to null in checkEndOfLayout.
-         */
-        for (LMiter iter = new LMiter(this); iter.hasNext();) {
+        /* Reset all the children LM that have been created so far. */
+        for (Iterator iter = getChildLMs().iterator(); iter.hasNext();) {
             ((LayoutManager) iter.next()).reset();
         }
         if (fobj != null) {

Added: xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/flow_changing-ipd_break-before.xml
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/flow_changing-ipd_break-before.xml?rev=883709&view=auto
==============================================================================
--- xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/flow_changing-ipd_break-before.xml (added)
+++ xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/flow_changing-ipd_break-before.xml Tue Nov 24 14:48:52 2009
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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$ -->
+<testcase>
+  <info>
+    <p>
+      This test checks that a forced before break following an IPD change is correctly handled.
+    </p>
+  </info>
+  <fo>
+    <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
+      <fo:layout-master-set>
+        <fo:simple-page-master master-name="narrow"
+          page-height="220pt" page-width="320pt" margin="10pt">
+          <fo:region-body background-color="#F0F0F0"/>
+        </fo:simple-page-master>
+        <fo:simple-page-master master-name="wide"
+          page-height="220pt" page-width="520pt" margin="10pt">
+          <fo:region-body background-color="#F0F0F0"/>
+        </fo:simple-page-master>
+        <fo:page-sequence-master master-name="pages">
+          <fo:single-page-master-reference master-reference="narrow"/>
+          <fo:repeatable-page-master-reference master-reference="wide"/>
+        </fo:page-sequence-master>
+      </fo:layout-master-set>
+      <fo:page-sequence master-reference="pages">
+        <fo:flow flow-name="xsl-region-body" language="en" hyphenate="true">
+          <fo:block id="surrounding1" text-align="justify"
+            space-before.minimum="10pt"
+            space-before.optimum="12pt"
+            space-before.maximum="50pt">
+            <fo:block space-before="inherit" id="b1">In olden times when wishing still helped one, 
+              there lived a king whose daughters were all beautiful, but the youngest was so 
+              beautiful that the sun itself, which has seen so much, was astonished whenever it 
+              shone in her face.</fo:block>
+            <fo:block space-before="inherit" id="b2">In olden times when wishing still helped one, 
+              there lived a king whose daughters were all beautiful, but the youngest was so 
+              beautiful that the sun itself, which has seen so much, was astonished whenever it 
+              shone in her face.</fo:block>
+            <fo:block space-before="inherit" id="b3">In olden times when wishing still helped one, 
+              there lived a king whose daughters were all beautiful, but the youngest was so 
+              beautiful that the sun itself, which has seen so much, was astonished whenever it 
+              shone in her face. In olden times when wishing still helped one, there lived a king 
+              whose daughters were all beautiful, but the youngest was so beautiful that the sun 
+              itself, which has seen so much, was astonished whenever it shone in her 
+              face.</fo:block>
+            <fo:block space-before="inherit" id="b4">In olden times when wishing still helped one, 
+              there lived a king whose daughters were all beautiful, but the youngest was so 
+              beautiful that the sun itself, which has seen so much, was astonished whenever it 
+              shone in her face.</fo:block>
+          </fo:block>
+          <fo:block id="surrounding2" text-align="justify" break-before="page"
+            space-before.minimum="10pt"
+            space-before.optimum="12pt"
+            space-before.maximum="50pt">
+            <fo:block space-before="inherit" id="b5">In olden times when wishing still helped one, 
+              there lived a king whose daughters were all beautiful, but the youngest was so 
+              beautiful that the sun itself, which has seen so much, was astonished whenever it 
+              shone in her face.</fo:block>
+            <fo:block space-before="inherit" id="b6">In olden times when wishing still helped one, 
+              there lived a king whose daughters were all beautiful, but the youngest was so 
+              beautiful that the sun itself, which has seen so much, was astonished whenever it 
+              shone in her face.</fo:block>
+          </fo:block>
+        </fo:flow>
+      </fo:page-sequence>
+    </fo:root>
+  </fo>
+  <checks>
+    <eval expected="b3"     xpath="//pageViewport[1]//flow/block/block[3]/@prod-id"/>
+    <eval expected="In"     xpath="//pageViewport[1]//flow/block/block[3]/lineArea[4]/text/word[position()=last()]"/>
+    <eval expected="500000" xpath="//pageViewport[2]//flow/block/@ipd"/>
+    <eval expected="500000" xpath="//pageViewport[2]//flow/block/block[1]/@ipd"/>
+    <eval expected="500000" xpath="//pageViewport[2]//flow/block/block[1]/lineArea[1]/@ipd"/>
+    <eval expected="olden"  xpath="//pageViewport[2]//flow/block/block[1]/lineArea[1]/text/word[1]"/>
+    <eval expected="b5"     xpath="//pageViewport[3]//flow/block/block[1]/@prod-id"/>
+    <eval expected="500000" xpath="//pageViewport[3]//flow/block/block[1]/@ipd"/>
+    <eval expected="500000" xpath="//pageViewport[3]//flow/block/block[1]/lineArea[1]/@ipd"/>
+    <eval expected="In"     xpath="//pageViewport[3]//flow/block/block[1]/lineArea[1]/text/word[1]"/>
+  </checks>
+</testcase>

Propchange: xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/flow_changing-ipd_break-before.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/flow_changing-ipd_break-before.xml
------------------------------------------------------------------------------
    svn:keywords = Revision Id



---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org