[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