[Users] Manipulating group layers in tree - set default sublayers on or off

Peter.Jehle at tba.llv.li Peter.Jehle at tba.llv.li
Fri Dec 30 13:37:31 CET 2011


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();
   });
});




-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.geoext.org/pipermail/users/attachments/20111230/2bacbdd8/attachment.htm 


More information about the Users mailing list