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で定義されているタグに対して割り当てられているアクションの記述を次の表に示します。
 
| タグ | 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リーダーのBlockタスクを処理するためにデフォルトで割り当てられたアクション。classリーダーのCharacterタスクを処理するためにデフォルトで割り当てられたアクション。classフォームの各コントロールを表すための要素をすべて生成して、フォームをサポートするためのアクションです。classリーダーのHiddenタスクを処理するためにデフォルトで割り当てられたアクション。classリーダーのIsindexタスクを処理するためにデフォルトで割り当てられたアクション。classリーダーのParagraphタスクを処理するためにデフォルトで割り当てられたアクション。classリーダーのPre blockタスクを処理するためにデフォルトで割り当てられたアクション。classリーダーのSpecialタスクを処理するためにデフォルトで割り当てられたアクション。classタグの構文解析に応じて実行されるアクションです。
- 
フィールドのサマリーフィールド修飾子と型フィールド説明protected MutableAttributeSet現在の文字属性セット。protected Vector<DefaultStyledDocument.ElementSpec>ビルディング要素を維持するためのバッファ。クラス javax.swing.text.html.HTMLEditorKit.ParserCallbackで宣言されたフィールドIMPLIED
- 
コンストラクタのサマリーコンストラクタコンストラクタ説明HTMLReader(int offset)デフォルトのpopおよびpush深さを使用し、挿入するタグなしでHTMLReaderを構築します。HTMLReader(int offset, int popDepth, int pushDepth, HTML.Tag insertTag)HTMLReaderを構築します。
- 
メソッドのサマリー修飾子と型メソッド説明protected voidaddContent(char[] data, int offs, int length)現在の文字属性を持つテキストを追加します。protected voidaddContent(char[] data, int offs, int length, boolean generateImpliedPIfNecessary)現在の文字属性を持つテキストを追加します。protected void基本的に属性セット全体で指定されているコンテンツを追加します。protected voidblockClose(HTML.Tag t)解析バッファに命令を追加して、指定した型のブロック要素を閉じます。protected voidblockOpen(HTML.Tag t, MutableAttributeSet attr)解析バッファに命令を追加して、指定した属性を持つブロック要素を生成します。voidflush()HTMLリーダーで呼び出される最後のメソッドです。voidhandleEndOfLineString(String eol)ストリームの解析が終了し、flushの前に呼び出されます。voidhandleEndTag(HTML.Tag t, int pos)パーサーからのコールバックです。voidhandleSimpleTag(HTML.Tag t, MutableAttributeSet a, int pos)パーサーからのコールバックです。voidhandleStartTag(HTML.Tag t, MutableAttributeSet a, int pos)パーサーからのコールバックです。voidhandleText(char[] data, int pos)テキスト・ブロックが見つかったことを示すために、パーサーによって呼び出されます。protected void以前にプッシュした文字スタイルをスタックからポップして、以前の文字スタイルに戻します。protected voidpreContent(char[] data)PRE要素で検出された指定されたコンテンツを追加します。protected void新しい入れ子の文字スタイルを作成する準備として、現在の文字スタイルをスタックにプッシュします。protected void指定したタグのハンドラを登録します。protected voidtextAreaContent(char[] data)テキスト領域ドキュメントに指定されたコンテンツを追加します。クラス javax.swing.text.html.HTMLEditorKit.ParserCallbackで宣言されたメソッドhandleComment, handleError
- 
フィールド詳細- 
parseBufferprotected Vector<DefaultStyledDocument.ElementSpec> parseBufferビルディング要素を維持するためのバッファ。
- 
charAttrprotected MutableAttributeSet charAttr現在の文字属性セット。
 
- 
- 
コンストラクタの詳細- 
HTMLReaderpublic HTMLReader(int offset)デフォルトのpopおよびpush深さを使用し、挿入するタグなしでHTMLReaderを構築します。- パラメータ:
- offset- 開始オフセット
 
- 
HTMLReaderpublic HTMLReader(int offset, int popDepth, int pushDepth, HTML.Tag insertTag)HTMLReaderを構築します。- パラメータ:
- offset- 開始オフセット
- popDepth- 新しい要素を挿入する前にいくつの親が上昇するか
- pushDepth- 挿入する前に何人の親が降下するか(popDepthを基準にした)
- insertTag- (nullの場合がある)を挿入するタグ
 
 
- 
- 
メソッドの詳細- 
flushpublic void flush() throws BadLocationExceptionHTMLリーダーで呼び出される最後のメソッドです。 保留状態にある変更がドキュメントにフラッシュされるようにします。 現在、同期的にロードしているため、変更のセット全体がこの時点で反映されます。- オーバーライド:
- flush、クラス:- HTMLEditorKit.ParserCallback
- 例外:
- BadLocationException- 指定された位置が、関連するドキュメント内の有効な位置を示さない場合。
 
- 
handleTextpublic void handleText(char[] data, int pos)テキスト・ブロックが見つかったことを示すために、パーサーによって呼び出されます。- オーバーライド:
- handleText、クラス:- HTMLEditorKit.ParserCallback
- パラメータ:
- data- データ
- pos- 位置
 
- 
handleStartTagpublic void handleStartTag(HTML.Tag t, MutableAttributeSet a, int pos)パーサーからのコールバックです。 このタグの適切なハンドラに配信します。- オーバーライド:
- handleStartTag、クラス:- HTMLEditorKit.ParserCallback
- パラメータ:
- t- HTMLタグ
- a- 属性のセット
- pos- 位置
 
- 
handleEndTagpublic void handleEndTag(HTML.Tag t, int pos)パーサーからのコールバックです。 このタグの適切なハンドラに配信します。- オーバーライド:
- handleEndTag、クラス:- HTMLEditorKit.ParserCallback
- パラメータ:
- t- HTMLタグ
- pos- 位置
 
- 
handleSimpleTagpublic void handleSimpleTag(HTML.Tag t, MutableAttributeSet a, int pos)パーサーからのコールバックです。 このタグの適切なハンドラに配信します。- オーバーライド:
- handleSimpleTag、クラス:- HTMLEditorKit.ParserCallback
- パラメータ:
- t- HTMLタグ
- a- 属性のセット
- pos- 位置
 
- 
handleEndOfLineStringpublic void handleEndOfLineString(String eol)ストリームの解析が終了し、flushの前に呼び出されます。eolは、ストリームの解析中にもっとも多く検出される\n、\rまたは\r\nのどれかです。- オーバーライド:
- handleEndOfLineString、クラス:- HTMLEditorKit.ParserCallback
- パラメータ:
- eol- eolの値
- 導入されたバージョン:
- 1.3
 
- 
registerTagprotected void registerTag(HTML.Tag t, HTMLDocument.HTMLReader.TagAction a)指定したタグのハンドラを登録します。 デフォルトでは、既知のタグはすべて登録されています。 特定のタグの処理を変更したり、カスタム・タグのサポートを追加したりするのに使用されます。- パラメータ:
- t- HTMLタグ
- a- タグ・アクション・ハンドラ
 
- 
pushCharacterStyleprotected void pushCharacterStyle()新しい入れ子の文字スタイルを作成する準備として、現在の文字スタイルをスタックにプッシュします。
- 
popCharacterStyleprotected void popCharacterStyle()以前にプッシュした文字スタイルをスタックからポップして、以前の文字スタイルに戻します。
- 
textAreaContentprotected void textAreaContent(char[] data)テキスト領域ドキュメントに指定されたコンテンツを追加します。 このメソッドは、テキスト領域コンテキストで呼び出されます。 したがって、表示されるテキストはすべてテキスト領域に属し、そのテキスト領域に関連したTextAreaDocumentに追加されます。- パラメータ:
- data- 与えられた内容
 
- 
preContentprotected void preContent(char[] data)PRE要素で検出された指定されたコンテンツを追加します。 一連のテキストを保持するための行を合成し、addContentを呼び出して実際にテキストを追加します。- パラメータ:
- data- 与えられた内容
 
- 
blockOpenprotected void blockOpen(HTML.Tag t, MutableAttributeSet attr)解析バッファに命令を追加して、指定した属性を持つブロック要素を生成します。- パラメータ:
- t- HTMLタグ
- attr- 属性セット
 
- 
blockCloseprotected void blockClose(HTML.Tag t)解析バッファに命令を追加して、指定した型のブロック要素を閉じます。- パラメータ:
- t- HTMLタグ
 
- 
addContentprotected void addContent(char[] data, int offs, int length)現在の文字属性を持つテキストを追加します。- パラメータ:
- data- 追加するコンテンツ
- offs- 初期オフセット
- length- 長さ
 
- 
addContentprotected void addContent(char[] data, int offs, int length, boolean generateImpliedPIfNecessary)現在の文字属性を持つテキストを追加します。- パラメータ:
- data- 追加するコンテンツ
- offs- 初期オフセット
- length- 長さ
- generateImpliedPIfNecessary- 暗黙的に指定された段落を生成するかどうか
 
- 
addSpecialElementprotected void addSpecialElement(HTML.Tag t, MutableAttributeSet a)基本的に属性セット全体で指定されているコンテンツを追加します。- パラメータ:
- t- HTMLタグ
- a- 属性セット
 
 
-