diff options
author | Ebus-at-dockstar <ebus@dockstar> | 2013-03-25 10:24:28 +0100 |
---|---|---|
committer | Ebus-at-dockstar <ebus@dockstar> | 2013-03-25 10:24:43 +0100 |
commit | 862282ce99760832d3e9e5b4b1171b861105e004 (patch) | |
tree | 0e229418e391917b79d42a8bdee46fb7a8612895 /ebus/webapp/static/lib/flot-0.7/PLUGINS.txt | |
parent | 9522cdffa94f278eb5e1894600535986e22c2890 (diff) | |
download | ebus-alt-862282ce99760832d3e9e5b4b1171b861105e004.tar.gz ebus-alt-862282ce99760832d3e9e5b4b1171b861105e004.zip |
move old stuff away
Diffstat (limited to 'ebus/webapp/static/lib/flot-0.7/PLUGINS.txt')
-rw-r--r-- | ebus/webapp/static/lib/flot-0.7/PLUGINS.txt | 137 |
1 files changed, 0 insertions, 137 deletions
diff --git a/ebus/webapp/static/lib/flot-0.7/PLUGINS.txt b/ebus/webapp/static/lib/flot-0.7/PLUGINS.txt deleted file mode 100644 index af3d90b..0000000 --- a/ebus/webapp/static/lib/flot-0.7/PLUGINS.txt +++ /dev/null @@ -1,137 +0,0 @@ -Writing plugins ---------------- - -All you need to do to make a new plugin is creating an init function -and a set of options (if needed), stuffing it into an object and -putting it in the $.plot.plugins array. For example: - - function myCoolPluginInit(plot) { - plot.coolstring = "Hello!"; - }; - - $.plot.plugins.push({ init: myCoolPluginInit, options: { ... } }); - - // if $.plot is called, it will return a plot object with the - // attribute "coolstring" - -Now, given that the plugin might run in many different places, it's -a good idea to avoid leaking names. The usual trick here is wrap the -above lines in an anonymous function which is called immediately, like -this: (function () { inner code ... })(). To make it even more robust -in case $ is not bound to jQuery but some other Javascript library, we -can write it as - - (function ($) { - // plugin definition - // ... - })(jQuery); - -There's a complete example below, but you should also check out the -plugins bundled with Flot. - - -Complete example ----------------- - -Here is a simple debug plugin which alerts each of the series in the -plot. It has a single option that control whether it is enabled and -how much info to output: - - (function ($) { - function init(plot) { - var debugLevel = 1; - - function checkDebugEnabled(plot, options) { - if (options.debug) { - debugLevel = options.debug; - - plot.hooks.processDatapoints.push(alertSeries); - } - } - - function alertSeries(plot, series, datapoints) { - var msg = "series " + series.label; - if (debugLevel > 1) - msg += " with " + series.data.length + " points"; - alert(msg); - } - - plot.hooks.processOptions.push(checkDebugEnabled); - } - - var options = { debug: 0 }; - - $.plot.plugins.push({ - init: init, - options: options, - name: "simpledebug", - version: "0.1" - }); - })(jQuery); - -We also define "name" and "version". It's not used by Flot, but might -be helpful for other plugins in resolving dependencies. - -Put the above in a file named "jquery.flot.debug.js", include it in an -HTML page and then it can be used with: - - $.plot($("#placeholder"), [...], { debug: 2 }); - -This simple plugin illustrates a couple of points: - - - It uses the anonymous function trick to avoid name pollution. - - It can be enabled/disabled through an option. - - Variables in the init function can be used to store plot-specific - state between the hooks. - -The two last points are important because there may be multiple plots -on the same page, and you'd want to make sure they are not mixed up. - - -Shutting down a plugin ----------------------- - -Each plot object has a shutdown hook which is run when plot.shutdown() -is called. This usually mostly happens in case another plot is made on -top of an existing one. - -The purpose of the hook is to give you a chance to unbind any event -handlers you've registered and remove any extra DOM things you've -inserted. - -The problem with event handlers is that you can have registered a -handler which is run in some point in the future, e.g. with -setTimeout(). Meanwhile, the plot may have been shutdown and removed, -but because your event handler is still referencing it, it can't be -garbage collected yet, and worse, if your handler eventually runs, it -may overwrite stuff on a completely different plot. - - -Some hints on the options -------------------------- - -Plugins should always support appropriate options to enable/disable -them because the plugin user may have several plots on the same page -where only one should use the plugin. In most cases it's probably a -good idea if the plugin is turned off rather than on per default, just -like most of the powerful features in Flot. - -If the plugin needs options that are specific to each series, like the -points or lines options in core Flot, you can put them in "series" in -the options object, e.g. - - var options = { - series: { - downsample: { - algorithm: null, - maxpoints: 1000 - } - } - } - -Then they will be copied by Flot into each series, providing default -values in case none are specified. - -Think hard and long about naming the options. These names are going to -be public API, and code is going to depend on them if the plugin is -successful. |