//>>built
define("dojox/geo/openlayers/Layer",["dojo/_base/declare","dojo/_base/lang","dojo/_base/array","dojo/_base/sniff","./Feature"],function(_1,_2,_3,_4,_5){
return _1("dojox.geo.openlayers.Layer",null,{constructor:function(_6,_7){
var ol=_7?_7.olLayer:null;
if(!ol){
ol=_2.delegate(new OpenLayers.Layer(_6,_7));
}
this.olLayer=ol;
this._features=null;
this.olLayer.events.register("moveend",this,_2.hitch(this,this.moveTo));
},renderFeature:function(f){
f.render();
},getDojoMap:function(){
return this.dojoMap;
},addFeature:function(f){
if(_2.isArray(f)){
_3.forEach(f,function(_8){
this.addFeature(_8);
},this);
return;
}
if(this._features==null){
this._features=[];
}
this._features.push(f);
f._setLayer(this);
},removeFeature:function(f){
var ft=this._features;
if(ft==null){
return;
}
if(f instanceof Array){
f=f.slice(0);
_3.forEach(f,function(_9){
this.removeFeature(_9);
},this);
return;
}
var i=_3.indexOf(ft,f);
if(i!=-1){
ft.splice(i,1);
}
f._setLayer(null);
f.remove();
},removeFeatureAt:function(_a){
var ft=this._features;
var f=ft[_a];
if(!f){
return;
}
ft.splice(_a,1);
f._setLayer(null);
f.remove();
},getFeatures:function(){
return this._features;
},getFeatureAt:function(i){
if(this._features==null){
return undefined;
}
return this._features[i];
},getFeatureCount:function(){
if(this._features==null){
return 0;
}
return this._features.length;
},clear:function(){
var fa=this.getFeatures();
this.removeFeature(fa);
},moveTo:function(_b){
if(_b.zoomChanged){
if(this._features==null){
return;
}
_3.forEach(this._features,function(f){
this.renderFeature(f);
},this);
}
},redraw:function(){
if(_4.isIE){
setTimeout(_2.hitch(this,function(){
this.olLayer.redraw();
},0));
}else{
this.olLayer.redraw();
}
},added:function(){
}});
});
