|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--javax.swing.text.View | +--javax.swing.text.AsyncBoxView
非同期にレイアウトを行うボックスです。GUI イベントスレッドにレイアウトを行わないで GUI イベントスレッドを移動させ続けるのに役立ちます。レイアウトは子ビューの操作で詳細に行われます。各子ビューがレイアウトの一部にアクセスされたあと (操作に時間がかかる場合がある)、残りのタスクを放棄することも、新しい優先度の高いタスク (つまり同期の要求または可視領域にサービスすること) を行うこともできます。
子ビューにアクセスしている間に、関連するドキュメントで読み込みロックが取得され、アクセス中モデルを安定させます。
内部クラスの概要 | |
class |
AsyncBoxView.ChildLocator
局部の周辺で変更が行われているときに、局部での子ビューの効果的な位置を管理するクラスです。 |
class |
AsyncBoxView.ChildState
子ビューのレイアウト状態を表すレコードです。 |
フィールドの概要 | |
protected AsyncBoxView.ChildLocator |
locator
子のオフセットを管理するオブジェクトです。 |
クラス javax.swing.text.View から継承したフィールド |
BadBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, GoodBreakWeight, X_AXIS, Y_AXIS |
インタフェース javax.swing.SwingConstants から継承したフィールド |
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NORTH, NORTH_EAST, NORTH_WEST, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST |
コンストラクタの概要 | |
AsyncBoxView(Element elem,
int axis)
非同期レイアウトを行うボックスビューを構築します。 |
メソッドの概要 | |
protected AsyncBoxView.ChildState |
createChildState(View v)
サブクラスが ChildState レコードを拡張してより多くのことを行なったり保持したりできるように、新しい ChildState レコードがこのメソッドによって作成されます。 |
protected void |
flushRequirementChanges()
設定の変更を上方の親ビューへ通知します。 |
float |
getBottomInset()
ビュー周囲の下部マージンを返します。 |
Shape |
getChildAllocation(int index,
Shape a)
指定された子ビューの割り当てを取り出します。 |
protected AsyncBoxView.ChildState |
getChildState(int index)
指定されたインデックスの子のレイアウト状態を表すオブジェクトを取り出します。 |
protected LayoutQueue |
getLayoutQueue()
レイアウトに使用するキューを取り出します。 |
float |
getLeftInset()
ビュー周囲の左部マージンを返します。 |
int |
getMajorAxis()
主軸 (子のタイリングの基準にする軸) を取り出します。 |
float |
getMaximumSpan(int axis)
このビューの最大スパンを軸に沿って指定します。 |
float |
getMinimumSpan(int axis)
このビューの最小スパンを軸に沿って指定します。 |
int |
getMinorAxis()
副軸 (タイリングされた軸に直角の軸) を取り出します。 |
float |
getPreferredSpan(int axis)
このビューに適切なスパンを軸に沿って指定します。 |
float |
getRightInset()
ビュー周囲の右部マージンを返します。 |
float |
getTopInset()
ビュー周囲の上部マージンを返します。 |
View |
getView(int n)
n 番目の子ビューを返します。 |
int |
getViewCount()
このビュー内のビューの数を返します。 |
int |
getViewIndex(int pos,
Position.Bias b)
モデル内の指定された位置を示す子ビューインデックスを返します。 |
protected int |
getViewIndexAtPosition(int pos,
Position.Bias b)
モデル内の指定された位置を表す、子ビューのインデックスを取り出します。 |
protected void |
loadChildren(ViewFactory f)
ビューを初期化するためにすべての子をロードします。 |
protected void |
majorRequirementChange(AsyncBoxView.ChildState cs,
float delta)
主軸に沿って変更された要件です。 |
protected void |
minorRequirementChange(AsyncBoxView.ChildState cs)
副軸に沿って変更された要件です。 |
Shape |
modelToView(int pos,
Shape a,
Position.Bias b)
ドキュメントモデルの座標空間からビューの座標空間へのマッピングを提供します。 |
void |
paint(Graphics g,
Shape alloc)
指定された割り当ておよび描画表面を使って、ビューを描画します。 |
void |
preferenceChanged(View child,
boolean width,
boolean height)
子ビューは親でこのメソッドを呼び出し、設定が変更され、再度レイアウト変更の必要があることを示すことができます。 |
void |
replace(int offset,
int length,
View[] views)
子ビューを更新するためにスーパークラスを呼び出し、子のステータスレコードを更新します。 |
void |
setBottomInset(float i)
ビュー周囲の下部マージンを設定します。 |
void |
setLeftInset(float i)
ビュー周囲の左部マージンを設定します。 |
void |
setParent(View parent)
ビューの親を設定します。 |
void |
setRightInset(float i)
ビュー周囲の右部マージンを設定します。 |
void |
setSize(float width,
float height)
ビューのサイズを設定します。 |
void |
setTopInset(float i)
ビュー周囲の上部マージンを設定します。 |
protected void |
updateLayout(DocumentEvent.ElementChange ec,
DocumentEvent e,
Shape a)
モデルから変更の通知を受け取った場合に、レイアウトを更新します。 |
int |
viewToModel(float x,
float y,
Shape a,
Position.Bias[] biasReturn)
ビューの座標空間からモデルの論理座標空間へのマッピングを提供します。 |
クラス javax.swing.text.View から継承したメソッド |
append, breakView, changedUpdate, createFragment, forwardUpdate, forwardUpdateToView, getAlignment, getAttributes, getBreakWeight, getContainer, getDocument, getElement, getEndOffset, getGraphics, getNextVisualPositionFrom, getParent, getResizeWeight, getStartOffset, getViewFactory, insert, insertUpdate, isVisible, modelToView, modelToView, remove, removeAll, removeUpdate, updateChildren, viewToModel |
クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
protected AsyncBoxView.ChildLocator locator
コンストラクタの詳細 |
public AsyncBoxView(Element elem, int axis)
elem
- 表すモデルの要素axis
- タイリングの基準にする軸。X_AXIS または Y_AXIS のどちらかメソッドの詳細 |
public int getMajorAxis()
public int getMinorAxis()
public float getTopInset()
public void setTopInset(float i)
i
- インセットの値public float getBottomInset()
public void setBottomInset(float i)
i
- インセットの値public float getLeftInset()
public void setLeftInset(float i)
i
- インセットの値public float getRightInset()
public void setRightInset(float i)
i
- インセットの値protected AsyncBoxView.ChildState getChildState(int index)
index
- 子のインデックス。0 以上で getViewCount() より小さい値であることprotected LayoutQueue getLayoutQueue()
protected AsyncBoxView.ChildState createChildState(View v)
protected void majorRequirementChange(AsyncBoxView.ChildState cs, float delta)
protected void minorRequirementChange(AsyncBoxView.ChildState cs)
protected void flushRequirementChanges()
public void replace(int offset, int length, View[] views)
View
内の replace
offset
- 子ビューへの開始オフセット >= 0length
- 置き換える既存のビューの数 >= 0views
- 挿入する子ビューprotected void loadChildren(ViewFactory f)
通常書き込みロックは子が変更される間 Document で保持され、描画スレッドとレイアウトスレッドを安全に保ちます。これに対する例外は、既存の要素を表すようこのメソッドによってビューが初期化されるときで、初期化中は preferenceChanged を除外するよう同期化されます。
f
- ビューファクトリsetParent(javax.swing.text.View)
protected int getViewIndexAtPosition(int pos, Position.Bias b)
pos
- 位置 >= 0protected void updateLayout(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a)
View
内の updateLayout
ec
- このビューが扱う要素への変更。変更がない場合は null の可能性があるe
- 関連したドキュメントからの変更情報a
- ビューの現在の割り当て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 setParent(View parent)
loadChildren
メソッドの呼び出しとともにスーパークラスの動作を提供するために実装し直されます。子をコンストラクタの中にロードしないようにしてください。これは、親を設定する動作が原因となって、たとえば収容側コンテナを取得するために、子が階層をさかのぼって検索しようとするからです。このビューが子を持つ場合は、ビュー階層内のある位置から別の位置へ移動しているので、loadChildren
メソッドは呼び出されません。View
内の setParent
parent
- ビューの親。ない場合は nullpublic void preferenceChanged(View child, boolean width, boolean height)
View
内の preferenceChanged
child
- 子ビューwidth
- 幅の設定が変更されている場合は trueheight
- 高さの設定が変更されている場合は trueJComponent.revalidate()
public void setSize(float width, float height)
小スパンに変更があったかどうかを確認するために実装されます。ビューは短軸に沿って柔軟なためです。変更があった場合、このメソッドは優先順位の高いタスクをレイアウトスレッドに追加します。レイアウトスレッドは子を整頓するために、すべての ChildState レコードで、子のサイズを変更する必要があり、また優先順位の低い大量のタスクを作成する必要がある、というマークを付けます。
このメソッドは通常 GUI イベントスレッドによって呼び出されます。GUI イベントスレッドの処理速度は、できることなら低下させたくないものです。各レコードにマークをするという時間のかかる可能性のあるタスクをプッシュすると GUI スレッドは解放されますが、ペイントしようとするビューは開いたままで、ペイントは行われません。ビューはサイズ変更とマークされ、すべての子にマークが付けられると、ResizeTask はフラグ設定をオフにします。
View
内の setSize
width
- 幅 >= 0height
- 高さ >= 0public void paint(Graphics g, Shape alloc)
描画の対象範囲、つまりクリップされていない領域が最新のものかどうかを判定するために実装されます。最新のものであれば子が描画されます。最新のものでない場合、対象領域を作成するタスクが優先順位の高いタスクとしてレイアウトのキューに置かれます。このメソッドはイベントスレッドごとに、準備ができていれば描画により移動し続け、準備ができていない場合は延期します。ペイント要求はスケジュール変更可能です
View
内の paint
g
- 使用する描画表面alloc
- 描画のために割り当てられた領域View.paint(java.awt.Graphics, java.awt.Shape)
public float getPreferredSpan(int axis)
View
内の getPreferredSpan
axis
- View.X_AXIS または View.Y_AXISIllegalArgumentException
- 軸が無効な型public float getMinimumSpan(int axis)
View
内の getMinimumSpan
axis
- View.X_AXIS または View.Y_AXISIllegalArgumentException
- 軸が無効な型public float getMaximumSpan(int axis)
View
内の getMaximumSpan
axis
- View.X_AXIS または View.Y_AXISIllegalArgumentException
- 軸が無効な型public int getViewCount()
View
内の getViewCount
View.getViewCount()
public View getView(int n)
View
内の getView
n
- 取得するビューの番号 >= 0 && < getViewCount()public Shape getChildAllocation(int index, Shape a)
View
内の getChildAllocation
index
- 子のインデックス >= 0 && < getViewCount()a
- このビューに対する割り当てpublic int getViewIndex(int pos, Position.Bias b)
View
内の getViewIndex
pos
- 位置 >= 0public Shape modelToView(int pos, Shape a, Position.Bias b) throws BadLocationException
View
内の modelToView
pos
- 変換対象の位置 >= 0a
- 描画のために割り当てられた領域b
- 位置が 2 つのビューの境界である場合のための、オフセットによって表される前の文字または次の文字へのバイアスBadLocationException
- 指定された位置が、関連するドキュメント内の有効な位置を表さない場合IllegalArgumentException
- bias 引数が無効な場合View.viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])
public int viewToModel(float x, float y, Shape a, Position.Bias[] biasReturn)
このメソッドは GUI スレッドによって呼び出され、関連するモデルで読み込みロックを保持します。子ビューを配置して ChildLocator オブジェクトのロックを使ってその子ビューの割り当てを決定し、レイアウトスレッドとの相互作用を避けるために ChildState オブジェクトのロックを使って子ビューの viewToModel を呼び出すために実装されます。
View
内の viewToModel
x
- X 座標 >= 0y
- Y 座標 >= 0a
- 描画のために割り当てられた領域
|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.