Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Как можно в разных ветвях Tree делать разные картинки? (http://www.flasher.ru/forum/showthread.php?t=87025)

Leximist 27.10.2006 02:13

Как можно в разных ветвях Tree делать разные картинки?
 
Как можно в разных ветвях Tree делать разные картинки?

Предполагается выводить дерево с разнородными объектами и хочется для каждого из объектов установить правило отображения картинки и текста в дереве. Интересно - это можно? Или нужно что-то совсем менять и переписывать себе своего Tree?

Leximist 27.10.2006 11:23

Покажите пример
 
Есть предположение, что такие вещи реализуются через написание собственного Renderer'а. Если кто-то уже такое реализовывал, пожалуйста, покажите грамотный пример.

__i 27.10.2006 13:34

Цитата:

Сообщение от Leximist
Есть предположение, что такие вещи реализуются через написание собственного Renderer'а. Если кто-то уже такое реализовывал, пожалуйста, покажите грамотный пример.


Совершенно верное пердположение %). Наследуешь стандартный рендер и переопределяешь некоторые методы, в них зависимости от условий подставляешь свою иконку. Ну это типа теория, для практики пока нету времени %(

Reijii 27.10.2006 13:52

а почему не использовать встроенную возможность ?
Код:

setItemIcon () method 

public function setItemIcon(item:Object, iconID:Class, iconID2:Class):void
Sets the associated icon for the item. Calling this method overrides the iconField
and iconFunction properties for this item if it is a leaf item. Branch items don't
use the iconField and iconFunction properties.
They use the folderOpenIcon and folderClosedIcon properties.

Parameters  item:Object — Item to affect.   
 iconID:Class — Linkage ID for the closed (or leaf) icon.   
 iconID2:Class — Linkage ID for the open icon.


Leximist 27.10.2006 16:07

Мне нужно по типу определять стиль отображения
 
Дело в том, что желательно просто установить тип нода, а дальше просто задать правило отображения того или иного типа нода.
А через такую функцию придется просто искать все ноды с нужным типом и менять у них картинку

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

Код:

<mx:XMLList>
            <node label="New" type="folder">
                <node label="HTML Document" type="html"/>
                <node label="Text Document" type="txt"/>
            </node>
            <node label="Close" type="folder">
                    <node label="HTML Document" type="html"/>
                <node label="Text Document" type="txt"/>
            </node>
            <node label="Lex" type="folder">
                    <node label="HTML Document" type="html"/>
                <node label="Text Document" type="txt"/>
            </node>
        </mx:XMLList>


Reijii 27.10.2006 16:35

а при генерации данного xml вставлять иконки ? :)
или использовать грубо говоря type как icon ? :)
но можно и делать свой рендерер, хотя я думаю есть еще способы, нужно будет как нить по эксперементировать.

Leximist 27.10.2006 17:12

Вложений: 1
Цитата:

Сообщение от Reijii
а при генерации данного xml вставлять иконки ? :)
или использовать грубо говоря type как icon ? :)

Все дело в том, что у компонента mx:Tree выводится стрелочка (в двух состояниях.. вниз и вверх), потом папочка (в двух состояниях.. открыта закрыта), потом сам листочек документа (в одном состоянии - просто документик). Вот эти все стандартные фишки для разных типов документов я хочу определить сам. Не то, что сразу для всех поменять, а вот именно к каждом конкретном случае разные картинки. Ну вот например хотя бы этот листочек с документиком переделать.

http://www.flasher.ru/forum/attachme...1&d=1161951048

__i 30.10.2006 15:25

Переделай itemRender который будет, в зависимости от ситуации/параметров айтема дераева, подставлять свою картинку/иконку.

Тут попробывал это сделать и наткнулся но то что если ты будешь наследовать стандартный айтем рендер у тебя ничего не получится, нужно делать все "с нуля", т.е. взять за основу что то типа UIComponent'a
или кнопки

Nirth 30.10.2006 22:31

В данном случае нужно просто сделать скин если я правильно понял седьмой пост

NikR 06.11.2006 15:55

Сам не делал. Почитай Developer Guide (pdf с сайта Adobe) стр. 687-758


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

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