blob: 94bee8f8473c8cbb8be499ebeab8e66552919f28 [file] [log] [blame]
App.LegendChartComponent = App.ChartCompComponent.extend(App.WfColors, {
hasNoData: Ember.computed(function() {
return false;
}).property('wfStates'),
defaultOuterHeight: 200,
verticalMargin: 0,
xScale: function() {
var xScale = d3.scale.ordinal()
.domain(d3.range(this.get('wfStates').length))
.rangeBands([0, this.get('graphicWidth')], .1, 0);
return xScale;
}.property('graphicWidth'),
drawChart: function(){
var colors = this.get('colors');
var svg = this.get('viewport');
var xScale = this.get('xScale');
svg.selectAll('rect.legend')
.data(this.get('wfStates'))
.enter()
.append('rect')
.attr({
fill: function(d, i) { return colors[i]; },
class: 'legend',
x: function(d,i) { return xScale(i); },
width: xScale.rangeBand(),
y: 0,
height: 30
})
var text = svg.selectAll('text.legend')
.data(this.get('counts'))
.enter()
.append('text')
.attr({
x: function(d,i) { return xScale(i) + 0.5*xScale.rangeBand(); },
y: 20,
'text-anchor': 'middle',
fill: 'white'
})
.text(function(d) {
var text = d.text;
return d.numLogs ? d.text + " (" + d.numLogs + ")" : d.text;
})
this.set('textD', text);
},
updateChart: function() {
console.log('updateChart')
var xScale = this.get('xScale');
var text = this.get('textD')
.data(this.get('counts'))
.attr({
x: function(d,i) { return xScale(i) + 0.5*xScale.rangeBand(); },
y: 20,
'text-anchor': 'middle',
fill: 'white'
})
.text(function(d) {
var text = d.text;
return d.numLogs ? d.text + " (" + d.numLogs + ")" : d.text;
})
}.observes('counts')
});