Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   [Cairngorm] Как правильно обновить данные в popUp (http://www.flasher.ru/forum/showthread.php?t=129983)

udaaff 15.09.2009 04:27

Как правильно обновить данные в popUp
 
В определенной команде PopUpManager создает попап (форму). Ссылка на этот попАп записывается в определенное свойство модели. В этой форме необходимо проверять данные, которые вводит пользователь на валидность. Т.е. пользователь начинает заполнять, допустим, поле Name, через определенное время после окончания ввода, приложение автоматически обращается к сервису на сервере для проверки валидности имени и наличия имени в базе данных. Сервис возвращает ValueObject с ответом. Если все ок, то рядом с полем для ввода показывается галочка, если нет, то крестик и под полем пишется причина.

Без Cairngorma реализовать это раз плюнуть )). (прописать RemoteObject в Restore view, обработчики там же и все дела)

Но как это правильно сделать в рамках архитектуры Cairngorm?.. Если точнее, то как правильно вернуть ответ от сервиса в попАп? Т.е. сам метод сервиса вызывается через делегата в команде (к примру CheckUsernameCommand), обработчик результата resultHandler находится тоже в этой команде. На этом месте у меня загвоздка... Куда дальше идти из этого обработчика? Дело не в том как в попап впихнуть эти данные, а как правильно их туда впихнуть.

Вроде, доступно все объяснил. Есть у кого-нибудь идеи, как это более элегантно можно реализовать?

DarkLight 15.09.2009 21:33

Вариант 1:
Скармливать IResponder событию, который передастся в команду, затем вернет результат.
+просто, удобно, относительно красиво
-не рекомендуемая практика, а ввиду отсутствия в as3 типов вида "int->void", как сделано в haXe, ухудшается контроль над кодом.

Вариант 2:
Выделить под такие вещи кусок в модели. Если очень не нравится публичность доступа - сделать это в кастомном неймспейсе
+логика Cairngorm не меняется
-модель разрастается и утяжеляется

Вариант 3:
http://students.mimuw.edu.pl/~mhagmajer/cairngorm3/
Ветка Cairngorm, где проблема решена расширением самой микроархитектуры. Названа "3", но с учетом планов Adobe по выпуску 3ей версии, название не очень релевантно. Там более сложная модель респондеров.

udaaff 15.09.2009 22:42

DarkLight, спасибо за ответ.

По первому варианту, честно говоря, я не понял, что ты имел ввиду. Я кэйнгом относительно недавно стал изучать... возможно из-за этого.

По второму варианту: я думал, о том, чтобы реализовать мои формы не попАпами, а через states. В этом случае я бы создал отдельно модель для формы (допустим, RestoreModel (модель для вида Restore (вид для восстановления пароля))), ссылка на эту модель хранилась бы в ModelLocator, и Restor вид был бы связан через биндингс со свойей моделью. Тут было бы все относительно просто.

Думается мне, что стоит отказаться от PopUpManagera... И сделать "появление" моих форм через состояния. Но это все усложняет.

upd: по третьему варианту, не знаю, что и сказать, нужно читать, вникать, разбираться... Что они там намастирили.


Часовой пояс GMT +4, время: 21:51.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.