You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@echarts.apache.org by de...@apache.org on 2018/06/21 13:46:27 UTC
[incubator-echarts] branch master updated: update the roam action
of tree
This is an automated email from the ASF dual-hosted git repository.
deqingli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-echarts.git
The following commit(s) were added to refs/heads/master by this push:
new a22ab27 update the roam action of tree
a22ab27 is described below
commit a22ab277143c01092a660a76b8dabe91beddeec6
Author: deqingli <an...@gmail.com>
AuthorDate: Thu Jun 21 21:45:52 2018 +0800
update the roam action of tree
---
src/chart/tree.js | 2 +-
src/chart/tree/TreeSeries.js | 5 +++--
src/chart/tree/TreeView.js | 22 ++++++++++++++--------
src/chart/tree/treeAction.js | 16 ++++++++++++----
test/tree-basic.html | 1 +
5 files changed, 31 insertions(+), 15 deletions(-)
diff --git a/src/chart/tree.js b/src/chart/tree.js
index 01a7e26..e498d25 100644
--- a/src/chart/tree.js
+++ b/src/chart/tree.js
@@ -27,4 +27,4 @@ import visualSymbol from '../visual/symbol';
import treeLayout from './tree/treeLayout';
echarts.registerVisual(visualSymbol('tree', 'circle'));
-echarts.registerLayout(treeLayout);
\ No newline at end of file
+echarts.registerLayout(treeLayout);
diff --git a/src/chart/tree/TreeSeries.js b/src/chart/tree/TreeSeries.js
index e10b484..fb60bdd 100644
--- a/src/chart/tree/TreeSeries.js
+++ b/src/chart/tree/TreeSeries.js
@@ -68,7 +68,7 @@ export default SeriesModel.extend({
tree.root.eachNode('preorder', function (node) {
var item = node.hostTree.data.getRawDataItem(node.dataIndex);
- // add item.collapsed != null, because users can collapse node original in the series.data.
+ // Add item.collapsed != null, because users can collapse node original in the series.data.
node.isExpand = (item && item.collapsed != null)
? !item.collapsed
: node.depth <= expandTreeDepth;
@@ -122,7 +122,8 @@ export default SeriesModel.extend({
defaultOption: {
zlevel: 0,
z: 2,
-
+ coordinateSystem: 'view',
+
// the position of the whole view
left: '12%',
top: '12%',
diff --git a/src/chart/tree/TreeView.js b/src/chart/tree/TreeView.js
index 6267723..fb8e89c 100644
--- a/src/chart/tree/TreeView.js
+++ b/src/chart/tree/TreeView.js
@@ -18,7 +18,7 @@
*/
/**
- * @file This file used to draw tree view
+ * @file This file used to draw tree view.
* @author Deqing Li(annong035@gmail.com)
*/
@@ -57,14 +57,18 @@ export default echarts.extendChartView({
*/
this._mainGroup = new graphic.Group();
- this.group.add(this._mainGroup);
-
+ /**
+ * @private
+ * @type {module:echarts/componet/helper/RoamController}
+ */
this._controller = new RoamController(api.getZr());
+
this._controllerHost = {target: this.group};
+
+ this.group.add(this._mainGroup);
},
render: function (seriesModel, ecModel, api, payload) {
-
var data = seriesModel.getData();
var layoutInfo = seriesModel.layoutInfo;
@@ -100,7 +104,7 @@ export default echarts.extendChartView({
data.diff(oldData)
.add(function (newIdx) {
if (symbolNeedsDraw(data, newIdx)) {
- // create node and edge
+ // Create node and edge
updateNode(data, newIdx, null, group, seriesModel, seriesScope);
}
})
@@ -110,7 +114,7 @@ export default echarts.extendChartView({
symbolEl && removeNode(oldData, oldIdx, symbolEl, group, seriesModel, seriesScope);
return;
}
- // update node and edge
+ // Update node and edge
updateNode(data, newIdx, symbolEl, group, seriesModel, seriesScope);
})
.remove(function (oldIdx) {
@@ -141,7 +145,6 @@ export default echarts.extendChartView({
});
});
}
-
this._data = data;
},
@@ -175,6 +178,7 @@ export default echarts.extendChartView({
viewCoordSys.setCenter(seriesModel.get('center'));
viewCoordSys.setZoom(seriesModel.get('zoom'));
+ // Here we use viewCoordSys just for computing the 'position' and 'scale' of the group
this.group.attr({
position: viewCoordSys.position,
scale: viewCoordSys.scale
@@ -198,7 +202,9 @@ export default echarts.extendChartView({
controllerHost.zoomLimit = seriesModel.get('scaleLimit');
controllerHost.zoom = seriesModel.coordinateSystem.getZoom();
- controller.off('pan').off('zoom')
+ controller
+ .off('pan')
+ .off('zoom')
.on('pan', function (e) {
roamHelper.updateViewOnPan(controllerHost, e.dx, e.dy);
api.dispatchAction({
diff --git a/src/chart/tree/treeAction.js b/src/chart/tree/treeAction.js
index 186d6c4..f81c51c 100644
--- a/src/chart/tree/treeAction.js
+++ b/src/chart/tree/treeAction.js
@@ -17,6 +17,11 @@
* under the License.
*/
+/**
+ * @file Register the actions of the tree
+ * @author Deqing Li(annong035@gmail.com)
+ */
+
import * as echarts from '../../echarts';
import {updateCenterAndZoom} from '../../action/roamHelper';
@@ -37,17 +42,20 @@ echarts.registerAction({
echarts.registerAction({
type: 'treeRoam',
event: 'treeRoam',
+ // Here we set 'none' instead of 'update', because roam action
+ // just need to update the transform matrix without having to recalculate
+ // the layout. So don't need to go through the whole update process, such
+ // as 'dataPrcocess', 'coordSystemUpdate', 'layout' and so on.
update: 'none'
}, function (payload, ecModel) {
- ecModel.eachComponent({mainType: 'series', query: payload}, function (seriesModel) {
+ ecModel.eachComponent({mainType: 'series', subType: 'tree', query: payload}, function (seriesModel) {
var coordSys = seriesModel.coordinateSystem;
-
var res = updateCenterAndZoom(coordSys, payload);
seriesModel.setCenter
&& seriesModel.setCenter(res.center);
-
+
seriesModel.setZoom
&& seriesModel.setZoom(res.zoom);
});
-});
\ No newline at end of file
+});
diff --git a/test/tree-basic.html b/test/tree-basic.html
index 48d7c7e..67dbe1e 100644
--- a/test/tree-basic.html
+++ b/test/tree-basic.html
@@ -79,6 +79,7 @@ under the License.
symbolSize: 7,
// initialTreeDepth: -1,
+
label: {
position: 'left',
verticalAlign: 'middle',
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@echarts.apache.org
For additional commands, e-mail: commits-help@echarts.apache.org