Page Menu
Home
Code
Search
Configure Global Search
Log In
Files
F884142
BarGauge.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
5 KB
Subscribers
None
BarGauge.js
View Options
/*
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.BarGauge"
]){
dojo
.
_hasResource
[
"dojox.widget.BarGauge"
]
=
true
;
dojo
.
provide
(
"dojox.widget.BarGauge"
);
dojo
.
require
(
"dojox.gfx"
);
dojo
.
require
(
"dojox.widget.gauge._Gauge"
);
dojo
.
experimental
(
"dojox.widget.BarGauge"
);
dojo
.
declare
(
"dojox.widget.gauge.BarLineIndicator"
,[
dojox
.
widget
.
gauge
.
_Indicator
],{
width
:
1
,
_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
);
var
_2
=
[];
if
(
this
.
width
>
1
){
_2
[
0
]
=
this
.
_gauge
.
surface
.
createRect
({
x
:
_1
,
y
:
this
.
_gauge
.
dataY
+
this
.
offset
,
width
:
this
.
width
,
height
:
this
.
length
});
_2
[
0
].
setStroke
({
color
:
this
.
color
});
_2
[
0
].
setFill
(
this
.
color
);
}
else
{
_2
[
0
]
=
this
.
_gauge
.
surface
.
createLine
({
x1
:
_1
,
y1
:
this
.
_gauge
.
dataY
+
this
.
offset
,
x2
:
_1
,
y2
:
this
.
_gauge
.
dataY
+
this
.
offset
+
this
.
length
});
_2
[
0
].
setStroke
({
color
:
this
.
color
});
}
return
_2
;
},
draw
:
function
(
_3
){
var
i
;
if
(
this
.
shapes
){
this
.
_move
(
_3
);
}
else
{
if
(
this
.
shapes
){
for
(
i
=
0
;
i
<
this
.
shapes
.
length
;
i
++
){
this
.
_gauge
.
surface
.
remove
(
this
.
shapes
[
i
]);
}
this
.
shapes
=
null
;
}
if
(
this
.
text
){
this
.
_gauge
.
surface
.
rawNode
.
removeChild
(
this
.
text
);
this
.
text
=
null
;
}
this
.
color
=
this
.
color
||
"#000000"
;
this
.
length
=
this
.
length
||
this
.
_gauge
.
dataHeight
;
this
.
width
=
this
.
width
||
3
;
this
.
offset
=
this
.
offset
||
0
;
this
.
highlight
=
this
.
highlight
||
"#4D4D4D"
;
this
.
highlight2
=
this
.
highlight2
||
"#A3A3A3"
;
this
.
shapes
=
this
.
_getShapes
(
this
.
_gauge
,
this
);
if
(
this
.
label
){
var
v
=
this
.
value
;
if
(
v
<
this
.
_gauge
.
min
){
v
=
this
.
_gauge
.
min
;
}
if
(
v
>
this
.
_gauge
.
max
){
v
=
this
.
_gauge
.
max
;
}
var
_4
=
this
.
_gauge
.
_getPosition
(
v
);
this
.
text
=
this
.
_gauge
.
drawText
(
""
+
this
.
label
,
_4
,
this
.
_gauge
.
dataY
+
this
.
offset
-
5
,
"middle"
,
"top"
,
this
.
color
,
this
.
font
);
}
for
(
i
=
0
;
i
<
this
.
shapes
.
length
;
i
++
){
if
(
this
.
hover
){
this
.
shapes
[
i
].
getEventSource
().
setAttribute
(
"hover"
,
this
.
hover
);
}
if
(
this
.
onDragMove
&&!
this
.
noChange
){
this
.
_gauge
.
connect
(
this
.
shapes
[
i
].
getEventSource
(),
"onmousedown"
,
this
.
_gauge
.
handleMouseDown
);
this
.
shapes
[
i
].
getEventSource
().
style
.
cursor
=
"pointer"
;
}
}
this
.
currentValue
=
this
.
value
;
}
},
_move
:
function
(
_5
){
var
v
=
this
.
value
;
if
(
v
<
this
.
min
){
v
=
this
.
min
;
}
if
(
v
>
this
.
max
){
v
=
this
.
max
;
}
var
c
=
this
.
_gauge
.
_getPosition
(
this
.
currentValue
);
this
.
currentValue
=
v
;
v
=
this
.
_gauge
.
_getPosition
(
v
)
-
this
.
_gauge
.
dataX
;
if
(
_5
){
this
.
shapes
[
0
].
applyTransform
(
dojox
.
gfx
.
matrix
.
translate
(
v
-
(
this
.
shapes
[
0
].
matrix
?
this
.
shapes
[
0
].
matrix
.
dx
:
0
),
0
));
}
else
{
var
_6
=
new
dojo
.
Animation
({
curve
:
[
c
,
v
],
duration
:
this
.
duration
,
easing
:
this
.
easing
});
dojo
.
connect
(
_6
,
"onAnimate"
,
dojo
.
hitch
(
this
,
function
(
_7
){
this
.
shapes
[
0
].
applyTransform
(
dojox
.
gfx
.
matrix
.
translate
(
_7
-
(
this
.
shapes
[
0
].
matrix
?
this
.
shapes
[
0
].
matrix
.
dx
:
0
),
0
));
}));
_6
.
play
();
}
}});
dojo
.
declare
(
"dojox.widget.BarGauge"
,
dojox
.
widget
.
gauge
.
_Gauge
,{
dataX
:
5
,
dataY
:
5
,
dataWidth
:
0
,
dataHeight
:
0
,
_defaultIndicator
:
dojox
.
widget
.
gauge
.
BarLineIndicator
,
startup
:
function
(){
if
(
this
.
getChildren
){
dojo
.
forEach
(
this
.
getChildren
(),
function
(
_8
){
_8
.
startup
();
});
}
if
(
!
this
.
dataWidth
){
this
.
dataWidth
=
this
.
gaugeWidth
-
10
;
}
if
(
!
this
.
dataHeight
){
this
.
dataHeight
=
this
.
gaugeHeight
-
10
;
}
this
.
inherited
(
arguments
);
},
_getPosition
:
function
(
_9
){
return
this
.
dataX
+
Math
.
floor
((
_9
-
this
.
min
)
/
(
this
.
max
-
this
.
min
)
*
this
.
dataWidth
);
},
_getValueForPosition
:
function
(
_a
){
return
(
_a
-
this
.
dataX
)
*
(
this
.
max
-
this
.
min
)
/
this
.
dataWidth
+
this
.
min
;
},
draw
:
function
(){
if
(
!
this
.
surface
){
this
.
createSurface
();
}
var
i
;
if
(
this
.
_rangeData
){
for
(
i
=
0
;
i
<
this
.
_rangeData
.
length
;
i
++
){
this
.
drawRange
(
this
.
_rangeData
[
i
]);
}
if
(
this
.
_img
&&
this
.
image
.
overlay
){
this
.
_img
.
moveToFront
();
}
}
if
(
this
.
_indicatorData
){
for
(
i
=
0
;
i
<
this
.
_indicatorData
.
length
;
i
++
){
this
.
_indicatorData
[
i
].
draw
();
}
}
},
drawRange
:
function
(
_b
){
if
(
_b
.
shape
){
this
.
surface
.
remove
(
_b
.
shape
);
_b
.
shape
=
null
;
}
var
x1
=
this
.
_getPosition
(
_b
.
low
);
var
x2
=
this
.
_getPosition
(
_b
.
high
);
var
_c
=
this
.
surface
.
createRect
({
x
:
x1
,
y
:
this
.
dataY
,
width
:
x2
-
x1
,
height
:
this
.
dataHeight
});
if
(
dojo
.
isArray
(
_b
.
color
)
||
dojo
.
isString
(
_b
.
color
)){
_c
.
setStroke
({
color
:
_b
.
color
});
_c
.
setFill
(
_b
.
color
);
}
else
{
if
(
_b
.
color
.
type
){
var
y
=
this
.
dataY
+
this
.
dataHeight
/
2
;
_b
.
color
.
x1
=
x1
;
_b
.
color
.
x2
=
x2
;
_b
.
color
.
y1
=
y
;
_b
.
color
.
y2
=
y
;
_c
.
setFill
(
_b
.
color
);
_c
.
setStroke
({
color
:
_b
.
color
.
colors
[
0
].
color
});
}
else
{
_c
.
setStroke
({
color
:
"green"
});
_c
.
setFill
(
"green"
);
_c
.
getEventSource
().
setAttribute
(
"class"
,
_b
.
color
.
style
);
}
}
if
(
_b
.
hover
){
_c
.
getEventSource
().
setAttribute
(
"hover"
,
_b
.
hover
);
}
_b
.
shape
=
_c
;
},
getRangeUnderMouse
:
function
(
_d
){
var
_e
=
null
;
var
_f
=
dojo
.
coords
(
this
.
gaugeContent
);
var
x
=
_d
.
clientX
-
_f
.
x
;
var
_10
=
this
.
_getValueForPosition
(
x
);
if
(
this
.
_rangeData
){
for
(
var
i
=
0
;(
i
<
this
.
_rangeData
.
length
)
&&!
_e
;
i
++
){
if
((
Number
(
this
.
_rangeData
[
i
].
low
)
<=
_10
)
&&
(
Number
(
this
.
_rangeData
[
i
].
high
)
>=
_10
)){
_e
=
this
.
_rangeData
[
i
];
}
}
}
return
_e
;
},
_dragIndicator
:
function
(
_11
,
_12
){
var
pos
=
dojo
.
coords
(
_11
.
gaugeContent
);
var
x
=
_12
.
clientX
-
pos
.
x
;
var
_13
=
_11
.
_getValueForPosition
(
x
);
if
(
_13
<
_11
.
min
){
_13
=
_11
.
min
;
}
if
(
_13
>
_11
.
max
){
_13
=
_11
.
max
;
}
_11
.
_drag
.
value
=
_13
;
_11
.
_drag
.
onDragMove
(
_11
.
_drag
);
_11
.
_drag
.
draw
(
true
);
dojo
.
stopEvent
(
_12
);
}});
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Apr 6, 10:24 (1 w, 6 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
25028
Default Alt Text
BarGauge.js (5 KB)
Attached To
rZED Zed
Event Timeline
Log In to Comment