[Users] variables in filter of LayerContainer loader

Frans Knibbe frans.knibbe at geodan.nl
Fri Feb 11 11:32:13 CET 2011


Hello!

I am trying to create several GeoExt.tree.LayerContainer nodes in my 
layer tree. I want to group layers by a custom attribute (themes) that I 
have added to the OpenLayers layer definition. Let's call this attribute 
'themeId'. It could have values like 'vegetation', 'water', 'roads', 
etc.. What I want to do is loop though the themes and create 
.LayerContainers for matching layers. I am doing this by means of a 
filter of the GeoExt.tree.LayerLoader, which looks like this:

filter: function(record){
        return (record.get("layer").options.themeId == themes[theme].id);
}

My problem is that the filter does not work :-). This seems to be caused 
by the variable holding the theme ID ( themes[theme].id in the example 
above) being unknown at them time the filter function is executed. If I 
exchange the variable with a string everything works fine, like this:

filter: function(record){
        return (record.get("layer").options.themeId == 'vegetation');
}

So my question is: Can I somehow get the variable to have the right 
value at the time the filter function is executed? Or is there another 
way of dynamically building LayerContainers I could try?

Thanks!
Frans





More information about the Users mailing list