javax.swing.text

Class DefaultStyledDocument

public class DefaultStyledDocument extends AbstractDocument implements StyledDocument

The default implementation of {@link StyledDocument}. The document is modeled as an {@link Element} tree, which has a {@link SectionElement} as single root, which has one or more {@link AbstractDocument.BranchElement}s as paragraph nodes and each paragraph node having one or more {@link AbstractDocument.LeafElement}s as content nodes.
Nested Class Summary
static classDefaultStyledDocument.AttributeUndoableEdit
An {@link UndoableEdit} that can undo attribute changes to an element.
classDefaultStyledDocument.ElementBuffer
Performs all structural changes to the Element hierarchy.
static classDefaultStyledDocument.ElementSpec
Carries specification information for new {@link Element}s that should be created in {@link ElementBuffer}.
protected classDefaultStyledDocument.SectionElement
An element type for sections.
Field Summary
protected DefaultStyledDocument.ElementBufferbuffer
The EditorBuffer that is used to manage to Element hierarchy.
static intBUFFER_SIZE_DEFAULT
The default size to use for new content buffers.
Constructor Summary
DefaultStyledDocument()
Creates a new DefaultStyledDocument.
DefaultStyledDocument(StyleContext context)
Creates a new DefaultStyledDocument that uses the specified {@link StyleContext}.
DefaultStyledDocument(AbstractDocument.Content content, StyleContext context)
Creates a new DefaultStyledDocument that uses the specified {@link StyleContext} and {@link Content} buffer.
Method Summary
StyleaddStyle(String nm, Style parent)
Adds a style into the style hierarchy.
protected voidcreate(DefaultStyledDocument.ElementSpec[] data)
Initializes the DefaultStyledDocument with the specified data.
protected AbstractDocument.AbstractElementcreateDefaultRoot()
Create the default root element for this kind of Document.
ColorgetBackground(AttributeSet attributes)
Extracts a background color from a set of attributes.
ElementgetCharacterElement(int position)
Returns the Element that corresponds to the character at the specified position.
ElementgetDefaultRootElement()
Returns the default root element.
FontgetFont(AttributeSet attributes)
Extracts a font from a set of attributes.
ColorgetForeground(AttributeSet attributes)
Extracts a foreground color from a set of attributes.
StylegetLogicalStyle(int position)
Returns the logical Style for the specified position.
ElementgetParagraphElement(int position)
Returns the paragraph element for the specified position.
StylegetStyle(String nm)
Looks up and returns a named Style.
Enumeration<?>getStyleNames()
Returns an enumeration of all style names.
protected voidinsert(int offset, DefaultStyledDocument.ElementSpec[] data)
Inserts a bulk of structured content at once.
protected voidinsertUpdate(DefaultDocumentEvent ev, AttributeSet attr)
Called in response to content insert actions.
voidremoveStyle(String nm)
Removes a named Style from the style hierarchy.
protected voidremoveUpdate(DefaultDocumentEvent ev)
Updates the document structure in response to text removal.
voidsetCharacterAttributes(int offset, int length, AttributeSet attributes, boolean replace)
Sets text attributes for the fragment specified by offset and length.
voidsetLogicalStyle(int position, Style style)
Sets the logical style for the paragraph at the specified position.
voidsetParagraphAttributes(int offset, int length, AttributeSet attributes, boolean replace)
Sets text attributes for the paragraph at the specified fragment.
protected voidstyleChanged(Style style)
Called when any of this document's styles changes.

Field Detail

buffer

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

BUFFER_SIZE_DEFAULT

public static final int BUFFER_SIZE_DEFAULT
The default size to use for new content buffers.

Constructor Detail

DefaultStyledDocument

public DefaultStyledDocument()
Creates a new DefaultStyledDocument.

DefaultStyledDocument

public DefaultStyledDocument(StyleContext context)
Creates a new DefaultStyledDocument that uses the specified {@link StyleContext}.

Parameters: context the StyleContext to use

DefaultStyledDocument

public DefaultStyledDocument(AbstractDocument.Content content, StyleContext context)
Creates a new DefaultStyledDocument that uses the specified {@link StyleContext} and {@link Content} buffer.

Parameters: content the Content buffer to use context the StyleContext to use

Method Detail

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 == nullParameters: 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.

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.

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.

Returns: the default root element

getFont

public Font getFont(AttributeSet attributes)
Extracts a font from a set of attributes.

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.

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.

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 < startIndex.

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.

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)
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(DefaultDocumentEvent ev, AttributeSet attr)
Called in response to content insert actions. This is used to update the element structure.

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.

Parameters: nm the name of the Style to be removed

removeUpdate

protected void removeUpdate(DefaultDocumentEvent ev)
Updates the document structure in response to text removal. This is forwarded to the {@link ElementBuffer} of this document. Any changes to the document structure are added to the specified document event and sent to registered listeners.

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.

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.

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.

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