<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc on Tue Jun 29 06:00:57 GMT+01:00 1999 -->
<TITLE>
Swing 1.1 API Specification: Class  AbstractDocument
</TITLE>
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
</HEAD>
<BODY BGCOLOR="white">

<!-- ========== START OF NAVBAR ========== -->
<A NAME="navbar_top"><!-- --></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" ID="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" ID="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT ID="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" ID="NavBarCell1">    <A HREF="package-summary.html"><FONT ID="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" ID="NavBarCell1Rev"> &nbsp;<FONT ID="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" ID="NavBarCell1">    <A HREF="class-use/AbstractDocument.html"><FONT ID="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" ID="NavBarCell1">    <A HREF="package-tree.html"><FONT ID="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" ID="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT ID="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" ID="NavBarCell1">    <A HREF="../../../index-files/index-1.html"><FONT ID="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" ID="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT ID="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
Swing 1.1</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" ID="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV CLASS&nbsp;
&nbsp;<A HREF="../../../javax/swing/text/AbstractDocument.AbstractElement.html"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" ID="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="AbstractDocument.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
</TR>
<TR>
<TD VALIGN="top" ID="NavBarCell3"><FONT SIZE="-2">
  SUMMARY: &nbsp;<A HREF="#inner_class_summary">INNER</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" ID="NavBarCell3"><FONT SIZE="-2">
DETAIL: &nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<!-- =========== END OF NAVBAR =========== -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
javax.swing.text</FONT>
<BR>
Class  AbstractDocument</H2>
<PRE>
java.lang.Object
  |
  +--<B>javax.swing.text.AbstractDocument</B>
</PRE>
<DL>
<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../javax/swing/text/DefaultStyledDocument.html">DefaultStyledDocument</A>, <A HREF="../../../javax/swing/text/PlainDocument.html">PlainDocument</A></DD>
</DL>
<HR>
<DL>
<DT>public abstract class <B>AbstractDocument</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../javax/swing/text/Document.html">Document</A>, java.io.Serializable</DL>

<P>
An implementation of the document interface to serve as a 
 basis for implementing various kinds of documents.  At this
 level there is very little policy, so there is a corresponding
 increase in difficulty of use.
 <p>
 This class implements a locking mechanism for the document.  It
 allows multiple readers or one writer, and writers must wait until 
 all observers of the document have been notified of a previous 
 change before beginning another mutation to the document.  The
 read lock is aquired and released using the <code>render</code>
 method.  A write lock is aquired by the methods that mutate the
 document, and are held for the duration of the method call.
 Notification is done on the thread that produced the mutation, 
 and the thread has full read access to the document for the
 duration of the notification, but other readers are kept out
 until the notification has finished.  The notification is a
 beans event notification which does not allow any further 
 mutations until all listeners have been notified.
 <p>
 Any models subclassed from this class and used in conjunction
 with a text component that has a look and feel implementation
 that is derived from BasicTextUI may be safely updated
 asynchronously, because all access to the View hierarchy
 is serialized by BasicTextUI if the document is of type
 <code>AbstractDocument</code>.  The locking assumes that an
 independant thread will access the View hierarchy only from
 the DocumentListener methods, and that there will be only
 one event thread active at a time.
 <p>
 If concurrency support is desired, there are the following 
 additional implications.  The code path for any DocumentListener 
 implementation and any UndoListener implementation must be threadsafe, 
 and not access the component lock if trying to be safe from deadlocks.  
 The <code>repaint</code> and <code>revalidate</code> methods 
 on JComponent are safe.
 <p>
 <strong>Warning:</strong>
 Serialized objects of this class will not be compatible with 
 future Swing releases.  The current serialization support is appropriate
 for short term storage or RMI between applications running the same
 version of Swing.  A future release of Swing will provide support for
 long term persistence.
<P>
<DL>
<DT><B>See Also: </B><DD><A HREF="../../../serialized-form.html#javax.swing.text.AbstractDocument">Serialized Form</A></DL>
<HR>

<P>
<!-- ======== INNER CLASS SUMMARY ======== -->

<A NAME="inner_class_summary"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#CCCCFF" ID="TableHeadingColor">
<TD COLSPAN=2><FONT SIZE="+2">
<B>Inner Class Summary</B></FONT></TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;class</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.AbstractElement.html">AbstractDocument.AbstractElement</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements the abstract part of an element.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;interface</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.AttributeContext.html">AbstractDocument.AttributeContext</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An interface that can be used to allow MutableAttributeSet 
 implementations to use pluggable attribute compression
 techniques.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;class</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.BranchElement.html">AbstractDocument.BranchElement</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements a composite element that contains other elements.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;interface</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.Content.html">AbstractDocument.Content</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Interface to describe a sequence of character content that
 can be edited.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;class</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.DefaultDocumentEvent.html">AbstractDocument.DefaultDocumentEvent</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stores document changes as the document is being
 modified.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;class</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.ElementEdit.html">AbstractDocument.ElementEdit</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An implementation of ElementChange that can be added to the document
 event.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;class</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.LeafElement.html">AbstractDocument.LeafElement</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implements an element that directly represents content of
 some kind.</TD>
</TR>
</TABLE>
&nbsp;
<!-- =========== FIELD SUMMARY =========== -->

<A NAME="field_summary"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#CCCCFF" ID="TableHeadingColor">
<TD COLSPAN=2><FONT SIZE="+2">
<B>Field Summary</B></FONT></TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#BAD_LOCATION">BAD_LOCATION</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Error message to indicate a bad location.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#BidiElementName">BidiElementName</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Name of elements used to hold a unidirectional run</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#ContentElementName">ContentElementName</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Name of elements used to represent content</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#ElementNameAttribute">ElementNameAttribute</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Name of the attribute used to specify element
 names.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../javax/swing/event/EventListenerList.html">EventListenerList</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#listenerList">listenerList</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The event listener list for the document.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#ParagraphElementName">ParagraphElementName</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Name of elements used to represent paragraphs</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#SectionElementName">SectionElementName</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Name of elements used to hold sections (lines/paragraphs).</TD>
</TR>
</TABLE>
&nbsp;
<!-- ======== CONSTRUCTOR SUMMARY ======== -->

<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#CCCCFF" ID="TableHeadingColor">
<TD COLSPAN=2><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected </CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#AbstractDocument(javax.swing.text.AbstractDocument.Content)">AbstractDocument</A></B>(<A HREF="../../../javax/swing/text/AbstractDocument.Content.html">AbstractDocument.Content</A>&nbsp;data)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new AbstractDocument, wrapped around some
 specified content storage mechanism.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected </CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#AbstractDocument(javax.swing.text.AbstractDocument.Content, javax.swing.text.AbstractDocument.AttributeContext)">AbstractDocument</A></B>(<A HREF="../../../javax/swing/text/AbstractDocument.Content.html">AbstractDocument.Content</A>&nbsp;data,
                 <A HREF="../../../javax/swing/text/AbstractDocument.AttributeContext.html">AbstractDocument.AttributeContext</A>&nbsp;context)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new AbstractDocument, wrapped around some
 specified content storage mechanism.</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#CCCCFF" ID="TableHeadingColor">
<TD COLSPAN=2><FONT SIZE="+2">
<B>Method Summary</B></FONT></TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#addDocumentListener(javax.swing.event.DocumentListener)">addDocumentListener</A></B>(<A HREF="../../../javax/swing/event/DocumentListener.html">DocumentListener</A>&nbsp;listener)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds a document listener for notification of any changes.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#addUndoableEditListener(javax.swing.event.UndoableEditListener)">addUndoableEditListener</A></B>(<A HREF="../../../javax/swing/event/UndoableEditListener.html">UndoableEditListener</A>&nbsp;listener)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds an undo listener for notification of any changes.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../javax/swing/text/Element.html">Element</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#createBranchElement(javax.swing.text.Element, javax.swing.text.AttributeSet)">createBranchElement</A></B>(<A HREF="../../../javax/swing/text/Element.html">Element</A>&nbsp;parent,
                    <A HREF="../../../javax/swing/text/AttributeSet.html">AttributeSet</A>&nbsp;a)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a document branch element, that can contain other elements.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../javax/swing/text/Element.html">Element</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#createLeafElement(javax.swing.text.Element, javax.swing.text.AttributeSet, int, int)">createLeafElement</A></B>(<A HREF="../../../javax/swing/text/Element.html">Element</A>&nbsp;parent,
                  <A HREF="../../../javax/swing/text/AttributeSet.html">AttributeSet</A>&nbsp;a,
                  int&nbsp;p0,
                  int&nbsp;p1)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a document leaf element.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../javax/swing/text/Position.html">Position</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#createPosition(int)">createPosition</A></B>(int&nbsp;offs)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a position that will track change as the document
 is altered.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#dump(java.io.PrintStream)">dump</A></B>(java.io.PrintStream&nbsp;out)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gives a diagnostic dump.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#fireChangedUpdate(javax.swing.event.DocumentEvent)">fireChangedUpdate</A></B>(<A HREF="../../../javax/swing/event/DocumentEvent.html">DocumentEvent</A>&nbsp;e)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Notifies all listeners that have registered interest for
 notification on this event type.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#fireInsertUpdate(javax.swing.event.DocumentEvent)">fireInsertUpdate</A></B>(<A HREF="../../../javax/swing/event/DocumentEvent.html">DocumentEvent</A>&nbsp;e)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Notifies all listeners that have registered interest for
 notification on this event type.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#fireRemoveUpdate(javax.swing.event.DocumentEvent)">fireRemoveUpdate</A></B>(<A HREF="../../../javax/swing/event/DocumentEvent.html">DocumentEvent</A>&nbsp;e)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Notifies all listeners that have registered interest for
 notification on this event type.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#fireUndoableEditUpdate(javax.swing.event.UndoableEditEvent)">fireUndoableEditUpdate</A></B>(<A HREF="../../../javax/swing/event/UndoableEditEvent.html">UndoableEditEvent</A>&nbsp;e)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Notifies all listeners that have registered interest for
 notification on this event type.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#getAsynchronousLoadPriority()">getAsynchronousLoadPriority</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the asynchronous loading priority.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../javax/swing/text/AbstractDocument.AttributeContext.html">AbstractDocument.AttributeContext</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#getAttributeContext()">getAttributeContext</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fetches the context for managing attributes.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../javax/swing/text/Element.html">Element</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#getBidiRootElement()">getBidiRootElement</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the root element of the bidirectional structure for this
 document.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../javax/swing/text/AbstractDocument.Content.html">AbstractDocument.Content</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#getContent()">getContent</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the content for the document.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;java.lang.Thread</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#getCurrentWriter()">getCurrentWriter</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fetches the current writing thread if there is one.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>abstract &nbsp;<A HREF="../../../javax/swing/text/Element.html">Element</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#getDefaultRootElement()">getDefaultRootElement</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the root element that views should be based upon
 unless some other mechanism for assigning views to element
 structures is provided.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.util.Dictionary</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#getDocumentProperties()">getDocumentProperties</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Support for managing a set of properties.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../javax/swing/text/Position.html">Position</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#getEndPosition()">getEndPosition</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a position that represents the end of the document.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#getLength()">getLength</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the length of the data.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>abstract &nbsp;<A HREF="../../../javax/swing/text/Element.html">Element</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#getParagraphElement(int)">getParagraphElement</A></B>(int&nbsp;pos)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the paragraph element containing the given position.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#getProperty(java.lang.Object)">getProperty</A></B>(java.lang.Object&nbsp;key)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A convenience method for looking up a property value.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../javax/swing/text/Element.html">Element</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#getRootElements()">getRootElements</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets all root elements defined.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../javax/swing/text/Position.html">Position</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#getStartPosition()">getStartPosition</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a position that represents the start of the document.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#getText(int, int)">getText</A></B>(int&nbsp;offset,
        int&nbsp;length)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets a sequence of text from the document.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#getText(int, int, javax.swing.text.Segment)">getText</A></B>(int&nbsp;offset,
        int&nbsp;length,
        <A HREF="../../../javax/swing/text/Segment.html">Segment</A>&nbsp;txt)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets some text from the document potentially without
 making a copy.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#insertString(int, java.lang.String, javax.swing.text.AttributeSet)">insertString</A></B>(int&nbsp;offs,
             java.lang.String&nbsp;str,
             <A HREF="../../../javax/swing/text/AttributeSet.html">AttributeSet</A>&nbsp;a)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inserts some content into the document.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#insertUpdate(javax.swing.text.AbstractDocument.DefaultDocumentEvent, javax.swing.text.AttributeSet)">insertUpdate</A></B>(<A HREF="../../../javax/swing/text/AbstractDocument.DefaultDocumentEvent.html">AbstractDocument.DefaultDocumentEvent</A>&nbsp;chng,
             <A HREF="../../../javax/swing/text/AttributeSet.html">AttributeSet</A>&nbsp;attr)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates document structure as a result of text insertion.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#postRemoveUpdate(javax.swing.text.AbstractDocument.DefaultDocumentEvent)">postRemoveUpdate</A></B>(<A HREF="../../../javax/swing/text/AbstractDocument.DefaultDocumentEvent.html">AbstractDocument.DefaultDocumentEvent</A>&nbsp;chng)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates any document structure as a result of text removal.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#putProperty(java.lang.Object, java.lang.Object)">putProperty</A></B>(java.lang.Object&nbsp;key,
            java.lang.Object&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A convenience method for storing up a property value.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#readLock()">readLock</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Acquires a lock to begin reading some state from the 
 document.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#readUnlock()">readUnlock</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Does a read unlock.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#remove(int, int)">remove</A></B>(int&nbsp;offs,
       int&nbsp;len)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes some content from the document.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#removeDocumentListener(javax.swing.event.DocumentListener)">removeDocumentListener</A></B>(<A HREF="../../../javax/swing/event/DocumentListener.html">DocumentListener</A>&nbsp;listener)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes a document listener.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#removeUndoableEditListener(javax.swing.event.UndoableEditListener)">removeUndoableEditListener</A></B>(<A HREF="../../../javax/swing/event/UndoableEditListener.html">UndoableEditListener</A>&nbsp;listener)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes an undo listener.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#removeUpdate(javax.swing.text.AbstractDocument.DefaultDocumentEvent)">removeUpdate</A></B>(<A HREF="../../../javax/swing/text/AbstractDocument.DefaultDocumentEvent.html">AbstractDocument.DefaultDocumentEvent</A>&nbsp;chng)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates any document structure as a result of text removal.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#render(java.lang.Runnable)">render</A></B>(java.lang.Runnable&nbsp;r)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This allows the model to be safely rendered in the presence
 of currency, if the model supports being updated asynchronously.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#setAsynchronousLoadPriority(int)">setAsynchronousLoadPriority</A></B>(int&nbsp;p)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the asynchronous loading priority.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#setDocumentProperties(java.util.Dictionary)">setDocumentProperties</A></B>(java.util.Dictionary&nbsp;x)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Replace the document properties dictionary for this document.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#writeLock()">writeLock</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Acquires a lock to begin mutating the document this lock
 protects.</TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../javax/swing/text/AbstractDocument.html#writeUnlock()">writeUnlock</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Releases the write lock held because the write
 operation is finished.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#EEEEFF" ID="TableSubHeadingColor">
<TD><B>Methods inherited from class java.lang.Object</B></TD>
</TR>
<TR BGCOLOR="white" ID="TableRowColor">
<TD><CODE>clone, 
equals, 
finalize, 
getClass, 
hashCode, 
notify, 
notifyAll, 
toString, 
wait, 
wait, 
wait</CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ============ FIELD DETAIL =========== -->

<A NAME="field_detail"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#CCCCFF" ID="TableHeadingColor">
<TD COLSPAN=1><FONT SIZE="+2">
<B>Field Detail</B></FONT></TD>
</TR>
</TABLE>

<A NAME="listenerList"><!-- --></A><H3>
listenerList</H3>
<PRE>
protected <A HREF="../../../javax/swing/event/EventListenerList.html">EventListenerList</A> <B>listenerList</B></PRE>
<DL>
<DD>The event listener list for the document.</DL>
<HR>

<A NAME="BAD_LOCATION"><!-- --></A><H3>
BAD_LOCATION</H3>
<PRE>
protected static final java.lang.String <B>BAD_LOCATION</B></PRE>
<DL>
<DD>Error message to indicate a bad location.</DL>
<HR>

<A NAME="ParagraphElementName"><!-- --></A><H3>
ParagraphElementName</H3>
<PRE>
public static final java.lang.String <B>ParagraphElementName</B></PRE>
<DL>
<DD>Name of elements used to represent paragraphs</DL>
<HR>

<A NAME="ContentElementName"><!-- --></A><H3>
ContentElementName</H3>
<PRE>
public static final java.lang.String <B>ContentElementName</B></PRE>
<DL>
<DD>Name of elements used to represent content</DL>
<HR>

<A NAME="SectionElementName"><!-- --></A><H3>
SectionElementName</H3>
<PRE>
public static final java.lang.String <B>SectionElementName</B></PRE>
<DL>
<DD>Name of elements used to hold sections (lines/paragraphs).</DL>
<HR>

<A NAME="BidiElementName"><!-- --></A><H3>
BidiElementName</H3>
<PRE>
public static final java.lang.String <B>BidiElementName</B></PRE>
<DL>
<DD>Name of elements used to hold a unidirectional run</DL>
<HR>

<A NAME="ElementNameAttribute"><!-- --></A><H3>
ElementNameAttribute</H3>
<PRE>
public static final java.lang.String <B>ElementNameAttribute</B></PRE>
<DL>
<DD>Name of the attribute used to specify element
 names.</DL>

<!-- ========= CONSTRUCTOR DETAIL ======== -->

<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#CCCCFF" ID="TableHeadingColor">
<TD COLSPAN=1><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TD>
</TR>
</TABLE>

<A NAME="AbstractDocument(javax.swing.text.AbstractDocument.Content)"><!-- --></A><H3>
AbstractDocument</H3>
<PRE>
protected <B>AbstractDocument</B>(<A HREF="../../../javax/swing/text/AbstractDocument.Content.html">AbstractDocument.Content</A>&nbsp;data)</PRE>
<DL>
<DD>Constructs a new AbstractDocument, wrapped around some
 specified content storage mechanism.<DD><DL>
<DT><B>Parameters:</B><DD><CODE>data</CODE> - the content</DL>
</DD>
</DL>
<HR>

<A NAME="AbstractDocument(javax.swing.text.AbstractDocument.Content, javax.swing.text.AbstractDocument.AttributeContext)"><!-- --></A><H3>
AbstractDocument</H3>
<PRE>
protected <B>AbstractDocument</B>(<A HREF="../../../javax/swing/text/AbstractDocument.Content.html">AbstractDocument.Content</A>&nbsp;data,
                           <A HREF="../../../javax/swing/text/AbstractDocument.AttributeContext.html">AbstractDocument.AttributeContext</A>&nbsp;context)</PRE>
<DL>
<DD>Constructs a new AbstractDocument, wrapped around some
 specified content storage mechanism.<DD><DL>
<DT><B>Parameters:</B><DD><CODE>data</CODE> - the content<DD><CODE>context</CODE> - the attribute context</DL>
</DD>
</DL>

<!-- ============ METHOD DETAIL ========== -->

<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#CCCCFF" ID="TableHeadingColor">
<TD COLSPAN=1><FONT SIZE="+2">
<B>Method Detail</B></FONT></TD>
</TR>
</TABLE>

<A NAME="getDocumentProperties()"><!-- --></A><H3>
getDocumentProperties</H3>
<PRE>
public java.util.Dictionary <B>getDocumentProperties</B>()</PRE>
<DL>
<DD>Support for managing a set of properties. Callers
 can use the documentProperties dictionary to annotate the
 document with document-wide properties.<DD><DL>
<DT><B>Returns:</B><DD>a non null Dictionary<DT><B>See Also: </B><DD><A HREF="../../../javax/swing/text/AbstractDocument.html#setDocumentProperties(java.util.Dictionary)"><CODE>setDocumentProperties(java.util.Dictionary)</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setDocumentProperties(java.util.Dictionary)"><!-- --></A><H3>
setDocumentProperties</H3>
<PRE>
public void <B>setDocumentProperties</B>(java.util.Dictionary&nbsp;x)</PRE>
<DL>
<DD>Replace the document properties dictionary for this document.<DD><DL>
<DT><B>Parameters:</B><DD><CODE>x</CODE> - the new dictionary<DT><B>See Also: </B><DD><A HREF="../../../javax/swing/text/AbstractDocument.html#getDocumentProperties()"><CODE>getDocumentProperties()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="fireInsertUpdate(javax.swing.event.DocumentEvent)"><!-- --></A><H3>
fireInsertUpdate</H3>
<PRE>
protected void <B>fireInsertUpdate</B>(<A HREF="../../../javax/swing/event/DocumentEvent.html">DocumentEvent</A>&nbsp;e)</PRE>
<DL>
<DD>Notifies all listeners that have registered interest for
 notification on this event type.  The event instance 
 is lazily created using the parameters passed into 
 the fire method.<DD><DL>
<DT><B>Parameters:</B><DD><CODE>e</CODE> - the event<DT><B>See Also: </B><DD><A HREF="../../../javax/swing/event/EventListenerList.html"><CODE>EventListenerList</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="fireChangedUpdate(javax.swing.event.DocumentEvent)"><!-- --></A><H3>
fireChangedUpdate</H3>
<PRE>
protected void <B>fireChangedUpdate</B>(<A HREF="../../../javax/swing/event/DocumentEvent.html">DocumentEvent</A>&nbsp;e)</PRE>
<DL>
<DD>Notifies all listeners that have registered interest for
 notification on this event type.  The event instance 
 is lazily created using the parameters passed into 
 the fire method.<DD><DL>
<DT><B>Parameters:</B><DD><CODE>e</CODE> - the event<DT><B>See Also: </B><DD><A HREF="../../../javax/swing/event/EventListenerList.html"><CODE>EventListenerList</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="fireRemoveUpdate(javax.swing.event.DocumentEvent)"><!-- --></A><H3>
fireRemoveUpdate</H3>
<PRE>
protected void <B>fireRemoveUpdate</B>(<A HREF="../../../javax/swing/event/DocumentEvent.html">DocumentEvent</A>&nbsp;e)</PRE>
<DL>
<DD>Notifies all listeners that have registered interest for
 notification on this event type.  The event instance 
 is lazily created using the parameters passed into 
 the fire method.<DD><DL>
<DT><B>Parameters:</B><DD><CODE>e</CODE> - the event<DT><B>See Also: </B><DD><A HREF="../../../javax/swing/event/EventListenerList.html"><CODE>EventListenerList</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="fireUndoableEditUpdate(javax.swing.event.UndoableEditEvent)"><!-- --></A><H3>
fireUndoableEditUpdate</H3>
<PRE>
protected void <B>fireUndoableEditUpdate</B>(<A HREF="../../../javax/swing/event/UndoableEditEvent.html">UndoableEditEvent</A>&nbsp;e)</PRE>
<DL>
<DD>Notifies all listeners that have registered interest for
 notification on this event type.  The event instance 
 is lazily created using the parameters passed into 
 the fire method.<DD><DL>
<DT><B>Parameters:</B><DD><CODE>e</CODE> - the event<DT><B>See Also: </B><DD><A HREF="../../../javax/swing/event/EventListenerList.html"><CODE>EventListenerList</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getAsynchronousLoadPriority()"><!-- --></A><H3>
getAsynchronousLoadPriority</H3>
<PRE>
public int <B>getAsynchronousLoadPriority</B>()</PRE>
<DL>
<DD>Get the asynchronous loading priority.  If less than zero,
 the document should not be loaded asynchronously.<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setAsynchronousLoadPriority(int)"><!-- --></A><H3>
setAsynchronousLoadPriority</H3>
<PRE>
public void <B>setAsynchronousLoadPriority</B>(int&nbsp;p)</PRE>
<DL>
<DD>Set the asynchronous loading priority.<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="render(java.lang.Runnable)"><!-- --></A><H3>
render</H3>
<PRE>
public void <B>render</B>(java.lang.Runnable&nbsp;r)</PRE>
<DL>
<DD>This allows the model to be safely rendered in the presence
 of currency, if the model supports being updated asynchronously.
 The given runnable will be executed in a way that allows it
 to safely read the model with no changes while the runnable
 is being executed.  The runnable itself may <em>not</em>
 make any mutations. 
 <p>
 This is implemented to aquire a read lock for the duration
 of the runnables execution.  There may be multiple runnables
 executing at the same time, and all writers will be blocked
 while there are active rendering runnables.  If the runnable
 throws an exception, its lock will be safely released.
 There is no protection against a runnable that never exits,
 which will effectively leave the document locked for it's
 lifetime.
 <p>
 If the given runnable attempts to make any mutations in
 this implementation, a deadlock will occur.  There is
 no tracking of individual rendering threads to enable
 detecting this situation, but a subclass could incur
 the overhead of tracking them and throwing an error.
 <p>
 This method is thread safe, although most Swing methods
 are not. Please see 
 <A HREF="http://java.sun.com/products/jfc/swingdoc-archive/threads.html">Threads
 and Swing</A> for more information.<DD><DL>
<DT><B>Specified by: </B><DD><A HREF="../../../javax/swing/text/Document.html#render(java.lang.Runnable)">render</A> in interface <A HREF="../../../javax/swing/text/Document.html">Document</A><DT><B>Parameters:</B><DD><CODE>r</CODE> - the renderer to execute.</DL>
</DD>
</DL>
<HR>

<A NAME="getLength()"><!-- --></A><H3>
getLength</H3>
<PRE>
public int <B>getLength</B>()</PRE>
<DL>
<DD>Returns the length of the data.  This is the number of
 characters of content that represents the users data.<DD><DL>
<DT><B>Specified by: </B><DD><A HREF="../../../javax/swing/text/Document.html#getLength()">getLength</A> in interface <A HREF="../../../javax/swing/text/Document.html">Document</A><DT><B>Returns:</B><DD>the length >= 0<DT><B>See Also: </B><DD><A HREF="../../../javax/swing/text/Document.html#getLength()"><CODE>Document.getLength()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="addDocumentListener(javax.swing.event.DocumentListener)"><!-- --></A><H3>
addDocumentListener</H3>
<PRE>
public void <B>addDocumentListener</B>(<A HREF="../../../javax/swing/event/DocumentListener.html">DocumentListener</A>&nbsp;listener)</PRE>
<DL>
<DD>Adds a document listener for notification of any changes.<DD><DL>
<DT><B>Specified by: </B><DD><A HREF="../../../javax/swing/text/Document.html#addDocumentListener(javax.swing.event.DocumentListener)">addDocumentListener</A> in interface <A HREF="../../../javax/swing/text/Document.html">Document</A><DT><B>Parameters:</B><DD><CODE>listener</CODE> - the listener<DT><B>See Also: </B><DD><A HREF="../../../javax/swing/text/Document.html#addDocumentListener(javax.swing.event.DocumentListener)"><CODE>Document.addDocumentListener(javax.swing.event.DocumentListener)</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="removeDocumentListener(javax.swing.event.DocumentListener)"><!-- --></A><H3>
removeDocumentListener</H3>
<PRE>
public void <B>removeDocumentListener</B>(<A HREF="../../../javax/swing/event/DocumentListener.html">DocumentListener</A>&nbsp;listener)</PRE>
<DL>
<DD>Removes a document listener.<DD><DL>
<DT><B>Specified by: </B><DD><A HREF="../../../javax/swing/text/Document.html#removeDocumentListener(javax.swing.event.DocumentListener)">removeDocumentListener</A> in interface <A HREF="../../../javax/swing/text/Document.html">Document</A><DT><B>Parameters:</B><DD><CODE>listener</CODE> - the listener<DT><B>See Also: </B><DD><A HREF="../../../javax/swing/text/Document.html#removeDocumentListener(javax.swing.event.DocumentListener)"><CODE>Document.removeDocumentListener(javax.swing.event.DocumentListener)</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="addUndoableEditListener(javax.swing.event.UndoableEditListener)"><!-- --></A><H3>
addUndoableEditListener</H3>
<PRE>
public void <B>addUndoableEditListener</B>(<A HREF="../../../javax/swing/event/UndoableEditListener.html">UndoableEditListener</A>&nbsp;listener)</PRE>
<DL>
<DD>Adds an undo listener for notification of any changes.
 Undo/Redo operations performed on the UndoableEdit will
 cause the appropriate DocumentEvent to be fired to keep
 the view(s) in sync with the model.<DD><DL>
<DT><B>Specified by: </B><DD><A HREF="../../../javax/swing/text/Document.html#addUndoableEditListener(javax.swing.event.UndoableEditListener)">addUndoableEditListener</A> in interface <A HREF="../../../javax/swing/text/Document.html">Document</A><DT><B>Parameters:</B><DD><CODE>listener</CODE> - the listener<DT><B>See Also: </B><DD><A HREF="../../../javax/swing/text/Document.html#addUndoableEditListener(javax.swing.event.UndoableEditListener)"><CODE>Document.addUndoableEditListener(javax.swing.event.UndoableEditListener)</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="removeUndoableEditListener(javax.swing.event.UndoableEditListener)"><!-- --></A><H3>
removeUndoableEditListener</H3>
<PRE>
public void <B>removeUndoableEditListener</B>(<A HREF="../../../javax/swing/event/UndoableEditListener.html">UndoableEditListener</A>&nbsp;listener)</PRE>
<DL>
<DD>Removes an undo listener.<DD><DL>
<DT><B>Specified by: </B><DD><A HREF="../../../javax/swing/text/Document.html#removeUndoableEditListener(javax.swing.event.UndoableEditListener)">removeUndoableEditListener</A> in interface <A HREF="../../../javax/swing/text/Document.html">Document</A><DT><B>Parameters:</B><DD><CODE>listener</CODE> - the listener<DT><B>See Also: </B><DD><A HREF="../../../javax/swing/text/Document.html#removeDocumentListener(javax.swing.event.DocumentListener)"><CODE>Document.removeDocumentListener(javax.swing.event.DocumentListener)</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getProperty(java.lang.Object)"><!-- --></A><H3>
getProperty</H3>
<PRE>
public final java.lang.Object <B>getProperty</B>(java.lang.Object&nbsp;key)</PRE>
<DL>
<DD>A convenience method for looking up a property value. It is
 equivalent to:
 <pre>
 getDocumentProperties().get(key);
 </pre><DD><DL>
<DT><B>Specified by: </B><DD><A HREF="../../../javax/swing/text/Document.html#getProperty(java.lang.Object)">getProperty</A> in interface <A HREF="../../../javax/swing/text/Document.html">Document</A><DT><B>Parameters:</B><DD><CODE>key</CODE> - the non-null property key<DT><B>Returns:</B><DD>the value of this property or null<DT><B>See Also: </B><DD><A HREF="../../../javax/swing/text/AbstractDocument.html#getDocumentProperties()"><CODE>getDocumentProperties()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="putProperty(java.lang.Object, java.lang.Object)"><!-- --></A><H3>
putProperty</H3>
<PRE>
public final void <B>putProperty</B>(java.lang.Object&nbsp;key,
                              java.lang.Object&nbsp;value)</PRE>
<DL>
<DD>A convenience method for storing up a property value.  It is
 equivalent to:
 <pre>
 getDocumentProperties().put(key, value);
 </pre>
 If value is null this method will remove the property<DD><DL>
<DT><B>Specified by: </B><DD><A HREF="../../../javax/swing/text/Document.html#putProperty(java.lang.Object, java.lang.Object)">putProperty</A> in interface <A HREF="../../../javax/swing/text/Document.html">Document</A><DT><B>Parameters:</B><DD><CODE>key</CODE> - the non-null key<DD><CODE>value</CODE> - the value<DT><B>See Also: </B><DD><A HREF="../../../javax/swing/text/AbstractDocument.html#getDocumentProperties()"><CODE>getDocumentProperties()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="remove(int, int)"><!-- --></A><H3>
remove</H3>
<PRE>
public void <B>remove</B>(int&nbsp;offs,
                   int&nbsp;len)
            throws <A HREF="../../../javax/swing/text/BadLocationException.html">BadLocationException</A></PRE>
<DL>
<DD>Removes some content from the document.
 Removing content causes a write lock to be held while the
 actual changes are taking place.  Observers are notified
 of the change on the thread that called this method.
 <p>
 This method is thread safe, although most Swing methods
 are not. Please see 
 <A HREF="http://java.sun.com/products/jfc/swingdoc-archive/threads.html">Threads
 and Swing</A> for more information.<DD><DL>
<DT><B>Specified by: </B><DD><A HREF="../../../javax/swing/text/Document.html#remove(int, int)">remove</A> in interface <A HREF="../../../javax/swing/text/Document.html">Document</A><DT><B>Parameters:</B><DD><CODE>offs</CODE> - the starting offset >= 0<DD><CODE>len</CODE> - the number of characters to remove >= 0<DT><B>Throws:</B><DD><A HREF="../../../javax/swing/text/BadLocationException.html">BadLocationException</A> - the given remove position is not a valid 
   position within the document<DT><B>See Also: </B><DD><A HREF="../../../javax/swing/text/Document.html#remove(int, int)"><CODE>Document.remove(int, int)</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="insertString(int, java.lang.String, javax.swing.text.AttributeSet)"><!-- --></A><H3>
insertString</H3>
<PRE>
public void <B>insertString</B>(int&nbsp;offs,
                         java.lang.String&nbsp;str,
                         <A HREF="../../../javax/swing/text/AttributeSet.html">AttributeSet</A>&nbsp;a)
                  throws <A HREF="../../../javax/swing/text/BadLocationException.html">BadLocationException</A></PRE>
<DL>
<DD>Inserts some content into the document.
 Inserting content causes a write lock to be held while the
 actual changes are taking place, followed by notification
 to the observers on the thread that grabbed the write lock.
 <p>
 This method is thread safe, although most Swing methods
 are not. Please see 
 <A HREF="http://java.sun.com/products/jfc/swingdoc-archive/threads.html">Threads
 and Swing</A> for more information.<DD><DL>
<DT><B>Specified by: </B><DD><A HREF="../../../javax/swing/text/Document.html#insertString(int, java.lang.String, javax.swing.text.AttributeSet)">insertString</A> in interface <A HREF="../../../javax/swing/text/Document.html">Document</A><DT><B>Parameters:</B><DD><CODE>offs</CODE> - the starting offset >= 0<DD><CODE>str</CODE> - the string to insert; does nothing with null/empty strings<DD><CODE>a</CODE> - the attributes for the inserted content<DT><B>Throws:</B><DD><A HREF="../../../javax/swing/text/BadLocationException.html">BadLocationException</A> - the given insert position is not a valid 
   position within the document<DT><B>See Also: </B><DD><A HREF="../../../javax/swing/text/Document.html#insertString(int, java.lang.String, javax.swing.text.AttributeSet)"><CODE>Document.insertString(int, java.lang.String, javax.swing.text.AttributeSet)</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getText(int, int)"><!-- --></A><H3>
getText</H3>
<PRE>
public java.lang.String <B>getText</B>(int&nbsp;offset,
                                int&nbsp;length)
                         throws <A HREF="../../../javax/swing/text/BadLocationException.html">BadLocationException</A></PRE>
<DL>
<DD>Gets a sequence of text from the document.<DD><DL>
<DT><B>Specified by: </B><DD><A HREF="../../../javax/swing/text/Document.html#getText(int, int)">getText</A> in interface <A HREF="../../../javax/swing/text/Document.html">Document</A><DT><B>Parameters:</B><DD><CODE>offset</CODE> - the starting offset >= 0<DD><CODE>length</CODE> - the number of characters to retrieve >= 0<DT><B>Returns:</B><DD>the text<DT><B>Throws:</B><DD><A HREF="../../../javax/swing/text/BadLocationException.html">BadLocationException</A> - the range given includes a position 
   that is not a valid position within the document<DT><B>See Also: </B><DD><A HREF="../../../javax/swing/text/Document.html#getText(int, int)"><CODE>Document.getText(int, int)</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getText(int, int, javax.swing.text.Segment)"><!-- --></A><H3>
getText</H3>
<PRE>
public void <B>getText</B>(int&nbsp;offset,
                    int&nbsp;length,
                    <A HREF="../../../javax/swing/text/Segment.html">Segment</A>&nbsp;txt)
             throws <A HREF="../../../javax/swing/text/BadLocationException.html">BadLocationException</A></PRE>
<DL>
<DD>Gets some text from the document potentially without
 making a copy.  The character array returned in the
 given <code>Segment</code> should never be mutated.
 This kind of access to the characters of the document
 is provided to help make the rendering potentially more
 efficient.  The caller should make no assumptions about
 the lifetime of the returned character array, which
 should be copied if needed beyond the use for rendering.<DD><DL>
<DT><B>Specified by: </B><DD><A HREF="../../../javax/swing/text/Document.html#getText(int, int, javax.swing.text.Segment)">getText</A> in interface <A HREF="../../../javax/swing/text/Document.html">Document</A><DT><B>Parameters:</B><DD><CODE>offset</CODE> - the starting offset >= 0<DD><CODE>length</CODE> - the number of characters to retrieve >= 0<DD><CODE>txt</CODE> - the Segment object to retrieve the text into<DT><B>Throws:</B><DD><A HREF="../../../javax/swing/text/BadLocationException.html">BadLocationException</A> - the range given includes a position 
   that is not a valid position within the document</DL>
</DD>
</DL>
<HR>

<A NAME="createPosition(int)"><!-- --></A><H3>
createPosition</H3>
<PRE>
public <A HREF="../../../javax/swing/text/Position.html">Position</A> <B>createPosition</B>(int&nbsp;offs)
                        throws <A HREF="../../../javax/swing/text/BadLocationException.html">BadLocationException</A></PRE>
<DL>
<DD>Returns a position that will track change as the document
 is altered.
 <p>
 This method is thread safe, although most Swing methods
 are not. Please see 
 <A HREF="http://java.sun.com/products/jfc/swingdoc-archive/threads.html">Threads
 and Swing</A> for more information.<DD><DL>
<DT><B>Specified by: </B><DD><A HREF="../../../javax/swing/text/Document.html#createPosition(int)">createPosition</A> in interface <A HREF="../../../javax/swing/text/Document.html">Document</A><DT><B>Parameters:</B><DD><CODE>offs</CODE> - the position in the model >= 0<DT><B>Returns:</B><DD>the position<DT><B>Throws:</B><DD><A HREF="../../../javax/swing/text/BadLocationException.html">BadLocationException</A> - if the given position does not
   represent a valid location in the associated document<DT><B>See Also: </B><DD><A HREF="../../../javax/swing/text/Document.html#createPosition(int)"><CODE>Document.createPosition(int)</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getStartPosition()"><!-- --></A><H3>
getStartPosition</H3>
<PRE>
public final <A HREF="../../../javax/swing/text/Position.html">Position</A> <B>getStartPosition</B>()</PRE>
<DL>
<DD>Returns a position that represents the start of the document.  The 
 position returned can be counted on to track change and stay 
 located at the beginning of the document.<DD><DL>
<DT><B>Specified by: </B><DD><A HREF="../../../javax/swing/text/Document.html#getStartPosition()">getStartPosition</A> in interface <A HREF="../../../javax/swing/text/Document.html">Document</A><DT><B>Returns:</B><DD>the position</DL>
</DD>
</DL>
<HR>

<A NAME="getEndPosition()"><!-- --></A><H3>
getEndPosition</H3>
<PRE>
public final <A HREF="../../../javax/swing/text/Position.html">Position</A> <B>getEndPosition</B>()</PRE>
<DL>
<DD>Returns a position that represents the end of the document.  The
 position returned can be counted on to track change and stay 
 located at the end of the document.<DD><DL>
<DT><B>Specified by: </B><DD><A HREF="../../../javax/swing/text/Document.html#getEndPosition()">getEndPosition</A> in interface <A HREF="../../../javax/swing/text/Document.html">Document</A><DT><B>Returns:</B><DD>the position</DL>
</DD>
</DL>
<HR>

<A NAME="getRootElements()"><!-- --></A><H3>
getRootElements</H3>
<PRE>
public <A HREF="../../../javax/swing/text/Element.html">Element</A>[] <B>getRootElements</B>()</PRE>
<DL>
<DD>Gets all root elements defined.  Typically, there
 will only be one so the default implementation
 is to return the default root element.<DD><DL>
<DT><B>Specified by: </B><DD><A HREF="../../../javax/swing/text/Document.html#getRootElements()">getRootElements</A> in interface <A HREF="../../../javax/swing/text/Document.html">Document</A><DT><B>Returns:</B><DD>the root element</DL>
</DD>
</DL>
<HR>

<A NAME="getDefaultRootElement()"><!-- --></A><H3>
getDefaultRootElement</H3>
<PRE>
public abstract <A HREF="../../../javax/swing/text/Element.html">Element</A> <B>getDefaultRootElement</B>()</PRE>
<DL>
<DD>Returns the root element that views should be based upon
 unless some other mechanism for assigning views to element
 structures is provided.<DD><DL>
<DT><B>Specified by: </B><DD><A HREF="../../../javax/swing/text/Document.html#getDefaultRootElement()">getDefaultRootElement</A> in interface <A HREF="../../../javax/swing/text/Document.html">Document</A><DT><B>Returns:</B><DD>the root element<DT><B>See Also: </B><DD><A HREF="../../../javax/swing/text/Document.html#getDefaultRootElement()"><CODE>Document.getDefaultRootElement()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getBidiRootElement()"><!-- --></A><H3>
getBidiRootElement</H3>
<PRE>
public <A HREF="../../../javax/swing/text/Element.html">Element</A> <B>getBidiRootElement</B>()</PRE>
<DL>
<DD>Returns the root element of the bidirectional structure for this
 document.  Its children represent character runs with a given
 Unicode bidi level.<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getParagraphElement(int)"><!-- --></A><H3>
getParagraphElement</H3>
<PRE>
public abstract <A HREF="../../../javax/swing/text/Element.html">Element</A> <B>getParagraphElement</B>(int&nbsp;pos)</PRE>
<DL>
<DD>Get the paragraph element containing the given position.  Sub-classes
 must define for themselves what exactly constitutes a paragraph.  They
 should keep in mind however that a paragraph should at least be the
 unit of text over which to run the Unicode bidirectional algorithm.<DD><DL>
<DT><B>Parameters:</B><DD><CODE>pos</CODE> - the starting offset >= 0<DT><B>Returns:</B><DD>the element</DL>
</DD>
</DL>
<HR>

<A NAME="getAttributeContext()"><!-- --></A><H3>
getAttributeContext</H3>
<PRE>
protected final <A HREF="../../../javax/swing/text/AbstractDocument.AttributeContext.html">AbstractDocument.AttributeContext</A> <B>getAttributeContext</B>()</PRE>
<DL>
<DD>Fetches the context for managing attributes.  This
 method effectively establishes the strategy used 
 for compressing AttributeSet information.<DD><DL>
<DT><B>Returns:</B><DD>the context</DL>
</DD>
</DL>
<HR>

<A NAME="insertUpdate(javax.swing.text.AbstractDocument.DefaultDocumentEvent, javax.swing.text.AttributeSet)"><!-- --></A><H3>
insertUpdate</H3>
<PRE>
protected void <B>insertUpdate</B>(<A HREF="../../../javax/swing/text/AbstractDocument.DefaultDocumentEvent.html">AbstractDocument.DefaultDocumentEvent</A>&nbsp;chng,
                            <A HREF="../../../javax/swing/text/AttributeSet.html">AttributeSet</A>&nbsp;attr)</PRE>
<DL>
<DD>Updates document structure as a result of text insertion.  This
 will happen within a write lock.  If a subclass of
 this class reimplements this method, it should delegate to the
 superclass as well.<DD><DL>
<DT><B>Parameters:</B><DD><CODE>chng</CODE> - a description of the change<DD><CODE>attr</CODE> - the attributes for the change</DL>
</DD>
</DL>
<HR>

<A NAME="removeUpdate(javax.swing.text.AbstractDocument.DefaultDocumentEvent)"><!-- --></A><H3>
removeUpdate</H3>
<PRE>
protected void <B>removeUpdate</B>(<A HREF="../../../javax/swing/text/AbstractDocument.DefaultDocumentEvent.html">AbstractDocument.DefaultDocumentEvent</A>&nbsp;chng)</PRE>
<DL>
<DD>Updates any document structure as a result of text removal.  This
 method is called before the text is actually removed from the Content.
 This will happen within a write lock. If a subclass
 of this class reimplements this method, it should delegate to the
 superclass as well.<DD><DL>
<DT><B>Parameters:</B><DD><CODE>chng</CODE> - a description of the change</DL>
</DD>
</DL>
<HR>

<A NAME="postRemoveUpdate(javax.swing.text.AbstractDocument.DefaultDocumentEvent)"><!-- --></A><H3>
postRemoveUpdate</H3>
<PRE>
protected void <B>postRemoveUpdate</B>(<A HREF="../../../javax/swing/text/AbstractDocument.DefaultDocumentEvent.html">AbstractDocument.DefaultDocumentEvent</A>&nbsp;chng)</PRE>
<DL>
<DD>Updates any document structure as a result of text removal.  This
 method is called after the text has been removed from the Content.
 This will happen within a write lock. If a subclass
 of this class reimplements this method, it should delegate to the
 superclass as well.<DD><DL>
<DT><B>Parameters:</B><DD><CODE>chng</CODE> - a description of the change</DL>
</DD>
</DL>
<HR>

<A NAME="dump(java.io.PrintStream)"><!-- --></A><H3>
dump</H3>
<PRE>
public void <B>dump</B>(java.io.PrintStream&nbsp;out)</PRE>
<DL>
<DD>Gives a diagnostic dump.<DD><DL>
<DT><B>Parameters:</B><DD><CODE>out</CODE> - the output stream</DL>
</DD>
</DL>
<HR>

<A NAME="getContent()"><!-- --></A><H3>
getContent</H3>
<PRE>
protected final <A HREF="../../../javax/swing/text/AbstractDocument.Content.html">AbstractDocument.Content</A> <B>getContent</B>()</PRE>
<DL>
<DD>Gets the content for the document.<DD><DL>
<DT><B>Returns:</B><DD>the content</DL>
</DD>
</DL>
<HR>

<A NAME="createLeafElement(javax.swing.text.Element, javax.swing.text.AttributeSet, int, int)"><!-- --></A><H3>
createLeafElement</H3>
<PRE>
protected <A HREF="../../../javax/swing/text/Element.html">Element</A> <B>createLeafElement</B>(<A HREF="../../../javax/swing/text/Element.html">Element</A>&nbsp;parent,
                                    <A HREF="../../../javax/swing/text/AttributeSet.html">AttributeSet</A>&nbsp;a,
                                    int&nbsp;p0,
                                    int&nbsp;p1)</PRE>
<DL>
<DD>Creates a document leaf element.
 Hook through which elements are created to represent the 
 document structure.  Because this implementation keeps 
 structure and content seperate, elements grow automatically
 when content is extended so splits of existing elements 
 follow.  The document itself gets to decide how to generate 
 elements to give flexibility in the type of elements used.<DD><DL>
<DT><B>Parameters:</B><DD><CODE>parent</CODE> - the parent element<DD><CODE>a</CODE> - the attributes for the element<DD><CODE>p0</CODE> - the beginning of the range >= 0<DD><CODE>p1</CODE> - the end of the range >= p0<DT><B>Returns:</B><DD>the new element</DL>
</DD>
</DL>
<HR>

<A NAME="createBranchElement(javax.swing.text.Element, javax.swing.text.AttributeSet)"><!-- --></A><H3>
createBranchElement</H3>
<PRE>
protected <A HREF="../../../javax/swing/text/Element.html">Element</A> <B>createBranchElement</B>(<A HREF="../../../javax/swing/text/Element.html">Element</A>&nbsp;parent,
                                      <A HREF="../../../javax/swing/text/AttributeSet.html">AttributeSet</A>&nbsp;a)</PRE>
<DL>
<DD>Creates a document branch element, that can contain other elements.<DD><DL>
<DT><B>Parameters:</B><DD><CODE>parent</CODE> - the parent element<DD><CODE>a</CODE> - the attributes<DT><B>Returns:</B><DD>the element</DL>
</DD>
</DL>
<HR>

<A NAME="getCurrentWriter()"><!-- --></A><H3>
getCurrentWriter</H3>
<PRE>
protected final java.lang.Thread <B>getCurrentWriter</B>()</PRE>
<DL>
<DD>Fetches the current writing thread if there is one.
 This can be used to distinguish whether a method is
 being called as part of an existing modification or
 if a lock needs to be acquired and a new transaction
 started.<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="writeLock()"><!-- --></A><H3>
writeLock</H3>
<PRE>
protected final void <B>writeLock</B>()</PRE>
<DL>
<DD>Acquires a lock to begin mutating the document this lock
 protects.  There can be no writing, notification of changes, or
 reading going on in order to gain the lock.<DD><DL>
<DT><B>Throws:</B><DD>java.lang.IllegalStateException - thrown on illegal lock
  attempt.  If the document is implemented properly, this can
  only happen if a document listener attempts to mutate the 
  document.  This situation violates the bean event model
  where order of delivery is not guaranteed and all listeners
  should be notified before further mutations are allowed.</DL>
</DD>
</DL>
<HR>

<A NAME="writeUnlock()"><!-- --></A><H3>
writeUnlock</H3>
<PRE>
protected final void <B>writeUnlock</B>()</PRE>
<DL>
<DD>Releases the write lock held because the write
 operation is finished.  This allows either a new
 writer or readers to aquire a lock.<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="readLock()"><!-- --></A><H3>
readLock</H3>
<PRE>
public final void <B>readLock</B>()</PRE>
<DL>
<DD>Acquires a lock to begin reading some state from the 
 document.  There can be multiple readers at the same time.
 Writing blocks the readers until notification of the change
 to the listeners has been completed.  This method should
 be used very carefully to avoid unintended compromise
 of the document.  It should always be balanced with a
 <code>readUnlock</code>.<DD><DL>
<DT><B>See Also: </B><DD><A HREF="../../../javax/swing/text/AbstractDocument.html#readUnlock()"><CODE>readUnlock()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="readUnlock()"><!-- --></A><H3>
readUnlock</H3>
<PRE>
public final void <B>readUnlock</B>()</PRE>
<DL>
<DD>Does a read unlock.  This signals that one
 of the readers is done.  If there are no more readers
 then writing can begin again.  This should be balanced
 with a readLock, and should occur in a finally statement
 so that the balance is guaranteed.  The following is an
 example.
 <pre><code>
try {
readLock();
// do something
} finally {
readUnlock();
}
 </code></pre><DD><DL>
<DT><B>See Also: </B><DD><A HREF="../../../javax/swing/text/AbstractDocument.html#readLock()"><CODE>readLock()</CODE></A></DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>

<!-- ========== START OF NAVBAR ========== -->
<A NAME="navbar_bottom"><!-- --></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" ID="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" ID="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT ID="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" ID="NavBarCell1">    <A HREF="package-summary.html"><FONT ID="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" ID="NavBarCell1Rev"> &nbsp;<FONT ID="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" ID="NavBarCell1">    <A HREF="class-use/AbstractDocument.html"><FONT ID="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" ID="NavBarCell1">    <A HREF="package-tree.html"><FONT ID="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" ID="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT ID="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" ID="NavBarCell1">    <A HREF="../../../index-files/index-1.html"><FONT ID="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" ID="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT ID="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
Swing 1.1</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" ID="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV CLASS&nbsp;
&nbsp;<A HREF="../../../javax/swing/text/AbstractDocument.AbstractElement.html"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" ID="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="AbstractDocument.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
</TR>
<TR>
<TD VALIGN="top" ID="NavBarCell3"><FONT SIZE="-2">
  SUMMARY: &nbsp;<A HREF="#inner_class_summary">INNER</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" ID="NavBarCell3"><FONT SIZE="-2">
DETAIL: &nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<!-- =========== END OF NAVBAR =========== -->

<HR>
<font size="-1"><a href="http://java.sun.com/cgi-bin/bugreport.cgi">Submit a bug or feature</a><br>Java is a trademark or registered trademark of Sun Microsystems,  Inc. in the US and other countries.<br>Copyright 1993-1998 Sun Microsystems, Inc. 901 San Antonio Road,<br>Palo Alto, California, 94303, U.S.A.  All Rights Reserved.</font>
</BODY>
</HTML>
