javax.swing.text.html
Class HTMLDocument

java.lang.Object
  |
  +--javax.swing.text.AbstractDocument
        |
        +--javax.swing.text.DefaultStyledDocument
              |
              +--javax.swing.text.html.HTMLDocument
All Implemented Interfaces:
Document, Serializable, StyledDocument
public class HTMLDocument
extends DefaultStyledDocument

A document that models HTML. The purpose of this model is to support both browsing and editing. As a result, the structure described by an HTML document is not exactly replicated by default. The element structure that is modeled by default, is built by the class HTMLDocument.HTMLReader, which implements the HTMLEditorKit.ParserCallback protocol that the parser expects. To change the structure one can subclass HTMLReader, and reimplement the method getReader(int) to return the new reader implementation. The documentation for HTMLReader should be consulted for the details of the default structure created. The intent is that the document be non-lossy (although reproducing the HTML format may result in a different format).

The document models only HTML, and makes no attempt to store view attributes in it. The elements are identified by the StyleContext.NameAttribute attribute, which should always have a value of type HTML.Tag that identifies the kind of element. Some of the elements (such as comments) are synthesized. The HTMLFactory uses this attribute to determine what kind of view to build.

This document supports incremental loading. The TokenThreshold property controls how much of the parse is buffered before trying to update the element structure of the document. This property is set by the EditorKit so that subclasses can disable it.

The Base property determines the URL against which relative URLs are resolved. By default, this will be the Document.StreamDescriptionProperty if the value of the property is a URL. If a <BASE> tag is encountered, the base will become the URL specified by that tag. Because the base URL is a property, it can of course be set directly.

The default content storage mechanism for this document is a gap buffer (GapContent). Alternatives can be supplied by using the constructor that takes a Content implementation.

 

Nested Class Summary

 class HTMLDocument.BlockElement
    An element that represents a structural block of HTML.
 class HTMLDocument.HTMLReader
    An HTML reader to load an HTML document with an HTML element structure.
static class HTMLDocument.Iterator
    An iterator to iterate over a particular type of tag.
 class HTMLDocument.RunElement
    An element that represents a chunk of text that has a set of HTML character level attributes assigned to it.
 
Nested classes inherited from class javax.swing.text.DefaultStyledDocument
DefaultStyledDocument.AttributeUndoableEdit, DefaultStyledDocument.ElementBuffer, DefaultStyledDocument.ElementSpec, DefaultStyledDocument.SectionElement
 
Nested classes inherited from class javax.swing.text.AbstractDocument
AbstractDocument.AttributeContext, AbstractDocument.Content, AbstractDocument.DefaultDocumentEvent, AbstractDocument.ElementEdit
 

 

Field Summary

static String AdditionalComments
    Document property key value.
 
Fields inherited from class javax.swing.text.DefaultStyledDocument
buffer, BUFFER_SIZE_DEFAULT
 
Fields inherited from class javax.swing.text.AbstractDocument
BAD_LOCATION, BidiElementName, ContentElementName, ElementNameAttribute, listenerList, ParagraphElementName, SectionElementName
 
Fields inherited from interface javax.swing.text.Document
StreamDescriptionProperty, TitleProperty
 

 

Constructor Summary

HTMLDocument()
    Constructs an HTML document using the default buffer size and a default StyleSheet.
HTMLDocument(AbstractDocument.Content c, StyleSheet styles)
    Constructs an HTML document with the given content storage implementation and the given style/attribute storage mechanism.
HTMLDocument(StyleSheet styles)
    Constructs an HTML document with the default content storage implementation and the specified style/attribute storage mechanism.
 

 

Method Summary

protected  void create(DefaultStyledDocument.ElementSpec[] data)
    Replaces the contents of the document with the given element specifications.
protected  Element createBranchElement(Element parent, AttributeSet a)
    Creates a document branch element, that can contain other elements.
protected  AbstractDocument.AbstractElement createDefaultRoot()
    Creates the root element to be used to represent the default document structure.
protected  Element createLeafElement(Element parent, AttributeSet a, int p0, int p1)
    Creates a document leaf element that directly represents text (doesn't have any children).
protected  void fireChangedUpdate(DocumentEvent e)
    Notifies all listeners that have registered interest for notification on this event type.
protected  void fireUndoableEditUpdate(UndoableEditEvent e)
    Notifies all listeners that have registered interest for notification on this event type.
 URL getBase()
    Returns the location to resolve relative URLs against.
 Element getElement(Element e, Object attribute, Object value)
    Returns the child element of e that contains the attribute, attribute with value value, or null if one isn't found.
 Element getElement(String id)
    Returns the element that has the given id Attribute.
 HTMLDocument.Iterator getIterator(HTML.Tag t)
    Fetches an iterator for the specified HTML tag.
 HTMLEditorKit.Parser getParser()
    Returns the parser that is used when inserting HTML into the existing document.
 boolean getPreservesUnknownTags()
    Returns the behavior the parser observes when encountering unknown tags.
 HTMLEditorKit.ParserCallback getReader(int pos)
    Fetches the reader for the parser to use when loading the document with HTML.
 HTMLEditorKit.ParserCallback getReader(int pos, int popDepth, int pushDepth, HTML.Tag insertTag)
    Returns the reader for the parser to use to load the document with HTML.
 StyleSheet getStyleSheet()
    Fetches the StyleSheet with the document-specific display rules (CSS) that were specified in the HTML document itself.
 int getTokenThreshold()
    Gets the number of tokens to buffer before trying to update the documents element structure.
protected  void insert(int offset, DefaultStyledDocument.ElementSpec[] data)
    Inserts new elements in bulk.
 void insertAfterEnd(Element elem, String htmlText)
    Inserts the HTML specified as a string after the the end of the given element.
 void insertAfterStart(Element elem, String htmlText)
    Inserts the HTML specified as a string at the start of the element.
 void insertBeforeEnd(Element elem, String htmlText)
    Inserts the HTML specified as a string at the end of the element.
 void insertBeforeStart(Element elem, String htmlText)
    Inserts the HTML specified as a string before the start of the given element.
protected  void insertUpdate(AbstractDocument.DefaultDocumentEvent chng, AttributeSet attr)
    Updates document structure as a result of text insertion.
 void processHTMLFrameHyperlinkEvent(HTMLFrameHyperlinkEvent e)
    Processes HyperlinkEvents that are generated by documents in an HTML frame.
 void setBase(URL u)
    Sets the location to resolve relative URLs against.
 void setInnerHTML(Element elem, String htmlText)
    Replaces the children of the given element with the contents specified as an HTML string.
 void setOuterHTML(Element elem, String htmlText)
    Replaces the given element in the parent with the contents specified as an HTML string.
 void setParagraphAttributes(int offset, int length, AttributeSet s, boolean replace)
    Sets attributes for a paragraph.
 void setParser(HTMLEditorKit.Parser parser)
    Sets the parser that is used by the methods that insert html into the existing document, such as setInnerHTML, and setOuterHTML.
 void setPreservesUnknownTags(boolean preservesTags)
    Determines how unknown tags are handled by the parser.
 void setTokenThreshold(int n)
    Sets the number of tokens to buffer before trying to update the documents element structure.
 
Methods inherited from class javax.swing.text.DefaultStyledDocument