提交 85ce49b7 编写于 作者: L lang

$superCall, $superApply, fix legend availableNames

上级 d5fd7da6
......@@ -3,15 +3,14 @@ define(function(require) {
'use strict';
var List = require('../../data/List');
var SeriesModel = require('../../model/Series');
var modelUtil = require('../../util/model');
var FunnelSeries = SeriesModel.extend({
require('../../echarts').extendSeriesModel({
type: 'series.funnel',
init: function (option) {
SeriesModel.prototype.init.apply(this, arguments);
this.$superApply('init', arguments);
// Enable legend selection for each data item
// Use a function instead of direct access because data reference may changed
......@@ -96,6 +95,4 @@ define(function(require) {
}
}
});
return FunnelSeries;
});
\ No newline at end of file
......@@ -2,20 +2,17 @@ define(function (require) {
'use strict';
var SeriesModel = require('../../model/Series');
var List = require('../../data/List');
var zrUtil = require('zrender/core/util');
var createGraphFromNodeEdge = require('../helper/createGraphFromNodeEdge');
var seriesModelProto = SeriesModel.prototype;
return SeriesModel.extend({
return require('../../echarts').extendSeriesModel({
type: 'series.graph',
init: function (option) {
seriesModelProto.init.apply(this, arguments);
this.$superApply('init', arguments);
// Provide data for legend select
this.legendDataProvider = function () {
......@@ -26,7 +23,7 @@ define(function (require) {
},
mergeOption: function (option) {
seriesModelProto.mergeOption.apply(this, arguments);
this.$superApply('mergeOption', arguments);
this._updateCategoriesData();
},
......@@ -41,7 +38,7 @@ define(function (require) {
},
restoreData: function () {
seriesModelProto.restoreData.apply(this, arguments);
this.$superApply('restoreData', arguments);
this.getGraph().restoreData();
},
......
......@@ -3,21 +3,18 @@ define(function(require) {
'use strict';
var List = require('../../data/List');
var SeriesModel = require('../../model/Series');
var zrUtil = require('zrender/core/util');
var modelUtil = require('../../util/model');
var dataSelectableMixin = require('../helper/dataSelectableMixin');
var seriesModelProto = SeriesModel.prototype;
var PieSeries = SeriesModel.extend({
var PieSeries = require('../../echarts').extendSeriesModel({
type: 'series.pie',
// Overwrite
init: function (option) {
seriesModelProto.init.apply(this, arguments);
this.$superApply('init', arguments);
// Enable legend selection for each data item
// Use a function instead of direct access because data reference may changed
......@@ -32,7 +29,7 @@ define(function(require) {
// Overwrite
mergeOption: function (newOption) {
seriesModelProto.mergeOption.call(this, newOption);
this.$superCall('mergeOption', newOption);
this.updateSelectedMap();
},
......@@ -45,7 +42,7 @@ define(function(require) {
// Overwrite
getDataParams: function (dataIndex) {
var data = this._data;
var params = seriesModelProto.getDataParams.call(this, dataIndex);
var params = this.$superCall('getDataParams', dataIndex);
// FIXME toFixed?
params.percent = +(data.get('value', dataIndex) / data.getSum('value') * 100).toFixed(2);
......
......@@ -26,6 +26,28 @@ define(function(require) {
}, this);
this._data = legendData;
this._updateAvailableNames(ecModel);
// If has any selected in option.selected
var selectedMap = this.option.selected;
var hasSelected = false;
for (var name in selectedMap) {
if (selectedMap[name]) {
legendData[0] && this.select(name);
hasSelected = true;
}
}
// Try select the first if selectedMode is single
!hasSelected && legendData[0] && this.select(legendData[0].get('name'));
},
mergeOption: function (option) {
this.$superCall('mergeOption', option);
this._updateAvailableNames(this.ecModel);
},
_updateAvailableNames: function (ecModel) {
var availableNames = zrUtil.map(ecModel.getSeries(), function (series) {
return series.name;
});
......@@ -41,17 +63,6 @@ define(function(require) {
*/
this._availableNames = availableNames;
// If has any selected in option.selected
var selectedMap = this.option.selected;
var hasSelected = false;
for (var name in selectedMap) {
if (selectedMap[name]) {
legendData[0] && this.select(name);
hasSelected = true;
}
}
// Try select the first if selectedMode is single
!hasSelected && legendData[0] && this.select(legendData[0].get('name'));
},
/**
......
......@@ -67,7 +67,7 @@ define(function(require) {
borderColor: 'rgba(194,53,49, 0.5)',
animation: true,
animationDuration: 300,
animationEasing: 'cubicOut'
animationEasing: 'quinticInOut'
},
controlStyle: {
......
......@@ -6,18 +6,6 @@ define(function (require) {
var zrUtil = require('zrender/core/util');
var graphic = require('../../util/graphic');
var ComponentView = require('../../view/Component');
var Rect = graphic.Rect;
var numberUtil = require('../../util/number');
var linearMap = numberUtil.linearMap;
var sliderMove = require('../helper/sliderMove');
var retrieveValue = zrUtil.retrieve;
var parsePercent = numberUtil.parsePercent;
var asc = numberUtil.asc;
var bind = zrUtil.bind;
var mathRound = Math.round;
var mathMax = Math.max;
var each = zrUtil.each;
// Constants
return ComponentView.extend({
......
......@@ -28,7 +28,18 @@ define(function (require) {
RootClass.apply(this, arguments);
};
zrUtil.extend(ExtendedClass.prototype, proto);
var superProto = this.prototype;
zrUtil.extend(ExtendedClass.prototype, zrUtil.extend({
$superCall: function (methodName) {
var args = zrUtil.slice(arguments, 1);
return superProto[methodName].apply(this, args);
},
$superApply: function (methodName, args) {
return superProto[methodName].apply(this, args);
}
}, proto));
ExtendedClass.extend = this.extend;
zrUtil.inherits(ExtendedClass, this);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册