Это старая версия документа.
В программном комплексе Топоматик Робур предусмотрена история изменений произошедших во время работы программы с возможностью отмены этих изменений при необходимости.
Классы, используемые для реализации моделей с поддержкой истории изменений расположены в пространстве имён Topomatic.FoundationClasses.Undo.
Для реализации поддержки истории изменений в модели необходимо:
Содержащие поля данных, списки и словари объекты должны поддерживать интерфейс ITransactable.
Для совершения изменений модели необходимо выполнить следующую последовательность действий:
Для работы истории изменений, необходимо чтобы свойству TransactionManager интерфейса ITransactable был назначен корректный экземпляр интерфейса ITransactionManager. Для этого все основные объекты программного комплекса Топоматик Робур наследуются от базового класса UpdatableObject и поддерживают интерфейс IItem.
Класс UpdatableObject отвечает за реализацию интерфейса ITransactable, а интерфейс и IItem позволяет реализовать свойство TransactionManager запрашивая его по цепочке родителей с самого верхнего. В этом случае экземпляр TransactionManager назначается самому верхнему элементу в цепочке, обычно это наследник от StateControllerObject, а все дочерние элементы получают его автоматически.