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