UndoableEdit

UndoableEdit (편집을 표현하는 인터페이스)

UndoableEdit은 편집(edit)을 나타내요. 편집은 undo될 수 있고, 이미 undone된 편집은 redo될 수 있어요. UndoableEditUndoManager와 함께 사용하도록 설계됐어요.

출처: Java API Reference

본문

UndoableEditUndoableEditListener에 의해 생성되면 일반적으로 UndoManager에 추가돼요. UndoableEditUndoManager에 추가될 때 다음이 발생해요(UndoManagerend가 호출되지 않았다고 가정):

UndoManager이 편집을 포함하면 현재 편집에 addEdit을 호출하며 새 편집을 인자로 전달해요. addEdittrue를 반환하면 새 편집이 현재 편집에 통합된 것으로 간주되고 새 편집은 현재 편집 목록에 추가되지 않아요. 편집은 addEdit을 사용해 작은 편집이 큰 편집에 통합되어 단일 편집으로 취급되게 할 수 있어요.

addEditfalse를 반환하면 새 편집에 replaceEdit이 호출되고 현재 편집이 인자로 전달돼요. 이것은 addEdit의 역방향이에요 — 새 편집이 replaceEdit에서 true를 반환하면 새 편집이 현재 편집을 대체해요.

UndoManagerisSignificant를 사용해 몇 개의 편집을 undo하거나 redo할지 결정해요. UndoManager은 현재 편집과 마지막 또는 다음 유의미한 편집 사이의 모든 비유의미 편집(isSignificantfalse 반환)을 undo 또는 redo해요. addEditreplaceEdit을 사용하면 여러 편집을 단일 편집으로 취급할 수 있고, isSignificant에서 false를 반환하면 많은 작은 편집을 한 번에 undo/redo할 수 있게 해요.

알려진 구현 클래스로는 AbstractDocument.DefaultDocumentEvent, AbstractUndoableEdit, CompoundEdit, StateEdit, UndoManager 등이 있어요.

더 알아보기 (Learn more)

Java 공식 API