提交 4a6b4cd2 编写于 作者: L lang

Map select action and pie select action

上级 5cc02323
define(function (require) {
var echarts = require('../echarts');
return function (seriesType, actionInfo) {
/**
* @payload
* @property {string} seriesName
* @property {string} name
*/
echarts.registerAction(actionInfo, function (payload, ecModel) {
ecModel.eachComponent(
{mainType: 'series', subType: seriesType, query: payload},
function (seriesModel) {
if (seriesModel.toggleSelected) {
seriesModel.toggleSelected(payload.name);
var zrUtil = require('zrender/core/util');
return function (seriesType, actionInfos) {
zrUtil.each(actionInfos, function (actionInfo) {
actionInfo.update = 'updateView';
/**
* @payload
* @property {string} seriesName
* @property {string} name
*/
echarts.registerAction(actionInfo, function (payload, ecModel) {
ecModel.eachComponent(
{mainType: 'series', subType: seriesType, query: payload},
function (seriesModel) {
if (seriesModel[actionInfo.method]) {
seriesModel[actionInfo.method](payload.name);
}
}
}
);
);
});
});
};
});
\ No newline at end of file
......@@ -17,4 +17,18 @@ define(function (require) {
echarts.registerProcessor('statistic', require('./map/mapDataStatistic'));
echarts.registerPreprocessor(require('./map/backwardCompat'));
require('../action/createDataSelectAction')('map', [{
type: 'mapToggleSelect',
event: 'mapselectchanged',
method: 'toggleSelected'
}, {
type: 'mapSelect',
event: 'mapselected',
method: 'select'
}, {
type: 'mapUnSelect',
event: 'mapunselected',
method: 'unSelect'
}]);
});
\ No newline at end of file
......@@ -10,6 +10,13 @@ define(function (require) {
type: 'map',
render: function (mapModel, ecModel, api, payload) {
// Not render if it is an select action from self
if (payload && payload.type === 'mapToggleSelect'
&& payload.from === this.uid
) {
return;
}
var group = this.group;
group.removeAll();
// No update map if it is an roam action from self
......@@ -21,7 +28,7 @@ define(function (require) {
var mapDraw = this._mapDraw || new MapDraw(api, true);
group.add(mapDraw.group);
mapDraw.draw(mapModel, ecModel, api);
mapDraw.draw(mapModel, ecModel, api, this);
this._mapDraw = mapDraw;
}
......
......@@ -6,11 +6,19 @@ define(function (require) {
require('./pie/PieSeries');
require('./pie/PieView');
require('../action/createDataSelectAction')('pie', {
require('../action/createDataSelectAction')('pie', [{
type: 'pieToggleSelect',
event: 'pieSelected',
update: 'updateView'
});
event: 'pieselectchanged',
method: 'toggleSelected'
}, {
type: 'pieSelect',
event: 'pieselected',
method: 'select'
}, {
type: 'pieUnSelect',
event: 'pieunselected',
method: 'unSelect'
}]);
echarts.registerVisualCoding(
'chart', zrUtil.curry(require('../visual/dataColor'), 'pie')
......
......@@ -280,11 +280,7 @@ define(function (require) {
},
render: function (seriesModel, ecModel, api, payload) {
if (
payload && (payload.from === this.uid
|| (payload.type === 'pieToggleSelect'
&& payload.seriesName !== seriesModel.name))
) {
if (payload && (payload.from === this.uid)) {
return;
}
......
......@@ -17,16 +17,22 @@ define(function (require) {
return itemStyle;
}
function updateMapSelectHandler(mapOrGeoModel, data, group) {
function updateMapSelectHandler(mapOrGeoModel, data, group, api, fromView) {
group.off('click');
mapOrGeoModel.get('selectedMode')
&& group.on('click', function (e) {
var dataIndex = e.target.dataIndex;
if (dataIndex != null) {
var name = data.getName(dataIndex);
mapOrGeoModel.toggleSelected(name);
updateMapSelected(mapOrGeoModel, data);
api.dispatchAction({
type: 'mapToggleSelect',
seriesIndex: mapOrGeoModel.seriesIndex,
name: name,
from: fromView.uid
});
updateMapSelected(mapOrGeoModel, data, api);
}
});
}
......@@ -72,7 +78,7 @@ define(function (require) {
constructor: MapDraw,
draw: function (mapOrGeoModel, ecModel, api) {
draw: function (mapOrGeoModel, ecModel, api, fromView) {
// geoModel has no data
var data = mapOrGeoModel.getData && mapOrGeoModel.getData();
......@@ -208,7 +214,7 @@ define(function (require) {
this._updateController(mapOrGeoModel, ecModel, api);
data && updateMapSelectHandler(mapOrGeoModel, data, group);
data && updateMapSelectHandler(mapOrGeoModel, data, group, api, fromView);
data && updateMapSelected(mapOrGeoModel, data);
},
......
......@@ -42,7 +42,7 @@ define(function(require) {
* @property {string} name Series name or data item name
*/
echarts.registerAction(
'legendToggleSelect', 'legendSelectChanged',
'legendToggleSelect', 'legendselectchanged',
zrUtil.curry(legendSelectActionHandler, 'toggleSelected')
);
......@@ -53,7 +53,7 @@ define(function(require) {
* @property {string} name Series name or data item name
*/
echarts.registerAction(
'legendSelect', 'legendSelected',
'legendSelect', 'legendselected',
zrUtil.curry(legendSelectActionHandler, 'select')
);
......@@ -64,7 +64,7 @@ define(function(require) {
* @property {string} name Series name or data item name
*/
echarts.registerAction(
'legendUnSelect', 'legendUnSelected',
'legendUnSelect', 'legendunselected',
zrUtil.curry(legendSelectActionHandler, 'unSelect')
);
});
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册