blob: bd7de360e34288fb08d540d844da3f082903438f [file] [log] [blame]
/*
Copyright (c) 2004-2006, The Dojo Foundation
All Rights Reserved.
Licensed under the Academic Free License version 2.1 or above OR the
modified BSD license. For more information on Dojo licensing, see:
http://dojotoolkit.org/community/licensing.shtml
*/
dojo.provide("dojo.charting.vml.PlotArea");
dojo.require("dojo.lang.common");
if (dojo.render.vml.capable) {
dojo.extend(dojo.charting.PlotArea, {resize:function () {
var a = this.getArea();
this.nodes.area.style.width = this.size.width + "px";
this.nodes.area.style.height = this.size.height + "px";
this.nodes.background.style.width = this.size.width + "px";
this.nodes.background.style.height = this.size.height + "px";
this.nodes.plots.width = this.size.width + "px";
this.nodes.plots.height = this.size.height + "px";
this.nodes.plots.style.clip = "rect(" + a.top + " " + a.right + " " + a.bottom + " " + a.left + ")";
if (this.nodes.axes) {
this.nodes.area.removeChild(this.nodes.axes);
}
var axes = this.nodes.axes = document.createElement("div");
axes.id = this.getId() + "-axes";
this.nodes.area.appendChild(axes);
var ax = this.getAxes();
for (var p in ax) {
var obj = ax[p];
axes.appendChild(obj.axis.initialize(this, obj.plot, obj.drawAgainst, obj.plane));
}
}, initializePlot:function (plot) {
plot.destroy();
plot.dataNode = document.createElement("div");
plot.dataNode.id = plot.getId();
return plot.dataNode;
}, initialize:function () {
this.destroy();
var main = this.nodes.main = document.createElement("div");
var area = this.nodes.area = document.createElement("div");
area.id = this.getId();
area.style.position = "absolute";
main.appendChild(area);
var bg = this.nodes.background = document.createElement("div");
bg.id = this.getId() + "-background";
bg.style.position = "absolute";
bg.style.top = "0px";
bg.style.left = "0px";
bg.style.backgroundColor = "#fff";
area.appendChild(bg);
var a = this.getArea();
var plots = this.nodes.plots = document.createElement("div");
plots.id = this.getId() + "-plots";
plots.style.position = "absolute";
plots.style.top = "0px";
plots.style.left = "0px";
area.appendChild(plots);
for (var i = 0; i < this.plots.length; i++) {
plots.appendChild(this.initializePlot(this.plots[i]));
}
this.resize();
return main;
}});
}