X-Git-Url: https://adrianiainlam.tk/git/?a=blobdiff_plain;f=dygraph-canvas.js;h=a84800188d9bc772ba125a7a5e8982448a555f24;hb=b16e636940e6566cc8176c7eb4ed90fba7d118c9;hp=26dd64666faca75ee8ae4b69ade43fcfdc74745a;hpb=80aaae18b251315808188a1a93a0237e6b199050;p=dygraphs.git diff --git a/dygraph-canvas.js b/dygraph-canvas.js index 26dd646..a848001 100644 --- a/dygraph-canvas.js +++ b/dygraph-canvas.js @@ -17,7 +17,7 @@ DygraphLayout = function(dygraph, options) { this.dygraph_ = dygraph; this.options = {}; // TODO(danvk): remove, use attr_ instead. - MochiKit.Base.update(this.options, options ? options : {}); + Dygraph.update(this.options, options ? options : {}); this.datasets = new Array(); }; @@ -38,6 +38,7 @@ DygraphLayout.prototype.evaluate = function() { DygraphLayout.prototype._evaluateLimits = function() { this.minxval = this.maxxval = null; for (var name in this.datasets) { + if (!this.datasets.hasOwnProperty(name)) continue; var series = this.datasets[name]; var x1 = series[0][0]; if (!this.minxval || x1 < this.minxval) this.minxval = x1; @@ -58,6 +59,8 @@ DygraphLayout.prototype._evaluateLineCharts = function() { // add all the rects this.points = new Array(); for (var setName in this.datasets) { + if (!this.datasets.hasOwnProperty(setName)) continue; + var dataset = this.datasets[setName]; for (var j = 0; j < dataset.length; j++) { var item = dataset[j]; @@ -117,6 +120,7 @@ DygraphLayout.prototype.evaluateWithError = function() { // Copy over the error terms var i = 0; // index in this.points for (var setName in this.datasets) { + if (!this.datasets.hasOwnProperty(setName)) continue; var j = 0; var dataset = this.datasets[setName]; for (var j = 0; j < dataset.length; j++, i++) { @@ -146,7 +150,7 @@ DygraphLayout.prototype.removeAllDatasets = function() { * @param {Object} new_options an associative array of new properties */ DygraphLayout.prototype.updateOptions = function(new_options) { - MochiKit.Base.update(this.options, new_options ? new_options : {}); + Dygraph.update(this.options, new_options ? new_options : {}); }; // Subclass PlotKit.CanvasRenderer to add: @@ -179,23 +183,12 @@ DygraphCanvasRenderer = function(dygraph, element, layout, options) { "drawXGrid": true, "gridLineColor": "rgb(128,128,128)" }; - MochiKit.Base.update(this.options, options); + Dygraph.update(this.options, options); this.layout = layout; this.element = element; this.container = this.element.parentNode; - // Stuff relating to Canvas on IE support - this.isIE = (/MSIE/.test(navigator.userAgent) && !window.opera); - - if (this.isIE && !isNil(G_vmlCanvasManager)) { - this.IEDelay = 0.5; - this.maxTries = 5; - this.renderDelay = null; - this.clearDelay = null; - this.element = G_vmlCanvasManager.initElement(this.element); - } - this.height = this.element.height; this.width = this.element.width; @@ -333,7 +326,9 @@ DygraphCanvasRenderer.prototype._renderAxis = function() { var makeDiv = function(txt) { var div = document.createElement("div"); for (var name in labelStyle) { - div.style[name] = labelStyle[name]; + if (labelStyle.hasOwnProperty(name)) { + div.style[name] = labelStyle[name]; + } } div.appendChild(document.createTextNode(txt)); return div; @@ -345,7 +340,7 @@ DygraphCanvasRenderer.prototype._renderAxis = function() { context.lineWidth = this.options.axisLineWidth; if (this.options.drawYAxis) { - if (this.layout.yticks) { + if (this.layout.yticks && this.layout.yticks.length > 0) { for (var i = 0; i < this.layout.yticks.length; i++) { var tick = this.layout.yticks[i]; if (typeof(tick) == "function") return; @@ -448,7 +443,11 @@ DygraphCanvasRenderer.prototype._renderLineChart = function() { var errorBars = this.layout.options.errorBars; var setNames = []; - for (var name in this.layout.datasets) setNames.push(name); + for (var name in this.layout.datasets) { + if (this.layout.datasets.hasOwnProperty(name)) { + setNames.push(name); + } + } var setCount = setNames.length; //Update Points @@ -486,7 +485,7 @@ DygraphCanvasRenderer.prototype._renderLineChart = function() { if (point.name == setName) { if (!point.y || isNaN(point.y)) { prevX = -1; - return; + continue; } var newYs = [ point.y - point.errorPlus * yscale, point.y + point.errorMinus * yscale ]; @@ -548,7 +547,8 @@ DygraphCanvasRenderer.prototype._renderLineChart = function() { if (drawPoints || isIsolated) { ctx.beginPath(); ctx.fillStyle = color; - ctx.arc(point.canvasx, point.canvasy, pointSize, 0, 360, false); + ctx.arc(point.canvasx, point.canvasy, pointSize, + 0, 2 * Math.PI, false); ctx.fill(); } }