Class TableHeaderUtils

java.lang.Object
com.explodingpixels.widgets.TableHeaderUtils

public class TableHeaderUtils extends Object
  • Field Details

  • Method Details

    • createCornerComponent

      public static JComponent createCornerComponent(JTable table)
      Creates a component that paints the table's header background.
      Parameters:
      table - the JTable to create the corner component for.
      Returns:
      a JComponent that paints the given table's table header background.
    • makeHeaderFillEmptySpace

      public static void makeHeaderFillEmptySpace(JTable table)
      Installs a custom Border on the given table's JTableHeader that paints any blank area to the right of the last column header with the JTableHeader's background.
      Parameters:
      table - the JTable from which to get the JTableHeader to paint the empty column header space for.
    • paintHeader

      public static void paintHeader(Graphics graphics, JTable table, int x, int width)
      Paints the given JTable's table default header background at given x for the given width.
      Parameters:
      graphics - the Graphics to paint into.
      table - the table that the header belongs to.
      x - the x coordinate of the table header.
      width - the width of the table header.
    • getPressedColumn

      public static int getPressedColumn(JTableHeader tableHeader)
      Get's the pressed column header for the given JTableHeader.
      Parameters:
      tableHeader - the JTableHeader to determine the pressed column header for.
      Returns:
      the column model index of the pressed column header, or NO_COLUMN if no column's header has been pressed.
      See Also:
    • isColumnPressed

      public static boolean isColumnPressed(JTableHeader tableHeader, int columnModelIndex)
      true if the given column model index is pressed in the given JTableHeader.
      Parameters:
      tableHeader - the JTableHeader to use when determining if the given column is pressed.
      columnModelIndex - the column model index to determine the pressed state of.
      Returns:
      true if the given column is pressed.
      See Also:
    • setPressedColumn

      public static void setPressedColumn(JTableHeader tableHeader, int columnModelIndex)
      Sets the given column for the given JTableHeader as pressed. Calling this method installs a hint, which can be used by renders to draw the correct column pressed state. Renders can use isColumnPressed(javax.swing.table.JTableHeader, int) to determine what state to draw the header for the given index in. header state.
      Parameters:
      tableHeader - the JTableHeader to set the pressed state for.
      columnModelIndex - the column model index of the pressed column.
    • getSelectedColumn

      public static int getSelectedColumn(JTableHeader tableHeader)
      Get's the selected column header for the given JTableHeader.
      Parameters:
      tableHeader - the JTableHeader to determine the selected column header for.
      Returns:
      the column model index of the selected column header, or NO_COLUMN if no column's header has been pressed.
      See Also:
    • isColumnSelected

      public static boolean isColumnSelected(JTableHeader tableHeader, int columnModelIndex)
      true if the given column model index is selected in the given JTableHeader.

      Note that there is no direct way to set wheter a column is selected or not. Selection is a by-product of set the sort direction on a column.

      Parameters:
      tableHeader - the JTableHeader to use when determining if the given column is selected.
      columnModelIndex - the column model index to determine the selected state of.
      Returns:
      true if the given column is selected.
      See Also:
    • getSortDirection

      public static TableUtils.SortDirection getSortDirection(JTableHeader tableHeader, int columnModelIndex)
      Get's the pressed column header for the given JTableHeader.
      Parameters:
      tableHeader - the JTableHeader containing the column to determine the sort direction for.
      columnModelIndex - the column model index to determine the sort direction for.
      Returns:
      the TableUtils.SortDirection of the given column index.
      See Also:
    • toggleSortDirection

      public static TableUtils.SortDirection toggleSortDirection(JTableHeader tableHeader, int columnModelIndex)
      Toggles the sort direction of the given column model index in the given JTableHeader. This also makes the given column selected. If the given column has no sort order set (TableUtils.SortDirection.NONE) then the new sort order will be TableUtils.SortDirection.ASCENDING. Otherwise the new sort order will be TableUtils.SortDirection.DESCENDING
      Parameters:
      tableHeader - the JTableHeader of the column to toggle the sort order for.
      columnModelIndex - the column model index to toggle the sort order for.
      Returns:
      the new sort order of the column.