jeremias 2005/02/15 11:30:51 Modified: src/java/org/apache/fop/layoutmgr/table TableLayoutManager.java Cell.java src/java/org/apache/fop/fo/properties CommonBorderPaddingBackground.java src/java/org/apache/fop/fo/flow TableRow.java TableCell.java Table.java Log: Set border traits for fo:table only if border-collapse="separate". Some clean-up. Revision Changes Path 1.19 +3 -1 xml-fop/src/java/org/apache/fop/layoutmgr/table/TableLayoutManager.java Index: TableLayoutManager.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/table/TableLayoutManager.java,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- TableLayoutManager.java 11 Feb 2005 10:45:24 -0000 1.18 +++ TableLayoutManager.java 15 Feb 2005 19:30:51 -0000 1.19 @@ -387,7 +387,9 @@ curBlockArea.setBPD(tableHeight); - TraitSetter.addBorders(curBlockArea, fobj.getCommonBorderPaddingBackground()); + if (fobj.isSeparateBorderModel()) { + TraitSetter.addBorders(curBlockArea, fobj.getCommonBorderPaddingBackground()); + } TraitSetter.addBackground(curBlockArea, fobj.getCommonBorderPaddingBackground()); TraitSetter.addMargins(curBlockArea, fobj.getCommonBorderPaddingBackground(), 1.21 +6 -6 xml-fop/src/java/org/apache/fop/layoutmgr/table/Cell.java Index: Cell.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/table/Cell.java,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- Cell.java 11 Feb 2005 12:19:05 -0000 1.20 +++ Cell.java 15 Feb 2005 19:30:51 -0000 1.21 @@ -115,8 +115,8 @@ referenceIPD = context.getRefIPD(); cellIPD = referenceIPD; cellIPD -= getIPIndents(); - if (getTable().getBorderCollapse() == EN_SEPARATE) { - int borderSep = getTable().getBorderSeparation().getLengthPair() + if (fobj.isSeparateBorderModel()) { + int borderSep = fobj.getBorderSeparation().getLengthPair() .getIPD().getLength().getValue(); cellIPD -= borderSep; } @@ -252,8 +252,8 @@ addID(fobj.getId()); } - if (!emptyCell || (getTable().getBorderCollapse() == EN_SEPARATE - && fobj.showEmptyCells())) { + if (!emptyCell + || (fobj.isSeparateBorderModel() && fobj.showEmptyCells())) { TraitSetter.addBorders(curBlockArea, fobj.getCommonBorderPaddingBackground()); TraitSetter.addBackground(curBlockArea, fobj.getCommonBorderPaddingBackground()); } @@ -320,8 +320,8 @@ indent += fobj.getCommonBorderPaddingBackground().getPaddingStart(false); // set position int halfBorderSep = 0; - if (getTable().getBorderCollapse() == EN_SEPARATE) { - halfBorderSep = getTable().getBorderSeparation().getLengthPair() + if (fobj.isSeparateBorderModel()) { + halfBorderSep = fobj.getBorderSeparation().getLengthPair() .getIPD().getLength().getValue() / 2; } curBlockArea.setXOffset(xoffset + inRowIPDOffset + halfBorderSep + indent); 1.10 +7 -1 xml-fop/src/java/org/apache/fop/fo/properties/CommonBorderPaddingBackground.java Index: CommonBorderPaddingBackground.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/properties/CommonBorderPaddingBackground.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- CommonBorderPaddingBackground.java 7 Feb 2005 10:53:26 -0000 1.9 +++ CommonBorderPaddingBackground.java 15 Feb 2005 19:30:51 -0000 1.10 @@ -279,4 +279,10 @@ public boolean hasBackground() { return ((backgroundColor != null || getFopImage() != null)); } + + /** @return true if padding is non-zero. */ + public boolean hasPadding() { + return ((getPaddingBefore(false) + getPaddingAfter(false) + + getPaddingStart(false) + getPaddingEnd(false)) > 0); + } } 1.46 +0 -1 xml-fop/src/java/org/apache/fop/fo/flow/TableRow.java Index: TableRow.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/flow/TableRow.java,v retrieving revision 1.45 retrieving revision 1.46 diff -u -r1.45 -r1.46 --- TableRow.java 8 Feb 2005 09:20:41 -0000 1.45 +++ TableRow.java 15 Feb 2005 19:30:51 -0000 1.46 @@ -25,7 +25,6 @@ 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.CommonAccessibility; import org.apache.fop.fo.properties.CommonAural; 1.47 +17 -2 xml-fop/src/java/org/apache/fop/fo/flow/TableCell.java Index: TableCell.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/flow/TableCell.java,v retrieving revision 1.46 retrieving revision 1.47 diff -u -r1.46 -r1.47 --- TableCell.java 11 Feb 2005 12:19:04 -0000 1.46 +++ TableCell.java 15 Feb 2005 19:30:51 -0000 1.47 @@ -49,8 +49,8 @@ // private ToBeImplementedProperty borderEndPrecedence; // private ToBeImplementedProperty borderStartPrecedence; private LengthRangeProperty blockProgressionDimension; - private int borderCollapse; - private LengthPairProperty borderSeparation; + private int borderCollapse; //inherited from fo:table + private LengthPairProperty borderSeparation; //inherited from fo:table private Numeric columnNumber; private int displayAlign; private int relativeAlign; @@ -303,6 +303,21 @@ return (this.emptyCells == EN_SHOW); } + /** @return the "border-collapse" property (inherited from fo:table). */ + public int getBorderCollapse() { + return borderCollapse; + } + + /** @return true if the separate border model is active */ + public boolean isSeparateBorderModel() { + return (getBorderCollapse() == EN_SEPARATE); + } + + /** @return the "border-separation" property (inherited from fo:table). */ + public LengthPairProperty getBorderSeparation() { + return borderSeparation; + } + /** * @return the "id" property. */ 1.49 +10 -0 xml-fop/src/java/org/apache/fop/fo/flow/Table.java Index: Table.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/flow/Table.java,v retrieving revision 1.48 retrieving revision 1.49 diff -u -r1.48 -r1.49 --- Table.java 11 Feb 2005 10:45:24 -0000 1.48 +++ Table.java 15 Feb 2005 19:30:51 -0000 1.49 @@ -122,6 +122,11 @@ PropertyList colPList = new StaticPropertyList(defaultColumn, pList); colPList.setWritingMode(); defaultColumn.bind(colPList); + + if (borderCollapse != EN_SEPARATE && commonBorderPaddingBackground.hasPadding()) { + //See "17.6.2 The collapsing border model" in CSS2 + getLogger().error("Table may not have padding when using the collapsing border model."); + } } /** @@ -237,6 +242,11 @@ return borderCollapse; } + /** @return true if the separate border model is active */ + public boolean isSeparateBorderModel() { + return (getBorderCollapse() == EN_SEPARATE); + } + /** @return the "border-separation" property. */ public LengthPairProperty getBorderSeparation() { return borderSeparation;
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]