MCPcopy Index your code
hub / github.com/SuperMap/iClient-JavaScript / doDispatchAction

Function doDispatchAction

libs/echarts/echarts-en.simple.js:28369–28444  ·  view source on GitHub ↗
(payload, silent)

Source from the content-addressed store, hash-verified

28367};
28368
28369function doDispatchAction(payload, silent) {
28370 var payloadType = payload.type;
28371 var escapeConnect = payload.escapeConnect;
28372 var actionWrap = actions[payloadType];
28373 var actionInfo = actionWrap.actionInfo;
28374
28375 var cptType = (actionInfo.update || 'update').split(':');
28376 var updateMethod = cptType.pop();
28377 cptType = cptType[0] != null && parseClassType(cptType[0]);
28378
28379 this[IN_MAIN_PROCESS] = true;
28380
28381 var payloads = [payload];
28382 var batched = false;
28383 // Batch action
28384 if (payload.batch) {
28385 batched = true;
28386 payloads = map(payload.batch, function (item) {
28387 item = defaults(extend({}, item), payload);
28388 item.batch = null;
28389 return item;
28390 });
28391 }
28392
28393 var eventObjBatch = [];
28394 var eventObj;
28395 var isHighDown = payloadType === 'highlight' || payloadType === 'downplay';
28396
28397 each(payloads, function (batchItem) {
28398 // Action can specify the event by return it.
28399 eventObj = actionWrap.action(batchItem, this._model, this._api);
28400 // Emit event outside
28401 eventObj = eventObj || extend({}, batchItem);
28402 // Convert type to eventType
28403 eventObj.type = actionInfo.event || eventObj.type;
28404 eventObjBatch.push(eventObj);
28405
28406 // light update does not perform data process, layout and visual.
28407 if (isHighDown) {
28408 // method, payload, mainType, subType
28409 updateDirectly(this, updateMethod, batchItem, 'series');
28410 }
28411 else if (cptType) {
28412 updateDirectly(this, updateMethod, batchItem, cptType.main, cptType.sub);
28413 }
28414 }, this);
28415
28416 if (updateMethod !== 'none' && !isHighDown && !cptType) {
28417 // Still dirty
28418 if (this[OPTION_UPDATED]) {
28419 // FIXME Pass payload ?
28420 prepare(this);
28421 updateMethods.update.call(this, payload);
28422 this[OPTION_UPDATED] = false;
28423 }
28424 else {
28425 updateMethods[updateMethod].call(this, payload);
28426 }

Callers

nothing calls this directly

Calls 8

eachFunction · 0.85
pushMethod · 0.80
mapFunction · 0.70
defaultsFunction · 0.70
extendFunction · 0.70
updateDirectlyFunction · 0.70
prepareFunction · 0.70
triggerMethod · 0.45

Tested by

no test coverage detected