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");