提交 4330bad6 编写于 作者: L lang

Merge visual and layout, use priority instead of fixed stage

上级 f6aad591
...@@ -12,7 +12,7 @@ define(function (require) { ...@@ -12,7 +12,7 @@ define(function (require) {
echarts.registerLayout(zrUtil.curry(barLayoutGrid, 'bar')); echarts.registerLayout(zrUtil.curry(barLayoutGrid, 'bar'));
// Visual coding for legend // Visual coding for legend
echarts.registerVisualCoding('chart', function (ecModel) { echarts.registerVisual(function (ecModel) {
ecModel.eachSeriesByType('bar', function (seriesModel) { ecModel.eachSeriesByType('bar', function (seriesModel) {
var data = seriesModel.getData(); var data = seriesModel.getData();
data.setVisual('legendSymbol', 'roundRect'); data.setVisual('legendSymbol', 'roundRect');
......
...@@ -5,7 +5,7 @@ define(function (require) { ...@@ -5,7 +5,7 @@ define(function (require) {
require('./boxplot/BoxplotSeries'); require('./boxplot/BoxplotSeries');
require('./boxplot/BoxplotView'); require('./boxplot/BoxplotView');
echarts.registerVisualCoding('chart', require('./boxplot/boxplotVisual')); echarts.registerVisual(require('./boxplot/boxplotVisual'));
echarts.registerLayout(require('./boxplot/boxplotLayout')); echarts.registerLayout(require('./boxplot/boxplotLayout'));
}); });
\ No newline at end of file
...@@ -5,7 +5,7 @@ define(function (require) { ...@@ -5,7 +5,7 @@ define(function (require) {
var parsePercent = numberUtil.parsePercent; var parsePercent = numberUtil.parsePercent;
var each = zrUtil.each; var each = zrUtil.each;
return function (ecModel, api) { return function (ecModel) {
var groupResult = groupSeriesByAxis(ecModel); var groupResult = groupSeriesByAxis(ecModel);
......
...@@ -9,7 +9,7 @@ define(function (require) { ...@@ -9,7 +9,7 @@ define(function (require) {
require('./candlestick/preprocessor') require('./candlestick/preprocessor')
); );
echarts.registerVisualCoding('chart', require('./candlestick/candlestickVisual')); echarts.registerVisual(require('./candlestick/candlestickVisual'));
echarts.registerLayout(require('./candlestick/candlestickLayout')); echarts.registerLayout(require('./candlestick/candlestickLayout'));
}); });
\ No newline at end of file
...@@ -4,7 +4,7 @@ define(function (require) { ...@@ -4,7 +4,7 @@ define(function (require) {
var CANDLE_MIN_NICE_WIDTH = 5; var CANDLE_MIN_NICE_WIDTH = 5;
var GPA_MIN = 4; var GPA_MIN = 4;
return function (ecModel, api) { return function (ecModel) {
ecModel.eachSeriesByType('candlestick', function (seriesModel) { ecModel.eachSeriesByType('candlestick', function (seriesModel) {
......
...@@ -7,11 +7,7 @@ define(function (require) { ...@@ -7,11 +7,7 @@ define(function (require) {
var zrUtil = require('zrender/core/util'); var zrUtil = require('zrender/core/util');
echarts.registerLayout(require('./chord/chordCircularLayout')); echarts.registerLayout(require('./chord/chordCircularLayout'));
echarts.registerVisualCoding( echarts.registerVisual(zrUtil.curry(require('../visual/dataColor'), 'chord'));
'chart', zrUtil.curry(require('../visual/dataColor'), 'chord')
);
echarts.registerProcessor( echarts.registerProcessor(zrUtil.curry(require('../processor/dataFilter'), 'pie'));
'filter', zrUtil.curry(require('../processor/dataFilter'), 'pie')
);
}); });
\ No newline at end of file
...@@ -95,7 +95,7 @@ define(function (require) { ...@@ -95,7 +95,7 @@ define(function (require) {
return a.size - b.size; return a.size - b.size;
}; };
return function (ecModel, api) { return function (ecModel, api, payload) {
ecModel.eachSeriesByType('chord', function (chordSeries) { ecModel.eachSeriesByType('chord', function (chordSeries) {
var graph = chordSeries.getGraph(); var graph = chordSeries.getGraph();
......
...@@ -6,7 +6,7 @@ define(function (require) { ...@@ -6,7 +6,7 @@ define(function (require) {
require('./effectScatter/EffectScatterSeries'); require('./effectScatter/EffectScatterSeries');
require('./effectScatter/EffectScatterView'); require('./effectScatter/EffectScatterView');
echarts.registerVisualCoding('chart', zrUtil.curry( echarts.registerVisual(zrUtil.curry(
require('../visual/symbol'), 'effectScatter', 'circle', null require('../visual/symbol'), 'effectScatter', 'circle', null
)); ));
echarts.registerLayout(zrUtil.curry( echarts.registerLayout(zrUtil.curry(
......
...@@ -6,12 +6,8 @@ define(function (require) { ...@@ -6,12 +6,8 @@ define(function (require) {
require('./funnel/FunnelSeries'); require('./funnel/FunnelSeries');
require('./funnel/FunnelView'); require('./funnel/FunnelView');
echarts.registerVisualCoding( echarts.registerVisual(zrUtil.curry(require('../visual/dataColor'), 'funnel'));
'chart', zrUtil.curry(require('../visual/dataColor'), 'funnel')
);
echarts.registerLayout(require('./funnel/funnelLayout')); echarts.registerLayout(require('./funnel/funnelLayout'));
echarts.registerProcessor( echarts.registerProcessor(zrUtil.curry(require('../processor/dataFilter'), 'funnel'));
'filter', zrUtil.curry(require('../processor/dataFilter'), 'funnel')
);
}); });
\ No newline at end of file
...@@ -94,7 +94,7 @@ define(function (require) { ...@@ -94,7 +94,7 @@ define(function (require) {
}); });
} }
return function (ecModel, api) { return function (ecModel, api, payload) {
ecModel.eachSeriesByType('funnel', function (seriesModel) { ecModel.eachSeriesByType('funnel', function (seriesModel) {
var data = seriesModel.getData(); var data = seriesModel.getData();
var sort = seriesModel.get('sort'); var sort = seriesModel.get('sort');
......
...@@ -8,13 +8,13 @@ define(function (require) { ...@@ -8,13 +8,13 @@ define(function (require) {
require('./graph/roamAction'); require('./graph/roamAction');
echarts.registerProcessor('filter', require('./graph/categoryFilter')); echarts.registerProcessor(require('./graph/categoryFilter'));
echarts.registerVisualCoding('chart', zrUtil.curry( echarts.registerVisual(zrUtil.curry(
require('../visual/symbol'), 'graph', 'circle', null require('../visual/symbol'), 'graph', 'circle', null
)); ));
echarts.registerVisualCoding('chart', require('./graph/categoryVisual')); echarts.registerVisual(require('./graph/categoryVisual'));
echarts.registerVisualCoding('chart', require('./graph/edgeVisual')); echarts.registerVisual(require('./graph/edgeVisual'));
echarts.registerLayout(require('./graph/simpleLayout')); echarts.registerLayout(require('./graph/simpleLayout'));
echarts.registerLayout(require('./graph/circularLayout')); echarts.registerLayout(require('./graph/circularLayout'));
......
define(function (require) { define(function (require) {
var circularLayoutHelper = require('./circularLayoutHelper'); var circularLayoutHelper = require('./circularLayoutHelper');
return function (ecModel, api) { return function (ecModel) {
ecModel.eachSeriesByType('graph', function (seriesModel) { ecModel.eachSeriesByType('graph', function (seriesModel) {
if (seriesModel.get('layout') === 'circular') { if (seriesModel.get('layout') === 'circular') {
circularLayoutHelper(seriesModel); circularLayoutHelper(seriesModel);
......
...@@ -6,7 +6,7 @@ define(function (require) { ...@@ -6,7 +6,7 @@ define(function (require) {
var circularLayoutHelper = require('./circularLayoutHelper'); var circularLayoutHelper = require('./circularLayoutHelper');
var vec2 = require('zrender/core/vector'); var vec2 = require('zrender/core/vector');
return function (ecModel, api) { return function (ecModel) {
ecModel.eachSeriesByType('graph', function (graphSeries) { ecModel.eachSeriesByType('graph', function (graphSeries) {
var coordSys = graphSeries.coordinateSystem; var coordSys = graphSeries.coordinateSystem;
if (coordSys && coordSys.type !== 'view') { if (coordSys && coordSys.type !== 'view') {
......
...@@ -2,11 +2,12 @@ define(function (require) { ...@@ -2,11 +2,12 @@ define(function (require) {
var zrUtil = require('zrender/core/util'); var zrUtil = require('zrender/core/util');
var echarts = require('../echarts'); var echarts = require('../echarts');
var PRIORITY = echarts.PRIORITY;
require('./line/LineSeries'); require('./line/LineSeries');
require('./line/LineView'); require('./line/LineView');
echarts.registerVisualCoding('chart', zrUtil.curry( echarts.registerVisual(zrUtil.curry(
require('../visual/symbol'), 'line', 'circle', 'line' require('../visual/symbol'), 'line', 'circle', 'line'
)); ));
echarts.registerLayout(zrUtil.curry( echarts.registerLayout(zrUtil.curry(
...@@ -14,7 +15,7 @@ define(function (require) { ...@@ -14,7 +15,7 @@ define(function (require) {
)); ));
// Down sample after filter // Down sample after filter
echarts.registerProcessor('statistic', zrUtil.curry( echarts.registerProcessor(PRIORITY.PROCESSOR.STATISTIC, zrUtil.curry(
require('../processor/dataSample'), 'line' require('../processor/dataSample'), 'line'
)); ));
......
...@@ -9,7 +9,7 @@ define(function (require) { ...@@ -9,7 +9,7 @@ define(function (require) {
require('./lines/linesLayout') require('./lines/linesLayout')
); );
echarts.registerVisualCoding( echarts.registerVisual(
'chart', zrUtil.curry(require('../visual/seriesColor'), 'lines', 'lineStyle') zrUtil.curry(require('../visual/seriesColor'), 'lines', 'lineStyle')
); );
}); });
\ No newline at end of file
define(function (require) { define(function (require) {
var echarts = require('../echarts'); var echarts = require('../echarts');
var PRIORITY = echarts.PRIORITY;
require('./map/MapSeries'); require('./map/MapSeries');
...@@ -12,9 +13,9 @@ define(function (require) { ...@@ -12,9 +13,9 @@ define(function (require) {
echarts.registerLayout(require('./map/mapSymbolLayout')); echarts.registerLayout(require('./map/mapSymbolLayout'));
echarts.registerVisualCoding('chart', require('./map/mapVisual')); echarts.registerVisual(require('./map/mapVisual'));
echarts.registerProcessor('statistic', require('./map/mapDataStatistic')); echarts.registerProcessor(PRIORITY.PROCESSOR.STATISTIC, require('./map/mapDataStatistic'));
echarts.registerPreprocessor(require('./map/backwardCompat')); echarts.registerPreprocessor(require('./map/backwardCompat'));
......
...@@ -7,6 +7,6 @@ define(function (require) { ...@@ -7,6 +7,6 @@ define(function (require) {
require('./parallel/ParallelSeries'); require('./parallel/ParallelSeries');
require('./parallel/ParallelView'); require('./parallel/ParallelView');
echarts.registerVisualCoding('chart', require('./parallel/parallelVisual')); echarts.registerVisual(require('./parallel/parallelVisual'));
}); });
\ No newline at end of file
define(function (require) { define(function (require) {
/** return function (ecModel) {
* @payload
* @property {string} parallelAxisId
* @property {Array.<number>} extent
*/
return function (ecModel, payload) {
ecModel.eachSeriesByType('parallel', function (seriesModel) { ecModel.eachSeriesByType('parallel', function (seriesModel) {
......
...@@ -20,15 +20,11 @@ define(function (require) { ...@@ -20,15 +20,11 @@ define(function (require) {
method: 'unSelect' method: 'unSelect'
}]); }]);
echarts.registerVisualCoding( echarts.registerVisual(zrUtil.curry(require('../visual/dataColor'), 'pie'));
'chart', zrUtil.curry(require('../visual/dataColor'), 'pie')
);
echarts.registerLayout(zrUtil.curry( echarts.registerLayout(zrUtil.curry(
require('./pie/pieLayout'), 'pie' require('./pie/pieLayout'), 'pie'
)); ));
echarts.registerProcessor( echarts.registerProcessor(zrUtil.curry(require('../processor/dataFilter'), 'pie'));
'filter', zrUtil.curry(require('../processor/dataFilter'), 'pie')
);
}); });
\ No newline at end of file
...@@ -10,7 +10,7 @@ define(function (require) { ...@@ -10,7 +10,7 @@ define(function (require) {
var PI2 = Math.PI * 2; var PI2 = Math.PI * 2;
var RADIAN = Math.PI / 180; var RADIAN = Math.PI / 180;
return function (seriesType, ecModel, api) { return function (seriesType, ecModel, api, payload) {
ecModel.eachSeriesByType(seriesType, function (seriesModel) { ecModel.eachSeriesByType(seriesType, function (seriesModel) {
var center = seriesModel.get('center'); var center = seriesModel.get('center');
var radius = seriesModel.get('radius'); var radius = seriesModel.get('radius');
......
...@@ -9,16 +9,14 @@ define(function (require) { ...@@ -9,16 +9,14 @@ define(function (require) {
require('./radar/RadarSeries'); require('./radar/RadarSeries');
require('./radar/RadarView'); require('./radar/RadarView');
echarts.registerVisualCoding( echarts.registerVisual(zrUtil.curry(require('../visual/dataColor'), 'radar'));
'chart', zrUtil.curry(require('../visual/dataColor'), 'radar') echarts.registerVisual(zrUtil.curry(
);
echarts.registerVisualCoding('chart', zrUtil.curry(
require('../visual/symbol'), 'radar', 'circle', null require('../visual/symbol'), 'radar', 'circle', null
)); ));
echarts.registerLayout(require('./radar/radarLayout')); echarts.registerLayout(require('./radar/radarLayout'));
echarts.registerProcessor( echarts.registerProcessor(
'filter', zrUtil.curry(require('../processor/dataFilter'), 'radar') zrUtil.curry(require('../processor/dataFilter'), 'radar')
); );
echarts.registerPreprocessor(require('./radar/backwardCompat')); echarts.registerPreprocessor(require('./radar/backwardCompat'));
......
define(function (require) { define(function (require) {
return function (ecModel, api) { return function (ecModel) {
ecModel.eachSeriesByType('radar', function (seriesModel) { ecModel.eachSeriesByType('radar', function (seriesModel) {
var data = seriesModel.getData(); var data = seriesModel.getData();
var points = []; var points = [];
......
...@@ -5,5 +5,5 @@ define(function (require) { ...@@ -5,5 +5,5 @@ define(function (require) {
require('./sankey/SankeySeries'); require('./sankey/SankeySeries');
require('./sankey/SankeyView'); require('./sankey/SankeyView');
echarts.registerLayout(require('./sankey/sankeyLayout')); echarts.registerLayout(require('./sankey/sankeyLayout'));
echarts.registerVisualCoding('chart', require('./sankey/sankeyVisual')); echarts.registerVisual(require('./sankey/sankeyVisual'));
}); });
\ No newline at end of file
...@@ -4,7 +4,7 @@ define(function (require) { ...@@ -4,7 +4,7 @@ define(function (require) {
var nest = require('../../util/array/nest'); var nest = require('../../util/array/nest');
var zrUtil = require('zrender/core/util'); var zrUtil = require('zrender/core/util');
return function (ecModel, api) { return function (ecModel, api, payload) {
ecModel.eachSeriesByType('sankey', function (seriesModel) { ecModel.eachSeriesByType('sankey', function (seriesModel) {
......
...@@ -6,7 +6,7 @@ define(function (require) { ...@@ -6,7 +6,7 @@ define(function (require) {
require('./scatter/ScatterSeries'); require('./scatter/ScatterSeries');
require('./scatter/ScatterView'); require('./scatter/ScatterView');
echarts.registerVisualCoding('chart', zrUtil.curry( echarts.registerVisual(zrUtil.curry(
require('../visual/symbol'), 'scatter', 'circle', null require('../visual/symbol'), 'scatter', 'circle', null
)); ));
echarts.registerLayout(zrUtil.curry( echarts.registerLayout(zrUtil.curry(
......
...@@ -10,9 +10,9 @@ define(function (require) { ...@@ -10,9 +10,9 @@ define(function (require) {
echarts.registerLayout(require('./themeRiver/themeRiverLayout')); echarts.registerLayout(require('./themeRiver/themeRiverLayout'));
echarts.registerVisualCoding('chart', require('./themeRiver/themeRiverVisual')); echarts.registerVisual(require('./themeRiver/themeRiverVisual'));
echarts.registerProcessor( echarts.registerProcessor(
'filter', zrUtil.curry(require('../processor/dataFilter'), 'themeRiver') zrUtil.curry(require('../processor/dataFilter'), 'themeRiver')
); );
}); });
\ No newline at end of file
...@@ -6,7 +6,7 @@ define(function (require) { ...@@ -6,7 +6,7 @@ define(function (require) {
require('./treemap/TreemapView'); require('./treemap/TreemapView');
require('./treemap/treemapAction'); require('./treemap/treemapAction');
echarts.registerVisualCoding('chart', require('./treemap/treemapVisual')); echarts.registerVisual(require('./treemap/treemapVisual'));
echarts.registerLayout(require('./treemap/treemapLayout')); echarts.registerLayout(require('./treemap/treemapLayout'));
}); });
\ No newline at end of file
...@@ -7,7 +7,7 @@ define(function (require) { ...@@ -7,7 +7,7 @@ define(function (require) {
var ITEM_STYLE_NORMAL = 'itemStyle.normal'; var ITEM_STYLE_NORMAL = 'itemStyle.normal';
return function (ecModel, payload) { return function (ecModel, api, payload) {
var condition = {mainType: 'series', subType: 'treemap', query: payload}; var condition = {mainType: 'series', subType: 'treemap', query: payload};
ecModel.eachComponent(condition, function (seriesModel) { ecModel.eachComponent(condition, function (seriesModel) {
......
...@@ -5,7 +5,7 @@ define(function (require) { ...@@ -5,7 +5,7 @@ define(function (require) {
var echarts = require('../../echarts'); var echarts = require('../../echarts');
echarts.registerProcessor('filter', function (ecModel, api) { echarts.registerProcessor(function (ecModel, api) {
ecModel.eachComponent('dataZoom', function (dataZoomModel) { ecModel.eachComponent('dataZoom', function (dataZoomModel) {
// We calculate window and reset axis here but not in model // We calculate window and reset axis here but not in model
......
...@@ -9,5 +9,5 @@ define(function (require) { ...@@ -9,5 +9,5 @@ define(function (require) {
var echarts = require('../echarts'); var echarts = require('../echarts');
// Series Filter // Series Filter
echarts.registerProcessor('filter', require('./legend/legendFilter')); echarts.registerProcessor(require('./legend/legendFilter'));
}); });
\ No newline at end of file
...@@ -7,7 +7,7 @@ define(function (require) { ...@@ -7,7 +7,7 @@ define(function (require) {
var VisualMapping = require('../../visual/VisualMapping'); var VisualMapping = require('../../visual/VisualMapping');
var zrUtil = require('zrender/core/util'); var zrUtil = require('zrender/core/util');
echarts.registerVisualCoding('component', function (ecModel) { echarts.registerVisual(echarts.PRIORITY.VISUAL.COMPONENT, function (ecModel) {
ecModel.eachComponent('visualMap', function (visualMapModel) { ecModel.eachComponent('visualMap', function (visualMapModel) {
processSingleVisualMap(visualMapModel, ecModel); processSingleVisualMap(visualMapModel, ecModel);
}); });
......
...@@ -33,10 +33,14 @@ define(function (require) { ...@@ -33,10 +33,14 @@ define(function (require) {
var each = zrUtil.each; var each = zrUtil.each;
var VISUAL_CODING_STAGES = ['echarts', 'chart', 'component']; var PRIORITY_PROCESSOR_FILTER = 1000;
var PRIORITY_PROCESSOR_STATISTIC = 5000;
// TODO Transform first or filter first
var PROCESSOR_STAGES = ['transform', 'filter', 'statistic']; var PRIORITY_VISUAL_LAYOUT = 1000;
var PRIORITY_VISUAL_GLOBAL = 2000;
var PRIORITY_VISUAL_CHART = 3000;
var PRIORITY_VISUAL_COMPONENT = 4000;
function createRegisterEventWithLowercaseName(method) { function createRegisterEventWithLowercaseName(method) {
return function (eventName, handler, context) { return function (eventName, handler, context) {
...@@ -144,6 +148,14 @@ define(function (require) { ...@@ -144,6 +148,14 @@ define(function (require) {
// In case some people write `window.onresize = chart.resize` // In case some people write `window.onresize = chart.resize`
this.resize = zrUtil.bind(this.resize, this); this.resize = zrUtil.bind(this.resize, this);
// Sort on demand
function prioritySortFunc(a, b) {
return a.prio - b.prio;
}
visualFuncs.sort(prioritySortFunc);
dataProcessorFuncs.sort(prioritySortFunc);
} }
var echartsProto = ECharts.prototype; var echartsProto = ECharts.prototype;
...@@ -379,9 +391,7 @@ define(function (require) { ...@@ -379,9 +391,7 @@ define(function (require) {
coordSysMgr.update(ecModel, api); coordSysMgr.update(ecModel, api);
doLayout.call(this, ecModel, payload); doVisualEncoding.call(this, ecModel, payload, api);
doVisualCoding.call(this, ecModel, payload);
doRender.call(this, ecModel, payload); doRender.call(this, ecModel, payload);
...@@ -424,9 +434,7 @@ define(function (require) { ...@@ -424,9 +434,7 @@ define(function (require) {
return; return;
} }
doLayout.call(this, ecModel, payload); doVisualEncoding.call(this, ecModel, payload);
doVisualCoding.call(this, ecModel, payload);
invokeUpdateMethod.call(this, 'updateView', ecModel, payload); invokeUpdateMethod.call(this, 'updateView', ecModel, payload);
}, },
...@@ -443,7 +451,7 @@ define(function (require) { ...@@ -443,7 +451,7 @@ define(function (require) {
return; return;
} }
doVisualCoding.call(this, ecModel, payload); doVisualEncoding.call(this, ecModel, payload);
invokeUpdateMethod.call(this, 'updateVisual', ecModel, payload); invokeUpdateMethod.call(this, 'updateVisual', ecModel, payload);
}, },
...@@ -460,7 +468,7 @@ define(function (require) { ...@@ -460,7 +468,7 @@ define(function (require) {
return; return;
} }
doLayout.call(this, ecModel, payload); doLayout.call(this, ecModel, payload, this._api);
invokeUpdateMethod.call(this, 'updateLayout', ecModel, payload); invokeUpdateMethod.call(this, 'updateLayout', ecModel, payload);
}, },
...@@ -738,10 +746,8 @@ define(function (require) { ...@@ -738,10 +746,8 @@ define(function (require) {
* @private * @private
*/ */
function processData(ecModel, api) { function processData(ecModel, api) {
each(PROCESSOR_STAGES, function (stage) { each(dataProcessorFuncs, function (process) {
each(dataProcessorFuncs[stage] || [], function (process) { process.func(ecModel, api);
process(ecModel, api);
});
}); });
} }
...@@ -764,33 +770,32 @@ define(function (require) { ...@@ -764,33 +770,32 @@ define(function (require) {
} }
/** /**
* Layout before each chart render there series, after visual coding and data processing * Layout before each chart render there series, special visual encoding stage
* *
* @param {module:echarts/model/Global} ecModel * @param {module:echarts/model/Global} ecModel
* @private * @private
*/ */
function doLayout(ecModel, payload) { function doLayout(ecModel, payload, api) {
var api = this._api; each(visualFuncs, function (visual) {
each(layoutFuncs, function (layout) { if (visual.isLayout) {
layout(ecModel, api, payload); visual.func(ecModel, api, payload);
}
}); });
} }
/** /**
* Code visual infomation from data after data processing * Encode visual infomation from data after data processing
* *
* @param {module:echarts/model/Global} ecModel * @param {module:echarts/model/Global} ecModel
* @private * @private
*/ */
function doVisualCoding(ecModel, payload) { function doVisualEncoding(ecModel, payload, api) {
ecModel.clearColorPalette(); ecModel.clearColorPalette();
ecModel.eachSeries(function (seriesModel) { ecModel.eachSeries(function (seriesModel) {
seriesModel.clearColorPalette(); seriesModel.clearColorPalette();
}); });
each(VISUAL_CODING_STAGES, function (stage) { each(visualFuncs, function (visual) {
each(visualCodingFuncs[stage] || [], function (visualCoding) { visual.func(ecModel, api, payload);
visualCoding(ecModel, payload);
});
}); });
} }
...@@ -959,18 +964,12 @@ define(function (require) { ...@@ -959,18 +964,12 @@ define(function (require) {
*/ */
var eventActionMap = {}; var eventActionMap = {};
/**
* @type {Array.<Function>}
* @inner
*/
var layoutFuncs = [];
/** /**
* Data processor functions of each stage * Data processor functions of each stage
* @type {Array.<Object.<string, Function>>} * @type {Array.<Object.<string, Function>>}
* @inner * @inner
*/ */
var dataProcessorFuncs = {}; var dataProcessorFuncs = [];
/** /**
* @type {Array.<Function>} * @type {Array.<Function>}
...@@ -979,11 +978,11 @@ define(function (require) { ...@@ -979,11 +978,11 @@ define(function (require) {
var optionPreprocessorFuncs = []; var optionPreprocessorFuncs = [];
/** /**
* Visual coding functions of each stage * Visual encoding functions of each stage
* @type {Array.<Object.<string, Function>>} * @type {Array.<Object.<string, Function>>}
* @inner * @inner
*/ */
var visualCodingFuncs = {}; var visualFuncs = [];
/** /**
* Theme storage * Theme storage
* @type {Object.<key, Object>} * @type {Object.<key, Object>}
...@@ -1154,15 +1153,21 @@ define(function (require) { ...@@ -1154,15 +1153,21 @@ define(function (require) {
}; };
/** /**
* @param {string} stage * @param {number} [priority=1000]
* @param {Function} processorFunc * @param {Function} processorFunc
*/ */
echarts.registerProcessor = function (stage, processorFunc) { echarts.registerProcessor = function (priority, processorFunc) {
if (zrUtil.indexOf(PROCESSOR_STAGES, stage) < 0) { if (typeof priority === 'function') {
throw new Error('stage should be one of ' + PROCESSOR_STAGES); processorFunc = priority;
priority = PRIORITY_PROCESSOR_FILTER;
} }
var funcs = dataProcessorFuncs[stage] || (dataProcessorFuncs[stage] = []); if (isNaN(priority)) {
funcs.push(processorFunc); throw new Error('Unkown processor priority');
}
dataProcessorFuncs.push({
prio: priority,
func: processorFunc
});
}; };
/** /**
...@@ -1211,25 +1216,44 @@ define(function (require) { ...@@ -1211,25 +1216,44 @@ define(function (require) {
}; };
/** /**
* @param {*} layout * Layout is a special stage of visual encoding
* Most visual encoding like color are common for different chart
* But each chart has it's own layout algorithm
*
* @param {string} [priority=1000]
* @param {Function} layoutFunc
*/ */
echarts.registerLayout = function (layout) { echarts.registerLayout = function (priority, layoutFunc) {
// PENDING All functions ? if (typeof priority === 'function') {
if (zrUtil.indexOf(layoutFuncs, layout) < 0) { layoutFunc = priority;
layoutFuncs.push(layout); priority = PRIORITY_VISUAL_LAYOUT;
}
if (isNaN(priority)) {
throw new Error('Unkown layout priority');
} }
visualFuncs.push({
prio: priority,
func: layoutFunc,
isLayout: true
});
}; };
/** /**
* @param {string} stage * @param {string} [priority=3000]
* @param {Function} visualCodingFunc * @param {Function} visualFunc
*/ */
echarts.registerVisualCoding = function (stage, visualCodingFunc) { echarts.registerVisual = function (priority, visualFunc) {
if (zrUtil.indexOf(VISUAL_CODING_STAGES, stage) < 0) { if (typeof priority === 'function') {
throw new Error('stage should be one of ' + VISUAL_CODING_STAGES); visualFunc = priority;
priority = PRIORITY_VISUAL_CHART;
} }
var funcs = visualCodingFuncs[stage] || (visualCodingFuncs[stage] = []); if (isNaN(priority)) {
funcs.push(visualCodingFunc); throw new Error('Unkown visual priority');
}
visualFuncs.push({
prio: priority,
func: visualFunc
});
}; };
/** /**
...@@ -1280,7 +1304,7 @@ define(function (require) { ...@@ -1280,7 +1304,7 @@ define(function (require) {
zrUtil.createCanvas = creator; zrUtil.createCanvas = creator;
}; };
echarts.registerVisualCoding('echarts', zrUtil.curry( echarts.registerVisual(PRIORITY_VISUAL_GLOBAL, zrUtil.curry(
require('./visual/seriesColor'), '', 'itemStyle' require('./visual/seriesColor'), '', 'itemStyle'
)); ));
echarts.registerPreprocessor(require('./preprocessor/backwardCompat')); echarts.registerPreprocessor(require('./preprocessor/backwardCompat'));
...@@ -1323,5 +1347,19 @@ define(function (require) { ...@@ -1323,5 +1347,19 @@ define(function (require) {
} }
); );
// PRIORITY
echarts.PRIORITY = {
PROCESSOR: {
FILTER: PRIORITY_PROCESSOR_FILTER,
STATISTIC: PRIORITY_PROCESSOR_STATISTIC
},
VISUAL: {
LAYOUT: PRIORITY_VISUAL_LAYOUT,
GLOBAL: PRIORITY_VISUAL_GLOBAL,
CHART: PRIORITY_VISUAL_CHART,
COMPONENT: PRIORITY_VISUAL_COMPONENT
}
};
return echarts; return echarts;
}); });
\ No newline at end of file
define(function (require) { define(function (require) {
return function (seriesType, ecModel, api) { return function (seriesType, ecModel) {
ecModel.eachSeriesByType(seriesType, function (seriesModel) { ecModel.eachSeriesByType(seriesType, function (seriesModel) {
var data = seriesModel.getData(); var data = seriesModel.getData();
var coordSys = seriesModel.coordinateSystem; var coordSys = seriesModel.coordinateSystem;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册