public interface UndoableEdit
UndoableEdit представляет редактирование. Редактирование может быть отменено, или если уже отменено редактирование может быть сделано заново.
UndoableEdit разрабатывается, чтобы использоваться с UndoManager. Как UndoableEdits сгенерированы 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 - редактирование, которое заменяет текущее редактированиеanEditboolean isSignificant()
UndoManager отменит, или восстановление, все незначащие редактирования к следующему существенному редактированию.String getPresentationName()
String getUndoPresentationName()
getPresentationName.String getRedoPresentationName()
getPresentationName.
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92