- java.lang.Object
-
- javax.swing.text.View
-
- javax.swing.text.CompositeView
-
- javax.swing.text.BoxView
-
- javax.swing.text.TableView
-
- All Implemented Interfaces:
- SwingConstants
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
-
-
Nested Class Summary
Nested Classes Modifier and Type Class and Description class
TableView.TableCell
Deprecated.A table cell can now be any View implementation.class
TableView.TableRow
View of a row in a row-centric table.
-
Field Summary
-
Fields inherited from class javax.swing.text.View
BadBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, GoodBreakWeight, 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
Constructors Constructor and Description TableView(Element elem)
Constructs a TableView for the given element.
-
Method Summary
Methods Modifier and Type Method and Description protected SizeRequirements
calculateMinorAxisRequirements(int axis, SizeRequirements r)
Calculate the requirements for the minor axis.protected 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 TableView.TableRow
createTableRow(Element elem)
Creates a new table row.protected void
forwardUpdate(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a, ViewFactory f)
Forwards the givenDocumentEvent
to the child views that need to be notified of the change to the model.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)
Lays out 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)
Change the child views.-
Methods inherited from class javax.swing.text.BoxView
baselineLayout, baselineRequirements, calculateMajorAxisRequirements, childAllocation, flipEastAndWestAtEnds, getAlignment, getAxis, getChildAllocation, getHeight, getMaximumSpan, getMinimumSpan, getOffset, getPreferredSpan, getResizeWeight, getSpan, getViewAtPoint, getWidth, isAfter, isAllocationValid, isBefore, isLayoutValid, layout, layoutChanged, layoutMajorAxis, modelToView, paint, paintChild, preferenceChanged, setAxis, setSize, viewToModel
-
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
-
-
-
-
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
@Deprecated protected 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.- Parameters:
elem
- an element- Returns:
- the cell
-
forwardUpdate
protected void forwardUpdate(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a, ViewFactory f)
Description copied from class:BoxView
Forwards the givenDocumentEvent
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.- Overrides:
forwardUpdate
in classBoxView
- Parameters:
ec
- changes to the element this view is responsible for (may benull
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 children- See Also:
View.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)
-
replace
public void replace(int offset, int length, View[] views)
Change the child views. This is implemented to provide the superclass behavior and invalidate the grid so that rows and columns will be recalculated.- Overrides:
replace
in classBoxView
- Parameters:
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)views
- the child views to add; this value can benull
to indicate no children are being added (useful to remove)
-
layoutColumns
protected void layoutColumns(int targetSpan, int[] offsets, int[] spans, SizeRequirements[] reqs)
Lays out the columns to fit within the given target span. Returns the results throughoffsets
andspans
.- Parameters:
targetSpan
- the given span for total of all the table columnsreqs
- the requirements desired for each column. This is the column maximum of the cells minimum, preferred, and maximum requested spanspans
- the return value of how much to allocated to each columnoffsets
- 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.- Overrides:
layoutMinorAxis
in classBoxView
- 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.
-
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 classBoxView
- Parameters:
axis
- the axis being studiedr
- theSizeRequirements
object; ifnull
one will be created- Returns:
- the newly initialized
SizeRequirements
object - See Also:
SizeRequirements
-
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.- Overrides:
getViewAtPosition
in classCompositeView
- Parameters:
pos
- the search position >= 0a
- the allocation to the table on entry, and the allocation of the view containing the position on exit- Returns:
- the view representing the given position, or
null
if there isn't one
-
-
Traduction non disponible
Les API Java ne sont pas encore traduites en français sur l'infobrol. Seule la version anglaise est disponible pour l'instant.
Version en cache
21/11/2024 21:52:20 Cette version de la page est en cache (à la date du 21/11/2024 21:52:20) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 31/08/2006, dernière modification le 04/03/2020
Source du document imprimé : https://www.gaudry.be/java-api-rf-javax/swing/text/tableview.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.