source: Dev/trunk/src/client/dojox/charting/plot2d/Stacked.js @ 513

Last change on this file since 513 was 483, checked in by hendrikvanantwerpen, 11 years ago

Added Dojo 1.9.3 release.

File size: 1.6 KB
Line 
1define(["dojo/_base/declare", "./Default", "./commonStacked"],
2        function(declare, Default, commonStacked){
3
4        return declare("dojox.charting.plot2d.Stacked", Default, {
5                // summary:
6                //              Like the default plot, Stacked sets up lines, areas and markers
7                //              in a stacked fashion (values on the y axis added to each other)
8                //              as opposed to a direct one.
9                getSeriesStats: function(){
10                        // summary:
11                        //              Calculate the min/max on all attached series in both directions.
12                        // returns: Object
13                        //              {hmin, hmax, vmin, vmax} min/max in both directions.
14                        var stats = commonStacked.collectStats(this.series);
15                        return stats; // Object
16                },
17               
18                buildSegments: function(i, indexed){
19                        var run = this.series[i],
20                                min = indexed?Math.max(0, Math.floor(this._hScaler.bounds.from - 1)):0,
21                                max = indexed?Math.min(run.data.length-1, Math.ceil(this._hScaler.bounds.to)):run.data.length-1,
22                                rseg = null, segments = [];
23                        // split the run data into dense segments (each containing no nulls)
24                        // except if interpolates is false in which case ignore null between valid data
25                        for(var j = min; j <= max; j++){
26                                var value = indexed ? commonStacked.getIndexValue(this.series, i, j) : commonStacked.getValue(this.series, i, run.data[j] ?run.data[j].x: null);
27                                if(value[0] != null && (indexed || value[0].y != null)){
28                                        if(!rseg){
29                                                rseg = [];
30                                                segments.push({index: j, rseg: rseg});
31                                        }
32                                        rseg.push(value[0]);
33                                }else{
34                                        if(!this.opt.interpolate || indexed){
35                                                // we break the line only if not interpolating or if we have indexed data
36                                                rseg = null;
37                                        }
38                                }
39                        }
40                        return segments;
41                }
42               
43        });
44});
Note: See TracBrowser for help on using the repository browser.