/*author : Van de Casteele Arnaud Date : 2009/04/29 */
Ext.namespace('GeoExt','GeoExt.grid');GeoExt.grid.GridPanelFeature=function(config){Ext.apply(this,config);GeoExt.grid.GridPanelFeature.superclass.constructor.call(this)};Ext.extend(GeoExt.grid.GridPanelFeature,Ext.grid.GridPanel,{selectedFeature:new Array(),initComponent:function(){this.on("rowclick",this.getRowsSelected);this.selectControl=this.selectControl();GeoExt.grid.GridPanelFeature.superclass.initComponent.call(this)},selectControl:function(){var grid=this;return new OpenLayers.Control.SelectFeature(grid.getStore().layer,{hover:false,clickout:true,multiple:true,hover:false,toggleKey:"ctrlKey",multipleKey:"shiftKey",box:false,callbacks:{"click":grid.getMapFeatureSelected,"clickout":grid.unSelectFeatures},grid:grid})},getRowsSelected:function(grid,index,evt){if(this.selectedFeature.length>0){this.unSelectFeatures({data:this.selectedFeature,type:"grid"})}var featRecord=this.getSelectionModel().getSelections();var opt={data:featRecord,type:"grid"};this.selectFeatures(opt);this.selectedFeature=featRecord},getMapFeatureSelected:function(feat){var opt={data:feat,type:"map"};this.grid.selectFeatures(opt)},selectFeatures:function(features){var grid=this;if(features.type=="grid"){Ext.each(features.data,function(oItem,i,len){var feat=grid.getStore().layer.getFeatureById(features.data[i].id);grid.selectControl.select(feat)})}else{grid.selectControl.select(features.data);var featIndex=new Array();Ext.each(features.data.layer.selectedFeatures,function(feat,i,len){featIndex.push(grid.getStore().indexOfId(feat.id))});grid.getSelectionModel().selectRows(featIndex);this.selectedFeature=this.getSelectionModel().getSelections()}},unSelectFeatures:function(features){var grid=this;if(features.type=="grid"){Ext.each(features.data,function(feat,i,len){var feat=grid.getStore().layer.getFeatureById(feat.id);grid.selectControl.unselect(feat)})}else{this.unselectAll();this.grid.getSelectionModel().clearSelections()}}});
