jui.define("chart.brush.equalizercolumn", [], function() { /** * @class chart.brush.equalizercolumn * @extends chart.brush.stackcolumn */ var EqualizerColumnBrush = function() { var g, zeroY, bar_width, is_reverse; this.drawBefore = function() { g = this.svg.group(); zeroY = this.axis.y(0); bar_width = this.getTargetSize(); is_reverse = this.axis.get("y").reverse; } this.draw = function() { var targets = this.brush.target, padding = this.brush.innerPadding, band = this.axis.y.rangeBand(), unit = band / (this.brush.unit * padding), height = unit + padding; this.eachData(function(data, i) { var startX = this.offset("x", i) - bar_width / 2, startY = this.axis.y(0), y = startY, value = 0; for (var j = 0; j < targets.length; j++) { var barGroup = this.svg.group(), yValue = data[targets[j]] + value, endY = this.axis.y(yValue), targetHeight = Math.abs(startY - endY), targetY = targetHeight; while (targetY >= height) { var r = this.getBarElement(i, j); r.attr({ x : startX, y : y, width : bar_width, height : unit }); targetY -= height; y += (is_reverse) ? height : -height; barGroup.append(r); } barGroup.translate(0, (is_reverse) ? 0 : -unit); this.addEvent(barGroup, i, j); g.append(barGroup); startY = endY; value = yValue; } }); return g; } } EqualizerColumnBrush.setup = function() { return { /** @cfg {Number} [unit=5] Determines the reference value that represents the color.*/ unit: 1 }; } return EqualizerColumnBrush; }, "chart.brush.stackcolumn");