Class TableView

  • All Implemented Interfaces:
    ConstrainedVisual, Visual

    @DefaultProperty("tableData")
    public class TableView
    extends Component
    Component that displays a sequence of rows partitioned into columns, optionally allowing a user to select one or more rows.
    • Constructor Detail

      • TableView

        public TableView()
        Creates a new table view populated with an empty array list.
      • TableView

        public TableView​(List<?> tableData)
        Creates a new table view populated with the given table data.
        Parameters:
        tableData - The initial data for this table view.
    • Method Detail

      • setSkin

        protected void setSkin​(Skin skin)
        Description copied from class: Component
        Sets the skin, replacing any previous skin.
        Overrides:
        setSkin in class Component
        Parameters:
        skin - The new skin.
      • getColumns

        public TableView.ColumnSequence getColumns()
        Returns the table column sequence.
        Returns:
        The table column sequence.
      • getTableData

        public List<?> getTableData()
        Returns the table data.
        Returns:
        The data currently presented by the table view.
      • setTableData

        public void setTableData​(List<?> tableData)
        Sets the table data.
        Parameters:
        tableData - The data to be presented by the table view.
      • setTableData

        public final void setTableData​(java.lang.String tableData)
        Sets the table data.
        Parameters:
        tableData - A JSON string (must begin with [ and end with ], denoting a list) which will be the data to be presented by the table view.
      • setTableData

        public void setTableData​(java.net.URL tableData)
        Sets the table data.
        Parameters:
        tableData - A URL referring to a JSON file containing the data to be presented by the table view.
      • getColumnSource

        public TableView getColumnSource()
      • setColumnSource

        public void setColumnSource​(TableView columnSource)
      • getRowEditor

        public TableView.RowEditor getRowEditor()
        Returns the editor used to edit rows in this table.
        Returns:
        The row editor, or null if no editor is installed.
      • setRowEditor

        public void setRowEditor​(TableView.RowEditor rowEditor)
        Sets the editor used to edit rows in this table.
        Parameters:
        rowEditor - The row editor for the list.
      • getSelectedIndex

        public int getSelectedIndex()
        Returns the currently selected index, even when in multi-select mode.
        Returns:
        The currently selected index.
      • setSelectedIndex

        public void setSelectedIndex​(int index)
        Sets the selection to a single index.
        Parameters:
        index - The index to select, or -1 to clear the selection.
      • setSelectedRange

        public void setSelectedRange​(int start,
                                     int end)
        Sets the selection to a single range.
        Parameters:
        start - The start of the selection range.
        end - The end of the range.
      • getSelectedRanges

        public ImmutableList<Span> getSelectedRanges()
        Returns the currently selected ranges.
        Returns:
        An immutable list containing the currently selected ranges. Note that the returned list is a wrapper around the actual selection, not a copy. Any changes made to the selection state will be reflected in the list, but events will not be fired.
      • setSelectedRanges

        public Sequence<Span> setSelectedRanges​(Sequence<Span> selectedRanges)
        Sets the selection to the given range sequence. Any overlapping or connecting ranges will be consolidated, and the resulting selection will be sorted in ascending order.
        Parameters:
        selectedRanges - The new sequence of selected ranges.
        Returns:
        The ranges that were actually set.
      • setSelectedRanges

        public final Sequence<Span> setSelectedRanges​(java.lang.String selectedRanges)
        Sets the selection to the given range sequence.
        Parameters:
        selectedRanges - A JSON-formatted string containing the ranges to select.
        Returns:
        The ranges that were actually set.
        See Also:
        setSelectedRanges(Sequence)
      • getFirstSelectedIndex

        public int getFirstSelectedIndex()
        Returns the first selected index.
        Returns:
        The first selected index, or -1 if nothing is selected.
      • getLastSelectedIndex

        public int getLastSelectedIndex()
        Returns the last selected index.
        Returns:
        The last selected index, or -1 if nothing is selected.
      • addSelectedIndex

        public boolean addSelectedIndex​(int index)
        Adds a single index to the selection.
        Parameters:
        index - The index to add.
        Returns:
        true if the index was added to the selection; false, otherwise.
      • addSelectedRange

        public Sequence<Span> addSelectedRange​(int start,
                                               int end)
        Adds a range of indexes to the selection.
        Parameters:
        start - The first index in the range.
        end - The last index in the range.
        Returns:
        The ranges that were added to the selection.
      • addSelectedRange

        public Sequence<Span> addSelectedRange​(Span range)
        Adds a range of indexes to the selection.
        Parameters:
        range - The range to add.
        Returns:
        The ranges that were added to the selection.
      • removeSelectedIndex

        public boolean removeSelectedIndex​(int index)
        Removes a single index from the selection.
        Parameters:
        index - The index to remove.
        Returns:
        true if the index was removed from the selection; false, otherwise.
      • removeSelectedRange

        public Sequence<Span> removeSelectedRange​(int start,
                                                  int end)
        Removes a range of indexes from the selection.
        Parameters:
        start - The start of the range to remove.
        end - The end of the range to remove.
        Returns:
        The ranges that were removed from the selection.
      • removeSelectedRange

        public Sequence<Span> removeSelectedRange​(Span range)
        Removes a range of indexes from the selection.
        Parameters:
        range - The range to remove.
        Returns:
        The ranges that were removed from the selection.
      • selectAll

        public void selectAll()
        Selects all rows in the table.
      • clearSelection

        public void clearSelection()
        Clears the selection.
      • isRowSelected

        public boolean isRowSelected​(int index)
        Returns the selection state of a given index.
        Parameters:
        index - The index whose selection state is to be tested.
        Returns:
        true if the index is selected; false, otherwise.
      • getSelectedRow

        public java.lang.Object getSelectedRow()
      • setSelectedRow

        public void setSelectedRow​(java.lang.Object row)
      • getSelectedRows

        public Sequence<?> getSelectedRows()
      • setSelectedRows

        public void setSelectedRows​(Sequence<java.lang.Object> rows)
      • setSelectMode

        public void setSelectMode​(TableView.SelectMode selectMode)
        Sets the selection mode. Clears the selection if the mode has changed.
        Parameters:
        selectMode - The new selection mode.
      • setSort

        public Dictionary<java.lang.String,​SortDirection> setSort​(java.lang.String columnName,
                                                                        SortDirection sortDirection)
        Sets the table view's sort.
        Parameters:
        columnName - The column name to sort on.
        sortDirection - Whether ascending or descending sort on that column.
        Returns:
        The new sort criteria.
      • setSort

        public Dictionary<java.lang.String,​SortDirection> setSort​(Sequence<Dictionary.Pair<java.lang.String,​SortDirection>> sort)
        Sets the table view's sort.
        Parameters:
        sort - A sequence of key/value pairs representing the sort. Keys represent column names and values represent sort direction.
        Returns:
        The new sort criteria.
        Throws:
        java.lang.IllegalArgumentException - if the sort parameter is null.
      • setSort

        public final Dictionary<java.lang.String,​SortDirection> setSort​(java.lang.String sort)
        Sets the table view's sort.
        Parameters:
        sort - A JSON list containing JSON objects representing the sort.
        Returns:
        The new sort criteria.
        Throws:
        java.lang.IllegalArgumentException - if the sort parameter is null or can't be parsed from the JSON input.
        See Also:
        setSort(Sequence)
      • clearSort

        public void clearSort()
        Clears the sort.
      • isRowDisabled

        public boolean isRowDisabled​(int index)
        Returns the disabled state of a given row.
        Parameters:
        index - The index of the row whose disabled state is to be tested.
        Returns:
        true if the row is disabled; false, otherwise.
      • getDisabledRowFilter

        public Filter<?> getDisabledRowFilter()
        Returns the disabled row filter.
        Returns:
        The disabled row filter, or null if no disabled row filter is set.
      • setDisabledRowFilter

        public void setDisabledRowFilter​(Filter<?> disabledRowFilter)
        Sets the disabled row filter.
        Parameters:
        disabledRowFilter - The disabled row filter, or null for no disabled row filter.
      • getTableDataKey

        public java.lang.String getTableDataKey()
      • setTableDataKey

        public void setTableDataKey​(java.lang.String tableDataKey)
      • getTableDataBindType

        public BindType getTableDataBindType()
      • setTableDataBindType

        public void setTableDataBindType​(BindType tableDataBindType)
      • getSelectedRowKey

        public java.lang.String getSelectedRowKey()
      • setSelectedRowKey

        public void setSelectedRowKey​(java.lang.String selectedRowKey)
      • getSelectedRowBindType

        public BindType getSelectedRowBindType()
      • setSelectedRowBindType

        public void setSelectedRowBindType​(BindType selectedRowBindType)
      • getSelectedRowsKey

        public java.lang.String getSelectedRowsKey()
      • setSelectedRowsKey

        public void setSelectedRowsKey​(java.lang.String selectedRowsKey)
      • getSelectedRowsBindType

        public BindType getSelectedRowsBindType()
      • setSelectedRowsBindType

        public void setSelectedRowsBindType​(BindType selectedRowsBindType)
      • load

        public void load​(java.lang.Object context)
        Description copied from class: Component
        Copies bound values from the bind context to the component. This functionality must be provided by the subclass; the base implementation is a no-op.
        Overrides:
        load in class Component
        Parameters:
        context - The object to load the bound values from.
      • store

        public void store​(java.lang.Object context)
        Description copied from class: Component
        Copies bound values from the component to the bind context. This functionality must be provided by the subclass; the base implementation is a no-op.
        Overrides:
        store in class Component
        Parameters:
        context - The object to store the bound values into.
      • clear

        public void clear()
        Description copied from class: Component
        Clears any bound values in the component. This functionality must be provided by the subclass; the base implementation is a no-op.
        Overrides:
        clear in class Component
      • getRowAt

        public int getRowAt​(int y)
        Returns the index of the row at a given location.
        Parameters:
        y - The y-coordinate of the row to identify.
        Returns:
        The row index, or -1 if there is no row at the given y-coordinate.
      • getColumnAt

        public int getColumnAt​(int x)
        Returns the index of the column at a given location.
        Parameters:
        x - The x-coordinate of the column to identify.
        Returns:
        The column index, or -1 if there is no column at the given x-coordinate.
      • getRowBounds

        public Bounds getRowBounds​(int rowIndex)
        Returns the bounding area of a given row.
        Parameters:
        rowIndex - The row index.
        Returns:
        The bounding area of the row.
      • getColumnBounds

        public Bounds getColumnBounds​(int columnIndex)
        Returns the bounding area of a given column.
        Parameters:
        columnIndex - The column index.
        Returns:
        The bounding area of the column.
      • getCellBounds

        public Bounds getCellBounds​(int rowIndex,
                                    int columnIndex)
        Returns the bounding area of a given cell.
        Parameters:
        rowIndex - The row index of the cell.
        columnIndex - The column index of the cell.
        Returns:
        The bounding area of the cell.