Class Library: HTML Document Objects I
DocElement. The parent class for all other HTML document objects. Characterized by link and webFont variables and implements the functionality of the HTML <a> and <font> tags.
package | earthstones | |
import | java.awt.*; java.applet.*; java.util.*; |
|
class declaration | public class DocElement extends Object | |
variables | protected Container webApp = null; | Reference to the main (host) applet. |
WebFont font = new
WebFont("Helvetica", Font.PLAIN, 15, Color.black); |
The DocElement's font variable. Set to Web site's default font attributes in constructor. | |
Link link = null; | The DocElement's link variable. | |
boolean isFirst = false; | Set if this is the first DocElement in the paragraph. | |
constructors | DocElement(Container app) | Loops while(WebSite.web(webApp) == null) and then initializes font to the properties specified by WebSite.web(webApp).baseFont() and WebSite.web(webApp).baseFontSize(). |
static methods | public Vector appendVector(Vector toThis, Vector appendThis) | Appends the elements of Vector appendThis to those already contained in Vector toThis. Defined here for the convenience of certain DocElement subclasses (e.g., Paragraph) whose data variables are instances of Vector. |
methods | public void copyAttrib(DocElement acopy) | Copies current DocElement's font, link, and isFirst (but not its data) variables to the instance acopy. |
These methods set and return some of DocElement's variables. | ||
public void setLink(Link lk) | Sets link variable. | |
public void setFont(WebFont fnt) | Returns font variable. |
TextString. This is the basic text object--a string of text rendered in a single (web)font. Implements the font style tags including <b> (<strong>), <i> (<em>), <u>, <sub>, and <sup> as well as the <br> tag.
package | earthstones | |
import | java.awt.*; java.applet.*; |
|
class declaration | public class TextString extends DocElement | |
variables | String data = ""; | The data string. |
boolean isBitmap = false; | When set, data string is interpreted as the name of a file containing a bitmap rather than as a text string to be printed. | |
boolean isSuper = false; | Set if TextString is a superscript. | |
boolean isSub = false; | Set if TextString is a subscript. | |
boolean forceWrap = false; | If set, TextString begins on a new text line instead of being wrapped onto end of the previous string. | |
To define the final two variables it is
necessary to first describe how the ordered collection of TextString and Box objects that
constitute a Paragraph object are "flowed" onto a page so that the text wraps
around the Box elements. The Paragraph.flow() method does the following: 1) It scans the paragraph's data vector until it encounters the first Box element. 2) If found, the paragraph's box variable is set to this instance of Box and all elements (they must now all be TextString objects) after this first Box are removed from the data Vector and assigned instead to the data variable of its tail variable (which itself is an instance of Paragraph). 3) If no Box element is found in the paragraph its data variable remains unchanged (but now we know it contains only TextStrings) and its box and tail variables remain set to null values. 4) Assuming for the remainder of this discussion that a box was found, it is rendered to a panel which will eventually appear in the user-interface. 5) And assuming here that text is to be wrapped around the box (i.e., that the Box element such as an image does not have its NOWRAP attribute set), text will be wrapped into the space beside the box until no more will fit. Any part of the paragraph's data that fails to fit into this space is assigned to its orphan variable (that is, to the data variable of its orphan variable, which itself also an element of the Paragraph class). 6) Next, the orphan, if it is not null, is rendered into the next available white space on the page. 7) And finally, the flow() method is applied to the tail Paragraph and this iterative process continues until all TextStrings and Box elements have been flowed onto the page. |
||
boolean fullLine = false; | This flag is set at the beginning of step 5 above and signals that only full lines of text are wanted and that any remaining text after the space beside the box has been filled is to be orphaned. | |
boolean isOrphan = false; | This flag is set at step 6 above. The isOrphan variable for the initial TextString in an orphan paragraph is set to suppress the extra interparagraph spacing between data and orphan (which are now treated as separate paragraphs. | |
constructors | TextString(Container app) | Constructs TextString object and sets its webApp variable to app. |
TextString(Container app, String str) | Constructs TextString object and sets its webApp variable to app and its data variable to str. | |
methods | public void copyAttrib(TextString acopy) | Copies current TextString's attributes (but not its data) variables to the instance acopy. Calls super.copyAttrib() and then copies variables unique to TextString. |
public void add(String str) | Appends str to TextString's data string. |
Field. A specialized DocElement object which encapsulates a user-input element (e.g., text field, button) and may include a text label as well. Implements the HTML <input> and <textarea> tags.
package | earthstones | |
import | java.awt.*; java.applet.*; |
|
class declaration | public class Field extends DocElement | |
variables | String data = "TEXT"; | Set to the value of the type attribute of the HTML <input> tag except for button elements; in this latter case, the Field object's name variable is set to the value (either "SUBMIT" or "RESET") of the tag's type attribute and the data variable is set to "BUTTON". |
String name = ""; | Set to the value of the name attribute of the HTML <input> tag except for button elements; see description of data variable above. | |
String initialVal = ""; | Set to the value of the value attribute of the HTML <input> tag. This specifies the default value of text/numeric controls or defines the value to be returned when boolean controls are set. | |
String value = ""; | The field's current value. | |
TextString label; | The field's text label. When set, is shown to the left of the user-input control. | |
String onFocus = "this.select()"; | HTML specifies a number of events for which actions can be set. Currently only the onFocus event is implemented; in this case the default action selects the value set in the control. | |
String align = "LEFT"; | Specifies whether field is to be "LEFT" or "RIGHT" aligned at the current vertical position in the form. | |
int maxlength = 0; | The maximum number of characters that can be entered into a text control. Although this <input> tag attribute is set in the Field object, the code to signal the user that this limit has been exceeded is not currently implemented. |
|
int size = 100; | The size of the control in characters. Set to the value of the cols attribute for type=textarea, otherwise set to the value of the size attribute; default size used for buttons if not otherwise specified | |
int height = 0; | Applies only for type=textarea where height is set to the value of the <input> tag's rows attribute. | |
boolean forceWrap = true; | When set, Field is shown on a new line instead of being wrapped onto the same line of previous Field. | |
private Form form = null; | The Form object of which Field is a part. | |
constructors | Field(Container app, Form frm) | |
Field(Container app, Form frm, String typ) | ||
methods | public Panel show(int lblOffset, FontMetrics fm) | Called by Form to show Field object in user interface. |
Box. An abstract class. Defines the basic text object that is not a TextString, including embedded images and complex objects such as tables and forms. Subclasses must implement the show() method.
package | earthstones | |
import | java.awt.*; java.applet.*; |
|
class declaration | public abstract class Box extends DocElement | |
variables | This abstract class does not redefine the data variable. Must be accomplished in subclasses. | |
String align = "LEFT"; | Sets alignment of Box object at either "LEFT" (the default) or "RIGHT" margin. | |
int hspace = 10; | Sets horizontal margin between box element
and the wrapping text. The hspace variable used to set the right margin for a left-aligned
box and the left margin for a right-aligned box. Note: HTML sets reserves hspace at both left and right sides of an inserted object regardless of its alignment. |
|
int vspace = 10; | Sets vertical margin between box element and the wrapping text. | |
boolean isEmbedded = false; | When set in Paragraph.findBox(), reduces box's vertical margin | |
boolean nowrap = true; | When set, forces text after box rather than allowing it to wrap around box. | |
constructors | Box(Container app) | |
methods | public void setDefaultFontMetrics(TextPanel pnl) | This method is called to set font metrics in case this has not already been done for the TextPanel being wrapped (i.e., the case that this box is the first element of the paragraph. |
public abstract Panel show() | This parameterless method must be
implemented in subclasses to render the particular Box element. The other show() methods defined here call this method. |
|
public Panel show(int x, int y, TextPanel pnl) | This method returns a panel whose height has been adjusted to be an appropriate multiple of TextPanel.fontheight. The box image is vertically centered in the panel and the panel's location is set to (x,y). Note that the property box.align is ignored here. | |
public Panel show(int x, int y, TextPanel txtpnl, Panel inpnl) | This method also handles alignment of the box. Note that the panel inpnl in which the box will be shown is required as an argument (to obtain its width) but the method returns only the box itself to maintain parallelism with other show() methods. | |
public Panel show(int x, int y) | This method ignores the align property and does not consider the lineheight problem. It can be used to permit the calling method to handle box alignment. |
ImageBox. An image along with optional caption. Implements and enhances the HTML <img> tag.
package | earthstones | |
import | java.awt.*; java.applet.*; java.util.*; |
|
class declaration | public class ImageBox extends Box | |
variables | GImage data = null; | Redefines the data variable as a GImage object. |
constructors | ImageBox(Container app) | Multiple constructors are defined here for convenience. See documentation for GImage class for description of parameters. |
ImageBox(Container app, GImage img) | ||
ImageBox(Container app, GImage img, String algn) | ||
ImageBox(Container app, GImage img, String algn, int hsp, int vsp) | ||
ImageBox(Container app, String orient, String image, String title, String desc) | ||
ImageBox(Container app, String orient, String image,
String title, String desc, String algn) |
||
ImageBox(Container app, String orient, String image,
String title, String desc, String algn, int hsp, int vsp) |
||
ImageBox(Container app, String orient, String image,
String title, String desc, int width, int height, float scale) |
||
ImageBox(Container app, String orient, String image,
String title, String desc, int width, int height, float scale, String algn) |
||
ImageBox(Container app, String orient, String image,
String title, String desc, int width, int height, float scale, String algn, int hsp, int vsp) |
||
methods | public void init() | Overrides Box.init() and sets nowrap variable to false. |
public ImageBox setAttrib(Index attrib) | Uses the Index attrib which contains the
name=value pairs read from the HTML <img> tag to set ImageBox's values. Note: Although hspace and vspace are set in this method, they are ignored when ImageBox is configured. Instead, the box is justified vertically within the wrapping text lines and horizontally at the left margin for a left-aligned box (with right hspace separating it from the adjacent text) and at the right margin for a right-aligned box (with left hspace only). |
|
public Panel show() | The required default show() method. Renders ImageBox into user-interface panel. |
TextBox. Text wrapped within a box, with optional ruling lines above and below. A feature of HTML+ not implemented in standard HTML.
package | earthstones | |
import | java.awt.*; java.applet.*; java.util.*; |
|
class declaration | public class TextBox extends Box | |
variables | Paragraph data = null; | Redefines the data variable as a Paragraph object to store the box's text. |
int width = 0; | The overall width of the text box. | |
int ruleHeight = 1; | Height of ruling lines above and below text. | |
Color ruleColor = Color.black; | Color of ruling lines. | |
Color bgColor = Color.white; | The background color of the TextBox. | |
constructors | TextBox(Container app) | Multiple constructors are defined here for convenience. |
TextBox(Container app, int wid, String txt) | Sets width wid and text txt of text box. | |
TextBox(Container app, int wid, String txt, String algn) | Sets width wid, text txt, and alignment algn ("LEFT" or "RIGHT") of text box. | |
TextBox(Container app, int wid, String txt, String algn, int hsp, int vsp) | Also sets horizontal and vertical space variables hspace and vspace. | |
methods | public void init() | 1) Overrides Box.init() and sets nowrap
variable to false. 2) Sets font attributes to those specified by the baseFont and baseFontSize variables of the instance of Web and its color to black. 3) Sets ruleHeight variable to 3; this value will be scaled for the viewer's screen resolution. 4) Sets the ruleColor to the defaultAccentColor defined in the instance of Site. 5) Sets the text box's background color to bgColor. |
public TextBox setAttrib(Index attrib) | Uses the Index attrib which contains the
name=value pairs read from the HTML+ <textbox> tag to set TextBox's values. Note: Although hspace and vspace are set in this method, they are ignored when TextBox is configured. Instead, the box is justified vertically within the wrapping text lines and horizontally at the left margin for a left-aligned box (with right hspace separating it from the adjacent text) and at the right margin for a right-aligned box (with left hspace only). |
|
public Panel show() | The required default show() method. Renders TextBox into user-interface panel. |
HorizontalRule. A horizontal line of specified length and color (actually a TextBox without the text). Implements the HTML <hr> tag.
package | earthstones | |
import | java.awt.*; java.applet.*; java.util.*; |
|
class declaration | public class HorizontalRule extends TextBox | |
variables | boolean widthIsPercent = false; | If set, with is interpreted as a percent of paragraph.document.width(). This variable is set when the syntax width=XX% is encountered in the <hr> tag. |
constructors | HorizontalRule(Container app) | Multiple constructors are defined here for convenience. |
HorizontalRule(Container app, int wid) | ||
HorizontalRule(Container app, int wid, boolean percent) | ||
HorizontalRule(Container app, int wid, int rHt) | ||
HorizontalRule(Container app, int wid, int rHt, boolean percent) | ||
HorizontalRule(Container app, int wid, int rHt, boolean percent, String aln) | ||
HorizontalRule(Container app, int wid, int rHt,boolean percent, String aln, int hsp, int vsp) | ||
methods | public void init() | 1) Overrides TextBox.init() and sets nowrap
variable to true. 2) Initializes data to a new Paragraph of width width but whose own data string is blank, resulting is a degenerate-case TextBox object consisting of only a single ruling line |
public TextBox setAttrib(Index attrib) | Uses the Index attrib which contains the name=value pairs read from the HTML+ <hr> tag to set HorizontalRule's values. | |
public Panel show() | The required default show() method. Renders the Horizontal Rule into user-interface panel. |
Form. An array of user-input elements (fields). Implements the HTML <form> tag.
package | earthstones | |
import | java.awt.*; java.applet.*; |
|
class declaration | public class Form extends Box | |
The follow constants define the most common CGI result codes (these reflect both standard CGI header return codes as well as Java exceptions that might occur in running CGI scripts and reading their results). | ||
public static final int CGI_NOT_SUPPORTED = 0; | ||
public static final int CGI_OK = 200; | ||
public static final int CGI_NO_RESULTS = 204; | ||
public static final int CGI_NOT_FOUND = 404; | ||
public static final int CGI_SERVER_ERROR = 500; | ||
public static final int CGI_BAD_URL = 600; | ||
public static final int CGI_BAD_CONNECT = 700; | ||
variables | Index data = new Index(); | Redefines the data variable as an Index object whose elements are the pairs (Field fld, Component comp). Note that comp will be set to nullObject (new Object) for any fields that are not user-modifiable (e.g., hidden, button). |
private Document document; | The document to which this form belongs | |
Panel panel = null; | the UI representation of the form which collects the set of panels into which the form's fields have been rendered. | |
private int width = 0; | The total width of form, including any hspace or vspace. | |
boolean widthIsPercent = false; | If set, width is interpreted as a percent of document.getLineWidth(). This variable is set when the syntax width=XX% is encountered in the <form> tag. | |
private int gutter = 10; | The x-distance between a field's label and its input components. | |
String action = ""; | Specifies URL which will carry out the form's action. Absolute URLs are used as given; otherwise path is assumed to be relative to that of the HTML document containing the <form> tag. | |
String method = "POST"; | Set to POST or GET depending upon which CGI protocol will be used in handling the form's action. | |
String onSubmit = ""; | References event (e.g., script) called when form is sent to server. This variable is defined for completeness in implementing the HTML <form> tag but is currently not otherwise supported in the Form class. It is not necessary for typical processing of a form's action by a CGI script. | |
String target = "self"; | Specifies target into which results of form's action are loaded. | |
boolean noShow = false; | When set, results of the form's GET or POST action are presented to the viewer in the panel/frame specified by the target variable. Whether or not noShow is set, the results are stored in the document.results data buffer as well. | |
private boolean noHeader = false; |
If set by cgiResultCode(), header has already been stripped from CGI results. It is necessary to keep track of this because the header is returned when CGI script is submitted from the local file system rather than the web server. | |
constructors | Form(Container app) | |
Form(Container app, int wid) | ||
methods | public void init() | Sets hspace and vspace to zero. If width is zero, sets its value to the space not reserved for the graphic panel in the current WebSite.web(webApp).thePage. |
These methods are used in constructing and initializing the Form and Field objects using data from the HTML <form> and <input> tags. | ||
public Form setAttrib(Index attrib) | Uses the Index attrib which contains the name=value pairs read from the HTML <form> tag to set Form's values. | |
public Field newField(Index attrib) | Creates a new Field object in the form and uses the Index attrib which contains the name=value pairs read from the HTML <input> or <textarea> tag to set Field's values. This method is defined here for convenience in both creating a new field (using the constructor defined in the Field class) and setting its attributes in a single step. | |
public void add(Field f) | Adds the field f and the default component object new Object() to the form's data index. Except for fields which are not user modifiable (i.e., buttons and hidden fields), the value variable of this key-value pair is reset to the field's user-input component. | |
Note that all three forms of the show() method defined next use the current values for the margins. | ||
public Panel show(int wid) | Returns panel in which form is rendered at the specified overall width. | |
public Panel show(int x, int y) | Calls show(width) and then moves the resulting panel to the coordinates (x, y) and resizes panel to accommodate this shift in origin. | |
public Panel show() | Calls show(width; | |
These two methods set and get the form's data. | ||
public void setValues() | Enumerates over the Form's field objects and sets their user-input elements to the field's value variable. | |
public void getValues() | Enumerates over the Form's field objects and sets their value variables to the value reflecting the current state of the field's user-input component. | |
The following methods handle the form's interaction with a CGI server in carrying out its action. See the very helful discussion of java-CGI connectivity by Gunther Birznieks & Selena Sol for more information about the approach used here. | ||
public void execute(Field fld) | This form of the execute() method is used
to respond to a user event (button click) for field fld: 1) If fld.name = "SUBMIT", calls method cgiSubmit(action, getCgiString()). 2) If fld.name = "RESET", calls setValues(). |
|
public int execute(String doThis) | Here the parameter doThis can take the values "SUBMIT" or "RESET". This syntax is used to make programatic use of the Form object's methods without exposing an HTML document containing a <FORM> tag to the user (see SplashPanel.checkRegistration() for an example of this approach). | |
public final int cgiSubmit(String actn, String params) | 1) If method = "GET" appends
"?" + params to the URL actn. 2) Establishes a connection with actn. 3) If method = "PUT", sends the data params to the (CGI) server at actn. 4) Creates a results document cgiResults into which the cgi results will be read and passes urlConn as its source. 5) If noShow is set, creates the Txt and HtmlTag objects necessary to read the cgi results as a plain text stream and sets document.results to cgiResults.data. 6) Otherwise, updates the panel/frame specified by target with the results returned from the server at actn by calling update(cgiResults, true, false) and then sets document.results to cgiResults.data. In this case the Html, HtmlTag, and Doc objects are automatically called by Document.show() to read and render the HTML document. 7) If Web.regCheck is set and if Web.regStatus is Web.CHECKING_LICENSE or Web.NOT_LICENSED and if cgiResults.source is Web.demoReg (i.e., the script demoReg.cgi), examines the cgi results and if these data indicate "Registration Successful", sets Web.regStatus to Web.LICENSE_VALID. 8) Returns cgiResultCode(). |
|
The next three method are defined for convenience in extracting information from a document.results. | ||
public Vector results() | This method translates document.results (which is actually a DataBuffer containing a Paragraph containing a collection of TextString objects) into a more convenient form: a Vector containing the text strings' data strings. If the cgi results are a standard script output stream, the first element of results will be a string containing the cgi header (beginning with "HTTP/ " and followed by the result code). In the case of custom CGI result streams (e.g., that written by regchck.cgi), the results() vector may consist of data strings only, without a header. | |
public int cgiResultCode() | Reads and parses the cgi header and returns the result code. Most common results are specified in the Form.CGI_xxx constants although others are possible. We are generally interested in knowing whether or not the result is CGI_OK. | |
private String cgiResultTitle() | This method is useful in extracting the
title of a cgi results stream in the case that data are presented to the user but the
programmer also wishes to know about the returned information. For example, when
registration has been successful demoreg.cgi conveys this information to the user in an
HTML document with the tag <title>Registration Successful</title> included in its header. In this case cgiResultTitle() extracts and returns the string "Registration Successful". |
|
These are private methods called by other Form methods. | ||
private String getCgiString() | Enumerates over the form's non-button fields and returns a string which concatenates its cgi-encoded name-value pairs. | |
private String cgiEncode(String str) | Performs the character translation required by CGI servers. Called by getCgiString(). | |
These methods set various Form variables. | ||
public void setDocument(Document doc) | Sets document variable. | |
public void setWidth(int wid) | Sets width variable. |
Table. An array Paragraph objects. Implements and extens the HTML <table> tag.
package | earthstones | |
import | java.awt.*; java.util.*; java.applet.*; |
|
class declaration | public class table extends Box | |
variables | DataBuffer data = new Vector(); | Defines the data variable as a DataBuffer object to hold the table's rows (instances of Vector whose elements are the [Paragraph] cells of the row). |
private Document document; | The document to which this table belongs | |
private int width = 0; | The total width of table, including any hspace or vspace. | |
boolean widthIsPercent = false; | If set, width is interpreted as a percent of document.getLineWidth(). This variable is set when the syntax width=XX% is encountered in the <table> tag. | |
int gutter = 10; | The white space between the table's
columns. Notes: 1) This value is scaled according to the viewer's screen resolution. 2) The value should be ignored in specifying column widths in the <td> tag; see notes for show() method below for discussion of how space for gutters is allotted. |
|
private int colWidths[]; | An array used to keep track of column widths. | |
int gutter = 0; | space between columns | |
int maxcols = 15; | The maximum number of columns that will be recognized by the parser; must be set in <table ncols=maxcols> before adding rows if a higher value is desired. | |
private int colspan = 1; | Not currently used. The newCell() method does read the HTML colspan attribute in the <td> tag but column spanning is not currently supported. | |
private Vector links = null; | Collects the links for the table's cells. | |
The following private variables are used internally in setting up the colWidths[] array. | ||
private int cellIdx = -1; | The zero-based (column) index of last cell added to table; set in addCell() and reset to -1 in addRow(). | |
private int cellsTot = 0; | Accumulates the total width assigned to the row's cells. | |
private int cols = 0; | The number of columns in the table. | |
The following variables are used by the methods show() and showTheRow(). | ||
protected Panel panel = new Panel(); | The panel into which the row is rendered. | |
protected Point pt = new Point(0, 0); | The point at which the cell is rendered. | |
protected int rowHt = 0; | The row's height. | |
private int yOffset = 0; | The location of the top of the table relative to the top of the document. | |
private boolean isSet = false; | Set in show() when setTable() has already been called. | |
constructors | Table(Container app) | Multiple constructors are defined here for convenience. See documentation for GImage class for description of parameters. |
Table(Container app, int wid) | ||
Table(Container app, int wid, int cols) | ||
Table(Container app, int wid, int cols, int gtr) | ||
methods | public void init() | Initializes hspace and vspace to 0 and calls setMaxcols(maxcols). |
public Table setAttrib(Index attrib) | Uses the Index attrib which contains the name=value pairs read from the HTML <table> tag to set ImageBox's values. | |
public Vector newRow() | Sets register colspan to 1 and returns a new Vector object. | |
public void add(Vector row) | Adds a new row to the table and resets the cellIdx variable. | |
private void maxcolsExceeded() | Prints an advisory message warning that the tag <table cols=n > must be modified by increasing the number of columns allowed. | |
public Paragraph newCell(Index attrib) | Uses the Index attrib which contains the name=value pairs read from the HTML <td> tag to set cell's attributes; increments the cellIdx variable. | |
public void setWidth(int wid) | Sets table's overall width and makes any necessary changes in the array colwidths[]. | |
public void setMaxcols(int cols) | Initializes size of array colwidths[] to maxcols or resizes array if cols is set to a value other than the default of 15. | |
Note: All three forms of the show() method use the current values for the margins. | ||
public Panel show(int wid) | Returns a panel containing the panels into
which the table's paragraphs have been rendered. 1) Initializes pt, yoffset, and panel. 2) Iterates over the rows of the table, calling setTable() is isSet is not already set and then calling showTheRow(). Note that management of any links within the table will be handled transparently by the document's EventManagerPanel. 3) Resizes and returns panel. |
|
public Panel show(int x, int y) | 1) Calls show(width). 2) Moves resulting panel to location (x, y). 3) Resizes panel to accomodate relation and returns panel. |
|
public Panel show() | Calls show(width). | |
The next two are private helper methods called by show(). | ||
private void setTable(Vector aRow) | 1) If column widths have not been set by
<td> tags, sets each equal to table width/cols. 2) Handles the gutters by subtracting the total space taken up by the gutters from the table's width and then resetting the colWidths[] array so that the available table width is distributed proportionally among the columns. 3) Sets the variable isSet. |
|
private synchronized void showTheRow(Vector theRow) | 1) Creates a panel rowPanel into which the
row will be rendered and initializes it. 2) Iterates over the row's cells, rendering each paragraph to rowPanel and collecting its links. Note that currently Table table supports only EITHER text OR an image in each cell but not both. 3) Adds rowPanel directly to document.panel rather than to the table's panel variable and repaints document.panel. This permits long tables to be rendered much more quickly. Here the table's panel is returned only for consistency with the show() methods of other DocElement objects and to pass information about the table's overall height back to the showBox() method of the Paragraph. |
|
These methods set and return some of Table's variables. | ||
public void setDocument(Document doc) | ||
public Document document() | ||
public Vector links() | ||
public int width() |