Class PatternPredicate

  • All Implemented Interfaces:
    HighlightPredicate

    public class PatternPredicate
    extends java.lang.Object
    implements HighlightPredicate
    Pattern based HighlightPredicate.

    Turns on the highlight of a single or all columns of the current row if a match of the String representation of cell content against the given Pattern is found.

    The match logic can be configured to either test one specific column in the current row or all columns. In the latter case the logic is the same as in RowFilters.GeneralFilter: the row is included if any of the cell contents in the row are matches.

    • Field Detail

      • highlightColumn

        private int highlightColumn
      • testColumn

        private int testColumn
      • pattern

        private java.util.regex.Pattern pattern
    • Constructor Detail

      • PatternPredicate

        public PatternPredicate​(java.util.regex.Pattern pattern,
                                int testColumn)
        Instantiates a Predicate with the given Pattern and testColumn index (in model coordinates) highlighting all columns. A column index of -1 is interpreted as "all".
        Parameters:
        pattern - the Pattern to test the cell value against
        testColumn - the column index in model coordinates of the cell which contains the value to test against the pattern
      • PatternPredicate

        public PatternPredicate​(java.util.regex.Pattern pattern)
        Instantiates a Predicate with the given Pattern testing against all columns and highlighting all columns.
        Parameters:
        pattern - the Pattern to test the cell value against
      • PatternPredicate

        public PatternPredicate​(java.util.regex.Pattern pattern,
                                int testColumn,
                                int decorateColumn)
        Instantiates a Predicate with the given Pattern and test-/decorate column index in model coordinates. A column index of -1 is interpreted as "all".
        Parameters:
        pattern - the Pattern to test the cell value against
        testColumn - the column index in model coordinates of the cell which contains the value to test against the pattern
        decorateColumn - the column index in model coordinates of the cell which should be decorated if the test against the value succeeds.
      • PatternPredicate

        public PatternPredicate​(java.lang.String pattern)
        Instantiates a Predicate with the given Pattern testing against all columns and highlighting all columns.
        Parameters:
        pattern - the Pattern to test the cell value against
      • PatternPredicate

        public PatternPredicate​(java.lang.String regex,
                                int testColumn)
        Instantiates a Predicate with the given regex and test column index in model coordinates. The pattern string is compiled to a Pattern with flags 0. A column index of -1 is interpreted as "all".
        Parameters:
        regex - the regex string to test the cell value against
        testColumn - the column index in model coordinates of the cell which contains the value to test against the pattern
      • PatternPredicate

        public PatternPredicate​(java.lang.String regex,
                                int testColumn,
                                int decorateColumn)
        Instantiates a Predicate with the given regex and test-/decorate column index in model coordinates. The pattern string is compiled to a Pattern with flags 0. A column index of -1 is interpreted as "all".
        Parameters:
        regex - the regex string to test the cell value against
        testColumn - the column index in model coordinates of the cell which contains the value to test against the pattern
        decorateColumn - the column index in model coordinates of the cell which should be decorated if the test against the value succeeds.
    • Method Detail

      • isHighlighted

        public boolean isHighlighted​(java.awt.Component renderer,
                                     ComponentAdapter adapter)
        Description copied from interface: HighlightPredicate
        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.
      • test

        private boolean test​(ComponentAdapter adapter)
        Test the value. This is called only if the pre-check returned true, because accessing the value might be potentially costly
        Parameters:
        adapter -
        Returns:
      • testColumn

        private boolean testColumn​(ComponentAdapter adapter,
                                   int testColumn)
        Parameters:
        adapter -
        testColumn -
        Returns:
      • isHighlightCandidate

        private boolean isHighlightCandidate​(ComponentAdapter adapter)
        A quick pre-check.
        Parameters:
        adapter -
        Returns:
      • getHighlightColumn

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

        public java.util.regex.Pattern getPattern()
        Returns:
        returns the Pattern to test the cell value against
      • getTestColumn

        public int getTestColumn()
        Returns:
        the column to use for testing (in model coordinates)