Author: sdeboy
Date: Sun Apr 18 06:57:10 2010
New Revision: 935308
URL: http://svn.apache.org/viewvc?rev=935308&view=rev
Log:
Multi-line table rendering improvements
- removing use of FONT textattribute since it appears to cause a significant
number of rows to be truncated. Replaced with use of family and size (size *
1.5) instead, resulting in more rows being fully displayed (with additional
space at the bottom of the row on occasion).
This isn't working 'perfectly' (rows are too tall still in some cases, too
short in others)...suggestions to improve rendering appreciated
Modified:
logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java
Modified:
logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java
URL:
http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java?rev=935308&r1=935307&r2=935308&view=diff
==============================================================================
---
logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java
(original)
+++
logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/TableColorizingRenderer.java
Sun Apr 18 06:57:10 2010
@@ -180,7 +180,11 @@ public class TableColorizingRenderer ext
int width = tableColumn.getWidth();
int tableRowHeight = table.getRowHeight(row);
Map paramMap = new HashMap();
- paramMap.put(TextAttribute.FONT, msgRenderer.getFont());
+ //using font here causes text to be truncated (height is too
small)..using family & a larger size (to ensure all text is displayed) instead
+ paramMap.put(TextAttribute.FAMILY,
labelRenderer.getFont().getFamily());
+ //set size to size + 1.5 (will make sure long entries aren't
truncated)
+ paramMap.put(TextAttribute.SIZE, new
Float(labelRenderer.getFont().getSize() + 1.5));
+
int preferredHeight = calculateHeight(table.getGraphics(), string,
width, paramMap);
if(preferredHeight != tableRowHeight) {
table.setRowHeight(row, preferredHeight);
@@ -370,8 +374,7 @@ public class TableColorizingRenderer ext
TextLayout layout;
while (lineMeasurer.getPosition() < paragraph.getEndIndex()) {
layout = lineMeasurer.nextLayout(width);
- //add 1 pixel padding per row
- float layoutHeight = layout.getAscent() + layout.getDescent() +
layout.getLeading() + 1;
+ float layoutHeight = layout.getAscent() + layout.getDescent() +
layout.getLeading();
height += layoutHeight;
}
//pad total by 4 or default row height