⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chart2d.js

📁 用最近的dojo1.2.1制作前端的ajax购书网站
💻 JS
字号:
/*	Copyright (c) 2004-2008, The Dojo Foundation All Rights Reserved.	Available via Academic Free License >= 2.1 OR the modified BSD license.	see: http://dojotoolkit.org/license for details*/if(!dojo._hasResource["dojox.charting.Chart2D"]){dojo._hasResource["dojox.charting.Chart2D"]=true;dojo.provide("dojox.charting.Chart2D");dojo.require("dojox.gfx");dojo.require("dojox.lang.functional");dojo.require("dojox.lang.functional.fold");dojo.require("dojox.lang.functional.reversed");dojo.require("dojox.charting.Theme");dojo.require("dojox.charting.Series");dojo.require("dojox.charting.axis2d.Default");dojo.require("dojox.charting.plot2d.Default");dojo.require("dojox.charting.plot2d.Lines");dojo.require("dojox.charting.plot2d.Areas");dojo.require("dojox.charting.plot2d.Markers");dojo.require("dojox.charting.plot2d.MarkersOnly");dojo.require("dojox.charting.plot2d.Scatter");dojo.require("dojox.charting.plot2d.Stacked");dojo.require("dojox.charting.plot2d.StackedLines");dojo.require("dojox.charting.plot2d.StackedAreas");dojo.require("dojox.charting.plot2d.Columns");dojo.require("dojox.charting.plot2d.StackedColumns");dojo.require("dojox.charting.plot2d.ClusteredColumns");dojo.require("dojox.charting.plot2d.Bars");dojo.require("dojox.charting.plot2d.StackedBars");dojo.require("dojox.charting.plot2d.ClusteredBars");dojo.require("dojox.charting.plot2d.Grid");dojo.require("dojox.charting.plot2d.Pie");dojo.require("dojox.charting.plot2d.Bubble");(function(){var df=dojox.lang.functional,dc=dojox.charting,_3=df.lambda("item.clear()"),_4=df.lambda("item.purgeGroup()"),_5=df.lambda("item.destroy()"),_6=df.lambda("item.dirty = false"),_7=df.lambda("item.dirty = true");dojo.declare("dojox.charting.Chart2D",null,{constructor:function(_8,_9){if(!_9){_9={};}this.margins=_9.margins?_9.margins:{l:10,t:10,r:10,b:10};this.stroke=_9.stroke;this.fill=_9.fill;this.theme=null;this.axes={};this.stack=[];this.plots={};this.series=[];this.runs={};this.dirty=true;this.coords=null;this.node=dojo.byId(_8);var _a=dojo.marginBox(_8);this.surface=dojox.gfx.createSurface(this.node,_a.w,_a.h);},destroy:function(){dojo.forEach(this.series,_5);dojo.forEach(this.stack,_5);df.forIn(this.axes,_5);this.surface.destroy();},getCoords:function(){if(!this.coords){this.coords=dojo.coords(this.node,true);}return this.coords;},setTheme:function(_b){this.theme=_b._clone();this.dirty=true;return this;},addAxis:function(_c,_d){var _e;if(!_d||!("type" in _d)){_e=new dc.axis2d.Default(this,_d);}else{_e=typeof _d.type=="string"?new dc.axis2d[_d.type](this,_d):new _d.type(this,_d);}_e.name=_c;_e.dirty=true;if(_c in this.axes){this.axes[_c].destroy();}this.axes[_c]=_e;this.dirty=true;return this;},getAxis:function(_f){return this.axes[_f];},removeAxis:function(_10){if(_10 in this.axes){this.axes[_10].destroy();delete this.axes[_10];this.dirty=true;}return this;},addPlot:function(_11,_12){var _13;if(!_12||!("type" in _12)){_13=new dc.plot2d.Default(this,_12);}else{_13=typeof _12.type=="string"?new dc.plot2d[_12.type](this,_12):new _12.type(this,_12);}_13.name=_11;_13.dirty=true;if(_11 in this.plots){this.stack[this.plots[_11]].destroy();this.stack[this.plots[_11]]=_13;}else{this.plots[_11]=this.stack.length;this.stack.push(_13);}this.dirty=true;return this;},removePlot:function(_14){if(_14 in this.plots){var _15=this.plots[_14];delete this.plots[_14];this.stack[_15].destroy();this.stack.splice(_15,1);df.forIn(this.plots,function(idx,_17,_18){if(idx>_15){_18[_17]=idx-1;}});this.dirty=true;}return this;},addSeries:function(_19,_1a,_1b){var run=new dc.Series(this,_1a,_1b);if(_19 in this.runs){this.series[this.runs[_19]].destroy();this.series[this.runs[_19]]=run;}else{this.runs[_19]=this.series.length;this.series.push(run);}run.name=_19;this.dirty=true;if(!("ymin" in run)&&"min" in run){run.ymin=run.min;}if(!("ymax" in run)&&"max" in run){run.ymax=run.max;}return this;},removeSeries:function(_1d){if(_1d in this.runs){var _1e=this.runs[_1d],_1f=this.series[_1e].plot;delete this.runs[_1d];this.series[_1e].destroy();this.series.splice(_1e,1);df.forIn(this.runs,function(idx,_21,_22){if(idx>_1e){_22[_21]=idx-1;}});this.dirty=true;}return this;},updateSeries:function(_23,_24){if(_23 in this.runs){var run=this.series[this.runs[_23]];run.data=_24;run.dirty=true;this._invalidateDependentPlots(run.plot,false);this._invalidateDependentPlots(run.plot,true);}return this;},resize:function(_26,_27){var box;switch(arguments.length){case 0:box=dojo.marginBox(this.node);break;case 1:box=_26;break;default:box={w:_26,h:_27};break;}dojo.marginBox(this.node,box);this.surface.setDimensions(box.w,box.h);this.dirty=true;this.coords=null;return this.render();},getGeometry:function(){var ret={};df.forIn(this.axes,function(_2a){if(_2a.initialized()){ret[_2a.name]={name:_2a.name,vertical:_2a.vertical,scaler:_2a.scaler,ticks:_2a.ticks};}});return ret;},setAxisWindow:function(_2b,_2c,_2d){var _2e=this.axes[_2b];if(_2e){_2e.setWindow(_2c,_2d);}return this;},setWindow:function(sx,sy,dx,dy){if(!("plotArea" in this)){this.calculateGeometry();}df.forIn(this.axes,function(_33){var _34,_35,_36=_33.getScaler().bounds,s=_36.span/(_36.upper-_36.lower);if(_33.vertical){_34=sy;_35=dy/s/_34;}else{_34=sx;_35=dx/s/_34;}_33.setWindow(_34,_35);});return this;},calculateGeometry:function(){if(this.dirty){return this.fullGeometry();}dojo.forEach(this.stack,function(_38){if(_38.dirty||(_38.hAxis&&this.axes[_38.hAxis].dirty)||(_38.vAxis&&this.axes[_38.vAxis].dirty)){_38.calculateAxes(this.plotArea);}},this);return this;},fullGeometry:function(){this._makeDirty();dojo.forEach(this.stack,_3);if(!this.theme){this.setTheme(new dojox.charting.Theme(dojox.charting._def));}dojo.forEach(this.series,function(run){if(!(run.plot in this.plots)){var _3a=new dc.plot2d.Default(this,{});_3a.name=run.plot;this.plots[run.plot]=this.stack.length;this.stack.push(_3a);}this.stack[this.plots[run.plot]].addSeries(run);},this);dojo.forEach(this.stack,function(_3b){if(_3b.hAxis){_3b.setAxis(this.axes[_3b.hAxis]);}if(_3b.vAxis){_3b.setAxis(this.axes[_3b.vAxis]);}},this);var dim=this.dim=this.surface.getDimensions();dim.width=dojox.gfx.normalizedLength(dim.width);dim.height=dojox.gfx.normalizedLength(dim.height);df.forIn(this.axes,_3);dojo.forEach(this.stack,function(_3d){_3d.calculateAxes(dim);});var _3e=this.offsets={l:0,r:0,t:0,b:0};df.forIn(this.axes,function(_3f){df.forIn(_3f.getOffsets(),function(o,i){_3e[i]+=o;});});df.forIn(this.margins,function(o,i){_3e[i]+=o;});this.plotArea={width:dim.width-_3e.l-_3e.r,height:dim.height-_3e.t-_3e.b};df.forIn(this.axes,_3);dojo.forEach(this.stack,function(_44){_44.calculateAxes(this.plotArea);},this);return this;},render:function(){if(this.theme){this.theme.clear();}if(this.dirty){return this.fullRender();}this.calculateGeometry();df.forEachRev(this.stack,function(_45){_45.render(this.dim,this.offsets);},this);df.forIn(this.axes,function(_46){_46.render(this.dim,this.offsets);},this);this._makeClean();if(this.surface.render){this.surface.render();}return this;},fullRender:function(){this.fullGeometry();var _47=this.offsets,dim=this.dim;var _49=df.foldl(this.stack,"z + plot.getRequiredColors()",0);this.theme.defineColors({num:_49,cache:false});dojo.forEach(this.series,_4);df.forIn(this.axes,_4);dojo.forEach(this.stack,_4);this.surface.clear();var t=this.theme,_4b=t.plotarea&&t.plotarea.fill,_4c=t.plotarea&&t.plotarea.stroke;if(_4b){this.surface.createRect({x:_47.l,y:_47.t,width:dim.width-_47.l-_47.r,height:dim.height-_47.t-_47.b}).setFill(_4b);}if(_4c){this.surface.createRect({x:_47.l,y:_47.t,width:dim.width-_47.l-_47.r-1,height:dim.height-_47.t-_47.b-1}).setStroke(_4c);}df.foldr(this.stack,function(z,_4e){return _4e.render(dim,_47),0;},0);_4b=this.fill?this.fill:(t.chart&&t.chart.fill);_4c=this.stroke?this.stroke:(t.chart&&t.chart.stroke);if(_4b=="inherit"){var _4f=this.node,_4b=new dojo.Color(dojo.style(_4f,"backgroundColor"));while(_4b.a==0&&_4f!=document.documentElement){_4b=new dojo.Color(dojo.style(_4f,"backgroundColor"));_4f=_4f.parentNode;}}if(_4b){if(_47.l){this.surface.createRect({width:_47.l,height:dim.height+1}).setFill(_4b);}if(_47.r){this.surface.createRect({x:dim.width-_47.r,width:_47.r+1,height:dim.height+1}).setFill(_4b);}if(_47.t){this.surface.createRect({width:dim.width+1,height:_47.t}).setFill(_4b);}if(_47.b){this.surface.createRect({y:dim.height-_47.b,width:dim.width+1,height:_47.b+2}).setFill(_4b);}}if(_4c){this.surface.createRect({width:dim.width-1,height:dim.height-1}).setStroke(_4c);}df.forIn(this.axes,function(_50){_50.render(dim,_47);});this._makeClean();if(this.surface.render){this.surface.render();}return this;},connectToPlot:function(_51,_52,_53){return _51 in this.plots?this.stack[this.plots[_51]].connect(_52,_53):null;},_makeClean:function(){dojo.forEach(this.axes,_6);dojo.forEach(this.stack,_6);dojo.forEach(this.series,_6);this.dirty=false;},_makeDirty:function(){dojo.forEach(this.axes,_7);dojo.forEach(this.stack,_7);dojo.forEach(this.series,_7);this.dirty=true;},_invalidateDependentPlots:function(_54,_55){if(_54 in this.plots){var _56=this.stack[this.plots[_54]],_57,_58=_55?"vAxis":"hAxis";if(_56[_58]){_57=this.axes[_56[_58]];if(_57.dependOnData()){_57.dirty=true;dojo.forEach(this.stack,function(p){if(p[_58]&&p[_58]==_56[_58]){p.dirty=true;}});}}else{_56.dirty=true;}}}});})();}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -