org.jdesktop.swingx.decorator
Class SearchPredicate

java.lang.Object
  extended by 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 coordiates) while the PatternPredicate can have separate test and highlight coordiates.


Nested Class Summary
 
Nested classes/interfaces inherited from interface org.jdesktop.swingx.decorator.HighlightPredicate
HighlightPredicate.AndHighlightPredicate, HighlightPredicate.ColumnHighlightPredicate, HighlightPredicate.DepthHighlightPredicate, HighlightPredicate.EqualsHighlightPredicate, HighlightPredicate.IdentifierHighlightPredicate, HighlightPredicate.NotHighlightPredicate, HighlightPredicate.OrHighlightPredicate, HighlightPredicate.RowGroupHighlightPredicate, HighlightPredicate.TypeHighlightPredicate
 
Field Summary
static int ALL
           
static String MATCH_ALL
           
 
Fields inherited from interface org.jdesktop.swingx.decorator.HighlightPredicate
ALWAYS, BIG_DECIMAL_NEGATIVE, EDITABLE, EMPTY_INTEGER_ARRAY, EMPTY_OBJECT_ARRAY, EMPTY_PREDICATE_ARRAY, EVEN, HAS_FOCUS, INTEGER_NEGATIVE, IS_FOLDER, IS_LEAF, NEVER, ODD, READ_ONLY, ROLLOVER_ROW
 
Constructor Summary
SearchPredicate(Pattern pattern)
          Instantiates a Predicate with the given Pattern.
SearchPredicate(Pattern pattern, int column)
          Instantiates a Predicate with the given Pattern.
SearchPredicate(Pattern pattern, int row, int column)
          Instantiates a Predicate with the given Pattern.
SearchPredicate(String regex)
          Instantiates a Predicate with a Pattern compiled from the given regular expression.
SearchPredicate(String regex, int column)
          Instantiates a Predicate with a Pattern compiled from the given regular expression.
SearchPredicate(String regex, int row, int column)
          Instantiates a Predicate with a Pattern compiled from the given regular expression.
 
Method Summary
 int getHighlightColumn()
           
 int getHighlightRow()
           
 Pattern getPattern()
           
 boolean isHighlighted(Component renderer, ComponentAdapter adapter)
          Returns a boolean to indicate whether the component should be highlighted.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ALL

public static final int ALL
See Also:
Constant Field Values

MATCH_ALL

public static final String MATCH_ALL
See Also:
Constant Field Values
Constructor Detail

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 asymetric - 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 asymetric - 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 Detail

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.