On Fri, Jun 11, 2010 at 4:57 AM, Adam Ratcliffe <[email protected]> wrote:
> Hi,
>
> I have a TreePanel with a GeoExt.tree.LayerContainer like the one in
> this example: http://dev.geoext.org/trunk/geoext/examples/layercontainer.html
>
> For each layer displayed in the Layer Tree I would like to use an icon
> based upon a property of the underlying LayerRecord.  I imagine this
> is a fairly common use case but I'm struggling to understand how to do
> it.  The best I've managed so far is to change the icon for all layers
> to the same icon e.g.
>
>                root: new GeoExt.tree.LayerContainer({
>                    text: 'Map Layers',
>                    loader: {
>                        baseAttrs: {
>                            iconCls: 'icon_layer',
>                            store: layerStore
>                        }
>                    },
>                    layerStore: layerStore,
>                    leaf: false,
>                    expanded: true
>                }),       expanded: true
>                }

Hi.

You can create a layer loader instance that overrides createNode:

var loader = GeoExt.tree.LayerLoader({
   createNode: function(attr) {
       attr.iconCls = this.store.getByLayer(attr.layer).get("icon");
       GeoExt.tree.LayerLoader.prototype.createNode.call(this, attr);
   }
});

and give this loader to the layer container:

    root: new GeoExt.tree.LayerContainer({
        loader: loader,
        ...
    })

Hope it'll work for you.
-- 
Eric Lemoine

Camptocamp France SAS
Savoie Technolac, BP 352
73377 Le Bourget du Lac, Cedex

Tel : 00 33 4 79 44 44 96
Mail : [email protected]
http://www.camptocamp.com
_______________________________________________
Users mailing list
[email protected]
http://www.geoext.org/cgi-bin/mailman/listinfo/users

Reply via email to