Hi,

I'm trying to make an  MVC app with a panel that contains a LayerTree using
EXTJS4 and GeoExt2.

Basically the problem is that the layertree needs to have the layer store
available on init but data are actually not ready, so layer tree can be
there before the map (or layer store) is available. The result of this is
that layers are not displayed in the tree. I tried to reload the stores
without any success. Do you have any hint?

Thanks a lot

I have then a

Ext.define('Pandora.view.LayersTree', {
    // Ext.panel.Panel-specific options:
    extend: 'GeoExt.tree.Panel',
   store: 'LayersTree',
.....


then
Ext.define('Pandora.store.LayersTree',  {
    extend: 'Ext.data.TreeStore',
model: 'GeoExt.data.LayerTreeModel',

root: {
expanded: true,
children: [ {
plugins: [{
ptype: 'gx_layercontainer',
 loader: {
store: Ext.data.StoreManager.lookup('LayersMap'),//map.layers,
createNode: function(attr) {
// add a WMS legend to each node created
if(!(attr.layer instanceof OpenLayers.Layer.OSM || attr.layer instanceof
OpenLayers.Layer.Vector))
{
attr.component = {
xtype: "gx_wmslegend",
layerRecord: mapPanel.layers.getByLayer(attr.layer),
showTitle: false,
// custom class for css positioning
// see tree-legend.html
cls: "legend"
};
};
return GeoExt.tree.LayerLoader.prototype.createNode.call(this, attr);
}

and the layerstore

Ext.define('Pandora.store.LayersMap', {
    extend: 'GeoExt.data.LayerStore',
autoload : false

and finally

in the map I simply do

store: 'LayersMap',
...
Ext.data.StoreManager.lookup(this.store).bind(map);




- Antonio
il
*articolo*: *il, la, le, i, lo, l ', gli, lo stesso*
_______________________________________________
Users mailing list
Users@geoext.org
http://www.geoext.org/cgi-bin/mailman/listinfo/users

Reply via email to