提交 3aacd5fb 编写于 作者: S sushuang

Enable series name specify in encode.

上级 7af19ce0
......@@ -104,7 +104,7 @@ var MapSeries = SeriesModel.extend({
var otherIndex = seriesGroup[i].originalData.indexOfName(name);
if (!isNaN(seriesGroup[i].originalData.get('value', otherIndex))) {
seriesNames.push(
encodeHTML(seriesGroup[i].name)
encodeHTML(seriesGroup[i].getDisplayName())
);
}
}
......
......@@ -33,7 +33,7 @@ var RadarSeries = SeriesModel.extend({
var coordSys = this.coordinateSystem;
var indicatorAxes = coordSys.getIndicatorAxes();
var name = this.getData().getName(dataIndex);
return encodeHTML(name === '' ? this.name : name) + '<br/>'
return encodeHTML(name === '' ? this.getDisplayName() : name) + '<br/>'
+ zrUtil.map(indicatorAxes, function (axis, idx) {
return encodeHTML(axis.name + ' : ' + value[idx]);
}).join('<br />');
......
......@@ -66,7 +66,7 @@ var LegendModel = echarts.extendComponentModel({
this._data = legendData;
var availableNames = zrUtil.map(ecModel.getSeries(), function (series) {
return series.name;
return series.getDisplayName();
});
ecModel.eachSeries(function (seriesModel) {
if (seriesModel.legendDataProvider) {
......
......@@ -8,7 +8,7 @@ export default function (ecModel) {
// If in any legend component the status is not selected.
// Because in legend series is assumed selected when it is not in the legend data.
for (var i = 0; i < legendModels.length; i++) {
if (!legendModels[i].isSelected(series.name)) {
if (!legendModels[i].isSelected(series.getDisplayName())) {
return false;
}
}
......
......@@ -16,8 +16,9 @@ import {
} from '../util/layout';
import {createTask} from '../stream/task';
import {
setEncode,
getSource
prepareSource,
getSource,
getSeriesAutoName
} from '../data/helper/sourceHelper';
var inner = modelUtil.makeInner();
......@@ -77,7 +78,7 @@ var SeriesModel = ComponentModel.extend({
this.mergeDefaultAndTheme(option, ecModel);
setEncode(this);
prepareSource(this);
var data = this.getInitialData(option, ecModel);
......@@ -146,7 +147,7 @@ var SeriesModel = ComponentModel.extend({
mergeLayoutParam(this.option, newSeriesOption, layoutMode);
}
setEncode(this);
prepareSource(this);
var data = this.getInitialData(newSeriesOption, ecModel);
// ??? set dirty on ecModel, becusue it will call mergeOption({})?
......@@ -220,6 +221,28 @@ var SeriesModel = ComponentModel.extend({
return inner(this).dataBeforeProcessed;
},
/**
* Because of some complicated requirements or some historical reasons,
* series.name (or component.name) has too many resposibility:
* (1) Generating id (which requires name in option should not be modified).
* (2) As an index to mapping series when merging option or calling API.
* (3) Display.
* Here Sereis provides method `getDisplayName` to be reponsible for display,
* where the display name can be auto generated by some default rule and
* without modifying series.name in option or effect the other responsibilities
* of series.name.
* @return {string}
*/
getDisplayName: function () {
// User specified name has higher priority, otherwise it may cause
// series can not be queried unexpectedly.
var displayName = this.name;
if (modelUtil.DEFAULT_COMPONENT_NAME === displayName) {
displayName = getSeriesAutoName(this) || displayName;
}
return displayName;
},
/**
* Coord dimension to data dimension.
*
......@@ -319,7 +342,7 @@ var SeriesModel = ComponentModel.extend({
var colorEl = getTooltipMarker(color);
var seriesName = this.name;
var seriesName = this.getDisplayName();
// FIXME
if (seriesName === '\0-') {
// Not show '-'
......
......@@ -4,6 +4,13 @@ import * as formatUtil from './format';
var each = zrUtil.each;
var isObject = zrUtil.isObject;
/**
* name may be displayed on screen, so use '-'.
* But we should make sure it is not duplicated
* with user specified name, so use '\0';
*/
export var DEFAULT_COMPONENT_NAME = '\0-';
/**
* If value is not array, then translate it to array.
* @param {*} value
......@@ -357,7 +364,7 @@ export function makeIdAndName(mapResult) {
? opt.name + ''
: existCpt
? existCpt.name
: '\0-'; // name may be displayed on screen, so use '-'.
: DEFAULT_COMPONENT_NAME;
if (existCpt) {
keyInfo.id = existCpt.id;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册