Java プラットフォーム 1.2

javax.swing.text.html
クラス HTMLDocument

java.lang.Object
  |
  +--javax.swing.text.AbstractDocument
        |
        +--javax.swing.text.DefaultStyledDocument
              |
              +--javax.swing.text.html.HTMLDocument

public class HTMLDocument
extends DefaultStyledDocument

HTML をモデル化するドキュメントです。このモデルの目的は、ドキュメントのブラウズと編集の両方をサポートすることです。このため、HTML ドキュメントによって記述された構造は、デフォルトでは正確に複製されません。デフォルトでモデル化される要素構造は、HTMLDocument.HTMLReader クラスによって構築されます。このクラスは、パーサに必要な HTMLEditorKit.ParserCallback プロトコルを実装しています。構造を変更するには、HTMLReader クラスをサブクラス化し、getReader メソッドを実装し直して新しいリーダの実装を返すようにします。作成されるデフォルトの構造については、HTMLReader のマニュアルを参照してください。デフォルトの構造は、ドキュメントの内容が損なわれないことを意図して実装されていますが、HTML 形式を生成し直すときに異なった形式になることもあります。

このドキュメントは、HTML だけをモデル化しており、ビューの属性はドキュメント内に格納されません。要素は、StyleContext.NameAttribute 属性によって識別されます。この属性は必ず、要素の種類を識別する HTML.Tag 型の値を持っています。コメントのように、合成される要素もあります。HTMLFactory はこの属性を使って構築するビューの種類を決定します。

このドキュメントは、追加読み込みをサポートしています。TokenThreshold プロパティにより、どれくらいの量の解析がバッファに格納されるとドキュメントの要素構造の更新を行うかを制御します。このプロパティは、EditorKit で設定されるため、サブクラスから無効にすることができます。

Base は、相対 URL をどの URL に解決するかを決定します。プロパティの値が URL の場合、デフォルトでは、Base は、Document.StreamDescriptionProperty になります。<base> タグが検出された場合、ベースは、タグで指定された URL になります。ベース URL はプロパティなので、直接設定することができます。

このドキュメントで使用するデフォルトのコンテンツ記憶機構は、ギャップバッファ (GapContent) です。別の機構を指定するには、Content の実装を引数に取るコンストラクタを使います。

関連項目:
直列化された形式

内部クラスの概要
 class HTMLDocument.BlockElement
          HTML の構造「ブロック」を表す要素です。
 class HTMLDocument.HTMLReader
          HTML ドキュメントを HTML 要素構造とともにロードするための HTML リーダです。
static class HTMLDocument.Iterator
          特定のタイプのタグに対して繰り返し処理を実行する反復子です。
 class HTMLDocument.RunElement
          HTML 文字レベル属性のセットが割り当てられているテキストのチャンクを表す要素です。
 
クラス javax.swing.text.DefaultStyledDocument から継承した内部クラス
DefaultStyledDocument.AttributeUndoableEdit, DefaultStyledDocument.ElementBuffer, DefaultStyledDocument.ElementSpec, DefaultStyledDocument.SectionElement
 
クラス javax.swing.text.AbstractDocument から継承した内部クラス
AbstractDocument.AbstractElement, AbstractDocument.AttributeContext, AbstractDocument.BranchElement, AbstractDocument.Content, AbstractDocument.DefaultDocumentEvent, AbstractDocument.ElementEdit, AbstractDocument.LeafElement
 
フィールドの概要
static String AdditionalComments
          ドキュメントプロパティのキーの値です。
 
クラス javax.swing.text.DefaultStyledDocument から継承したフィールド
buffer, BUFFER_SIZE_DEFAULT
 
クラス javax.swing.text.AbstractDocument から継承したフィールド
BAD_LOCATION, BidiElementName, ContentElementName, ElementNameAttribute, listenerList, ParagraphElementName, SectionElementName
 
コンストラクタの概要
HTMLDocument()
          HTML ドキュメントを構築します。
HTMLDocument(AbstractDocument.Content c, StyleSheet styles)
          指定されたコンテンツ記憶域の実装と、指定されたスタイル/属性記憶機構とを使って HTML ドキュメントを作成します。
HTMLDocument(StyleSheet styles)
          デフォルトのコンテンツ記憶域の実装と、指定されたスタイル/属性記憶機構とを使って HTML ドキュメントを構築します。
 
メソッドの概要
protected  void create(DefaultStyledDocument.ElementSpec[] data)
          ドキュメントのコンテンツを、指定された要素仕様に置換します。
protected  Element createBranchElement(Element parent, AttributeSet a)
          他の要素を格納できるドキュメントの枝の要素を作成します。
protected  AbstractDocument.AbstractElement createDefaultRoot()
          デフォルトのドキュメント構造を表すのに使われるルート要素を作成します。
protected  Element createLeafElement(Element parent, AttributeSet a, int p0, int p1)
          テキストを直接表す (子を持たない) ドキュメントの葉の要素を作成します。
 URL getBase()
          相対 URL を解決処理するための位置を取得します。
 HTMLDocument.Iterator getIterator(HTML.Tag t)
          後続する HTML タグの種類の反復子を取得します。
 boolean getPreservesUnknownTags()
           
 HTMLEditorKit.ParserCallback getReader(int pos)
          パーサが HTML ドキュメントをロードするために使うリーダを取得します。
 HTMLEditorKit.ParserCallback getReader(int pos, int popDepth, int pushDepth, HTML.Tag insertTag)
          パーサが HTML ドキュメントをロードするために使うリーダを取得します。
 StyleSheet getStyleSheet()
          HTML ドキュメント自体が指定するドキュメント固有の表示規則 (CSS) を持つ、 StyleSheet を取得します。
 int getTokenThreshold()
          ドキュメントの要素構造の更新を試みるまでに、バッファに格納されるトークンの数を取得します。
protected  void insert(int offset, DefaultStyledDocument.ElementSpec[] data)
          新しい要素を一括して挿入します。
protected  void insertUpdate(AbstractDocument.DefaultDocumentEvent chng, AttributeSet attr)
          テキストの挿入に応じてドキュメントを更新します。
 void processHTMLFrameHyperlinkEvent(HTMLFrameHyperlinkEvent e)
          HTML フレーム内でドキュメントによって生成された HyperlinkEvent の処理を担当します。
 void setBase(URL u)
          相対 URL を解決処理する位置を設定します。
 void setPreservesUnknownTags(boolean preservesTags)
          未知のタグを処理する方法を設定します。
 void setTokenThreshold(int n)
          ドキュメントの要素構造の更新を試みるまでに、バッファに格納されるトークンの数を設定します。
 
クラス javax.swing.text.DefaultStyledDocument から継承したメソッド
addDocumentListener, addStyle, getBackground, getCharacterElement, getDefaultRootElement, getFont, getForeground, getLogicalStyle, getParagraphElement, getStyle, getStyleNames, removeDocumentListener, removeStyle, removeUpdate, setCharacterAttributes, setLogicalStyle, setParagraphAttributes, styleChanged
 
クラス javax.swing.text.AbstractDocument から継承したメソッド
addUndoableEditListener, createPosition, dump, fireChangedUpdate, fireInsertUpdate, fireRemoveUpdate, fireUndoableEditUpdate, getAsynchronousLoadPriority, getAttributeContext, getBidiRootElement, getContent, getCurrentWriter, getDocumentProperties, getEndPosition, getLength, getProperty, getRootElements, getStartPosition, getText, getText, insertString, postRemoveUpdate, putProperty, readLock, readUnlock, remove, removeUndoableEditListener, render, setAsynchronousLoadPriority, setDocumentProperties, writeLock, writeUnlock
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

AdditionalComments

public static final String AdditionalComments
ドキュメントプロパティのキーの値です。キーに対応する値は、String の Vector になります。この文字列は、本文はないコメントです。
コンストラクタの詳細

HTMLDocument

public HTMLDocument()
HTML ドキュメントを構築します。

HTMLDocument

public HTMLDocument(StyleSheet styles)
デフォルトのコンテンツ記憶域の実装と、指定されたスタイル/属性記憶機構とを使って HTML ドキュメントを構築します。
パラメータ:
styles - スタイル

HTMLDocument

public HTMLDocument(AbstractDocument.Content c,
                    StyleSheet styles)
指定されたコンテンツ記憶域の実装と、指定されたスタイル/属性記憶機構とを使って HTML ドキュメントを作成します。
パラメータ:
c - コンテンツのコンテナ
styles - スタイル
メソッドの詳細

getReader

public HTMLEditorKit.ParserCallback getReader(int pos)
パーサが HTML ドキュメントをロードするために使うリーダを取得します。このメソッドは HTMLDocument.HTMLReader のインスタンスを返すために実装されます。サブクラスは、必要であれば、カスタムタグや文字スタイル要素の構造的表現の処理などのために、このメソッドを再実装してドキュメントの構造化手段を変更することができます。

getReader

public HTMLEditorKit.ParserCallback getReader(int pos,
                                              int popDepth,
                                              int pushDepth,
                                              HTML.Tag insertTag)
パーサが HTML ドキュメントをロードするために使うリーダを取得します。このメソッドは HTMLDocument.HTMLReader のインスタンスを返すために実装されます。サブクラスは、必要であれば、カスタムタグや文字スタイル要素の構造的表現の処理などのために、このメソッドを再実装してドキュメントの構造化手段を変更することができます。
パラメータ:
popDepth - 挿入の前に生成する必要がある ElementSpec.EndTagTag の数
pushDepth - 終了タグの生成後、挿入の前に、生成する必要がある ElementSpec.JoinNextDirection の方向を持つ ElementSpec.StartTagType タグの数
insertTag - ドキュメントへの挿入を開始する最初のタグ

getBase

public URL getBase()
相対 URL を解決処理するための位置を取得します。デフォルトではこの位置は、ドキュメントが URL からロードされた場合にはドキュメント URL になります。ベースタグが見つかり、構文解析できる場合には、それをベースロケーションとして使用します。

setBase

public void setBase(URL u)
相対 URL を解決処理する位置を設定します。デフォルトではこの位置は、ドキュメントが URL からロードされた場合にはドキュメント URL になります。ベースタグが見つかり、構文解析できる場合には、それをベースロケーションとして使用します。

insert

protected void insert(int offset,
                      DefaultStyledDocument.ElementSpec[] data)
               throws BadLocationException
新しい要素を一括して挿入します。要素はこのようにしてドキュメント内に作成されます。構文解析によりどのような構造が必要であるかを決め、ドキュメントに書き込みロックがかかっていない間に、編集を記述するトークンのセットとして仕様を作成します。このメソッドは、リーダによってまとめて呼び出されて、短時間の間書き込みロックを得ます。ドキュメントへの実際の書き込みは、この時間に行われます。
パラメータ:
offset - 開始オフセット
例外:
BadLocationException - 開始オフセットが無効な場合
BadLocationException - 指定された位置が、関連付けれらているドキュメント内の有効な場所でない場合
オーバーライド:
クラス DefaultStyledDocument 内の insert
関連項目:
StyledDocument#insert

insertUpdate

protected void insertUpdate(AbstractDocument.DefaultDocumentEvent chng,
                            AttributeSet attr)
テキストの挿入に応じてドキュメントを更新します。このアクションは書き込みロックの中で発生します。この実装は、挿入されたコンテンツを単に改行ごとに解析し、要素バッファに対する一連の指示を構築します。
パラメータ:
chng - ドキュメントの変更の説明
attr - 属性
オーバーライド:
クラス DefaultStyledDocument 内の insertUpdate

create

protected void create(DefaultStyledDocument.ElementSpec[] data)
ドキュメントのコンテンツを、指定された要素仕様に置換します。このメソッドは、ロードがまとめて完了した場合、挿入の前に呼び出されます。ドキュメント全体を一度にまとめてロードする場合に呼び出される、唯一のメソッドです。
オーバーライド:
クラス DefaultStyledDocument 内の create

getStyleSheet

public StyleSheet getStyleSheet()
HTML ドキュメント自体が指定するドキュメント固有の表示規則 (CSS) を持つ、 StyleSheet を取得します。

getIterator

public HTMLDocument.Iterator getIterator(HTML.Tag t)
後続する HTML タグの種類の反復子を取得します。包含されているアンカーのセットでの繰り返し処理や、入力要素での繰り返し処理などで使用されます。

createLeafElement

protected Element createLeafElement(Element parent,
                                    AttributeSet a,
                                    int p0,
                                    int p1)
テキストを直接表す (子を持たない) ドキュメントの葉の要素を作成します。HTMLDocument.RunElement 型の要素を返すために実装されます。
パラメータ:
parent - 親要素
a - 要素の属性
p0 - 範囲の先頭 >= 0
p1 - 範囲の最後 >= p0
戻り値:
新しい要素
オーバーライド:
クラス AbstractDocument 内の createLeafElement

createBranchElement

protected Element createBranchElement(Element parent,
                                      AttributeSet a)
他の要素を格納できるドキュメントの枝の要素を作成します。HTMLDocument.BlockElement 型の要素を返すために実装されます。
パラメータ:
parent - 親要素
a - 属性
戻り値:
要素
オーバーライド:
クラス AbstractDocument 内の createBranchElement

createDefaultRoot

protected AbstractDocument.AbstractElement createDefaultRoot()
デフォルトのドキュメント構造を表すのに使われるルート要素を作成します。
戻り値:
要素のベース
オーバーライド:
クラス DefaultStyledDocument 内の createDefaultRoot

setTokenThreshold

public void setTokenThreshold(int n)
ドキュメントの要素構造の更新を試みるまでに、バッファに格納されるトークンの数を設定します。

getTokenThreshold

public int getTokenThreshold()
ドキュメントの要素構造の更新を試みるまでに、バッファに格納されるトークンの数を取得します。この値のデフォルト値は、Integer.MAX_VALUE です。

setPreservesUnknownTags

public void setPreservesUnknownTags(boolean preservesTags)
未知のタグを処理する方法を設定します。true を設定すると未知のタグはモデルに入れられ、そうでない場合はモデルから外されます。

getPreservesUnknownTags

public boolean getPreservesUnknownTags()
戻り値:
解析時に未知のタグが残される場合は true

processHTMLFrameHyperlinkEvent

public void processHTMLFrameHyperlinkEvent(HTMLFrameHyperlinkEvent e)
HTML フレーム内でドキュメントによって生成された HyperlinkEvent の処理を担当します。HyperlinkEvent 型は、パラメータが示す通り、HTMLFrameHyperlinkEvent です。HyperlinkEvent に含まれる通常の情報のほかに、HTMLFrameHyperlinkEvent はクリックが発生したフレーム (発生元の要素)、およびターゲット名に対応する情報を格納しています。ターゲット名は、次に示す 4 種類の値のどれかです。
    1) _self
          2) _parent
    3) _top
          4) フレームの名前

ターゲットが _self の場合、HTML.Attribute.SRC の値を変更するアクションが発生し、ChangedUpdate イベントをトリガーします。

ターゲットが _parent の場合、<frameset> 要素である親要素を削除し、新しい <frame> 要素を挿入したあと、HTML.Attribute.SRC 属性が宛先の URL と等しい値を持つように設定して RemovedUpdate および InsertUpdate をトリガーします。

ターゲットが _top の場合、このメソッドは何も処理を行いません。_top は、フレーム用のビューの実装 (具体的には FrameView) で処理されます。_top はドキュメント全体の置き換えを意味するため、置換対象ドキュメントの外部で処理してください。

ターゲットがフレーム名の場合、ターゲットと同じ名前の要素を要素階層から探し、その要素の HTML.Attribute.SRC 属性を更新して ChangedUpdate イベントをトリガーします。

パラメータ:
HTMLFrameHyperLinkEvent -  

Java プラットフォーム 1.2

バグや機能要求の報告
新しい javadoc の表示についてのコメントやご提案
Java は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-1998 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.