jui.define("chart.grid.overlap", [ "util.base" ], function(_) {
/**
* @class chart.grid.overlap
* @extends chart.grid.core
*/
var OverlapGrid = function() {
var size, widthUnit, heightUnit, width, height ;
this.custom = function() {
for(var i = 0, len = this.axis.data.length; i < len; i++) {
var obj = this.scale(i);
obj.x -= this.axis.area("x");
obj.y -= this.axis.area("y");
this.chart.svg.rect(_.extend(obj, {
fill : "transparent",
stroke : "transparent"
}));
}
}
this.drawBefore = function() {
size = this.grid.count || this.axis.data.length || 1;
widthUnit = (this.axis.area('width') / 2) / size;
heightUnit = (this.axis.area('height') / 2) / size;
width = this.axis.area('width');
height = this.axis.area('height');
// create scale
this.scale = (function(axis) {
return function(i) {
var x = i * widthUnit;
var y = i * heightUnit;
return {
x : axis.area('x') + x,
y : axis.area('y') + y,
width : Math.abs(width/2 - x)*2,
height : Math.abs(height/2 - y)*2
}
}
})(this.axis);
}
this.draw = function() {
this.grid.hide = true;
return this.drawGrid("overlap");
}
}
OverlapGrid.setup = function() {
return {
/** @cfg {Number} [count=null] Splited count */
count : null
}
}
return OverlapGrid;
}, "chart.grid.core");