in web/servicemix-web-console/src/main/webapp/js/plotkit/Layout.js [394:458]
xval: parseFloat(item[0]),
yval: parseFloat(item[1]),
name: setName
};
this.points.push(point);
}
i++;
}
};
// Create the pie charts
PlotKit.Layout.prototype._evaluatePieCharts = function() {
var items = MochiKit.Base.items;
var sum = MochiKit.Iter.sum;
var getter = MochiKit.Base.itemgetter;
var setCount = keys(this.datasets).length;
// we plot the y values of the first dataset
var dataset = items(this.datasets)[0][1];
var total = sum(map(getter(1), dataset));
this.slices = new Array();
var currentAngle = 0.0;
for (var i = 0; i < dataset.length; i++) {
var fraction = dataset[i][1] / total;
var startAngle = currentAngle * Math.PI * 2;
var endAngle = (currentAngle + fraction) * Math.PI * 2;
var slice = {fraction: fraction,
xval: dataset[i][0],
yval: dataset[i][1],
startAngle: startAngle,
endAngle: endAngle
};
this.slices.push(slice);
currentAngle += fraction;
}
};
PlotKit.Layout.prototype._evaluateLineTicksForXAxis = function() {
var isNil = MochiKit.Base.isUndefinedOrNull;
if (this.options.xTicks) {
// we use use specified ticks with optional labels
this.xticks = new Array();
var makeTicks = function(tick) {
var label = tick.label;
if (isNil(label))
label = tick.v.toString();
var pos = this.xscale * (tick.v - this.minxval);
this.xticks.push([pos, label]);
};
MochiKit.Iter.forEach(this.options.xTicks, bind(makeTicks, this));
}
else if (this.options.xNumberOfTicks) {
// we use defined number of ticks as hint to auto generate
var xvalues = this._uniqueXValues();
var roughSeparation = this.xrange / this.options.xNumberOfTicks;
var tickCount = 0;
this.xticks = new Array();
for (var i = 0; i <= xvalues.length; i++) {
if (xvalues[i] >= (tickCount) * roughSeparation) {