- java.lang.Object
-
- javax.swing.text.View
-
- javax.swing.text.AsyncBoxView
-
- すべての実装されたインタフェース:
SwingConstants
public class AsyncBoxView extends View
非同期にレイアウトを行うボックスです。 GUIイベント・スレッドにレイアウトを行わないでGUIイベント・スレッドを移動させ続けるのに役立ちます。 レイアウトは子ビューの操作で詳細に行われます。 各子ビューがレイアウトの一部にアクセスされたあと(操作に時間がかかる場合がある)、残りのタスクを放棄することも、新しい優先度の高いタスク(つまり同期の要求または可視領域にサービスすること)を行うこともできます。子ビューにアクセスしている間に、関連するドキュメントで読取りロックが取得され、アクセス中モデルを安定させます。
- 導入されたバージョン:
- 1.3
-
-
ネストされたクラスのサマリー
ネストされたクラス 修飾子と型 クラス 説明 classAsyncBoxView.ChildLocator局部の周辺で変更が行われているときに、局部での子ビューの効果的な位置を管理するクラスです。classAsyncBoxView.ChildState子ビューのレイアウト状態を表すレコードです。
-
フィールドのサマリー
フィールド 修飾子と型 フィールド 説明 protected AsyncBoxView.ChildLocatorlocator子のオフセットを管理するオブジェクトです。-
クラスjavax.swing.textで宣言されるフィールド。表示
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.ChildStatecreateChildState(View v)サブクラスがChildStateレコードを拡張してより多くのことを行なったり保持したりできるように、新しいChildStateレコードがこのメソッドによって作成されます。protected voidflushRequirementChanges()設定の変更を上方の親ビューへ通知します。floatgetBottomInset()ビュー周囲の下部マージンを取得します。ShapegetChildAllocation(int index, Shape a)指定された子ビューの割り当てを取得します。protected AsyncBoxView.ChildStategetChildState(int index)指定されたインデックスの子のレイアウト状態を表すオブジェクトを取得します。protected booleangetEstimatedMajorSpan()現在、主なスパンが評価されているかどうかを示します。protected floatgetInsetSpan(int axis)インセットで取り上げられた軸に沿ったスパンを取得します。protected LayoutQueuegetLayoutQueue()レイアウトに使用するキューを取得します。floatgetLeftInset()ビュー周囲の左部マージンを取得します。intgetMajorAxis()主軸(子のタイリングの基準にする軸)を取得します。floatgetMaximumSpan(int axis)このビューの最大スパンを軸に沿って指定します。floatgetMinimumSpan(int axis)このビューの最小スパンを軸に沿って指定します。intgetMinorAxis()副軸(タイリングされた軸に直角の軸)を取得します。intgetNextVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet)キャレットが配置される可能性のある、視覚的に表された次のモデル位置を決定する手段を提供します。floatgetPreferredSpan(int axis)このビューに適切なスパンを軸に沿って指定します。floatgetRightInset()ビュー周囲の右部マージンを取得します。floatgetTopInset()ビュー周囲の上部マージンを取得します。ViewgetView(int n)n番目の子ビューを返します。intgetViewCount()このビュー内のビューの数を返します。intgetViewIndex(int pos, Position.Bias b)モデル内の指定された位置を表す子ビューのインデックスを返します。protected intgetViewIndexAtPosition(int pos, Position.Bias b)モデル内の指定された位置を表す子ビューのインデックスを取得します。protected voidloadChildren(ViewFactory f)ビューを初期化するためにすべての子をロードします。protected voidmajorRequirementChange(AsyncBoxView.ChildState cs, float delta)主軸に沿って変更された要件です。protected voidminorRequirementChange(AsyncBoxView.ChildState cs)副軸に沿って変更された要件です。ShapemodelToView(int pos, Shape a, Position.Bias b)ドキュメント・モデルの座標空間からビューの座標空間へのマッピングを提供します。voidpaint(Graphics g, Shape alloc)指定された割当ておよびレンダリング表面を使って、ビューをレンダリングします。voidpreferenceChanged(View child, boolean width, boolean height)子ビューは親でこのメソッドを呼び出し、設定が変更されたこと、および再度レイアウトが考慮されなければならないことを示すことができます。voidreplace(int offset, int length, View[] views)子ビューを更新するためにスーパー・クラスを呼び出し、子のステータス・レコードを更新します。voidsetBottomInset(float i)ビュー周囲の下部マージンを設定します。protected voidsetEstimatedMajorSpan(boolean isEstimated)主なスパンを評価中として処理するかどうかを決定する、estimatedMajorSpanプロパティを設定します。voidsetLeftInset(float i)ビュー周囲の左部マージンを設定します。voidsetParent(View parent)ビューの親を設定します。voidsetRightInset(float i)ビュー周囲の右部マージンを設定します。voidsetSize(float width, float height)ビューのサイズを設定します。voidsetTopInset(float i)ビュー周囲の上部マージンを設定します。protected voidupdateLayout(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a)モデルから変更の通知を受け取った場合に、レイアウトを更新します。intviewToModel(float x, float y, Shape a, Position.Bias[] biasReturn)ビューの座標空間からモデルの論理座標空間へのマッピングを提供します。-
クラスjavax.swing.textで宣言されたメソッド。表示
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
-
-
-
-
フィールドの詳細
-
locator
protected AsyncBoxView.ChildLocator locator
子のオフセットを管理するオブジェクトです。 子の位置の管理のためのロックはすべて、このオブジェクトで行われます。
-
-
コンストラクタの詳細
-
AsyncBoxView
public AsyncBoxView(Element elem, int axis)
非同期レイアウトを行うボックス・ビューを構築します。- パラメータ:
elem- 表すモデルの要素axis- タイリングの基準にする軸。 X_AXISまたはY_AXISのどちらか
-
-
メソッドの詳細
-
getMajorAxis
public int getMajorAxis()
主軸(子のタイリングの基準にする軸)を取得します。 X_AXISまたはY_AXISのどちらかの値を持ちます。- 戻り値:
- 主軸
-
getMinorAxis
public int getMinorAxis()
副軸(タイリングされた軸に直角の軸)を取得します。 X_AXISまたはY_AXISのどちらかの値を持ちます。- 戻り値:
- 副軸
-
getTopInset
public float getTopInset()
ビュー周囲の上部マージンを取得します。- 戻り値:
- ビューの周囲の余白の上部
-
setTopInset
public void setTopInset(float i)
ビュー周囲の上部マージンを設定します。- パラメータ:
i- インセットの値
-
getBottomInset
public float getBottomInset()
ビュー周囲の下部マージンを取得します。- 戻り値:
- ビューの周囲の余白の下部
-
setBottomInset
public void setBottomInset(float i)
ビュー周囲の下部マージンを設定します。- パラメータ:
i- インセットの値
-
getLeftInset
public float getLeftInset()
ビュー周囲の左部マージンを取得します。- 戻り値:
- ビューの周囲の余白の左部分
-
setLeftInset
public void setLeftInset(float i)
ビュー周囲の左部マージンを設定します。- パラメータ:
i- インセットの値
-
getRightInset
public float getRightInset()
ビュー周囲の右部マージンを取得します。- 戻り値:
- ビューの周りの余白の右側部分
-
setRightInset
public void setRightInset(float i)
ビュー周囲の右部マージンを設定します。- パラメータ:
i- インセットの値
-
getInsetSpan
protected float getInsetSpan(int axis)
インセットで取り上げられた軸に沿ったスパンを取得します。- パラメータ:
axis- 合計インセットを決定する軸。X_AXISまたはY_AXISのどちらか。- 戻り値:
- インセットによって取得される軸に沿ったスパン
- 導入されたバージョン:
- 1.4
-
setEstimatedMajorSpan
protected void setEstimatedMajorSpan(boolean isEstimated)
主なスパンを評価中として処理するかどうかを決定する、estimatedMajorSpanプロパティを設定します。 このプロパティがtrueの場合、主軸に沿ったsetSizeの値により主軸に沿った要件が変更され、増分の変更は子がすべて更新されるまで無視されます(この更新により、プロパティが自動的にfalseに設定されます)。 プロパティがfalseの場合、majorSpanの値が正確であるとみなされ、計算時に増分の変更が合計に加えられます。- パラメータ:
isEstimated- estimatedMajorSpanプロパティの新しい値- 導入されたバージョン:
- 1.4
-
getEstimatedMajorSpan
protected boolean getEstimatedMajorSpan()
現在、主なスパンが評価されているかどうかを示します。- 戻り値:
- 現在推定されているメジャー・スパンかどうか
- 導入されたバージョン:
- 1.4
-
getChildState
protected AsyncBoxView.ChildState getChildState(int index)
指定されたインデックスの子のレイアウト状態を表すオブジェクトを取得します。- パラメータ:
index- 子のインデックス。 0以上でgetViewCount()より小さい値であること。- 戻り値:
- 指定された索引の子のレイアウト状態を表すオブジェクト
-
getLayoutQueue
protected LayoutQueue getLayoutQueue()
レイアウトに使用するキューを取得します。- 戻り値:
- レイアウトに使用するキュー
-
createChildState
protected AsyncBoxView.ChildState createChildState(View v)
サブクラスがChildStateレコードを拡張してより多くのことを行なったり保持したりできるように、新しいChildStateレコードがこのメソッドによって作成されます。- パラメータ:
v- ビュー- 戻り値:
- 新しい子の状態
-
majorRequirementChange
protected void majorRequirementChange(AsyncBoxView.ChildState cs, float delta)
主軸に沿って変更された要件です。 指定されたChildStateオブジェクトのレイアウトを行うスレッドが、子ビューの新しい設定を取得し終えたときに呼び出します。 呼び出すのは通常レイアウト・スレッドですが、モデルとビューの変換の実行など、イベント・スレッドが何かをすぐに更新しようとしている場合は、イベント・スレッドのこともあります。この実装では、親ビューに通知する必要のある要件で主軸を考慮するかどうかを将来確認するために、主軸を変更済みとしてマークします。 主軸とともにスパンが評価されない場合、指定されたデルタで更新されて、増分の変更が反映されます。 主なスパンが評価される場合、デルタは無視されます。
- パラメータ:
cs- 子の状態delta- デルタ
-
minorRequirementChange
protected void minorRequirementChange(AsyncBoxView.ChildState cs)
副軸に沿って変更された要件です。 指定されたChildStateオブジェクトのレイアウトを行うスレッドが、子ビューの新しい設定を取得し終えたときに呼び出します。 呼び出すのは通常レイアウト・スレッドですが、モデルとビューの変換の実行など、GUIスレッドが何かをすぐに更新しようとしている場合は、GUIスレッドが呼び出します。- パラメータ:
cs- 子の状態
-
flushRequirementChanges
protected void flushRequirementChanges()
設定の変更を上方の親ビューへ通知します。 通常は、レイアウト・スレッドによって呼び出されます。
-
replace
public void replace(int offset, int length, View[] views)子ビューを更新するためにスーパー・クラスを呼び出し、子のステータス・レコードを更新します。 このオブジェクトは、レイアウト・スレッドとの相互作用が発生しないように、書込みロックがモデルで保持されている間に呼び出されることになっています(つまり、レイアウト・スレッドは処理開始前に読取りロックを取得する)。
-
loadChildren
protected void loadChildren(ViewFactory f)
ビューを初期化するためにすべての子をロードします。 これは、setParentメソッドによって呼び出されます。 サブクラスは、このメソッドを再実装して別の方法で子ビューを初期化できます。 デフォルトの実装は、子要素ごとに子ビューを作成します。通常書込みロックは子が変更される間Documentで保持され、描画スレッドとレイアウト・スレッドを安全に保ちます。 これに対する例外は、既存の要素を表すようこのメソッドによってビューが初期化されるときで、初期化中はpreferenceChangedを除外するよう同期化されます。
- パラメータ:
f- ビュー・ファクトリ- 関連項目:
setParent(javax.swing.text.View)
-
getViewIndexAtPosition
protected int getViewIndexAtPosition(int pos, Position.Bias b)モデル内の指定された位置を表す子ビューのインデックスを取得します。 このメソッドは、それぞれの子要素に対して子ビューがある場合に、ビューを取り出すために実装されています。- パラメータ:
pos- 位置>= 0b- 位置バイアス- 戻り値:
- 指定された位置を表すビューのインデックス。その位置を表すビューがない場合は -1
-
updateLayout
protected void updateLayout(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a)
モデルから変更の通知を受け取った場合に、レイアウトを更新します。 子のオフセットが正しく計算されるように、ChildLocatorの変更を通知するために実装されます。- オーバーライド:
updateLayout、クラスView- パラメータ:
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)
-
setParent
public void setParent(View parent)
ビューの親を設定します。 このビューがまだ子を持たない場合は、loadChildrenメソッドの呼出しとともにスーパークラスの動作を提供するために実装し直されます。 子をコンストラクタの中にロードしないようにしてください。これは、親を設定する動作が原因となって、たとえば収容側Containerを取得するために、子が階層をさかのぼって検索しようとする可能性があるからです。 このビューが子を持つ場合、ビューはビュー階層内のある位置から別の位置へ移動しているので、loadChildrenメソッドは呼び出されません。
-
preferenceChanged
public void preferenceChanged(View child, boolean width, boolean height)
子ビューは親でこのメソッドを呼び出し、設定が変更されたこと、および再度レイアウトが考慮されなければならないことを示すことができます。 このメソッドはレイアウト・スレッドで新しい作業に待機するために実装し直されます。 このメソッドは子を通じて複数のスレッドからメッセージを託されます。- オーバーライド:
preferenceChanged、クラスView- パラメータ:
child- 子ビューwidth- 幅の設定が変更されている場合はtrueheight- 高さの設定が変更されている場合はtrue- 関連項目:
JComponent.revalidate()
-
setSize
public void setSize(float width, float height)ビューのサイズを設定します。 これにより、ビューでレイアウト情報がキャッシュされていると、ビューのレイアウトが行われます。主軸は非同期に更新され、タイリングされた子の合計でなければならないため、主軸に対する呼出しは無視されます。 主軸に柔軟性があるため、小スパンが変更されると処理がキューに入り、子のサイズが変更されます。
-
paint
public void paint(Graphics g, Shape alloc)
指定された割当ておよびレンダリング表面を使って、ビューをレンダリングします。描画の対象範囲、つまりクリップされていない領域が最新のものかどうかを判定するために実装されます。 最新のものであれば子が描画されます。 最新のものでない場合、対象領域を作成するタスクが優先度の高いタスクとしてレイアウトのキューに置かれます。 このメソッドはイベント・スレッドごとに、準備ができていれば描画により移動し続け、準備ができていない場合は延期します(ペイント要求はスケジュール変更可能であるため)。
- 定義:
paint、クラスView- パラメータ:
g- 使用する描画表面alloc- 描画するために割り当てられた領域- 関連項目:
View.paint(java.awt.Graphics, java.awt.Shape)
-
getPreferredSpan
public float getPreferredSpan(int axis)
このビューに適切なスパンを軸に沿って指定します。- 定義:
getPreferredSpan、クラスView- パラメータ:
axis- View.X_AXISまたはView.Y_AXIS- 戻り値:
- ビューの描画先のスパン>= 0。 通常、ビューは返されたスパン内に描画されるよう求められるが、その保証はない。 親はビューのサイズの変更や分割を行う可能性がある。
- 例外:
IllegalArgumentException- 軸が無効な型- 関連項目:
View.getPreferredSpan(int)
-
getMinimumSpan
public float getMinimumSpan(int axis)
このビューの最小スパンを軸に沿って指定します。- オーバーライド:
getMinimumSpan、クラスView- パラメータ:
axis- View.X_AXISまたはView.Y_AXIS- 戻り値:
- ビューの描画先のスパン>= 0。 通常、ビューは返されたスパン内に描画されるよう求められるが、その保証はない。 親はビューのサイズの変更や分割を行う可能性がある。
- 例外:
IllegalArgumentException- 軸が無効な型- 関連項目:
View.getPreferredSpan(int)
-
getMaximumSpan
public float getMaximumSpan(int axis)
このビューの最大スパンを軸に沿って指定します。- オーバーライド:
getMaximumSpan、クラスView- パラメータ:
axis- View.X_AXISまたはView.Y_AXIS- 戻り値:
- ビューの描画先のスパン>= 0。 通常、ビューは返されたスパン内に描画されるよう求められるが、その保証はない。 親はビューのサイズの変更や分割を行う可能性がある。
- 例外:
IllegalArgumentException- 軸が無効な型- 関連項目:
View.getPreferredSpan(int)
-
getViewCount
public int getViewCount()
このビュー内のビューの数を返します。 デフォルトでは複合ビューにならないので、このメソッドは0を返します。- オーバーライド:
getViewCount、クラスView- 戻り値:
- ビューの数>= 0
- 関連項目:
View.getViewCount()
-
getView
public View getView(int n)
n番目の子ビューを返します。 デフォルトでは子がないので、このメソッドはnullを返します。
-
getChildAllocation
public Shape getChildAllocation(int index, Shape a)
指定された子ビューの割り当てを取得します。 このメソッドを使用すると、ビューがそれらの位置を格納していることを仮定することなく、さまざまなビューがどこにあるかを知ることができます。 デフォルトでは子ビューを持たないので、このメソッドはnullを返します。- オーバーライド:
getChildAllocation、クラスView- パラメータ:
index- 子のインデックス。0以上でgetViewCount()より小さい値a- このビューに対する割当て。- 戻り値:
- 子に対する割当て
-
getViewIndex
public int getViewIndex(int pos, Position.Bias b)モデル内の指定された位置を表す子ビューのインデックスを返します。 デフォルトでは、ビューに子がないので、あらゆる位置に対して有効な子インデックスがないことを表すには、-1を返すように実装されています。- オーバーライド:
getViewIndex、クラスView- パラメータ:
pos- 位置>= 0b- バイアス- 戻り値:
- 指定された位置を表すビューのインデックス。その位置を表すビューがない場合は -1
- 導入されたバージョン:
- 1.3
-
modelToView
public Shape modelToView(int pos, Shape a, Position.Bias b) throws BadLocationException
ドキュメント・モデルの座標空間からビューの座標空間へのマッピングを提供します。- 定義:
modelToView、クラスView- パラメータ:
pos- 変換対象の位置>= 0a- 描画するために割り当てられた領域b- 位置が2つのビューの境界である場合に、オフセットによって表される直前の文字または次の文字へのバイアス。- 戻り値:
- 指定された位置のバウンディング・ボックス
- 例外:
BadLocationException- 指定された位置が、関連するドキュメント内の有効な位置を示さない場合IllegalArgumentException- bias引数が無効な場合- 関連項目:
View.viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])
-
viewToModel
public int viewToModel(float x, float y, Shape a, Position.Bias[] biasReturn)ビューの座標空間からモデルの論理座標空間へのマッピングを提供します。 biasReturn引数は、指定された点がモデル内の次の文字と近いのか、あるいはモデル内の前の文字と近いのかを示します。このメソッドはGUIスレッドによって呼び出され、関連するモデルで読取りロックを保持します。 子ビューを配置してChildLocatorオブジェクトのロックを使ってその子ビューの割り当てを決定し、レイアウト・スレッドとの相互作用を避けるためにChildStateオブジェクトのロックを使って子ビューのviewToModelを呼び出すために実装されます。
- 定義:
viewToModel、クラスView- パラメータ:
x- X座標>= 0y- Y座標>= 0a- 描画するために割り当てられた領域biasReturn- 返されるバイアス- 戻り値:
- 指定されたビュー内の点をもっとも適切に表現するモデル内の位置。0以上。 biasReturn引数は、指定された点がモデル内の次の文字と近いのか、あるいはモデル内の前の文字と近いのかを示します。
-
getNextVisualPositionFrom
public int getNextVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet) throws BadLocationExceptionキャレットが配置される可能性のある、視覚的に表された次のモデル位置を決定する手段を提供します。 ビューによっては、可視ではないか、モデル内と同じ順序でないか、またはモデル内の一部の位置へのアクセスを許可しない場合があります。 このメソッドを使用すると、0以上の範囲内で変換する位置を指定できます。 値が-1の場合は、位置が自動的に計算されます。 値が-1よりも小さい場合は、BadLocationExceptionがスローされます。- オーバーライド:
getNextVisualPositionFrom、クラスView- パラメータ:
pos- 変換対象の位置a- 描画するために割り当てられた領域direction- 現在位置からの方向。これは、キーボードに通常存在する矢印キーと見なすことができ、次のいずれかになる。SwingConstants.WESTSwingConstants.EASTSwingConstants.NORTHSwingConstants.SOUTH
biasRet- チェックされたバイアスを含む配列b- バイアス- 戻り値:
- 次の可視の位置をもっともよく表す、モデル内の位置
- 例外:
BadLocationException- 指定された位置がドキュメント内の有効な位置でない場合IllegalArgumentException-directionが無効である場合
-
-