javax.swing.text

Class DefaultStyledDocument

Implemented Interfaces:
Document, Serializable, StyledDocument
Known Direct Subclasses:
HTMLDocument

public class DefaultStyledDocument
extends AbstractDocument
implements StyledDocument

The default implementation of StyledDocument. The document is modeled as an Element tree, which has a DefaultStyledDocument.SectionElement as single root, which has one or more AbstractDocument.BranchElements as paragraph nodes and each paragraph node having one or more AbstractDocument.LeafElements as content nodes.
See Also:
Serialized Form

Nested Class Summary

static class
DefaultStyledDocument.AttributeUndoableEdit
An UndoableEdit that can undo attribute changes to an element.
class
DefaultStyledDocument.ElementBuffer
Performs all structural changes to the Element hierarchy.
static class
DefaultStyledDocument.ElementSpec
Carries specification information for new Elements that should be created in DefaultStyledDocument.ElementBuffer.
protected class
DefaultStyledDocument.SectionElement
An element type for sections.

Nested classes/interfaces inherited from class javax.swing.text.AbstractDocument

AbstractDocument.AbstractElement, AbstractDocument.AttributeContext, AbstractDocument.BranchElement, AbstractDocument.Content, AbstractDocument.DefaultDocumentEvent, AbstractDocument.ElementEdit, AbstractDocument.LeafElement

Field Summary

static int
BUFFER_SIZE_DEFAULT
The default size to use for new content buffers.
protected DefaultStyledDocument.ElementBuffer
buffer
The EditorBuffer that is used to manage to Element hierarchy.

Fields inherited from class javax.swing.text.AbstractDocument

BAD_LOCATION, BidiElementName, ContentElementName, ElementNameAttribute, ParagraphElementName, SectionElementName, listenerList

Fields inherited from interface javax.swing.text.Document

StreamDescriptionProperty, TitleProperty

Constructor Summary

DefaultStyledDocument()
Creates a new DefaultStyledDocument.
DefaultStyledDocument(AbstractDocument.Content content, StyleContext context)
Creates a new DefaultStyledDocument that uses the specified StyleContext and AbstractDocument.Content buffer.
DefaultStyledDocument(StyleContext context)
Creates a new DefaultStyledDocument that uses the specified StyleContext.

Method Summary

Style
addStyle(String nm, Style parent)
Adds a style into the style hierarchy.
protected void
create(DefaultStyledDocument.ElementSpec[] data)
Initializes the DefaultStyledDocument with the specified data.
protected AbstractDocument.AbstractElement
createDefaultRoot()
Create the default root element for this kind of Document.
Color
getBackground(AttributeSet attributes)
Extracts a background color from a set of attributes.
Element
getCharacterElement(int position)
Returns the Element that corresponds to the character at the specified position.
Element
getDefaultRootElement()
Returns the default root element.
Font
getFont(AttributeSet attributes)
Extracts a font from a set of attributes.
Color
getForeground(AttributeSet attributes)
Extracts a foreground color from a set of attributes.
Style
getLogicalStyle(int position)
Returns the logical Style for the specified position.
Element
getParagraphElement(int position)
Returns the paragraph element for the specified position.
Style
getStyle(String nm)
Looks up and returns a named Style.
Enumeration
getStyleNames()
Returns an enumeration of all style names.
protected void
insert(int offset, DefaultStyledDocument.ElementSpec[] data)
Inserts a bulk of structured content at once.
protected void
insertUpdate(AbstractDocument.DefaultDocumentEvent ev, AttributeSet attr)
Called in response to content insert actions.
void
removeStyle(String nm)
Removes a named Style from the style hierarchy.
protected void
removeUpdate(AbstractDocument.DefaultDocumentEvent ev)
Updates the document structure in response to text removal.
void
setCharacterAttributes(int offset, int length, AttributeSet attributes, boolean replace)
Sets text attributes for the fragment specified by offset and length.
void
setLogicalStyle(int position, Style style)
Sets the logical style for the paragraph at the specified position.
void
setParagraphAttributes(int offset, int length, AttributeSet attributes, boolean replace)
Sets text attributes for the paragraph at the specified fragment.
protected void
styleChanged(Style style)
Called when any of this document's styles changes.

Methods inherited from class javax.swing.text.AbstractDocument

Object> getDocumentProperties, addDocumentListener, addUndoableEditListener, createBranchElement, createLeafElement, createPosition, dump, extends EventListener> T[] getListeners, fireChangedUpdate, fireInsertUpdate, fireRemoveUpdate, fireUndoableEditUpdate, getAsynchronousLoadPriority, getAttributeContext, getBidiRootElement, getContent, getCurrentWriter, getDefaultRootElement, getDocumentFilter, getDocumentListeners, getEndPosition, getLength, getParagraphElement, getProperty, getRootElements, getStartPosition, getText, getText, getUndoableEditListeners, insertString, insertUpdate, postRemoveUpdate, putProperty, readLock, readUnlock, remove, removeDocumentListener, removeUndoableEditListener, removeUpdate, render, replace, setAsynchronousLoadPriority, setDocumentFilter, setDocumentProperties, writeLock, writeUnlock

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Details

BUFFER_SIZE_DEFAULT

public static final int BUFFER_SIZE_DEFAULT
The default size to use for new content buffers.
Field Value:
4096

buffer

protected DefaultStyledDocument.ElementBuffer buffer
The EditorBuffer that is used to manage to Element hierarchy.

Constructor Details

DefaultStyledDocument

public DefaultStyledDocument()
Creates a new DefaultStyledDocument.

DefaultStyledDocument

public DefaultStyledDocument(AbstractDocument.Content content,
                             StyleContext context)
Creates a new DefaultStyledDocument that uses the specified StyleContext and AbstractDocument.Content buffer.
Parameters:
content - the Content buffer to use
context - the StyleContext to use

DefaultStyledDocument

public DefaultStyledDocument(StyleContext context)
Creates a new DefaultStyledDocument that uses the specified StyleContext.
Parameters:
context - the StyleContext to use

Method Details

addStyle

public Style addStyle(String nm,
                      Style parent)
Adds a style into the style hierarchy. Unspecified style attributes can be resolved in the parent style, if one is specified. While it is legal to add nameless styles (nm == null
Specified by:
addStyle in interface StyledDocument
Parameters:
nm - the name of the style or null if the style should be unnamed
parent - the parent in which unspecified style attributes are resolved, or null if that is not necessary
Returns:
the newly created Style

create

protected void create(DefaultStyledDocument.ElementSpec[] data)
Initializes the DefaultStyledDocument with the specified data.
Parameters:
data - the specification of the content with which the document is initialized

createDefaultRoot

protected AbstractDocument.AbstractElement createDefaultRoot()
Create the default root element for this kind of Document.
Returns:
the default root element for this kind of Document

getBackground

public Color getBackground(AttributeSet attributes)
Extracts a background color from a set of attributes.
Specified by:
getBackground in interface StyledDocument
Parameters:
attributes - the attributes from which to get a background color
Returns:
the background color that correspond to the attributes

getCharacterElement

public Element getCharacterElement(int position)
Returns the Element that corresponds to the character at the specified position.
Specified by:
getCharacterElement in interface StyledDocument
Parameters:
position - the position of which we query the corresponding Element
Returns:
the Element that corresponds to the character at the specified position

getDefaultRootElement

public Element getDefaultRootElement()
Returns the default root element.
Specified by:
getDefaultRootElement in interface Document
Overrides:
getDefaultRootElement in interface AbstractDocument
Returns:
the default root element

getFont

public Font getFont(AttributeSet attributes)
Extracts a font from a set of attributes.
Specified by:
getFont in interface StyledDocument
Parameters:
attributes - the attributes from which to get a font
Returns:
the font that correspond to the attributes

getForeground

public Color getForeground(AttributeSet attributes)
Extracts a foreground color from a set of attributes.
Specified by:
getForeground in interface StyledDocument
Parameters:
attributes - the attributes from which to get a foreground color
Returns:
the foreground color that correspond to the attributes

getLogicalStyle

public Style getLogicalStyle(int position)
Returns the logical Style for the specified position.
Specified by:
getLogicalStyle in interface StyledDocument
Parameters:
position - the position from which to query to logical style
Returns:
the logical Style for the specified position

getParagraphElement

public Element getParagraphElement(int position)
Returns the paragraph element for the specified position. If the position is outside the bounds of the document's root element, then the closest element is returned. That is the last paragraph if position >= endIndex or the first paragraph if position <32startIndex.
Specified by:
getParagraphElement in interface StyledDocument
Overrides:
getParagraphElement in interface AbstractDocument
Parameters:
position - the position for which to query the paragraph element
Returns:
the paragraph element for the specified position

getStyle

public Style getStyle(String nm)
Looks up and returns a named Style.
Specified by:
getStyle in interface StyledDocument
Parameters:
nm - the name of the Style
Returns:
the found Style of null if no such Style exists

getStyleNames

public Enumeration getStyleNames()
Returns an enumeration of all style names.
Returns:
an enumeration of all style names

insert

protected void insert(int offset,
                      DefaultStyledDocument.ElementSpec[] data)
            throws BadLocationException
Inserts a bulk of structured content at once.
Parameters:
offset - the offset at which the content should be inserted
data - the actual content spec to be inserted

insertUpdate

protected void insertUpdate(AbstractDocument.DefaultDocumentEvent ev,
                            AttributeSet attr)
Called in response to content insert actions. This is used to update the element structure.
Overrides:
insertUpdate in interface AbstractDocument
Parameters:
ev - the DocumentEvent describing the change
attr - the attributes for the change

removeStyle

public void removeStyle(String nm)
Removes a named Style from the style hierarchy.
Specified by:
removeStyle in interface StyledDocument
Parameters:
nm - the name of the Style to be removed

removeUpdate

protected void removeUpdate(AbstractDocument.DefaultDocumentEvent ev)
Updates the document structure in response to text removal. This is forwarded to the DefaultStyledDocument.ElementBuffer of this document. Any changes to the document structure are added to the specified document event and sent to registered listeners.
Overrides:
removeUpdate in interface AbstractDocument
Parameters:
ev - the document event that records the changes to the document

setCharacterAttributes

public void setCharacterAttributes(int offset,
                                   int length,
                                   AttributeSet attributes,
                                   boolean replace)
Sets text attributes for the fragment specified by offset and length.
Specified by:
setCharacterAttributes in interface StyledDocument
Parameters:
offset - the start offset of the fragment
length - the length of the fragment
attributes - the text attributes to set
replace - if true, the attributes of the current selection are overridden, otherwise they are merged

setLogicalStyle

public void setLogicalStyle(int position,
                            Style style)
Sets the logical style for the paragraph at the specified position.
Specified by:
setLogicalStyle in interface StyledDocument
Parameters:
position - the position at which the logical style is added
style - the style to set for the current paragraph

setParagraphAttributes

public void setParagraphAttributes(int offset,
                                   int length,
                                   AttributeSet attributes,
                                   boolean replace)
Sets text attributes for the paragraph at the specified fragment.
Specified by:
setParagraphAttributes in interface StyledDocument
Parameters:
offset - the beginning of the fragment
length - the length of the fragment
attributes - the text attributes to set
replace - if true, the attributes of the current selection are overridden, otherwise they are merged

styleChanged

protected void styleChanged(Style style)
Called when any of this document's styles changes.
Parameters:
style - the style that changed

DefaultStyledDocument.java -- Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.