From 1b1615bfa262b98662852c724e9cd5664ff97826 Mon Sep 17 00:00:00 2001 From: ZhangGe6 Date: Thu, 28 Apr 2022 13:54:24 +0800 Subject: [PATCH] process for graph with un-named nodes done --- static/view-grapher.js | 41 ++++++++++++++++++++++++++++++++++++----- static/view.js | 16 +++++++++------- 2 files changed, 45 insertions(+), 12 deletions(-) diff --git a/static/view-grapher.js b/static/view-grapher.js index 10a6fb4..1c0aad5 100644 --- a/static/view-grapher.js +++ b/static/view-grapher.js @@ -47,7 +47,12 @@ grapher.Graph = class { // } const modelNodeName = node.modelNodeName this._modelNodeName2ViewNode.set(modelNodeName, node); - this._modelNodeName2State.set(modelNodeName, 'Exist'); + + // _modelNodeName2State save our modifications, and wil be initilized at the first graph construction only + // otherwise the modfications will lost + if (!this._modelNodeName2State.get(modelNodeName)) { + this._modelNodeName2State.set(modelNodeName, 'Exist'); + } // console.log(modelNodeName) // console.log(node.modelNodeName) @@ -171,13 +176,18 @@ grapher.Graph = class { edgePathGroupDefs.appendChild(marker("arrowhead-vee-select")); // <==== 显示 边上的箭头 + console.log(this._modelNodeName2State) // console.log(this.nodes) for (const nodeId of this.nodes.keys()) { const node = this.node(nodeId); if (this.children(nodeId).length == 0) { + // console.log(node.label.modelNodeName) + // console.log(this._modelNodeName2State.get(node.label.modelNodeName)) // node // type(node.label) == view.Node - node.label.build(document, nodeGroup); // 如果注释:TypeError Cannot read properties of undefined (reading 'setAttribute') + if (this._modelNodeName2State.get(node.label.modelNodeName) == 'Exist') { + node.label.build(document, nodeGroup); + } } else { @@ -197,7 +207,18 @@ grapher.Graph = class { } for (const edge of this.edges.values()) { - edge.label.build(document, edgePathGroup, edgeLabelGroup); + var node_from = this._nodes.get(edge.v).label; + var node_to = this._nodes.get(edge.w).label; + // console.log(this._modelNodeName2State.get(node_from.modelNodeName)) + // console.log(this._modelNodeName2State.get(node_to.modelNodeName)) + if ( + this._modelNodeName2State.get(node_from.modelNodeName) == 'Exist' && + this._modelNodeName2State.get(node_to.modelNodeName) == 'Exist' + ) + { + edge.label.build(document, edgePathGroup, edgeLabelGroup); + } + } } @@ -207,7 +228,9 @@ grapher.Graph = class { const node = this.node(nodeId); if (this.children(nodeId).length == 0) { // node - node.label.update(); // 让节点显示出来 + if (this._modelNodeName2State.get(node.label.modelNodeName) == 'Exist') { + node.label.update(); // 让节点显示出来 + } } // ===> 这段没有操作 else { @@ -223,8 +246,16 @@ grapher.Graph = class { } // console.log(this.edges) for (const edge of this.edges.values()) { + var node_from = this._nodes.get(edge.v).label; + var node_to = this._nodes.get(edge.w).label; // console.log(edge.label) - edge.label.update(); // 让边显示出来 + if ( + this._modelNodeName2State.get(node_from.modelNodeName) == 'Exist' && + this._modelNodeName2State.get(node_to.modelNodeName) == 'Exist' + ) + { + edge.label.update(); // 让边显示出来 + } } } diff --git a/static/view.js b/static/view.js index c3125bc..f433a79 100644 --- a/static/view.js +++ b/static/view.js @@ -881,7 +881,9 @@ view.Graph = class extends grapher.Graph { createNode(node) { var node_id = (this._nodeKey++).toString(); // in case input (onnx) node has no name - const value = new view.Node(this, node, node_id); + var modelNodeName = node.name ? node.name : node.type.name + node_id + + const value = new view.Node(this, node, modelNodeName); value.name = node_id; // value.name = node.name; this.setNode(value); @@ -945,10 +947,10 @@ view.Graph = class extends grapher.Graph { for (const node of graph.nodes) { // console.log(node) - if (this._modelNodeName2State.get(node.name) == 'Deleted') { - // console.log(this._modelNodeName2State.get(node.name)) - continue; - } + // if (this._modelNodeName2State.get(node.name) == 'Deleted') { + // // console.log(this._modelNodeName2State.get(node.name)) + // continue; + // } const viewNode = this.createNode(node); // My code // if (this._modelNodeName2State.get(viewNode.modelNodeName) == 'Deleted') { @@ -1085,13 +1087,13 @@ view.Node = class extends grapher.Node { // 这里的value是一个onnx.Node,这里正在构建的是view.Node // context 是指Graph - constructor(context, value, node_id) { + constructor(context, value, modelNodeName) { super(); this.context = context; this.value = value; view.Node.counter = view.Node.counter || 0; this.id = 'node-' + (value.name ? 'name-' + value.name : 'id-' + (view.Node.counter++).toString()); - this.modelNodeName = value.name ? value.name : value.type.name + node_id + this.modelNodeName = modelNodeName this._add(this.value); }