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