From 0de75c7c71bfac1809b3ec247f76817de5de3b65 Mon Sep 17 00:00:00 2001 From: Jeremias Maerki Date: Fri, 11 Feb 2005 12:19:05 +0000 Subject: empty-cells implemented. git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@198422 13f79535-47bb-0310-9956-ffa450edef68 --- src/java/org/apache/fop/fo/flow/TableCell.java | 5 +++++ src/java/org/apache/fop/layoutmgr/table/Cell.java | 13 ++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) (limited to 'src/java/org/apache') diff --git a/src/java/org/apache/fop/fo/flow/TableCell.java b/src/java/org/apache/fop/fo/flow/TableCell.java index 2f417cc15..9853a54ff 100644 --- a/src/java/org/apache/fop/fo/flow/TableCell.java +++ b/src/java/org/apache/fop/fo/flow/TableCell.java @@ -298,6 +298,11 @@ public class TableCell extends FObj { return Math.max(columnNumber.getValue(), 0); } + /** @return true if "empty-cells" is "show" */ + public boolean showEmptyCells() { + return (this.emptyCells == EN_SHOW); + } + /** * @return the "id" property. */ diff --git a/src/java/org/apache/fop/layoutmgr/table/Cell.java b/src/java/org/apache/fop/layoutmgr/table/Cell.java index 4287676af..3d2ed3747 100644 --- a/src/java/org/apache/fop/layoutmgr/table/Cell.java +++ b/src/java/org/apache/fop/layoutmgr/table/Cell.java @@ -34,7 +34,6 @@ import org.apache.fop.layoutmgr.Position; import org.apache.fop.layoutmgr.TraitSetter; import org.apache.fop.area.Area; import org.apache.fop.area.Block; -import org.apache.fop.area.CTM; import org.apache.fop.area.Trait; import org.apache.fop.traits.MinOptMax; @@ -61,6 +60,7 @@ public class Cell extends BlockStackingLayoutManager { private int rowHeight; private int usedBPD; private int borderAndPaddingBPD; + private boolean emptyCell = true; /** * Create a new Cell layout manager. @@ -168,6 +168,9 @@ public class Cell extends BlockStackingLayoutManager { } usedBPD = stackSize.opt; + if (usedBPD > 0) { + emptyCell = false; + } LengthRangeProperty specifiedBPD = fobj.getBlockProgressionDimension(); if (specifiedBPD.getEnum() != EN_AUTO) { @@ -249,6 +252,12 @@ public class Cell extends BlockStackingLayoutManager { addID(fobj.getId()); } + if (!emptyCell || (getTable().getBorderCollapse() == EN_SEPARATE + && fobj.showEmptyCells())) { + TraitSetter.addBorders(curBlockArea, fobj.getCommonBorderPaddingBackground()); + TraitSetter.addBackground(curBlockArea, fobj.getCommonBorderPaddingBackground()); + } + //Handle display-align if (usedBPD < rowHeight) { if (fobj.getDisplayAlign() == EN_CENTER) { @@ -277,8 +286,6 @@ public class Cell extends BlockStackingLayoutManager { } } - TraitSetter.addBorders(curBlockArea, fobj.getCommonBorderPaddingBackground()); - TraitSetter.addBackground(curBlockArea, fobj.getCommonBorderPaddingBackground()); int contentBPD = rowHeight; contentBPD -= borderAndPaddingBPD; -- cgit v1.2.3