blob: 46b361ffb56f99793ba39b7811d69ff04292dd49 [file] [log] [blame]
dojo.provide("dojo.charting.Axis");
dojo.require("dojo.lang.common");
dojo.charting.Axis=function(_1,_2,_3){
var id="dojo-charting-axis-"+dojo.charting.Axis.count++;
this.getId=function(){
return id;
};
this.setId=function(_5){
id=_5;
};
this.scale=_2||"linear";
this.label=_1||"";
this.showLabel=true;
this.showLabels=true;
this.showLines=false;
this.showTicks=false;
this.range={upper:100,lower:0};
this.origin="min";
this._origin=null;
this.labels=_3||[];
this._labels=[];
this.nodes={main:null,axis:null,label:null,labels:null,lines:null,ticks:null};
this._rerender=false;
};
dojo.charting.Axis.count=0;
dojo.extend(dojo.charting.Axis,{getCoord:function(_6,_7,_8){
_6=parseFloat(_6,10);
var _9=_7.getArea();
if(_8.axisX==this){
var _a=0-this.range.lower;
var _b=this.range.lower+_a;
var _c=this.range.upper+_a;
_6+=_a;
return (_6*((_9.right-_9.left)/_c))+_9.left;
}else{
var _c=this.range.upper;
var _b=this.range.lower;
var _a=0;
if(_b<0){
_a+=Math.abs(_b);
}
_c+=_a;
_b+=_a;
_6+=_a;
var _d=_9.bottom;
var _e=_9.top;
return (((_d-_e)/(_c-_b))*(_c-_6))+_e;
}
},initializeOrigin:function(_f,_10){
if(this._origin==null){
this._origin=this.origin;
}
if(isNaN(this._origin)){
if(this._origin.toLowerCase()=="max"){
this.origin=_f.range[(_10=="y")?"upper":"lower"];
}else{
if(this._origin.toLowerCase()=="min"){
this.origin=_f.range[(_10=="y")?"lower":"upper"];
}else{
this.origin=0;
}
}
}
},initializeLabels:function(){
this._labels=[];
if(this.labels.length==0){
this.showLabels=false;
this.showLines=false;
this.showTicks=false;
}else{
if(this.labels[0].label&&this.labels[0].value!=null){
for(var i=0;i<this.labels.length;i++){
this._labels.push(this.labels[i]);
}
}else{
if(!isNaN(this.labels[0])){
for(var i=0;i<this.labels.length;i++){
this._labels.push({label:this.labels[i],value:this.labels[i]});
}
}else{
var a=[];
for(var i=0;i<this.labels.length;i++){
a.push(this.labels[i]);
}
var s=a.shift();
this._labels.push({label:s,value:this.range.lower});
if(a.length>0){
var s=a.pop();
this._labels.push({label:s,value:this.range.upper});
}
if(a.length>0){
var _14=this.range.upper-this.range.lower;
var _15=_14/(this.labels.length-1);
for(var i=1;i<=a.length;i++){
this._labels.push({label:a[i-1],value:this.range.lower+(_15*i)});
}
}
}
}
}
},initialize:function(_16,_17,_18,_19){
this.destroy();
this.initializeOrigin(_18,_19);
this.initializeLabels();
var _1a=this.render(_16,_17,_18,_19);
return _1a;
},destroy:function(){
for(var p in this.nodes){
while(this.nodes[p]&&this.nodes[p].childNodes.length>0){
this.nodes[p].removeChild(this.nodes[p].childNodes[0]);
}
if(this.nodes[p]&&this.nodes[p].parentNode){
this.nodes[p].parentNode.removeChild(this.nodes[p]);
}
this.nodes[p]=null;
}
}});
dojo.requireIf(dojo.render.svg.capable,"dojo.charting.svg.Axis");
dojo.requireIf(dojo.render.vml.capable,"dojo.charting.vml.Axis");