Project

General

Profile

Statistics
| Revision:

root / trunk / web / dojo / dojox / widget / gauge / BarIndicator.js

History | View | Annotate | Download (1.98 KB)

1
/*
2
        Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved.
3
        Available via Academic Free License >= 2.1 OR the modified BSD license.
4
        see: http://dojotoolkit.org/license for details
5
*/
6

    
7

    
8
if(!dojo._hasResource["dojox.widget.gauge.BarIndicator"]){
9
dojo._hasResource["dojox.widget.gauge.BarIndicator"]=true;
10
dojo.provide("dojox.widget.gauge.BarIndicator");
11
dojo.require("dojox.widget.BarGauge");
12
dojo.experimental("dojox.widget.gauge.BarIndicator");
13
dojo.declare("dojox.widget.gauge.BarIndicator",[dojox.widget.gauge.BarLineIndicator],{_getShapes:function(){
14
if(!this._gauge){
15
return null;
16
}
17
var v=this.value;
18
if(v<this._gauge.min){
19
v=this._gauge.min;
20
}
21
if(v>this._gauge.max){
22
v=this._gauge.max;
23
}
24
var _1=this._gauge._getPosition(v);
25
if(_1==this.dataX){
26
_1=this.dataX+1;
27
}
28
var y=this._gauge.dataY+Math.floor((this._gauge.dataHeight-this.width)/2)+this.offset;
29
var _2=[];
30
_2[0]=this._gauge.surface.createRect({x:this._gauge.dataX,y:y,width:_1-this._gauge.dataX,height:this.width});
31
_2[0].setStroke({color:this.color});
32
_2[0].setFill(this.color);
33
_2[1]=this._gauge.surface.createLine({x1:this._gauge.dataX,y1:y,x2:_1,y2:y});
34
_2[1].setStroke({color:this.highlight});
35
if(this.highlight2){
36
y--;
37
_2[2]=this._gauge.surface.createLine({x1:this._gauge.dataX,y1:y,x2:_1,y2:y});
38
_2[2].setStroke({color:this.highlight2});
39
}
40
return _2;
41
},_createShapes:function(_3){
42
for(var i in this.shapes){
43
i=this.shapes[i];
44
var _4={};
45
for(var j in i){
46
_4[j]=i[j];
47
}
48
if(i.shape.type=="line"){
49
_4.shape.x2=_3+_4.shape.x1;
50
}else{
51
if(i.shape.type=="rect"){
52
_4.width=_3;
53
}
54
}
55
i.setShape(_4);
56
}
57
},_move:function(_5){
58
var _6=false;
59
var c;
60
var v=this.value;
61
if(v<this.min){
62
v=this.min;
63
}
64
if(v>this.max){
65
v=this.max;
66
}
67
c=this._gauge._getPosition(this.currentValue);
68
this.currentValue=v;
69
v=this._gauge._getPosition(v)-this._gauge.dataX;
70
if(_5){
71
this._createShapes(v);
72
}else{
73
if(c!=v){
74
var _7=new dojo.Animation({curve:[c,v],duration:this.duration,easing:this.easing});
75
dojo.connect(_7,"onAnimate",dojo.hitch(this,this._createShapes));
76
_7.play();
77
}
78
}
79
}});
80
}