1 function downV3(event
, g
, context
) {
2 context
.initializeMouseDown(event
, g
, context
);
3 if (event
.altKey
|| event
.shiftKey
) {
4 Dygraph
.startZoom(event
, g
, context
);
6 Dygraph
.startPan(event
, g
, context
);
10 function moveV3(event
, g
, context
) {
11 if (context
.isPanning
) {
12 Dygraph
.movePan(event
, g
, context
);
13 } else if (context
.isZooming
) {
14 Dygraph
.moveZoom(event
, g
, context
);
18 function upV3(event
, g
, context
) {
19 if (context
.isPanning
) {
20 Dygraph
.endPan(event
, g
, context
);
21 } else if (context
.isZooming
) {
22 Dygraph
.endZoom(event
, g
, context
);
26 function dblClickV3(event
, g
, context
) {
34 function scrollV3(event
, g
, context
) {
35 var normal
= event
.detail
? event
.detail
* -1 : event
.wheelDelta
/ 40;
36 // For me the normalized value shows 0.075 for one click. If I took
37 // that verbatim, it would be a 7.5%. I think I'm gonna take 1/10 of that
.
38 // (double for left and right side)
39 var percentage
= normal
/ 100;
42 Dygraph
.cancelEvent(event
);
45 function zoom(g
, percentage
) {
46 // Adjusts [x, y] toward each other by percentage%
47 function adjustAxis(axis
, percentage
) {
48 var delta
= axis
[1] - axis
[0];
49 var increment
= delta
* percentage
;
50 return [ axis
[0] + increment
, axis
[1] - increment
];
52 var yAxes
= g
.yAxisRanges();
54 for (var i
= 0; i
< yAxes
.length
; i
++) {
55 newYAxes
[i
] = adjustAxis(yAxes
[i
], percentage
);
59 dateWindow
: adjustAxis(g
.xAxisRange(), percentage
),
60 valueRange
: newYAxes
[0]
67 function downV4(event
, g
, context
) {
68 context
.initializeMouseDown(event
, g
, context
);
70 moveV4(event
, g
, context
); // in case the mouse went down on a data point.
75 function moveV4(event
, g
, context
) {
79 var canvasx
= Dygraph
.pageX(event
) - Dygraph
.findPosX(g
.graphDiv
);
80 var canvasy
= Dygraph
.pageY(event
) - Dygraph
.findPosY(g
.graphDiv
);
82 var rows
= g
.numRows();
84 // [date, [val1, stdev1], [val2, stdev2]]
85 for (var row
= 0; row
< rows
; row
++) {
86 var date
= g
.getValue(row
, 0);
87 var x
= g
.toDomCoords(date
, null)[0];
88 var diff
= Math
.abs(canvasx
- x
);
90 for (var col
= 1; col
< 3; col
++) {
91 // TODO(konigsberg): these will throw exceptions as data is removed.
92 var vals
= g
.getValue(row
, col
);
93 if (vals
== null) { continue; }
95 var y
= g
.toDomCoords(null, val
)[1];
96 var diff2
= Math
.abs(canvasy
- y
);
99 for (var i
in processed
) {
100 var stored
= processed
[i
];
101 if(stored
[0] == row
&& stored
[1] == col
) {
107 processed
.push([row
, col
]);
113 // drawV4(false, canvasx, canvasy);
116 // drawV4(false, canvasx, canvasy);
120 function upV4(event
, g
, context
) {
126 function dblClickV4(event
, g
, context
) {
130 function drawV4(x
, y
) {
133 ctx
.strokeStyle
= "#000000";
134 ctx
.fillStyle
= "#FFFF00";
136 ctx
.arc(x
,y
,5,0,Math
.PI
*2,true);
142 function captureCanvas(canvas
, area
, g
) {
146 function unzoomGraph(g
) {