JavaTM 2 Platform
Standard Ed. 5.0

javax.swing.undo
クラス UndoManager

java.lang.Object
  上位を拡張 javax.swing.undo.AbstractUndoableEdit
      上位を拡張 javax.swing.undo.CompoundEdit
          上位を拡張 javax.swing.undo.UndoManager
すべての実装されたインタフェース:
Serializable, EventListener, UndoableEditListener, UndoableEdit

public class UndoManager
extends CompoundEdit
implements UndoableEditListener

UndoableEditListener として使用できる CompoundEdit の具象サブクラスで、さまざまなソースの UndoableEditEvents を連結し、それらを一度に 1 つずつ元に戻したり再実行したりします。 AbstractUndoableEditCompoundEdit とは異なり、このクラスの public メソッドは同期がとられるので、複数のスレッドから呼び出しても安全です。このため、元に戻せる JavaBeans のセットに対して UndoManager を使うと、整列化が容易になります。

警告: このクラスの直列化されたオブジェクトは、今後の Swing リリースと互換ではなくなる予定です。現在の直列化のサポートは、短期間の運用や、同じバージョンの Swing を実行するアプリケーション間の RMI に適しています。JDK バージョン 1.4 以降、すべての JavaBeans の長期間の運用サポートは、java.beans パッケージに追加されています。詳細は、XMLEncoder を参照してください。


フィールドの概要
 
クラス javax.swing.undo.CompoundEdit から継承されたフィールド
edits
 
クラス javax.swing.undo.AbstractUndoableEdit から継承されたフィールド
RedoName, UndoName
 
コンストラクタの概要
UndoManager()
           
 
メソッドの概要
 boolean addEdit(UndoableEdit anEdit)
          進行中の場合、anEdit を indexOfNextAdd に挿入して、indexOfNextAdd 以降の古い編集結果を削除します。
 boolean canRedo()
          通常のセマンティクスを保護するために、オーバーライドされます。
 boolean canUndo()
          通常のセマンティクスを保護するために、オーバーライドされます。
 boolean canUndoOrRedo()
          呼び出し側 undoOrRedo が元に戻すか再実行する場合に true を返します。
 void discardAllEdits()
          undo マネージャを空にして、各編集結果の進行時に die メッセージを送ります。
protected  UndoableEdit editToBeRedone()
          redo が呼び出された場合に、再実行する意味のある次の編集結果を返します。
protected  UndoableEdit editToBeUndone()
          undo が呼び出された場合に、元に戻す意味のある次の編集結果を返します。
 void end()
          end() を UndoManager に送ると、それをプレーンな古い (終了済み) CompoundEdit に変換します。
 int getLimit()
          この UndoManager が保持する編集結果の最大数を返します。
 String getRedoPresentationName()
          進行中の場合、redo() が呼び出されたときにやり直す意味のある編集結果の getRedoPresentationName を返します。
 String getUndoOrRedoPresentationName()
          undo と redo を切り替えるコマンドの適切な名前を返します。
 String getUndoPresentationName()
          進行中の場合、undo() が呼び出されたときに元に戻される意味のある編集結果の getUndoPresentationName を返します。
 void redo()
          この UndoManagerinProgress である場合、indexOfNextAdd またはそれ以降にある最後の意味のある UndoableEdit と、それまでの間にある意味のない編集結果をすべてやり直します。
protected  void redoTo(UndoableEdit edit)
          編集対象の indexOfNextAdd からのすべての変更を再実行します。
 void setLimit(int l)
          この UndoManager が保持する編集結果の最大数を設定します。
 String toString()
          このオブジェクトのプロパティを表示および識別する文字列を返します。
protected  void trimEdits(int from, int to)
          指定範囲 (上下限値を含む) の編集結果で終了するように通知し、それらを編集結果のコレクションから削除します。
protected  void trimForLimit()
          待機状態の編集結果の数を、indexOfNextAdd に絞られた、サイズ限度の範囲にまで減らします。
 void undo()
          この UndoManager が進行中の場合、indexOfNextAdd の前にある最後の意味のある UndoableEdit と、それまでの間にある意味のない編集結果をすべて元に戻します。
 void undoableEditHappened(UndoableEditEvent e)
          この UndoManager が待機する UndoabledEdit ソースによって呼び出されます。
 void undoOrRedo()
          undo または redo のうち、どちらか適切な方を行います。
protected  void undoTo(UndoableEdit edit)
          編集対象の indexOfNextAdd からのすべての変更を元に戻します。
 
クラス javax.swing.undo.CompoundEdit から継承されたメソッド
die, getPresentationName, isInProgress, isSignificant, lastEdit
 
クラス javax.swing.undo.AbstractUndoableEdit から継承されたメソッド
replaceEdit
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

コンストラクタの詳細

UndoManager

public UndoManager()
メソッドの詳細

getLimit

public int getLimit()
この UndoManager が保持する編集結果の最大数を返します。デフォルト値は 100 です。

関連項目:
addEdit(javax.swing.undo.UndoableEdit), setLimit(int)

discardAllEdits

public void discardAllEdits()
undo マネージャを空にして、各編集結果の進行時に die メッセージを送ります。


trimForLimit

protected void trimForLimit()
待機状態の編集結果の数を、indexOfNextAdd に絞られた、サイズ限度の範囲にまで減らします。


trimEdits

protected void trimEdits(int from,
                         int to)
指定範囲 (上下限値を含む) の編集結果で終了するように通知し、それらを編集結果のコレクションから削除します。下限値が上限値より大きい場合は無操作です。


setLimit

public void setLimit(int l)
この UndoManager が保持する編集結果の最大数を設定します。最大数を減らすために、編集結果を破棄する必要がある場合、追加されたときと逆の順序で終了するように通知されます。

関連項目:
addEdit(javax.swing.undo.UndoableEdit), getLimit()

editToBeUndone

protected UndoableEdit editToBeUndone()
undo が呼び出された場合に、元に戻す意味のある次の編集結果を返します。null を返す場合もあります。


editToBeRedone

protected UndoableEdit editToBeRedone()
redo が呼び出された場合に、再実行する意味のある次の編集結果を返します。null を返す場合もあります。


undoTo

protected void undoTo(UndoableEdit edit)
               throws CannotUndoException
編集対象の indexOfNextAdd からのすべての変更を元に戻します。それに応じて indexOfNextAdd を更新します。

例外:
CannotUndoException

redoTo

protected void redoTo(UndoableEdit edit)
               throws CannotRedoException
編集対象の indexOfNextAdd からのすべての変更を再実行します。それに応じて indexOfNextAdd を更新します。

例外:
CannotRedoException

undoOrRedo

public void undoOrRedo()
                throws CannotRedoException,
                       CannotUndoException
undo または redo のうち、どちらか適切な方を行います。こうした 2 つの関数を切り替えるアクションへのバインディングに適しています。これを送る意味があるのは、limit == 1 の場合だけです。

例外:
CannotRedoException
CannotUndoException
関連項目:
canUndoOrRedo(), getUndoOrRedoPresentationName()

canUndoOrRedo

public boolean canUndoOrRedo()
呼び出し側 undoOrRedo が元に戻すか再実行する場合に true を返します。2 つの関数を切り替えるコマンドを有効にする決定を行うのに適しています。これを使う意味があるのは、limit == 1 の場合だけです。

関連項目:
undoOrRedo()

undo

public void undo()
          throws CannotUndoException
この UndoManager が進行中の場合、indexOfNextAdd の前にある最後の意味のある UndoableEdit と、それまでの間にある意味のない編集結果をすべて元に戻します。それに応じて indexOfNextAdd を更新します。

inProgress でない場合、indexOfNextAdd は無視され、スーパークラスのルーチンが呼び出されます。

定義:
インタフェース UndoableEdit 内の undo
オーバーライド:
クラス CompoundEdit 内の undo
例外:
CannotUndoException - canUndofalse を返す場合
関連項目:
CompoundEdit.end()

canUndo

public boolean canUndo()
通常のセマンティクスを保護するために、オーバーライドされます。つまり、元に戻す操作が現在成功する場合は true、そうでない場合は false を返します。

定義:
インタフェース UndoableEdit 内の canUndo
オーバーライド:
クラス CompoundEdit 内の canUndo
戻り値:
この編集結果が alive であり、hasBeenDonetrue の場合、true
関連項目:
CompoundEdit.isInProgress()

redo

public void redo()
          throws CannotRedoException
この UndoManagerinProgress である場合、indexOfNextAdd またはそれ以降にある最後の意味のある UndoableEdit と、それまでの間にある意味のない編集結果をすべてやり直します。それに応じて indexOfNextAdd を更新します。

inProgress でない場合、indexOfNextAdd は無視され、スーパークラスのルーチンが呼び出されます。

定義:
インタフェース UndoableEdit 内の redo
オーバーライド:
クラス CompoundEdit 内の redo
例外:
CannotRedoException - canRedofalse を返す場合
関連項目:
CompoundEdit.end()

canRedo

public boolean canRedo()
通常のセマンティクスを保護するために、オーバーライドされます。つまり、再実行の操作が現在成功する場合は true、そうでない場合は false を返します。

定義:
インタフェース UndoableEdit 内の canRedo
オーバーライド:
クラス CompoundEdit 内の canRedo
戻り値:
この編集結果が alive であり、hasBeenDonefalse の場合、true
関連項目:
CompoundEdit.isInProgress()

addEdit

public boolean addEdit(UndoableEdit anEdit)
進行中の場合、anEdit を indexOfNextAdd に挿入して、indexOfNextAdd 以降の古い編集結果を削除します。削除される各編集結果に対して die メソッドが呼び出され、各編集結果が追加されたときと逆の順序で送られます。indexOfNextAdd を更新します。

inProgress でない場合、CompoundEdit として動作します。

定義:
インタフェース UndoableEdit 内の addEdit
オーバーライド:
クラス CompoundEdit 内の addEdit
パラメータ:
anEdit - 追加される編集結果
戻り値:
編集結果が inProgress の場合は true、そうでない場合は false を返す
関連項目:
CompoundEdit.end(), CompoundEdit.addEdit(javax.swing.undo.UndoableEdit)

end

public void end()
end() を UndoManager に送ると、それをプレーンな古い (終了済み) CompoundEdit に変換します。

スーパークラスの end() メソッドを呼び出して (inProgress を false にして) から、indexOfNextAdd とそれ以降にある到達できない編集結果に、それらを追加したときと逆の順序で die() を送ります。

オーバーライド:
クラス CompoundEdit 内の end
関連項目:
CompoundEdit.end()

getUndoOrRedoPresentationName

public String getUndoOrRedoPresentationName()
undo と redo を切り替えるコマンドの適切な名前を返します。このようなコマンドを使う意味があるのは、limit == 1 で、処理が進行中でない場合だけです。


getUndoPresentationName

public String getUndoPresentationName()
進行中の場合、undo() が呼び出されたときに元に戻される意味のある編集結果の getUndoPresentationName を返します。意味のある編集結果がない場合は、AbstractUndoableEdit.undoText をデフォルトテーブルから返します。

inProgress でない場合、CompoundEdit として動作します。

定義:
インタフェース UndoableEdit 内の getUndoPresentationName
オーバーライド:
クラス CompoundEdit 内の getUndoPresentationName
戻り値:
getPresentationName が "" でない場合は、キー AbstractUndoableEdit.undoText を使用してデフォルトテーブルから取得した値に、空白文字および getPresentationName を追加した値。getPresentationName が "" の場合は、デフォルト値だけが返される。
関連項目:
undo(), CompoundEdit.getUndoPresentationName()

getRedoPresentationName

public String getRedoPresentationName()
進行中の場合、redo() が呼び出されたときにやり直す意味のある編集結果の getRedoPresentationName を返します。意味のある編集結果がない場合は、AbstractUndoableEdit.redoText をデフォルトテーブルから返します。

inProgress でない場合、CompoundEdit として動作します。

定義:
インタフェース UndoableEdit 内の getRedoPresentationName
オーバーライド:
クラス CompoundEdit 内の getRedoPresentationName
戻り値:
getPresentationName が "" でない場合は、キー AbstractUndoableEdit.redoText を使用してデフォルトテーブルから取得した値の後ろに空白文字および getPresentationName を追加したもの。getPresentationName が "" の場合は、デフォルト値だけが返される
関連項目:
redo(), CompoundEdit.getUndoPresentationName()

undoableEditHappened

public void undoableEditHappened(UndoableEditEvent e)
この UndoManager が待機する UndoabledEdit ソースによって呼び出されます。e.getEdit() を使って addEdit を呼び出します。

定義:
インタフェース UndoableEditListener 内の undoableEditHappened
関連項目:
addEdit(javax.swing.undo.UndoableEdit)

toString

public String toString()
このオブジェクトのプロパティを表示および識別する文字列を返します。

オーバーライド:
クラス CompoundEdit 内の toString
戻り値:
このオブジェクトの文字列表現

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。