[prev in list] [next in list] [prev in thread] [next in thread] 

List:       fop-cvs
Subject:    svn commit: r1843563 - in /xmlgraphics/fop/trunk: fop-core/src/main/java/org/apache/fop/layoutmgr/Fl
From:       ssteiner () apache ! org
Date:       2018-10-11 15:28:23
Message-ID: 20181011152824.3C0163A0F57 () svn01-us-west ! apache ! org
[Download RAW message or body]

Author: ssteiner
Date: Thu Oct 11 15:28:23 2018
New Revision: 1843563

URL: http://svn.apache.org/viewvc?rev=1843563&view=rev
Log:
FOP-2822: Use correct ipd for table inside float

Added:
    xmlgraphics/fop/trunk/fop/test/layoutengine/standard-testcases/float_8.xml   \
(with props) Modified:
    xmlgraphics/fop/trunk/fop-core/src/main/java/org/apache/fop/layoutmgr/FloatContentLayoutManager.java


Modified: xmlgraphics/fop/trunk/fop-core/src/main/java/org/apache/fop/layoutmgr/FloatContentLayoutManager.java
                
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/fop-core/src/main/java/org/apa \
che/fop/layoutmgr/FloatContentLayoutManager.java?rev=1843563&r1=1843562&r2=1843563&view=diff
 ==============================================================================
--- xmlgraphics/fop/trunk/fop-core/src/main/java/org/apache/fop/layoutmgr/FloatContentLayoutManager.java \
                (original)
+++ xmlgraphics/fop/trunk/fop-core/src/main/java/org/apache/fop/layoutmgr/FloatContentLayoutManager.java \
Thu Oct 11 15:28:23 2018 @@ -31,6 +31,7 @@ import org.apache.fop.fo.flow.Float;
 import org.apache.fop.fo.properties.CommonBorderPaddingBackground;
 import org.apache.fop.layoutmgr.inline.FloatLayoutManager;
 import org.apache.fop.layoutmgr.inline.KnuthInlineBox;
+import org.apache.fop.layoutmgr.table.TableLayoutManager;
 
 public class FloatContentLayoutManager extends \
SpacedBorderedPaddedBlockLayoutManager {  
@@ -75,7 +76,7 @@ public class FloatContentLayoutManager e
     public void addChildArea(Area childArea) {
         floatContentArea.addChildArea(childArea);
         floatContentArea.setBPD(childArea.getAllocBPD());
-        int effectiveContentIPD = childArea.getEffectiveAllocIPD();
+        int effectiveContentIPD = getContentAreaIPD(childLMs, childArea);
         int contentIPD = childArea.getIPD();
         int xOffset = childArea.getBorderAndPaddingWidthStart();
         floatContentArea.setIPD(effectiveContentIPD);
@@ -99,6 +100,26 @@ public class FloatContentLayoutManager e
         }
     }
 
+    private int getContentAreaIPD(List<LayoutManager> childLMs, Area childArea) {
+        int ipd = getContentAreaIPD(childLMs);
+        if (ipd == 0) {
+            return childArea.getEffectiveAllocIPD();
+        }
+        return ipd;
+    }
+
+    private int getContentAreaIPD(List<LayoutManager> childLMs) {
+        int ipd = 0;
+        for (LayoutManager childLM : childLMs) {
+            if (childLM instanceof TableLayoutManager) {
+                ipd += childLM.getContentAreaIPD();
+            } else {
+                ipd += getContentAreaIPD(childLM.getChildLMs());
+            }
+        }
+        return ipd;
+    }
+
     /**
      * {Add info}
      *

Added: xmlgraphics/fop/trunk/fop/test/layoutengine/standard-testcases/float_8.xml
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/fop/test/layoutengine/standard-testcases/float_8.xml?rev=1843563&view=auto
 ==============================================================================
--- xmlgraphics/fop/trunk/fop/test/layoutengine/standard-testcases/float_8.xml \
                (added)
+++ xmlgraphics/fop/trunk/fop/test/layoutengine/standard-testcases/float_8.xml Thu \
Oct 11 15:28:23 2018 @@ -0,0 +1,67 @@
+<?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 floats.
+    </p>
+  </info>
+  <fo>
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" \
xmlns:fox="http://xmlgraphics.apache.org/fop/extensions"> +  <fo:layout-master-set>
+    <fo:simple-page-master master-name="Page" page-height="11in" page-width="8.5in" \
margin="1in"> +      <fo:region-body region-name="Body"/>      
+    </fo:simple-page-master>
+    <fo:page-sequence-master master-name="PageSequence">
+      <fo:repeatable-page-master-reference master-reference="Page"/>
+    </fo:page-sequence-master>
+  </fo:layout-master-set>
+  <fo:page-sequence format="1" force-page-count="auto" initial-page-number="auto" \
master-reference="PageSequence" id="TH_LastPage"> +    <fo:flow flow-name="Body">
+      <fo:block>
+        <fo:float float="right">
+          <fo:block id="infloat">
+            <fo:table table-layout="fixed" width="3.25in" id="table">
+              <fo:table-column column-width="1in" column-number="1"/>
+              <fo:table-column column-width="2.25in" column-number="2"/>
+              <fo:table-body>
+                <fo:table-row>
+                  <fo:table-cell number-columns-spanned="2" border-style="solid">    \
 +                      <fo:block>YOUR POLICY INFORMATION</fo:block>       
+                  </fo:table-cell>
+                </fo:table-row>      
+              </fo:table-body>
+            </fo:table>
+          </fo:block>
+        </fo:float>
+      </fo:block>
+      <fo:block id="outfloat">
+        <fo:inline font-size="12pt">
+          <fo:inline>Your bank has declined your payment</fo:inline>
+        </fo:inline>
+      </fo:block>  
+    </fo:flow>
+  </fo:page-sequence>
+</fo:root>
+  </fo>
+  <checks>
+    <eval expected="234000" \
xpath="//pageViewport[1]/page/regionViewport[1]//block[2]/@ipd" /> +    <eval \
expected="234000" xpath="//pageViewport[1]/page/regionViewport[1]//block[4]/@ipd" /> \
+  </checks> +</testcase>

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



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


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic