モジュール java.desktop
パッケージ javax.swing.text

クラスBoxView

すべての実装されたインタフェース:
SwingConstants
直系の既知のサブクラス:
BlockView, FlowView, TableView, TableView.TableCell, TableView.TableRow, WrappedPlainView, ZoneView

public class BoxView extends CompositeView
ビューは、ビューの子を軸に沿ってタイリングすることで、1つのボックスの形状に配置します。 このボックスは、子の配列をするところでは子の柔軟性も考慮されるという点で、TeXに用意されているボックスと似ています。したがって、行、段落、リスト項目、列、ページなどのコレクションを表示するのに便利な基本単位です。子のタイリングが行われる軸は、主軸とみなされます。 これに直角の軸は、副軸です。

各軸のレイアウトは、layoutMajorAxisメソッドとlayoutMinorAxisメソッドとで別々に処理されます。 サブクラスは、これらのメソッドをもう一度実装することで、レイアウト・アルゴリズムを変更します。 これらのメソッドは、キャッシュされたレイアウト情報があるかどうか、またキャッシュが有効であるかどうかによって、必要に応じて呼び出されます。 通常、軸に沿った指定サイズが変更される場合や、layoutChangedが呼び出されてレイアウトが強制的に変更される場合に、これらのメソッドが呼び出されます。 キャッシュされたレイアウト情報がある場合は、layoutChangedメソッドで無効にされます。 親ビューに通知された要件は、calculateMajorAxisRequirementsメソッドやcalculateMinorAxisRequirementsメソッドで計算されます。 レイアウト・アルゴリズムが変更された場合、これらのメソッドは再度実装される必要があります。

  • コンストラクタの詳細

    • BoxView

      public BoxView(Element elem, int axis)
      BoxViewを構築します。
      パラメータ:
      elem - このビューが扱う要素
      axis - View.X_AXISまたはView.Y_AXIS
  • メソッドの詳細

    • getAxis

      public int getAxis()
      タイル軸のプロパティを取得します。 これは、子ビューがタイリングされる軸です。
      戻り値:
      ボックスの主軸。View.X_AXISまたはView.Y_AXIS
      導入されたバージョン:
      1.3
    • setAxis

      public void setAxis(int axis)
      タイル軸のプロパティを設定します。 これは、子ビューがタイリングされる軸です。
      パラメータ:
      axis - View.X_AXISまたはView.Y_AXIS
      導入されたバージョン:
      1.3
    • layoutChanged

      public void layoutChanged(int axis)
      軸に沿ったレイアウトを無効にします。 レイアウトの子のビューの推奨設定が変更されていると、自動的に無効になります。 推奨設定が変更されていないときに再計算する必要がある場合もあります。 このメソッドを呼び出せば、レイアウトを無効としてマークできます。 一般に描画の場合、レイアウトはsetSizeメソッドが次回このビューに呼び出されたときに更新されます。
      パラメータ:
      axis - View.X_AXISまたはView.Y_AXIS
      導入されたバージョン:
      1.3
    • isLayoutValid

      protected boolean isLayoutValid(int axis)
      指定された軸に沿ってレイアウトが有効かどうかを決定します。
      パラメータ:
      axis - View.X_AXISまたはView.Y_AXIS
      戻り値:
      指定された軸に沿ってレイアウトが有効な場合
      導入されたバージョン:
      1.4
    • paintChild

      protected void paintChild(Graphics g, Rectangle alloc, int index)
      子をペイントします。 デフォルトの機能はそれだけですが、サブクラスはこれを使って、子に関連するものを描画できます。
      パラメータ:
      g - グラフィックス・コンテキスト
      alloc - ペイントのために割り当てられた領域
      index - 子のインデックス。0以上でgetViewCount()より小さい値
    • replace

      public void replace(int index, int length, View[] elems)
      レイアウトを無効にして、要求または割当てのキャッシュのサイズを変更します。 子の割当ては、まだ以前のレイアウトにアクセスできますが、新しい子の座標とスパンは0になります。
      オーバーライド:
      replace、クラスCompositeView
      パラメータ:
      index - 新規ビューを挿入するための、子ビューの開始インデックス。この値は0以上で、getViewCount以下
      length - 削除する既存の子ビューの数。この値は0以上で、(getViewCount() - offset)以下
      elems - 追加する子ビュー。追加される子がない場合は、nullも可(削除に便利)
    • forwardUpdate

      protected void forwardUpdate(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a, ViewFactory f)
      指定されたDocumentEventを、モデルへの変更について通知する必要のある子ビューに転送します。 先頭の子のボックスの部分をボックスの最後に転送する前に、子がその要件を変更しており、割当てが有効であった場合、再ペイントされます。
      オーバーライド:
      forwardUpdate、クラスView
      パラメータ:
      ec - このビューが扱う要素への変更。変更がなかった場合、nullになる可能性がある
      e - 関連するドキュメントからの変更情報
      a - ビューの現在の割当て
      f - ビューが子を持つ場合に再構築に使用するファクトリ
      導入されたバージョン:
      1.3
      関連項目:
    • preferenceChanged

      public void preferenceChanged(View child, boolean width, boolean height)
      子に呼び出され、そのスパンの設定が変更されたことを示します。 次回に子の割当てが必要なときに新しく計算が実行されるように、キャッシュされたレイアウト情報を捨てるために実装されています。
      オーバーライド:
      preferenceChanged、クラスView
      パラメータ:
      child - 子ビュー
      width - 幅の設定が変更された場合にtrue
      height - 高さの設定が変更された場合にtrue
      関連項目:
    • getResizeWeight

      public int getResizeWeight(int axis)
      サイズ変更のウエイトを取得します。 値が0以下の場合はサイズ変更できません。
      オーバーライド:
      getResizeWeight、クラスView
      パラメータ:
      axis - View.X_AXISまたはView.Y_AXIS
      戻り値:
      ウエイト
      例外:
      IllegalArgumentException - 軸が無効な場合
    • setSize

      public void setSize(float width, float height)
      ビューのサイズを設定します。 これにより、ビューでレイアウト情報がキャッシュされていると、ビューのレイアウトが行われます。 この実装では、インセット内のサイズを使用してレイアウト・メソッドが呼び出されます。
      オーバーライド:
      setSize、クラスView
      パラメータ:
      width - 幅>= 0
      height - 高さ>= 0
    • paint

      public void paint(Graphics g, Shape allocation)
      特定のレンダリング表面とその表面上の領域を使用してBoxViewをレンダリングします。 指定されたGraphicsのクリップ境界を交差する子だけが描画されます。
      定義:
      paint、クラスView
      パラメータ:
      g - 使用する描画表面
      allocation - 描画するために割り当てられた領域
      関連項目:
    • getChildAllocation

      public Shape getChildAllocation(int index, Shape a)
      指定された子ビューの割り当てを取得します。 さまざまなビューの配置場所を探せます。 レイアウトが無効な場合はnullを返すために実装し、そうでない場合はスーパー・クラスが実行されます。
      オーバーライド:
      getChildAllocation、クラスCompositeView
      パラメータ:
      index - 子のインデックス。0以上でgetViewCount()より小さい値
      a - このビューに対する割当て
      戻り値:
      子に対する割当て。anullの場合はnull。レイアウトが無効の場合もnull
    • modelToView

      public Shape modelToView(int pos, Shape a, Position.Bias b) throws BadLocationException
      ドキュメント・モデルの座標空間からビューの座標空間へのマッピングを提供します。 スーパー・クラスを呼び出す前に、割当てが有効であることを確認できます。
      オーバーライド:
      modelToView、クラスCompositeView
      パラメータ:
      pos - 変換対象の位置>= 0
      a - 描画するために割り当てられた領域
      b - Position.Bias.ForwardまたはPosition.Bias.Backwardのバイアス値
      戻り値:
      指定された位置のバウンディング・ボックス
      例外:
      BadLocationException - 指定された位置が、関連するドキュメント内の有効な位置を示さない場合
      関連項目:
    • viewToModel

      public int viewToModel(float x, float y, Shape a, Position.Bias[] bias)
      ビューの座標空間からモデルの論理座標空間へのマッピングを提供します。
      オーバーライド:
      viewToModel、クラスCompositeView
      パラメータ:
      x - 変換するビュー位置のx座標>= 0
      y - 変換するビュー位置のy座標>= 0
      a - 描画するために割り当てられた領域
      bias - Position.Bias.ForwardまたはPosition.Bias.Backward
      戻り値:
      指定されたビュー内の点をもっとも適切に表現するモデル内の位置>= 0
      関連項目:
    • getAlignment

      public float getAlignment(int axis)
      軸に沿ったこのビューの望ましいレイアウトを決定します。 この実装が提供するのは、タイルされた軸と直交する軸に並べられた整列位置に沿って子を配置するために必要な、全体的な整列です。 タイルされた軸は、中央揃え、すなわち0.5fにする必要があります。
      オーバーライド:
      getAlignment、クラスView
      パラメータ:
      axis - View.X_AXISまたはView.Y_AXIS
      戻り値:
      適切な配置。0.0f以上で、1.0f以下。値の範囲は0.0から1.0で、0は起点への配置、1.0は起点から最大に離れた配置を表す。0.5は、ビューの中央への配置になる
      例外:
      IllegalArgumentException - 軸が無効な場合
    • getPreferredSpan

      public float getPreferredSpan(int axis)
      このビューに適切なスパンを軸に沿って指定します。
      定義:
      getPreferredSpan、クラスView
      パラメータ:
      axis - View.X_AXISまたはView.Y_AXIS
      戻り値:
      ビューの描画先のスパン>= 0。通常、ビューは返されたスパン内に描画されるよう求められるが、その保証はない。親はビューのサイズの変更や分割を行う可能性がある
      例外:
      IllegalArgumentException - 軸が無効な型
    • getMinimumSpan

      public float getMinimumSpan(int axis)
      このビューの最小スパンを軸に沿って指定します。
      オーバーライド:
      getMinimumSpan、クラスView
      パラメータ:
      axis - View.X_AXISまたはView.Y_AXIS
      戻り値:
      ビューの描画先のスパン>= 0。通常、ビューは返されたスパン内に描画されるよう求められるが、その保証はない。親はビューのサイズの変更や分割を行う可能性がある
      例外:
      IllegalArgumentException - 軸が無効な型
      関連項目:
    • getMaximumSpan

      public float getMaximumSpan(int axis)
      このビューの最大スパンを軸に沿って指定します。
      オーバーライド:
      getMaximumSpan、クラスView
      パラメータ:
      axis - View.X_AXISまたはView.Y_AXIS
      戻り値:
      ビューの描画先のスパン>= 0。通常、ビューは返されたスパン内に描画されるよう求められるが、その保証はない。親はビューのサイズの変更や分割を行う可能性がある
      例外:
      IllegalArgumentException - 軸が無効な型
      関連項目:
    • isAllocationValid

      protected boolean isAllocationValid()
      子への割当てが現在も有効かどうかを判定します。
      戻り値:
      割当てが現在も有効な場合はtrue
    • isBefore

      protected boolean isBefore(int x, int y, Rectangle innerAlloc)
      ある点が、割り当てられた領域の前にあるかどうかを判定します。
      定義:
      isBefore、クラスCompositeView
      パラメータ:
      x - X座標>= 0
      y - Y座標>= 0
      innerAlloc - 割り当てられた領域。インセットの内側の領域
      戻り値:
      点が領域の前にある場合はtrue、そうでない場合はfalse
    • isAfter

      protected boolean isAfter(int x, int y, Rectangle innerAlloc)
      ある点が、割り当てられた領域のあとにあるかどうかを判定します。
      定義:
      isAfter、クラスCompositeView
      パラメータ:
      x - X座標>= 0
      y - Y座標>= 0
      innerAlloc - 割り当てられた領域。インセットの内側の領域
      戻り値:
      点が領域のあとにある場合はtrue、そうでない場合はfalse
    • getViewAtPoint

      protected View getViewAtPoint(int x, int y, Rectangle alloc)
      指定された座標の子ビューを取得します。
      定義:
      getViewAtPoint、クラスCompositeView
      パラメータ:
      x - X座標>= 0
      y - Y座標>= 0
      alloc - 入口では親の内部割当て。出口で子の割当てに変更
      戻り値:
      ビュー
    • childAllocation

      protected void childAllocation(int index, Rectangle alloc)
      子ビューに領域を割り当てます。
      定義:
      childAllocation、クラスCompositeView
      パラメータ:
      index - 割り当てる子ビューのインデックス。0以上でgetViewCount()より小さい値
      alloc - 割り当てられる領域
    • layout

      protected void layout(int width, int height)
      ボックスのレイアウトを実行します。
      パラメータ:
      width - 幅(インセット内)>= 0
      height - 高さ(インセット内)>= 0
    • getWidth

      public int getWidth()
      ボックスの現在の幅を返します。 ボックスに割り当てられた最新の幅です。
      戻り値:
      ボックスの現在の幅
    • getHeight

      public int getHeight()
      ボックスの現在の高さを返します。 ボックスに割り当てられた最新の高さです。
      戻り値:
      ボックスの現在の高さ
    • layoutMajorAxis

      protected void layoutMajorAxis(int targetSpan, int axis, int[] offsets, int[] spans)
      ボックスの主軸(つまり、それが表す軸)をレイアウトします。 レイアウトの結果(各子のオフセットとスパン)は、主軸に沿った子への割り当てを表す指定された配列に配置されなければいけません。
      パラメータ:
      targetSpan - ビューに指定されたスパンの合計。子をレイアウトするために使用される
      axis - レイアウトされる軸
      offsets - 各子ビューのビューの起点からのオフセット。これは戻り値であり、このメソッドの実装によって割り当てられる
      spans - 各子ビューのスパン。これは戻り値であり、このメソッドの実装によって割り当てられる
    • layoutMinorAxis

      protected void layoutMinorAxis(int targetSpan, int axis, int[] offsets, int[] spans)
      ボックスの副軸(つまり、それが表す軸に直角の軸)をレイアウトします。 レイアウトの結果(各子のオフセットとスパン)は、副軸に沿った子への割り当てを表す指定された配列に配置されなければいけません。
      パラメータ:
      targetSpan - ビューに指定されたスパンの合計。子をレイアウトするために使用される
      axis - レイアウトされる軸
      offsets - 各子ビューのビューの起点からのオフセット。これは戻り値であり、このメソッドの実装によって割り当てられる
      spans - 各子ビューのスパン。これは戻り値であり、このメソッドの実装によって割り当てられる
    • calculateMajorAxisRequirements

      protected SizeRequirements calculateMajorAxisRequirements(int axis, SizeRequirements r)
      主軸axisのサイズ要件を計算します。
      パラメータ:
      axis - 調査中の軸
      r - SizeRequirementsオブジェクト。nullの場合、1つ作成される
      戻り値:
      新しく初期化されたSizeRequirementsオブジェクト
      関連項目:
    • calculateMinorAxisRequirements

      protected SizeRequirements calculateMinorAxisRequirements(int axis, SizeRequirements r)
      副軸axisのサイズ要件を計算します。
      パラメータ:
      axis - 調査中の軸
      r - SizeRequirementsオブジェクト。nullの場合、1つ作成される
      戻り値:
      新しく初期化されたSizeRequirementsオブジェクト
      関連項目:
    • baselineLayout

      protected void baselineLayout(int targetSpan, int axis, int[] offsets, int[] spans)
      使用する領域の幅(または高さ)であるtargetSpanを指定したBoxViewにおける、各子ビューの位置とエクステントを計算します。
      パラメータ:
      targetSpan - ビューに指定されたスパンの合計。子をレイアウトするために使用される
      axis - 調査中の軸。View.X_AXISまたはView.Y_AXIS
      offsets - 空の配列。このメソッドによって各子ビューの位置を指定する値が割り当てられる
      spans - 空の配列。このメソッドによって各子ビューのエクステントを指定する値が割り当てられる
    • baselineRequirements

      protected SizeRequirements baselineRequirements(int axis, SizeRequirements r)
      各子ビューのサイズを調べて、このBoxViewのサイズ要件を計算します。
      パラメータ:
      axis - 調査中の軸
      r - SizeRequirementsオブジェクト。nullの場合、1つ作成される
      戻り値:
      新しく初期化されたSizeRequirementsオブジェクト
    • getOffset

      protected int getOffset(int axis, int childIndex)
      特定の子について、現在のレイアウトのオフセットを取得します。
      パラメータ:
      axis - 調査中の軸
      childIndex - 要求された子のインデックス
      戻り値:
      指定された子のオフセット(位置)
    • getSpan

      protected int getSpan(int axis, int childIndex)
      特定の子について、現在のレイアウトのスパンを取得します。
      パラメータ:
      axis - 調査中の軸
      childIndex - 要求された子のインデックス
      戻り値:
      指定された子のスパン(幅または高さ)
    • flipEastAndWestAtEnds

      protected boolean flipEastAndWestAtEnds(int position, Position.Bias bias)
      次のビューをどの方向に配置するかを決定します。 インデックスnのViewが考慮されます。 通常は、EASTへのViewがインデックスn+1、WESTへのViewがインデックスn -1となるように、Viewは左から右へレイアウトされます。 双方向テキストなど一部の場合では、EASTへのViewをインデックスn+1ではなくインデックスn -1に、またはWESTへのViewをインデックスn - 1ではなくインデックスn+1にすることもできます。 この場合、このメソッドはtrueを返し、Viewが降順にレイアウトされていることを示します。 そうでない場合はfalseを返し、Viewが昇順にレイアウトされていることを示します。

      レシーバがY_AXISに沿ってViewを配置している場合、これはpositionbiasのレンダリングを担当するViewで同じメソッドを呼び出すことから値を返します。 そうでない場合は、falseを返します。

      オーバーライド:
      flipEastAndWestAtEnds、クラスCompositeView
      パラメータ:
      position - モデルへの位置
      bias - Position.Bias.ForwardまたはPosition.Bias.Backward
      戻り値:
      positionbiasの描画を行うViewの周りにあるViewが降順にレイアウトされている場合はtrue。そうでない場合はfalse