|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object javax.swing.text.View javax.swing.text.AsyncBoxView
public class 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, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, 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 boolean |
getEstimatedMajorSpan()
現在、主なスパンが評価されているかどうかを示します。 |
protected float |
getInsetSpan(int axis)
インセットで取り上げられた軸に沿ったスパンを取り出します。 |
protected LayoutQueue |
getLayoutQueue()
レイアウトに使用するキューを取り出します。 |
float |
getLeftInset()
ビュー周囲の左部マージンを返します。 |
int |
getMajorAxis()
主軸 (子のタイリングの基準にする軸) を取り出します。 |
float |
getMaximumSpan(int axis)
このビューの最大スパンを軸に沿って指定します。 |
float |
getMinimumSpan(int axis)
このビューの最小スパンを軸に沿って指定します。 |
int |
getMinorAxis()
副軸 (タイリングされた軸に直角の軸) を取り出します。 |
int |
getNextVisualPositionFrom(int pos,
Position.Bias b,
Shape a,
int direction,
Position.Bias[] biasRet)
キャレットが配置される可能性のある、視覚的に表された次のモデル位置を決定する手段を提供します。 |
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)
ビュー周囲の下部マージンを設定します。 |
protected void |
setEstimatedMajorSpan(boolean isEstimated)
主なスパンを評価中として処理するかどうかを決定する、estimatedMajorSpan プロパティを設定します。 |
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, getParent, getResizeWeight, getStartOffset, getToolTipText, getViewFactory, getViewIndex, 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 float getInsetSpan(int axis)
axis
- 合計インセットを決定する軸。X_AXIS または Y_AXIS のどちらかprotected void setEstimatedMajorSpan(boolean isEstimated)
protected boolean getEstimatedMajorSpan()
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
- 位置 >= 0
protected void updateLayout(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a)
View
内の updateLayout
ec
- このビューが扱う要素への変更。変更がない場合は null の可能性があるe
- 関連するドキュメントからの変更情報a
- ビューの現在の割り当て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)
主軸は非同期に更新され、タイリングされた子の合計でなければならないため、主軸に対する呼び出しは無視されます。主軸に柔軟性があるため、小スパンが変更されると処理がキューに入り、子のサイズが変更されます。
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_AXIS
IllegalArgumentException
- 軸のタイプが無効な場合View.getPreferredSpan(int)
public float getMinimumSpan(int axis)
View
内の getMinimumSpan
axis
- View.X_AXIS または View.Y_AXIS
IllegalArgumentException
- 軸のタイプが無効な場合View.getPreferredSpan(int)
public float getMaximumSpan(int axis)
View
内の getMaximumSpan
axis
- View.X_AXIS または View.Y_AXIS
IllegalArgumentException
- 軸のタイプが無効な場合View.getPreferredSpan(int)
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
- 位置 >= 0
public 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
- 描画のために割り当てられた領域
public int getNextVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet) throws BadLocationException
View
内の getNextVisualPositionFrom
pos
- 変換対象の位置 >= 0a
- 描画のために割り当てられた領域direction
- 現在位置からの方向。これは、キーボードに通常存在する矢印キーと見なすことができ、SwingConstants.WEST
、SwingConstants.EAST
、SwingConstants.NORTH
、SwingConstants.SOUTH
のどれかになるbiasRet
- チェックされたバイアスを含む配列
BadLocationException
- @exception IllegalArgumentException direction
が無効な場合
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。