| /* |
| Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved. |
| Available via Academic Free License >= 2.1 OR the modified BSD license. |
| see: http://dojotoolkit.org/license for details |
| */ |
| |
| |
| if(!dojo._hasResource["dojox.widget.gauge.BarIndicator"]){ |
| dojo._hasResource["dojox.widget.gauge.BarIndicator"]=true; |
| dojo.provide("dojox.widget.gauge.BarIndicator"); |
| dojo.require("dojox.widget.BarGauge"); |
| dojo.experimental("dojox.widget.gauge.BarIndicator"); |
| dojo.declare("dojox.widget.gauge.BarIndicator",[dojox.widget.gauge.BarLineIndicator],{_getShapes:function(){ |
| if(!this._gauge){ |
| return null; |
| } |
| var v=this.value; |
| if(v<this._gauge.min){ |
| v=this._gauge.min; |
| } |
| if(v>this._gauge.max){ |
| v=this._gauge.max; |
| } |
| var _1=this._gauge._getPosition(v); |
| if(_1==this.dataX){ |
| _1=this.dataX+1; |
| } |
| var y=this._gauge.dataY+Math.floor((this._gauge.dataHeight-this.width)/2)+this.offset; |
| var _2=[]; |
| _2[0]=this._gauge.surface.createRect({x:this._gauge.dataX,y:y,width:_1-this._gauge.dataX,height:this.width}); |
| _2[0].setStroke({color:this.color}); |
| _2[0].setFill(this.color); |
| _2[1]=this._gauge.surface.createLine({x1:this._gauge.dataX,y1:y,x2:_1,y2:y}); |
| _2[1].setStroke({color:this.highlight}); |
| if(this.highlight2){ |
| y--; |
| _2[2]=this._gauge.surface.createLine({x1:this._gauge.dataX,y1:y,x2:_1,y2:y}); |
| _2[2].setStroke({color:this.highlight2}); |
| } |
| return _2; |
| },_createShapes:function(_3){ |
| for(var i in this.shapes){ |
| i=this.shapes[i]; |
| var _4={}; |
| for(var j in i){ |
| _4[j]=i[j]; |
| } |
| if(i.shape.type=="line"){ |
| _4.shape.x2=_3+_4.shape.x1; |
| }else{ |
| if(i.shape.type=="rect"){ |
| _4.width=_3; |
| } |
| } |
| i.setShape(_4); |
| } |
| },_move:function(_5){ |
| var _6=false; |
| var c; |
| var v=this.value; |
| if(v<this.min){ |
| v=this.min; |
| } |
| if(v>this.max){ |
| v=this.max; |
| } |
| c=this._gauge._getPosition(this.currentValue); |
| this.currentValue=v; |
| v=this._gauge._getPosition(v)-this._gauge.dataX; |
| if(_5){ |
| this._createShapes(v); |
| }else{ |
| if(c!=v){ |
| var _7=new dojo.Animation({curve:[c,v],duration:this.duration,easing:this.easing}); |
| dojo.connect(_7,"onAnimate",dojo.hitch(this,this._createShapes)); |
| _7.play(); |
| } |
| } |
| }}); |
| } |