Index: apps/drake/drake1.html =================================================================== --- apps/drake/drake1.html (revision 145) +++ apps/drake/drake1.html (working copy) @@ -67,6 +67,23 @@ return cols; } + var layerRender = Ext.extend(Ext.tree.TreeNodeUI,{ + render: function(bulkRender){ + Ext.tree.TreeNodeUI.prototype.render.apply(this, [bulkRender]); + Ext.get(this.getIconEl()).addClass("super"); + console.log("Hi guys"); + Ext.get(this.getTextEl()).createChild({ + tag: 'input', + type: 'checkbox' + }); + + Ext.get(this.getTextEl()).createChild({ + tag: 'input', + type: 'radio' + }); + } + }); + GeoExt.Drake = { filterBuilder: null, grid: null, @@ -338,11 +355,13 @@ initLayerTree: function() { var root = new Ext.tree.TreeNode({}); root.appendChild(new GeoExt.tree.BaseLayerContainer({ - map: this.map + map: this.map, + layerUI: layerRender })); root.appendChild(new GeoExt.tree.OverlayLayerContainer({ - map: this.map + map: this.map, + layerUI: layerRender })); this.layerTree = new Ext.tree.TreePanel({ Index: core/lib/GeoExt/widgets/tree/TristateCheckboxNode.js =================================================================== --- core/lib/GeoExt/widgets/tree/TristateCheckboxNode.js (revision 145) +++ core/lib/GeoExt/widgets/tree/TristateCheckboxNode.js (working copy) @@ -67,7 +67,7 @@ * Parameters: * bulkRender - {Boolean} */ - render: function(bulkRender) { + dontrender: function(bulkRender) { var rendered = this.rendered; var checked = this.attributes.checked; this.attributes.checked = Index: core/lib/GeoExt/widgets/tree/LayerContainer.js =================================================================== --- core/lib/GeoExt/widgets/tree/LayerContainer.js (revision 145) +++ core/lib/GeoExt/widgets/tree/LayerContainer.js (working copy) @@ -36,6 +36,7 @@ */ constructor: function(config) { this.map = config.map; + this.layerUI = config.layerUI; GeoExt.tree.LayerContainer.superclass.constructor.apply(this, arguments); }, @@ -78,10 +79,17 @@ */ addLayerNode: function(layer) { if (layer.displayInLayerSwitcher == true) { - node = new GeoExt.tree.LayerNode({ - iconCls: layer.isBayeLayer ? 'baselayer-icon' : 'layer-icon', + var opts = { + iconCls: layer.isBaseLayer ? 'baselayer-icon' : 'layer-icon', layer: layer - }); + }; + + console.log(this.layerUI); + + if (this.layerUI){ + opts.uiProvider = this.layerUI; + } + node = new GeoExt.tree.LayerNode(opts); this.appendChild(node); } }, Index: core/lib/GeoExt/widgets/tree/LayerNode.js =================================================================== --- core/lib/GeoExt/widgets/tree/LayerNode.js (revision 145) +++ core/lib/GeoExt/widgets/tree/LayerNode.js (working copy) @@ -32,7 +32,14 @@ * Inherits from: * - */ -GeoExt.tree.LayerNode = Ext.extend(GeoExt.tree.TristateCheckboxNode, { +GeoExt.tree.LayerNode = function(opts){ + if (opts.layer && !opts.text){ + opts.text = opts.layer.name; + } + Ext.tree.TreeNode.apply(this, [opts]); +}; + +Ext.extend(GeoExt.tree.LayerNode, Ext.tree.TreeNode, { /** * ConfigProperty: layer @@ -85,10 +92,9 @@ // to always get the checkbox rendered config.checked = false; - this.defaultUI = this.defaultUI || GeoExt.tree.LayerNodeUI; this.addEvents.apply(this, GeoExt.tree.LayerNode.EVENT_TYPES); - - GeoExt.tree.LayerNode.superclass.constructor.apply(this, arguments); + Ext.tree.TreeNode.apply(this, arguments); + // GeoExt.tree.LayerNode.superclass.constructor.apply(this, arguments); }, /** @@ -98,7 +104,7 @@ * bulkRender {Boolean} - optional * layer {} - optional */ - render: function(bulkRender) { + dontrender: function(bulkRender) { if (!this.rendered || !this.haveLayer) { var map = this.map instanceof OpenLayers.Map ? this.map : (typeof this.map == "string" ? Ext.getCmp(this.map).map : @@ -181,4 +187,4 @@ /** * NodeType: gxLayer */ -Ext.tree.TreePanel.nodeTypes.gxLayer = GeoExt.tree.LayerNode; \ No newline at end of file +Ext.tree.TreePanel.nodeTypes.gxLayer = GeoExt.tree.LayerNode;