Class SearchPredicate

java.lang.Object
org.jdesktop.swingx.decorator.SearchPredicate
All Implemented Interfaces:
HighlightPredicate

public class SearchPredicate extends Object implements HighlightPredicate
Pattern based HighlightPredicate for searching. Highlights the current adapter cell if the value matches the pattern. The highlight scope can be limited to a certain column and row.

Note: this differs from PatternPredicate in that it is focused on the current cell (highlight coordinates == test coordinates) while the PatternPredicate can have separate test and highlight coordinates.

Author:
Jeanette Winzenburg
  • Field Details

  • Constructor Details

    • SearchPredicate

      public SearchPredicate(Pattern pattern)
      Instantiates a Predicate with the given Pattern. All matching cells are highlighted.
      Parameters:
      pattern - the Pattern to test the cell value against
    • SearchPredicate

      public SearchPredicate(Pattern pattern, int column)
      Instantiates a Predicate with the given Pattern. Highlighting is limited to matching cells in the given column.
      Parameters:
      pattern - the Pattern to test the cell value against
      column - the column to limit the highlight to
    • SearchPredicate

      public SearchPredicate(Pattern pattern, int row, int column)
      Instantiates a Predicate with the given Pattern. Highlighting is limited to matching cells in the given column and row. A value of -1 indicates all rows/columns.

      Note: the coordinates are asymmetric - rows are in view- and column in model-coordinates - due to corresponding methods in ComponentAdapter. Hmm... no need to? This happens on the current adapter state which is view always, so could use view only?

      Parameters:
      pattern - the Pattern to test the cell value against
      row - the row index in view coordinates to limit the highlight.
      column - the column in model coordinates to limit the highlight to
    • SearchPredicate

      public SearchPredicate(String regex)
      Instantiates a Predicate with a Pattern compiled from the given regular expression. All matching cells are highlighted.
      Parameters:
      regex - the regular expression to test the cell value against
    • SearchPredicate

      public SearchPredicate(String regex, int column)
      Instantiates a Predicate with a Pattern compiled from the given regular expression. Highlighting is applied to matching cells in all rows, but only in the given column. A value of ALL indicates all columns.

      Parameters:
      regex - the regular expression to test the cell value against
      column - the column index in model coordinates to limit the highlight to
    • SearchPredicate

      public SearchPredicate(String regex, int row, int column)
      Instantiates a Predicate with a Pattern compiled from the given regular expression. Highlighting is limited to matching cells in the given column and row. A value of ALL indicates all rows/columns.

      Note: the coordinates are asymmetric - rows are in view- and column in model-coordinates - due to corresponding methods in ComponentAdapter. Hmm... no need to? This happens on the current adapter state which is view always, so could use view only?

      Parameters:
      regex - the Pattern to test the cell value against
      row - the row index in view coordinates to limit the highlight.
      column - the column in model coordinates to limit the highlight to
  • Method Details

    • getHighlightColumn

      public int getHighlightColumn()
      Returns:
      returns the column index to decorate (in model coordinates)
    • getHighlightRow

      public int getHighlightRow()
      Returns:
      returns the column index to decorate (in model coordinates)
    • getPattern

      public Pattern getPattern()
      Returns:
      returns the Pattern to test the cell value against
    • isHighlighted

      public boolean isHighlighted(Component renderer, ComponentAdapter adapter)
      Returns a boolean to indicate whether the component should be highlighted.

      Note: both parameters should be considered strictly read-only!

      Specified by:
      isHighlighted in interface HighlightPredicate
      Parameters:
      renderer - the cell renderer component that is to be decorated, must not be null
      adapter - the ComponentAdapter for this decorate operation, most not be null
      Returns:
      a boolean to indicate whether the component should be highlighted.