jui.define("chart.grid.table", [ ], function() { /** * @class chart.grid.table * @extends chart.grid.core */ var TableGrid = function(chart, axis, grid) { var rowUnit, columnUnit, outerPadding, row, column ; this.custom = function(g) { for(var r = 0; r < row; r++) { for (var c = 0; c < column; c++) { var index = r * column + c; var obj = this.scale(index); obj.x -= this.axis.area('x'); obj.y -= this.axis.area('y'); var rect = this.chart.svg.rect(_.extend(obj, { fill : "tranparent", stroke : "black" })); //g.append(rect); } } } this.drawBefore = function() { var row = this.grid.rows; var column = this.grid.columns; padding = this.grid.padding; var columnUnit = (this.axis.area('width') - (column - 1) * padding) / column; var rowUnit = (this.axis.area('height') - (row - 1) * padding ) / row; // create scale this.scale = (function(axis, row, column, rowUnit, columnUnit) { return function(i) { var r = Math.floor(i / column) ; var c = i % column; var x = c * columnUnit; var y = r * rowUnit; var space = padding * c; var rspace = padding * r; return { x : axis.area('x') + x + space, y : axis.area('y') + y + rspace, width : columnUnit, height : rowUnit } } })(this.axis, row, column, rowUnit, columnUnit); } this.draw = function() { this.grid.hide = true; return this.drawGrid("table"); } } TableGrid.setup = function() { return { /** @cfg {Number} [rows=1] row count in table */ rows: 1, /** @cfg {Number} [column=1] column count in table */ columns: 1, /** @cfg {Number} [padding=1] padding in table */ padding: 10 }; } return TableGrid; }, "chart.grid.core");