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); }