public interface UndoableEdit
UndoableEdit
представляет редактирование. Редактирование может быть отменено, или если уже отменено редактирование может быть сделано заново.
UndoableEdit
разрабатывается, чтобы использоваться с UndoManager
. Как UndoableEdit
s сгенерированы UndoableEditListener
они обычно добавляются к UndoManager
. Когда UndoableEdit
добавляется к UndoManager
следующее происходит (принятие end
не был обращен UndoManager
):
UndoManager
содержит редактирования, которые это вызовет addEdit
на текущей передаче редактирования в новом редактировании как параметр. Если addEdit
возвращает true, новое редактирование, как предполагается, было включено в текущее редактирование, и новое редактирование не будет добавлено к списку текущих редактирований. Редактирования могут использовать addEdit
как путь к меньшим редактированиям, которые будут включены в большее редактирование и обработаны как единственное редактирование. addEdit
возвращает false replaceEdit
вызывается на новом редактировании с текущим редактированием, которое передают в как параметр. Это - инверсия addEdit
— если новое редактирование возвращает true от replaceEdit
, новое редактирование заменяет текущее редактирование. UndoManager
использует isSignificant
определить, сколько редактирований должно быть отменено или сделано заново. UndoManager
отменит или восстановит все незначащие редактирования (isSignificant
возвращает false) между текущим редактированием и последним или следующим существенным редактированием. addEdit
и replaceEdit
может использоваться, чтобы обработать многократные редактирования как единственное редактирование, возвращая false от isSignificant
учитывает обработку, может использоваться, чтобы иметь много меньших редактирований, отмененных или сделанных заново сразу. Подобная функциональность может также быть сделана, используя addEdit
метод.Модификатор и Тип | Метод и Описание |
---|---|
boolean |
addEdit(UndoableEdit anEdit)
Добавляет
UndoableEdit к этому UndoableEdit . |
boolean |
canRedo()
Возвращает true, если это редактирование может быть сделано заново.
|
boolean |
canUndo()
Возвращает true, если это редактирование может быть отменено.
|
void |
die()
Сообщает редактированию, что оно больше не должно использоваться.
|
Строка |
getPresentationName()
Возвращает локализованное, удобочитаемое описание этого редактирования, подходящего для использования в журнале изменений, например.
|
Строка |
getRedoPresentationName()
Возвращает локализованное, удобочитаемое описание перевыполнимой формы этого редактирования, подходящего для использования в качестве пункта меню Redo, например.
|
Строка |
getUndoPresentationName()
Возвращает локализованное, удобочитаемое описание невыполнимой формы этого редактирования, подходящего для использования в качестве пункта меню Undo, например.
|
boolean |
isSignificant()
Возвращает true, если это редактирование считают существенным.
|
void |
redo()
Повторно применяет редактирование.
|
boolean |
replaceEdit(UndoableEdit anEdit)
Возвращает true если это
UndoableEdit должен заменить anEdit . |
void |
undo()
Отмените редактирование.
|
void undo() throws CannotUndoException
CannotUndoException
- если это редактирование не может быть отмененоboolean canUndo()
void redo() throws CannotRedoException
CannotRedoException
- если это редактирование не может быть сделано зановоboolean canRedo()
void die()
UndoableEdit
был отмечен как мертвый, это больше не может быть отменено или сделано заново. Это - полезный рычаг для того, чтобы очистить работоспособное состояние, больше необходимое однажды отмена, или восстановление невозможно - например, удаляя ресурсы файла, используемые объектами, которые больше не могут быть восстановлены после удаления. UndoManager
вызовы это прежде, чем это исключит редактирования из очереди.
Отметьте, что это - односторонняя работа. Есть, не "неумирают" метод.
CompoundEdit.die()
boolean addEdit(UndoableEdit anEdit)
UndoableEdit
к этому UndoableEdit
. Этот метод может использоваться, чтобы объединить меньшие редактирования в большее составное редактирование. Например, текстовые редакторы обычно позволяют операциям отмены применяться к словам или предложениям. Текстовый редактор может хотеть генерировать редактирования на каждом ключевом событии, но позволять тем редактированиям быть объединенными в более удобный для пользователя модуль, такой как слово. В этом случае, UndoableEdit
переопределил бы addEdit
возвращать true, когда редактирования могут быть объединены. Возвращаемое значение истины указывает anEdit
был включен в это редактирование. Возвращаемое значение лжи указывает anEdit
возможно, не включается в это редактирование.
Обычно получатель уже находится в очереди a UndoManager
(или другой UndoableEditListener
), и дается шанс соединиться anEdit
вместо того, чтобы позволять этому быть добавленным к очереди поочередно.
Если true возвращается с этого времени anEdit
должен возвратить false от canUndo
и canRedo
, и должен выдать соответствующее исключение на undo
или redo
.
anEdit
- редактирование, которое будет добавленоanEdit
может быть включен в это редактированиеboolean replaceEdit(UndoableEdit anEdit)
UndoableEdit
должен заменить anEdit
. Этот метод используется CompoundEdit
и UndoManager
; это вызывают если anEdit
не мог быть добавлен к текущему редактированию (addEdit
возвращает false). Этот метод обеспечивает путь к редактированию, чтобы заменить существующее редактирование.
Это сообщение является противоположностью addEdit - anEdit, обычно уже ставился в очередь в UndoManager
(или другой UndoableEditListener), и получатель дается шанс взять его место.
Если true возвращается, с этого времени anEdit должен возвратить false от canUndo () и canRedo (), и должен выдать соответствующее исключение на отмене () или восстановление ().
anEdit
- редактирование, которое заменяет текущее редактированиеanEdit
boolean isSignificant()
UndoManager
отменит, или восстановление, все незначащие редактирования к следующему существенному редактированию.String getPresentationName()
String getUndoPresentationName()
getPresentationName
.String getRedoPresentationName()
getPresentationName
.
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92