[Users] Set visibility on Sub-layers

Andreas Hocevar ahocevar at opengeo.org
Thu Oct 15 04:12:23 CEST 2009


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.


More information about the Users mailing list