public class TextMatcherEditor<E> extends AbstractMatcherEditor<E>
TextMatcherEditor
is not coupled with any UI component that
allows the user to edit the filter text. That job is left to subclasses.
This matcher editor is fully concrete, and may be used directly by headless
applications.
The TextMatcherEditor
requires that either a
TextFilterator
be specified in its constructor, or that every Object
to be matched implements the TextFilterable
interface. These are
used to extract the searchable String
s for each Object.
TextMatcherEditor
is able to operate in one of three modes.
CONTAINS
will produce Matcher
objects that test if
at least one searchable string for an Object contains
one of the filter strings anywhere within itself.
STARTS_WITH
will produce Matcher
objects that test
if at least one searchable string for an Object
begins with at least one of the filter strings.
REGULAR_EXPRESSION
will produce Matcher
objects that
test if at least one searchable string for an Object matches,
using regular expression rules, at least one of the filter
strings.
TextMatcherEditor
is able to operate with one of two strategies.
IDENTICAL_STRATEGY
defines a text match as a precise
character-for-character match between the filters and the text.
NORMALIZED_STRATEGY
defines a text match more leniently for
Latin-character based languages. Specifically, diacritics are
stripped from all Latin characters before comparisons are made.
Consequently, filters like "resume" match words like "r???sum???".
MatcherEditor.Event<E>, MatcherEditor.Listener<E>
Modifier and Type | Field and Description |
---|---|
static int |
CONTAINS
Matching mode where items are considered a match if at least one of the
filter strings extracted from an object contains one of the given search
strings.
|
static int |
EXACT
Matching mode where items are considered a match if they are an exact
character for character match with at least one of the filter strings.
|
static java.lang.Object |
IDENTICAL_STRATEGY
Character comparison strategy that assumes all characters can be
compared directly as though they are ASCII.
|
static java.lang.Object |
NORMALIZED_STRATEGY
Character comparison strategy that assumes all Latin characters should
have their diacritical marks stripped in an effort to normalize words to
their most basic form.
|
static int |
REGULAR_EXPRESSION
Matching mode where items are considered a match using a
Matcher produced by compiling a regular
expression into Pattern . |
static int |
STARTS_WITH
Matching mode where items are considered a match if at least one of the
filter strings extracted from an object starts with one of the given search
strings.
|
currentMatcher
Constructor and Description |
---|
TextMatcherEditor()
Creates a
TextMatcherEditor whose Matchers can test only elements which
implement the TextFilterable interface. |
TextMatcherEditor(TextFilterator<? super E> filterator)
Creates a
TextMatcherEditor that matches Objects using the
specified TextFilterator to get the String s to search. |
Modifier and Type | Method and Description |
---|---|
protected ca.odell.glazedlists.impl.filter.TextMatcher<E> |
getCurrentTextMatcher()
Return the current Matcher if it is a
TextMatcher or
null if no current Matcher exists or is something other
than a TextMatcher . |
TextFilterator<? super E> |
getFilterator()
Get the filterator used to extract Strings from the matched elements.
|
int |
getMode()
Returns the behaviour mode for this
TextMatcherEditor . |
java.lang.Object |
getStrategy()
Returns the character comparison strategy for this
TextMatcherEditor . |
void |
setFilterator(TextFilterator<? super E> filterator)
Set the filterator used to extract Strings from the matched elements.
|
void |
setFilterText(java.lang.String[] newFilters)
Adjusts the filters of this
TextMatcherEditor and fires a change
to the Matcher . |
void |
setMode(int mode)
Modify the behaviour of this
TextMatcherEditor to one of the
predefined modes. |
void |
setStrategy(java.lang.Object strategy)
Modify the character matching strategy of this
TextMatcherEditor
to one of the predefined strategies. |
protected void |
setTextMatcher(ca.odell.glazedlists.impl.filter.TextMatcher<E> newMatcher)
This method replaces the current Matcher in this TextMatcherEditor with
the
newMatcher if it is different. |
addMatcherEditorListener, fireChanged, fireChangedMatcher, fireConstrained, fireMatchAll, fireMatchNone, fireRelaxed, getMatcher, isCurrentlyMatchingAll, isCurrentlyMatchingNone, removeMatcherEditorListener
public static final int CONTAINS
public static final int STARTS_WITH
public static final int REGULAR_EXPRESSION
Matcher
produced by compiling a regular
expression into Pattern
.public static final int EXACT
public static final java.lang.Object IDENTICAL_STRATEGY
public static final java.lang.Object NORMALIZED_STRATEGY
public TextMatcherEditor()
TextMatcherEditor
whose Matchers can test only elements which
implement the TextFilterable
interface.
The Matcher
s from this MatcherEditor
will throw a
ClassCastException
when called with an Object that does not implement
TextFilterable
.
public TextMatcherEditor(TextFilterator<? super E> filterator)
TextMatcherEditor
that matches Objects using the
specified TextFilterator
to get the String
s to search.filterator
- the object that will extract filter Strings from each
object in the source
; null
indicates the
list elements implement TextFilterable
public TextFilterator<? super E> getFilterator()
public void setFilterator(TextFilterator<? super E> filterator)
public void setMode(int mode)
TextMatcherEditor
to one of the
predefined modes.mode
- either CONTAINS
, STARTS_WITH
,
REGULAR_EXPRESSION
, or EXACT
public int getMode()
TextMatcherEditor
.CONTAINS
(default), STARTS_WITH
,
REGULAR_EXPRESSION
, or EXACT
public void setStrategy(java.lang.Object strategy)
TextMatcherEditor
to one of the predefined strategies. See the documentation for each
constant in order contrast the strategies.strategy
- either IDENTICAL_STRATEGY
or NORMALIZED_STRATEGY
public java.lang.Object getStrategy()
TextMatcherEditor
.
See the documentation for each constant in order contrast the strategies.IDENTICAL_STRATEGY
or NORMALIZED_STRATEGY
protected ca.odell.glazedlists.impl.filter.TextMatcher<E> getCurrentTextMatcher()
TextMatcher
or
null
if no current Matcher exists or is something other
than a TextMatcher
.public void setFilterText(java.lang.String[] newFilters)
TextMatcherEditor
and fires a change
to the Matcher
.newFilters
- the String
s representing all of the filter valuesprotected void setTextMatcher(ca.odell.glazedlists.impl.filter.TextMatcher<E> newMatcher)
newMatcher
if it is different. If the current Matcher
is also a TextMatcher then many comparisons between the two in order to
determine if the new Matcher is a strict constrainment or relaxation of
the current TextMatcher.newMatcher
- new TextMatcher which defines the text filtering logicGlazed Lists, Copyright © 2003 publicobject.com, O'Dell Engineering.
Documentation build by builder at 2012-09-17 16:07