12345678 |
- /*
- Copyright (c) 2004-2009, 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.widget.DataPresentation"]){dojo._hasResource["dojox.widget.DataPresentation"]=true;dojo.provide("dojox.widget.DataPresentation");dojo.experimental("dojox.widget.DataPresentation");dojo.require("dojox.grid.DataGrid");dojo.require("dojox.charting.Chart2D");dojo.require("dojox.charting.widget.Legend");dojo.require("dojox.charting.action2d.Tooltip");dojo.require("dojox.charting.action2d.Highlight");dojo.require("dojo.colors");dojo.require("dojo.data.ItemFileWriteStore");(function(){var _1=function(_2,_3,_4,_5,_6){var _7=[],_8=_3;_7[0]={value:0,text:""};var _9=_2.slice(0);if(_4){_9.reverse();}var _a=_9.length;if((_5!=="ClusteredBars")&&(_5!=="StackedBars")){var _b=_6.offsetWidth;var _c=(""+_9[0]).length*_9.length*7;if(_8==1){for(var z=1;z<500;++z){if((_c/z)<_b){break;}++_8;}}}for(var i=0;i<_a;i++){if(i%_8==0){_7.push({value:(i+1),text:_9[i]});}else{_7.push({value:(i+1),text:""});}}_7.push({value:(_a+1),text:""});return _7;};var _d=function(_e,_f){var _10={vertical:false,labels:_f,min:0,max:_f.length-1,majorTickStep:1,minorTickStep:1};if((_e==="ClusteredBars")||(_e==="StackedBars")){_10.vertical=true;}if((_e==="Lines")||(_e==="Areas")||(_e==="StackedAreas")){_10.min++;_10.max--;}return _10;};var _11=function(_12,_13,_14,_15){var _16={vertical:true,fixLower:"major",fixUpper:"major",natural:true};if(_13==="secondary"){_16.leftBottom=false;}if((_12==="ClusteredBars")||(_12==="StackedBars")){_16.vertical=false;}if(_14==_15){_16.min=_14-1;_16.max=_15+1;}return _16;};var _17=function(_18,_19,_1a){var _1b={type:_18,hAxis:"independent",vAxis:"dependent-"+_19,gap:4,lines:false,areas:false,markers:false};if((_18==="ClusteredBars")||(_18==="StackedBars")){_1b.hAxis=_1b.vAxis;_1b.vAxis="independent";}if((_18==="Lines")||(_18==="Hybrid-Lines")||(_18==="Areas")||(_18==="StackedAreas")){_1b.lines=true;}if((_18==="Areas")||(_18==="StackedAreas")){_1b.areas=true;}if(_18==="Lines"){_1b.markers=true;}if(_18==="Hybrid-Lines"){_1b.shadows={dx:2,dy:2,dw:2};_1b.type="Lines";}if(_18==="Hybrid-ClusteredColumns"){_1b.type="ClusteredColumns";}if(_1a){_1b.animate=_1a;}return _1b;};var _1c=function(_1d,_1e,_1f,_20,_21,_22,_23,_24,_25,_26){var _27=_1e;if(!_27){_1d.innerHTML="";_27=new dojox.charting.Chart2D(_1d);}if(_23){_23._clone=function(){var _28=new dojox.charting.Theme({chart:this.chart,plotarea:this.plotarea,axis:this.axis,series:this.series,marker:this.marker,antiAlias:this.antiAlias,assignColors:this.assignColors,assignMarkers:this.assigneMarkers,colors:dojo.delegate(this.colors)});_28.markers=this.markers;_28._buildMarkerArray();return _28;};_27.setTheme(_23);}var _29=_1(_24.series_data[0],_22,_20,_1f,_1d);var _2a={};var _2b=null;var _2c=null;var _2d=_24.series_name.length;for(var i=0;i<_2d;i++){if(_24.series_chart[i]&&(_24.series_data[i].length>0)){var _2e=_1f;var _2f=_24.series_axis[i];if(_2e=="Hybrid"){if(_24.series_charttype[i]=="line"){_2e="Hybrid-Lines";}else{_2e="Hybrid-ClusteredColumns";}}if(!_2a[_2f]){_2a[_2f]={};}if(!_2a[_2f][_2e]){var _30=_2f+"-"+_2e;_27.addPlot(_30,_17(_2e,_2f,_21));new dojox.charting.action2d.Tooltip(_27,_30);if((_2e!=="Lines")&&(_2e!=="Hybrid-Lines")){new dojox.charting.action2d.Highlight(_27,_30);}_2a[_2f][_2e]=true;}var _31=[];var _32=_24.series_data[i].length;for(var j=0;j<_32;j++){var val=_24.series_data[i][j];_31.push(val);if(_2b===null||val>_2b){_2b=val;}if(_2c===null||val<_2c){_2c=val;}}if(_20){_31.reverse();}var _33={plot:_2f+"-"+_2e};if(_24.series_linestyle[i]){_33.stroke={style:_24.series_linestyle[i]};}_27.addSeries(_24.series_name[i],_31,_33);}}_27.addAxis("independent",_d(_1f,_29));_27.addAxis("dependent-primary",_11(_1f,"primary",_2c,_2b));_27.addAxis("dependent-secondary",_11(_1f,"secondary",_2c,_2b));_27.render();return _27;};var _34=function(_35,_36,_37,_38){var _39=_36;if(!_39){if(_38){_39=new dojox.charting.widget.Legend({chart:_37,horizontal:false},_35);}else{_39=new dojox.charting.widget.Legend({chart:_37,vertical:false},_35);}}return _39;};var _3a=function(_3b,_3c,_3d,_3e,_3f){var _40=_3c||new dojox.grid.DataGrid({},_3b);_40.startup();_40.setStore(_3d,_3e,_3f);var _41=[];for(var ser=0;ser<_3d.series_name.length;ser++){if(_3d.series_grid[ser]&&(_3d.series_data[ser].length>0)){_41.push({field:"data."+ser,name:_3d.series_name[ser],width:"auto",formatter:_3d.series_gridformatter[ser]});}}_40.setStructure(_41);_40.render();return _40;};var _42=function(_43,_44){if(_44.title){_43.innerHTML=_44.title;}};var _45=function(_46,_47){if(_47.footer){_46.innerHTML=_47.footer;}};var _48=function(_49,_4a){var _4b=_49;if(_4a){var _4c=_4a.split(/[.\[\]]+/);for(var _4d in _4c){if(_4b){_4b=_4b[_4c[_4d]];}}}return _4b;};dojo.declare("dojox.widget.DataPresentation",null,{type:"chart",chartType:"clusteredBars",reverse:false,animate:null,labelMod:1,legendVertical:false,constructor:function(_4e,_4f){dojo.mixin(this,_4f);this.domNode=dojo.byId(_4e);this[this.type+"Node"]=this.domNode;if(typeof this.theme=="string"){this.theme=dojo.getObject(this.theme);}this.chartNode=dojo.byId(this.chartNode);this.legendNode=dojo.byId(this.legendNode);this.gridNode=dojo.byId(this.gridNode);this.titleNode=dojo.byId(this.titleNode);this.footerNode=dojo.byId(this.footerNode);if(this.url){this.setURL(null,this.refreshInterval);}else{if(this.data){this.setData(null,this.refreshInterval);}else{this.setStore();}}},setURL:function(url,_50){if(_50){this.cancelRefresh();}this.url=url||this.url;this.refreshInterval=_50||this.refreshInterval;var me=this;dojo.xhrGet({url:this.url,handleAs:"json-comment-optional",load:function(_51,_52){me.setData(_51);},error:function(xhr,_53){if(me.urlError&&(typeof me.urlError=="function")){me.urlError(xhr,_53);}}});if(_50&&(this.refreshInterval>0)){this.refreshIntervalPending=setInterval(function(){me.setURL();},this.refreshInterval);}},setData:function(_54,_55){if(_55){this.cancelRefresh();}this.data=_54||this.data;this.refreshInterval=_55||this.refreshInterval;var _56=(typeof this.series=="function")?this.series(this.data):this.series;var _57=[],_58=[],_59=[],_5a=[],_5b=[],_5c=[],_5d=[],_5e=[],_5f=[],_60=0;for(var ser=0;ser<_56.length;ser++){_57[ser]=_48(this.data,_56[ser].datapoints);if(_57[ser]&&(_57[ser].length>_60)){_60=_57[ser].length;}_58[ser]=[];_59[ser]=_56[ser].name||(_56[ser].namefield?_48(this.data,_56[ser].namefield):null)||("series "+ser);_5a[ser]=(_56[ser].chart!==false);_5b[ser]=_56[ser].charttype||"bar";_5c[ser]=_56[ser].linestyle;_5d[ser]=_56[ser].axis||"primary";_5e[ser]=(_56[ser].grid!==false);_5f[ser]=_56[ser].gridformatter;}var _61,_62,_63,_64;var _65=[];for(_61=0;_61<_60;_61++){_62={index:_61};for(ser=0;ser<_56.length;ser++){if(_57[ser]&&(_57[ser].length>_61)){_63=_48(_57[ser][_61],_56[ser].field);if(_5a[ser]){_64=parseFloat(_63);if(!isNaN(_64)){_63=_64;}}_62["data."+ser]=_63;_58[ser].push(_63);}}_65.push(_62);}if(_60<=0){_65.push({index:0});}var _66=new dojo.data.ItemFileWriteStore({data:{identifier:"index",items:_65}});if(this.data.title){_66.title=this.data.title;}if(this.data.footer){_66.footer=this.data.footer;}_66.series_data=_58;_66.series_name=_59;_66.series_chart=_5a;_66.series_charttype=_5b;_66.series_linestyle=_5c;_66.series_axis=_5d;_66.series_grid=_5e;_66.series_gridformatter=_5f;this.setPreparedStore(_66);if(_55&&(this.refreshInterval>0)){var me=this;this.refreshIntervalPending=setInterval(function(){me.setData();},this.refreshInterval);}},refresh:function(){if(this.url){this.setURL(this.url,this.refreshInterval);}else{if(this.data){this.setData(this.data,this.refreshInterval);}}},cancelRefresh:function(){if(this.refreshIntervalPending){clearInterval(this.refreshIntervalPending);this.refreshIntervalPending=undefined;}},setStore:function(_67,_68,_69){this.setPreparedStore(_67,_68,_69);},setPreparedStore:function(_6a,_6b,_6c){this.preparedstore=_6a||this.store;this.query=_6b||this.query;this.queryOptions=_6c||this.queryOptions;if(this.preparedstore){if(this.chartNode){this.chartWidget=_1c(this.chartNode,this.chartWidget,this.chartType,this.reverse,this.animate,this.labelMod,this.theme,this.preparedstore,this.query,this,_6c);}if(this.legendNode){this.legendWidget=_34(this.legendNode,this.legendWidget,this.chartWidget,this.legendVertical);}if(this.gridNode){this.gridWidget=_3a(this.gridNode,this.gridWidget,this.preparedstore,this.query,this.queryOptions);}if(this.titleNode){_42(this.titleNode,this.preparedstore);}if(this.footerNode){_45(this.footerNode,this.preparedstore);}}},getChartWidget:function(){return this.chartWidget;},getGridWidget:function(){return this.gridWidget;},destroy:function(){this.cancelRefresh();if(this.chartWidget){this.chartWidget.destroy();this.chartWidget=undefined;}if(this.legendWidget){this.legendWidget=undefined;}if(this.gridWidget){this.gridWidget=undefined;}if(this.chartNode){this.chartNode.innerHTML="";}if(this.legendNode){this.legendNode.innerHTML="";}if(this.gridNode){this.gridNode.innerHTML="";}if(this.titleNode){this.titleNode.innerHTML="";}if(this.footerNode){this.footerNode.innerHTML="";}}});})();}
|