[Users] Setting map layer radio button via JS
Pierre Giraud
pierre.giraud at camptocamp.com
Fri Dec 10 14:26:10 CET 2010
Hi,
I've just tried and I've succeeded in using the following piece of code :
var node = treePanel.root.findChild('layer', newVectorLayer, true);
Ext.get(node.attributes.radio).set({
'checked': 'checked'
});
This won't fire the 'radiochange' event though. However, I think you can
execute the 'set active layer' code on your own at the same time.
Please also consider using the new "GeoExt.plugins.TreeNodeRadioButton"
instead of the mixin. You may need a recent version of GeoExt though.
Regards,
Pierre
On Thu, Dec 9, 2010 at 10:39 AM, David E. Reksten <der at dod.no> wrote:
> I have layer tree in my application with both checkboxes (visibility)
> and radiobuttons ("active layer").
>
> Users may add new vector layers via a button, but for the moment they
> must always manually click the radio button after adding the layer to
> activate it. I would have preferred that a new layer was automatically
> checked, but I am unable to find out how to do it. Ideally, I would
> like to set the radio button at the same time as after having added
> the new layer to the map. I have googled extensively, but I suspect
> that I am using the wrong terminology here, as I have been unable to
> find out how to achieve this. Any hints would be very much
> appreciated!
>
> My tree panel is defined like this:
>
> treeConfig = [{
> nodeType: "gx_baselayercontainer",
> text: "Base layers",
> expanded: true
> }, {
> nodeType: "gx_overlaylayercontainer",
> text: "My overlays",
> expanded: true,
> loader: {
> baseAttrs: {
> radioGroup: "foo",
> uiProvider: "use_radio"
> }
> }
> }];
>
> treePanel = new Ext.tree.TreePanel({
> id: 'mainpanel',
> border: true,
> region: "west",
> title: "My layers",
> width: 200,
> split: true,
> collapsible: true,
> margins: '0 0 5 5',
> collapseMode: "mini",
> autoScroll: true,
> loader: new Ext.tree.TreeLoader({
> // applyLoader has to be set to false to not interfere with
> loaders
> // of nodes further down the tree hierarchy
> applyLoader: false,
> uiProviders: {
> "use_radio": Ext.extend(GeoExt.tree.LayerNodeUI, new
> GeoExt.tree.RadioButtonMixin());
> }
> }),
> root: {
> nodeType: "async",
> children: treeConfig
> },
> listeners: {
> "radiochange": function(node){
> // toggle active layer
> }
> },
> rootVisible: false,
> lines: false
> });
>
> After the user has clicked the button to add a layer:
> // ... newVectorLayer is defined here ...
> map.addLayer(newVectorLayer);
> // would now like to activate the radio button in the TreePanel
> for "newVectorLayer", so that the "radiochange" event is triggered:
> but how?
>
>
> Regards,
> David
> _______________________________________________
> Users mailing list
> Users at geoext.org
> http://www.geoext.org/cgi-bin/mailman/listinfo/users
>
--
Pierre GIRAUD
Géomaticien, Analyste
Camptocamp France SAS
Savoie Technolac, BP 352
73377 Le Bourget du Lac, Cedex
Tel : 00 33 4 79 44 44 93
Mail : pierre.giraud at camptocamp.com
http://www.camptocamp.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.geoext.org/pipermail/users/attachments/20101210/2946fda5/attachment.htm
More information about the Users
mailing list