//>>built define("dojox/geo/charting/Feature",["dojo/_base/lang","dojo/_base/declare","dojo/_base/array","dojo/_base/html","dojo/dom","dojo/_base/event","dojox/gfx/fx","dojox/color"],function(_1,_2,_3,_4,_5,_6,fx,_7){ return _2("dojox.geo.charting.Feature",null,{_isZoomIn:false,isSelected:false,markerText:null,constructor:function(_8,_9,_a){ this.id=_9; this.shape=_8.mapObj.createGroup(); this.parent=_8; this.mapObj=_8.mapObj; this._bbox=_a.bbox; this._center=_a.center; this._defaultFill=_8.defaultColor; this._highlightFill=_8.highlightColor; this._defaultStroke={width:this._normalizeStrokeWeight(0.5),color:"white"}; var _b=(_1.isArray(_a.shape[0]))?_a.shape:[_a.shape]; _3.forEach(_b,function(_c){ this.shape.createPolyline(_c).setStroke(this._defaultStroke); },this); this.unsetValue(); },unsetValue:function(){ this.value=null; this.unsetColor(); },unsetColor:function(){ this._defaultFill=this.parent.defaultColor; var _d=new _7.Color(this.parent.defaultColor).toHsl(); _d.l=1.2*_d.l; this._highlightFill=_7.fromHsl(_d); this._setFillWith(this._defaultFill); },setValue:function(_e){ this.value=_e; if(_e==null){ this.unsetValue(); }else{ if(this.parent.series.length!=0){ for(var i=0;i=_f.min)&&(_e<_f.max)){ this._setFillWith(_f.color); this._defaultFill=_f.color; var col=new _7.Color(_f.color).toHsv(); col.v=(col.v+20); this._highlightFill=_7.fromHsv(col); return; } } this.unsetColor(); } } },_setFillWith:function(_10){ var _11=(_1.isArray(this.shape.children))?this.shape.children:[this.shape.children]; _3.forEach(_11,_1.hitch(this,function(_12){ if(this.parent.colorAnimationDuration>0){ var _13=fx.animateFill({shape:_12,color:{start:_12.getFill(),end:_10},duration:this.parent.colorAnimationDuration}); _13.play(); }else{ _12.setFill(_10); } })); },_setStrokeWith:function(_14){ var _15=(_1.isArray(this.shape.children))?this.shape.children:[this.shape.children]; _3.forEach(_15,function(_16){ _16.setStroke({color:_14.color,width:_14.width,join:"round"}); }); },_normalizeStrokeWeight:function(_17){ var _18=this.shape._getRealMatrix(); return (dojox.gfx.renderer!="vml")?_17/(this.shape._getRealMatrix()||{xx:1}).xx:_17; },_onmouseoverHandler:function(evt){ this.parent.onFeatureOver(this); this._setFillWith(this._highlightFill); this.mapObj.marker.show(this.id,evt); },_onmouseoutHandler:function(){ this._setFillWith(this._defaultFill); this.mapObj.marker.hide(); _4.style("mapZoomCursor","display","none"); },_onmousemoveHandler:function(evt){ if(this.mapObj.marker._needTooltipRefresh){ this.mapObj.marker.show(this.id,evt); } if(this.isSelected&&evt){ if(this.parent.enableFeatureZoom){ evt=_6.fix(evt||window.event); _4.style("mapZoomCursor","left",evt.pageX+12+"px"); _4.style("mapZoomCursor","top",evt.pageY+"px"); _4.byId("mapZoomCursor").className=this._isZoomIn?"mapZoomOut":"mapZoomIn"; _4.style("mapZoomCursor","display","block"); }else{ _4.style("mapZoomCursor","display","none"); } } },_onclickHandler:function(evt){ this.parent.onFeatureClick(this); if(!this.isSelected){ this.parent.deselectAll(); this.select(true); this._onmousemoveHandler(evt); }else{ if(this.parent.enableFeatureZoom){ if(this._isZoomIn){ this._zoomOut(); }else{ this._zoomIn(); } } } },select:function(_19){ if(_19){ this.shape.moveToFront(); this._setStrokeWith({color:"black",width:this._normalizeStrokeWeight(2)}); this._setFillWith(this._highlightFill); this.isSelected=true; this.parent.selectedFeature=this; }else{ this._setStrokeWith(this._defaultStroke); this._setFillWith(this._defaultFill); this.isSelected=false; this._isZoomIn=false; } },_zoomIn:function(){ var _1a=this.mapObj.marker; _1a.hide(); this.parent.fitToMapArea(this._bbox,15,true,_1.hitch(this,function(){ this._setStrokeWith({color:"black",width:this._normalizeStrokeWeight(2)}); _1a._needTooltipRefresh=true; this.parent.onZoomEnd(this); })); this._isZoomIn=true; _5.byId("mapZoomCursor").className=""; },_zoomOut:function(){ var _1b=this.mapObj.marker; _1b.hide(); this.parent.fitToMapContents(3,true,_1.hitch(this,function(){ this._setStrokeWith({color:"black",width:this._normalizeStrokeWeight(2)}); _1b._needTooltipRefresh=true; this.parent.onZoomEnd(this); })); this._isZoomIn=false; _5.byId("mapZoomCursor").className=""; },init:function(){ this.shape.id=this.id; this.tooltip=null; }}); });