[Users] Set visibility on Sub-layers

Matt Priour mpriour at kestrelcomputer.com
Thu Oct 15 16:37:52 CEST 2009


I was actually suggesting attaching a listener to the render event (ie fires after render). Then directly uncheck the correct node programattically.
Matt Priour


From: Paul james 
Sent: Thursday, October 15, 2009 8:38 AM
To: Andreas Hocevar 
Cc: Matt Priour ; bartvde at osgis.nl ; users at geoext.org 
Subject: Re: [Users] Set visibility on Sub-layers


Ohh no :(
Any other alternative to solve that?

ps.: Can you send that ticket url?

Paul


On Wed, Oct 14, 2009 at 11:12 PM, Andreas Hocevar <ahocevar at opengeo.org> wrote:

  Andreas Hocevar wrote:

    Hi Paul,

    the recommendations given so far should all work, but let Papa Treenode speak from his experience:

    The best thing to do is override the createNode function of the loader, as documented in http://www.extjs.com/deploy/dev/docs/?class=Ext.tree.TreeLoader.



  which, unfortunately, will *not* work because GeoExt sets the visibility in the node's render method, regardless of its checked attribute. A tickdt with patch that fixes this would be in order I guess.

  Regards,
  Andreas. 





    The createNode function is called with the attributes (attrs) as argument, so you could check for attr.text and then set attr.checked accordingly.

    Regards,
    Andreas.

    Paul james wrote:

      Thanks Matt...
      I tried that:
       nodeType: "gx_layer",
                  id: "Streets",
                  layer: "Streets",
                  isLeaf: false,
                  expanded : true,                                         loader: {
                        param: "LAYERS",                                                          baseAttrs: {
                                uiProvider: Ext.extend(Ext.tree.TreeNodeUI, {
                                      render: function(bulkRender) {                                          if(this.node.text == "Layer3")                                                                                            this.node.layer.setVisibility(false);                                                                Ext.tree.TreeNodeUI.prototype.render.apply(this, arguments);                                  }
      ...
        But all node´s layer are set off... How can I set the subnode´s visibility separately?
       Thanks
       Paul

      On Wed, Oct 14, 2009 at 11:50 AM, Matt Priour <mpriour at kestrelcomputer.com <mailto:mpriour at kestrelcomputer.com>> wrote:

         Handle the 'render' event of the layer tree and programmatically
         uncheck the nodes that you don't want on.
         The only disadvantage of this method is that depending on timing the
         application may or may not attempt to do GetMap requests on the
         layers you don't want. Though they still would not be visible, if
         you are calling a slow service or complex rendering is involved,
         then the GetMap requests can block other WMS service requests.
         Matt Priour
         Kestrel Computer Consullting
         *From:* Paul james <mailto:pauljame at gmail.com>
         *Sent:* Wednesday, October 14, 2009 9:39 AM
         *To:* bartvde at osgis.nl <mailto:bartvde at osgis.nl>
         *Cc:* users at geoext.org <mailto:users at geoext.org> ; Andreas Hocevar
         <mailto:ahocevar at opengeo.org>
         *Subject:* Re: [Users] Set visibility on Sub-layers

         Thanks bart...
         But I need set all layers to build up my treeview, like that:
              nodeType: "gx_layer",
                             layer: "Streets",
                             isLeaf: false,
                                            loader: {
                                 param: "LAYERS",
         ...
         
              On Wed, Oct 14, 2009 at 11:16 AM, <bartvde at osgis.nl
         <mailto:bartvde at osgis.nl>> wrote:

             Hi Paul,

             only by using LAYERS: ['layer1', 'layer2'].

             Then later on, when you need more layers, you should change the
             LAYERS
             param using the mergeNewParams function.

             Best regards,
             Bart

              > Hello guys... I have that set of sublayers :
              >
              > new OpenLayers.Layer.MapServer("Streets",
              >                 _cgi, {
              >                     map: _mapfile,
              >                     "LAYERS":
             ['Layer1','Layer2','Layer3','Layer4',
              > 'Layer5'],
              >                     transparent: true,
              >                     format: "image/png"
              >                 }, {
              >                     isBaseLayer: false,
              >                     buffer: 0,
              >                     displayInLayerSwitcher: false,
              >                     visibility: false
              >                 })
              >
              > I悲 like to start with Layer1 and Layer2 with visibility true
             ... How can
              > I
              > do that?
              >
              > Paul
              > _______________________________________________
              > Users mailing list
              > Users at geoext.org <mailto:Users at geoext.org>
              > http://www.geoext.org/cgi-bin/mailman/listinfo/users
              >



         ------------------------------------------------------------------------

         _______________________________________________
         Users mailing list
         Users at geoext.org <mailto:Users at geoext.org>
         http://www.geoext.org/cgi-bin/mailman/listinfo/users








  -- 
  Andreas Hocevar
  OpenGeo - http://opengeo.org/
  Expert service straight from the developers.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.geoext.org/pipermail/users/attachments/20091015/ea2c2cfa/attachment-0001.htm 


More information about the Users mailing list