[77] | 1 | <?php ob_start('ob_gzhandler') ?> |
---|
| 2 | <!DOCTYPE html > |
---|
| 3 | <html> |
---|
| 4 | <head> |
---|
| 5 | <meta http-equiv="X-UA-Compatible" content="chrome=1"> |
---|
| 6 | <!-- |
---|
| 7 | /** |
---|
| 8 | * o------------------------------------------------------------------------------o |
---|
| 9 | * | This file is part of the RGraph package - you can learn more at: | |
---|
| 10 | * | | |
---|
| 11 | * | http://www.rgraph.net | |
---|
| 12 | * | | |
---|
| 13 | * | This package is licensed under the RGraph license. For all kinds of business | |
---|
| 14 | * | purposes there is a small one-time licensing fee to pay and for non | |
---|
| 15 | * | commercial purposes it is free to use. You can read the full license here: | |
---|
| 16 | * | | |
---|
| 17 | * | http://www.rgraph.net/LICENSE.txt | |
---|
| 18 | * o------------------------------------------------------------------------------o |
---|
| 19 | */ |
---|
| 20 | --> |
---|
| 21 | <title>RGraph: Javascript charts and graph library - Custom RGraph events</title> |
---|
| 22 | |
---|
| 23 | <meta name="keywords" content="rgraph html5 canvas chart docs custom events" /> |
---|
| 24 | <meta name="description" content="RGraph: Javascript charts and graph library - Documentation about the custom RGraph events" /> |
---|
| 25 | |
---|
| 26 | <meta property="og:title" content="RGraph: Javascript charts and graph library" /> |
---|
| 27 | <meta property="og:description" content="A charts library based on the HTML5 canvas tag" /> |
---|
| 28 | <meta property="og:image" content="http://www.rgraph.net/images/logo.png"/> |
---|
| 29 | |
---|
| 30 | <link rel="stylesheet" href="../css/website.css" type="text/css" media="screen" /> |
---|
| 31 | <link rel="icon" type="image/png" href="../images/favicon.png"> |
---|
| 32 | |
---|
| 33 | <script src="../libraries/RGraph.common.core.js" ></script> |
---|
| 34 | <script src="../libraries/RGraph.common.adjusting.js" ></script> |
---|
| 35 | <script src="../libraries/RGraph.common.annotate.js" ></script> |
---|
| 36 | <script src="../libraries/RGraph.common.context.js" ></script> |
---|
| 37 | <script src="../libraries/RGraph.common.resizing.js" ></script> |
---|
| 38 | <script src="../libraries/RGraph.common.tooltips.js" ></script> |
---|
| 39 | <script src="../libraries/RGraph.common.zoom.js" ></script> |
---|
| 40 | <script src="../libraries/RGraph.modaldialog.js" ></script> |
---|
| 41 | <script src="../libraries/RGraph.bar.js" ></script> |
---|
| 42 | |
---|
| 43 | <script> |
---|
| 44 | window.onload = function (e) |
---|
| 45 | { |
---|
| 46 | var bar1 = new RGraph.Bar('bar1', [1,2,3,5,9,7,8]); |
---|
| 47 | bar1.Set('chart.labels', ['January','February','March','April','May','June','July']); |
---|
| 48 | bar1.Set('chart.tooltips', ['January','February','March','April','May','June','July']); |
---|
| 49 | bar1.Set('chart.title', 'An example of the ontooltip event'); |
---|
| 50 | bar1.Draw(); |
---|
| 51 | RGraph.AddCustomEventListener(bar1, 'ontooltip', function (obj) {alert('ontooltip event, showing tooltip with index: ' + RGraph.Registry.Get('chart.tooltip').__index__);}); |
---|
| 52 | |
---|
| 53 | |
---|
| 54 | var bar2 = new RGraph.Bar('bar2', [1,2,3,5,9,7,8]); |
---|
| 55 | bar2.Set('chart.labels', ['January','February','March','April','May','June','July']); |
---|
| 56 | bar2.Set('chart.contextmenu', [['Cancel', function () {}]]); |
---|
| 57 | bar2.Set('chart.title', 'An example of the oncontextmenu event'); |
---|
| 58 | bar2.Draw(); |
---|
| 59 | RGraph.AddCustomEventListener(bar2, 'oncontextmenu', function (obj) {alert('oncontextmenu event fired');}); |
---|
| 60 | |
---|
| 61 | |
---|
| 62 | // Intentionally a global |
---|
| 63 | bar3 = new RGraph.Bar('bar3', [1,2,3,5,9,7,8]); |
---|
| 64 | bar3.Set('chart.labels', ['January','February','March','April','May','June','July']); |
---|
| 65 | bar3.Set('chart.title', 'An example of the onbeforedraw event'); |
---|
| 66 | // Drawn when the button is clicked |
---|
| 67 | RGraph.AddCustomEventListener(bar3, 'onbeforedraw', function (obj) {alert('onbeforedraw event fired');}); |
---|
| 68 | |
---|
| 69 | |
---|
| 70 | // Intentionally a global |
---|
| 71 | bar4 = new RGraph.Bar('bar4', [1,2,3,5,9,7,8]); |
---|
| 72 | bar4.Set('chart.labels', ['January','February','March','April','May','June','July']); |
---|
| 73 | bar4.Set('chart.title', 'An example of the ondraw event'); |
---|
| 74 | // Drawn when the button is clicked |
---|
| 75 | RGraph.AddCustomEventListener(bar4, 'ondraw', function (obj) {alert('ondraw event fired');}); |
---|
| 76 | |
---|
| 77 | |
---|
| 78 | var bar5 = new RGraph.Bar('bar5', [1,2,3,5,9,7,8]); |
---|
| 79 | bar5.Set('chart.labels', ['January','February','March','April','May','June','July']); |
---|
| 80 | bar5.Set('chart.title', 'An example of the onzoom event'); |
---|
| 81 | bar5.Set('chart.contextmenu', [['Zoom', RGraph.Zoom]]); |
---|
| 82 | bar5.Set('chart.zoom.vdir', 'center'); |
---|
| 83 | bar5.Draw(); |
---|
| 84 | RGraph.AddCustomEventListener(bar5, 'onzoom', function (obj) {alert('onzoom event fired');}); |
---|
| 85 | |
---|
| 86 | |
---|
| 87 | var bar6 = new RGraph.Bar('bar6', [1,2,3,5,9,7,8]); |
---|
| 88 | bar6.Set('chart.labels', ['January','February','March','April','May','June','July']); |
---|
| 89 | bar6.Set('chart.title', 'An example of the onmodaldialog event'); |
---|
| 90 | bar6.Set('chart.contextmenu', [['Show dialog', function () {ModalDialog.Show('modaldialog_login', 300);}]]); |
---|
| 91 | bar6.Draw(); |
---|
| 92 | ModalDialog.AddCustomEventListener('onmodaldialog', function (obj) {alert('onmodaldialog event fired');}); |
---|
| 93 | |
---|
| 94 | |
---|
| 95 | var bar7 = new RGraph.Bar('bar7', [1,2,3,5,9,7,8]); |
---|
| 96 | bar7.Set('chart.labels', ['January','February','March','April','May','June','July']); |
---|
| 97 | bar7.Set('chart.title', 'The onresizebeforedraw event'); |
---|
| 98 | bar7.Set('chart.text.angle', 45); |
---|
| 99 | bar7.Set('chart.resizable', true); |
---|
| 100 | bar7.Set('chart.gutter.bottom', 60); |
---|
| 101 | bar7.Draw(); |
---|
| 102 | RGraph.AddCustomEventListener(bar7, 'onresizebeforedraw', function (obj) |
---|
| 103 | { |
---|
| 104 | alert('onresizebeforedraw event fired'); |
---|
| 105 | }); |
---|
| 106 | |
---|
| 107 | |
---|
| 108 | var bar8 = new RGraph.Bar('bar8', [1,2,3,5,9,7,8]); |
---|
| 109 | bar8.Set('chart.labels', ['January','February','March','April','May','June','July']); |
---|
| 110 | bar8.Set('chart.title', 'An example of the onresize event'); |
---|
| 111 | bar8.Set('chart.resizable', true); |
---|
| 112 | bar8.Draw(); |
---|
| 113 | |
---|
| 114 | RGraph.AddCustomEventListener(bar8, 'onresizebegin', function (obj){cl('onresizebegin event fired');}); |
---|
| 115 | RGraph.AddCustomEventListener(bar8, 'onresize', function (obj){cl('onresize event fired');}); |
---|
| 116 | RGraph.AddCustomEventListener(bar8, 'onresizeend', function (obj){cl('onresizeend event fired');}); |
---|
| 117 | |
---|
| 118 | |
---|
| 119 | var bar9 = new RGraph.Bar('bar9', [1,2,3,5,9,7,8]); |
---|
| 120 | bar9.Set('chart.labels', ['January','February','March','April','May','June','July']); |
---|
| 121 | bar9.Set('chart.title', 'An example of the onadjust event'); |
---|
| 122 | bar9.Set('chart.adjustable', true); |
---|
| 123 | bar9.Draw(); |
---|
| 124 | |
---|
| 125 | RGraph.AddCustomEventListener(bar9, 'onadjustbegin', function (obj){cl('The onadjuststart event fired');}); |
---|
| 126 | RGraph.AddCustomEventListener(bar9, 'onadjust', function (obj){cl('The onadjust event fired');}); |
---|
| 127 | RGraph.AddCustomEventListener(bar9, 'onadjustend', function (obj){cl('The onadjustend event fired');}); |
---|
| 128 | |
---|
| 129 | |
---|
| 130 | // Global on purpose |
---|
| 131 | bar10 = new RGraph.Bar('bar10', [1,2,3,5,9,7,8]); |
---|
| 132 | bar10.Set('chart.labels', ['January','February','March','April','May','June','July']); |
---|
| 133 | bar10.Set('chart.title', 'An example of the onannotate event'); |
---|
| 134 | bar10.Set('chart.annotatable', true); |
---|
| 135 | bar10.Set('chart.contextmenu', [['ShowPalette', RGraph.Showpalette], ['Clear', function () {RGraph.Clear(bar10.canvas); bar10.Draw();}]]); |
---|
| 136 | bar10.Draw(); |
---|
| 137 | |
---|
| 138 | RGraph.AddCustomEventListener(bar10, 'onannotatebegin', function (obj){cl('onannotatebegin event fired');}); |
---|
| 139 | RGraph.AddCustomEventListener(bar10, 'onannotate', function (obj){cl('onannotate event fired');}); |
---|
| 140 | RGraph.AddCustomEventListener(bar10, 'onannotateend', function (obj){cl('onannotateend event fired');}); |
---|
| 141 | RGraph.AddCustomEventListener(bar10, 'onannotatecolor', function (obj) {cl('Changed annotate color: ' + obj.Get('chart.annotate.color'));}); |
---|
| 142 | RGraph.AddCustomEventListener(bar10, 'onannotateclear', function (obj) {cl('Fired the annotation clear event');}); |
---|
| 143 | |
---|
| 144 | |
---|
| 145 | // Global on purpose |
---|
| 146 | var bar11 = new RGraph.Bar('bar11', [1,2,3,5,9,7,8]); |
---|
| 147 | bar11.Set('chart.labels', ['January','February','March','April','May','June','July']); |
---|
| 148 | bar11.Set('chart.title', 'The onbeforecontextmenu event'); |
---|
| 149 | bar11.Set('chart.contextmenu', [['A sample context menu item', null]]); |
---|
| 150 | bar11.Draw(); |
---|
| 151 | |
---|
| 152 | RGraph.AddCustomEventListener(bar11, 'onbeforecontextmenu', function (obj) {p('Fired the onbeforecontextmenu event)');}); |
---|
| 153 | } |
---|
| 154 | </script> |
---|
| 155 | |
---|
| 156 | <script> |
---|
| 157 | var _gaq = _gaq || []; |
---|
| 158 | _gaq.push(['_setAccount', 'UA-54706-2']); |
---|
| 159 | _gaq.push(['_trackPageview']); |
---|
| 160 | |
---|
| 161 | (function() { |
---|
| 162 | var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; |
---|
| 163 | ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; |
---|
| 164 | var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); |
---|
| 165 | })(); |
---|
| 166 | </script> |
---|
| 167 | </head> |
---|
| 168 | <body> |
---|
| 169 | |
---|
| 170 | |
---|
| 171 | <!-- Social networking buttons --> |
---|
| 172 | <div id="social_icons" class="warning" style="border-radius: 10px; top: 1px; position: fixed"> |
---|
| 173 | <a title="Bookmark with delicious" href="http://delicious.com/save?jump=close&v=4&noui&jump=close&url=http://www.rgraph.net¬es=RGraph%20is%20a%20HTML5%20based%20javascript%20charts%20library%20supporting%20a%20wide%20range%20of%20different%20charts%20types&title=RGraph:Javascript%20charts%20and%20graphs%20library" target="_blank"><img src="../images/delicious.png" alt="Bookmark with delicious" width="22" height="22" border="0" align="absmiddle" /></a> |
---|
| 174 | <a href="http://twitter.com/home/?status=RGraph%3A%20Javascript+charts+and+graph+library+http%3A%2F%2Fwww.rgraph.net+%23rgraph+%23html5+%23canvas+%23javascript+%23charts+@_rgraph" target="_blank"><img src="../images/twitter.png" id="twitter_icon" alt="tweet this site" width="22" height="22" border="0" align="absmiddle" /></a> |
---|
| 175 | </div> |
---|
| 176 | |
---|
| 177 | <script> |
---|
| 178 | // Opera fix |
---|
| 179 | if (navigator.userAgent.indexOf('Opera') == -1) { |
---|
| 180 | document.getElementById("social_icons").style.position = 'fixed'; |
---|
| 181 | } |
---|
| 182 | </script> |
---|
| 183 | <!-- Social networking buttons --> |
---|
| 184 | |
---|
| 185 | <div id="breadcrumb"> |
---|
| 186 | <a href="../index.html">RGraph: Javascript charts and graph library</a> |
---|
| 187 | > |
---|
| 188 | <a href="index.html">Documentation</a> |
---|
| 189 | > |
---|
| 190 | Custom RGraph events |
---|
| 191 | </div> |
---|
| 192 | |
---|
| 193 | <h1>RGraph: <span>Javascript charts and graph library</span> - Custom RGraph events</h1> |
---|
| 194 | |
---|
| 195 | <script> |
---|
| 196 | if (RGraph.isIE8()) { |
---|
| 197 | document.write('<div style="background-color: #fee; border: 2px dashed red; padding: 5px"><b>Important</b><br /><br /> Internet Explorer 8 does not natively support the HTML5 canvas tag, so if you want to see the charts, you can either:<ul><li>Install <a href="http://code.google.com/chrome/chromeframe/">Google Chrome Frame</a></li><li>Use ExCanvas. This is provided in the RGraph Archive.</li><li>Use another browser entirely. Your choices are Firefox 3.5+, Chrome 2+, Safari 4+ or Opera 10.5+. </li></ul> <b>Note:</b> Internet Explorer 9 fully supports the canvas tag. Click <a href="http://support.rgraph.net/message/rgraph-in-internet-explorer-9.html" target="_blank">here</a> to see some screenshots.</div>'); |
---|
| 198 | } |
---|
| 199 | </script> |
---|
| 200 | |
---|
| 201 | <ul> |
---|
| 202 | <li><a href="#introduction">Introduction</a></li> |
---|
| 203 | <li> |
---|
| 204 | <a href="#available.events">Available events</a> |
---|
| 205 | <ul> |
---|
| 206 | <li><a href="#event.ontooltip">ontooltip</a></li> |
---|
| 207 | <li><a href="#event.onbeforecontextmenu">oncontextmenu</a></li> |
---|
| 208 | <li><a href="#event.oncontextmenu">oncontextmenu</a></li> |
---|
| 209 | <li><a href="#event.onbeforedraw">onbeforedraw</a></li> |
---|
| 210 | <li><a href="#event.ondraw">ondraw</a></li> |
---|
| 211 | <li><a href="#event.onzoom">onzoom</a></li> |
---|
| 212 | <li><a href="#event.onmodaldialog">onmodaldialog</a></li> |
---|
| 213 | <li><a href="#event.onresizebeforedraw">onresizebeforedraw</a></li> |
---|
| 214 | <li><a href="#event.onresize">onresizebegin</a></li> |
---|
| 215 | <li><a href="#event.onresize">onresize</a></li> |
---|
| 216 | <li><a href="#event.onresize">onresizeend</a></li> |
---|
| 217 | <li><a href="#event.onadjustbegin">onadjustbegin</a></li> |
---|
| 218 | <li><a href="#event.onadjustbegin">onadjust</a></li> |
---|
| 219 | <li><a href="#event.onadjustbegin">onadjustend</a></li> |
---|
| 220 | <li><a href="#event.onannotatebegin">onannotatebegin</a></li> |
---|
| 221 | <li><a href="#event.onannotatebegin">onannotate</a></li> |
---|
| 222 | <li><a href="#event.onannotatebegin">onannotateend</a></li> |
---|
| 223 | <li><a href="#event.onannotatebegin">onannotatecolor</a></li> |
---|
| 224 | <li><a href="#event.onannotatebegin">onannotateclear</a></li> |
---|
| 225 | <li><a href="#event.onclear">onclear</a></li> |
---|
| 226 | </ul> |
---|
| 227 | </li> |
---|
| 228 | <li><a href="#removing.events">Removing events</a></li> |
---|
| 229 | </ul> |
---|
| 230 | |
---|
| 231 | <a name="introduction"></a> |
---|
| 232 | <h4>Introduction</h4> |
---|
| 233 | |
---|
| 234 | <p> |
---|
| 235 | Custom events allow you to easily interact with and extend RGraph for your own purposes. The list of available events is below, |
---|
| 236 | as is an example of how to make use of them with the <i>RGraph.AddCustomEventListener()</i> function. Event handler functions (ie your |
---|
| 237 | functions) are passed a single parameter - the chart object. With this you can get references to the canvas and context. There's |
---|
| 238 | an example of this below. |
---|
| 239 | </p> |
---|
| 240 | |
---|
| 241 | <pre class="code"><script> |
---|
| 242 | window.onload = function () |
---|
| 243 | { |
---|
| 244 | var line = new RGraph.Line('myLine', [45,12,16,18,44,54,23,21,56]); |
---|
| 245 | line.Set('chart.tooltips', ['Fred', 'Barney', 'Jay', 'Pete', 'Frank', 'Bob', 'Ted', 'Lou', 'Kev']); |
---|
| 246 | line.Set('chart.labels', ['Fred', 'Barney', 'Jay', 'Pete', 'Frank', 'Bob', 'Ted', 'Lou', 'Kev']); |
---|
| 247 | line.Set('chart.hmargin', 5); |
---|
| 248 | line.Set('chart.tickmarks', 'dot'); |
---|
| 249 | line.Draw(); |
---|
| 250 | |
---|
| 251 | <span style="color: green">/** |
---|
| 252 | * This is the call to the RGraph function that registers the event listener |
---|
| 253 | * |
---|
| 254 | * line: The chart object |
---|
| 255 | * ontooltip: The name of the event |
---|
| 256 | * myFunc: The function that handles the event |
---|
| 257 | */</span> |
---|
| 258 | RGraph.AddCustomEventListener(line, 'ontooltip', myFunc); |
---|
| 259 | } |
---|
| 260 | |
---|
| 261 | <span style="color: green">/** |
---|
| 262 | * The function that is called when the ontooltip event fires. It is passed a single parameter - the chart object. |
---|
| 263 | * With this you can get the ID and references to the canvas and context: |
---|
| 264 | * o obj.id |
---|
| 265 | * o obj.canvas |
---|
| 266 | * o obj.context |
---|
| 267 | */</span> |
---|
| 268 | function myFunc(obj) |
---|
| 269 | { |
---|
| 270 | var id = obj.id; |
---|
| 271 | var canvas = obj.canvas; |
---|
| 272 | var context = obj.context; |
---|
| 273 | |
---|
| 274 | alert('This alert was triggered by the custom ontooltip event'); |
---|
| 275 | } |
---|
| 276 | </script> |
---|
| 277 | </pre> |
---|
| 278 | |
---|
| 279 | <a name="available.events"></a> |
---|
| 280 | <h4>Available events</h4> |
---|
| 281 | |
---|
| 282 | <p> |
---|
| 283 | <a name="event.ontooltip"></a> |
---|
| 284 | <canvas id="bar1" width="400" height="150" style="float: left">[No canvas support]</canvas> |
---|
| 285 | <b>ontooltip</b><br /> |
---|
| 286 | This event fires immediately after a tooltip has been created. This event allows you to easily show charts in your tooltips (tooltip |
---|
| 287 | effects that involve moving the tooltip, eg. <i>contract</i>, <i>expand</i> & <i>snap</i>, will not function). You |
---|
| 288 | can find the tooltip object in the RGraph registry - <i>RGraph.Registry.Get('chart.tooltip')</i>. Note that if you're testing and |
---|
| 289 | using a function that pauses execution (eg alert()), this will also pause any timers (for animation effects etc). If you want to |
---|
| 290 | avoid this you should use a function that doesn't block execution, eg the Firebug/WebKit function, <i>console.log()</i> (you can use the |
---|
| 291 | <i>cl()</i> shortcut in RGraph). |
---|
| 292 | </p> |
---|
| 293 | |
---|
| 294 | <br clear="all" /> |
---|
| 295 | |
---|
| 296 | <p> |
---|
| 297 | <a name="event.onbeforecontextmenu"></a> |
---|
| 298 | <canvas id="bar11" width="400" height="200" style="float: left">[No canvas support]</canvas> |
---|
| 299 | <b>onbeforecontextmenu</b><br /> |
---|
| 300 | The onbeforecontextmenu event fires before the context menu is shown. |
---|
| 301 | </p> |
---|
| 302 | |
---|
| 303 | <br clear="all" /> |
---|
| 304 | |
---|
| 305 | <p> |
---|
| 306 | <a name="event.oncontextmenu"></a> |
---|
| 307 | <canvas id="bar2" width="400" height="150" style="float: left">[No canvas support]</canvas> |
---|
| 308 | <b>oncontextmenu</b><br /> |
---|
| 309 | This event fires immediately after the RGraph context menu is shown. If you want it, you can get at the context menu in the |
---|
| 310 | RGraph registry: <i>RGraph.Registry.Get('chart.contextmenu')</i> |
---|
| 311 | |
---|
| 312 | <br /><br /> |
---|
| 313 | |
---|
| 314 | <b>Important:</b> Like the <i>ontooltip</i> event, using <i>alert()</i> can |
---|
| 315 | pause the fade in timers, so you might consider using the Firebug/Webkit <i>console.log</i> functions instead. |
---|
| 316 | </p> |
---|
| 317 | |
---|
| 318 | <br clear="all" /> |
---|
| 319 | |
---|
| 320 | <p> |
---|
| 321 | <a name="event.onbeforedraw"></a> |
---|
| 322 | <div style="float: left"> |
---|
| 323 | <canvas id="bar3" width="400" height="150" style="left">[No canvas support]</canvas><br /> |
---|
| 324 | <button onmousedown="bar3.Draw()" style="width: 400px">Draw chart</button> |
---|
| 325 | </div> |
---|
| 326 | |
---|
| 327 | <b>onbeforedraw</b><br /> |
---|
| 328 | Much like the ondraw event, however this fires at the start of the .Draw() method, in effect "before" the method. Keep in mind |
---|
| 329 | that since other charts may trigger the .Draw() method, this event can also be triggered by other charts. |
---|
| 330 | </p> |
---|
| 331 | |
---|
| 332 | <br clear="all" /> |
---|
| 333 | |
---|
| 334 | <p> |
---|
| 335 | <a name="event.ondraw"></a> |
---|
| 336 | <div style="float: left"> |
---|
| 337 | <canvas id="bar4" width="400" height="150" style="left">[No canvas support]</canvas><br /> |
---|
| 338 | <button onmousedown="bar4.Draw()" style="width: 400px">Draw chart</button> |
---|
| 339 | </div> |
---|
| 340 | <b>ondraw</b><br /> |
---|
| 341 | The ondraw event fires <i>after</i> the .Draw() method has run. Note that the interactive features of RGraph may call the .Draw() |
---|
| 342 | method multiple times - the zoom in area mode is a prime example. |
---|
| 343 | A chart with tooltips is also an example. In this case it would demonstrate that the .Draw() method is called twice (and |
---|
| 344 | hence the ondraw event), whereas the ontooltip event only fires once. |
---|
| 345 | |
---|
| 346 | <br /><br /> |
---|
| 347 | |
---|
| 348 | <b>Note:</b> The <i>ondraw</i> event is not only fired by its own chart, |
---|
| 349 | but (if you're using tooltips for example), can also be fired by other charts on the page. |
---|
| 350 | </p> |
---|
| 351 | |
---|
| 352 | <br clear="all" /> |
---|
| 353 | |
---|
| 354 | <p> |
---|
| 355 | <a name="event.onzoom"></a> |
---|
| 356 | <canvas id="bar5" width="400" height="150" style="float: left">[No canvas support]</canvas> |
---|
| 357 | <b>onzoom</b><br /> |
---|
| 358 | The onzoom event fires whenever the canvas is zoomed. When the zoom is in <i>area</i> and <i>canvas</i> modes this fires once, |
---|
| 359 | but when in <i>thumbnail</i> mode this event is like the onmousemove event in that it fires whenever the mouse is moved. |
---|
| 360 | </p> |
---|
| 361 | |
---|
| 362 | <br clear="all" /> |
---|
| 363 | |
---|
| 364 | <p> |
---|
| 365 | <a name="event.onmodaldialog"></a> |
---|
| 366 | <canvas id="bar6" width="400" height="150" style="float: left">[No canvas support]</canvas> |
---|
| 367 | <b>onmodaldialog</b><br /> |
---|
| 368 | The onmodaldialog event fires when the ModalDialog is shown. This event is easily replicated yourself, though using this event |
---|
| 369 | may help you to keep your code tidy. This event is utilised slightly differently to the other events: |
---|
| 370 | |
---|
| 371 | <br clear="all" /> |
---|
| 372 | |
---|
| 373 | <pre class="code">ModalDialog.AddCustomEventListener('onmodaldialog', function () {alert('Hello world!');});</pre> |
---|
| 374 | </p> |
---|
| 375 | |
---|
| 376 | <br clear="all" /> |
---|
| 377 | |
---|
| 378 | <p> |
---|
| 379 | <a name="event.onresizebeforedraw"></a> |
---|
| 380 | <canvas id="bar7" width="400" height="200" style="float: left">[No canvas support]</canvas> |
---|
| 381 | <b>onresizebeforedraw</b><br /> |
---|
| 382 | The onresizebeforedraw event was added when translating was necessary to reclaim wasted space, before the introduction |
---|
| 383 | of independent gutters. This event is now no longer necessary to reposition the resize handle. It will still have an |
---|
| 384 | effect though, so if you choose to upgrade then you should remove this from your configuration. The event isn't |
---|
| 385 | planned to be removed, so if you wish to use it, you can. |
---|
| 386 | </p> |
---|
| 387 | |
---|
| 388 | <br clear="all" /> |
---|
| 389 | |
---|
| 390 | <p style="background-color: #ffa; border: 2px dashed #990; padding: 4px"> |
---|
| 391 | <b>Note:</b> |
---|
| 392 | The annotation events send notifications to the console because using alert() would cause them to lock the window. |
---|
| 393 | </p> |
---|
| 394 | |
---|
| 395 | <p> |
---|
| 396 | <a name="event.onresize"></a> |
---|
| 397 | <canvas id="bar8" width="400" height="150" style="float: left">[No canvas support]</canvas> |
---|
| 398 | <b>onresizebegin</b><br /> |
---|
| 399 | The onresizebegin event fires when a canvas is starting to be resized. It also fires when the canvas is reset to the original |
---|
| 400 | size.<br /><br /> |
---|
| 401 | |
---|
| 402 | <b>onresize</b><br /> |
---|
| 403 | The onresize event fires when a canvas is resized. It also fires when the canvas is reset to the original size.<br /><br /> |
---|
| 404 | |
---|
| 405 | <b>onresizeend</b><br /> |
---|
| 406 | The onresizeend event fires when a canvas is ended resizing. It also fires when the canvas is reset to the original size. |
---|
| 407 | </p> |
---|
| 408 | |
---|
| 409 | <br clear="all" /> |
---|
| 410 | |
---|
| 411 | <p style="background-color: #ffa; border: 2px dashed #990; padding: 4px"> |
---|
| 412 | <b>Note:</b> |
---|
| 413 | The adjusting events send notifications to the console because using alert() would cause them to lock the window. |
---|
| 414 | </p> |
---|
| 415 | |
---|
| 416 | <p> |
---|
| 417 | <a name="event.onadjustbegin"></a> |
---|
| 418 | <canvas id="bar9" width="400" height="200" style="float: left">[No canvas support]</canvas> |
---|
| 419 | <b>onadjustbegin</b><br /> |
---|
| 420 | The onadjustbegin event fires once at the start of an adjusting process. It can be thought of as similar to |
---|
| 421 | the onmousedown event as that's when it usually fires. |
---|
| 422 | </p> |
---|
| 423 | |
---|
| 424 | <br /> |
---|
| 425 | |
---|
| 426 | <p> |
---|
| 427 | <a name="event.onadjust"></a> |
---|
| 428 | <b>onadjust</b><br /> |
---|
| 429 | The onadjust event fires whenever one of the supported chart types is adjusted. It usually fires in conjunction with the |
---|
| 430 | onmousemove event, and can be blocked by alert(). You therefore may need to use a different function (eg console.log()) |
---|
| 431 | whilst debugging. |
---|
| 432 | </p> |
---|
| 433 | |
---|
| 434 | <br /> |
---|
| 435 | |
---|
| 436 | <p> |
---|
| 437 | <a name="event.onadjustend"></a> |
---|
| 438 | <b>onadjustend</b><br /> |
---|
| 439 | The onadjustend event fires once at the end of an adjusting process. It can be thought of as similar to |
---|
| 440 | the onmouseup event as that's when it usually fires. |
---|
| 441 | </p> |
---|
| 442 | |
---|
| 443 | <br clear="all" /> |
---|
| 444 | |
---|
| 445 | <p style="background-color: #ffa; border: 2px dashed #990; padding: 4px"> |
---|
| 446 | <b>Note:</b> |
---|
| 447 | The annotation events send notifications to the console because using alert() would cause them to lock the window. |
---|
| 448 | </p> |
---|
| 449 | |
---|
| 450 | <p> |
---|
| 451 | <a name="event.onannotatebegin"></a> |
---|
| 452 | <canvas id="bar10" width="400" height="350" style="float: left">[No canvas support]</canvas> |
---|
| 453 | <b>onannotatebegin</b><br /> |
---|
| 454 | The onannotatebegin event fires at the beginning of the annotating procedure (ie in a similar vein to the onmousedown event). |
---|
| 455 | </p> |
---|
| 456 | |
---|
| 457 | <p> |
---|
| 458 | <a name="event.onannotate"></a> |
---|
| 459 | <b>onannotate</b><br /> |
---|
| 460 | The onannotate event fires when the chart has been annotated. It fires during the annotate procedure. |
---|
| 461 | </p> |
---|
| 462 | |
---|
| 463 | <p> |
---|
| 464 | <a name="event.onannotateend"></a> |
---|
| 465 | <b>onannotateend</b><br /> |
---|
| 466 | The onannotateend event fires at the end of the annotating procedure (ie in a similar vein to the onmouseup event). |
---|
| 467 | </p> |
---|
| 468 | |
---|
| 469 | <p> |
---|
| 470 | <a name="event.onannotatecolor"></a> |
---|
| 471 | <b>onannotatecolor</b><br /> |
---|
| 472 | The onannotatecolor event fires when the annotation color has been changed using the RGraph palette. |
---|
| 473 | </p> |
---|
| 474 | |
---|
| 475 | <p> |
---|
| 476 | <a name="event.onannotateclear"></a> |
---|
| 477 | <b>onannotateclear</b><br /> |
---|
| 478 | The onannotateclear event fires when the RGraph annotation data has been cleared using the RGraph.ClearAnnotations() API |
---|
| 479 | function. |
---|
| 480 | </p> |
---|
| 481 | |
---|
| 482 | <p> |
---|
| 483 | <a name="event.onclear"></a> |
---|
| 484 | <b>onclear</b><br /> |
---|
| 485 | The onclear event fires when the function <i>RGraph.Clear()</i> is called. If you use the <i>.Clear()</i>function inside the onclear event |
---|
| 486 | handler, it will create a loop. Instead, you could use this function: |
---|
| 487 | </p> |
---|
| 488 | |
---|
| 489 | <pre class="code"> |
---|
| 490 | /** |
---|
| 491 | * This function clears the canvas |
---|
| 492 | * |
---|
| 493 | * @param object obj The chart object |
---|
| 494 | */ |
---|
| 495 | function myClear(obj) |
---|
| 496 | { |
---|
| 497 | obj.context.beginPath(); |
---|
| 498 | obj.context.fillStyle = 'white'; |
---|
| 499 | obj.context.fillRect(-10,-10,obj.canvas.width + 20, obj.canvas.height + 20); |
---|
| 500 | obj.context.fill(); |
---|
| 501 | } |
---|
| 502 | </pre> |
---|
| 503 | |
---|
| 504 | |
---|
| 505 | <a name="removing.events"></a> |
---|
| 506 | <h4>Removing events</h4> |
---|
| 507 | <p> |
---|
| 508 | In the case that you need to remove RGraph event listeners, there are a few ways that you can do it. The API function |
---|
| 509 | <i>RGraph.RemoveCustomEventListener(obj, id)</i> can be used to remove a single event listener. This function |
---|
| 510 | takes the chart object and the numerical ID (returned by <i>RGraph.AddCustomEventListener()</i>) as its arguments. |
---|
| 511 | |
---|
| 512 | <p /> |
---|
| 513 | |
---|
| 514 | There's |
---|
| 515 | also the <i>RGraph.RemoveAllCustomEventListeners()</i>, for easily removing all of the pertinent event listeners. This |
---|
| 516 | function can either take no arguments at all, in which case ALL event listeners for ALL objects are removed. Or it can |
---|
| 517 | also take an objects ID (the same id that you pass to the constructor), in which case the removal will be limited to |
---|
| 518 | that object. |
---|
| 519 | </p> |
---|
| 520 | |
---|
| 521 | <!-- Login dialog --> |
---|
| 522 | <div style="display: none" class="ModalDialog" id="modaldialog_login"> |
---|
| 523 | |
---|
| 524 | <b>Login to admin area</b><br /><br /> |
---|
| 525 | |
---|
| 526 | <table border="0"> |
---|
| 527 | <tr> |
---|
| 528 | <td align="right">Email:</td> |
---|
| 529 | <td><input type="text" name="email" /></td> |
---|
| 530 | </tr> |
---|
| 531 | <tr> |
---|
| 532 | <td align="right">Password:</td> |
---|
| 533 | <td><input type="password" name="password" /></td> |
---|
| 534 | </tr> |
---|
| 535 | |
---|
| 536 | <tr> |
---|
| 537 | <td> </td> |
---|
| 538 | <td align="right"><input type="submit" value="Login »" /></td> |
---|
| 539 | </tr> |
---|
| 540 | </table> |
---|
| 541 | |
---|
| 542 | <div style="font-size: 8pt; float: right"><a href="" onclick="ModalDialog.Hide(); return false">Dismiss</a></div> |
---|
| 543 | </div> |
---|
| 544 | |
---|
| 545 | </body> |
---|
| 546 | </html> |
---|