|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--javax.swing.text.View | +--javax.swing.text.CompositeView | +--javax.swing.text.BoxView | +--javax.swing.text.TableView
Unsafe:
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).
View
Field Summary | |
(package private) int[] |
columnOffsets
|
(package private) SizeRequirements[] |
columnRequirements
|
(package private) int[] |
columnSpans
|
private static BitSet |
EMPTY
|
(package private) boolean |
gridValid
|
(package private) Vector |
rows
|
Fields inherited from class javax.swing.text.BoxView |
majorAllocValid, majorAxis, majorOffsets, majorRequest, majorReqValid, majorSpan, majorSpans, minorAllocValid, minorOffsets, minorRequest, minorReqValid, minorSpan, minorSpans, tempRect |
Fields inherited from class javax.swing.text.CompositeView |
|
Fields inherited from class javax.swing.text.View |
BadBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, GoodBreakWeight, sharedBiasReturn, X_AXIS, Y_AXIS |
Fields inherited from interface javax.swing.SwingConstants |
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST |
Constructor Summary | |
TableView(Element elem)
Suppressed: Constructs a TableView for the given element. |
Method Summary | |
(package private) void |
addFill(int row,
int col)
Mark a grid location as filled in for a cells overflow. |
(package private) void |
calculateColumnRequirements(int axis)
Calculate the requirements for each column. |
protected SizeRequirements |
calculateMinorAxisRequirements(int axis,
SizeRequirements r)
Calculate the requirements for the minor axis. |
(package private) void |
checkMultiColumnCell(int axis,
int col,
int ncols,
View v)
check the requirements of a table cell that spans multiple columns. |
(package private) void |
checkSingleColumnCell(int axis,
int col,
View v)
check the requirements of a table cell that spans a single column. |
protected javax.swing.text.TableView.TableCell |
createTableCell(Element elem)
Deprecated. Table cells can now be any arbitrary View implementation and should be produced by the ViewFactory rather than the table. |
protected javax.swing.text.TableView.TableRow |
createTableRow(Element elem)
Creates a new table row. |
protected void |
forwardUpdate(javax.swing.event.DocumentEvent.ElementChange ec,
DocumentEvent e,
Shape a,
ViewFactory f)
Forwards the given DocumentEvent to the child views
that need to be notified of the change to the model. |
(package private) int |
getColumnCount()
The number of columns in the table. |
(package private) int |
getColumnsOccupied(View v)
Determines the number of columns occupied by the table cell represented by given element. |
(package private) int |
getColumnSpan(int col)
Fetches the span (width) of the given column. |
(package private) javax.swing.text.TableView.TableRow |
getRow(int row)
|
(package private) int |
getRowCount()
The number of rows in the table. |
(package private) int |
getRowsOccupied(View v)
Determines the number of rows occupied by the table cell represented by given element. |
(package private) int |
getRowSpan(int row)
Fetches the span (height) of the given row. |
protected View |
getViewAtPosition(int pos,
Rectangle a)
Fetches the child view that represents the given position in the model. |
(package private) void |
invalidateGrid()
|
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. |
void |
replace(int offset,
int length,
View[] views)
Suppressed: Change the child views. |
(package private) void |
updateGrid()
Fill in the grid locations that are placeholders for multi-column, multi-row, and missing grid locations. |
Methods inherited from class javax.swing.text.CompositeView |
getBottomInset, getInsideAllocation, getLeftInset, getNextEastWestVisualPositionFrom, getNextNorthSouthVisualPositionFrom, getNextVisualPositionFrom, getRightInset, getTopInset, getView, getViewCount, getViewIndex, getViewIndexAtPosition, loadChildren, modelToView, setInsets, setParagraphInsets, setParent |
Methods inherited from class javax.swing.text.View |
append, breakView, changedUpdate, createFragment, forwardUpdateToView, getAttributes, getBreakWeight, getContainer, getDocument, getElement, getEndOffset, getGraphics, getParent, getStartOffset, getToolTipText, getViewFactory, getViewIndex, insert, insertUpdate, isVisible, modelToView, remove, removeAll, removeUpdate, updateChildren, updateLayout, viewToModel |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
int[] columnSpans
int[] columnOffsets
SizeRequirements[] columnRequirements
Vector rows
boolean gridValid
private static final BitSet EMPTY
Constructor Detail |
public TableView(Element elem)
elem
- the element that this view is responsible forMethod Detail |
protected javax.swing.text.TableView.TableRow createTableRow(Element elem)
elem
- an element
protected javax.swing.text.TableView.TableCell createTableCell(Element elem)
elem
- an element
int getColumnCount()
int getColumnSpan(int col)
int getRowCount()
int getRowSpan(int row)
javax.swing.text.TableView.TableRow getRow(int row)
int getColumnsOccupied(View v)
int getRowsOccupied(View v)
void invalidateGrid()
protected void forwardUpdate(javax.swing.event.DocumentEvent.ElementChange ec, DocumentEvent e, Shape a, ViewFactory f)
BoxView
DocumentEvent
to the child views
that need to be notified of the change to the model.
If a child changed its requirements and the allocation
was valid prior to forwarding the portion of the box
from the starting child to the end of the box will
be repainted.
forwardUpdate
in class BoxView
ec
- changes to the element this view is responsible
for (may be null
if there were no changes)e
- the change information from the associated documenta
- the current allocation of the viewf
- the factory to use to rebuild if the view has childrenView.insertUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
,
View.removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
,
View.changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
public void replace(int offset, int length, View[] views)
replace
in class BoxView
offset
- the starting index into the child views to insert
the new views; this should be a value >= 0 and <= getViewCountlength
- the number of existing child views to remove;
This should be a value >= 0 and <= (getViewCount() - offset)void updateGrid()
void addFill(int row, int col)
protected void layoutColumns(int targetSpan, int[] offsets, int[] spans, SizeRequirements[] reqs)
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.
protected void layoutMinorAxis(int targetSpan, int axis, int[] offsets, int[] spans)
This is implemented to call the layoutColumns method, and then forward to the superclass to actually carry out the layout of the tables rows.
layoutMinorAxis
in class BoxView
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.
protected SizeRequirements calculateMinorAxisRequirements(int axis, SizeRequirements r)
This is implemented to calculate the requirements as the sum of the requirements of the columns.
calculateMinorAxisRequirements
in class BoxView
axis
- the axis being studiedr
- the SizeRequirements
object;
if null
one will be created
SizeRequirements
objectjavax.swing.SizeRequirements
void calculateColumnRequirements(int axis)
void checkSingleColumnCell(int axis, int col, View v)
void checkMultiColumnCell(int axis, int col, int ncols, View v)
protected View getViewAtPosition(int pos, Rectangle a)
getViewAtPosition
in class CompositeView
pos
- the search position >= 0a
- the allocation to the table on entry, and the
allocation of the view containing the position on exit
null
if there isn't one
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |