Tim,

Tim Schaub wrote:
> In these cases, I think it is easiest to think of the layer store 
> referenced by the MapPanel as the primary store.  The the map is a view 
> of the records in this store.  The tree (in this case) can also be 
> treated as a view.  A grid could be another view.  To keep things 
> simple, don't call methods on the views.
>
> Tim
>   

That's perfectly clear. The below line is working well and, as you 
mentioned, it removed the layer from all views :

node.layerStore.remove(node.layerStore.getAt(1));

One last question on the matter though : it's about how I can get the 
index of the record I'm looking for. In OpenLayers, since the layers are 
stored into an array, using OpenLayers.indexOf does the trick, but is 
there something similar in Ext or GeoExt ? Is there a "find record by 
value" method ?

Here's how I would do it : create a method for the Store object that 
creates an array with values of a specific attribute. The result would 
be similar to the layers array in OpenLayers, so from then we would 
simply need to use indexOf. What do you think ?


Ext.data.Store.prototype.getValueArray = function(attribute) {
var values = [];
var nValues = this.getCount();

for(var i=0; i<nValues; i++) {
values.push(this.getAt(i).get(attribute));
}

return values;
};

var layers = node.layerStore.getValueArray('layer');
var index = OpenLayers.Util.indexOf(layers, node.layer);
if(index == -1) {
node.layerStore.remove(node.layerStore.getAt(index));
}

Regards,

-- 
Alexandre Dubé
Mapgears
www.mapgears.com

_______________________________________________
Users mailing list
[email protected]
http://www.geoext.org/cgi-bin/mailman/listinfo/users

Reply via email to