Skip to content

Commit

Permalink
fix(tree): code rebuild follow the review suggest #6
Browse files Browse the repository at this point in the history
  • Loading branch information
wf123537200 committed Jun 28, 2020
1 parent 601aa05 commit fd25c1a
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 44 deletions.
9 changes: 7 additions & 2 deletions src/chart/graph/GraphSeries.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import {encodeHTML} from '../../util/format';
import createGraphFromNodeEdge from '../helper/createGraphFromNodeEdge';
import LegendVisualProvider from '../../visual/LegendVisualProvider';
import {initCurvenessList} from '../helper/multipleGraphEdgeHelper';
import {createEdgeMapForCurveness} from '../../chart/helper/multipleGraphEdgeHelper';

var GraphSeries = echarts.extendSeriesModel({

Expand Down Expand Up @@ -68,8 +69,12 @@ var GraphSeries = echarts.extendSeriesModel({

if (nodes && edges) {
// auto curveness
initCurvenessList(edges, this);
return createGraphFromNodeEdge(nodes, edges, this, true, beforeLink).data;
initCurvenessList(this);
var graph = createGraphFromNodeEdge(nodes, edges, this, true, beforeLink);
zrUtil.each(graph.edges, function (edge) {
createEdgeMapForCurveness(edge.node1, edge.node2, this, edge.dataIndex);
}, this);
return graph.data;
}

function beforeLink(nodeData, edgeData) {
Expand Down
69 changes: 30 additions & 39 deletions src/chart/helper/multipleGraphEdgeHelper.js
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ var createCurveness = function (seriesModel, appendLength) {
length = autoCurvenessParmas;
}
else if (zrUtil.isArray(autoCurvenessParmas)) {
seriesModel._curvenessList = autoCurvenessParmas;
seriesModel.__curvenessList = autoCurvenessParmas;
return;
}

Expand All @@ -61,7 +61,7 @@ var createCurveness = function (seriesModel, appendLength) {
for (var i = 0; i < len; i++) {
curvenessList.push((i % 2 ? i + 1 : i) / 10 * (i % 2 ? -1 : 1));
}
seriesModel._curvenessList = curvenessList;
seriesModel.__curvenessList = curvenessList;
};

/**
Expand All @@ -87,38 +87,14 @@ var getOppositeKey = function (key) {
return [keys[0], keys[2], keys[1]].join(KEY_DELIMITER);
};

/**
* set edgeMap with key
* @param {number|string|module:echarts/data/Graph.Node} n1
* @param {number|string|module:echarts/data/Graph.Node} n2
* @param {module:echarts/model/SeriesModel} seriesModel
* @param {number} index
*/
var setEdgeToMap = function (n1, n2, seriesModel, index) {
var key = getKeyOfEdges(n1, n2, seriesModel);
var edgeMap = seriesModel._edgeMap;
var oppositeEdges = edgeMap[getOppositeKey(key)];
// set direction
if (edgeMap[key] && !oppositeEdges) {
edgeMap[key].isForward = true;
}
else if (oppositeEdges && edgeMap[key]) {
oppositeEdges.isForward = true;
edgeMap[key].isForward = false;
}

edgeMap[key] = edgeMap[key] || [];
edgeMap[key].push(index);
};

/**
* get edgeMap with key
* @param edge
* @param {module:echarts/model/SeriesModel} seriesModel
*/
var getEdgeFromMap = function (edge, seriesModel) {
var key = getKeyOfEdges(edge.node1, edge.node2, seriesModel);
return seriesModel._edgeMap[key];
return seriesModel.__edgeMap[key];
};

/**
Expand All @@ -139,37 +115,52 @@ var getTotalLengthBetweenNodes = function (edge, seriesModel) {
* @param key
*/
var getEdgeMapLengthWithKey = function (key, seriesModel) {
var edgeMap = seriesModel._edgeMap;
var edgeMap = seriesModel.__edgeMap;
return edgeMap[key] ? edgeMap[key].length : 0;
};

/**
* Count the number of edges between the same two points, used to obtain the curvature table and the parity of the edge
* @see /graph/GraphSeries.js@getInitialData
* @param edges
* @param {module:echarts/model/SeriesModel} seriesModel
*/
export function initCurvenessList(edges, seriesModel) {
export function initCurvenessList(seriesModel) {
if (!getAutoCurvenessParams(seriesModel)) {
return;
}
// Hang on this object 4 dispose
seriesModel._curvenessList = seriesModel._curvenessList || [];

seriesModel.__curvenessList = [];
seriesModel.__edgeMap = {};
// calc the array of curveness List
createCurveness(seriesModel);
}

/**
* create the edgeMap after addEdges
* @see chart/helper/createGraphFromNodeEdge.js#L52
* set edgeMap with key
* @param {number|string|module:echarts/data/Graph.Node} n1
* @param {number|string|module:echarts/data/Graph.Node} n2
* @param {module:echarts/model/SeriesModel} seriesModel
* @param {number} dataIndex
* @param {number} index
*/
export function createEdgeMapForCurveness(n1, n2, seriesModel, dataIndex) {
seriesModel._edgeMap = seriesModel._edgeMap || {};
setEdgeToMap(n1, n2, seriesModel, dataIndex);
export function createEdgeMapForCurveness(n1, n2, seriesModel, index) {
if (!getAutoCurvenessParams(seriesModel)) {
return;
}

var key = getKeyOfEdges(n1, n2, seriesModel);
var edgeMap = seriesModel.__edgeMap;
var oppositeEdges = edgeMap[getOppositeKey(key)];
// set direction
if (edgeMap[key] && !oppositeEdges) {
edgeMap[key].isForward = true;
}
else if (oppositeEdges && edgeMap[key]) {
oppositeEdges.isForward = true;
edgeMap[key].isForward = false;
}

edgeMap[key] = edgeMap[key] || [];
edgeMap[key].push(index);
}

/**
Expand Down Expand Up @@ -204,7 +195,7 @@ export function getCurvenessForEdge(edge, seriesModel, index, needReverse) {
edge.lineStyle = edge.lineStyle || {};
// if is opposite edge, must set curvenss to opposite number
var curKey = getKeyOfEdges(edge.node1, edge.node2, seriesModel);
var curvenessList = seriesModel._curvenessList;
var curvenessList = seriesModel.__curvenessList;
// if pass array no need parity
var parityCorrection = isArrayParam ? 0 : totalLen % 2 ? 0 : 1;

Expand Down
3 changes: 0 additions & 3 deletions src/data/Graph.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
import {__DEV__} from '../config';
import * as zrUtil from 'zrender/src/core/util';
import {enableClassCheck} from '../util/clazz';
import {createEdgeMapForCurveness} from '../chart/helper/multipleGraphEdgeHelper';

// id may be function name of Object, add a prefix to avoid this problem.
function generateNodeKey(id) {
Expand Down Expand Up @@ -179,8 +178,6 @@ graphProto.addEdge = function (n1, n2, dataIndex, seriesModel) {
this.edges.push(edge);
edgesMap[key] = edge;

createEdgeMapForCurveness(n1, n2, seriesModel, dataIndex);

return edge;
};

Expand Down

0 comments on commit fd25c1a

Please sign in to comment.