JavaTM Platform
Standard Ed. 6

javax.swing.text.html
クラス HTMLDocument.HTMLReader

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 キーなどを押して、その適切な結果を得ることができます。選択を生成したり、属性を適用したり削除することもできます。以上のことを考慮した上で、リーダーが行う作業は次のようなタスクに分類できます。

ブロック
ストリームで指定されたものと同様の構造を構成します。このタスクは、ほかの要素を格納する要素を生成します。
段落
ブロックと同様ですが、段落要素を合成しなくても済むように、要素が段落ビューとともに使用されることを前提とする点が異なります。
文字
要素を任意のテキスト位置で開始し、別の任意のテキスト位置で終了する属性として利用します。これは最終的には、現在平坦化されているすべての HTML 文字要素とともに 1 つのテキスト中の文字の並びに統合されます。
特別
埋め込まれたグラフィック要素を生成します。
形式
埋め込みグラフィック要素と同様の要素を生成します。グラフィック要素との違いは、形式に関連したコンポーネントモデルも持っているという点です。
隠し
ドキュメントが読み取り専用で表示された場合は隠されてビューには表示されず、ドキュメントが編集される場合は表示される要素を生成します。このタスクを使うと、モデルから情報が失われません。コメントや未知のタグを格納するために使用します。

現時点では、<APPLET>、<PARAM>、<MAP>、<AREA>、<LINK>、<SCRIPT>、および <STYLE> はサポートされていません。

HTML.Tag で定義されているタグに対して割り当てられているアクションの記述を次に示します。

Tagアクション
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.BLOCKQUOTEBlockAction
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
           
 class HTMLDocument.HTMLReader.CharacterAction
           
 class HTMLDocument.HTMLReader.FormAction
          フォームの各コントロールを表すための要素をすべて生成して、フォームをサポートするためのアクションです。
 class HTMLDocument.HTMLReader.HiddenAction
           
 class HTMLDocument.HTMLReader.IsindexAction
           
 class HTMLDocument.HTMLReader.ParagraphAction
           
 class HTMLDocument.HTMLReader.PreAction
           
 class HTMLDocument.HTMLReader.SpecialAction
           
 class HTMLDocument.HTMLReader.TagAction
          タグの構文解析に応じて実行されるアクションです。
 
フィールドの概要
protected  MutableAttributeSet charAttr
           
protected  Vector<DefaultStyledDocument.ElementSpec> parseBuffer
           
 
クラス javax.swing.text.html.HTMLEditorKit.ParserCallback から継承されたフィールド
IMPLIED
 
コンストラクタの概要
HTMLDocument.HTMLReader(int offset)
           
HTMLDocument.HTMLReader(int offset, int popDepth, int pushDepth, HTML.Tag insertTag)
           
 
メソッドの概要
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 handleComment(char[] data, int pos)
           
 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)
          テキスト領域ドキュメントに指定されたコンテンツを追加します。
 
クラス javax.swing.text.html.HTMLEditorKit.ParserCallback から継承されたメソッド
handleError
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

parseBuffer

protected Vector<DefaultStyledDocument.ElementSpec> parseBuffer

charAttr

protected MutableAttributeSet charAttr
コンストラクタの詳細

HTMLDocument.HTMLReader

public HTMLDocument.HTMLReader(int offset)

HTMLDocument.HTMLReader

public HTMLDocument.HTMLReader(int offset,
                               int popDepth,
                               int pushDepth,
                               HTML.Tag insertTag)
メソッドの詳細

flush

public void flush()
           throws BadLocationException
HTML リーダーで呼び出される最後のメソッドです。保留状態にある変更がドキュメントにフラッシュされるようにします。現在、同期的にロードしているため、変更のセット全体がこの時点で反映されます。

オーバーライド:
クラス HTMLEditorKit.ParserCallback 内の flush
例外:
BadLocationException

handleText

public void handleText(char[] data,
                       int pos)
テキストブロックが見つかったことを示すために、パーサーによって呼び出されます。

オーバーライド:
クラス HTMLEditorKit.ParserCallback 内の handleText

handleStartTag

public void handleStartTag(HTML.Tag t,
                           MutableAttributeSet a,
                           int pos)
パーサーからのコールバックです。このタグの適切なハンドラに配信します。

オーバーライド:
クラス HTMLEditorKit.ParserCallback 内の handleStartTag

handleComment

public void handleComment(char[] data,
                          int pos)
オーバーライド:
クラス HTMLEditorKit.ParserCallback 内の handleComment

handleEndTag

public void handleEndTag(HTML.Tag t,
                         int pos)
パーサーからのコールバックです。このタグの適切なハンドラに配信します。

オーバーライド:
クラス HTMLEditorKit.ParserCallback 内の handleEndTag

handleSimpleTag

public void handleSimpleTag(HTML.Tag t,
                            MutableAttributeSet a,
                            int pos)
パーサーからのコールバックです。このタグの適切なハンドラに配信します。

オーバーライド:
クラス HTMLEditorKit.ParserCallback 内の handleSimpleTag

handleEndOfLineString

public void handleEndOfLineString(String eol)
ストリームの解析が終了し、flush の前に呼び出されます。eol は、ストリームの解析中にもっとも多く検出される \n、\r 、\r\n のいずれかです。

オーバーライド:
クラス HTMLEditorKit.ParserCallback 内の handleEndOfLineString
導入されたバージョン:
1.3

registerTag

protected void registerTag(HTML.Tag t,
                           HTMLDocument.HTMLReader.TagAction a)
指定したタグのハンドラを登録します。デフォルトでは、既知のタグはすべて登録されています。特定のタグの処理を変更したり、カスタムタグのサポートを追加したりするのに使用されます。


pushCharacterStyle

protected void pushCharacterStyle()
新しい入れ子の文字スタイルを作成する準備として、現在の文字スタイルをスタックにプッシュします。


popCharacterStyle

protected void popCharacterStyle()
以前にプッシュした文字スタイルをスタックからポップして、以前の文字スタイルに戻します。


textAreaContent

protected void textAreaContent(char[] data)
テキスト領域ドキュメントに指定されたコンテンツを追加します。このメソッドは、テキスト領域コンテキストで呼び出されます。したがって、表示されるテキストはすべてテキスト領域に属し、そのテキスト領域に関連した TextAreaDocument に追加されます。


preContent

protected void preContent(char[] data)
PRE 要素で検出された指定されたコンテンツを追加します。一連のテキストを保持するための行を合成し、addContent を呼び出して実際にテキストを追加します。


blockOpen

protected void blockOpen(HTML.Tag t,
                         MutableAttributeSet attr)
解析バッファーに命令を追加して、指定した属性を持つブロック要素を生成します。


blockClose

protected void blockClose(HTML.Tag t)
解析バッファーに命令を追加して、指定した型のブロック要素を閉じます。


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)
基本的に属性セット全体で指定されているコンテンツを追加します。


JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。