| 
 | JavaTM Platform Standard Ed. 6 | |||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjavax.swing.text.View
javax.swing.text.CompositeView
javax.swing.text.BoxView
javax.swing.text.ZoneView
public class 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)
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 内の loadChildrenf - ビューファクトリCompositeView.setParent(javax.swing.text.View)protected int getViewIndexAtPosition(int pos)
CompositeView 内の getViewIndexAtPositionpos - 位置 >= 0
protected boolean updateChildren(DocumentEvent.ElementChange ec,
                                 DocumentEvent e,
                                 ViewFactory f)
View 内の updateChildrenec - このビューが扱う要素への変更情報。このメソッドが呼び出されない場合は 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 内の insertUpdatechanges - 関連するドキュメントからの変更情報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 内の removeUpdatechanges - 関連するドキュメントからの変更情報a - ビューの現在の割り当てf - ビューが子を持つ場合に再構築に使用するファクトリView.removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)| 
 | JavaTM Platform Standard Ed. 6 | |||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。