MCPcopy Create free account
hub / github.com/SuperMap/iClient-JavaScript / prepareView

Function prepareView

libs/echarts/echarts-en.simple.js:28538–28600  ·  view source on GitHub ↗

* Prepare view instances of charts and components * @param {module:echarts/model/Global} ecModel * @private

(ecIns, type, ecModel, scheduler)

Source from the content-addressed store, hash-verified

28536 * @private
28537 */
28538function prepareView(ecIns, type, ecModel, scheduler) {
28539 var isComponent = type === 'component';
28540 var viewList = isComponent ? ecIns._componentsViews : ecIns._chartsViews;
28541 var viewMap = isComponent ? ecIns._componentsMap : ecIns._chartsMap;
28542 var zr = ecIns._zr;
28543 var api = ecIns._api;
28544
28545 for (var i = 0; i < viewList.length; i++) {
28546 viewList[i].__alive = false;
28547 }
28548
28549 isComponent
28550 ? ecModel.eachComponent(function (componentType, model) {
28551 componentType !== 'series' && doPrepare(model);
28552 })
28553 : ecModel.eachSeries(doPrepare);
28554
28555 function doPrepare(model) {
28556 // Consider: id same and type changed.
28557 var viewId = '_ec_' + model.id + '_' + model.type;
28558 var view = viewMap[viewId];
28559 if (!view) {
28560 var classType = parseClassType(model.type);
28561 var Clazz = isComponent
28562 ? Component.getClass(classType.main, classType.sub)
28563 : Chart.getClass(classType.sub);
28564
28565 if (__DEV__) {
28566 assert(Clazz, classType.sub + ' does not exist.');
28567 }
28568
28569 view = new Clazz();
28570 view.init(ecModel, api);
28571 viewMap[viewId] = view;
28572 viewList.push(view);
28573 zr.add(view.group);
28574 }
28575
28576 model.__viewId = view.__id = viewId;
28577 view.__alive = true;
28578 view.__model = model;
28579 view.group.__ecComponentInfo = {
28580 mainType: model.mainType,
28581 index: model.componentIndex
28582 };
28583 !isComponent && scheduler.prepareView(view, model, ecModel, api);
28584 }
28585
28586 for (var i = 0; i < viewList.length;) {
28587 var view = viewList[i];
28588 if (!view.__alive) {
28589 !isComponent && view.renderTask.dispose();
28590 zr.remove(view.group);
28591 view.dispose(ecModel, api);
28592 viewList.splice(i, 1);
28593 delete viewMap[view.__id];
28594 view.__id = view.group.__ecComponentInfo = null;
28595 }

Callers 1

prepareFunction · 0.70

Calls 3

doPrepareFunction · 0.70
disposeMethod · 0.45
removeMethod · 0.45

Tested by

no test coverage detected