jui.define("chart.brush.rangecolumn", [], function() { /** * @class chart.brush.rangecolumn * @extends chart.brush.core */ var RangeColumnBrush = function(chart, axis, brush) { var g, width, columnWidth, half_width; var outerPadding, innerPadding; var borderColor, borderWidth, borderOpacity; this.drawBefore = function() { g = chart.svg.group(); outerPadding = brush.outerPadding; innerPadding = brush.innerPadding; width = axis.x.rangeBand(); half_width = (width - outerPadding * 2); columnWidth = (width - outerPadding * 2 - (brush.target.length - 1) * innerPadding) / brush.target.length; borderColor = chart.theme("columnBorderColor"); borderWidth = chart.theme("columnBorderWidth"); borderOpacity = chart.theme("columnBorderOpacity"); } this.draw = function() { this.eachData(function(data, i) { var startX = this.offset("x", i) - (half_width / 2); for(var j = 0; j < brush.target.length; j++) { var value = data[brush.target[j]], startY = axis.y(value[1]), zeroY = axis.y(value[0]); var r = chart.svg.rect({ x : startX, y : startY, width : columnWidth, height : Math.abs(zeroY - startY), fill : this.color(j), stroke : borderColor, "stroke-width" : borderWidth, "stroke-opacity" : borderOpacity }); this.addEvent(r, i, j); g.append(r); startX += columnWidth + innerPadding; } }); return g; } } RangeColumnBrush.setup = function() { return { /** @cfg {Number} [outerPadding=2] Determines the outer margin of a column. */ outerPadding: 2, /** @cfg {Number} [innerPadding=1] Determines the inner margin of a column. */ innerPadding: 1 }; } return RangeColumnBrush; }, "chart.brush.core");