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

クラスCompositeView

java.lang.Object
javax.swing.text.View
javax.swing.text.CompositeView
すべての実装されたインタフェース:
SwingConstants
直系の既知のサブクラス:
BoxView

public abstract class CompositeView extends View
CompositeViewは、1つ以上の子ビューを管理するabstractクラスのViewの実装です。 CompositeViewは、比較的少数の子ビューを管理することを想定しています。 CompositeViewは、BoxViewなど、子のViewを含む、Viewの実装の開始ポイントとして使用されます。 子のViewのコレクションを管理するサブクラスでは、replace(int, int, javax.swing.text.View[])メソッドが使用されます。 DocumentListener通知中にViewreplaceを呼び出すので、通常replaceを直接呼び出す必要はありません。

CompositeViewは、子のViewにレイアウト・ポリシーを強制しませんが、これから含むことになる子のViewの挿入は許可します。 インセットは、setInsets(short, short, short, short)またはsetParagraphInsets(javax.swing.text.AttributeSet)によって設定できます。

Viewの抽象メソッドに加え、CompositeViewのサブクラスもオーバーライドする必要があります。

  • コンストラクタの詳細

    • CompositeView

      public CompositeView(Element elem)
      指定された要素のCompositeViewを構築します。
      パラメータ:
      elem - このビューが扱う要素
  • メソッドの詳細

    • loadChildren

      protected void loadChildren(ViewFactory f)
      ビューを初期化するためにすべての子をロードします。 これは、setParent(javax.swing.text.View)メソッドによって呼び出されます。 サブクラスは、このメソッドを再実装して別の方法で子ビューを初期化できます。 デフォルトの実装は、子要素ごとに子ビューを作成します。
      パラメータ:
      f - ビュー・ファクトリ
      関連項目:
    • setParent

      public void setParent(View parent)
      ビューの親を設定します。 このビューがまだ子を持たない場合は、loadChildrenメソッドの呼出しとともにスーパークラスの動作を提供するために実装し直されます。 子をコンストラクタの中にロードしないようにしてください。これは、親を設定する動作が原因となって、たとえば収容側Containerを取得するために、子が階層をさかのぼって検索しようとする可能性があるからです。 このビューが子を持つ場合、ビューはビュー階層内のある位置から別の位置へ移動しているので、loadChildrenメソッドは呼び出されません。
      オーバーライド:
      setParent、クラス: View
      パラメータ:
      parent - ビューの親。ない場合はnull
    • getViewCount

      public int getViewCount()
      このビューの子ビューの数を返します。
      オーバーライド:
      getViewCount、クラス: View
      戻り値:
      ビューの数>= 0
      関連項目:
    • getView

      public View getView(int n)
      コンテナ内のn番目のビューを返します。
      オーバーライド:
      getView、クラス: View
      パラメータ:
      n - 目的のビューの番号。0以上でgetViewCount()より小さい値
      戻り値:
      インデックスnのビュー
    • replace

      public void replace(int offset, int length, View[] views)
      子ビューを置換します。 削除するビューがない場合、これは挿入として動作します。 追加するビューがない場合、これは削除として動作します。 削除されるビューの親はnullに設定され、ガベージ・コレクションが行えるようにそれらのビューへの内部参照が削除されます。
      オーバーライド:
      replace、クラス: View
      パラメータ:
      offset - 新規ビューを挿入するための、子ビューの開始インデックス。0以上、getViewCount以下
      length - 削除する既存の子ビューの数。この値は0以上で、(getViewCount() - offset)以下
      views - 追加する子ビュー。追加される子がない場合は、nullも可(削除に便利)
    • getChildAllocation

      public Shape getChildAllocation(int index, Shape a)
      指定された、レンダリングする子ビューへの割り当てを取得します。 さまざまなビューの配置場所を探せます。
      オーバーライド:
      getChildAllocation、クラス: View
      パラメータ:
      index - 子のインデックス。0以上でgetViewCount()より小さい値
      a - このビューに対する割当て
      戻り値:
      子に対する割当て
    • modelToView

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

      public Shape modelToView(int p0, Position.Bias b0, int p1, Position.Bias b1, Shape a) throws BadLocationException
      ドキュメント・モデルの座標空間からビューの座標空間へのマッピングを提供します。
      オーバーライド:
      modelToView、クラス: View
      パラメータ:
      p0 - 変換対象の位置>= 0
      b0 - 位置が2つのビューの境界である場合に、p0によって表される直前の文字または次の文字へのバイアス。Position.Bias.ForwardまたはPosition.Bias.Backward
      p1 - 変換対象の位置>= 0
      b1 - 位置が2つのビューの境界である場合に、p1によって表される直前の文字または次の文字へのバイアス
      a - 描画するために割り当てられた領域
      戻り値:
      指定された位置のバウンディング・ボックス
      例外:
      BadLocationException - 指定された位置が、関連するドキュメント内の有効な位置を示さない場合
      IllegalArgumentException - bias引数が無効な場合
      関連項目:
    • viewToModel

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

      public int getNextVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet) throws BadLocationException
      キャレットが配置される可能性のある、視覚的に表された次のモデル位置を決定する手段を提供します。 ビューによっては、可視ではないか、モデル内と同じ順序でないか、またはモデル内の一部の位置へのアクセスを許可しない場合があります。 これはgetNextNorthSouthVisualPositionFrom(int, javax.swing.text.Position.Bias, java.awt.Shape, int, javax.swing.text.Position.Bias[])およびgetNextEastWestVisualPositionFrom(int, javax.swing.text.Position.Bias, java.awt.Shape, int, javax.swing.text.Position.Bias[])の簡易メソッドです。 このメソッドを使用すると、0以上の範囲内で変換する位置を指定できます。 値が-1の場合は、位置が自動的に計算されます。 値が-1よりも小さい場合は、BadLocationExceptionがスローされます。
      オーバーライド:
      getNextVisualPositionFrom、クラス: View
      パラメータ:
      pos - 変換対象の位置
      b - Position.Bias.ForwardまたはPosition.Bias.Backwardのバイアス値
      a - 描画するために割り当てられた領域
      direction - 現在位置からの方向。これは、キーボードに通常存在する矢印キーと見なすことができ、次のいずれかになる。
      • SwingConstants.WEST
      • SwingConstants.EAST
      • SwingConstants.NORTH
      • SwingConstants.SOUTH
      biasRet - チェックされたバイアスを含む配列
      戻り値:
      次の可視の位置をもっともよく表すモデル内の位置
      例外:
      BadLocationException - 指定された位置がドキュメント内の有効な位置でない場合
      IllegalArgumentException - directionが無効である場合
    • getViewIndex

      public int getViewIndex(int pos, Position.Bias b)
      モデル内の指定された位置を表す子ビューのインデックスを返します。 下位互換のためのgetViewIndexByPositionメソッドを呼び出すためにこのメソッドを実装しています。
      オーバーライド:
      getViewIndex、クラス: View
      パラメータ:
      pos - 位置>= 0
      b - バイアス
      戻り値:
      指定された位置を表すビューのインデックス。その位置を表すビューがない場合は -1
      導入されたバージョン:
      1.3
    • isBefore

      protected abstract boolean isBefore(int x, int y, Rectangle alloc)
      ある点が、矩形範囲の前にあるかどうかを判定します。
      パラメータ:
      x - X座標>= 0
      y - Y座標>= 0
      alloc - 矩形
      戻り値:
      点が指定された範囲の前にある場合にtrue
    • isAfter

      protected abstract boolean isAfter(int x, int y, Rectangle alloc)
      ある点が、矩形範囲の後ろにあるかどうかを判定します。
      パラメータ:
      x - X座標>= 0
      y - Y座標>= 0
      alloc - 矩形
      戻り値:
      点が指定された範囲の後にある場合にtrue
    • getViewAtPoint

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

      protected abstract void childAllocation(int index, Rectangle a)
      指定された子への割り当てを返します。
      パラメータ:
      index - 子のインデックス。0以上でgetViewCount()より小さい値
      a - 入口でのボックスの内部への割当て。および、出口でのインデックス位置の子ビューの割当て。
    • getViewAtPosition

      protected View getViewAtPosition(int pos, Rectangle a)
      モデル内で指定された位置を表す子ビューを取得します。 このメソッドは、それぞれの子要素に対して子ビューがある場合に、ビューを取り出すために実装されています。
      パラメータ:
      pos - 位置>= 0
      a - 入口でのボックスの内部への割当て。および、出口での位置を含むビューの割当て
      戻り値:
      指定された位置を表すビュー。存在しない場合はnull
    • getViewIndexAtPosition

      protected int getViewIndexAtPosition(int pos)
      モデル内の指定された位置を表す子ビューのインデックスを取得します。 このメソッドは、それぞれの子要素に対して子ビューがある場合に、ビューを取り出すために実装されています。
      パラメータ:
      pos - 位置>= 0
      戻り値:
      指定された位置を表すビューのインデックス。その位置を表すビューがない場合は -1
    • getInsideAllocation

      protected Rectangle getInsideAllocation(Shape a)
      ビューに指定された不変の割当てを、内部割当てを表す可変の割当てに変換します(上、左、下、右のインセットで指定された割当ての境界を削除する場合など)。 子ビューへの割当てを表すために戻り値が変わってしまうことも予想されます。 これを実装すると、Rectangleを多く作成しすぎないようにインスタンス変数を再利用できます。 通常、このメソッドを呼び出すと、childAllocationメソッドに送られます。
      パラメータ:
      a - ビューに指定された割当て
      戻り値:
      マージンがすべて削除されたあとのビュー内部を表す割当て。指定された割当てがnullの場合、戻り値はnull
    • setParagraphInsets

      protected void setParagraphInsets(AttributeSet attr)
      指定された属性から選ばれた段落属性から、インセットを設定します。
      パラメータ:
      attr - 属性
    • setInsets

      protected void setInsets(short top, short left, short bottom, short right)
      ビューのインセットを設定します。
      パラメータ:
      top - 上のインセット>= 0
      left - 左のインセット>= 0
      bottom - 下のインセット>= 0
      right - 右のインセット>= 0
    • getLeftInset

      protected short getLeftInset()
      左のインセットを取得します。
      戻り値:
      インセット>= 0
    • getRightInset

      protected short getRightInset()
      右のインセットを取得します。
      戻り値:
      インセット>= 0
    • getTopInset

      protected short getTopInset()
      上のインセットを取得します。
      戻り値:
      インセット>= 0
    • getBottomInset

      protected short getBottomInset()
      下のインセットを取得します。
      戻り値:
      インセット>= 0
    • getNextNorthSouthVisualPositionFrom

      protected int getNextNorthSouthVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet) throws BadLocationException
      カーソルを置くことのできる、次の視覚的な位置を返します。方向は上(north)または下(south)になります。
      パラメータ:
      pos - 変換対象の位置>= 0
      b - Position.Bias.ForwardまたはPosition.Bias.Backwardのバイアス値
      a - 描画するために割り当てられた領域
      direction - 現在位置からの方向。これは、キーボードに通常存在する矢印キーと見なすことができ、次のいずれかになる。
      • SwingConstants.NORTH
      • SwingConstants.SOUTH
      biasRet - チェックされたバイアスを含む配列
      戻り値:
      次の上または下の位置をもっともよく表すモデル内の位置
      例外:
      BadLocationException - ドキュメント・モデル内の不適切なロケーション
      IllegalArgumentException - directionが無効である場合
      関連項目:
    • getNextEastWestVisualPositionFrom

      protected int getNextEastWestVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet) throws BadLocationException
      カーソルを置くことのできる、次の視覚的な位置を返します。方向は右(east)または左(west)になります。
      パラメータ:
      pos - 変換対象の位置>= 0
      b - Position.Bias.ForwardまたはPosition.Bias.Backwardのバイアス値
      a - 描画するために割り当てられた領域
      direction - 現在位置からの方向。これは、キーボードに通常存在する矢印キーと見なすことができ、次のいずれかになる。
      • SwingConstants.WEST
      • SwingConstants.EAST
      biasRet - チェックされたバイアスを含む配列
      戻り値:
      次の左または右の位置をもっともよく表すモデル内の位置
      例外:
      BadLocationException - ドキュメント・モデル内の不適切なロケーション
      IllegalArgumentException - directionが無効である場合
      関連項目:
    • 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を降順に配置する可能性がある場合、サブクラスはこのメソッドをオーバーライドします。

      パラメータ:
      position - モデルへの位置
      bias - Position.Bias.ForwardまたはPosition.Bias.Backward
      戻り値:
      false