Class SubstanceTableUI

All Implemented Interfaces:
UpdateOptimizationAware

public class SubstanceTableUI extends BasicTableUI implements UpdateOptimizationAware
UI for tables in Substance look and feel. Unfortunately, the entire painting stack has been copied from BasicTableUI since the methods are private. The animation effects are implemented in the BasicTableUI.paintCell(Graphics, Rectangle, int, int).
  • Field Details

    • selectedIndices

      protected Map<SubstanceTableUI.TableCellId,Object> selectedIndices
      Holds the list of currently selected row-column indexes.
    • rolledOverIndices

      protected Set<SubstanceTableUI.TableCellId> rolledOverIndices
      Holds the currently rolled-over row-column index, or null if none such.
    • focusedCellId

      protected SubstanceTableUI.TableCellId focusedCellId
    • rolledOverColumn

      protected int rolledOverColumn
      Holds the currently rolled-over column index, or -1 if none such. This is used for the table header animations.
    • defaultRenderers

      protected Map<Class<?>,TableCellRenderer> defaultRenderers
      Map of default renderers.
    • defaultEditors

      protected Map<Class<?>,TableCellEditor> defaultEditors
      Map of default editors.
    • substancePropertyChangeListener

      protected PropertyChangeListener substancePropertyChangeListener
      Listener that listens to changes on table properties.
    • substanceTableStateListener

      protected SubstanceTableUI.TableStateListener substanceTableStateListener
      Listener for transition animations on list selections.
    • substanceFadeRolloverListener

      protected org.pushingpixels.substance.internal.ui.SubstanceTableUI.RolloverFadeListener substanceFadeRolloverListener
      Listener for transition animations on table rollovers.
    • substanceFocusListener

      protected FocusListener substanceFocusListener
    • drawLeadingVerticalLine

      protected Boolean drawLeadingVerticalLine
    • drawTrailingVerticalLine

      protected Boolean drawTrailingVerticalLine
  • Constructor Details

    • SubstanceTableUI

      public SubstanceTableUI()
      Creates a UI delegate for table.
  • Method Details

    • createUI

      public static ComponentUI createUI(JComponent comp)
    • installDefaults

      protected void installDefaults()
      Overrides:
      installDefaults in class BasicTableUI
    • installRendererIfNecessary

      protected void installRendererIfNecessary(Class<?> clazz, TableCellRenderer renderer)
      Installs Substance-specific renderers for column classes that don't have application-specific renderers installed by the user code.
      Parameters:
      clazz - Column class.
      renderer - Default renderer for the specified column class.
    • installEditorIfNecessary

      protected void installEditorIfNecessary(Class<?> clazz, TableCellEditor editor)
      Installs Substance-specific renderers for column classes that don't have application-specific renderers installed by the user code.
      Parameters:
      clazz - Column class.
      editor - Default renderer for the specified column class.
    • uninstallDefaults

      protected void uninstallDefaults()
      Overrides:
      uninstallDefaults in class BasicTableUI
    • uninstallRendererIfNecessary

      protected void uninstallRendererIfNecessary(Class<?> clazz, TableCellRenderer renderer)
      Uninstalls default Substance renderers that were installed in installRendererIfNecessary(Class, TableCellRenderer).
      Parameters:
      clazz - Column class.
      renderer - Renderer to restore.
    • uninstallEditorIfNecessary

      protected void uninstallEditorIfNecessary(Class<?> clazz, TableCellEditor editor)
      Uninstalls default Substance editors that were installed in installEditorIfNecessary(Class, TableCellEditor).
      Parameters:
      clazz - Column class.
      editor - Editor to restore.
    • installListeners

      protected void installListeners()
      Overrides:
      installListeners in class BasicTableUI
    • uninstallListeners

      protected void uninstallListeners()
      Overrides:
      uninstallListeners in class BasicTableUI
    • paint

      public void paint(Graphics g, JComponent c)
      Paint a representation of the table instance that was set in installUI().
      Overrides:
      paint in class BasicTableUI
    • paintGrid

      protected void paintGrid(Graphics g, int rMin, int rMax, int cMin, int cMax)
      Paints the grid lines within aRect, using the grid color set with setGridColor. Paints vertical lines if getShowVerticalLines() returns true and paints horizontal lines if getShowHorizontalLines() returns true.
    • paintCells

      protected void paintCells(Graphics g, int rMin, int rMax, int cMin, int cMax)
    • paintDraggedArea

      protected void paintDraggedArea(Graphics g, int rMin, int rMax, TableColumn draggedColumn, int distance)
    • paintCell

      protected void paintCell(Graphics g, Rectangle cellRect, Rectangle highlightCellRect, int row, int column)
    • paintDropLines

      protected void paintDropLines(Graphics g)
    • getId

      public SubstanceTableUI.TableCellId getId(int row, int column)
      Returns a comparable ID for the specified location.
      Parameters:
      row - Row index.
      column - Column index.
      Returns:
      Comparable ID for the specified location.
    • syncSelection

      protected void syncSelection(boolean enforceNoAnimations)
      Synchronizes the current selection state.
      Parameters:
      enforceNoAnimations - Whether to force no animations.
    • getCellState

      public ComponentState getCellState(SubstanceTableUI.TableCellId cellIndex)
      Returns the current state for the specified cell.
      Parameters:
      cellIndex - Cell index.
      Returns:
      The current state for the specified cell.
    • getModelStateInfo

      Returns the current state for the specified cell.
      Parameters:
      cellId - Cell index.
      Returns:
      The current state for the specified cell.
    • _hasAnimations

      protected boolean _hasAnimations()
      Checks whether the table has animations.
      Returns:
      true if the table has animations, false otherwise.
    • _hasSelectionAnimations

      protected boolean _hasSelectionAnimations()
      Checks whether the table has selection animations.
      Returns:
      true if the table has selection animations, false otherwise.
    • _hasRolloverAnimations

      protected boolean _hasRolloverAnimations()
      Checks whether the table has rollover animations.
      Returns:
      true if the table has rollover animations, false otherwise.
    • getRolloverColumnIndex

      public int getRolloverColumnIndex()
      Returns the index of the rollover column.
      Returns:
      The index of the rollover column.
    • isFocusedCell

      public boolean isFocusedCell(int row, int column)
      Returns indication whether the specified cell has focus.
      Parameters:
      row - Cell row index.
      column - Cell column index.
      Returns:
      true If the focus is on the specified cell, false otherwise.
    • update

      public void update(Graphics g, JComponent c)
      Overrides:
      update in class ComponentUI
    • getCellRendererInsets

      public Insets getCellRendererInsets()
      Returns the cell renderer insets of this table. Is for internal use only.
      Returns:
      The cell renderer insets of this table.
    • hasSelectionAnimations

      public boolean hasSelectionAnimations()
    • hasRolloverAnimations

      public boolean hasRolloverAnimations()
    • getUpdateOptimizationInfo

      public UpdateOptimizationInfo getUpdateOptimizationInfo()
      Specified by:
      getUpdateOptimizationInfo in interface UpdateOptimizationAware
    • getStateTransitionTracker

      public StateTransitionTracker getStateTransitionTracker(SubstanceTableUI.TableCellId tableId)