You're viewing an older version of Vaadin JavaDoc. Please see version 24.7.0 for the latest.
com.vaadin.flow.component.spreadsheet.

Interface SpreadsheetComponentFactory

    • Method Summary

      All Methods
      Modifier and Type Method Description
      Component getCustomComponentForCell​(org.apache.poi.ss.usermodel.Cell cell, int rowIndex, int columnIndex, Spreadsheet spreadsheet, org.apache.poi.ss.usermodel.Sheet sheet)

      Should return a unique component that is displayed inside the cell instead of the cell's value.

      Component getCustomEditorForCell​(org.apache.poi.ss.usermodel.Cell cell, int rowIndex, int columnIndex, Spreadsheet spreadsheet, org.apache.poi.ss.usermodel.Sheet sheet)

      Should return the custom component that is displayed in the cell when it has been selected.

      void onCustomEditorDisplayed​(org.apache.poi.ss.usermodel.Cell cell, int rowIndex, int columnIndex, Spreadsheet spreadsheet, org.apache.poi.ss.usermodel.Sheet sheet, Component customEditor)

      This method is called when a cell with a custom editor is displayed (the cell is selected).

    • Method Detail

      • getCustomComponentForCell

        Component getCustomComponentForCell​(org.apache.poi.ss.usermodel.Cell cell,
                                            int rowIndex,
                                            int columnIndex,
                                            Spreadsheet spreadsheet,
                                            org.apache.poi.ss.usermodel.Sheet sheet)

        Should return a unique component that is displayed inside the cell instead of the cell's value. Unique - because the same component instance can't be at two places at once (just like any component).

        Having custom components always visible inside some Spreadsheet cells makes it possible to add some custom functionality into the sheet: ComboBoxes for filtering, Buttons for doing calculations etc.

        Note that each component makes the Spreadsheet a little bit slower.

        This method is called before getCustomEditorForCell(Cell, int, int, Spreadsheet, Sheet).

        For merged regions, this method is only called for the first cell of the merged region.

        Parameters:

        cell - Cell that should display the component or null if the cell doesn't yet exist inside POI

        rowIndex - 0-based

        columnIndex - 0-based

        spreadsheet - The target Spreadsheet component

        sheet - The active sheet of the workbook (never null)

        Returns:

        The unique component that is displayed as the corresponding cell becomes visible or null if no component should be displayed when the cell is not selected.

      • getCustomEditorForCell

        Component getCustomEditorForCell​(org.apache.poi.ss.usermodel.Cell cell,
                                         int rowIndex,
                                         int columnIndex,
                                         Spreadsheet spreadsheet,
                                         org.apache.poi.ss.usermodel.Sheet sheet)

        Should return the custom component that is displayed in the cell when it has been selected. Thus, the component replaces the default inline editor functionality in the Spreadsheet. This method is called only for cells that are not locked (a cell is considered locked when the sheet or cell is protected or the cell is null).

        If some cells share the same type of "editor", the same component instance can be shared for all of those cells. As the component comes visible in Cell X, the onCustomEditorDisplayed(Cell, int, int, Spreadsheet, Sheet, Component) is called with the appropriate parameters. This way, you can update the editor component value accordingly to the currently selected cell.

        This method is called after getCustomComponentForCell(Cell, int, int, Spreadsheet, Sheet), if it returned null.

        For merged regions, this method is only called for the first cell of the merged region.

        Parameters:

        cell - Cell that should display the custom editor or null if the cell doesn't yet exist inside POI

        rowIndex - 0-based

        columnIndex - 0-based

        spreadsheet - The target spreadsheet component

        sheet - The active sheet of the workbook (never null)

        Returns:

        The component that should be used as the custom editor or null if the default editor (input field) should be used.

      • onCustomEditorDisplayed

        void onCustomEditorDisplayed​(org.apache.poi.ss.usermodel.Cell cell,
                                     int rowIndex,
                                     int columnIndex,
                                     Spreadsheet spreadsheet,
                                     org.apache.poi.ss.usermodel.Sheet sheet,
                                     Component customEditor)

        This method is called when a cell with a custom editor is displayed (the cell is selected). The purpose of this method is to make it possible to share the same editor component instance between multiple cells; you can update the component with the appropriate value depending on the cell.

        Note that the Spreadsheet component doesn't automatically update the Cell value if it has a custom editor.

        Parameters:

        cell - The cell that has the editor, might be null if the cell doesn't exist it the POI model

        rowIndex - 0-based

        columnIndex - 0-based

        spreadsheet - The target spreadsheet component

        sheet - The active sheet of the workbook (never null)

        customEditor - The component that is displayed inside the cell