javax.swing.text
public class: DocumentFilter [javadoc |
source]
java.lang.Object
javax.swing.text.DocumentFilter
Direct Known Subclasses:
Filter, DefaultDocumentFilter
DocumentFilter
, as the name implies, is a filter for the
Document
mutation methods. When a
Document
containing a
DocumentFilter
is modified (either through
insert
or
remove
), it forwards the appropriate
method invocation to the
DocumentFilter
. The
default implementation allows the modification to
occur. Subclasses can filter the modifications by conditionally invoking
methods on the superclass, or invoking the necessary methods on
the passed in
FilterBypass
. Subclasses should NOT call back
into the Document for the modification
instead call into the superclass or the
FilterBypass
.
When remove
or insertString
is invoked
on the DocumentFilter
, the DocumentFilter
may callback into the
FilterBypass
multiple times, or for different regions, but
it should not callback into the FilterBypass
after returning
from the remove
or insertString
method.
By default, text related document mutation methods such as
insertString
, replace
and remove
in AbstractDocument
use DocumentFilter
when
available, and Element
related mutation methods such as
create
, insert
and removeElement
in
DefaultStyledDocument
do not use DocumentFilter
.
If a method doesn't follow these defaults, this must be explicitly stated
in the method documentation.
Nested Class Summary: |
---|
abstract public static class | DocumentFilter.FilterBypass | Used as a way to circumvent calling back into the Document to
change it. Document implementations that wish to support
a DocumentFilter must provide an implementation that will
not callback into the DocumentFilter when the following methods
are invoked from the DocumentFilter. |
Methods from java.lang.Object: |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Method from javax.swing.text.DocumentFilter Detail: |
public void insertString(FilterBypass fb,
int offset,
String string,
AttributeSet attr) throws BadLocationException {
fb.insertString(offset, string, attr);
}
Invoked prior to insertion of text into the
specified Document. Subclasses that want to conditionally allow
insertion should override this and only call supers implementation as
necessary, or call directly into the FilterBypass. |
public void remove(FilterBypass fb,
int offset,
int length) throws BadLocationException {
fb.remove(offset, length);
}
Invoked prior to removal of the specified region in the
specified Document. Subclasses that want to conditionally allow
removal should override this and only call supers implementation as
necessary, or call directly into the FilterBypass as
necessary. |
public void replace(FilterBypass fb,
int offset,
int length,
String text,
AttributeSet attrs) throws BadLocationException {
fb.replace(offset, length, text, attrs);
}
Invoked prior to replacing a region of text in the
specified Document. Subclasses that want to conditionally allow
replace should override this and only call supers implementation as
necessary, or call directly into the FilterBypass. |