@@ -37,7 +40,8 @@ export default {
scale: 0.5
},
fitScreen: {fitScreen: false},
- download: {download: false}
+ download: {download: false},
+ curNode: {}
}
},
mounted() {
@@ -45,11 +49,11 @@ export default {
},
methods: {
handleFitScreen() {
- this.fitScreen = {fitScreen: true}
+ this.fitScreen = {fitScreen: true};
this.config.scale = 0.5;
},
handleDownload() {
- this.download = {fitScreen: true}
+ this.download = {fitScreen: true};
}
}
};
diff --git a/frontend/src/graph/ui/Chart.vue b/frontend/src/graph/ui/Chart.vue
index a73a268493fccfea54383f4bad062a286d312289..3f23e4369c730f97740de6bc64f01f1f295c3d8e 100644
--- a/frontend/src/graph/ui/Chart.vue
+++ b/frontend/src/graph/ui/Chart.vue
@@ -25,7 +25,7 @@
import * as dagreD3 from 'dagre-d3';
export default {
- props: ['fitScreen', 'download', 'scale'],
+ props: ['fitScreen', 'download', 'scale', 'curNode'],
computed: {
computedWidth() {
let scale = this.scale;
@@ -54,7 +54,7 @@
},
mounted() {
this.getOriginChartsData();
-
+ let chartScope = this;
getPluginGraphsGraph().then(({errno, data}) => {
var raw_data = data.data;
var data = raw_data;
@@ -131,6 +131,26 @@
// adjust viewBox so that the whole graph can be shown, with scroll bar
svg.attr('viewBox', '0 0 ' + g.graph().width + ' ' + g.graph().height);
+
+ svg.selectAll(".node").on("click", function(d, i){
+ this.curNode = g.node(d);
+ var nodeType = this.curNode.class;
+ var nodeInfo = null;
+ if (nodeType === "operator") {
+ var opIndex = d.slice(7); // remove prefix "opNode_"
+ nodeInfo = data.node[opIndex];
+ } else if (nodeType === "input") {
+ nodeInfo = data.input[d-1];
+ } else {
+ nodeInfo = "output";
+ }
+
+ chartScope.$emit('curNodeUpdated',
+ {
+ 'nodeType': nodeType,
+ 'nodeInfo': nodeInfo
+ });
+ });
});
},
@@ -175,7 +195,7 @@
},
addDragEventForImg() {
- let that = this;
+ let chartScope = this;
// target elements with the "draggable" class
interact('.draggable').draggable({
// enable inertial throwing
@@ -186,8 +206,8 @@
dragMovelHandler(event, (target, x, y) => {
tansformElement(target, x, y);
// compute the proportional value
- let triggerEl = that.getBigImgEl();
- let relativeEl = that.getSmallImgDragHandler();
+ let triggerEl = chartScope.getBigImgEl();
+ let relativeEl = chartScope.getSmallImgDragHandler();
relativeMove({triggerEl, x, y}, relativeEl);
});
@@ -213,8 +233,8 @@
dragMovelHandler(event, (target, x, y) => {
tansformElement(target, x, y);
// compute the proportional value
- let triggerEl = that.getSmallImgEl();
- let relativeEl = that.getBigImgEl();
+ let triggerEl = chartScope.getSmallImgEl();
+ let relativeEl = chartScope.getBigImgEl();
relativeMove({triggerEl, x, y}, relativeEl);
});
@@ -245,6 +265,9 @@
rx: 10;
ry: 10;
+ .node
+ cursor: pointer
+
.output
fill: #c38d9e
diff --git a/frontend/src/graph/ui/Config.vue b/frontend/src/graph/ui/Config.vue
index e575fd5c85cb5349a2711a2e591a2cb01fd8caac..7e012153de7396b792d3ab1f227eb4fe575d8d2f 100644
--- a/frontend/src/graph/ui/Config.vue
+++ b/frontend/src/graph/ui/Config.vue
@@ -1,36 +1,60 @@
-
- fullscreen
- Fit to screen
-
+
+
+ fullscreen
+ Fit to screen
+
-
- file_download
- Download image
-
+
+ file_download
+ Download image
+
-
+
+
+
+
Node Info:
+
+
+
Node Type: {{ curNode.nodeType }}
+
Name: {{curNode.nodeInfo.name}}
+
Shape: {{curNode.nodeInfo.shape}}
+
Data Type: {{curNode.nodeInfo.data_type}}
+
+
+
Node Type: {{ curNode.nodeType }}
+
+
+
Node Type: {{ curNode.nodeType }}
+
Input: {{curNode.nodeInfo.input}}
+
Operator Type: {{curNode.nodeInfo.opType}}
+
Output: {{curNode.nodeInfo.output}}
+
+
+
+
+