Subversion Repositories Applications.papyrus

Rev

Blame | Last modification | View Log | RSS feed

if(!dojo._hasResource["dojox.charting.plot2d.Grid"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
dojo._hasResource["dojox.charting.plot2d.Grid"] = true;
dojo.provide("dojox.charting.plot2d.Grid");

dojo.require("dojox.charting.Element");
dojo.require("dojox.charting.plot2d.common");
dojo.require("dojox.lang.functional");

(function(){
        var du = dojox.lang.utils;

        dojo.declare("dojox.charting.plot2d.Grid", dojox.charting.Element, {
                defaultParams: {
                        hAxis: "x",                     // use a horizontal axis named "x"
                        vAxis: "y",                     // use a vertical axis named "y"
                        hMajorLines: true,      // draw horizontal major lines
                        hMinorLines: false,     // draw horizontal minor lines
                        vMajorLines: true,      // draw vertical major lines
                        vMinorLines: false,     // draw vertical minor lines
                        hStripes: "none",       // TBD
                        vStripes: "none"        // TBD
                },
                optionalParams: {},     // no optional parameters
                
                constructor: function(chart, kwArgs){
                        this.opt = dojo.clone(this.defaultParams);
                        du.updateWithObject(this.opt, kwArgs);
                        this.hAxis = this.opt.hAxis;
                        this.vAxis = this.opt.vAxis;
                },
                clear: function(){
                        this._hAxis = null;
                        this._vAxis = null;
                        this.dirty = true;
                        return this;
                },
                setAxis: function(axis){
                        if(axis){
                                this[axis.vertical ? "_vAxis" : "_hAxis"] = axis;
                        }
                        return this;
                },
                addSeries: function(run){
                        // nothing
                        return this;
                },
                calculateAxes: function(dim){
                        // nothing
                        return this;
                },
                getRequiredColors: function(){
                        return 0;
                },
                render: function(dim, offsets){
                        // draw horizontal stripes and lines
                        if(!this.dirty){ return this; }
                        this.cleanGroup();
                        var s = this.group, ta = this.chart.theme.axis,
                                scaler = this._vAxis.getScaler();
                        if(this.opt.hMinorLines && scaler.minor.tick){
                                for(var i = 0; i < scaler.minor.count; ++i){
                                        var y = dim.height - offsets.b - scaler.scale * 
                                                        (scaler.minor.start - scaler.bounds.lower + i * scaler.minor.tick);
                                        s.createLine({
                                                x1: offsets.l,
                                                y1: y,
                                                x2: dim.width - offsets.r,
                                                y2: y
                                        }).setStroke(ta.minorTick);
                                }
                        }
                        if(this.opt.hMajorLines && scaler.major.tick){
                                for(var i = 0; i < scaler.major.count; ++i){
                                        var y = dim.height - offsets.b - scaler.scale * 
                                                        (scaler.major.start - scaler.bounds.lower + i * scaler.major.tick);
                                        s.createLine({
                                                x1: offsets.l,
                                                y1: y,
                                                x2: dim.width - offsets.r,
                                                y2: y
                                        }).setStroke(ta.majorTick);
                                }
                        }
                        // draw vertical stripes and lines
                        scaler = this._hAxis.getScaler();
                        if(this.opt.vMinorLines && scaler.minor.tick){
                                for(var i = 0; i < scaler.minor.count; ++i){
                                        var x = offsets.l + scaler.scale * 
                                                        (scaler.minor.start - scaler.bounds.lower + i * scaler.minor.tick);
                                        s.createLine({
                                                x1: x,
                                                y1: offsets.t,
                                                x2: x,
                                                y2: dim.height - offsets.b
                                        }).setStroke(ta.minorTick);
                                }
                        }
                        if(this.opt.vMajorLines && scaler.major.tick){
                                for(var i = 0; i < scaler.major.count; ++i){
                                        var x = offsets.l + scaler.scale * 
                                                        (scaler.major.start - scaler.bounds.lower + i * scaler.major.tick);
                                        s.createLine({
                                                x1: x,
                                                y1: offsets.t,
                                                x2: x,
                                                y2: dim.height - offsets.b
                                        }).setStroke(ta.majorTick);
                                }
                        }
                        this.dirty = false;
                        return this;
                }
        });
})();

}