public class AsyncBoxView extends View
子ビューにアクセスしている間に、関連するドキュメントで読取りロックが取得され、アクセス中モデルを安定させます。
修飾子と型 | クラスと説明 |
---|---|
class |
AsyncBoxView.ChildLocator
局部の周辺で変更が行われているときに、局部での子ビューの効果的な位置を管理するクラスです。
|
class |
AsyncBoxView.ChildState
子ビューのレイアウト状態を表すレコードです。
|
修飾子と型 | フィールドと説明 |
---|---|
protected AsyncBoxView.ChildLocator |
locator
子のオフセットを管理するオブジェクトです。
|
BadBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, GoodBreakWeight, X_AXIS, Y_AXIS
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)
ビューの座標空間からモデルの論理座標空間へのマッピングを提供します。
|
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
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)
protected void loadChildren(ViewFactory f)
setParent
メソッドによって呼び出されます。サブクラスは、このメソッドを再実装して別の方法で子ビューを初期化できます。デフォルトの実装は、子要素ごとに子ビューを作成します。
通常書込みロックは子が変更される間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)
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)
public void setParent(View parent)
loadChildren
メソッドの呼出しとともにスーパークラスの動作を提供するために実装し直されます。子をコンストラクタの中にロードしないようにしてください。これは、親を設定する動作が原因となって、たとえば収容側Containerを取得するために、子が階層をさかのぼって検索しようとする可能性があるからです。このビューが子を持つ場合、ビューはビュー階層内のある位置から別の位置へ移動しているので、loadChildren
メソッドは呼び出されません。public void preferenceChanged(View child, boolean width, boolean height)
preferenceChanged
、クラス: View
child
- 子ビューwidth
- 幅の設定が変更されている場合はtrueheight
- 高さの設定が変更されている場合はtrueJComponent.revalidate()
public void setSize(float width, float height)
主軸は非同期に更新され、タイリングされた子の合計でなければならないため、主軸に対する呼出しは無視されます。主軸に柔軟性があるため、小スパンが変更されると処理がキューに入り、子のサイズが変更されます。
public void paint(Graphics g, Shape alloc)
描画の対象範囲、つまりクリップされていない領域が最新のものかどうかを判定するために実装されます。最新のものであれば子が描画されます。最新のものでない場合、対象領域を作成するタスクが優先度の高いタスクとしてレイアウトのキューに置かれます。このメソッドはイベント・スレッドごとに、準備ができていれば描画により移動し続け、準備ができていない場合は延期します(ペイント要求はスケジュール変更可能であるため)。
paint
、クラス: View
g
- 使用する描画表面alloc
- 描画するために割り当てられた領域View.paint(java.awt.Graphics, java.awt.Shape)
public float getPreferredSpan(int axis)
getPreferredSpan
、クラス: View
axis
- View.X_AXISまたはView.Y_AXISIllegalArgumentException
- 軸が無効な型View.getPreferredSpan(int)
public float getMinimumSpan(int axis)
getMinimumSpan
、クラス: View
axis
- View.X_AXISまたはView.Y_AXISIllegalArgumentException
- 軸が無効な型View.getPreferredSpan(int)
public float getMaximumSpan(int axis)
getMaximumSpan
、クラス: View
axis
- View.X_AXISまたはView.Y_AXISIllegalArgumentException
- 軸が無効な型View.getPreferredSpan(int)
public int getViewCount()
getViewCount
、クラス: View
View.getViewCount()
public View getView(int n)
public Shape getChildAllocation(int index, Shape a)
getChildAllocation
、クラス: View
index
- 子のインデックス。0以上でgetViewCount()より小さい値a
- このビューに対する割当て。public int getViewIndex(int pos, Position.Bias b)
getViewIndex
、クラス: View
pos
- 位置>= 0public 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[])
public int viewToModel(float x, float y, Shape a, Position.Bias[] biasReturn)
このメソッドはGUIスレッドによって呼び出され、関連するモデルで読取りロックを保持します。子ビューを配置してChildLocatorオブジェクトのロックを使ってその子ビューの割り当てを決定し、レイアウト・スレッドとの相互作用を避けるためにChildStateオブジェクトのロックを使って子ビューのviewToModelを呼び出すために実装されます。
viewToModel
、クラス: View
x
- X座標>= 0y
- Y座標>= 0a
- 描画するために割り当てられた領域public int getNextVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet) throws BadLocationException
BadLocationException
がスローされます。getNextVisualPositionFrom
、クラス: View
pos
- 変換対象の位置a
- 描画するために割り当てられた領域direction
- 現在位置からの方向。これは、キーボードに通常存在する矢印キーと見なすことができ、次のいずれかになる。
SwingConstants.WEST
SwingConstants.EAST
SwingConstants.NORTH
SwingConstants.SOUTH
biasRet
- チェックされたバイアスを含む配列BadLocationException
- 指定された位置がドキュメント内の有効な位置でない場合IllegalArgumentException
- direction
が無効である場合 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.