com.nwalsh.saxon
Class Table
public class Table
extends java.lang.Object
Saxon extensions supporting Tables
$Id: Table.java 5907 2006-04-27 08:26:47Z xmldoc $
Copyright (C) 2000 Norman Walsh.
This class provides a
Saxon
implementation of some code to adjust CALS Tables to HTML
Tables.
Column Widths
The
adjustColumnWidths method takes a result tree
fragment (assumed to contain the colgroup of an HTML Table)
and returns the result tree fragment with the column widths
adjusted to HTML terms.
Convert Lengths
The
convertLength method takes a length specification
of the form 9999.99xx (where "xx" is a unit) and returns that length
as an integral number of pixels. For convenience, percentage lengths
are returned unchanged.
The recognized units are: inches (in), centimeters (cm),
millimeters (mm), picas (pc, 1pc=12pt), points (pt), and pixels (px).
A number with no units is assumed to be pixels.
Change Log:
protected static Hashtable | unitHash - The hash used to associate units with a length in pixels.
|
Table() - Constructor for Verbatim
All of the methods are static, so the constructor does nothing.
|
static NodeSetValue | adjustColumnWidths(Context context, NodeSetValue rtf_ns) - Adjust column widths in an HTML table.
|
static int | convertLength(String length) - Convert a length specification to a number of pixels.
|
protected static String[] | correctRoundingError(widths[] ) - Correct rounding errors introduced in calculating the width of each
column.
|
int | getPixelsPerInch() - Return the current pixels-per-inch value.
|
protected static String | getVariable(Context context, String varName) - Find the string value of a stylesheet variable or parameter
Returns the string value of
varName in the current
context .
|
protected static void | initializeHash() - Initialize the internal hash table with proper values.
|
static void | setPixelsPerInch(int value) - Set the pixels-per-inch value.
|
unitHash
protected static Hashtable unitHash
The hash used to associate units with a length in pixels.
Table
public Table()
Constructor for Verbatim
All of the methods are static, so the constructor does nothing.
adjustColumnWidths
public static NodeSetValue adjustColumnWidths(Context context,
NodeSetValue rtf_ns)
Adjust column widths in an HTML table.
The specification of column widths in CALS (a relative width
plus an optional absolute width) are incompatible with HTML column
widths. This method adjusts CALS column width specifiers in an
attempt to produce equivalent HTML specifiers.
In order for this method to work, the CALS width specifications
should be placed in the "width" attribute of the <col>s within
a <colgroup>. Then the colgroup result tree fragment is passed
to this method.
This method makes use of two parameters from the XSL stylesheet
that calls it:
nominal.table.width
and
table.width
. The value of
nominal.table.width
must be an absolute distance. The value of
table.width
can be either absolute or relative.
Presented with a mixture of relative and
absolute lengths, the table width is used to calculate
appropriate values. If the
table.width
is relative,
the nominal width is used for this calculation.
There are three possible combinations of values:
- There are no relative widths; in this case the absolute widths
are used in the HTML table.
- There are no absolute widths; in this case the relative widths
are used in the HTML table.
- There are a mixture of absolute and relative widths:
- If the table width is absolute, all widths become absolute.
- If the table width is relative, make all the widths absolute
relative to the nominal table width then turn them all
back into relative widths.
context
- The stylesheet context; supplied automatically by Saxonrtf_ns
- The result tree fragment containing the colgroup.
- The result tree fragment containing the adjusted colgroup.
convertLength
public static int convertLength(String length)
Convert a length specification to a number of pixels.
The specified length should be of the form [+/-]999.99xx,
where xx is a valid unit.
correctRoundingError
protected static String[] correctRoundingError(widths[] )
Correct rounding errors introduced in calculating the width of each
column. Make sure they sum to 100% in the end.
getPixelsPerInch
public int getPixelsPerInch()
Return the current pixels-per-inch value.
getVariable
protected static String getVariable(Context context,
String varName)
throws TransformerException
Find the string value of a stylesheet variable or parameter
Returns the string value of
varName
in the current
context
. Returns the empty string if the variable is
not defined.
context
- The current stylesheet contextvarName
- The name of the variable (without the dollar sign)
- The string value of the variable
initializeHash
protected static void initializeHash()
Initialize the internal hash table with proper values.
setPixelsPerInch
public static void setPixelsPerInch(int value)
Set the pixels-per-inch value. Only positive values are legal.