com.vaadin.flow.component.grid.
Class Grid.Column<T>
- java.lang.Object
-
- com.vaadin.flow.component.Component
-
- com.vaadin.flow.component.grid.Grid.Column<T>
-
Type Parameters:
T
- type of the underlying grid this column is compatible withAll Implemented Interfaces:
Direct Known Subclasses:
@Tag("vaadin-grid-column") @NpmPackage(value="@vaadin/polymer-legacy-adapter", version="23.5.12") @JsModule("@vaadin/polymer-legacy-adapter/style-modules.js") public static class Grid.Column<T> extends Component
Server-side component for the
<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
Fields Modifier and Type Field Description protected Element
footerTemplate
protected Grid<?>
grid
protected Element
headerTemplate
-
Method Summary
All Methods Modifier and Type Method Description protected String
addGridSorter(String templateInnerHtml)
protected void
destroyDataGenerators()
protected List<Grid.Column<?>>
getBottomChildColumns()
Gets recursively the child components of this component that are instances of Column.
protected Grid.Column<?>
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.SerializableFunction<T,String>
getClassNameGenerator()
Gets the function that is used for generating CSS class names for cells in this column.
SerializableComparator<T>
getComparator(SortDirection sortDirection)
Gets the comparator to use with in-memory sorting for this column when sorting in the given direction.
Component
getEditorComponent()
Gets the editor component that is used for this column.
Element
getElement()
Gets the underlying
<vaadin-grid-column>
element.int
getFlexGrow()
Gets the flex grow value, by default 1.
Component
getFooterComponent()
Returns the footer component of the column.
protected Renderer<?>
getFooterRenderer()
Deprecated.
since 23.3, internal usage of renderers for grid headers and footers will be removed in 24String
getFooterText()
Returns the footer text of the column.
Grid<?>
getGrid()
Gets the owner of this column.
Component
getHeaderComponent()
Returns the header component of the column.
protected Renderer<?>
getHeaderRenderer()
Deprecated.
since 23.3, internal usage of renderers for grid headers and footers will be removed in 24String
getHeaderText()
Returns the header text of the column.
protected String
getInternalId()
String
getKey()
Gets the user-defined key for this column, or
null
if no key has been set.Renderer<T>
getRenderer()
Get the renderer used for this column.
Stream<QuerySortOrder>
getSortOrder(SortDirection direction)
Gets the sort orders to use with back-end sorting for this column when sorting in the given direction.
default ColumnTextAlign
getTextAlign()
Gets the column text align.
SerializableFunction<T,String>
getTooltipGenerator()
String
getWidth()
Gets the width of this column as a CSS-string.
protected boolean
hasSortingIndicators()
boolean
isAutoWidth()
Gets this column's auto width state.
default boolean
isFrozen()
Gets the this column's frozen state.
default boolean
isFrozenToEnd()
Gets the this column's frozen state.
default boolean
isResizable()
Gets whether this column is user-resizable.
boolean
isSortable()
Gets whether this column is sortable (e.g.
protected void
moveFooterContent(com.vaadin.flow.component.grid.AbstractColumn<?> otherColumn)
protected void
moveHeaderContent(com.vaadin.flow.component.grid.AbstractColumn<?> otherColumn)
Grid.Column<T>
setAutoWidth(boolean autoWidth)
Enables or disables automatic width for this column.
Grid.Column<T>
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 given
ValueProvider
.Sorting with a back-end is done usingsetSortProperty(String[])
.Grid.Column<T>
setComparator(Comparator<T> comparator)
Sets a comparator to use with in-memory sorting with this column.
Grid.Column<T>
setEditorComponent(Component editorComponent)
Sets a component to use for editing values of this column in the editor row.
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.
Grid.Column<T>
setFlexGrow(int flexGrow)
Sets the flex grow ratio for this column.
Grid.Column<T>
setFooter(Component footerComponent)
Sets a footer component to the column.
Grid.Column<T>
setFooter(String labelText)
Sets a footer text to the column.
protected void
setFooterComponent(Component component)
protected void
setFooterRenderer(Renderer<?> renderer)
Deprecated.
since 23.3, internal usage of renderers for grid headers and footers will be removed in 24protected void
setFooterText(String text)
default T
setFrozen(boolean frozen)
Sets this column's frozen state.
default T
setFrozenToEnd(boolean frozenToEnd)
Sets this column's frozen state.
Grid.Column<T>
setHeader(Component headerComponent)
Sets a header component to the column.
Grid.Column<T>
setHeader(String labelText)
Sets a header text to the column.
protected void
setHeaderComponent(Component component)
protected void
setHeaderRenderer(Renderer<?> renderer)
Deprecated.
since 23.3, internal usage of renderers for grid headers and footers will be removed in 24protected void
setHeaderText(String text)
Grid.Column<T>
setKey(String key)
Sets the user-defined identifier to map this column.
default T
setResizable(boolean resizable)
When set to
true
, the column is user-resizable.Grid.Column<T>
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.
Grid.Column<T>
setSortOrderProvider(SortOrderProvider provider)
Sets the sort orders when sorting this column.
Grid.Column<T>
setSortProperty(String... properties)
Sets strings describing back end properties to be used when sorting this column.
default T
setTextAlign(ColumnTextAlign textAlign)
Sets the column text align.
Grid.Column<T>
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.
Grid.Column<T>
setWidth(String width)
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, 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
-
-
-
-
Method Detail
-
destroyDataGenerators
protected void destroyDataGenerators()
-
getInternalId
protected String getInternalId()
-
getRenderer
public Renderer<T> 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
-
setWidth
public Grid.Column<T> setWidth(String width)
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
@Synchronize("column-drag-resize") public String getWidth()
Gets the width of this column as a CSS-string.
Returns:
the width of this column as a CSS-string
See Also:
-
setFlexGrow
public Grid.Column<T> setFlexGrow(int flexGrow)
Sets the flex grow ratio for this column. When set to 0, column width is fixed.
Parameters:
flexGrow
- the flex grow ratioReturns:
this column, for method chaining
See Also:
-
getFlexGrow
@Synchronize("column-drag-resize") public int getFlexGrow()
Gets the flex grow value, by default 1.
Returns:
the flex grow value, by default 1
See Also:
-
setAutoWidth
public Grid.Column<T> setAutoWidth(boolean autoWidth)
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 columnReturns:
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
public Grid.Column<T> setKey(String key)
Sets the user-defined identifier to map this column. The key can be used to fetch the column later with
Grid.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:
setSortProperty(String...)
,setSortOrderProvider(SortOrderProvider)
-
getKey
public String getKey()
Gets the user-defined key for this column, or
null
if no key has been set.Returns:
the user-defined key
-
getElement
public Element 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
public Grid.Column<T> setComparator(Comparator<T> comparator)
Sets a comparator to use with in-memory sorting with this column. Sorting with a back-end is done using
setSortProperty(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 columnReturns:
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 given
ValueProvider
.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 columnParameters:
keyExtractor
- the value provider used to extract theComparable
sort keyReturns:
this column
See Also:
-
getComparator
public SerializableComparator<T> getComparator(SortDirection sortDirection)
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 byReturns:
comparator for this column
-
setSortProperty
public Grid.Column<T> setSortProperty(String... properties)
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 propertiesReturns:
this column
-
setSortOrderProvider
public Grid.Column<T> setSortOrderProvider(SortOrderProvider provider)
Sets the sort orders when sorting this column. The sort order provider is a function which provides
QuerySortOrder
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 directionReturns:
this column
-
getSortOrder
public Stream<QuerySortOrder> getSortOrder(SortDirection direction)
Gets the sort orders to use with back-end sorting for this column when sorting in the given direction.
Parameters:
direction
- the sorting directionReturns:
stream of sort orders
See Also:
setSortProperty(String...)
,Component.setId(String)
,setSortOrderProvider(SortOrderProvider)
-
setSortable
public Grid.Column<T> setSortable(boolean sortable)
Sets whether the user can sort this column or not.
Parameters:
sortable
-true
if the column can be sorted by the user;false
if notReturns:
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
public Grid.Column<T> setHeader(String labelText)
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 headerReturns:
this column, for method chaining
-
setFooter
public Grid.Column<T> setFooter(String labelText)
Sets a footer text to the column.
If there are no footer rows when calling this method, the first footer row will be created. If there are footer rows, the footer will be set on the bottom footer row and it will override any existing footer.
Parameters:
labelText
- the text to be shown at the column footerReturns:
this column, for method chaining
-
setHeader
public Grid.Column<T> setHeader(Component headerComponent)
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 columnReturns:
this column, for method chaining
-
setFooter
public Grid.Column<T> setFooter(Component footerComponent)
Sets a footer component to the column.
If there are no footer rows when calling this method, the first footer row will be created. If there are footer rows, the footer will be set on the bottom footer row and it will override any existing footer.
Parameters:
footerComponent
- the component to be used in the footer of the columnReturns:
this column, for method chaining
-
setEditorComponent
public Grid.Column<T> setEditorComponent(Component editorComponent)
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. Use
setEditorComponent(SerializableFunction)
to support more complex cases.Parameters:
editorComponent
- the editor component, ornull
to remove the editor component for this columnReturns:
this column
See Also:
Grid.getEditor()
,Binder.bind(HasValue, ValueProvider, Setter)
-
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 columnReturns:
this column
See Also:
-
getEditorComponent
public Component 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
public Grid.Column<T> setClassNameGenerator(SerializableFunction<T,String> classNameGenerator)
Sets the function that is used for generating CSS class names for cells in this column. Returning
null
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:
-
setTooltipGenerator
public Grid.Column<T> setTooltipGenerator(SerializableFunction<T,String> tooltipGenerator)
Sets the function that is used for generating tooltip text for cells in this column. Returning
null
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
public SerializableFunction<T,String> getClassNameGenerator()
Gets the function that is used for generating CSS class names for cells in this column.
Returns:
the class name generator
-
getTooltipGenerator
public SerializableFunction<T,String> getTooltipGenerator()
-
getBottomLevelColumn
protected Grid.Column<?> 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
public Grid<?> 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 valueSee Also:
-
setHeaderRenderer
@Deprecated protected void setHeaderRenderer(Renderer<?> renderer)
Deprecated.since 23.3, internal usage of renderers for grid headers and footers will be removed in 24Only intended for internal use.
Parameters:
renderer
- the new footer renderer
-
setFooterRenderer
@Deprecated protected void setFooterRenderer(Renderer<?> renderer)
Deprecated.since 23.3, internal usage of renderers for grid headers and footers will be removed in 24Only intended for internal use.
Parameters:
renderer
- the new footer renderer
-
getHeaderText
public String getHeaderText()
Returns the header text of the column.
Returns:
the header text
-
setHeaderText
protected void setHeaderText(String text)
-
getFooterText
public String getFooterText()
Returns the footer text of the column.
Returns:
the footer text
-
setFooterText
protected void setFooterText(String text)
-
getHeaderComponent
public Component getHeaderComponent()
Returns the header component of the column.
Returns:
the header component
-
setHeaderComponent
protected void setHeaderComponent(Component component)
-
getFooterComponent
public Component getFooterComponent()
Returns the footer component of the column.
Returns:
the footer component
-
setFooterComponent
protected void setFooterComponent(Component component)
-
getHeaderRenderer
@Deprecated protected Renderer<?> getHeaderRenderer()
Deprecated.since 23.3, internal usage of renderers for grid headers and footers will be removed in 24Only intended for internal use.
Returns:
the header renderer
-
getFooterRenderer
@Deprecated protected Renderer<?> getFooterRenderer()
Deprecated.since 23.3, internal usage of renderers for grid headers and footers will be removed in 24Only intended for internal use.
Returns:
the footer renderer
-
moveHeaderContent
protected void moveHeaderContent(com.vaadin.flow.component.grid.AbstractColumn<?> otherColumn)
-
moveFooterContent
protected void moveFooterContent(com.vaadin.flow.component.grid.AbstractColumn<?> otherColumn)
-
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
protected List<Grid.Column<?>> getBottomChildColumns()
Gets recursively the child components of this component that are instances of Column.
Returns:
the Column children of this component
-
setResizable
public default T setResizable(boolean resizable)
When set to
true
, the column is user-resizable. By default this is set tofalse
.Parameters:
resizable
- whether to allow user resizing of this columnReturns:
this column, for method chaining
-
isResizable
@Synchronize("resizable-changed") public default boolean isResizable()
Gets whether this column is user-resizable.
Returns:
whether this column is user-resizable
-
setFrozen
public default T setFrozen(boolean frozen)
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 columnReturns:
this column, for method chaining
-
isFrozen
@Synchronize("frozen-changed") public default boolean isFrozen()
Gets the this column's frozen state.
Returns:
whether this column is frozen
-
setFrozenToEnd
public default T setFrozenToEnd(boolean frozenToEnd)
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 columnReturns:
this column, for method chaining
Since:
23.1
-
isFrozenToEnd
@Synchronize("frozen-to-end-changed") public default boolean isFrozenToEnd()
Gets the this column's frozen state.
Returns:
whether this column is frozen to end
Since:
23.1
-
setTextAlign
public default T setTextAlign(ColumnTextAlign textAlign)
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
@Synchronize("text-align-changed") public default ColumnTextAlign getTextAlign()
Gets the column text align. The default is
ColumnTextAlign.START
.Returns:
the column text align, not
null
-
-