Spec-Zone.ru › OpenJDK 8

Интерфейс UndoableEdit

Все известные реализующие классы:
AbstractDocument.DefaultDocumentEvent, AbstractDocument.ElementEdit, AbstractUndoableEdit, CompoundEdit, DefaultStyledDocument.AttributeUndoableEdit, StateEdit, UndoManager

public interface UndoableEdit

Объект UndoableEdit представляет собой правку. Правку можно отменить, а если она уже отменена, то можно выполнить повторно.

UndoableEdit предназначен для использования с UndoManager. Поскольку UndoableEdit генерируются UndoableEditListener, они обычно добавляются в UndoManager. Когда UndoableEdit добавляется в UndoManager, происходит следующее (предполагая, что end не вызывался для UndoManager):

  1. Если UndoManager содержит правки, он вызовет addEdit для текущей правки, передав новую правку в качестве аргумента. Если addEdit вернёт true, предполагается, что новая правка была включена в текущую правку, и новая правка не будет добавлена в список текущих правок. Правки могут использовать addEdit в качестве способа включения мелких правок в большую правку и обработки их как одной правки.
  2. Если 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()

Сообщает правке, что она больше не должна использоваться.

String getPresentationName()

Возвращает локализованное, удобочитаемое описание этой правки, подходящее для использования в журнале изменений, например.

String getRedoPresentationName()

Возвращает локализованное, удобочитаемое описание правки для повторного выполнения, подходящее для использования, например, в пункте меню «Повторить».

String getUndoPresentationName()

Возвращает локализованное, удобочитаемое описание отменяемой формы этой правки, подходящее для использования в пункте меню «Отменить», например.

boolean isSignificant()

Возвращает true, если эта правка считается значимой.

void redo()

Применяет правку повторно.

boolean replaceEdit(UndoableEdit anEdit)

Возвращает true, если эта UndoableEdit должна заменить anEdit.

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 вызывает это перед удалением правок из очереди.

Обратите внимание, что это однонаправленная операция. Нет метода "ожить".

См. также:
CompoundEdit.die()

addEdit

boolean addEdit(UndoableEdit anEdit)

Добавляет UndoableEdit в этот UndoableEdit . Этот метод можно использовать для объединения мелких правок в одну большую составную правку. Например, текстовые редакторы обычно позволяют отменять операции над словами или предложениями. Текстовый редактор может генерировать правки при каждом нажатии клавиши, но разрешать объединение этих правок в более удобные для пользователя единицы, такие как слова. В этом случае UndoableEdit переопределял бы addEdit для возвращения true, когда правки можно объединить.

Значение true означает, что anEdit была включена в эту правку. Значение false означает, что anEdit не может быть включена в эту правку.

Обычно получатель уже находится в очереди UndoManager (или другого UndoableEditListener) и получает шанс включить anEdit вместо того, чтобы позволить ей добавить в очередь в свою очередь.

Если возвращается true, то в дальнейшем anEdit должен возвращать false от canUndo и canRedo, а также должен генерировать соответствующее исключение при вызове undo или redo.

Параметры:
anEdit - правка для добавления
Возвращает:
true, если anEdit может быть включена в эту правку

replaceEdit

boolean replaceEdit(UndoableEdit anEdit)

Возвращает true, если эта UndoableEdit должна заменить anEdit . Этот метод используется CompoundEdit и UndoManager; он вызывается, если anEdit не могла быть добавлена к текущей правке (addEdit возвращает false).

Этот метод предоставляет способ замены существующей правки.

Это сообщение противоположно addEdit — anEdit обычно уже находится в очереди в UndoManager (или другом UndoableEditListener), и получатель получает шанс заменить её.

Если возвращается true, то в дальнейшем anEdit должна возвращать false от canUndo() и canRedo(), а также должна генерировать соответствующее исключение при вызове undo() или redo().

Параметры:
anEdit - правка, которая заменяет текущую правку
Возвращает:
true, если эта правка должна заменить anEdit

isSignificant

boolean isSignificant()

Возвращает true, если эта правка считается значимой. Значимая правка обычно это правка, которая должна быть представлена пользователю, например, в пункте меню или подсказке. UndoManager отменит или повторит все незначительные правки до следующей значимой правки.

Возвращает:
true, если эта правка значима

getPresentationName

String getPresentationName()

Возвращает локализованное, удобочитаемое описание этой правки, подходящее для использования в журнале изменений, например.

Возвращает:
описание этой правки

getUndoPresentationName

String getUndoPresentationName()

Возвращает локализованное, удобочитаемое описание отменяемой формы этой правки, подходящее для использования в пункте меню «Отменить», например. Как правило, это вывод из getPresentationName.

Возвращает:
описание отменяемой формы этой правки

getRedoPresentationName

String getRedoPresentationName()

Возвращает локализованное, удобочитаемое описание правки для повторного выполнения, подходящее для использования, например, в пункте меню «Повторить». Как правило, это вывод из getPresentationName.

Возвращает:
описание правки для повторного выполнения

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API