JavaTM 2
Platform
Std.  Ed.  v1. 4.0

javax.swing.undo
클래스 UndoManager

java.lang.Object 
  |
  +--javax.swing.undo.AbstractUndoableEdit 
        |
        +--javax.swing.undo.CompoundEdit 
              |
              +--javax.swing.undo.UndoManager
모든 구현 인터페이스:
EventListener , Serializable , UndoableEdit , UndoableEditListener

public class UndoManager
extends CompoundEdit
implements UndoableEditListener

UndoableEditListener 로서 사용할 수 있는 CompoundEdit 의 구상 서브 클래스에서, 다양한 소스의 UndoableEditEvents 를 연결해, 그것들을 한 번에 1 kr씩 바탕으로 되돌리거나 재실행하거나 합니다. AbstractUndoableEditCompoundEdit 과는 달리, 이 클래스의 public 메소드는 동기가 취해지므로, 복수의 thread로부터 호출해도 안전합니다. 이 때문에, 바탕으로 되돌릴 수 있는 JavaBeans 세트에 대해서 UndoManager 를 사용하면(자), 정렬화가 용이하게 됩니다.

경고: 이 클래스의 직렬화 된 오브젝트는 향후의 Swing 의 릴리스와는 호환성을 가지지 않습니다. 현재의 직렬화 서포트는 단기간의 운용이나, 같은 버젼의 Swing 를 실행하는 어플리케이션간의 RMI 에 적절하고 있습니다. 1.4 에서는 모든 JavaBeansTM 의 장기 운용 서포트가, java.beans 패키지에 추가되었습니다. XMLEncoder 를 참조해 주세요.


필드의 개요
 
클래스 javax.swing.undo. CompoundEdit 에서 상속받은 필드
edits
 
클래스 javax.swing.undo. AbstractUndoableEdit 에서 상속받은 필드
RedoName , UndoName
 
생성자의 개요
UndoManager ()
           
 
메소드의 개요
 boolean addEdit (UndoableEdit  anEdit)
          진행중의 경우, anEdit 를 indexOfNextAdd 에 삽입해, indexOfNextAdd 이후의 낡은 편집 결과를 삭제합니다.
 boolean canRedo ()
          통상의 시멘틱스를 보호하기 위해서, 오버라이드(override) 됩니다.
 boolean canUndo ()
          통상의 시멘틱스를 보호하기 위해서, 오버라이드(override) 됩니다.
 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 는 무시되어 슈퍼 클래스의 routine가 불려 갑니다.

정의:
인터페이스 UndoableEdit 내의 undo
오버라이드(override):
클래스 CompoundEdit 내의 undo
예외:
CannotUndoException - canUndofalse 를 돌려주는 경우
관련 항목:
CompoundEdit.end()

canUndo

public boolean canUndo()
통상의 시멘틱스를 보호하기 위해서, 오버라이드(override) 됩니다. 즉, 바탕으로 되돌리는 조작이 현재 성공하는 경우는 true, 그렇지 않은 경우는 false 를 돌려줍니다.

정의:
인터페이스 UndoableEdit 내의 canUndo
오버라이드(override):
클래스 CompoundEdit 내의 canUndo
관련 항목:
CompoundEdit.isInProgress()

redo

public void redo()
          throws CannotRedoException 
UndoManagerinProgress 인 경우,indexOfNextAdd 또는 그 이후에 있는 마지막 의미가 있는 UndoableEdit 와 지금까지의 사이에 있는 의미가 없는 편집 결과를 모두 다시 합니다. 거기에 응해 indexOfNextAdd 를 갱신합니다.

inProgress 가 아닌 경우,indexOfNextAdd 는 무시되어 슈퍼 클래스의 routine가 불려 갑니다.

정의:
인터페이스 UndoableEdit 내의 redo
오버라이드(override):
클래스 CompoundEdit 내의 redo
예외:
CannotRedoException - canRedofalse 를 돌려주는 경우
관련 항목:
CompoundEdit.end()

canRedo

public boolean canRedo()
통상의 시멘틱스를 보호하기 위해서, 오버라이드(override) 됩니다. 즉, 재실행의 조작이 현재 성공하는 경우는 true, 그렇지 않은 경우는 false 를 돌려줍니다.

정의:
인터페이스 UndoableEdit 내의 canRedo
오버라이드(override):
클래스 CompoundEdit 내의 canRedo
관련 항목:
CompoundEdit.isInProgress()

addEdit

public boolean addEdit(UndoableEdit  anEdit)
진행중의 경우, anEdit 를 indexOfNextAdd 에 삽입해, indexOfNextAdd 이후의 낡은 편집 결과를 삭제합니다. 삭제되는 각 편 집결과에 대해서 die 메소드가 불려 가 각 편 집결과가 추가되었을 때와 역의 순서로 보내집니다. indexOfNextAdd 를 갱신합니다.

inProgress 가 아닌 경우,CompoundEdit 로서 동작합니다.

정의:
인터페이스 UndoableEdit 내의 addEdit
오버라이드(override):
클래스 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()를 보냅니다.

오버라이드(override):
클래스 CompoundEdit 내의 end
관련 항목:
CompoundEdit.end()

getUndoOrRedoPresentationName

public String  getUndoOrRedoPresentationName()
undo 와 redo 를 바꾸는 커멘드의 적절한 이름을 돌려줍니다. 이러한 커멘드를 사용하는 의미가 있는 것은 limit == 1 으로, 처리가 진행중이 아닌 경우 뿐입니다.


getUndoPresentationName

public String  getUndoPresentationName()
진행중의 경우, undo()가 불려 갔을 때에 바탕으로 되돌려지는 의미가 있는 편집 결과의 getUndoPresentationName 를 돌려줍니다. 의미가 있는 편집 결과가 없는 경우는 AbstractUndoableEdit.undoText 를 디폴트 테이블에서 돌려줍니다.

inProgress 가 아닌 경우, CompoundEdit 로서 동작합니다.

정의:
인터페이스 UndoableEdit 내의 getUndoPresentationName
오버라이드(override):
클래스 CompoundEdit 내의 getUndoPresentationName
반환값:
getPresentationName 가 "" 나오지 않는 경우는 키 AbstractUndoableEdit.undoText 를 사용해 디폴트 테이블에서 취득한 값에, 공백 캐릭터 및 getPresentationName 를 추가한 값. getPresentationName 가 "" 의 경우는 디폴트 값만이 돌려주어진다.
관련 항목:
undo() , CompoundEdit.getUndoPresentationName()

getRedoPresentationName

public String  getRedoPresentationName()
진행중의 경우, redo()가 불려 갔을 때에 다시 하는 의미가 있는 편집 결과의 getRedoPresentationName 를 돌려줍니다. 의미가 있는 편집 결과가 없는 경우는 AbstractUndoableEdit.redoText 를 디폴트 테이블에서 돌려줍니다.

inProgress 가 아닌 경우, CompoundEdit 로서 동작합니다.

정의:
인터페이스 UndoableEdit 내의 getRedoPresentationName
오버라이드(override):
클래스 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()
이 오브젝트의 프로퍼티를 표시 및 식별하는 캐릭터 라인을 돌려줍니다.

오버라이드(override):
클래스 CompoundEdit 내의 toString
반환값:
이 오브젝트의 캐릭터 라인 표현

JavaTM 2
Platform
Std.  Ed.  v1. 4.0

버그의 보고와 기능의 리퀘스트
이외의 API 레퍼런스 및 개발자용 문서에 대해서는 Java 2 SDK SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Java, Java 2 D, 및 JDBC 는 미국 및 그 외의 나라에 있어서의 미국 Sun Microsystems, Inc. 의 상표 혹은 등록상표입니다.
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.