JavaTM Platform
Standard Ed. 6

javax.swing.undo
인터페이스 UndoableEdit

기존의 구현 클래스의 일람:
AbstractDocument.DefaultDocumentEvent , AbstractDocument.ElementEdit , AbstractUndoableEdit , CompoundEdit , DefaultStyledDocument.AttributeUndoableEdit , StateEdit , UndoManager


public interface UndoableEdit

UndoableEdit 는 편집 결과를 나타냅니다. 편집 결과의 취소나, 일단 취소한 편집의 재실행도 가능합니다.

UndoableEditUndoManager 와 함께 사용합니다. UndoableEditUndoableEditListener 에 의해 생성되므로, 일반적으로은 UndoManager 에 추가됩니다. UndoableEditUndoManager 에 추가되면(자), 다음의 처리를 합니다 (UndoManager 상에서 아직 end 가 불려 가지 않은 것과 상정).

  1. 벌써 편집 결과를 포함하고 있는 UndoManager 는, 현재의 편집 결과에 대해서 addEdit 를 호출합니다. 이 때, 새로운 편집 결과를 인수로 지정합니다. addEdit 가 true 를 돌려주는 경우는, 새로운 편집 결과가 벌써 현재의 편집 결과에 짜넣어진 것으로 간주해집니다. 따라서, 이 새로운 편집 결과는, 현재의 편집 결과의 리스트에는 추가되지 않습니다. addEdit 를 사용해 소규모의 편집 결과를 보다 대규모 편집 결과에 짜넣는 것으로, 하나의 편집 결과적으로 취급할 수가 있습니다.
  2. addEdit 의 반환값이 false 인 경우, 새로운 편집 결과에 대해서 replaceEdit 가 불려 갑니다. 이 때, 인수로서 현재의 편집 결과가 건네받습니다. 이것은,addEdit 와 역의 조작이 됩니다. 새로운 편집 결과가 replaceEdit 로부터 true 를 돌려주는 경우, 이 편집 결과로 현재의 편집 결과를 옮겨놓을 수 있습니다.
UndoManager 는,isSignificant 를 이용해, 몇개의 편집 결과를 취소할 수 있는지, 또는 취소한 편집을 재실행할 수 있을까를 결정합니다. UndoManager 는, 작은 편집 결과를 취소하거나 재실행하거나 할 수 있습니다 (isSignificant 가 false 를 돌려주는 경우). 예를 들어 현재의 편집 결과를 취소해 전회의 중대한 결과에 되돌리거나 편집을 재실행해 중대한 편집 결과를 얻을 수 있습니다. 복수의 편집 결과를 단일의 편집 결과적으로 취급하려면 ,addEditreplaceEdit 를 사용합니다. isSignificant 가 false 를 돌려주는 경우는, 많은 작은 편집 결과를 한 번에 취소하거나 재실행하거나 할 수 있습니다. 같은 처리는,addEdit 메소드를 사용해도 실행할 수 있습니다.


메소드의 개요
 boolean addEdit (UndoableEdit  anEdit)
          이 UndoableEditUndoableEdit 를 추가합니다.
 boolean canRedo ()
          이 편집 내용을 재실행할 수 있는 경우는 true 를 돌려줍니다.
 boolean canUndo ()
          이 편집 결과를 취소할 수 있는 경우는 true 를 돌려줍니다.
 void die ()
          편집 결과에, 더 이상 사용할 수 없는 것을 통지합니다.
 String getPresentationName ()
          변경 로그등으로 사용하는데 적합한, 이 편집 결과의 판독 가능한 로컬라이즈 끝난 기술을 돌려줍니다.
 String getRedoPresentationName ()
          [재실행] 메뉴 항목등으로 사용하는데 적합한, 이 편집 결과의 재실행 가능한 형식의 판독 가능한 로컬라이즈 끝난 설명을 돌려줍니다.
 String getUndoPresentationName ()
          [바탕으로 되돌리는] 메뉴 항목등으로 사용하는데 적합한, 이 편집 결과의 취소해 가능한 형식의 판독 가능한 로컬라이즈 끝난 설명을 돌려줍니다.
 boolean isSignificant ()
          이 편집 결과가 중대하다라고 보여지는 경우에 true 를 돌려줍니다.
 void redo ()
          편집 내용을 다시 적용합니다.
 boolean replaceEdit (UndoableEdit  anEdit)
          이 UndoableEditanEdit 를 옮겨놓을 수 있는 경우는, 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)
UndoableEditUndoableEdit 를 추가합니다. 비교적 소규모의 복수의 편집 결과를 합체 해, 보다 대규모 단일의 편집 결과를 얻고 싶은 경우는, 이 메소드를 사용합니다. 예를 들어, 일반적으로, 텍스트 문자 편집기에서는, 말이나 문장에 취소해 조작을 적용할 수가 있습니다. 텍스트 문자 편집기에서는, 키 이벤트의 발생마다 편집 결과를 생성할 수도 있습니다만, 이러한 편집 결과를 합체 해, 사용자에 의해 취급하기 쉬운 단위 (예를 들어 말단위)로 할 수도 있습니다. 이와 같이 복수의 편집 결과의 합체가 가능한 경우는,UndoableEditaddEdit 를 오버라이드(override) 해, true 를 돌려줍니다.

반환값 true 는,anEdit 가 이 편집 결과에 짜넣어진 것을 나타냅니다. 반환값 false 는,anEdit 를 이 편집 결과에 짜넣을 수 없는 것을 나타냅니다.

일반적으로, 리시버는 벌써 UndoManager (또는, 다른 UndoableEditListener)의 큐에 들어가 있어anEdit 를 큐에 차례로 추가하는 것이 아니라, 그것을 수중에 넣을 기회가 주어집니다.

true 가 돌려주어지면(자), 그 이후 anEdit 는,canUndocanRedo 로부터는 false 를 돌려주어,undoredo 에는 적절한 예외를 throw 합니다.

파라미터:
anEdit - 추가되는 편집 결과
반환값:
이 편집 결과에 anEdit 를 짜넣을 수가 있는 경우는 true

replaceEdit

boolean replaceEdit(UndoableEdit  anEdit)
UndoableEditanEdit 를 옮겨놓을 수 있는 경우는, true 를 돌려줍니다. 이 메소드는,CompoundEditUndoManager 에 의해 사용됩니다. anEdit 를 현재의 편집 결과에 추가할 수 없는 경우 (addEdit 가 false 를 돌려주는 경우)에 불려 갑니다.

이 메소드를 이용하면(자), 어느 편집 결과로 기존의 편집 결과를 옮겨놓을 수가 있습니다.

이 메세지는, addEdit 의 반대극에 있습니다. 즉, anEdit 는 일반적으로 UndoManager (또는, 다른 UndoableEditListener)의 큐에 벌써 들어가 있어 리시버는 그것과 옮겨놓을 수 있을 기회가 주어집니다.

true 가 돌려주어지면(자), 그 이후 anEdit 는, canUndo() 및 canRedo()로부터는 false 를 돌려주어, undo()나 redo()에는 적절한 예외를 throw 합니다.

파라미터:
anEdit - 현재의 편집 결과를 옮겨놓는 편집 내용
반환값:
이 편집 내용에 의해 anEdit 를 옮겨놓을 수 있는 경우는 true

isSignificant

boolean isSignificant()
이 편집 결과가 중대하다라고 보여지는 경우에 true 를 돌려줍니다. 중대한 편집 결과는, 일반적으로, 메뉴 항목이나 툴팁로서 사용자의 화면에 표시됩니다. UndoManager 는, 다음의 중대한 편집 결과에 대한 작은 편집 결과 모든 것을 취소해 또는 재실행합니다..

반환값:
이 편집 결과가 중대한 경우는 true

getPresentationName

String  getPresentationName()
변경 로그등으로 사용하는데 적합한, 이 편집 결과의 판독 가능한 로컬라이즈 끝난 기술을 돌려줍니다.

반환값:
이 편집 결과의 설명

getUndoPresentationName

String  getUndoPresentationName()
[바탕으로 되돌리는] 메뉴 항목등으로 사용하는데 적합한, 이 편집 결과의 취소해 가능한 형식의 판독 가능한 로컬라이즈 끝난 설명을 돌려줍니다. 이것은 일반적으로,getPresentationName 로부터 파생합니다.

반환값:
이 편집 결과의 취소해 가능한 형식의 설명

getRedoPresentationName

String  getRedoPresentationName()
[재실행] 메뉴 항목등으로 사용하는데 적합한, 이 편집 결과의 재실행 가능한 형식의 판독 가능한 로컬라이즈 끝난 설명을 돌려줍니다. 이것은 일반적으로,getPresentationName 로부터 파생합니다.

반환값:
이 편집 결과의 재실행 가능한 형식의 설명

JavaTM Platform
Standard Ed. 6

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

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.