tweak link
[dygraphs.git] / gallery / interaction.js
CommitLineData
e88a95b4
DV
1/*global Gallery,Dygraph,data */
2/*global NoisyData,downV3,moveV3,upV3,clickV3,dblClickV3,scrollV3,restorePositioning,downV4,moveV4,upV4,dblClickV4,captureCanvas */
3
abfadf4c
RK
4Gallery.register(
5 'interaction',
6 {
7 name: 'Custom interaction models',
8 title: 'title',
9 setup: function(parent) {
605b6119 10 parent.innerHTML = [
2a3953eb 11 "<h3>Default interaction model</h3>",
3e81f5dd
RK
12 "<div style='width:600px;'>",
13 " <p style='text-align:center;'>",
14 " Zoom: click-drag, Pan: shift-click-drag, Restore: double-click",
15 " </p>",
16 " <div id='div_g' style='width:600px; height:300px;'></div>",
17 "</div>",
18 "",
2a3953eb 19 "<h3>Empty interaction model</h3>",
3e81f5dd
RK
20 "<div style='width:600px;'>",
21 " <p style='text-align:center;'>",
22 " Click and drag all you like, it won't do anything!",
23 " </p>",
24 " <div id='div_g2' style='width:600px; height:300px;'></div>",
25 "</div>",
26 "<div id='g2_console'></div>", // what is this?
27 "",
2a3953eb 28 "<h3>Custom interaction model</h3>",
3e81f5dd
RK
29 "<div style='width:600px;'>",
30 " <p style='text-align:center;'>",
31 " Zoom in: double-click, scroll wheel<br/>",
32 " Zoom out: ctrl-double-click, scroll wheel<br/>",
33 " Standard Zoom: shift-click-drag",
34 " Standard Pan: click-drag<br/>",
35 " Restore zoom level: press button<br/>",
36 " </p>",
37 " <button id='restore3'>Restore position</button>",
38 " <div id='div_g3' style='width:600px; height:300px;'></div>",
39 "</div>",
2a3953eb 40 "<h3>Fun model!</h3>",
3e81f5dd
RK
41 "<div style='width:600px;'>",
42 " <p style='text-align:center;'>",
43 " Keep the mouse button pressed, and hover over all points",
44 " to mark them.",
45 " </p>",
46 " <div id='div_g4' style='width:600px; height:300px;'></div>",
e1e80cce 47 "</div>"
3e81f5dd 48 ].join('\n');
abfadf4c
RK
49
50 },
51 run: function() {
e88a95b4 52 var lastClickedGraph;
abfadf4c
RK
53 // TODO(konigsberg): Add cleanup to remove callbacks.
54 Dygraph.addEvent(document, "mousewheel", function() { lastClickedGraph = null; });
55 Dygraph.addEvent(document, "click", function() { lastClickedGraph = null; });
e88a95b4 56 new Dygraph(document.getElementById("div_g"),
abfadf4c 57 NoisyData, { errorBars : true });
e88a95b4 58 new Dygraph(document.getElementById("div_g2"),
abfadf4c
RK
59 NoisyData,
60 {
61 errorBars : true,
62 interactionModel: {}
63 });
64 var g3 = new Dygraph(document.getElementById("div_g3"),
65 NoisyData, { errorBars : true, interactionModel : {
66 'mousedown' : downV3,
67 'mousemove' : moveV3,
68 'mouseup' : upV3,
69 'click' : clickV3,
70 'dblclick' : dblClickV3,
71 'mousewheel' : scrollV3
72 }});
73 document.getElementById("restore3").onclick = function() {
74 restorePositioning(g3);
e1e80cce 75 };
e88a95b4 76 new Dygraph(document.getElementById("div_g4"),
e1e80cce
DV
77 NoisyData, {
78 errorBars : true,
79 drawPoints : true,
80 interactionModel : {
81 'mousedown' : downV4,
82 'mousemove' : moveV4,
83 'mouseup' : upV4,
84 'dblclick' : dblClickV4
85 },
86 underlayCallback : captureCanvas
87 });
c1f22b5a 88 }
c1f22b5a 89 });