Provides a framework for creating and manipulating text documents.
IDocument is the major text 
  model abstraction. It provides content management, position management using 
  position categories, document partition management, and change notification. 
  In order to be notified about document changes, an object must implements IDocumentListener 
  and must be registered with the document. Position 
  updating in responds to a document change is performed by implementers of IDocumentPositionUpdater. 
  Partition updating in responds to a document change is performed by implements 
  of IDocumentPartitioner. In order 
  to be notified about document partition changes, objects must implement IDocumentParititoningListener 
  and must be registered with the document.
The package contains default implementations for document position updaters 
  and for documents. AbstractDocument 
  uses ITextStorage for storing 
  and managing its content and ILineTracker 
  to maintain a line structure of its content. As defaults a gap text implementation 
  of ITextStore is provided, together 
  with a line tracker understanding the three standard line delimiters ("\r", 
  "\n", "\r\n") and a line tracker which can be freely configured 
  to consider any given set of strings as valid line delimiters. 
ITextViewer defines the concept of a document based, editiable viewer. 
  ITextViewer offers the following functionality: 
IEventConsumer)IIViewportListener)ITextListener, ITextInputListener)ITextViewer supports the following plug-ins
IUndoManager for the undo/redo mechanismIDoubleClickStrategy for partition type specific behavior on mouse
double clickIAutoIndentStrategy  for content type specific behavior on
inserting a line breakITextHover for content type specific behavior when overing over
text