|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--javax.swing.text.View | +--javax.swing.text.CompositeView | +--javax.swing.text.BoxView | +--javax.swing.text.ZoneView
ZoneView は View の実装で、子ビューが表示またはモデルとビューの変換のために必要になるまで生成または格納されないゾーンを生成します。この機能を使用すると、表されているモデルが非常に大きい場合に、アクティブに表示、編集されている領域だけのビューオブジェクトを構築することで、大幅にメモリの消費を削減できます。子のサイズは推測することも保存された結果だけで非同期に計算することもできます。
ZoneView は子のゾーンを実装するボックスを提供するために BoxView を拡張します。ゾーンはクラスのインスタンスの子という特別な View 実装で、ZoneView のインスタンスがかかわっているモデルの部分だけを表します。ゾーンは子のビューの表示の試みられるまで子ビューを生成しません。ボックス型のビューは次の理由により適しています。
デフォルトの動作は、maxZoneSize と maxZonesLoaded の 2 つのプロパティが制御しています。maxZoneSize を Integer.MAX_VALUE に設定するとゾーンを一つしか生成しないという効果があります。そのため、ビューを効果的にデコレータパターンの実装へ切り替えることができます。maxZonesLoaded を Integer.MAX_VALUE の値に設定すると、ゾーンのアンロードはできません。簡単に言うと、ビューがかかわっている要素の子要素が表されている境界に生成されます。ゾーンは任意の View 実装となることができますが、デフォルトの実装はかなり大きなゾーンをサポートしている AsyncBoxView が基になります。
View
フィールドの概要 |
クラス javax.swing.text.View から継承したフィールド |
BadBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, GoodBreakWeight, X_AXIS, Y_AXIS |
インタフェース javax.swing.SwingConstants から継承したフィールド |
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST |
コンストラクタの概要 | |
ZoneView(Element elem,
int axis)
ZoneView を構築します。 |
メソッドの概要 | |
protected View |
createZone(int p0,
int p1)
このオブジェクトが扱う範囲内にあるモデル内の指定範囲内のゾーンを表すビューを生成します。 |
int |
getMaximumZoneSize()
現在のゾーンサイズの最大値を返します。 |
int |
getMaxZonesLoaded()
同時にロードできるゾーン数の現在の設定を返します。 |
protected int |
getViewIndexAtPosition(int pos)
モデル内の指定された位置を表す子ビューのインデックスを返します。 |
void |
insertUpdate(DocumentEvent changes,
Shape a,
ViewFactory f)
このビューが扱う場所にあるドキュメントに何かが挿入されたことを通知します。 |
protected boolean |
isZoneLoaded(View zone)
ゾーンがロード状態にあるかどうかを判定します。 |
protected void |
loadChildren(ViewFactory f)
子をすべてロードしてビューを初期化します。 |
void |
removeUpdate(DocumentEvent changes,
Shape a,
ViewFactory f)
このビューが扱う場所にあるドキュメントに何かが削除されたことを通知します。 |
void |
setMaximumZoneSize(int size)
望ましい最大ゾーンサイズを設定します。 |
void |
setMaxZonesLoaded(int mzl)
同時にロードできるゾーン数の現在の設定を設定します。 |
protected void |
unloadZone(View zone)
ゾーンをメモリ保存状態に変換して、ゾーンをアンロードします。 |
protected boolean |
updateChildren(DocumentEvent.ElementChange ec,
DocumentEvent e,
ViewFactory f)
スーパークラスの動作が、この場合は適切でない子ビューの更新を試みます。 |
protected void |
zoneWasLoaded(View zone)
ロードされるとゾーンにより呼び出されます。 |
クラス javax.swing.text.View から継承したメソッド |
append, breakView, changedUpdate, createFragment, forwardUpdateToView, getAttributes, getBreakWeight, getContainer, getDocument, getElement, getEndOffset, getGraphics, getParent, getStartOffset, getToolTipText, getViewFactory, getViewIndex, insert, isVisible, modelToView, remove, removeAll, updateLayout, viewToModel |
クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
public ZoneView(Element elem, int axis)
elem
- このビューが扱う要素axis
- View.X_AXIS または View.Y_AXISメソッドの詳細 |
public int getMaximumZoneSize()
public void setMaximumZoneSize(int size)
size
- ゾーンを小さく分割する前にゾーンが表す文字数public int getMaxZonesLoaded()
public void setMaxZonesLoaded(int mzl)
mzl
が 1 より小さい場合は IllegalArgumentException
がスローされます。
mzl
- アクティブにロードする望ましい最大ゾーン数。0 よりも大きくなければならない
IllegalArgumentException
- mzl
が 1 より小さい場合protected void zoneWasLoaded(View zone)
zone
- ロードされたばかりの子ビューprotected void unloadZone(View zone)
zone
- アンロード状態に設定するのが望ましい子ビューprotected boolean isZoneLoaded(View zone)
protected View createZone(int p0, int p1)
p0
- 望ましいゾーンの開始値。この値は getStartOffset() 以上で getEndOffset() より小さい。また p1 よりも小さいp1
- 望ましいゾーンの終了値。この値は getStartOffset() より大きく、getEndOffset() 以下。また p0 よりも大きいprotected void loadChildren(ViewFactory f)
setParent
メソッドによって呼び出されます。このメソッドを再実装すると、どの子も (ゾーンによって生成されるので) 直接ロードしないようにできます。このメソッドはゾーンの初期設定を生成します。ただし、実際にはゾーンの表示またはモデル座標、ビュー座標の変換の試みをするまでゾーンは設定されません。
CompositeView
内の loadChildren
f
- ビューファクトリCompositeView.setParent(javax.swing.text.View)
protected int getViewIndexAtPosition(int pos)
CompositeView
内の getViewIndexAtPosition
pos
- 位置 >= 0
protected boolean updateChildren(DocumentEvent.ElementChange ec, DocumentEvent e, ViewFactory f)
View
内の updateChildren
ec
- このビューが扱う要素への変更情報。このメソッドが呼び出されない場合は null
にはならないe
- 関連するドキュメントからの変更情報f
- 子ビューの構築に使用するファクトリ
View.insertUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
,
View.removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
,
View.changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
public void insertUpdate(DocumentEvent changes, Shape a, ViewFactory f)
View
内の insertUpdate
changes
- 関連するドキュメントからの変更情報a
- ビューの現在の割り当てf
- ビューが子を持つ場合に再構築に使用するファクトリView.insertUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
public void removeUpdate(DocumentEvent changes, Shape a, ViewFactory f)
View
内の removeUpdate
changes
- 関連するドキュメントからの変更情報a
- ビューの現在の割り当てf
- ビューが子を持つ場合に再構築に使用するファクトリView.removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.