Skip to content

Commit

Permalink
Bar3D, Scatter3D support highlight from visualMap, legend. Fix #54
Browse files Browse the repository at this point in the history
  • Loading branch information
pissang committed May 15, 2017
1 parent ce65a19 commit 1d0acfb
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 0 deletions.
26 changes: 26 additions & 0 deletions src/chart/bar3D/Bar3DView.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ var retrieve = require('../../util/retrieve');
var BarsGeometry = require('../../util/geometry/Bars3DGeometry');
var LabelsBuilder = require('../../component/common/LabelsBuilder');
var vec3 = require('qtek/lib/dep/glmatrix').vec3;
var modelUtil = require('echarts/lib/util/model');

function getShader(shading) {
var shader = graphicGL.createShader('ecgl.' + shading);
Expand Down Expand Up @@ -300,6 +301,31 @@ module.exports = echarts.extendChartView({
this._api.getZr().refresh();
},

highlight: function (seriesModel, ecModel, api, payload) {
this._toggleStatus('highlight', seriesModel, ecModel, api, payload);
},

downplay: function (seriesModel, ecModel, api, payload) {
this._toggleStatus('downplay', seriesModel, ecModel, api, payload);
},

_toggleStatus: function (status, seriesModel, ecModel, api, payload) {
var data = seriesModel.getData();
var dataIndex = modelUtil.queryDataIndex(data, payload);

var self = this;
if (dataIndex != null) {
echarts.util.each(modelUtil.normalizeToArray(dataIndex), function (dataIdx) {
status === 'highlight' ? this._highlight(dataIdx) : this._downplay(dataIdx);
}, this);
}
else {
data.each(function (dataIdx) {
status === 'highlight' ? self._highlight(dataIdx) : self._downplay(dataIdx);
});
}
},

remove: function () {
this.groupGL.removeAll();
},
Expand Down
26 changes: 26 additions & 0 deletions src/chart/scatter3D/Scatter3DView.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ var echarts = require('echarts/lib/echarts');
var graphicGL = require('../../util/graphicGL');

var PointsBuilder = require('../common/PointsBuilder');
var modelUtil = require('echarts/lib/util/model');

echarts.extendChartView({

Expand Down Expand Up @@ -45,6 +46,31 @@ echarts.extendChartView({
this._pointsBuilder.updateView(this._camera);
},

highlight: function (seriesModel, ecModel, api, payload) {
this._toggleStatus('highlight', seriesModel, ecModel, api, payload);
},

downplay: function (seriesModel, ecModel, api, payload) {
this._toggleStatus('downplay', seriesModel, ecModel, api, payload);
},

_toggleStatus: function (status, seriesModel, ecModel, api, payload) {
var data = seriesModel.getData();
var dataIndex = modelUtil.queryDataIndex(data, payload);

var pointsBuilder = this._pointsBuilder;
if (dataIndex != null) {
echarts.util.each(modelUtil.normalizeToArray(dataIndex), function (dataIdx) {
status === 'highlight' ? pointsBuilder.highlight(data, dataIdx) : pointsBuilder.downplay(data, dataIdx);
}, this);
}
else {
data.each(function (dataIdx) {
status === 'highlight' ? pointsBuilder.highlight(data, dataIdx) : pointsBuilder.downplay(data, dataIdx);
});
}
},

dispose: function () {
this.groupGL.removeAll();
},
Expand Down

0 comments on commit 1d0acfb

Please sign in to comment.