как изменить иконку листового узла в дереве додзё? - PullRequest
0 голосов
/ 14 мая 2010

Я создал дерево, содержащее информацию о сервере и его виртуальных машинах. Я хочу изменить значок виртуальной машины на зеленый, если виртуальная машина включена, или на красный, если виртуальная машина выключена. Как этого добиться?

Ответы [ 2 ]

3 голосов
/ 30 мая 2011

Это может быть другой способ сделать то же самое,

getIconStyle:function(item, opened){
    if(!item.root){
        if(!item.children){
            // Style the nodes that not have childrens
            return {backgroundColor: "red"};
        }else{
            // Style the nodes that have childrens
            return {backgroundColor: "blue"};
        }
    }else{
        // Style the root node here
        return {backgroundColor: "orange"};
    }
}

вы также можете использовать getIconClass для возврата соответствующего имени класса CSS.

0 голосов
/ 14 мая 2010

Создание функции для переключения класса css узла дерева в зависимости от того, включена или выключена виртуальная машина.

ar iconFunc = dojo.hitch(this, function (item, opened) { 
                if(item !== undefined && item !== null) {
                    if (item.VmOn!== undefined) {
                        return "VmOn";
                    }
                    else {
                        return "VmOff";
                    }
                }
            });

При создании дерева передайте iconFunc в параметрах конструктора:

var treeParams = {
    getIconClass : iconFunc, //attach the custom icon function
...};
var myTree = new dijit.Tree(treeParams);

Затем создайте CSS-стили с именами VmOn и VmOff:

.VmOn {
    background: url(path to your image for VmOn) no-repeat;

Элементам магазина, которые составляют узлы дерева, потребуется свойство VmOn или VmOff или изменение iconFunc для проверки элементов магазина другим способом ...

...