diff options
Diffstat (limited to 'js/dojo-1.6/dojox/widget/gauge/BarIndicator.js')
| -rw-r--r-- | js/dojo-1.6/dojox/widget/gauge/BarIndicator.js | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/js/dojo-1.6/dojox/widget/gauge/BarIndicator.js b/js/dojo-1.6/dojox/widget/gauge/BarIndicator.js new file mode 100644 index 0000000..de72b02 --- /dev/null +++ b/js/dojo-1.6/dojox/widget/gauge/BarIndicator.js @@ -0,0 +1,83 @@ +/*
+ Copyright (c) 2004-2011, 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']){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+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(){
+ // summary:
+ // Override of dojox.widget.BarLineIndicator._getShapes
+ 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 pos = this._gauge._getPosition(v);
+ if(pos == this.dataX){pos = this.dataX+1;}
+ var y = this._gauge.dataY + Math.floor((this._gauge.dataHeight - this.width)/2) + this.offset;
+
+ var shapes = [];
+ shapes[0] = this._gauge.surface.createRect({x:this._gauge.dataX, y:y, width:pos - this._gauge.dataX, height:this.width});
+ shapes[0].setStroke({color: this.color});
+ shapes[0].setFill(this.color);
+ shapes[1] = this._gauge.surface.createLine({ x1:this._gauge.dataX, y1:y, x2:pos, y2:y });
+ shapes[1].setStroke({color: this.highlight});
+ if(this.highlight2){
+ y--;
+ shapes[2] = this._gauge.surface.createLine({ x1:this._gauge.dataX, y1:y, x2:pos, y2:y });
+ shapes[2].setStroke({color: this.highlight2});
+ }
+
+ return shapes;
+ },
+ _createShapes: function(val){
+ // summary:
+ // Creates a shallow copy of the current shapes while adjusting for the new value
+ for(var i in this.shapes){
+ i = this.shapes[i];
+ var newShape = {};
+ for(var j in i){
+ newShape[j] = i[j];
+ }
+ if(i.shape.type == "line"){
+ newShape.shape.x2 = val+newShape.shape.x1;
+ }else if(i.shape.type == "rect"){
+ newShape.width = val;
+ }
+ i.setShape(newShape);
+ }
+ },
+ _move: function(/*Boolean?*/ dontAnimate){
+ // summary:
+ // Override of dojox.widget.BarLineIndicator._move to resize the bar (rather than moving it)
+ var changed = 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(dontAnimate){
+ this._createShapes(v);
+ }else{
+ if(c!=v){
+ var anim = new dojo.Animation({curve: [c, v], duration: this.duration, easing: this.easing});
+ dojo.connect(anim, "onAnimate", dojo.hitch(this, this._createShapes));
+ anim.play();
+ }
+ }
+ }
+});
+
+}
|
