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();
};
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;
// 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];
// 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++) {
* @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:
"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;
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;
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;
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
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();
}
}