![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
[+4 06.05.14]
|
Разрабатываю интересное приложение, интересное тем, что много новых архитектурных решений и т.д.
Суть то простая - пришли данные - отобразил их, но из за мелких ньюансов построения этой визуализации проект становится не таким простым. Вот например одна из моих головоломок : 1. Есть контейнер ( назовем его событием ) 2. Внутри еще контейнерЫ ( назовем их блоками события ) 3. Внутри каждого блока еще контейнеры ( назовем их группами ) 4. Ну а в каждой группе еще N кол-во контейнеров = профит. Данные приходят сразу ДЛЯ всего события, тоесть всего лишь 1 некий метод должен раскидать данные по всем контейнерам, обрисовать их как надо и т.д. И так, что делаем мы : каждый контейнер имеет свой инфо класс ( с переменными нужными для визуализирования контейнера ) Каждый инфо класс события имеет вектор нифо класса блоков события, далее групп и т.д. до конца. Каждый контейнер имеет ссылку на нужный инфо класс, а так же вектор вложенных в него контейнеров, т.е. для события - вектор блоков и т.д. Собственно хотелось бы спросить, съедобна ли такая реализация ( под этим словом подразумевается имеет ли право так писать бывалый программер, или нет ) . Вопрос стоит про доступ до определенного контейнера - далее для перезаписи данных. Вот простой пример как я пытаюсь сменить значение в исходе* ( самый глубокий контейнер ) private function changeLockerOnIssue(eventID:String , blockID:String , groupID:String , issueID:String, lock:int):void { var eventContainer:EventContainer = Sorter.getEventByID ( eventID , _eVector ); var blockContainer:BlockContainer = null; var groupContainer:GroupContainer = null; var coloredBox:ColoredBox = null; if (eventContainer != null) blockContainer = Sorter.getBlockByID ( blockID , eventContainer._vBlock ); if (blockContainer != null) groupContainer = Sorter.getGroupByID ( groupID , blockContainer._vGroup ); if (groupContainer != null) coloredBox = Sorter.getIssueByID ( issueID , groupContainer ); if (coloredBox != null) { lock == 1 ? coloredBox.setLock() : coloredBox.setUnlock(groupContainer.color); trace ('# change lock issue : ' + lock + ',' + blockContainer.info.blockEventID); } } /// Кусочек сортера public static function getEventByID(id:String , container:Vector.<EventContainer>):EventContainer { for (var i:String in container) if (container[i].info.eventID == id) return container[i]; return null; }
__________________
Марк Tween Последний раз редактировалось in4core; 13.11.2011 в 13:58. |
|
|||||
|
Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
|
Очень запутанно описано. Может шаблон Компоновщик?
__________________
Я просто добрый шутник. |
|
|||||
|
Регистрация: Oct 2009
Сообщений: 174
|
По ссылке "https://www.abc-bet.ru/csp/shanscsp/PPS/live/index.html" чето не понятное какието цифры. Зачем там все контейнеры или к чему ссылка тогда?
|
|
|||||
|
Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
|
Цитата:
|
![]() |
![]() |
Часовой пояс GMT +4, время: 01:49. |
|
|
« Предыдущая тема | Следующая тема » |
|
|