node.getUI().checkbox.nextElementSibling.setValue(1); could probably be replaced by
Ext.get(node.attributes.radio).setValue(1); Other than that, your solution is fine. On Fri, Dec 10, 2010 at 3:04 PM, David E. Reksten <[email protected]> wrote: > Nice! Thanks a lot for your answer. > > I was also able to accomplish the same with this hack: > > function setLayerRadioButton(layerID) { > selNodes = treePanel.getChecked(); > Ext.each(selNodes, function(node){ > if (node.layer.id == layerID) { > node.getUI().checkbox.nextElementSibling.setValue(1); > // trigger the 'radiochange' event manually here... > } > }); > > }; > > Regards, > David > > 2010/12/10 Pierre Giraud <[email protected]>: > > 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 <[email protected]> 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 > >> [email protected] > >> 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 : [email protected] > > http://www.camptocamp.com > > > -- 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 : [email protected] http://www.camptocamp.com
_______________________________________________ Users mailing list [email protected] http://www.geoext.org/cgi-bin/mailman/listinfo/users
