Java Platform 1.2

javax.swing.text
Class TableView

java.lang.Object
  |
  +--javax.swing.text.View
        |
        +--javax.swing.text.CompositeView
              |
              +--javax.swing.text.BoxView
                    |
                    +--javax.swing.text.TableView

public abstract class TableView
extends BoxView

Implements View interface for a table, that is composed of an element structure where the child elements of the element this view is responsible for represent rows and the child elements of the row elements are cells. The cell elements can have an arbitrary element structure under them, which will be built with the ViewFactory returned by the getViewFactory method.


   TABLE
     ROW
       CELL
       CELL
     ROW
       CELL
       CELL

 

This is implemented as a hierarchy of boxes, the table itself is a vertical box, the rows are horizontal boxes, and the cells are vertical boxes. The cells are allowed to span multiple columns and rows. By default, the table can be thought of as being formed over a grid (i.e. somewhat like one would find in gridbag layout), where table cells can request to span more than one grid cell. The default horizontal span of table cells will be based upon this grid, but can be changed by reimplementing the requested span of the cell (i.e. table cells can have independant spans if desired).

See Also:
View

Inner Class Summary
 class TableView.TableCell
          View of a cell in a table
 class TableView.TableRow
          View of a row in a table.
 
Fields inherited from class javax.swing.text.View
BadBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, GoodBreakWeight, X_AXIS, Y_AXIS
 
Constructor Summary
TableView(Element elem)
          Constructs a TableView for the given element.
 
Method Summary
protected  SizeRequirements calculateMinorAxisRequirements(int axis, SizeRequirements r)
          Calculate the requirements for the minor axis.
protected  TableView.TableCell createTableCell(Element elem)
          Creates a new table cell.
protected  TableView.TableRow createTableRow(Element elem)
          Creates a new table row.
protected  View getViewAtPosition(int pos, Rectangle a)
          Fetches the child view that represents the given position in the model.
protected  void layoutColumns(int targetSpan, int[] offsets, int[] spans, SizeRequirements[] reqs)
          Layout the columns to fit within the given target span.
protected  void layoutMinorAxis(int targetSpan, int axis, int[] offsets, int[] spans)
          Perform layout for the minor axis of the box (i.e.
protected  void loadChildren(ViewFactory f)
          Loads all of the children to initialize the view.
 
Methods inherited from class javax.swing.text.BoxView
baselineLayout, baselineRequirements, calculateMajorAxisRequirements, changedUpdate, childAllocation, flipEastAndWestAtEnds, getAlignment, getHeight, getMaximumSpan, getMinimumSpan, getOffset, getPreferredSpan, getResizeWeight, getSpan, getViewAtPoint, getWidth, insertUpdate, isAfter, isAllocationValid, isBefore, layout, layoutMajorAxis, modelToView, paint, paintChild, preferenceChanged, removeUpdate, replace, setSize, viewToModel
 
Methods inherited from class javax.swing.text.CompositeView
append, getBottomInset, getChildAllocation, getInsideAllocation, getLeftInset, getNextEastWestVisualPositionFrom, getNextNorthSouthVisualPositionFrom, getNextVisualPositionFrom, getRightInset, getTopInset, getView, getViewCount, getViewIndexAtPosition, insert, modelToView, removeAll, setInsets, setParagraphInsets, setParent
 
Methods inherited from class javax.swing.text.View
breakView, createFragment, getAttributes, getBreakWeight, getContainer, getDocument, getElement, getEndOffset, getParent, getStartOffset, getViewFactory, isVisible, modelToView, viewToModel
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TableView

public TableView(Element elem)
Constructs a TableView for the given element.
Parameters:
elem - the element that this view is responsible for
Method Detail

createTableRow

protected TableView.TableRow createTableRow(Element elem)
Creates a new table row.
Parameters:
elem - an element
Returns:
the row

createTableCell

protected TableView.TableCell createTableCell(Element elem)
Creates a new table cell.
Parameters:
elem - an element
Returns:
the cell

loadChildren

protected void loadChildren(ViewFactory f)
Loads all of the children to initialize the view. This is called by the setParent method. This is reimplemented to build rows using the createTableRow method and then proxy cell entries for each of the cells that span multiple columns or rows, substantially reducing the complexity of the layout calculations.
Parameters:
f - the view factory
Overrides:
loadChildren in class CompositeView

layoutColumns

protected void layoutColumns(int targetSpan,
                             int[] offsets,
                             int[] spans,
                             SizeRequirements[] reqs)
Layout the columns to fit within the given target span.
Parameters:
targetSpan - the given span for total of all the table columns.
reqs - the requirements desired for each column. This is the column maximum of the cells minimum, preferred, and maximum requested span.
spans - the return value of how much to allocated to each column.
offsets - the return value of the offset from the origin for each column.

layoutMinorAxis

protected void layoutMinorAxis(int targetSpan,
                               int axis,
                               int[] offsets,
                               int[] spans)
Perform layout for the minor axis of the box (i.e. the axis orthoginal to the axis that it represents). The results of the layout should be placed in the given arrays which represent the allocations to the children along the minor axis. This is called by the superclass whenever the layout needs to be updated along the minor axis.

This is implemented to call the layoutColumns method, and then forward to the superclass to actually carry out the layout of the tables rows.

Parameters:
targetSpan - the total span given to the view, which whould be used to layout the children.
axis - the axis being layed out.
offsets - the offsets from the origin of the view for each of the child views. This is a return value and is filled in by the implementation of this method.
spans - the span of each child view. This is a return value and is filled in by the implementation of this method.
Overrides:
layoutMinorAxis in class BoxView

calculateMinorAxisRequirements

protected SizeRequirements calculateMinorAxisRequirements(int axis,
                                                          SizeRequirements r)
Calculate the requirements for the minor axis. This is called by the superclass whenever the requirements need to be updated (i.e. a preferenceChanged was messaged through this view).

This is implemented to calculate the requirements as the sum of the requirements of the columns.

Overrides:
calculateMinorAxisRequirements in class BoxView

getViewAtPosition

protected View getViewAtPosition(int pos,
                                 Rectangle a)
Fetches the child view that represents the given position in the model. This is implemented to walk through the children looking for a range that contains the given position. In this view the children do not necessarily have a one to one mapping with the child elements.
Parameters:
pos - the search position >= 0
a - the allocation to the table on entry, and the allocation of the view containing the position on exit
Overrides:
getViewAtPosition in class CompositeView

Java Platform 1.2

Submit a bug or feature Version 1.2 of Java Platform API Specification
Java is a trademark or registered trademark of Sun Microsystems, Inc. in the US and other countries.
Copyright 1993-1998 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.