103 lines
2.4 KiB
JavaScript
103 lines
2.4 KiB
JavaScript
|
dojo.provide("dojox.charting.plot2d.Base");
|
||
|
|
||
|
dojo.require("dojox.charting.scaler.primitive");
|
||
|
dojo.require("dojox.charting.Element");
|
||
|
dojo.require("dojox.charting.plot2d.common");
|
||
|
|
||
|
dojo.declare("dojox.charting.plot2d.Base", dojox.charting.Element, {
|
||
|
destroy: function(){
|
||
|
this.resetEvents();
|
||
|
this.inherited(arguments);
|
||
|
},
|
||
|
clear: function(){
|
||
|
this.series = [];
|
||
|
this._hAxis = null;
|
||
|
this._vAxis = null;
|
||
|
this.dirty = true;
|
||
|
return this;
|
||
|
},
|
||
|
setAxis: function(axis){
|
||
|
if(axis){
|
||
|
this[axis.vertical ? "_vAxis" : "_hAxis"] = axis;
|
||
|
}
|
||
|
return this;
|
||
|
},
|
||
|
addSeries: function(run){
|
||
|
this.series.push(run);
|
||
|
return this;
|
||
|
},
|
||
|
calculateAxes: function(dim){
|
||
|
return this;
|
||
|
},
|
||
|
isDirty: function(){
|
||
|
return this.dirty || this._hAxis && this._hAxis.dirty || this._vAxis && this._vAxis.dirty;
|
||
|
},
|
||
|
render: function(dim, offsets){
|
||
|
return this;
|
||
|
},
|
||
|
getRequiredColors: function(){
|
||
|
return this.series.length;
|
||
|
},
|
||
|
|
||
|
// events
|
||
|
plotEvent: function(o){
|
||
|
// intentionally empty --- used for events
|
||
|
},
|
||
|
connect: function(object, method){
|
||
|
this.dirty = true;
|
||
|
return dojo.connect(this, "plotEvent", object, method);
|
||
|
},
|
||
|
events: function(){
|
||
|
var ls = this.plotEvent._listeners;
|
||
|
if(!ls || !ls.length){ return false; }
|
||
|
for(var i in ls){
|
||
|
if(!(i in Array.prototype)){
|
||
|
return true;
|
||
|
}
|
||
|
}
|
||
|
return false;
|
||
|
},
|
||
|
resetEvents: function(){
|
||
|
this.plotEvent({type: "onplotreset", plot: this});
|
||
|
},
|
||
|
|
||
|
// utilities
|
||
|
_calc: function(dim, stats){
|
||
|
// calculate scaler
|
||
|
if(this._hAxis){
|
||
|
if(!this._hAxis.initialized()){
|
||
|
this._hAxis.calculate(stats.hmin, stats.hmax, dim.width);
|
||
|
}
|
||
|
this._hScaler = this._hAxis.getScaler();
|
||
|
}else{
|
||
|
this._hScaler = dojox.charting.scaler.primitive.buildScaler(stats.hmin, stats.hmax, dim.width);
|
||
|
}
|
||
|
if(this._vAxis){
|
||
|
if(!this._vAxis.initialized()){
|
||
|
this._vAxis.calculate(stats.vmin, stats.vmax, dim.height);
|
||
|
}
|
||
|
this._vScaler = this._vAxis.getScaler();
|
||
|
}else{
|
||
|
this._vScaler = dojox.charting.scaler.primitive.buildScaler(stats.vmin, stats.vmax, dim.height);
|
||
|
}
|
||
|
},
|
||
|
|
||
|
_connectEvents: function(shape, o){
|
||
|
shape.connect("onmouseover", this, function(e){
|
||
|
o.type = "onmouseover";
|
||
|
o.event = e;
|
||
|
this.plotEvent(o);
|
||
|
});
|
||
|
shape.connect("onmouseout", this, function(e){
|
||
|
o.type = "onmouseout";
|
||
|
o.event = e;
|
||
|
this.plotEvent(o);
|
||
|
});
|
||
|
shape.connect("onclick", this, function(e){
|
||
|
o.type = "onclick";
|
||
|
o.event = e;
|
||
|
this.plotEvent(o);
|
||
|
});
|
||
|
}
|
||
|
});
|