Основы объектно-ориентированного проектирования


Интерфейс пользователя для откатов и повторов


Покажем, как выглядит возможный интерфейс пользователя, поддерживающий механизм undo-redo. Пример взят из ISE, но и некоторые другие наши продукты используют ту же схему.

Хотя горячие клавиши доступны для Undo и Redo, полный механизм включает показ окна истории (history window). В нем отображается список history. Однажды открытое, оно регулярно обновляется при выполнении команд. В отсутствие откатов оно выглядит так:

Окно истории до выполнения откатов

Рис. 3.7.  Окно истории до выполнения откатов

Оно отображает список выполненных команд. При выполнении новой команды, она появится в конце списка. Текущая активная команда (отмеченная курсором) подсвечена, как показано на рисунке для "change relation label".

Для отката достаточно щелкнуть по кнопке со стрелкой

или использовать горячие клавиши (Alt-U). Если передвинуть курсор вверх (для списка это переход назад - back) то после нескольких операций Undo, окно примет вид, показанный на рис. 3.8.

В этом состоянии есть выбор:

  • Можно выполнить еще раз операцию Undo - подсветка передвинется к предыдущей строке.
  • Можно выполнить один или несколько раз операцию повтора Redo, используя эквивалентную комбинацию горячих клавиш или щелкнув по кнопке со стрелкой вниз
    . Подсветка в окне передвинется к следующей строке, а список выполнит вызов forth.

Окно истории в процессе откатов и повторов

Рис. 3.8.  Окно истории в процессе откатов и повторов

Можно выполнить нормальную команду. Как мы знаем, из истории удалятся все команды, для которых был откат, но не было повтора; для списка это означает удаление элементов справа от курсора и вызов remove_all_right; все команды ниже подсвеченной исчезнут.




- Начало -  - Назад -  - Вперед -