]>
Commit | Line | Data |
---|---|---|
31f18b77 FG |
1 | /* Flot plugin for automatically redrawing plots as the placeholder resizes. |
2 | ||
3 | Copyright (c) 2007-2013 IOLA and Ole Laursen. | |
4 | Licensed under the MIT license. | |
5 | ||
6 | It works by listening for changes on the placeholder div (through the jQuery | |
7 | resize event plugin) - if the size changes, it will redraw the plot. | |
8 | ||
9 | There are no options. If you need to disable the plugin for some plots, you | |
10 | can just fix the size of their placeholders. | |
11 | ||
12 | */ | |
13 | ||
14 | /* Inline dependency: | |
15 | * jQuery resize event - v1.1 - 3/14/2010 | |
16 | * http://benalman.com/projects/jquery-resize-plugin/ | |
17 | * | |
18 | * Copyright (c) 2010 "Cowboy" Ben Alman | |
19 | * Dual licensed under the MIT and GPL licenses. | |
20 | * http://benalman.com/about/license/ | |
21 | */ | |
22 | ||
23 | (function($,t,n){function p(){for(var n=r.length-1;n>=0;n--){var o=$(r[n]);if(o[0]==t||o.is(":visible")){var h=o.width(),d=o.height(),v=o.data(a);!v||h===v.w&&d===v.h?i[f]=i[l]:(i[f]=i[c],o.trigger(u,[v.w=h,v.h=d]))}else v=o.data(a),v.w=0,v.h=0}s!==null&&(s=t.requestAnimationFrame(p))}var r=[],i=$.resize=$.extend($.resize,{}),s,o="setTimeout",u="resize",a=u+"-special-event",f="delay",l="pendingDelay",c="activeDelay",h="throttleWindow";i[l]=250,i[c]=20,i[f]=i[l],i[h]=!0,$.event.special[u]={setup:function(){if(!i[h]&&this[o])return!1;var t=$(this);r.push(this),t.data(a,{w:t.width(),h:t.height()}),r.length===1&&(s=n,p())},teardown:function(){if(!i[h]&&this[o])return!1;var t=$(this);for(var n=r.length-1;n>=0;n--)if(r[n]==this){r.splice(n,1);break}t.removeData(a),r.length||(cancelAnimationFrame(s),s=null)},add:function(t){function s(t,i,s){var o=$(this),u=o.data(a);u.w=i!==n?i:o.width(),u.h=s!==n?s:o.height(),r.apply(this,arguments)}if(!i[h]&&this[o])return!1;var r;if($.isFunction(t))return r=t,s;r=t.handler,t.handler=s}},t.requestAnimationFrame||(t.requestAnimationFrame=function(){return t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||t.oRequestAnimationFrame||t.msRequestAnimationFrame||function(e,n){return t.setTimeout(e,i[f])}}()),t.cancelAnimationFrame||(t.cancelAnimationFrame=function(){return t.webkitCancelRequestAnimationFrame||t.mozCancelRequestAnimationFrame||t.oCancelRequestAnimationFrame||t.msCancelRequestAnimationFrame||clearTimeout}())})(jQuery,this); | |
24 | ||
25 | (function ($) { | |
26 | var options = { }; // no options | |
27 | ||
28 | function init(plot) { | |
29 | function onResize() { | |
30 | var placeholder = plot.getPlaceholder(); | |
31 | ||
32 | // somebody might have hidden us and we can't plot | |
33 | // when we don't have the dimensions | |
34 | if (placeholder.width() == 0 || placeholder.height() == 0) | |
35 | return; | |
36 | ||
37 | plot.resize(); | |
38 | plot.setupGrid(); | |
39 | plot.draw(); | |
40 | } | |
41 | ||
42 | function bindEvents(plot, eventHolder) { | |
43 | plot.getPlaceholder().resize(onResize); | |
44 | } | |
45 | ||
46 | function shutdown(plot, eventHolder) { | |
47 | plot.getPlaceholder().unbind("resize", onResize); | |
48 | } | |
49 | ||
50 | plot.hooks.bindEvents.push(bindEvents); | |
51 | plot.hooks.shutdown.push(shutdown); | |
52 | } | |
53 | ||
54 | $.plot.plugins.push({ | |
55 | init: init, | |
56 | options: options, | |
57 | name: 'resize', | |
58 | version: '1.0' | |
59 | }); | |
60 | })(jQuery); |