- 既知のすべての実装クラス:
AbstractDocument.DefaultDocumentEvent
,AbstractDocument.ElementEdit
,AbstractUndoableEdit
,CompoundEdit
,DefaultStyledDocument.AttributeUndoableEdit
,StateEdit
,UndoManager
public interface UndoableEdit
UndoableEdit
は編集結果を表します。 編集結果の取り消しや、いったん取り消した編集の再実行も可能です。
UndoableEdit
はUndoManager
とともに使用します。 UndoableEdit
はUndoableEditListener
によって生成されるので、通常はUndoManager
に追加されます。 UndoableEdit
がUndoManager
に追加されると、次の処理が行われます(UndoManager
上でまだend
が呼び出されていないものと想定)。
- すでに編集結果を格納している
UndoManager
は、現在の編集結果に対してaddEdit
を呼び出します。このとき、新しい編集結果を引数に指定します。addEdit
がtrueを返す場合は、新しい編集結果がすでに現在の編集結果に組み込まれたものとみなされます。したがって、この新しい編集結果は、現在の編集結果のリストには追加されません。addEdit
を使って小規模な編集結果をより大規模な編集結果に組み込むことにより、1つの編集結果として扱うことができます。 addEdit
の戻り値がfalseである場合、新しい編集結果に対してreplaceEdit
が呼び出されます。このとき、引数として現在の編集結果が渡されます。 これは、addEdit
と逆の操作になります。新しい編集結果がreplaceEdit
からtrueを返す場合、この編集結果で現在の編集結果が置き換えられます。
UndoManager
は、isSignificant
を利用して、何個の編集結果を取り消せるか、または取り消した編集を再実行できるかを決定します。 UndoManager
は、小さな編集結果を取り消したり、再実行したりできます(isSignificant
がfalseを返す場合)。たとえば、現在の編集結果を取り消して前回の重大な結果に戻したり、編集を再実行して重大な編集結果を得ることができます。複数の編集結果を単一の編集結果として扱うには、addEdit
とreplaceEdit
を使用します。isSignificant
がfalseを返す場合は、多くの小さな編集結果を一度に取り消したり、再実行したりできます。 同様の処理は、addEdit
メソッドを使っても実行できます。 -
メソッドのサマリー
修飾子と型 メソッド 説明 boolean
addEdit(UndoableEdit anEdit)
このUndoableEdit
にUndoableEdit
を追加します。boolean
canRedo()
この編集内容を再実行できる場合はtrueを返します。boolean
canUndo()
この編集結果を取り消せる場合はtrueを返します。void
die()
編集結果に、これ以上使用できないことを通知します。String
getPresentationName()
変更ログなどで使用するのに適した、この編集結果の判読可能なローカライズ済みの記述を返します。String
getRedoPresentationName()
「再実行」メニュー項目などで使用するのに適した、この編集結果の再実行可能な形式の判読可能なローカライズ済みの説明を返します。String
getUndoPresentationName()
「元に戻す」メニュー項目などで使用するのに適した、この編集結果の取消し可能な形式の判読可能なローカライズ済みの説明を返します。boolean
isSignificant()
この編集結果が重大であると見なされる場合にtrueを返します。void
redo()
編集内容を適用し直します。boolean
replaceEdit(UndoableEdit anEdit)
このUndoableEdit
でanEdit
が置き換えられる場合は、trueを返します。void
undo()
編集結果を取り消します。
-
メソッドの詳細
-
undo
void undo() throws CannotUndoException編集結果を取り消します。- 例外:
CannotUndoException
- この編集結果を取り消せない場合
-
canUndo
boolean canUndo()この編集結果を取り消せる場合はtrueを返します。- 戻り値:
- この編集結果を取り消せる場合はtrue
-
redo
void redo() throws CannotRedoException編集内容を適用し直します。- 例外:
CannotRedoException
- この編集内容を再実行できない場合
-
canRedo
boolean canRedo()この編集内容を再実行できる場合はtrueを返します。- 戻り値:
- この編集内容を再実行できる場合はtrue
-
die
void die()編集結果に、これ以上使用できないことを通知します。 いったん終了したというマーク付けがされたUndoableEdit
は、取り消すことも再実行することもできません。これは、元に戻す操作や再実行の操作が不可能になり、不要になった状態をクリーンアップするとき、たとえば、削除の取消しができなくなったオブジェクトによって使用されるファイル・リソースを削除する場合に使用するフックです。
UndoManager
は、編集結果の待機を解除する前にこのメソッドを呼び出します。これは一方向の操作です。 undieというメソッドはありません。
- 関連項目:
CompoundEdit.die()
-
addEdit
boolean addEdit(UndoableEdit anEdit)このUndoableEdit
にUndoableEdit
を追加します。 比較的小規模な複数の編集結果を合体して、より大規模な単一の編集結果を得たい場合は、このメソッドを使用します。 たとえば、通常、テキスト・エディタでは、語や文に取消し操作を適用することができます。 テキスト・エディタでは、キー・イベントの発生のたびに編集結果を生成することもできますが、これらの編集結果を合体して、ユーザーにより扱いやすい単位(たとえば語単位)にすることもできます。 このように複数の編集結果の合体が可能な場合は、UndoableEdit
がaddEdit
をオーバーライドし、trueを返します。戻り値trueは、
anEdit
がこの編集結果に組み込まれたことを表します。 戻り値falseは、anEdit
をこの編集結果に組み込めないことを表します。通常、レシーバはすでに
UndoManager
(または、ほかのUndoableEditListener
)のキューに入っており、anEdit
をキューに順番に追加するのではなく、それを取り込む機会を与えられます。trueが返されると、それ以降
anEdit
は、canUndo
およびcanRedo
からはfalseを返し、undo
やredo
には適切な例外をスローします。- パラメータ:
anEdit
- 追加される編集結果- 戻り値:
- この編集結果に
anEdit
を組み込むことができる場合はtrue
-
replaceEdit
boolean replaceEdit(UndoableEdit anEdit)このUndoableEdit
でanEdit
が置き換えられる場合は、trueを返します。 このメソッドは、CompoundEdit
とUndoManager
によって使用されます。anEdit
を現在の編集結果に追加できない場合(addEdit
がfalseを返す場合)に呼び出されます。このメソッドを利用すると、ある編集結果で既存の編集結果を置き換えることができます。
このメッセージは、addEditの対極にあります。つまり、anEditは通常
UndoManager
(または、ほかのUndoableEditListener)のキューにすでに入っており、レシーバはそれと置き換えられる機会を与えられます。trueが返されると、それ以降anEditは、canUndo()およびcanRedo()からはfalseを返し、undo()やredo()には適切な例外をスローします。
- パラメータ:
anEdit
- 現在の編集結果を置き換える編集内容- 戻り値:
- この編集内容により
anEdit
が置き換えられる場合はtrue
-
isSignificant
boolean isSignificant()この編集結果が重大であると見なされる場合にtrueを返します。 重大な編集結果は、通常、メニュー項目やツールヒントとしてユーザーの画面に表示されます。UndoManager
は、次の重大な編集結果に対する小さな編集結果すべてを取り消しまたは再実行します。- 戻り値:
- この編集結果が重大である場合はtrue
-
getPresentationName
String getPresentationName()変更ログなどで使用するのに適した、この編集結果の判読可能なローカライズ済みの記述を返します。- 戻り値:
- この編集結果の説明
-
getUndoPresentationName
String getUndoPresentationName()「元に戻す」メニュー項目などで使用するのに適した、この編集結果の取消し可能な形式の判読可能なローカライズ済みの説明を返します。 これは一般に、getPresentationName
から派生します。- 戻り値:
- この編集結果の取消し可能な形式の説明
-
getRedoPresentationName
String getRedoPresentationName()「再実行」メニュー項目などで使用するのに適した、この編集結果の再実行可能な形式の判読可能なローカライズ済みの説明を返します。 これは一般に、getPresentationName
から派生します。- 戻り値:
- この編集結果の再実行可能な形式の説明
-