com.levigo.util.swing.glazedlists
Class TextComponentMatcherEditor<E>

java.lang.Object
  extended by com.levigo.util.base.glazedlists.matchers.AbstractMatcherEditor<E>
      extended by com.levigo.util.base.glazedlists.matchers.TextMatcherEditor<E>
          extended by com.levigo.util.swing.glazedlists.TextComponentMatcherEditor<E>
All Implemented Interfaces:
MatcherEditor<E>

public class TextComponentMatcherEditor<E>
extends TextMatcherEditor<E>

A MatcherEditor that matches Objects that contain the filter text located within a Document. This TextMatcherEditor is directly coupled with a Document and fires MatcherEditor changes in response to Document changes. This matcher is fully concrete and is expected to be used by Swing applications.

The TextComponentMatcherEditor constructors require that either a Document or a JTextComponent (from which a Document is extracted) be specified.

The MatcherEditor registers itself as a DocumentListener on the given Document, or ActionListener on the JTextComponent for non-live filtering. If a JTextComponent is given on construction, it is also watched for changes of its Document and the Document used by this MatcherEditor is updated to reflect the latest Document behind the text component. If this MatcherEditor must be garbage collected before the underlying Document, or JTextComponent, the listeners can be unregistered by calling dispose().

Author:
James Lemieux

Nested Class Summary
 
Nested classes/interfaces inherited from interface com.levigo.util.base.glazedlists.matchers.MatcherEditor
MatcherEditor.Event<E>, MatcherEditor.Listener<E>
 
Field Summary
 
Fields inherited from class com.levigo.util.base.glazedlists.matchers.TextMatcherEditor
CONTAINS, EXACT, IDENTICAL_STRATEGY, NORMALIZED_STRATEGY, REGULAR_EXPRESSION, STARTS_WITH
 
Fields inherited from class com.levigo.util.base.glazedlists.matchers.AbstractMatcherEditor
currentMatcher
 
Constructor Summary
TextComponentMatcherEditor(Document document, TextFilterator<? super E> textFilterator)
          Creates a TextMatcherEditor bound to the given document with the given textFilterator.
TextComponentMatcherEditor(JTextComponent textComponent, TextFilterator<? super E> textFilterator, boolean live)
          Creates a TextMatcherEditor bound to the Document backing the given textComponent with the given textFilterator.
TextComponentMatcherEditor(JTextComponent textComponent, TextFilterator<E> textFilterator)
          Creates a TextMatcherEditor bound to the Document backing the given textComponent with the given textFilterator.
 
Method Summary
 void dispose()
          A cleanup method which stops this MatcherEditor from listening to changes on the underlying Document, thus freeing the MatcherEditor or Document to be garbage collected.
 boolean isLive()
          Whether filtering occurs by the keystroke or not.
 void setLive(boolean live)
          Toggle between filtering by the keystroke and not.
 
Methods inherited from class com.levigo.util.base.glazedlists.matchers.TextMatcherEditor
getCurrentTextMatcher, getFilterator, getMode, getStrategy, setFilterator, setFilterText, setMode, setStrategy, setTextMatcher
 
Methods inherited from class com.levigo.util.base.glazedlists.matchers.AbstractMatcherEditor
addMatcherEditorListener, fireChanged, fireChangedMatcher, fireConstrained, fireMatchAll, fireMatchNone, fireRelaxed, getMatcher, isCurrentlyMatchingAll, isCurrentlyMatchingNone, removeMatcherEditorListener
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TextComponentMatcherEditor

public TextComponentMatcherEditor(JTextComponent textComponent,
                                  TextFilterator<E> textFilterator)
Creates a TextMatcherEditor bound to the Document backing the given textComponent with the given textFilterator.

Parameters:
textComponent - the text component backed by the Document that is the source of text filter values
textFilterator - an object capable of producing Strings from the objects being filtered. If textFilterator is null then all filtered objects are expected to implement TextFilterable.

TextComponentMatcherEditor

public TextComponentMatcherEditor(JTextComponent textComponent,
                                  TextFilterator<? super E> textFilterator,
                                  boolean live)
Creates a TextMatcherEditor bound to the Document backing the given textComponent with the given textFilterator.

Parameters:
textComponent - the text component backed by the Document that is the source of text filter values
textFilterator - an object capable of producing Strings from the objects being filtered. If textFilterator is null then all filtered objects are expected to implement TextFilterable.
live - true to filter by the keystroke or false to filter only when Enter is pressed within the JTextComponent. Note that non-live filtering is only supported if textComponent is a JTextField.
Throws:
IllegalArgumentException - if the textComponent is not a JTextField and non-live filtering is specified.

TextComponentMatcherEditor

public TextComponentMatcherEditor(Document document,
                                  TextFilterator<? super E> textFilterator)
Creates a TextMatcherEditor bound to the given document with the given textFilterator.

Parameters:
document - the Document that is the source of text filter values
textFilterator - an object capable of producing Strings from the objects being filtered. If textFilterator is null then all filtered objects are expected to implement TextFilterable.
Method Detail

isLive

public boolean isLive()
Whether filtering occurs by the keystroke or not.


setLive

public void setLive(boolean live)
Toggle between filtering by the keystroke and not.

Parameters:
live - true to filter by the keystroke or false to filter only when Enter is pressed within the JTextComponent. Note that non-live filtering is only supported if textComponent is a JTextField.

dispose

public void dispose()
A cleanup method which stops this MatcherEditor from listening to changes on the underlying Document, thus freeing the MatcherEditor or Document to be garbage collected.



Copyright © 1995-2020 levigo holding gmbh. All Rights Reserved.