|
|
|||||
Регистрация: Oct 2007
Сообщений: 66
|
ItemRenderer в Tree
добавил в Tree ItemRenderer в виде CheckBox как теперь получить айтимы с отмеченными CheckBox ?
|
|
|||||
Регистрация: Nov 2007
Сообщений: 13
|
может это поможет
http://www.dgrigg.com/samples/flex/c...xitemrenderer/ |
|
|||||
Если добавили и все работает как нужно - значит они изменяют какие-то данные (если это checkBox, то наверника этот параметр может принимать только два значения). Соотвественно получить элементы можно пробежав по dataProvider' у и выбрав элементы с нужным параметром.
Если itemRenderer работает правльно, то задача тревиальная |
|
|||||
Регистрация: Oct 2007
Сообщений: 66
|
С изменениями данных в датапровайдере было реализованно сразу но мне кажеться это неверный подход. Я не хочу изменять данные потому что они могу использоваться другими компонентами. Есть желание просто пробежаться по элементам дерева и получить значение чекбокса узла если он чекнутый и дальше с этим знанием чтото делать!
|
|
|||||
Мне кажется это верный подход, компоненты это view и предоставляют удобный способ изменения данных и просто отображают их. Пробежаться то конечно можно, но не по всем т.к. метод indexToItemRenderer вернет render'er только при условии что он виден на экране в текущий момент - а это, как мне кажется, уже заведомо неверное решение данной задачи
|
|
|||||
Регистрация: Oct 2007
Сообщений: 66
|
c проходом по только видимым конечно же не желаемый способ но сдруго стороны представим себе что несколько компонент начинают редактировать бедный источник данных что с ним будет страшно подумать =)
|
|
|||||
Как это нужно сделать на практике
1. Делаешь класс описывающий нужный элемент в твоем датапровайдере (MyDataVO), с биндабл полями (или полностю биндабл) 2. Делаешь от него наследника и в нем вводишь поле selected для чекбокса( MyDataVOWithSelection extends MyDataVO), оно должно быть биндабл 3. при получении/генерации данных пихаешь их в класс MyDataVOWithSelection, и хранишь их всех в каком нить Collection 4. Подписываешься на событие CollectionEvent.COLLECTION_CHANGE у своего Collection, и читаешь хелп по поводу CollectionEventKind.UPDATE 5. Делаешь айтем рендер с чек боксом который отвечает за сотояние selected у твоих элементов, при изменении его меняешь свойство данного элемента. 6. В обработчике CollectionEvent.COLLECTION_CHANGE ты ловишь измененый элемент и считаешь/вычеркиваешь его.
__________________
33 коровы |
Часовой пояс GMT +4, время: 19:15. |
|
« Предыдущая тема | Следующая тема » |
|
|