クラスZoneView
java.lang.Object
javax.swing.text.View
javax.swing.text.CompositeView
javax.swing.text.BoxView
javax.swing.text.ZoneView
- すべての実装されたインタフェース:
SwingConstants
public class ZoneView extends BoxView
ZoneViewはViewの実装で、子ビューが表示またはモデルとビューの変換のために必要になるまで生成または格納されないゾーンを生成します。 この機能を使用すると、表されているモデルが非常に大きい場合に、アクティブに表示、編集されている領域だけのビュー・オブジェクトを構築することで、大幅にメモリーの消費を削減できます。 子のサイズは推測することも保存された結果だけで非同期に計算することもできます。
ZoneViewは子のゾーンを実装するボックスを提供するためにBoxViewを拡張します。 ゾーンはクラスのインスタンスの子という特別なView実装で、ZoneViewのインスタンスがかかわっているモデルの部分だけを表します。 ゾーンは子のビューの表示の試みられるまで子ビューを生成しません。 ボックス型のビューは次の理由により適しています。
- ボックスは良く使用されるビューで、この動作を提供するボックスによりビュー・ファクトリからビュー階層へ動作をプラグする機会を提供できる。
- ボックスは一方向に並べられているため、確実な方法で簡単にゾーンに分割できる。
- 通常、ボックスとモデルの関係は簡単で、ボックスは子の要素を直接表す子ビューを生成する。
- ボックスはほかの型よりも簡単にサイズを推定できる。
デフォルトの動作は、maxZoneSizeとmaxZonesLoadedの2つのプロパティが制御しています。 maxZoneSizeをInteger.MAX_VALUEに設定するとゾーンを一つしか生成しないという効果があります。 そのため、ビューを効果的にデコレータ・パターンの実装へ切り替えることができます。 maxZonesLoadedをInteger.MAX_VALUEの値に設定すると、ゾーンのアンロードはできません。 簡単に言うと、ビューがかかわっている要素の子要素が表されている境界に生成されます。 ゾーンは任意のView実装となることができますが、デフォルトの実装はかなり大きなゾーンをサポートしているAsyncBoxViewが基になります。
- 導入されたバージョン:
- 1.3
- 関連項目:
-
フィールドのサマリー
クラスビューで宣言されたフィールド
BadBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, GoodBreakWeight, X_AXIS, Y_AXIS修飾子と型フィールド説明static final intフォーマット目的とするには不完全な分割の機会であるビューを示すウエイトです。static final int分割をサポートしているビューを示すウエイトで、分割するのに適した位置であることを表わしています。static final int分割をサポートしているビューを示すウエイトで、子を分割することで子をフォーマットするビューに配置されている場合に、ビューを正しく表わすには分割しなければいけません。static final int分割をサポートしているビューを示すウエイトですが、もっと良い機会が存在する可能性があります。static final intフォーマット/分割処理の軸です。static final intフォーマット/分割処理の軸です。インタフェースで宣言されたフィールド SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST修飾子と型フィールド説明static final intボックスの下端を指定するために使用するボックス配置定数です。static final int領域内の中央位置です。static final int東(右)の方角です。static final int水平方向です。static final int左から右に記述する言語および右から左に記述する言語で使用するテキストのリーディング・エッジを指定します。static final intボックスの左端を指定するために使用するボックス配置定数です。static final intシーケンス内の次の方向を指定します。static final int北(上)の方角です。static final int北東(右上)の方角です。static final int北西(左上)の方角です。static final intシーケンス内の前の方向を指定します。static final intボックスの右端を指定するために使用するボックス配置定数です。static final int南(下)の方角です。static final int南東(右下)の方角です。static final int南西(左下)の方角です。static final intボックスの上端を指定するために使用するボックス配置定数です。static final int左から右に記述する言語および右から左に記述する言語で使用するテキストのトレーリング・エッジを指定します。static final int垂直方向です。static final int西(左)の方角です。 -
コンストラクタのサマリー
コンストラクタ -
メソッドのサマリー
修飾子と型メソッド説明protected ViewcreateZone(int p0, int p1) このオブジェクトが扱う範囲内にあるモデル内の指定範囲内のゾーンを表すビューを生成します。int現在のゾーン・サイズの最大値を取得します。int同時にロードできるゾーン数の現在の設定を取得します。protected intgetViewIndexAtPosition(int pos) モデル内の指定された位置を表す子ビューのインデックスを返します。voidinsertUpdate(DocumentEvent changes, Shape a, ViewFactory f) このビューが扱う位置でドキュメントに何かが挿入されたことを通知します。protected booleanisZoneLoaded(View zone) ゾーンがロード状態にあるかどうかを判定します。protected voidビューを初期化するためにすべての子をロードします。voidremoveUpdate(DocumentEvent changes, Shape a, ViewFactory f) このビューが扱うドキュメント内の位置から何かが削除されたということを通知します。voidsetMaximumZoneSize(int size) 望ましい最大ゾーン・サイズを設定します。voidsetMaxZonesLoaded(int mzl) 同時にロードできるゾーン数の現在の設定を設定します。protected voidunloadZone(View zone) ゾーンを省メモリー状態に変換して、ゾーンをアンロードします。protected booleanスーパー・クラスの動作により、子ビューの更新が試みられます。ただし、子はゾーンであり、関連する要素の変更の影響を直接受けないため、この動作は適切ではありません。protected voidzoneWasLoaded(View zone) ロードされるとゾーンにより呼び出されます。クラスで宣言されたメソッド BoxView
baselineLayout, baselineRequirements, calculateMajorAxisRequirements, calculateMinorAxisRequirements, childAllocation, flipEastAndWestAtEnds, forwardUpdate, getAlignment, getAxis, getChildAllocation, getHeight, getMaximumSpan, getMinimumSpan, getOffset, getPreferredSpan, getResizeWeight, getSpan, getViewAtPoint, getWidth, isAfter, isAllocationValid, isBefore, isLayoutValid, layout, layoutChanged, layoutMajorAxis, layoutMinorAxis, modelToView, paint, paintChild, preferenceChanged, replace, setAxis, setSize, viewToModel修飾子と型メソッド説明protected voidbaselineLayout(int targetSpan, int axis, int[] offsets, int[] spans) 使用する領域の幅(または高さ)であるtargetSpanを指定したBoxViewにおける、各子ビューの位置とエクステントを計算します。protected SizeRequirementsbaselineRequirements(int axis, SizeRequirements r) 各子ビューのサイズを調べて、このBoxViewのサイズ要件を計算します。protected SizeRequirementscalculateMajorAxisRequirements(int axis, SizeRequirements r) 主軸axisのサイズ要件を計算します。protected SizeRequirementscalculateMinorAxisRequirements(int axis, SizeRequirements r) 副軸axisのサイズ要件を計算します。protected voidchildAllocation(int index, Rectangle alloc) 子ビューに領域を割り当てます。protected booleanflipEastAndWestAtEnds(int position, Position.Bias bias) 次のビューをどの方向に配置するかを決定します。protected void指定されたDocumentEventを、モデルへの変更について通知する必要のある子ビューに転送します。floatgetAlignment(int axis) 軸に沿ったこのビューの望ましいレイアウトを決定します。intgetAxis()タイル軸のプロパティを取得します。getChildAllocation(int index, Shape a) 指定された子ビューの割り当てを取得します。intボックスの現在の高さを返します。floatgetMaximumSpan(int axis) このビューの最大スパンを軸に沿って指定します。floatgetMinimumSpan(int axis) このビューの最小スパンを軸に沿って指定します。protected intgetOffset(int axis, int childIndex) 特定の子について、現在のレイアウトのオフセットを取得します。floatgetPreferredSpan(int axis) このビューに適切なスパンを軸に沿って指定します。intgetResizeWeight(int axis) サイズ変更のウエイトを取得します。protected intgetSpan(int axis, int childIndex) 特定の子について、現在のレイアウトのスパンを取得します。protected ViewgetViewAtPoint(int x, int y, Rectangle alloc) 指定された座標の子ビューを取得します。intgetWidth()ボックスの現在の幅を返します。protected booleanある点が、割り当てられた領域のあとにあるかどうかを判定します。protected boolean子への割当てが現在も有効かどうかを判定します。protected booleanある点が、割り当てられた領域の前にあるかどうかを判定します。protected booleanisLayoutValid(int axis) 指定された軸に沿ってレイアウトが有効かどうかを決定します。protected voidlayout(int width, int height) ボックスのレイアウトを実行します。voidlayoutChanged(int axis) 軸に沿ったレイアウトを無効にします。protected voidlayoutMajorAxis(int targetSpan, int axis, int[] offsets, int[] spans) ボックスの主軸(つまり、それが表す軸)をレイアウトします。protected voidlayoutMinorAxis(int targetSpan, int axis, int[] offsets, int[] spans) ボックスの副軸(つまり、それが表す軸に直角の軸)をレイアウトします。modelToView(int pos, Shape a, Position.Bias b) ドキュメント・モデルの座標空間からビューの座標空間へのマッピングを提供します。void特定のレンダリング表面とその表面上の領域を使用してBoxViewをレンダリングします。protected voidpaintChild(Graphics g, Rectangle alloc, int index) 子をペイントします。voidpreferenceChanged(View child, boolean width, boolean height) 子に呼び出され、そのスパンの設定が変更されたことを示します。voidレイアウトを無効にして、要求または割当てのキャッシュのサイズを変更します。voidsetAxis(int axis) タイル軸のプロパティを設定します。voidsetSize(float width, float height) ビューのサイズを設定します。intviewToModel(float x, float y, Shape a, Position.Bias[] bias) ビューの座標空間からモデルの論理座標空間へのマッピングを提供します。クラスで宣言されたメソッド CompositeView
getBottomInset, getInsideAllocation, getLeftInset, getNextEastWestVisualPositionFrom, getNextNorthSouthVisualPositionFrom, getNextVisualPositionFrom, getRightInset, getTopInset, getView, getViewAtPosition, getViewCount, getViewIndex, modelToView, setInsets, setParagraphInsets, setParent修飾子と型メソッド説明protected short下のインセットを取得します。protected Rectangleビューに指定された不変の割当てを、内部割当てを表す可変の割当てに変換します(上、左、下、右のインセットで指定された割当ての境界を削除する場合など)。protected short左のインセットを取得します。protected intgetNextEastWestVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet) カーソルを置くことのできる、次の視覚的な位置を返します。方向は右(east)または左(west)になります。protected intgetNextNorthSouthVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet) カーソルを置くことのできる、次の視覚的な位置を返します。方向は上(north)または下(south)になります。intgetNextVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet) キャレットが配置される可能性のある、視覚的に表された次のモデル位置を決定する手段を提供します。protected short右のインセットを取得します。protected short上のインセットを取得します。getView(int n) コンテナ内のn番目のビューを返します。protected ViewgetViewAtPosition(int pos, Rectangle a) モデル内で指定された位置を表す子ビューを取得します。intこのビューの子ビューの数を返します。intgetViewIndex(int pos, Position.Bias b) モデル内の指定された位置を表す子ビューのインデックスを返します。modelToView(int p0, Position.Bias b0, int p1, Position.Bias b1, Shape a) ドキュメント・モデルの座標空間からビューの座標空間へのマッピングを提供します。protected voidsetInsets(short top, short left, short bottom, short right) ビューのインセットを設定します。protected void指定された属性から選ばれた段落属性から、インセットを設定します。voidビューの親を設定します。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修飾子と型メソッド説明void1つの子ビューを追加します。breakView(int axis, int offset, float pos, float len) 指定された軸でこのビューの分割を試みます。voidchangedUpdate(DocumentEvent e, Shape a, ViewFactory f) このビューが扱う位置で属性が変更されたことをドキュメントから通知します。createFragment(int p0, int p1) 要素の一部分を表すビューを作成します。protected voidforwardUpdateToView(View v, DocumentEvent e, Shape a, ViewFactory f) 指定された子ビューにDocumentEventを転送します。描画するときに使用する属性を取得します。intgetBreakWeight(int axis, float pos, float len) このビューで分割のウエイトがどのくらい適切かを示します。ビューを収容するコンテナを取得します。ビューに関連したモデルを取り出します。このビューがマッピングされる対象の構造部分を取り出します。intこのビューが扱うモデルの一部を取り出します。レンダリングのためのGraphicsを取得します。ビューの親を返します。intこのビューが扱うモデルの一部を取り出します。getToolTipText(float x, float y, Shape allocation) 指定された位置にあるツールヒントのテキストを返します。ビュー階層を供給しているViewFactoryの実装を取り出します。intgetViewIndex(float x, float y, Shape allocation) ビュー内の指定された位置を表す子ビュー・インデックスを返します。void1つの子ビューを挿入します。booleanビューが可視かどうかを示すboolean型の値を返します。modelToView(int pos, Shape a) 非推奨。voidremove(int i) 指定された位置にある子を1つ削除します。voidすべての子を削除します。protected voidモデルから変更の通知を受け取った場合に、レイアウトを更新します。intviewToModel(float x, float y, Shape a) 非推奨。クラスオブジェクトで宣言されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait修飾子と型メソッド説明protected Objectclone()このオブジェクトのコピーを作成して、返します。booleanこのオブジェクトと他のオブジェクトが等しいかどうかを示します。protected voidfinalize()削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。最終決定は非推奨であり、将来のリリースで削除される可能性があります。final Class<?> getClass()このObjectの実行時クラスを返します。inthashCode()このオブジェクトに対するハッシュ・コード値を返します。final voidnotify()このオブジェクトのモニターで待機中のスレッドを1つ再開します。final voidこのオブジェクトのモニターで待機中のすべてのスレッドを再開します。toString()オブジェクトの文字列表現を返します。final voidwait()現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。final voidwait(long timeoutMillis) 現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。final voidwait(long timeoutMillis, int nanos) 現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
-
コンストラクタの詳細
-
ZoneView
public ZoneView(Element elem, int axis) ZoneViewを構築します。- パラメータ:
elem- このビューが扱う要素axis- View.X_AXISまたはView.Y_AXIS
-
-
メソッドの詳細
-
getMaximumZoneSize
public int getMaximumZoneSize()現在のゾーン・サイズの最大値を取得します。- 戻り値:
- 現在の最大ゾーン・サイズ
-
setMaximumZoneSize
public void setMaximumZoneSize(int size) 望ましい最大ゾーン・サイズを設定します。 ゾーンは子ビューの境界に生成されるため、一つの子ビューがこのサイズより大きい場合は、ゾーンはこのサイズより大きくなる場合があります。- パラメータ:
size- ゾーンを小さく分割する前の、ゾーンが表す文字数。
-
getMaxZonesLoaded
public int getMaxZonesLoaded()同時にロードできるゾーン数の現在の設定を取得します。- 戻り値:
- 同時にロード可能なゾーン数の現在の設定
-
setMaxZonesLoaded
public void setMaxZonesLoaded(int mzl) 同時にロードできるゾーン数の現在の設定を設定します。mzlが1より小さい場合はIllegalArgumentExceptionがスローされます。- パラメータ:
mzl- アクティブにロードされる望ましい最大ゾーン数。0より大きい値にする必要がある- スロー:
IllegalArgumentException-mzlが1より小さい場合
-
zoneWasLoaded
protected void zoneWasLoaded(View zone) ロードされるとゾーンにより呼び出されます。 これは、アンロード状態にあったゾーンで表示またはモデルの変換、ビューの変換を試みたときに起こります。 これはゾーンが最大数に達したかどうかを判定するために実装されます。最大数に達している場合は、一番古いゾーンをアンロードします。- パラメータ:
zone- ロードされたばかりの子ビュー。
-
unloadZone
protected void unloadZone(View zone) ゾーンを省メモリー状態に変換して、ゾーンをアンロードします。 ゾーンはこのビューが扱う要素の子要素のサブセットを表します。 したがって、デフォルトの実装は単にすべての子を削除します。- パラメータ:
zone- アンロード状態に設定するのが望ましい子ビュー。
-
isZoneLoaded
protected boolean isZoneLoaded(View zone) ゾーンがロード状態にあるかどうかを判定します。 ゾーンはこのビューが扱う要素の子要素のサブセットを表します。 したがって、デフォルトの実装では、ビューに子がある場合はtrueを返します。paramは子ビューをゾーン化します- パラメータ:
zone- ゾーン- 戻り値:
- ゾーンがロード済み状態であるかどうか。
-
createZone
protected View createZone(int p0, int p1) このオブジェクトが扱う範囲内にあるモデル内の指定範囲内のゾーンを表すビューを生成します。 このメソッドはゾーン管理ロジックが新しいゾーンを生成することで呼び出されます。 サブクラスはこのメソッドを変更して異なったゾーン実装を提供できます。- パラメータ:
p0- 望ましいゾーンの開始値。 値はgetStartOffset()以上でgetEndOffset()未満であるべきです。 またp1未満でもあるべきです。p1- 望ましいゾーンの終了値。 値はgetStartOffset()よりも大きくgetEndOffset()以下であるべきです。 またp0よりも大きい。- 戻り値:
- モデル内の指定された範囲のゾーンを表すビュー
-
loadChildren
protected void loadChildren(ViewFactory f) ビューを初期化するためにすべての子をロードします。 これは、setParentメソッドによって呼び出されます。 このメソッドを再実装すると、どの子も(ゾーンによって生成されるので)直接ロードしないようにできます。 このメソッドはゾーンの初期設定を生成します。 ただし、実際にはゾーンの表示またはモデル座標、ビュー座標の変換の試みをするまでゾーンは設定されません。- オーバーライド:
loadChildren、クラスCompositeView- パラメータ:
f- ビュー・ファクトリ- 関連項目:
-
getViewIndexAtPosition
protected int getViewIndexAtPosition(int pos) モデル内の指定された位置を表す子ビューのインデックスを返します。- オーバーライド:
getViewIndexAtPosition、クラスCompositeView- パラメータ:
pos- 位置>= 0- 戻り値:
- 指定された位置を表すビューのインデックス。その位置を表すビューがない場合は -1
-
updateChildren
protected boolean updateChildren(DocumentEvent.ElementChange ec, DocumentEvent e, ViewFactory f) スーパー・クラスの動作により、子ビューの更新が試みられます。ただし、子はゾーンであり、関連する要素の変更の影響を直接受けないため、この動作は適切ではありません。 これを再実装しても何も行われず、falseを返します。- オーバーライド:
updateChildren、クラスView- パラメータ:
ec- このビューが扱う要素への変更情報。 このメソッドが呼び出される場合はnullにはならないe- 関連するドキュメントからの変更情報f- 子ビューの構築に使用するファクトリ- 戻り値:
- このビューが扱う要素の子要素を、子ビューが表すかどうか。 一部のビューでは扱う要素の一部を表す子を作成し、falseが返される。 この情報は、追加された要素の範囲のビューが転送されるかどうかを指定するのに使用される
- 関連項目:
-
insertUpdate
public void insertUpdate(DocumentEvent changes, Shape a, ViewFactory f) このビューが扱う位置でドキュメントに何かが挿入されたことを通知します。 これはスーパー・クラスに委譲されていますが、再実装して関連ゾーンを更新します。つまり、ゾーンを2つ以上のゾーン・セットに分割する必要があるかどうかを判定します。- オーバーライド:
insertUpdate、クラスView- パラメータ:
changes- 関連するドキュメントからの変更情報a- ビューの現在の割当てf- ビューが子を持つ場合に再構築に使用するファクトリ- 関連項目:
-
removeUpdate
public void removeUpdate(DocumentEvent changes, Shape a, ViewFactory f) このビューが扱うドキュメント内の位置から何かが削除されたということを通知します。 これはスーパー・クラスに委譲されていますが、再実装して関連ゾーンを更新します。つまり、ゾーンを削除するか、または別のゾーンに結合する必要があるかどうかを判定します。- オーバーライド:
removeUpdate、クラスView- パラメータ:
changes- 関連するドキュメントからの変更情報a- ビューの現在の割当てf- ビューが子を持つ場合に再構築に使用するファクトリ- 関連項目:
-