2010-10-01 3 views

Répondre

4

Il semble qu'il existe deux façons d'implémenter une TreeNodeUI personnalisée. La première consiste à ajouter votre application à la liste des uiProviders et attribuer une propriété à vos noeuds appelé « uiProvider » avec une valeur de la clé que vous avez créé:

var loader = new Ext.tree.TreeLoader({ 
    uiProviders: { 
     myKey: My.TreeNodeUI.Implementation 
    } 
}); 

Cela ne changera nœuds d'arbres qui ont le uiProvider ensemble de propriétés, laissant les autres nœuds inchangés!

Si vous souhaitez modifier TOUT TreeNodeUIs, vous pouvez remplacer la méthode createNode pour créer le type de noeud que vous voulez (bien que cela devrait étendre Ext.tree.TreeNode). Si vous ne voulez pas implémenter une classe TreeNode entière, vous pouvez, à nouveau, remplacer l'attribut uiProviders.

var loader = new Ext.tree.TreeLoader({ 
    //override the CreateNode function 
    createNode: function(attr) { 
     attr.uiProvider = My.TreeNodeUI.Implementation 

     return Ext.tree.TreeLoader.prototype.createNode.call(this, attr); 
     //or possibly... 
     //return My.CreateNode.Implementation 
    } 
});