Опубликован: 23.10.2005 | Доступ: свободный | Студентов: 4087 / 201 | Оценка: 4.44 / 4.19 | Длительность: 33:04:00
Специальности: Программист
Лекция 3:

Наследование: "откат" в интерактивных системах

< Лекция 2 || Лекция 3: 123456 || Лекция 4 >

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

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

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

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

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

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

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

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

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

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

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

< Лекция 2 || Лекция 3: 123456 || Лекция 4 >