| /* |
| Copyright (c) 2004-2006, The Dojo Foundation |
| All Rights Reserved. |
| |
| Licensed under the Academic Free License version 2.1 or above OR the |
| modified BSD license. For more information on Dojo licensing, see: |
| |
| http://dojotoolkit.org/community/licensing.shtml |
| */ |
| |
| |
| dojo.provide("dojo.widget.TreeLinkExtension"); |
| |
| dojo.require("dojo.widget.HtmlWidget"); |
| dojo.require("dojo.widget.TreeExtension"); |
| |
| dojo.widget.defineWidget( |
| "dojo.widget.TreeLinkExtension", |
| dojo.widget.TreeExtension, |
| function() { |
| this.params = {}; |
| }, |
| { |
| /** |
| * can only listen, no unlisten |
| */ |
| |
| listenTreeEvents: ["afterChangeTree"], |
| |
| listenTree: function(tree) { |
| |
| dojo.widget.TreeCommon.prototype.listenTree.call(this,tree); |
| |
| var labelNode = tree.labelNodeTemplate; |
| var newLabel = this.makeALabel(); |
| dojo.html.setClass(newLabel, dojo.html.getClass(labelNode)); |
| labelNode.parentNode.replaceChild(newLabel, labelNode); |
| }, |
| |
| |
| |
| makeALabel: function() { |
| var newLabel = document.createElement("a"); |
| |
| for(var key in this.params) { |
| if (key in {}) continue; |
| newLabel.setAttribute(key, this.params[key]); |
| } |
| |
| return newLabel; |
| }, |
| |
| |
| onAfterChangeTree: function(message) { |
| var _this = this; |
| |
| |
| // only for new nodes |
| if (!message.oldTree) { |
| this.listenNode(message.node); |
| } |
| |
| }, |
| |
| listenNode: function(node) { |
| for(var key in node.object) { |
| if (key in {}) continue; |
| node.labelNode.setAttribute(key, node.object[key]); |
| } |
| } |
| |
| |
| }); |