Page Menu
Home
Code
Search
Configure Global Search
Log In
Files
F884846
_Gauge.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
8 KB
Subscribers
None
_Gauge.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.gauge._Gauge"
]){
dojo
.
_hasResource
[
"dojox.widget.gauge._Gauge"
]
=
true
;
dojo
.
provide
(
"dojox.widget.gauge._Gauge"
);
dojo
.
require
(
"dijit._Widget"
);
dojo
.
require
(
"dijit._Templated"
);
dojo
.
require
(
"dijit._Container"
);
dojo
.
require
(
"dijit._Contained"
);
dojo
.
require
(
"dijit.Tooltip"
);
dojo
.
require
(
"dojo.fx.easing"
);
dojo
.
require
(
"dojox.gfx"
);
dojo
.
experimental
(
"dojox.widget.gauge._Gauge"
);
dojo
.
declare
(
"dojox.widget.gauge._Gauge"
,[
dijit
.
_Widget
,
dijit
.
_Templated
,
dijit
.
_Container
],{
width
:
0
,
height
:
0
,
background
:
null
,
min
:
0
,
max
:
0
,
image
:
null
,
useRangeStyles
:
0
,
useTooltip
:
true
,
majorTicks
:
null
,
minorTicks
:
null
,
_defaultIndicator
:
null
,
defaultColors
:
[[
0
,
84
,
170
,
1
],[
68
,
119
,
187
,
1
],[
102
,
153
,
204
,
1
],[
153
,
187
,
238
,
1
],[
153
,
204
,
255
,
1
],[
204
,
238
,
255
,
1
],[
221
,
238
,
255
,
1
]],
min
:
null
,
max
:
null
,
surface
:
null
,
hideValues
:
false
,
gaugeContent
:
undefined
,
templateString
:
dojo
.
cache
(
"dojox.widget.gauge"
,
"_Gauge.html"
,
"<div>\n\t<div class=\"dojoxGaugeContent\" dojoAttachPoint=\"gaugeContent\"></div>\n\t<div dojoAttachPoint=\"containerNode\"></div>\n\t<div dojoAttachPoint=\"mouseNode\"></div>\n</div>\n"
),
_backgroundDefault
:
{
color
:
"#E0E0E0"
},
_rangeData
:
null
,
_indicatorData
:
null
,
_drag
:
null
,
_img
:
null
,
_overOverlay
:
false
,
_lastHover
:
""
,
startup
:
function
(){
if
(
this
.
image
===
null
){
this
.
image
=
{};
}
this
.
connect
(
this
.
gaugeContent
,
"onmousemove"
,
this
.
handleMouseMove
);
this
.
connect
(
this
.
gaugeContent
,
"onmouseover"
,
this
.
handleMouseOver
);
this
.
connect
(
this
.
gaugeContent
,
"onmouseout"
,
this
.
handleMouseOut
);
this
.
connect
(
this
.
gaugeContent
,
"onmouseup"
,
this
.
handleMouseUp
);
if
(
!
dojo
.
isArray
(
this
.
ranges
)){
this
.
ranges
=
[];
}
if
(
!
dojo
.
isArray
(
this
.
indicators
)){
this
.
indicators
=
[];
}
var
_1
=
[],
_2
=
[];
var
i
;
if
(
this
.
hasChildren
()){
var
_3
=
this
.
getChildren
();
for
(
i
=
0
;
i
<
_3
.
length
;
i
++
){
if
(
/dojox\.widget\..*Indicator/
.
test
(
_3
[
i
].
declaredClass
)){
_2
.
push
(
_3
[
i
]);
continue
;
}
switch
(
_3
[
i
].
declaredClass
){
case
"dojox.widget.gauge.Range"
:
_1
.
push
(
_3
[
i
]);
break
;
}
}
this
.
ranges
=
this
.
ranges
.
concat
(
_1
);
this
.
indicators
=
this
.
indicators
.
concat
(
_2
);
}
if
(
!
this
.
background
){
this
.
background
=
this
.
_backgroundDefault
;
}
this
.
background
=
this
.
background
.
color
||
this
.
background
;
if
(
!
this
.
surface
){
this
.
createSurface
();
}
this
.
addRanges
(
this
.
ranges
);
if
(
this
.
minorTicks
&&
this
.
minorTicks
.
interval
){
this
.
setMinorTicks
(
this
.
minorTicks
);
}
if
(
this
.
majorTicks
&&
this
.
majorTicks
.
interval
){
this
.
setMajorTicks
(
this
.
majorTicks
);
}
for
(
i
=
0
;
i
<
this
.
indicators
.
length
;
i
++
){
this
.
addIndicator
(
this
.
indicators
[
i
]);
}
},
_setTicks
:
function
(
_4
,
_5
,
_6
){
var
i
;
if
(
_4
&&
dojo
.
isArray
(
_4
.
_ticks
)){
for
(
i
=
0
;
i
<
_4
.
_ticks
.
length
;
i
++
){
this
.
removeIndicator
(
_4
.
_ticks
[
i
]);
}
}
var
t
=
{
length
:
_5
.
length
,
offset
:
_5
.
offset
,
noChange
:
true
};
if
(
_5
.
color
){
t
.
color
=
_5
.
color
;
}
if
(
_5
.
font
){
t
.
font
=
_5
.
font
;
}
_5
.
_ticks
=
[];
for
(
i
=
this
.
min
;
i
<=
this
.
max
;
i
+=
_5
.
interval
){
t
.
value
=
i
;
if
(
_6
){
t
.
label
=
""
+
i
;
}
_5
.
_ticks
.
push
(
this
.
addIndicator
(
t
));
}
return
_5
;
},
setMinorTicks
:
function
(
_7
){
this
.
minorTicks
=
this
.
_setTicks
(
this
.
minorTicks
,
_7
,
false
);
},
setMajorTicks
:
function
(
_8
){
this
.
majorTicks
=
this
.
_setTicks
(
this
.
majorTicks
,
_8
,
true
);
},
postCreate
:
function
(){
if
(
this
.
hideValues
){
dojo
.
style
(
this
.
containerNode
,
"display"
,
"none"
);
}
dojo
.
style
(
this
.
mouseNode
,
"width"
,
"0"
);
dojo
.
style
(
this
.
mouseNode
,
"height"
,
"0"
);
dojo
.
style
(
this
.
mouseNode
,
"position"
,
"absolute"
);
dojo
.
style
(
this
.
mouseNode
,
"z-index"
,
"100"
);
if
(
this
.
useTooltip
){
dijit
.
showTooltip
(
"test"
,
this
.
mouseNode
);
dijit
.
hideTooltip
(
this
.
mouseNode
);
}
},
createSurface
:
function
(){
this
.
gaugeContent
.
style
.
width
=
this
.
width
+
"px"
;
this
.
gaugeContent
.
style
.
height
=
this
.
height
+
"px"
;
this
.
surface
=
dojox
.
gfx
.
createSurface
(
this
.
gaugeContent
,
this
.
width
,
this
.
height
);
this
.
_background
=
this
.
surface
.
createRect
({
x
:
0
,
y
:
0
,
width
:
this
.
width
,
height
:
this
.
height
});
this
.
_background
.
setFill
(
this
.
background
);
if
(
this
.
image
.
url
){
this
.
_img
=
this
.
surface
.
createImage
({
width
:
this
.
image
.
width
||
this
.
width
,
height
:
this
.
image
.
height
||
this
.
height
,
src
:
this
.
image
.
url
});
if
(
this
.
image
.
overlay
){
this
.
_img
.
getEventSource
().
setAttribute
(
"overlay"
,
true
);
}
if
(
this
.
image
.
x
||
this
.
image
.
y
){
this
.
_img
.
setTransform
({
dx
:
this
.
image
.
x
||
0
,
dy
:
this
.
image
.
y
||
0
});
}
}
},
setBackground
:
function
(
_9
){
if
(
!
_9
){
_9
=
this
.
_backgroundDefault
;
}
this
.
background
=
_9
.
color
||
_9
;
this
.
_background
.
setFill
(
this
.
background
);
},
addRange
:
function
(
_a
){
this
.
addRanges
([
_a
]);
},
addRanges
:
function
(
_b
){
if
(
!
this
.
_rangeData
){
this
.
_rangeData
=
[];
}
var
_c
;
for
(
var
i
=
0
;
i
<
_b
.
length
;
i
++
){
_c
=
_b
[
i
];
if
((
this
.
min
===
null
)
||
(
_c
.
low
<
this
.
min
)){
this
.
min
=
_c
.
low
;
}
if
((
this
.
max
===
null
)
||
(
_c
.
high
>
this
.
max
)){
this
.
max
=
_c
.
high
;
}
if
(
!
_c
.
color
){
var
_d
=
this
.
_rangeData
.
length
%
this
.
defaultColors
.
length
;
if
(
dojox
.
gfx
.
svg
&&
this
.
useRangeStyles
>
0
){
_d
=
(
this
.
_rangeData
.
length
%
this
.
useRangeStyles
)
+
1
;
_c
.
color
=
{
style
:
"dojoxGaugeRange"
+
_d
};
}
else
{
_d
=
this
.
_rangeData
.
length
%
this
.
defaultColors
.
length
;
_c
.
color
=
this
.
defaultColors
[
_d
];
}
}
this
.
_rangeData
[
this
.
_rangeData
.
length
]
=
_c
;
}
this
.
draw
();
},
addIndicator
:
function
(
_e
){
_e
.
_gauge
=
this
;
if
(
!
_e
.
declaredClass
){
_e
=
new
this
.
_defaultIndicator
(
_e
);
}
if
(
!
_e
.
hideValue
){
this
.
containerNode
.
appendChild
(
_e
.
domNode
);
}
if
(
!
this
.
_indicatorData
){
this
.
_indicatorData
=
[];
}
this
.
_indicatorData
[
this
.
_indicatorData
.
length
]
=
_e
;
_e
.
draw
();
return
_e
;
},
removeIndicator
:
function
(
_f
){
for
(
var
i
=
0
;
i
<
this
.
_indicatorData
.
length
;
i
++
){
if
(
this
.
_indicatorData
[
i
]
===
_f
){
this
.
_indicatorData
.
splice
(
i
,
1
);
_f
.
remove
();
break
;
}
}
},
moveIndicatorToFront
:
function
(
_10
){
if
(
_10
.
shapes
){
for
(
var
i
=
0
;
i
<
_10
.
shapes
.
length
;
i
++
){
_10
.
shapes
[
i
].
moveToFront
();
}
}
},
drawText
:
function
(
txt
,
x
,
y
,
_11
,
_12
,
_13
,
_14
){
var
t
=
this
.
surface
.
createText
({
x
:
x
,
y
:
y
,
text
:
txt
,
align
:
_11
});
t
.
setFill
(
_13
);
t
.
setFont
(
_14
);
return
t
;
},
removeText
:
function
(
t
){
this
.
surface
.
rawNode
.
removeChild
(
t
);
},
updateTooltip
:
function
(
txt
,
e
){
if
(
this
.
_lastHover
!=
txt
){
if
(
txt
!==
""
){
dijit
.
hideTooltip
(
this
.
mouseNode
);
dijit
.
showTooltip
(
txt
,
this
.
mouseNode
);
}
else
{
dijit
.
hideTooltip
(
this
.
mouseNode
);
}
this
.
_lastHover
=
txt
;
}
},
handleMouseOver
:
function
(
_15
){
var
_16
=
_15
.
target
.
getAttribute
(
"hover"
);
if
(
_15
.
target
.
getAttribute
(
"overlay"
)){
this
.
_overOverlay
=
true
;
var
r
=
this
.
getRangeUnderMouse
(
_15
);
if
(
r
&&
r
.
hover
){
_16
=
r
.
hover
;
}
}
if
(
this
.
useTooltip
&&!
this
.
_drag
){
if
(
_16
){
this
.
updateTooltip
(
_16
,
_15
);
}
else
{
this
.
updateTooltip
(
""
,
_15
);
}
}
},
handleMouseOut
:
function
(
_17
){
if
(
_17
.
target
.
getAttribute
(
"overlay"
)){
this
.
_overOverlay
=
false
;
}
if
(
this
.
useTooltip
&&
this
.
mouseNode
){
dijit
.
hideTooltip
(
this
.
mouseNode
);
}
},
handleMouseDown
:
function
(
_18
){
for
(
var
i
=
0
;
i
<
this
.
_indicatorData
.
length
;
i
++
){
var
_19
=
this
.
_indicatorData
[
i
].
shapes
;
for
(
var
s
=
0
;
s
<
_19
.
length
;
s
++
){
if
(
_19
[
s
].
getEventSource
()
==
_18
.
target
){
this
.
_drag
=
this
.
_indicatorData
[
i
];
s
=
_19
.
length
;
i
=
this
.
_indicatorData
.
length
;
}
}
}
dojo
.
stopEvent
(
_18
);
},
handleMouseUp
:
function
(
_1a
){
this
.
_drag
=
null
;
dojo
.
stopEvent
(
_1a
);
},
handleMouseMove
:
function
(
_1b
){
if
(
_1b
){
dojo
.
style
(
this
.
mouseNode
,
"left"
,
_1b
.
pageX
+
1
+
"px"
);
dojo
.
style
(
this
.
mouseNode
,
"top"
,
_1b
.
pageY
+
1
+
"px"
);
}
if
(
this
.
_drag
){
this
.
_dragIndicator
(
this
,
_1b
);
}
else
{
if
(
this
.
useTooltip
&&
this
.
_overOverlay
){
var
r
=
this
.
getRangeUnderMouse
(
_1b
);
if
(
r
&&
r
.
hover
){
this
.
updateTooltip
(
r
.
hover
,
_1b
);
}
else
{
this
.
updateTooltip
(
""
,
_1b
);
}
}
}
}});
dojo
.
declare
(
"dojox.widget.gauge.Range"
,[
dijit
.
_Widget
,
dijit
.
_Contained
],{
low
:
0
,
high
:
0
,
hover
:
""
,
color
:
null
,
size
:
0
,
startup
:
function
(){
this
.
color
=
this
.
color
.
color
||
this
.
color
;
}});
dojo
.
declare
(
"dojox.widget.gauge._Indicator"
,[
dijit
.
_Widget
,
dijit
.
_Contained
,
dijit
.
_Templated
],{
value
:
0
,
type
:
""
,
color
:
"black"
,
label
:
""
,
font
:
{
family
:
"sans-serif"
,
size
:
"12px"
},
length
:
0
,
width
:
0
,
offset
:
0
,
hover
:
""
,
front
:
false
,
easing
:
dojo
.
_defaultEasing
,
duration
:
1000
,
hideValue
:
false
,
noChange
:
false
,
_gauge
:
null
,
title
:
""
,
templateString
:
dojo
.
cache
(
"dojox.widget.gauge"
,
"_Indicator.html"
,
"<div class=\"dojoxGaugeIndicatorDiv\">\n\t<label class=\"dojoxGaugeIndicatorLabel\" for=\"${title}\">${title}:</label>\n\t<input class=\"dojoxGaugeIndicatorInput\" name=\"${title}\" size=\"5\" value=\"${value}\" dojoAttachPoint=\"valueNode\" dojoAttachEvent=\"onchange:_update\"></input>\n</div>\n"
),
startup
:
function
(){
if
(
this
.
onDragMove
){
this
.
onDragMove
=
dojo
.
hitch
(
this
.
onDragMove
);
}
},
postCreate
:
function
(){
if
(
this
.
title
===
""
){
dojo
.
style
(
this
.
domNode
,
"display"
,
"none"
);
}
if
(
dojo
.
isString
(
this
.
easing
)){
this
.
easing
=
dojo
.
getObject
(
this
.
easing
);
}
},
_update
:
function
(
_1c
){
var
_1d
=
this
.
valueNode
.
value
;
if
(
_1d
===
""
){
this
.
value
=
null
;
}
else
{
this
.
value
=
Number
(
_1d
);
this
.
hover
=
this
.
title
+
": "
+
_1d
;
}
if
(
this
.
_gauge
){
this
.
draw
();
this
.
valueNode
.
value
=
this
.
value
;
if
((
this
.
title
==
"Target"
||
this
.
front
)
&&
this
.
_gauge
.
moveIndicator
){
this
.
_gauge
.
moveIndicatorToFront
(
this
);
}
}
},
update
:
function
(
_1e
){
if
(
!
this
.
noChange
){
this
.
valueNode
.
value
=
_1e
;
this
.
_update
();
}
},
onDragMove
:
function
(){
this
.
value
=
Math
.
floor
(
this
.
value
);
this
.
valueNode
.
value
=
this
.
value
;
this
.
hover
=
this
.
title
+
": "
+
this
.
value
;
},
draw
:
function
(
_1f
){
},
remove
:
function
(){
for
(
var
i
=
0
;
i
<
this
.
shapes
.
length
;
i
++
){
this
.
_gauge
.
surface
.
remove
(
this
.
shapes
[
i
]);
}
if
(
this
.
text
){
this
.
_gauge
.
surface
.
remove
(
this
.
text
);
}
}});
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Apr 6, 11:23 (2 w, 18 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
26759
Default Alt Text
_Gauge.js (8 KB)
Attached To
rZED Zed
Event Timeline
Log In to Comment