Hi all

I have a  question manipulating a layer tree.
I do the following:

1) I create a group Layer
2) then i create a TreeNode for the layer
3) In manipulate the layer tree the way that on everey 'checkchange'  of the 
grouplayer, it should switch off subayers, that should be unvisible by default. 
To to this, I run through the subnodes, check if the sublayer should be visible 
or not, an use the getUI().toggleCheck(false) method the switch a sublayer off.

Maybe i did this in a complicated, but it works so far. My problem is, that on 
every call of getUI().toggleCheck , the map seems to be updated. At least there 
are scores of WMS-Requests on the server.
So my question: is there a better way  to achieve the behavior I want? Or is 
there a way to stop map updates, until all toogles of a group layer have done?

Any help would be appreciated
Regards
Peter

Here is the code I use




1)
     var groupLayer = new OpenLayers.Layer.WMS(this.gs_tree[i].display_name,
         'http://xxxx.xx.xx/wms',
         {  layers: mylayers,       // array of sublayers
            transparent: true,
            format: "image/png"
         },
         { singleTile : true,
            ratio : 1,
            buffer : 0,
            visibility : false,
            isBaseLayer : false
         }
     );

2)

    var groupLayerNode = new GeoExt.tree.LayerNode({
        layer: groupLayer,
        text : display_name,
        leaf: false,
        expanded: false,
        iconCls: 'x-tree-node-icon',
        checked: false,
        isLeaf: false,
        loader: {
          param: "LAYERS"
        }
    });

3)
   var rootNode=layerTree.getRootNode();
   rootNode.eachChild(function (myNode) {
     myNode.collapse();
     myNode.on('checkchange', function(anode, e){
                        if (e) {
                               myNode.expand();
                                myNode.eachChild(function (n) {

                                if (!map.isDefaultOn(n.parentNode.text, 
n.item)) {
                                      n.getUI().toggleCheck(false);
                                }
                                 n.enable();
                               });
                              }
                              else {
                               myNode.collapse();
                               myNode.eachChild(function (n) {
                                n.disable();
                               });

                              }
                    });

     myNode.eachChild(function (n) {
                  layerText = geoshop.getLayerText(n.text); 
n.setText(layerText);
                  n.disable();
   });
});




_______________________________________________
Users mailing list
Users@geoext.org
http://www.geoext.org/cgi-bin/mailman/listinfo/users

Reply via email to