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 Object |
IDENTICAL_STRATEGY
Character comparison strategy that assumes all characters can be compared directly as though
they are ASCII.
|
static 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
|
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.
|
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 org.jadice.util.glazedlists.internal.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 . |
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(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(Object strategy)
Modify the character matching strategy of this
TextMatcherEditor to one of the
predefined strategies. |
protected void |
setTextMatcher(org.jadice.util.glazedlists.internal.filter.TextMatcher<E> newMatcher)
This method replaces the current Matcher in this TextMatcherEditor with the
newMatcher if it is different. |
fireChanged, fireConstrained, fireMatchAll, fireMatchNone, fireRelaxed, getMatcher, isCurrentlyMatchingAll, isCurrentlyMatchingNone
addMatcherEditorListener, createChangedEvent, createConstrainedEvent, createMatchAllEvent, createMatchNoneEvent, createRelaxedEvent, fireChangedMatcher, 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 Object IDENTICAL_STRATEGY
public static final 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 int getMode()
TextMatcherEditor
.CONTAINS
(default), STARTS_WITH
, REGULAR_EXPRESSION
,
or EXACT
public void setMode(int mode)
TextMatcherEditor
to one of the predefined modes.mode
- either CONTAINS
, STARTS_WITH
, REGULAR_EXPRESSION
, or
EXACT
public Object getStrategy()
TextMatcherEditor
. See the
documentation for each constant in order contrast the strategies.IDENTICAL_STRATEGY
or NORMALIZED_STRATEGY
public void setStrategy(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
protected org.jadice.util.glazedlists.internal.filter.TextMatcher<E> getCurrentTextMatcher()
TextMatcher
or null
if no current
Matcher exists or is something other than a TextMatcher
.public void setFilterText(String[] newFilters)
TextMatcherEditor
and fires a change to the Matcher
.newFilters
- the String
s representing all of the filter valuesprotected void setTextMatcher(org.jadice.util.glazedlists.internal.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 logicCopyright © 2024 levigo holding gmbh. All rights reserved.