(function(){ TabLayoutManager = function (config){ //---------------------------------------------------------------// //----------------------Member Variables-------------------------// //---------------------------------------------------------------// //This variable will store the global reference for this class within its context var go_this = this; function init(){ subscribeToDesiredEvents(); }//function init //----------------------- Markup & Widget Creation Functions -------------------------// function createComponents(ao_tabBdCont, ao_tabConfig){ $(ao_tabBdCont).css({position: 'relative'}); var componentCnt = 0, numComponents = ao_tabConfig.components.length, currCompConfig; while(componentCnt < numComponents){ currCompConfig = ao_tabConfig.components[componentCnt]; //create the div required for this component currCompConfig["cont"] = $('
'); ao_tabBdCont.append(currCompConfig["cont"]); $(currCompConfig["cont"]).css({top: currCompConfig["top"], left: currCompConfig["left"], position:'absolute'}); if(currCompConfig["url"]){ currCompConfig["interactionFiltersManager"] = new InteractionFiltersManager(currCompConfig["filter"]); //create the data source required for this widget/component //var myDatasource = new DevExpress.data.DataSource(currCompConfig["url"] + "?" + currCompConfig["query"] +"&" + currCompConfig["interactionFiltersManager"].getFiltersAsStr()); var myDatasource = commonClassFactory.createDataSource (currCompConfig["url"] + "&" + currCompConfig["query"] +"&" + currCompConfig["interactionFiltersManager"].getFiltersAsStr(), currCompConfig['dataTemplate'], currCompConfig['argumentField'], currCompConfig['dataPostProcessFn'],currCompConfig['dataReshapeFn'] ); //update the options for this widget/component currCompConfig["options"]["dataSource"] = myDatasource; }//if(currCompConfig["url"]) //create the instance of this widget //example: $("#container").dxChart({options}); $(currCompConfig["cont"])[currCompConfig["type"]](currCompConfig["options"]); //store the instance for future use currCompConfig["instance"]= $(currCompConfig["cont"])[currCompConfig["type"]]("instance"); if(currCompConfig["url"]){//do not move this up or merge it with the condition above this has to be done after the instance is rendered currCompConfig["instance"]["url"] = currCompConfig["url"]; currCompConfig["instance"]["query"] = currCompConfig["query"]; currCompConfig["instance"]["interactionFiltersManager"] = currCompConfig["interactionFiltersManager"]; }//if(currCompConfig["url"]) //attach the interaction filter manager to each widget along with the url and query so that it can be accessed in the tabInterationManager if(!currCompConfig["instance"]["interactionFiltersManager"]){ currCompConfig["instance"]["interactionFiltersManager"] = new InteractionFiltersManager(currCompConfig["filter"]); }//if(!currCompConfig["instance"]["interactionFiltersManager"]) if(currCompConfig['dataTemplate']){ currCompConfig["instance"]['dataTemplate']= currCompConfig['dataTemplate']; } if(currCompConfig['argumentField']){ currCompConfig["instance"]['argumentField'] = currCompConfig['argumentField']; } if(currCompConfig['dataPostProcessFn']){ currCompConfig["instance"]['dataPostProcessFn'] = currCompConfig['dataPostProcessFn']; } if(currCompConfig['dataReshapeFn']){ currCompConfig["instance"]['dataReshapeFn'] = currCompConfig['dataReshapeFn']; } componentCnt++; }//while( componentCnt < numComponents) }//function createComponents //---------------------------- Event Handlers -------------------------// //----------------------- Event Subscriptions -------------------------// function subscribeToDesiredEvents(){ }//function subscribeToDesiredEvents //----------------------- Public Function -----------------------------// this.createComponents = createComponents; init(); return this; };//Dashboard = function })();//anonym function -- IFFE