Class TableHeaderRow

All Implemented Interfaces:
Styleable, EventTarget

public class TableHeaderRow extends StackPane
Region responsible for painting the entire row of column headers.
Since:
9
See Also:
  • Property Details Link icon

    • reordering Link icon

      public final BooleanProperty reorderingProperty
      Indicates if a reordering operation of a column is in progress. The value is true during a column reordering operation, and false otherwise. When a column is reordered (for example, by dragging its header), this property is updated automatically. Setting the value manually should be done when a subclass overrides the default reordering behavior. Calling setReorderingRegion(TableColumnHeader) before setting this property is required as well.
      Since:
      12
      See Also:
  • Constructor Details Link icon

    • TableHeaderRow Link icon

      public TableHeaderRow(TableViewSkinBase skin)
      Creates a new TableHeaderRow instance to visually represent the column header area of controls such as TableView and TreeTableView.
      Parameters:
      skin - The skin used by the UI control.
  • Method Details Link icon

    • setReordering Link icon

      public final void setReordering(boolean value)
      Sets the value of the reordering property.
      Property description:
      Indicates if a reordering operation of a column is in progress. The value is true during a column reordering operation, and false otherwise. When a column is reordered (for example, by dragging its header), this property is updated automatically. Setting the value manually should be done when a subclass overrides the default reordering behavior. Calling setReorderingRegion(TableColumnHeader) before setting this property is required as well.
      Parameters:
      value - the value for the reordering property
      Since:
      12
      See Also:
    • isReordering Link icon

      public final boolean isReordering()
      Gets the value of the reordering property.
      Property description:
      Indicates if a reordering operation of a column is in progress. The value is true during a column reordering operation, and false otherwise. When a column is reordered (for example, by dragging its header), this property is updated automatically. Setting the value manually should be done when a subclass overrides the default reordering behavior. Calling setReorderingRegion(TableColumnHeader) before setting this property is required as well.
      Returns:
      the value of the reordering property
      Since:
      12
      See Also:
    • reorderingProperty Link icon

      public final BooleanProperty reorderingProperty()
      Indicates if a reordering operation of a column is in progress. The value is true during a column reordering operation, and false otherwise. When a column is reordered (for example, by dragging its header), this property is updated automatically. Setting the value manually should be done when a subclass overrides the default reordering behavior. Calling setReorderingRegion(TableColumnHeader) before setting this property is required as well.
      Returns:
      the reordering property
      Since:
      12
      See Also:
    • getRootHeader Link icon

      public final NestedTableColumnHeader getRootHeader()
      Returns the root header for all columns. The root header is a NestedTableColumnHeader that contains the NestedTableColumnHeaders that represent each column. It spans the entire width of the TableView. This allows any developer overriding a TableColumnHeader to easily access the root header and all others TableColumnHeaders.
      Implementation Note:
      This design enforces that column reordering occurs only within a single NestedTableColumnHeader and only at that level.
      Returns:
      the root header
      Since:
      12
    • updateScrollX Link icon

      protected void updateScrollX()
      Called whenever the value of the horizontal scrollbar changes in order to request layout changes, shifting the TableColumnHeaders.

      For example, if custom components are added around a TableColumnHeader (such as icons above), they will also need to be shifted. When overriding, calling super() is required to shift the TableColumnHeaders, and it's up to the developer to notify its own custom components of this change.

      Since:
      12
    • updateTableWidth Link icon

      protected void updateTableWidth()
      Updates the table width when a resize operation occurs. This method is called continuously when the control width is resizing in order to properly clip this TableHeaderRow. Overriding this method allows a subclass to customize the resizing behavior.

      Normally, the TableHeaderRow is using the full space (TableView width), but in some cases that space may be reduced. For example, if a vertical header that will display the row number is introduced, the TableHeaderRow would need to be clipped a bit shorter in order not to overlap that vertical header. Calling super() first when overriding this method allows Node.getClip() to compute the right width in order apply a transformation.

      Since:
      12
    • createRootHeader Link icon

      protected NestedTableColumnHeader createRootHeader()
      Creates a new NestedTableColumnHeader instance. By default this method should not be overridden, but in some circumstances it makes sense (e.g. testing, or when extreme customization is desired).
      Returns:
      A new NestedTableColumnHeader instance.
    • showColumnMenu Link icon

      protected void showColumnMenu(MouseEvent mouseEvent)
      Shows a menu containing all leaf columns as items. An item can be selected/deselected to make the corresponding column visible/invisible.
      Implementation Note:
      This method can be overridden to create and show a custom menu.
      Parameters:
      mouseEvent - the MouseEvent which was generated when the table menu button was pressed
      Since:
      21
    • getReorderingRegion Link icon

      protected TableColumnHeader getReorderingRegion()
      Returns the current TableColumnHeader being moved during reordering.
      Returns:
      the current TableColumnHeader being moved
      Since:
      12
    • setReorderingRegion Link icon

      protected void setReorderingRegion(TableColumnHeader reorderingRegion)
      Sets the TableColumnHeader that is being moved during a reordering operation. This is automatically set by the TableColumnHeader when reordering starts. This method should only be called manually if the default reordering behavior is overridden. Calling setReordering(boolean) after the call is required.
      Parameters:
      reorderingRegion - the TableColumnHeader being reordered
      Since:
      12