Class Grid.Column<T>
- Type Parameters:
T
- type of the underlying grid this column is compatible with
- All Implemented Interfaces:
AttachNotifier
,DetachNotifier
,HasElement
,HasStyle
,Serializable
- Direct Known Subclasses:
GridPro.EditColumn
<vaadin-grid-column>
element.
Every added column sends data to the client side regardless of its
visibility state. Don't add a new column at all or use
Grid.removeColumn(Column)
to avoid sending extra data.
- See Also:
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
protected List<Grid.Column<?>>
Gets recursively the child components of this component that are instances of Column.protected Grid.Column<?>
Gets the<vaadin-grid-column>
component that is a child of this component, or this component in case this is a bottom level<vaadin-grid-column>
component.Gets the function that is used for generating CSS class names for cells in this column.getComparator
(SortDirection sortDirection) Gets the comparator to use with in-memory sorting for this column when sorting in the given direction.Gets the editor component that is used for this column.Gets the underlying<vaadin-grid-column>
element.int
Gets the flex grow value, by default 1.Returns the footer component of the column.Returns the footer text of the column.Grid<?>
getGrid()
Gets the owner of this column.Returns the header component of the column.Returns the header text of the column.protected String
getKey()
Gets the user-defined key for this column, ornull
if no key has been set.Gets the function that is used for generating CSS part names for cells in this column.Get the renderer used for this column.getSortOrder
(SortDirection direction) Gets the sort orders to use with back-end sorting for this column when sorting in the given direction.default ColumnTextAlign
Gets the column text align.getWidth()
Gets the width of this column as a CSS-string.protected boolean
boolean
Gets this column's auto width state.default boolean
isFrozen()
Gets the this column's frozen state.default boolean
Gets the this column's frozen state.default boolean
Gets whether this column is user-resizable.boolean
Gets whether this column is sortable (e.g.protected void
moveFooterContent
(com.vaadin.flow.component.grid.AbstractColumn<?> otherColumn) Moves the current footer content, either a text or a component, to a different column or column group.protected void
moveHeaderContent
(com.vaadin.flow.component.grid.AbstractColumn<?> otherColumn) Moves the current header content, either a text or a component, to a different column or column group.setAutoWidth
(boolean autoWidth) Enables or disables automatic width for this column.setClassNameGenerator
(SerializableFunction<T, String> classNameGenerator) Sets the function that is used for generating CSS class names for cells in this column.<V extends Comparable<? super V>>
Grid.Column<T>setComparator
(ValueProvider<T, V> keyExtractor) Sets a comparator to use with in-memory sorting with this column based on the return type of the givenValueProvider
.Sorting with a back-end is done usingsetSortProperty(String[])
.setComparator
(Comparator<T> comparator) Sets a comparator to use with in-memory sorting with this column.setEditorComponent
(Component editorComponent) Sets a component to use for editing values of this column in the editor row.setEditorComponent
(SerializableFunction<T, ? extends Component> componentCallback) Sets a function that returns the editor component to be used for an specific item in the editor row.setFlexGrow
(int flexGrow) Sets the flex grow ratio for this column.Sets a footer component to the column.Sets a footer text to the column.protected void
setFooterComponent
(Component component) protected void
setFooterText
(String text) default Grid.Column<T>
setFrozen
(boolean frozen) Sets this column's frozen state.default Grid.Column<T>
setFrozenToEnd
(boolean frozenToEnd) Sets this column's frozen state.Sets a header component to the column.Sets a header text to the column.protected void
setHeaderComponent
(Component component) protected void
setHeaderText
(String text) Sets the user-defined identifier to map this column.setPartNameGenerator
(SerializableFunction<T, String> partNameGenerator) Sets the function that is used for generating CSS part names for cells in this column.setRenderer
(Renderer<T> renderer) Set the renderer for this column.default Grid.Column<T>
setResizable
(boolean resizable) When set totrue
, the column is user-resizable.setSortable
(boolean sortable) Sets whether the user can sort this column or not.protected void
setSortingIndicators
(boolean sortingIndicators) Sets this component to show sorting indicators or not.setSortOrderProvider
(SortOrderProvider provider) Sets the sort orders when sorting this column.setSortProperty
(String... properties) Sets strings describing back end properties to be used when sorting this column.default Grid.Column<T>
setTextAlign
(ColumnTextAlign textAlign) Sets the column text align.setTooltipGenerator
(SerializableFunction<T, String> tooltipGenerator) Sets the function that is used for generating tooltip text for cells in this column.void
setVisible
(boolean visible) Sets the component visibility value.Sets the width of this column as a CSS-string.protected void
updateSortingIndicators
(boolean sortable) Updates this component to either have sorting indicators according to the sortable state of the underlying column, or removes the sorting indicators.Methods inherited from class com.vaadin.flow.component.Component
addListener, findAncestor, fireEvent, from, get, getChildren, getEventBus, getId, getListeners, getLocale, getParent, getTranslation, getTranslation, getTranslation, getTranslation, getTranslation, getTranslation, getUI, hasListener, isAttached, isTemplateMapped, isVisible, onAttach, onDetach, onEnabledStateChanged, removeFromParent, scrollIntoView, scrollIntoView, set, setElement, setId
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.vaadin.flow.component.AttachNotifier
addAttachListener
Methods inherited from interface com.vaadin.flow.component.DetachNotifier
addDetachListener
Methods inherited from interface com.vaadin.flow.component.HasStyle
addClassName, addClassNames, getClassName, getClassNames, getStyle, hasClassName, removeClassName, removeClassNames, setClassName, setClassName
-
Field Details
-
grid
-
-
Constructor Details
-
Column
Constructs a new Column for use inside a Grid.- Parameters:
grid
- the grid this column is attached tocolumnId
- unique identifier of this columnrenderer
- the renderer to use in this column, must not benull
-
-
Method Details
-
destroyDataGenerators
protected void destroyDataGenerators() -
getInternalId
-
getRenderer
Get the renderer used for this column.Note: Mutating the renderer after the Grid has been rendered on the client will not change the column, and can lead to undefined behavior.
- Returns:
- the renderer used for this column, should never be
null
-
setRenderer
Set the renderer for this column.- Parameters:
renderer
- the new renderer to be used for this column, must not benull
- Since:
- 24.1
-
setWidth
Sets the width of this column as a CSS-string.- Parameters:
width
- the width to set this column to, as a CSS-string, notnull
- Returns:
- this column, for method chaining
- See Also:
-
getWidth
Gets the width of this column as a CSS-string.- Returns:
- the width of this column as a CSS-string
- See Also:
-
setFlexGrow
Sets the flex grow ratio for this column. When set to 0, column width is fixed.- Parameters:
flexGrow
- the flex grow ratio- Returns:
- this column, for method chaining
- See Also:
-
getFlexGrow
Gets the flex grow value, by default 1.- Returns:
- the flex grow value, by default 1
- See Also:
-
setAutoWidth
Enables or disables automatic width for this column.Automatically sets the width of the column based on the column contents when this is set to
true
.For performance reasons the column width is calculated automatically only once when the grid items are rendered for the first time and the calculation only considers the rows which are currently rendered in DOM (a bit more than what is currently visible). If the grid is scrolled, or the cell content changes, the column width might not match the contents anymore.
Hidden columns are ignored in the calculation and their widths are not automatically updated when you show a column that was initially hidden.
You can manually trigger the auto sizing behavior again by calling
Grid.recalculateColumnWidths()
.The column width may still grow larger when
flexGrow
is not 0.- Parameters:
autoWidth
- whether to enable or disable automatic width on this column- Returns:
- this column, for method chaining
- See Also:
-
isAutoWidth
public boolean isAutoWidth()Gets this column's auto width state.- Returns:
- whether this column has automatic width enabled
-
setKey
Sets the user-defined identifier to map this column. The key can be used to fetch the column later withGrid.getColumnByKey(String)
.The key is also used as the
backend sort property
for this column if no sort property or sort order provider has been set for this column.The key has to be unique within the grid, and it can't be changed after set once.
- Parameters:
key
- the identifier key, can't benull
- Returns:
- this column
- See Also:
-
getKey
Gets the user-defined key for this column, ornull
if no key has been set.- Returns:
- the user-defined key
-
getElement
Gets the underlying<vaadin-grid-column>
element.It is highly discouraged to directly use the API exposed by the returned element.
- Specified by:
getElement
in interfaceHasElement
- Overrides:
getElement
in classComponent
- Returns:
- the root element of this component
-
setComparator
Sets a comparator to use with in-memory sorting with this column. Sorting with a back-end is done usingsetSortProperty(String...)
.Note: calling this method automatically sets the column as sortable with
setSortable(boolean)
.Note: Comparator is not serializable. If you need to write serializable implementation, use inlined class of
SerializableComparator
instead of Lambda expression.- Parameters:
comparator
- the comparator to use when sorting data in this column- Returns:
- this column
-
setComparator
public <V extends Comparable<? super V>> Grid.Column<T> setComparator(ValueProvider<T, V> keyExtractor) Sets a comparator to use with in-memory sorting with this column based on the return type of the givenValueProvider
.Sorting with a back-end is done usingsetSortProperty(String[])
.Note: calling this method automatically sets the column as sortable with
setSortable(boolean)
.- Type Parameters:
V
- the value of the column- Parameters:
keyExtractor
- the value provider used to extract theComparable
sort key- Returns:
- this column
- See Also:
-
getComparator
Gets the comparator to use with in-memory sorting for this column when sorting in the given direction.Note: calling this method automatically sets the column as sortable with
setSortable(boolean)
.- Parameters:
sortDirection
- the direction this column is sorted by- Returns:
- comparator for this column
-
setSortProperty
Sets strings describing back end properties to be used when sorting this column.Note: calling this method automatically sets the column as sortable with
setSortable(boolean)
.- Parameters:
properties
- the array of strings describing backend properties- Returns:
- this column
-
setSortOrderProvider
Sets the sort orders when sorting this column. The sort order provider is a function which providesQuerySortOrder
objects to describe how to sort by this column.The default provider uses the sort properties set with
setSortProperty(String...)
.Note: calling this method automatically sets the column as sortable with
setSortable(boolean)
.- Parameters:
provider
- the function to use when generating sort orders with the given direction- Returns:
- this column
-
getSortOrder
Gets the sort orders to use with back-end sorting for this column when sorting in the given direction.- Parameters:
direction
- the sorting direction- Returns:
- stream of sort orders
- See Also:
-
setSortable
Sets whether the user can sort this column or not.- Parameters:
sortable
-true
if the column can be sorted by the user;false
if not- Returns:
- this column
-
isSortable
public boolean isSortable()Gets whether this column is sortable (e.g. shows the sorting indicators at the client-side).- Returns:
true
if the column is sortable,false
otherwise
-
setHeader
Sets a header text to the column.If there are no header rows when calling this method, the first header row will be created. If there are header rows, the header will be set on the first created header row and it will override any existing header.
- Parameters:
labelText
- the text to be shown at the column header- Returns:
- this column, for method chaining
-
setHeader
Sets a header component to the column.If there are no header rows when calling this method, the first header row will be created. If there are header rows, the header will be set on the first created header row and it will override any existing header.
- Parameters:
headerComponent
- the component to be used in the header of the column- Returns:
- this column, for method chaining
-
setEditorComponent
Sets a component to use for editing values of this column in the editor row. This is a convenient way for use in simple cases where the same component can be used to edit all the items. UsesetEditorComponent(SerializableFunction)
to support more complex cases.- Parameters:
editorComponent
- the editor component, ornull
to remove the editor component for this column- Returns:
- this column
- See Also:
-
setEditorComponent
public Grid.Column<T> setEditorComponent(SerializableFunction<T, ? extends Component> componentCallback) Sets a function that returns the editor component to be used for an specific item in the editor row.- Parameters:
componentCallback
- the editor component function, ornull
to remove the editor component for this column- Returns:
- this column
- See Also:
-
getEditorComponent
Gets the editor component that is used for this column.- Returns:
- the editor component, or
null
if no component is set, or if it was set by usingsetEditorComponent(SerializableFunction)
. - See Also:
-
setClassNameGenerator
Sets the function that is used for generating CSS class names for cells in this column. Returningnull
from the generator results in no custom class name being set. Multiple class names can be returned from the generator as space-separated.If
Grid.setClassNameGenerator(SerializableFunction)
is used together with this method, resulting class names from both methods will be effective. Class names generated by grid are applied to the cells before the class names generated by column. This means that if the classes contain conflicting style properties, column's classes will win.- Parameters:
classNameGenerator
- the class name generator to set, notnull
- Returns:
- this column
- Throws:
NullPointerException
- ifclassNameGenerator
isnull
- See Also:
-
setPartNameGenerator
Sets the function that is used for generating CSS part names for cells in this column. Returningnull
from the generator results in no custom part name being set. Multiple part names can be returned from the generator as space-separated.If
Grid.setPartNameGenerator(SerializableFunction)
is used together with this method, resulting part names from both methods will be effective.- Parameters:
partNameGenerator
- the part name generator to set, notnull
- Returns:
- this column
- Throws:
NullPointerException
- ifpartNameGenerator
isnull
- See Also:
-
setTooltipGenerator
Sets the function that is used for generating tooltip text for cells in this column. Returningnull
from the generator results in no tooltip being set.- Parameters:
tooltipGenerator
- the tooltip generator to set, notnull
- Returns:
- this column
- Throws:
NullPointerException
- ifclassNameGenerator
isnull
-
getClassNameGenerator
Gets the function that is used for generating CSS class names for cells in this column.- Returns:
- the class name generator
-
getPartNameGenerator
Gets the function that is used for generating CSS part names for cells in this column.- Returns:
- the part name generator
-
getTooltipGenerator
-
getBottomLevelColumn
Gets the<vaadin-grid-column>
component that is a child of this component, or this component in case this is a bottom level<vaadin-grid-column>
component. This method should be called only on components which have only one such bottom-level column (not on ColumnGroups with multiple children).- Returns:
- the bottom column component
-
getGrid
Gets the owner of this column.- Returns:
- the grid which owns this column
-
setVisible
public void setVisible(boolean visible) Sets the component visibility value.When a component is set as invisible, all the updates of the component from the server to the client are blocked until the component is set as visible again.
Invisible components don't receive any updates from the client-side. Unlike the server-side updates, client-side updates, if any, are discarded while the component is invisible, and are not transmitted to the server when the component is made visible.
Note that column related data is sent to the client side even if the column is invisible. Use
Grid.removeColumn(Column)
to remove column (or don't add the column all) and avoid sending extra data.- Overrides:
setVisible
in classComponent
- Parameters:
visible
- the component visibility value- See Also:
-
getHeaderText
Returns the header text of the column.- Returns:
- the header text
-
setHeaderText
-
getHeaderComponent
Returns the header component of the column.- Returns:
- the header component
-
setHeaderComponent
-
moveHeaderContent
protected void moveHeaderContent(com.vaadin.flow.component.grid.AbstractColumn<?> otherColumn) Moves the current header content, either a text or a component, to a different column or column group. Also clears the content of this column.- Parameters:
otherColumn
- the column or group to move the content to
-
updateSortingIndicators
protected void updateSortingIndicators(boolean sortable) Updates this component to either have sorting indicators according to the sortable state of the underlying column, or removes the sorting indicators.- Parameters:
sortable
-true
to have sorting indicators if the column is sortable,false
to not have sorting indicators
-
setSortingIndicators
protected void setSortingIndicators(boolean sortingIndicators) Sets this component to show sorting indicators or not.- Parameters:
sortingIndicators
-true
to show sorting indicators,false
to remove them
-
hasSortingIndicators
protected boolean hasSortingIndicators() -
getBottomChildColumns
Gets recursively the child components of this component that are instances of Column.- Returns:
- the Column children of this component
-
setResizable
When set totrue
, the column is user-resizable. By default this is set tofalse
.- Parameters:
resizable
- whether to allow user resizing of this column- Returns:
- this column, for method chaining
-
isResizable
Gets whether this column is user-resizable.- Returns:
- whether this column is user-resizable
-
setFrozen
Sets this column's frozen state.Note: Columns are frozen in-place, freeze columns from left to right for a consistent outcome.
- Parameters:
frozen
- whether to freeze or unfreeze this column- Returns:
- this column, for method chaining
-
isFrozen
Gets the this column's frozen state.- Returns:
- whether this column is frozen
-
setFrozenToEnd
Sets this column's frozen state.Note: Columns are frozen in-place, freeze columns from right to left for a consistent outcome.
- Parameters:
frozenToEnd
- whether to freeze or unfreeze this column- Returns:
- this column, for method chaining
- Since:
- 23.1
-
isFrozenToEnd
Gets the this column's frozen state.- Returns:
- whether this column is frozen to end
- Since:
- 23.1
-
setTextAlign
Sets the column text align.- Parameters:
textAlign
- the text alignment of the column. Setting it tonull
resets the alignment to the default valueColumnTextAlign.START
.- Returns:
- this column, for method chaining
-
getTextAlign
Gets the column text align. The default isColumnTextAlign.START
.- Returns:
- the column text align, not
null
-