MVC применительно к мастеру (Wizard)
От: opposer  
Дата: 26.12.07 15:07
Оценка:
Хочу запроектировать как следует на примере создания Мастера. MVC раньше не реализовывал. Посидел, подумал, идеи закончились. Какие идеи пришли:

-есть элемент управления "визард" с кнопками "вперед", "назад" и набором ссылок для переходов на следующие страницы.
-у него есть события "нажато "назад", "нажато Вперед", "нажата ссылка".
-у него есть область для отображения ссылок и область для отображения страниц.

-есть объект "хранилище данных". То, что ввел пользователь, сохраняется в нём.
-есть страница визарда. Набор контролов.
-есть контроллер страницы. Обладает страницей. Имеет указатель на хранилище данных. Имеет методы "загрузить данные в свою страницу", "сохранить данные со своей страницы".
-есть контроллер всего. Имеет визарда и массив контроллеров страниц. Подписан на события визарда "вперед", "назад" и "ссылка". Хранит номер текущей активной страницы, параметры "последняя ли страница" и "первая ли страница" (чтобы кнопки "вперед" и "назад" на форме были активны/неактивны).

Когда контроллер получает сообщение "нажато вперед" — он смотрит, какая сейчас страница активна, дает команду ее менеджеру "сохранить данные" и дает команду менеджеру следующей страницы "загрузить данные" и "отобразить страницу". (сделать ее visible например)

Вопросы:
-как будет при таком раскладе реализовываться обратная связь между формой и контроллером? откуда форма визарда узнает, выводить ли серым кнопку "вперед" (если находимся на последнем вопросе).

-как сделать эту всю развязку "как надо"?


Как я подозреваю, всё это уже давно придумано до меня, и был бы благодарен за рекомендацию, как сделать "как следует".
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.