|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コ ンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object javax.swing.text.GapContent
public class GapContent
emacs が使うものと類似したギャップ付きバッファを使って実装された AbstractDocument.Content インタフェースの実装です。記憶される内容は、どこかにギャップを持つ Unicode 文字列の配列です。ギャップは変更の位置に移動されるので、ほとんどの変更が同じ位置にある場所で、共通の動作を利用できるようになります。ギャップ境界 で生じる変更は一般的に簡単なものなので、配列の内容を直接移動して変更を適用するよりもギャップを移動するほうが手間がかかりません。
また、変更を追跡する位置を管理するのも一般的に簡単です。位置の実装 (マーク) は配列インデックスを格納し、現在のギャップ位置から逐次位置を簡単に計算できます。変更ではギャップの移動時に新旧ギャップ境界間のマークに対する更新 を必要とするだけなので、マークの更新は一般に非常に手軽です。マークはソートされた状態で格納されるので、2 等分探索ですばやく見つけられます。これはマークを追加する手間を増大させる一方で、マークの更新を維持する手間を減らします。
コンストラクタの概要 | |
---|---|
GapContent()
新しい GapContent オブジェクトを作成します。 |
|
GapContent(int initialLength)
指定された初期サイズで新 しい GapContent オブジェクトを生成します。 |
メソッドの概要 | |
---|---|
protected Object |
allocateArray(int len)
項目を格納するための適切 な型の配列を割り当てます。 |
Position |
createPosition(int offset)
コンテンツが変更されたと きに変更を追跡するコンテンツ内の位置を作成します。 |
protected Object |
getArray()
配列にアクセスします。 |
protected int |
getArrayLength()
割り当てられた配列の長さ を返します。 |
void |
getChars(int where,
int len, Segment chars)
コンテンツの一部を取り出 します。 |
protected int |
getGapEnd()
ギャップの最後にアクセスします。 |
protected int |
getGapStart()
ギャップの最初にアクセスします。 |
protected Vector |
getPositionsInRange(Vector v,
int offset, int length)
offset
〜 offset + length の範囲にある位置に対応する UndoPosRef
のインスタンスを含むベクタを返します。 |
String |
getString(int where,
int len)
コンテンツの一部を取り出 します。 |
UndoableEdit |
insertString(int where,
String str)
コンテンツに文字列を挿入 します。 |
int |
length()
コンテンツの長さを返しま す。 |
UndoableEdit |
remove(int where,
int nitems)
コンテンツの一部を削除し ます。 |
protected void |
replace(int position,
int rmSize, Object addItems, int addSize)
記憶領域の任意の論理位置を任意の新しい項目で置換します。 |
protected void |
resetMarksAtZero()
オフセットが 0 のマークをすべてリセットして、インデックスも 0 になるようにします。 |
protected void |
shiftEnd(int newSize)
ギャップを拡大し、これに より、必要なデータを移動して適切なマークを更新します。 |
protected void |
shiftGap(int newGapStart)
ギャップの開始位置を新し い位置に移動します。 |
protected void |
shiftGapEndUp(int newGapEnd)
ギャップの終端を上方に調 節します。 |
protected void |
shiftGapStartDown(int newGapStart)
ギャップの終端を下方に調 節します。 |
protected void |
updateUndoPositions(Vector positions,
int offset, int length)
positions
のすべての UndoPosRef インスタンスの位置をリセットします。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait, wait, wait |
コンストラクタの詳細 |
---|
public GapContent()
public GapContent(int initialLength)
initialLength
- 初期サイズメソッドの詳細 |
---|
protected Object allocateArray(int len)
protected int getArrayLength()
public int length()
AbstractDocument.Content
内の length
AbstractDocument.Content.length()
public UndoableEdit insertString(int where,
String str)
throws BadLocationException
AbstractDocument.Content
内の insertString
where
- 開始位置 >= 0、< length()str
- 挿入する null 以外の文字列
BadLocationException
-
指定された位置が無効な場合AbstractDocument.Content.insertString(int,
java.lang.String)
public UndoableEdit remove(int where,
int nitems)
throws BadLocationException
AbstractDocument.Content
内の remove
where
- 開始位置 >= 0、where + nitems < length()nitems
- 削除対象の文字数 >= 0
BadLocationException
-
指定された位置が無効な場合AbstractDocument.Content.remove(int,
int)
public String getString(int where,
int len)
throws BadLocationException
AbstractDocument.Content
内の getString
where
- 開始位置 >= 0len
- 取り出す長さ >= 0
BadLocationException
-
指定された位置が無効な場合AbstractDocument.Content.getString(int,
int)
public void getChars(int where,
int len,
Segment chars)
throws BadLocationException
AbstractDocument.Content
内の getChars
where
- 開始位置 >= 0。where + len <= length()len
- 検索対象の文字数 >= 0chars
- 文字を返す先の Segment オブジェクト
BadLocationException
-
指定された位置が無効な場合AbstractDocument.Content.getChars(int,
int, javax.swing.text.Segment)
public Position createPosition(int offset)
throws BadLocationException
AbstractDocument.Content
内の createPosition
offset
- 追跡対象のオフセット >= 0
BadLocationException
-
指定された位置が無効な場合protected void shiftEnd(int newSize)
protected void shiftGap(int newGapStart)
protected void resetMarksAtZero()
protected void shiftGapStartDown(int newGapStart)
protected void shiftGapEndUp(int newGapEnd)
protected Vector getPositionsInRange(Vector v,
int offset,
int length)
offset
〜 offset
+ length
の範囲にある位置に対応する UndoPosRef のインスタンスを含むベクタを返します。v
が null
ではない場合、一致する位置がそこに配置されます。結果の位置を持つベクタが返されます。
v
- 使用するベクタ。null の場合は新しいベクタが作成されるoffset
- 開始オフセット >= 0length
- 長さ >= 0
protected void updateUndoPositions(Vector positions,
int offset,
int length)
positions
のすべての UndoPosRef インスタンスの位置をリセットします。
これは内部での使用を目的としていて、一般にはサブクラスを対象にしていません。
positions
- リセット対象の UndoPosRef のインスタンスprotected final Object getArray()
protected final int getGapStart()
protected final int getGapEnd()
protected void replace(int position,
int rmSize,
Object addItems,
int addSize)
position
- 置換を行う位置。元の記憶領域の位置ではなく、モデル化された隣接する領域の位置rmSize
- 削除される項目の数addItems
- 記憶領域に置かれる新しい項目
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コ ンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。