1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
/*
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
*/
dojo._xdResourceLoaded(function(dojo, dijit, dojox){
return {depends: [["provide", "dojox.charting.action2d.Magnify"],
["require", "dojox.charting.action2d.Base"],
["require", "dojox.gfx.matrix"],
["require", "dojo.fx"]],
defineResource: function(dojo, dijit, dojox){if(!dojo._hasResource["dojox.charting.action2d.Magnify"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
dojo._hasResource["dojox.charting.action2d.Magnify"] = true;
dojo.provide("dojox.charting.action2d.Magnify");
dojo.require("dojox.charting.action2d.Base");
dojo.require("dojox.gfx.matrix");
dojo.require("dojo.fx");
/*=====
dojo.declare("dojox.charting.action2d.__MagnifyCtorArgs", dojox.charting.action2d.__BaseCtorArgs, {
// summary:
// Additional arguments for highlighting actions.
// scale: Number?
// The amount to magnify the given object to. Default is 2.
scale: 2
});
=====*/
(function(){
var DEFAULT_SCALE = 2,
m = dojox.gfx.matrix,
gf = dojox.gfx.fx;
dojo.declare("dojox.charting.action2d.Magnify", dojox.charting.action2d.Base, {
// summary:
// Create an action that magnifies the object the action is applied to.
// the data description block for the widget parser
defaultParams: {
duration: 400, // duration of the action in ms
easing: dojo.fx.easing.backOut, // easing for the action
scale: DEFAULT_SCALE // scale of magnification
},
optionalParams: {}, // no optional parameters
constructor: function(chart, plot, kwArgs){
// summary:
// Create the magnifying action.
// chart: dojox.charting.Chart2D
// The chart this action belongs to.
// plot: String?
// The plot to apply the action to. If not passed, "default" is assumed.
// kwArgs: dojox.charting.action2d.__MagnifyCtorArgs?
// Optional keyword arguments for this action.
// process optional named parameters
this.scale = kwArgs && typeof kwArgs.scale == "number" ? kwArgs.scale : DEFAULT_SCALE;
this.connect();
},
process: function(o){
// summary:
// Process the action on the given object.
// o: dojox.gfx.Shape
// The object on which to process the magnifying action.
if(!o.shape || !(o.type in this.overOutEvents) ||
!("cx" in o) || !("cy" in o)){ return; }
var runName = o.run.name, index = o.index, vector = [], anim, init, scale;
if(runName in this.anim){
anim = this.anim[runName][index];
}else{
this.anim[runName] = {};
}
if(anim){
anim.action.stop(true);
}else{
this.anim[runName][index] = anim = {};
}
if(o.type == "onmouseover"){
init = m.identity;
scale = this.scale;
}else{
init = m.scaleAt(this.scale, o.cx, o.cy);
scale = 1 / this.scale;
}
var kwArgs = {
shape: o.shape,
duration: this.duration,
easing: this.easing,
transform: [
{name: "scaleAt", start: [1, o.cx, o.cy], end: [scale, o.cx, o.cy]},
init
]
};
if(o.shape){
vector.push(gf.animateTransform(kwArgs));
}
if(o.oultine){
kwArgs.shape = o.outline;
vector.push(gf.animateTransform(kwArgs));
}
if(o.shadow){
kwArgs.shape = o.shadow;
vector.push(gf.animateTransform(kwArgs));
}
if(!vector.length){
delete this.anim[runName][index];
return;
}
anim.action = dojo.fx.combine(vector);
if(o.type == "onmouseout"){
dojo.connect(anim.action, "onEnd", this, function(){
if(this.anim[runName]){
delete this.anim[runName][index];
}
});
}
anim.action.play();
}
});
})();
}
}};});
|