java.lang.Object
javax.swing.text.html.HTMLEditorKit.ParserCallback
javax.swing.text.html.HTMLDocument.HTMLReader
- 含まれているクラス:
- HTMLDocument
public class HTMLDocument.HTMLReader extends HTMLEditorKit.ParserCallback
HTMLドキュメントをHTML要素構造とともにロードするためのHTMLリーダーです。 このクラスは、パーサーからのコールバックのセットであり、属性のタグが付いた要素のセットを生成するために実装されます。 解析は必要な要素サブツリーを記述するトークン群(ElementSpec)を組み立て、これを書込みロックのもとでドキュメントの外部クラスの挿入メソッドを使ってドキュメントに挿入します。
リーダーを構成するには、アクションの処理方法を記述したHTMLDocument.HTMLReader.TagAction
型のアクションを登録します。 提供されているアクションの基本になっている考え方は、要素構造が結局のところなんらかのスタイルを持つ文字の並びから成る段落であれば、もっとも自然なテキストの編集オペレーションを提供できる、というものです。 構造的に指定した方が自然な場合もあるので、段落上での任意の構造が許可されるようにすべきであり、その場合でも、構造的なアクションを使って編集する必要があります。 つまり、解析中のストリームで指定されているHTML要素の一部は、属性に折りたたまれ、場合によっては段落が合成されます。 HTML要素が属性に変換される場合、情報が失われないように属性キーはHTML.Tag型になり、値はAttributeSet型になります。 これによって、既存のアクションの多くが機能するようになり、ユーザーは入力をキーボードから入力したり、リターン・キー、BackSpaceキー、Deleteキーなどを押したりして、その適切な結果を得ることができます。 選択を生成したり、属性を適用または削除したりすることもできます。以上のことを考慮した上で、リーダーが行う作業は次のようなタスクに分類できます。
- ブロック
- ストリームで指定されたものと同様の構造を構成します。 このタスクは、ほかの要素を格納する要素を生成します。
- Paragraph
- ブロックと同様ですが、段落要素を合成しなくても済むように、要素が段落ビューとともに使用されることを前提とする点が異なります。
- 文字
- 要素を任意のテキスト位置で開始し、別の任意のテキスト位置で終了する属性として利用します。 これは最終的には、現在平坦化されているすべてのHTML文字要素とともに1つのテキスト中の文字の並びに統合されます。
- 特別
- 埋め込まれたグラフィック要素を生成します。
- フォーム
- 埋込みグラフィック要素と同様の要素を生成します。グラフィック要素との違いは、フォームに関連したコンポーネント・モデルも持っているという点です。
- 非表示
- ドキュメントが読取り専用で表示された場合は隠されてビューには表示されず、ドキュメントが編集される場合は表示される要素を生成します。 これはモデルから情報が失われないようにするのに役立ち、コメントや未知のタグのようなものを格納するために使用します。
現時点では、<APPLET>、<PARAM>、<MAP>、<AREA>、<LINK>、<SCRIPT>、および<STYLE>はサポートされていません。
HTML.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
| 1.4では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 |
</html>が見つかると、Actionは通知されなくなります。
-
ネストされたクラスのサマリー
ネストされたクラス 修飾子と型 クラス 説明 class
HTMLDocument.HTMLReader.BlockAction
リーダーのBlockタスクを処理するためにデフォルトで割り当てられたアクション。class
HTMLDocument.HTMLReader.CharacterAction
リーダーのCharacterタスクを処理するためにデフォルトで割り当てられたアクション。class
HTMLDocument.HTMLReader.FormAction
フォームの各コントロールを表すための要素をすべて生成して、フォームをサポートするためのアクションです。class
HTMLDocument.HTMLReader.HiddenAction
リーダーのHiddenタスクを処理するためにデフォルトで割り当てられたアクション。class
HTMLDocument.HTMLReader.IsindexAction
リーダーのIsindexタスクを処理するためにデフォルトで割り当てられたアクション。class
HTMLDocument.HTMLReader.ParagraphAction
リーダーのParagraphタスクを処理するためにデフォルトで割り当てられたアクション。class
HTMLDocument.HTMLReader.PreAction
リーダーのPre blockタスクを処理するためにデフォルトで割り当てられたアクション。class
HTMLDocument.HTMLReader.SpecialAction
リーダーのSpecialタスクを処理するためにデフォルトで割り当てられたアクション。class
HTMLDocument.HTMLReader.TagAction
タグの構文解析に応じて実行されるアクションです。 -
フィールドのサマリー
フィールド 修飾子と型 フィールド 説明 protected MutableAttributeSet
charAttr
現在の文字属性セット。protected Vector<DefaultStyledDocument.ElementSpec>
parseBuffer
ビルディング要素を維持するためのバッファ。 -
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 HTMLReader(int offset)
デフォルトのpopおよびpush深さを使用し、挿入するタグなしでHTMLReaderを構築します。HTMLReader(int offset, int popDepth, int pushDepth, HTML.Tag insertTag)
HTMLReaderを構築します。 -
メソッドのサマリー
修飾子と型 メソッド 説明 protected void
addContent(char[] data, int offs, int length)
現在の文字属性を持つテキストを追加します。protected void
addContent(char[] data, int offs, int length, boolean generateImpliedPIfNecessary)
現在の文字属性を持つテキストを追加します。protected void
addSpecialElement(HTML.Tag t, MutableAttributeSet a)
基本的に属性セット全体で指定されているコンテンツを追加します。protected void
blockClose(HTML.Tag t)
解析バッファに命令を追加して、指定した型のブロック要素を閉じます。protected void
blockOpen(HTML.Tag t, MutableAttributeSet attr)
解析バッファに命令を追加して、指定した属性を持つブロック要素を生成します。void
flush()
HTMLリーダーで呼び出される最後のメソッドです。void
handleEndOfLineString(String eol)
ストリームの解析が終了し、flush
の前に呼び出されます。void
handleEndTag(HTML.Tag t, int pos)
パーサーからのコールバックです。void
handleSimpleTag(HTML.Tag t, MutableAttributeSet a, int pos)
パーサーからのコールバックです。void
handleStartTag(HTML.Tag t, MutableAttributeSet a, int pos)
パーサーからのコールバックです。void
handleText(char[] data, int pos)
テキスト・ブロックが見つかったことを示すために、パーサーによって呼び出されます。protected void
popCharacterStyle()
以前にプッシュした文字スタイルをスタックからポップして、以前の文字スタイルに戻します。protected void
preContent(char[] data)
PRE要素で検出された指定されたコンテンツを追加します。protected void
pushCharacterStyle()
新しい入れ子の文字スタイルを作成する準備として、現在の文字スタイルをスタックにプッシュします。protected void
registerTag(HTML.Tag t, HTMLDocument.HTMLReader.TagAction a)
指定したタグのハンドラを登録します。protected void
textAreaContent(char[] data)
テキスト領域ドキュメントに指定されたコンテンツを追加します。
-
フィールド詳細
-
parseBuffer
protected Vector<DefaultStyledDocument.ElementSpec> parseBufferビルディング要素を維持するためのバッファ。 -
charAttr
protected MutableAttributeSet charAttr現在の文字属性セット。
-
-
コンストラクタの詳細
-
HTMLReader
public HTMLReader(int offset)デフォルトのpopおよびpush深さを使用し、挿入するタグなしでHTMLReaderを構築します。- パラメータ:
offset
- 開始オフセット
-
HTMLReader
public HTMLReader(int offset, int popDepth, int pushDepth, HTML.Tag insertTag)HTMLReaderを構築します。- パラメータ:
offset
- 開始オフセットpopDepth
- 新しい要素を挿入する前にいくつの親が上昇するかpushDepth
- 挿入する前に何人の親が降下するか(popDepthを基準にした)insertTag
- (nullの場合がある)を挿入するタグ
-
-
メソッドの詳細
-
flush
public void flush() throws BadLocationExceptionHTMLリーダーで呼び出される最後のメソッドです。 保留状態にある変更がドキュメントにフラッシュされるようにします。 現在、同期的にロードしているため、変更のセット全体がこの時点で反映されます。- オーバーライド:
flush
、クラス:HTMLEditorKit.ParserCallback
- 例外:
BadLocationException
- 指定された位置が、関連するドキュメント内の有効な位置を示さない場合。
-
handleText
public void handleText(char[] data, int pos)テキスト・ブロックが見つかったことを示すために、パーサーによって呼び出されます。- オーバーライド:
handleText
、クラス:HTMLEditorKit.ParserCallback
- パラメータ:
data
- データpos
- 位置
-
handleStartTag
public void handleStartTag(HTML.Tag t, MutableAttributeSet a, int pos)パーサーからのコールバックです。 このタグの適切なハンドラに配信します。- オーバーライド:
handleStartTag
、クラス:HTMLEditorKit.ParserCallback
- パラメータ:
t
- HTMLタグa
- 属性のセットpos
- 位置
-
handleEndTag
public void handleEndTag(HTML.Tag t, int pos)パーサーからのコールバックです。 このタグの適切なハンドラに配信します。- オーバーライド:
handleEndTag
、クラス:HTMLEditorKit.ParserCallback
- パラメータ:
t
- HTMLタグpos
- 位置
-
handleSimpleTag
public void handleSimpleTag(HTML.Tag t, MutableAttributeSet a, int pos)パーサーからのコールバックです。 このタグの適切なハンドラに配信します。- オーバーライド:
handleSimpleTag
、クラス:HTMLEditorKit.ParserCallback
- パラメータ:
t
- HTMLタグa
- 属性のセットpos
- 位置
-
handleEndOfLineString
public void handleEndOfLineString(String eol)ストリームの解析が終了し、flush
の前に呼び出されます。eol
は、ストリームの解析中にもっとも多く検出される\n、\rまたは\r\nのどれかです。- オーバーライド:
handleEndOfLineString
、クラス:HTMLEditorKit.ParserCallback
- パラメータ:
eol
- eolの値- 導入されたバージョン:
- 1.3
-
registerTag
protected void registerTag(HTML.Tag t, HTMLDocument.HTMLReader.TagAction a)指定したタグのハンドラを登録します。 デフォルトでは、既知のタグはすべて登録されています。 特定のタグの処理を変更したり、カスタム・タグのサポートを追加したりするのに使用されます。- パラメータ:
t
- HTMLタグa
- タグ・アクション・ハンドラ
-
pushCharacterStyle
protected void pushCharacterStyle()新しい入れ子の文字スタイルを作成する準備として、現在の文字スタイルをスタックにプッシュします。 -
popCharacterStyle
protected void popCharacterStyle()以前にプッシュした文字スタイルをスタックからポップして、以前の文字スタイルに戻します。 -
textAreaContent
protected void textAreaContent(char[] data)テキスト領域ドキュメントに指定されたコンテンツを追加します。 このメソッドは、テキスト領域コンテキストで呼び出されます。 したがって、表示されるテキストはすべてテキスト領域に属し、そのテキスト領域に関連したTextAreaDocumentに追加されます。- パラメータ:
data
- 与えられた内容
-
preContent
protected void preContent(char[] data)PRE要素で検出された指定されたコンテンツを追加します。 一連のテキストを保持するための行を合成し、addContentを呼び出して実際にテキストを追加します。- パラメータ:
data
- 与えられた内容
-
blockOpen
protected void blockOpen(HTML.Tag t, MutableAttributeSet attr)解析バッファに命令を追加して、指定した属性を持つブロック要素を生成します。- パラメータ:
t
- HTMLタグattr
- 属性セット
-
blockClose
protected void blockClose(HTML.Tag t)解析バッファに命令を追加して、指定した型のブロック要素を閉じます。- パラメータ:
t
- HTMLタグ
-
addContent
protected void addContent(char[] data, int offs, int length)現在の文字属性を持つテキストを追加します。- パラメータ:
data
- 追加するコンテンツoffs
- 初期オフセットlength
- 長さ
-
addContent
protected void addContent(char[] data, int offs, int length, boolean generateImpliedPIfNecessary)現在の文字属性を持つテキストを追加します。- パラメータ:
data
- 追加するコンテンツoffs
- 初期オフセットlength
- 長さgenerateImpliedPIfNecessary
- 暗黙的に指定された段落を生成するかどうか
-
addSpecialElement
protected void addSpecialElement(HTML.Tag t, MutableAttributeSet a)基本的に属性セット全体で指定されているコンテンツを追加します。- パラメータ:
t
- HTMLタグa
- 属性セット
-