Index: javax/swing/text/Document.java
===================================================================
RCS file: /cvsroot/classpath/classpath/javax/swing/text/Document.java,v
retrieving revision 1.8
diff -u -r1.8 Document.java
--- javax/swing/text/Document.java 22 Oct 2004 18:16:01 -0000 1.8
+++ javax/swing/text/Document.java 23 Apr 2005 09:29:01 -0000
@@ -40,48 +40,182 @@
import javax.swing.event.DocumentListener;
import javax.swing.event.UndoableEditListener;
-
+/**
+ * A Document is the model that backs up all text components in Swing.
+ * This interface supports different kinds of implementations, from
+ * simple plain text model up to complex styled HTML or RTF models.
+ */
public interface Document
{
+ /**
+ * The key for the property that describes the source of a document.
+ */
String StreamDescriptionProperty = "stream";
+
+ /**
+ * The key for the property that is the title of a document.
+ */
String TitleProperty = "title";
+ /**
+ * Adds a address@hidden DocumentListener} to this document.
+ *
+ * @param listener the DocumentListener to add
+ */
void addDocumentListener(DocumentListener listener);
+ /**
+ * Adds an address@hidden UndoableEditListener} to this document.
+ *
+ * @param listener the UndoableEditListener to add
+ */
void addUndoableEditListener(UndoableEditListener listener);
+ /**
+ * Creates a mark in the character content at the specified offset.
+ *
+ * @param offs the offset where to place the mark
+ *
+ * @return the created Position object
+ *
+ * @throws BadLocationException of the specified offset is not a valid
+ * position in the documents content
+ */
Position createPosition(int offs)
throws BadLocationException;
+ /**
+ * Returns the default root element. Views should be using this element
+ * unless other mechanisms for assigning views to element structure is
+ * provided.
+ *
+ * @return the default root element
+ */
Element getDefaultRootElement();
+ /**
+ * Returns the position that marks the end of the document.
+ *
+ * @return the position that marks the end of the document
+ */
Position getEndPosition();
+ /**
+ * Returns the length of the document content.
+ *
+ * @return the length of the document content
+ */
int getLength();
+ /**
+ * Returns a document property with the specified key.
+ *
+ * @param key the (non-null) key for the property to fetch
+ *
+ * @return the property for key
or null if no such property
+ * is stored
+ */
Object getProperty(Object key);
+ /**
+ * Returns the root elements of the document content.
+ *
+ * @return the root elements of the document content
+ */
Element[] getRootElements();
+ /**
+ * Returns the position that marks the beginning of the document
+ * content.
+ *
+ * @return the start position
+ */
Position getStartPosition();
+ /**
+ * Returns the textual content starting at offset
with
+ * a length of length
.
+ *
+ * @param offset the beginning of the text fragment to fetch
+ * @param length the length of the text fragment to fetch
+ *
+ * @return the text fragment starting at offset
with
+ * a length of length
+ *
+ * @throws BadLocationException if offset
or length
+ * are no valid locations in the document content
+ */
String getText(int offset, int length)
throws BadLocationException;
+ /**
+ * Fetch the textual content starting at offset
with
+ * a length of length
and store it in txt
.
+ *
+ * @param offset the beginning of the text fragment to fetch
+ * @param length the length of the text fragment to fetch
+ * @param txt the Segment where to store the text fragment
+ *
+ * @throws BadLocationException if offset
or length
+ * are no valid locations in the document content
+ */
void getText(int offset, int length, Segment txt)
throws BadLocationException;
+ /**
+ * Inserts a piece of text with an AttributeSet at the specified
+ * offset
.
+ *
+ * @param offset the location where to insert the content
+ * @param str the textual content to insert
+ * @param a the Attributes associated with the piece of text
+ *
+ * @throws BadLocationException if offset
+ * is not a valid location in the document content
+ */
void insertString(int offset, String str, AttributeSet a)
throws BadLocationException;
+ /**
+ * Sets a document property.
+ *
+ * @param key the key of the property
+ * @param value the value of the property
+ */
void putProperty(Object key, Object value);
+ /**
+ * Removes a piece of content.
+ *
+ * @param offs the location of the fragment to remove
+ * @param len the length of the fragment to remove
+ *
+ * @throws BadLocationException if offs
or len
+ * are no valid locations in the document content
+ */
void remove(int offs, int len)
throws BadLocationException;
+ /**
+ * Removes a DocumentListener from this Document.
+ *
+ * @param listener the DocumentListener to remove
+ */
void removeDocumentListener(DocumentListener listener);
+ /**
+ * Removes an UndoableEditListener from this Document.
+ *
+ * @param listener the UndoableEditListener to remove
+ */
void removeUndoableEditListener(UndoableEditListener listener);
+ /**
+ * This allows the Document to be rendered safely. It is made sure that
+ * the Runnable can read the document without any changes while reading.
+ * The Runnable is not allowed to change the Document itself.
+ *
+ * @param r the Runnable that renders the Document
+ */
void render(Runnable r);
}