Мастера (Wizards) предназначены для последовательного выполнения сложных операций. Наиболее ярким примером использования мастеров является процедура инсталляции. Мастера реализуют аналогичный функционал с учетом некоторых особенностей платформы XAF.

Примеры использования мастеров можно найти в демонстрационном примере FeatureCenter.

Общая информация

Механизм мастеров обладает следующими возможностями:

  • Поддержка на обеих платформах Win и Web
  • Реализовано 3 вида шаблона представления
  • Используется новый вид действий WizardAction, наследник от ShowPopupWindowAction
  • Поддерживается управление свойствами мастера в дизайнере VS, а также в модели приложения
  • Автоматическая генерация View в модели приложения для каждого этапа мастера
  • Реализована возможность условного перехода между этапами мастера
  • Поддержана возможность управления этапами мастера из кода через специальные события

WizardAction

Выполнение мастера представляет собой расширение ShowPopupWindowAction и является его наследником. WizardAction содержит дополнительные свойства:

  • ObjectType - ссылается на класс объекта, который используется в мастере
  • ShowDefaultWelcomeView – признак добавления первого шага с приветственным сообщением
  • ShowDefaultGoodbyeView – признак добавления заключительного шага с завершающим сообщением
  • TemplateContext – имя шаблона представления для мастера
  • StepsCount – ожидаемое количество шагов мастера без учета приветствия и завершения.

Основной вариант использования

Что происходит при добавлении нового мастера.

  1. Разработчик создает новый WizardAction в контроллере
  2. При формировании модели приложения для модуля, реализующего мастер, производится добавление узлов для каждого обнаруженного WizardAction. При этом создаются отдельные View для каждого из этапов мастера.
  3. Разработчик, если необходимо, вносит изменения в настройки мастера в модели приложения:
    1. Настраивает текст сообщений
    2. Добавляет условия перехода между этапами

  1. Настраивает сгенерированные View для каждого из этапов мастера.
  1. Мастер готов к использованию

Шаблоны

Реализованы 3 типа шаблона представления мастеров

Wizard1

Видимость заголовка и полей текущего этапа

Wizard2

Дополнительно к первому шаблону отображает слева картинку

Wizard3

Дополнительно слева отображается список всех этапов и визуализируется текущий этап

Особенности подключения в Web

Для подключения мастеров в web приложение необходимо добавить нижеприведенный код в файл default.aspx.cs