blob: 5561c3748e5366b2c60e865b7f4222c10464d1cc [file] [log] [blame]
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Author" content="IBM">
<meta name="GENERATOR" content="Mozilla/4.51 [en] (WinNT; I) [Netscape]">
<title>Package-level Javadoc</title>
</head>
<body>
Provides a framework for creating, manipulating, displaying
and editing text documents.
<h2>
Package Specification</h2>
The packages is divided into two parts. The first part defines and implements
the notion of text documents, whereas the second part defines and implements
a viewer for text documents.
<h3>
Text Model</h3>
<tt>IDocument</tt> is the major text model abstraction. It provides content
management, position management using position categories, document partition
management, searching, and change notification.&nbsp; In order to be notified
about document changes, an object must implements <tt>IDocumentListener</tt>
and must be registered with the document. Position updating in responds
to a document change is performed by implementers of <tt>IDocumentPositionUpdater</tt>.
Partition updating in responds to a document change is performed by implements
of <tt>IDocumentPartitioner</tt>. In order to be notified about document
partition changes, objects must implement <tt>IDocumentParititoningListener</tt>
and must be registered with the document.
<p>The package contains default implementations for document position updaters
and for documents. <tt>AbstractDocument</tt> uses <tt>ITextStorage</tt>
for storing and managing its content and <tt>ILineTracker</tt> to maintain
a line structure of its content. As defaults a gap text implementation
of <tt>ITextStore</tt> is provided, together with a line tracker understanding
the three standard line delimiters ("\r", "\n", "\r\n") and a&nbsp; line
tracker which can be freely configured to consider any given set of strings
as valid line delimiters.
<h3>
Text Viewer</h3>
<tt>ITextViewer</tt> defines the concept of a document based, editiable
viewer. <tt>ITextViewer</tt> offers the following functionality:
<ul>
<li>
present a document</li>
<li>
event consumption (<tt>IEventConsumer</tt>)</li>
<li>
viewport tracking and notification (<tt>IIViewportListener</tt>)</li>
<li>
change notification (<tt>ITextListener</tt>, <tt>ITextInputListener</tt>)</li>
<li>
listeners (combined view/model notification, input document)</li>
<li>
standard text editing functions plus text hover support</li>
<li>
visual region support</li>
</ul>
An ITextViewer supports the following plugins
<ul>
<li>
<tt>IUndoManager</tt> for the undo/redo mechanism</li>
<li>
<tt>IDoubleClickStrategy</tt> for partition type specific behavior on mouse
double click</li>
<li>
<tt>IAutoIndentStrategy</tt>&nbsp; for content type specific behavior on
inserting a line break</li>
<li>
<tt>ITextHover</tt> for content type specific behavior when overing over
text</li>
</ul>
The package provides default implementations for all these interfaces.
</body>
</html>