[Users] Layer leaf nodes replicated across all tree nodes
Luís de Sousa
luis.a.de.sousa at gmail.com
Thu Feb 6 16:59:33 CET 2014
Dear all,
This is going on with GeoExt 1.1 and OpenLayers 2.12. I need to build a
layer tree dynamically, with layers and nodes that are only known at run
time. The snippets I show below correctly create a layer tree with several
nodes and adds the layers node leafs. The problem is that though each layer
is assigned to a single tree node, it is then shown under each and every
tree node created.
During init the tree and its root are set up:
treeRoot = new Ext.tree.TreeNode
({
text : 'Project',
id : '0',
leaf :false,
expandable : true,
expanded : true
});
layerTree = new Ext.tree.TreePanel
({
title: 'Map Layers',
region: "west",
width: 200,
collapsible: true,
autoScroll: true,
enableDD: true,
plugins:
[{
ptype: "gx_treenodecomponent"
}],
loader:
{
applyLoader: false,
uiProviders:
{
"custom_ui": LayerNodeUI
}
},
root: treeRoot,
rootVisible: false,
lines: false
});
Later on new tree nodes can be added according to a tag, and kept in an
array:
if(treeNodes[tag] == null)
{
treeNodes[tag] = new GeoExt.tree.OverlayLayerContainer
({
text: tag,
leaf: false,
expanded: true
});
treeRoot.appendChild(treeNodes[tag]);
}
Layers are added to the map and to a specific tree node:
var layer = new OpenLayers.Layer.WMS(title, serviceURL, params,
options);
leftMap.addLayer(layer);
layer.events.register("visibilitychanged", this, toggleLayer);
var newNode = new GeoExt.tree.LayerNode(
{
text: title,
layer: layerName,
leaf: true,
checked: false,
children: [],
nodeType: "gx_layer"
});
treeNodes[tag].appendChild(newNode);
But then each layer appears several times, once under each tree node.
Any hints on why it is happening this way are welcome. Thank you,
Luís
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.geoext.org/pipermail/users/attachments/20140206/31bbc1fb/attachment.htm
More information about the Users
mailing list