[Users] Set visibility on Sub-layers

Andreas Hocevar ahocevar at opengeo.org
Sun Oct 18 13:28:47 CEST 2009


Paul james wrote:
> Ohh no :(
> Any other alternative to solve that?
>  
> ps.: Can you send that ticket url?

I was thinking that you create a ticket. But hey, it's FOSS4G time and 
I'm feeling generous, so here it is - even with patch and tests:

http://trac.geoext.org/ticket/166

Regards,
Andreas.

>  
> Paul
>
> On Wed, Oct 14, 2009 at 11:12 PM, Andreas Hocevar 
> <ahocevar at opengeo.org <mailto: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>
>             <mailto: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
>             <mailto:pauljame at gmail.com>>
>                *Sent:* Wednesday, October 14, 2009 9:39 AM
>                *To:* bartvde at osgis.nl <mailto:bartvde at osgis.nl>
>             <mailto:bartvde at osgis.nl <mailto:bartvde at osgis.nl>>
>                *Cc:* users at geoext.org <mailto:users at geoext.org>
>             <mailto:users at geoext.org <mailto:users at geoext.org>> ;
>             Andreas Hocevar
>                <mailto:ahocevar at opengeo.org <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>
>                <mailto: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>
>             <mailto: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>
>             <mailto: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.
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Users mailing list
> 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.



More information about the Users mailing list