public class HTMLDocument.HTMLReader extends HTMLEditorKit.ParserCallback
The reader can be configured by registering actions (of type HTMLDocument.HTMLReader.TagAction) that describe how to handle the action. The idea behind the actions provided is that the most natural text editing operations can be provided if the element structure boils down to paragraphs with runs of some kind of style in them. Some things are more naturally specified structurally, so arbitrary structure should be allowed above the paragraphs, but will need to be edited with structural actions. The implication of this is that some of the HTML elements specified in the stream being parsed will be collapsed into attributes, and in some cases paragraphs will be synthesized. When HTML elements have been converted to attributes, the attribute key will be of type HTML.Tag, and the value will be of type AttributeSet so that no information is lost. This enables many of the existing actions to work so that the user can type input, hit the return key, backspace, delete, etc and have a reasonable result. Selections can be created, and attributes applied or removed, etc. With this in mind, the work done by the reader can be categorized into the following kinds of tasks:
Currently, <APPLET>, <PARAM>, <MAP>, <AREA>, <LINK>, <SCRIPT> and <STYLE> are unsupported.
The assignment of the actions described is shown in the following table for the tags defined in HTML.Tag.
| Tag | Action |
|---|---|
HTML.Tag.A |
CharacterAction |
HTML.Tag.ADDRESS |
CharacterAction |
HTML.Tag.APPLET |
HiddenAction |
HTML.Tag.AREA |
AreaAction |
HTML.Tag.B |
CharacterAction |
HTML.Tag.BASE |
BaseAction |
HTML.Tag.BASEFONT |
CharacterAction |
HTML.Tag.BIG |
CharacterAction |
HTML.Tag.BLOCKQUOTE |
BlockAction |
HTML.Tag.BODY |
BlockAction |
HTML.Tag.BR |
SpecialAction |
HTML.Tag.CAPTION |
BlockAction |
HTML.Tag.CENTER |
BlockAction |
HTML.Tag.CITE |
CharacterAction |
HTML.Tag.CODE |
CharacterAction |
HTML.Tag.DD |
BlockAction |
HTML.Tag.DFN |
CharacterAction |
HTML.Tag.DIR |
BlockAction |
HTML.Tag.DIV |
BlockAction |
HTML.Tag.DL |
BlockAction |
HTML.Tag.DT |
ParagraphAction |
HTML.Tag.EM |
CharacterAction |
HTML.Tag.FONT |
CharacterAction |
HTML.Tag.FORM |
As of 1.4 a BlockAction |
HTML.Tag.FRAME |
SpecialAction |
HTML.Tag.FRAMESET |
BlockAction |
HTML.Tag.H1 |
ParagraphAction |
HTML.Tag.H2 |
ParagraphAction |
HTML.Tag.H3 |
ParagraphAction |
HTML.Tag.H4 |
ParagraphAction |
HTML.Tag.H5 |
ParagraphAction |
HTML.Tag.H6 |
ParagraphAction |
HTML.Tag.HEAD |
HeadAction |
HTML.Tag.HR |
SpecialAction |
HTML.Tag.HTML |
BlockAction |
HTML.Tag.I |
CharacterAction |
HTML.Tag.IMG |
SpecialAction |
HTML.Tag.INPUT |
FormAction |
HTML.Tag.ISINDEX |
IsndexAction |
HTML.Tag.KBD |
CharacterAction |
HTML.Tag.LI |
BlockAction |
HTML.Tag.LINK |
LinkAction |
HTML.Tag.MAP |
MapAction |
HTML.Tag.MENU |
BlockAction |
HTML.Tag.META |
MetaAction |
HTML.Tag.NOFRAMES |
BlockAction |
HTML.Tag.OBJECT |
SpecialAction |
HTML.Tag.OL |
BlockAction |
HTML.Tag.OPTION |
FormAction |
HTML.Tag.P |
ParagraphAction |
HTML.Tag.PARAM |
HiddenAction |
HTML.Tag.PRE |
PreAction |
HTML.Tag.SAMP |
CharacterAction |
HTML.Tag.SCRIPT |
HiddenAction |
HTML.Tag.SELECT |
FormAction |
HTML.Tag.SMALL |
CharacterAction |
HTML.Tag.STRIKE |
CharacterAction |
HTML.Tag.S |
CharacterAction |
HTML.Tag.STRONG |
CharacterAction |
HTML.Tag.STYLE |
StyleAction |
HTML.Tag.SUB |
CharacterAction |
HTML.Tag.SUP |
CharacterAction |
HTML.Tag.TABLE |
BlockAction |
HTML.Tag.TD |
BlockAction |
HTML.Tag.TEXTAREA |
FormAction |
HTML.Tag.TH |
BlockAction |
HTML.Tag.TITLE |
TitleAction |
HTML.Tag.TR |
BlockAction |
HTML.Tag.TT |
CharacterAction |
HTML.Tag.U |
CharacterAction |
HTML.Tag.UL |
BlockAction |
HTML.Tag.VAR |
CharacterAction |
Once </html> is encountered, the Actions are no longer notified.
| Modifier and Type | Class and Description |
|---|---|
class |
HTMLDocument
|
class |
HTMLDocument
|
class |
HTMLDocument
Action to support forms by building all of the elements used to represent form controls.
|
class |
HTMLDocument
|
class |
HTMLDocument
|
class |
HTMLDocument
|
class |
HTMLDocument
|
class |
HTMLDocument
|
class |
HTMLDocument
An action to be performed in response to parsing a tag.
|
| Modifier and Type | Field and Description |
|---|---|
protected MutableAttributeSet |
charAttr
|
protected Vector |
parseBuffer
|
IMPLIED| Constructor and Description |
|---|
HTMLReader(int offset)
|
HTMLReader(int offset, int popDepth, int pushDepth, HTML
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
addContent(char[] data, int offs, int length)
Adds some text with the current character attributes.
|
protected void |
addContent(char[] data, int offs, int length, boolean generateImpliedPIfNecessary)
Adds some text with the current character attributes.
|
protected void |
addSpecialElement(HTML
Adds content that is basically specified entirely in the attribute set.
|
protected void |
blockClose(HTML
Adds an instruction to the parse buffer to close out a block element of the given type.
|
protected void |
blockOpen(HTML
Adds an instruction to the parse buffer to create a block element with the given attributes.
|
void |
flush()
The last method called on the reader.
|
void |
handleComment(char[] data, int pos)
|
void |
handleEndOfLineString(String
This is invoked after the stream has been parsed, but before
flush.
|
void |
handleEndTag(HTML
Callback from the parser.
|
void |
handleSimpleTag(HTML
Callback from the parser.
|
void |
handleStartTag(HTML
Callback from the parser.
|
void |
handleText(char[] data, int pos)
Called by the parser to indicate a block of text was encountered.
|
protected void |
popCharacterStyle()
Pops a previously pushed character style off the stack to return to a previous style.
|
protected void |
preContent(char[] data)
Adds the given content that was encountered in a PRE element.
|
protected void |
pushCharacterStyle()
Pushes the current character style on a stack in preparation for forming a new nested character style.
|
protected void |
registerTag(HTML
Registers a handler for the given tag.
|
protected void |
textAreaContent(char[] data)
Adds the given content to the textarea document.
|
handleErrorprotected Vector<DefaultStyledDocument .ElementSpec > parseBuffer
protected MutableAttributeSetcharAttr
public HTMLReader(int offset)
public HTMLReader(int offset,
int popDepth,
int pushDepth,
HTML.Tag insertTag) public void flush()
throws BadLocationException
flush in class
HTMLEditorKit.ParserCallback
BadLocationException
public void handleText(char[] data,
int pos)
public void handleStartTag(HTML.Tag t, MutableAttributeSet a, int pos)
public void handleComment(char[] data,
int pos)public void handleEndTag(HTML.Tag t, int pos)
public void handleSimpleTag(HTML.Tag t, MutableAttributeSet a, int pos)
public void handleEndOfLineString(Stringeol)
flush.
eol will be one of \n, \r or \r\n, which ever is encountered the most in parsing the stream.
handleEndOfLineString in class
HTMLEditorKit.ParserCallback
protected void registerTag(HTML.Tag t, HTMLDocument .HTMLReader .TagAction a)
protected void pushCharacterStyle()
protected void popCharacterStyle()
protected void textAreaContent(char[] data)
protected void preContent(char[] data)
protected void blockOpen(HTML.Tag t, MutableAttributeSet attr)
protected void blockClose(HTML.Tag t)
protected void addContent(char[] data,
int offs,
int length)
data - the content to add
offs - the initial offset
length - the length
protected void addContent(char[] data,
int offs,
int length,
boolean generateImpliedPIfNecessary)
data - the content to add
offs - the initial offset
length - the length
generateImpliedPIfNecessary - whether to generate implied paragraphs
protected void addSpecialElement(HTML.Tag t, MutableAttributeSet a)