com.vaadin.ui.

Class Grid

  • All Implemented Interfaces:

    ContextClickEvent.ContextClickNotifier, FieldEvents.BlurNotifier, FieldEvents.FocusNotifier, ItemClickEvent.ItemClickNotifier, MethodEventSource, SelectionEvent.SelectionNotifier, SortEvent.SortNotifier, ClientConnector, Sizeable, Connector, Component, Component.Focusable, HasComponents, SelectiveRenderer, Serializable, Iterable<Component>


    public class Grid
    extends AbstractFocusable
    implements SelectionEvent.SelectionNotifier, SortEvent.SortNotifier, SelectiveRenderer, ItemClickEvent.ItemClickNotifier

    A grid component for displaying tabular data.

    Grid is always bound to a Container.Indexed, but is not a Container of any kind in of itself. The contents of the given Container is displayed with the help of Renderers.

    Headers and Footers

    Converters and Renderers

    Each column has its own Renderer that displays data into something that can be displayed in the browser. That data is first converted with a Converter into something that the Renderer can process. This can also be an implicit step - if a column has a simple data type, like a String, no explicit assignment is needed.

    Usually a renderer takes some kind of object, and converts it into a HTML-formatted string.

     Grid grid = new Grid(myContainer);
     Column column = grid.getColumn(STRING_DATE_PROPERTY);
     column.setConverter(new StringToDateConverter());
     column.setRenderer(new MyColorfulDateRenderer());
     

    Lazy Loading

    The data is accessed as it is needed by Grid and not any sooner. In other words, if the given Container is huge, but only the first few rows are displayed to the user, only those (and a few more, for caching purposes) are accessed.

    Selection Modes and Models

    Grid supports three selection modes (single, multi, none), and comes bundled with one model for each of the modes. The distinction between a selection mode and selection model is as follows: a mode essentially says whether you can have one, many or no rows selected. The model, however, has the behavioral details of each. A single selection model may require that the user deselects one row before selecting another one. A variant of a multiselect might have a configurable maximum of rows that may be selected. And so on.

     Grid grid = new Grid(myContainer);
    
     // uses the bundled SingleSelectionModel class
     grid.setSelectionMode(SelectionMode.SINGLE);
    
     // changes the behavior to a custom selection model
     grid.setSelectionModel(new MyTwoSelectionModel());
     

    Since:

    7.4

    Author:

    Vaadin Ltd

    See Also:

    Serialized Form

    • Constructor Detail

      • Grid

        public Grid()

        Creates a new Grid with a new IndexedContainer as the data source.

      • Grid

        public Grid(Container.Indexed dataSource)

        Creates a new Grid using the given data source.

        Parameters:

        dataSource - the indexed container to use as a data source

      • Grid

        public Grid(String caption)

        Creates a new Grid with the given caption and a new IndexedContainer data source.

        Parameters:

        caption - the caption of the grid

      • Grid

        public Grid(String caption,
                    Container.Indexed dataSource)

        Creates a new Grid with the given caption and data source. If the data source is null, a new IndexedContainer will be used.

        Parameters:

        caption - the caption of the grid

        dataSource - the indexed container to use as a data source

    • Method Detail

      • beforeClientResponse

        public void beforeClientResponse(boolean initial)

        Description copied from interface: ClientConnector

        Called before the shared state and RPC invocations are sent to the client. Gives the connector an opportunity to set computed/dynamic state values or to invoke last minute RPC methods depending on other component features.

        Specified by:

        beforeClientResponse in interface ClientConnector

        Overrides:

        beforeClientResponse in class AbstractComponent

        Parameters:

        initial - true if the client-side connector will be created and initialized after this method has been invoked. false if there is already an initialized client-side connector.

      • setContainerDataSource

        public void setContainerDataSource(Container.Indexed container)

        Sets the grid data source.

        Note Grid columns are based on properties and try to detect a correct converter for the data type. The columns are not reinitialized automatically if the container is changed, and if the same properties are present after container change, the columns are reused. Properties with same names, but different data types will lead to unpredictable behaviour.

        Parameters:

        container - The container data source. Cannot be null.

        Throws:

        IllegalArgumentException - if the data source is null

      • getContainerDataSource

        public Container.Indexed getContainerDataSource()

        Returns the grid data source.

        Returns:

        the container data source of the grid

      • getColumn

        public Grid.Column getColumn(Object propertyId)

        Returns a column based on the property id

        Parameters:

        propertyId - the property id of the column

        Returns:

        the column or null if not found

      • getColumns

        public List<Grid.Column> getColumns()

        Returns a copy of currently configures columns in their current visual order in this Grid.

        Returns:

        unmodifiable copy of current columns in visual order

      • addColumn

        public Grid.Column addColumn(Object propertyId)
                              throws IllegalStateException

        Adds a new Column to Grid. Also adds the property to container with data type String, if property for column does not exist in it. Default value for the new property is an empty String.

        Note that adding a new property is only done for the default container that Grid sets up with the default constructor.

        Parameters:

        propertyId - the property id of the new column

        Returns:

        the new column

        Throws:

        IllegalStateException - if column for given property already exists in this grid

      • addColumn

        public Grid.Column addColumn(Object propertyId,
                                     Class<?> type)

        Adds a new Column to Grid. This function makes sure that the property with the given id and data type exists in the container. If property does not exists, it will be created.

        Default value for the new property is 0 if type is Integer, Double and Float. If type is String, default value is an empty string. For all other types the default value is null.

        Note that adding a new property is only done for the default container that Grid sets up with the default constructor.

        Parameters:

        propertyId - the property id of the new column

        type - the data type for the new property

        Returns:

        the new column

        Throws:

        IllegalStateException - if column for given property already exists in this grid or property already exists in the container with wrong type

      • removeAllColumns

        public void removeAllColumns()

        Removes all columns from this Grid.

      • isColumnReorderingAllowed

        public boolean isColumnReorderingAllowed()

        Returns whether column reordering is allowed. Default value is false.

        Returns:

        true if reordering is allowed

        Since:

        7.5.0

      • setColumnReorderingAllowed

        public void setColumnReorderingAllowed(boolean columnReorderingAllowed)

        Sets whether or not column reordering is allowed. Default value is false.

        Parameters:

        columnReorderingAllowed - specifies whether column reordering is allowed

        Since:

        7.5.0

      • getState

        protected GridState getState()

        Description copied from class: AbstractComponent

        Returns the shared state bean with information to be sent from the server to the client. Subclasses should override this method and set any relevant fields of the state returned by super.getState().

        Overrides:

        getState in class AbstractFocusable

        Returns:

        updated component shared state

      • setColumnResizeMode

        public void setColumnResizeMode(ColumnResizeMode mode)

        Sets the column resize mode to use. The default mode is ColumnResizeMode.ANIMATED.

        Parameters:

        mode - a ColumnResizeMode value

        Since:

        7.7.5

      • removeColumn

        public void removeColumn(Object propertyId)
                          throws IllegalArgumentException

        Removes a column from Grid based on a property id.

        Parameters:

        propertyId - The property id of column to be removed

        Throws:

        IllegalArgumentException - if there is no column for given property id in this grid

      • setColumns

        public void setColumns(Object... propertyIds)

        Sets the columns and their order for the grid. Current columns whose property id is not in propertyIds are removed. Similarly, a column is added for any property id in propertyIds that has no corresponding column in this Grid.

        Parameters:

        propertyIds - properties in the desired column order

        Since:

        7.5.0

      • setColumnOrder

        public void setColumnOrder(Object... propertyIds)

        Sets a new column order for the grid. All columns which are not ordered here will remain in the order they were before as the last columns of grid.

        Parameters:

        propertyIds - properties in the order columns should be

      • setFrozenColumnCount

        public void setFrozenColumnCount(int numberOfColumns)

        Sets the number of frozen columns in this grid. Setting the count to 0 means that no data columns will be frozen, but the built-in selection checkbox column will still be frozen if it's in use. Setting the count to -1 will also disable the selection column.

        The default value is 0.

        Parameters:

        numberOfColumns - the number of columns that should be frozen

        Throws:

        IllegalArgumentException - if the column count is < 0 or > the number of visible columns

      • getFrozenColumnCount

        public int getFrozenColumnCount()

        Gets the number of frozen columns in this grid. 0 means that no data columns will be frozen, but the built-in selection checkbox column will still be frozen if it's in use. -1 means that not even the selection column is frozen.

        NOTE: this count includes hidden columns in the count.

        Returns:

        the number of frozen columns

        See Also:

        setFrozenColumnCount(int)

      • scrollTo

        public void scrollTo(Object itemId,
                             ScrollDestination destination)
                      throws IllegalArgumentException

        Scrolls to a certain item, using user-specified scroll destination.

        If the item has visible details, its size will also be taken into account.

        Parameters:

        itemId - id of item to scroll to.

        destination - value specifying desired position of scrolled-to row.

        Throws:

        IllegalArgumentException - if the provided id is not recognized by the data source.

      • scrollToStart

        public void scrollToStart()

        Scrolls to the beginning of the first data row.

      • scrollToEnd

        public void scrollToEnd()

        Scrolls to the end of the last data row.

      • setHeightByRows

        public void setHeightByRows(double rows)

        Sets the number of rows that should be visible in Grid's body, while getHeightMode() is HeightMode.ROW.

        If Grid is currently not in HeightMode.ROW, the given value is remembered, and applied once the mode is applied.

        Parameters:

        rows - The height in terms of number of rows displayed in Grid's body. If Grid doesn't contain enough rows, white space is displayed instead. If null is given, then Grid's height is undefined

        Throws:

        IllegalArgumentException - if rows is zero or less

        IllegalArgumentException - if rows is infinite

        IllegalArgumentException - if rows is NaN

      • setHeightMode

        public void setHeightMode(HeightMode heightMode)

        Defines the mode in which the Grid widget's height is calculated.

        If HeightMode.CSS is given, Grid will respect the values given via a setHeight-method, and behave as a traditional Component.

        If HeightMode.ROW is given, Grid will make sure that the body will display as many rows as getHeightByRows() defines. Note: If headers/footers are inserted or removed, the widget will resize itself to still display the required amount of rows in its body. It also takes the horizontal scrollbar into account.

        Parameters:

        heightMode - the mode in to which Grid should be set

      • setSelectionMode

        public Grid.SelectionModel setSelectionMode(Grid.SelectionMode selectionMode)
                                             throws IllegalArgumentException

        Sets the Grid's selection mode.

        Grid supports three selection modes: multiselect, single select and no selection, and this is a convenience method for choosing between one of them.

        Technically, this method is a shortcut that can be used instead of calling setSelectionModel with a specific SelectionModel instance. Grid comes with three built-in SelectionModel classes, and the Grid.SelectionMode enum represents each of them.

        Essentially, the two following method calls are equivalent:

         grid.setSelectionMode(SelectionMode.MULTI);
         grid.setSelectionModel(new MultiSelectionMode());
         

        Parameters:

        selectionMode - the selection mode to switch to

        Returns:

        The Grid.SelectionModel instance that was taken into use

        Throws:

        IllegalArgumentException - if selectionMode is null

        See Also:

        Grid.SelectionModel

      • isSelected

        public boolean isSelected(Object itemId)

        Checks whether an item is selected or not.

        Parameters:

        itemId - the item id to check for

        Returns:

        true iff the item is selected

      • getSelectedRows

        public Collection<Object> getSelectedRows()

        Returns a collection of all the currently selected itemIds.

        This method is a shorthand that delegates to the selection model.

        Returns:

        a collection of all the currently selected itemIds

      • fireSelectionEvent

        public void fireSelectionEvent(Collection<Object> oldSelection,
                                       Collection<Object> newSelection)

        Fires a selection change event.

        Note: This is not a method that should be called by application logic. This method is publicly accessible only so that SelectionModels would be able to inform Grid of these events.

        Parameters:

        newSelection - the selection that was added by this event

        oldSelection - the selection that was removed by this event

      • addColumnReorderListener

        public void addColumnReorderListener(Grid.ColumnReorderListener listener)

        Registers a new column reorder listener.

        Parameters:

        listener - the listener to register

        Since:

        7.5.0

      • removeColumnReorderListener

        public void removeColumnReorderListener(Grid.ColumnReorderListener listener)

        Removes a previously registered column reorder listener.

        Parameters:

        listener - the listener to remove

        Since:

        7.5.0

      • addColumnResizeListener

        public void addColumnResizeListener(Grid.ColumnResizeListener listener)

        Registers a new column resize listener.

        Parameters:

        listener - the listener to register

      • removeColumnResizeListener

        public void removeColumnResizeListener(Grid.ColumnResizeListener listener)

        Removes a previously registered column resize listener.

        Parameters:

        listener - the listener to remove

      • sort

        public void sort(Sort s)

        Sets the current sort order using the fluid Sort API. Read the documentation for Sort for more information.

        Note: Sorting by a property that has no column in Grid will hide all possible sorting indicators.

        Parameters:

        s - a sort instance

        Throws:

        IllegalStateException - if container is not sortable (does not implement Container.Sortable)

        IllegalArgumentException - if trying to sort by non-existing property

      • sort

        public void sort(Object propertyId)

        Sort this Grid in ascending order by a specified property.

        Note: Sorting by a property that has no column in Grid will hide all possible sorting indicators.

        Parameters:

        propertyId - a property ID

        Throws:

        IllegalStateException - if container is not sortable (does not implement Container.Sortable)

        IllegalArgumentException - if trying to sort by non-existing property

      • sort

        public void sort(Object propertyId,
                         SortDirection direction)

        Sort this Grid in user-specified SortOrder by a property.

        Note: Sorting by a property that has no column in Grid will hide all possible sorting indicators.

        Parameters:

        propertyId - a property ID

        direction - a sort order value (ascending/descending)

        Throws:

        IllegalStateException - if container is not sortable (does not implement Container.Sortable)

        IllegalArgumentException - if trying to sort by non-existing property

      • clearSortOrder

        public void clearSortOrder()

        Clear the current sort order, and re-sort the grid.

      • setSortOrder

        public void setSortOrder(List<SortOrder> order)

        Sets the sort order to use.

        Note: Sorting by a property that has no column in Grid will hide all possible sorting indicators.

        Parameters:

        order - a sort order list.

        Throws:

        IllegalStateException - if container is not sortable (does not implement Container.Sortable)

        IllegalArgumentException - if order is null or trying to sort by non-existing property

      • getSortOrder

        public List<SortOrder> getSortOrder()

        Get the current sort order list.

        Returns:

        a sort order list

      • removeSortListener

        public void removeSortListener(SortEvent.SortListener listener)

        Removes a sort order change listener previously added using #addSortListener(SortListener).

        Specified by:

        removeSortListener in interface SortEvent.SortNotifier

        Parameters:

        listener - the sort order change listener to remove

      • getHeader

        protected Grid.Header getHeader()

        Returns the header section of this grid. The default header contains a single row displaying the column captions.

        Returns:

        the header

      • getHeaderRow

        public Grid.HeaderRow getHeaderRow(int rowIndex)

        Gets the header row at given index.

        Parameters:

        rowIndex - 0 based index for row. Counted from top to bottom

        Returns:

        header row at given index

        Throws:

        IllegalArgumentException - if no row exists at given index

      • getDefaultHeaderRow

        public Grid.HeaderRow getDefaultHeaderRow()

        Returns the current default row of the header section. The default row is a special header row providing a user interface for sorting columns. Setting a header text for column updates cells in the default header.

        Returns:

        the default row or null if no default row set

      • getHeaderRowCount

        public int getHeaderRowCount()

        Gets the row count for the header section.

        Returns:

        row count

      • setDefaultHeaderRow

        public void setDefaultHeaderRow(Grid.HeaderRow row)

        Sets the default row of the header. The default row is a special header row providing a user interface for sorting columns.

        Parameters:

        row - the new default row, or null for no default row

        Throws:

        IllegalArgumentException - header does not contain the row

      • setHeaderVisible

        public void setHeaderVisible(boolean visible)

        Sets the visibility of the header section.

        Parameters:

        visible - true to show header section, false to hide

      • isHeaderVisible

        public boolean isHeaderVisible()

        Returns the visibility of the header section.

        Returns:

        true if visible, false otherwise.

      • getFooter

        protected Grid.Footer getFooter()

        Returns the footer section of this grid. The default header contains a single row displaying the column captions.

        Returns:

        the footer

      • getFooterRow

        public Grid.FooterRow getFooterRow(int rowIndex)

        Gets the footer row at given index.

        Parameters:

        rowIndex - 0 based index for row. Counted from top to bottom

        Returns:

        footer row at given index

        Throws:

        IllegalArgumentException - if no row exists at given index

      • getFooterRowCount

        public int getFooterRowCount()

        Gets the row count for the footer.

        Returns:

        row count

      • setFooterVisible

        public void setFooterVisible(boolean visible)

        Sets the visibility of the footer section.

        Parameters:

        visible - true to show footer section, false to hide

      • isFooterVisible

        public boolean isFooterVisible()

        Returns the visibility of the footer section.

        Returns:

        true if visible, false otherwise.

      • iterator

        public Iterator<Component> iterator()

        Description copied from interface: HasComponents

        Gets an iterator to the collection of contained components. Using this iterator it is possible to step through all components contained in this container.

        Specified by:

        iterator in interface HasComponents

        Specified by:

        iterator in interface Iterable<Component>

        Returns:

        the component iterator.

      • isRendered

        public boolean isRendered(Component childComponent)

        Description copied from interface: SelectiveRenderer

        Checks if the child component should be rendered (sent to the client side). This method allows hiding a child component from updates and communication to and from the client. It is mostly useful for parents which show only a limited number of their children at any given time and want to allow updates only for the visible children (e.g. TabSheet has one tab open at a time).

        This method can only prevent updates from reaching the client, not force child components to reach the client. If the child is set to visible, returning false will prevent the child from being sent to the client. If a child is set to invisible, this method has no effect.

        Specified by:

        isRendered in interface SelectiveRenderer

        Parameters:

        childComponent - The child component to check

        Returns:

        true if the child component may be sent to the client, false otherwise

      • setCellDescriptionGenerator

        public void setCellDescriptionGenerator(Grid.CellDescriptionGenerator generator,
                                                ContentMode contentMode)

        Sets the CellDescriptionGenerator instance and content mode for generating optional descriptions (tooltips) for individual Grid cells. If a Grid.RowDescriptionGenerator is also set, the row description it generates is displayed for cells for which generator returns null.

        Parameters:

        generator - the description generator to use or null to remove a previously set generator if any

        contentMode - the content mode for cell tooltips, not null

        Since:

        7.7.14

        See Also:

        setRowDescriptionGenerator(RowDescriptionGenerator)

      • getCellDescriptionGenerator

        public Grid.CellDescriptionGenerator getCellDescriptionGenerator()

        Returns the CellDescriptionGenerator instance used to generate descriptions (tooltips) for Grid cells.

        Returns:

        the description generator or null if no generator is set

        Since:

        7.6

      • setRowDescriptionGenerator

        public void setRowDescriptionGenerator(Grid.RowDescriptionGenerator generator,
                                               ContentMode contentMode)

        Sets the RowDescriptionGenerator instance for generating optional descriptions (tooltips) for Grid rows. If a Grid.CellDescriptionGenerator is also set, the row description generated by generator is used for cells for which the cell description generator returns null.

        Parameters:

        generator - the description generator to use or null to remove a previously set generator if any

        contentMode - the content mode for row tooltips, not null

        Since:

        7.7.14

        See Also:

        setCellDescriptionGenerator(CellDescriptionGenerator)

      • getRowDescriptionGenerator

        public Grid.RowDescriptionGenerator getRowDescriptionGenerator()

        Returns the RowDescriptionGenerator instance used to generate descriptions (tooltips) for Grid rows

        Returns:

        the description generator or null if no generator is set

        Since:

        7.6

      • setCellStyleGenerator

        public void setCellStyleGenerator(Grid.CellStyleGenerator cellStyleGenerator)

        Sets the style generator that is used for generating styles for cells

        Parameters:

        cellStyleGenerator - the cell style generator to set, or null to remove a previously set generator

      • getCellStyleGenerator

        public Grid.CellStyleGenerator getCellStyleGenerator()

        Gets the style generator that is used for generating styles for cells

        Returns:

        the cell style generator, or null if no generator is set

      • setRowStyleGenerator

        public void setRowStyleGenerator(Grid.RowStyleGenerator rowStyleGenerator)

        Sets the style generator that is used for generating styles for rows

        Parameters:

        rowStyleGenerator - the row style generator to set, or null to remove a previously set generator

      • getRowStyleGenerator

        public Grid.RowStyleGenerator getRowStyleGenerator()

        Gets the style generator that is used for generating styles for rows

        Returns:

        the row style generator, or null if no generator is set

      • addRow

        public Object addRow(Object... values)

        Adds a row to the underlying container. The order of the parameters should match the current visible column order.

        Please note that it's generally only safe to use this method during initialization. After Grid has been initialized and the visible column order might have been changed, it's better to instead add items directly to the underlying container and use Item.getItemProperty(Object) to make sure each value is assigned to the intended property.

        Parameters:

        values - the cell values of the new row, in the same order as the visible column order, not null.

        Returns:

        the item id of the new row

        Throws:

        IllegalArgumentException - if values is null

        IllegalArgumentException - if its length does not match the number of visible columns

        IllegalArgumentException - if a parameter value is not an instance of the corresponding property type

        UnsupportedOperationException - if the container does not support adding new items

      • refreshRows

        public void refreshRows(Object... itemIds)

        Refreshes, i.e. causes the client side to re-render the rows with the given item ids.

        Calling this for a row which is not currently rendered on the client side has no effect.

        Parameters:

        itemIds - the item id(s) of the row to refresh.

      • refreshAllRows

        public void refreshAllRows()

        Refreshes, i.e. causes the client side to re-render all rows.

        Since:

        7.7.7

      • setEditorEnabled

        public void setEditorEnabled(boolean isEnabled)
                              throws IllegalStateException

        Sets whether or not the item editor UI is enabled for this grid. When the editor is enabled, the user can open it by double-clicking a row or hitting enter when a row is focused. The editor can also be opened programmatically using the editItem(Object) method.

        Parameters:

        isEnabled - true to enable the feature, false otherwise

        Throws:

        IllegalStateException - if an item is currently being edited

        See Also:

        getEditedItemId()

      • isEditorEnabled

        public boolean isEditorEnabled()

        Checks whether the item editor UI is enabled for this grid.

        Returns:

        true iff the editor is enabled for this grid

        See Also:

        setEditorEnabled(boolean), getEditedItemId()

      • getEditedItemId

        public Object getEditedItemId()

        Gets the id of the item that is currently being edited.

        Returns:

        the id of the item that is currently being edited, or null if no item is being edited at the moment

      • getEditorFieldGroup

        public FieldGroup getEditorFieldGroup()

        Gets the field group that is backing the item editor of this grid.

        Returns:

        the backing field group

      • setEditorFieldGroup

        public void setEditorFieldGroup(FieldGroup fieldGroup)

        Sets the field group that is backing the item editor of this grid.

        Parameters:

        fieldGroup - the backing field group

        Throws:

        IllegalStateException - if the editor is currently active

      • isEditorActive

        public boolean isEditorActive()

        Returns whether an item is currently being edited in the editor.

        Returns:

        true iff the editor is open

      • doEditItem

        protected void doEditItem()
      • cancelEditor

        public void cancelEditor()

        Cancels the currently active edit if any. Hides the editor and discards possible unsaved changes in the editor fields.

      • doCancelEditor

        protected void doCancelEditor()
      • setEditorFieldFactory

        public void setEditorFieldFactory(FieldGroupFieldFactory fieldFactory)

        Sets the field factory for the FieldGroup. The field factory is only used when FieldGroup creates a new field.

        Note: This is a pass-through call to the backing field group.

        Parameters:

        fieldFactory - The field factory to use

      • setEditorErrorHandler

        public void setEditorErrorHandler(Grid.EditorErrorHandler editorErrorHandler)
                                   throws IllegalArgumentException

        Sets the error handler for the editor. The error handler is called whenever there is an exception in the editor.

        Parameters:

        editorErrorHandler - The editor error handler to use

        Throws:

        IllegalArgumentException - if the error handler is null

      • getEditorFieldFactory

        public FieldGroupFieldFactory getEditorFieldFactory()

        Gets the field factory for the FieldGroup. The field factory is only used when FieldGroup creates a new field.

        Note: This is a pass-through call to the backing field group.

        Returns:

        The field factory in use

      • getEditorSaveCaption

        public String getEditorSaveCaption()

        Gets the current caption of the save button in the Grid editor.

        Returns:

        the current caption of the save button

      • setEditorCancelCaption

        public void setEditorCancelCaption(String cancelCaption)
                                    throws IllegalArgumentException

        Sets the caption on the cancel button in the Grid editor.

        Parameters:

        cancelCaption - the caption to set

        Throws:

        IllegalArgumentException - if cancelCaption is null

      • getEditorCancelCaption

        public String getEditorCancelCaption()

        Gets the current caption of the cancel button in the Grid editor.

        Returns:

        the current caption of the cancel button

      • setEditorBuffered

        public void setEditorBuffered(boolean editorBuffered)
                               throws IllegalStateException

        Sets the buffered editor mode. The default mode is buffered ( true).

        Parameters:

        editorBuffered - true to enable buffered editor, false to disable it

        Throws:

        IllegalStateException - If editor is active while attempting to change the buffered mode.

        Since:

        7.6

      • isEditorBuffered

        public boolean isEditorBuffered()

        Gets the buffered editor mode.

        Returns:

        true if buffered editor is enabled, false otherwise

        Since:

        7.6

      • recalculateColumnWidths

        public void recalculateColumnWidths()

        Requests that the column widths should be recalculated.

        In most cases Grid will know when column widths need to be recalculated but this method can be used to force recalculation in situations when grid does not recalculate automatically.

        Since:

        7.4.1

      • addColumnVisibilityChangeListener

        public void addColumnVisibilityChangeListener(Grid.ColumnVisibilityChangeListener listener)

        Registers a new column visibility change listener

        Parameters:

        listener - the listener to register

        Since:

        7.5.0

      • removeColumnVisibilityChangeListener

        public void removeColumnVisibilityChangeListener(Grid.ColumnVisibilityChangeListener listener)

        Removes a previously registered column visibility change listener

        Parameters:

        listener - the listener to remove

        Since:

        7.5.0

      • setDetailsGenerator

        public void setDetailsGenerator(Grid.DetailsGenerator detailsGenerator)
                                 throws IllegalArgumentException

        Sets a new details generator for row details.

        The currently opened row details will be re-rendered.

        Parameters:

        detailsGenerator - the details generator to set

        Throws:

        IllegalArgumentException - if detailsGenerator is null;

        Since:

        7.5.0

      • getDetailsGenerator

        public Grid.DetailsGenerator getDetailsGenerator()

        Gets the current details generator for row details.

        Returns:

        the detailsGenerator the current details generator

        Since:

        7.5.0

      • setDetailsVisible

        public void setDetailsVisible(Object itemId,
                                      boolean visible)

        Shows or hides the details for a specific item.

        Parameters:

        itemId - the id of the item for which to set details visibility

        visible - true to show the details, or false to hide them

        Since:

        7.5.0

      • isDetailsVisible

        public boolean isDetailsVisible(Object itemId)

        Checks whether details are visible for the given item.

        Parameters:

        itemId - the id of the item for which to check details visibility

        Returns:

        true iff the details are visible

        Since:

        7.5.0

      • readDesign

        public void readDesign(org.jsoup.nodes.Element design,
                               DesignContext context)

        Description copied from interface: Component

        Reads the component state from the given design.

        The component is responsible not only for updating its own state but also for ensuring that its children update their state based on the design.

        It is assumed that the component is in its default state when this method is called. Reading should only take into consideration attributes specified in the design and not reset any unspecified attributes to their defaults.

        This method must not modify the design.

        Specified by:

        readDesign in interface Component

        Overrides:

        readDesign in class AbstractComponent

        Parameters:

        design - The element to obtain the state from

        context - The DesignContext instance used for parsing the design

      • writeDesign

        public void writeDesign(org.jsoup.nodes.Element design,
                                DesignContext context)

        Description copied from interface: Component

        Writes the component state to the given design.

        The component is responsible not only for writing its own state but also for ensuring that its children write their state to the design.

        This method must not modify the component state.

        Specified by:

        writeDesign in interface Component

        Overrides:

        writeDesign in class AbstractComponent

        Parameters:

        design - The element to write the component state to. Any previous attributes or child nodes are not cleared.

        context - The DesignContext instance used for writing the design

      • getCustomAttributes

        protected Collection<String> getCustomAttributes()

        Description copied from class: AbstractComponent

        Returns a collection of attributes that should not be handled by the basic implementation of the readDesign and writeDesign methods. Typically these are handled in a custom way in the overridden versions of the above methods

        Overrides:

        getCustomAttributes in class AbstractComponent

        Returns:

        the collection of attributes that are not handled by the basic implementation