| OLD | NEW |
| 1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 "use strict"; | 5 "use strict"; |
| 6 | 6 |
| 7 class GraphView extends View { | 7 class GraphView extends View { |
| 8 constructor (d3, id, nodes, edges, broker) { | 8 constructor (d3, id, nodes, edges, broker) { |
| 9 super(id, broker); | 9 super(id, broker); |
| 10 var graph = this; | 10 var graph = this; |
| (...skipping 451 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 462 | 462 |
| 463 nodeMouseUp(d3node, d) { | 463 nodeMouseUp(d3node, d) { |
| 464 var graph = this, | 464 var graph = this, |
| 465 state = graph.state, | 465 state = graph.state, |
| 466 consts = graph.consts; | 466 consts = graph.consts; |
| 467 | 467 |
| 468 var mouseDownNode = state.mouseDownNode; | 468 var mouseDownNode = state.mouseDownNode; |
| 469 | 469 |
| 470 if (!mouseDownNode) return; | 470 if (!mouseDownNode) return; |
| 471 | 471 |
| 472 if (mouseDownNode !== d){ | 472 if (state.justDragged) { |
| 473 // we're in a different node: create new edge for mousedown edge and add t
o graph | 473 // dragged, not clicked |
| 474 var newEdge = {source: mouseDownNode, target: d}; | 474 state.justDragged = false; |
| 475 var filtRes = graph.visibleEdges.filter(function(d){ | 475 } else{ |
| 476 if (d.source === newEdge.target && d.target === newEdge.source){ | 476 // clicked, not dragged |
| 477 graph.edges.splice(graph.edges.indexOf(d), 1); | 477 var extend = d3.event.shiftKey; |
| 478 } | 478 var selection = graph.state.selection; |
| 479 return d.source === newEdge.source && d.target === newEdge.target; | 479 if (!extend) { |
| 480 }); | 480 selection.clear(); |
| 481 if (!filtRes[0].length){ | |
| 482 graph.edges.push(newEdge); | |
| 483 graph.updateGraphVisibility(); | |
| 484 } | 481 } |
| 485 } else{ | 482 selection.select(d3node[0][0], true); |
| 486 // we're in the same node | |
| 487 if (state.justDragged) { | |
| 488 // dragged, not clicked | |
| 489 state.justDragged = false; | |
| 490 } else{ | |
| 491 // clicked, not dragged | |
| 492 var extend = d3.event.shiftKey; | |
| 493 var selection = graph.state.selection; | |
| 494 if (!extend) { | |
| 495 selection.clear(); | |
| 496 } | |
| 497 selection.select(d3node[0][0], true); | |
| 498 } | |
| 499 } | 483 } |
| 500 } | 484 } |
| 501 | 485 |
| 502 selectSourcePositions(start, end, selected) { | 486 selectSourcePositions(start, end, selected) { |
| 503 var graph = this; | 487 var graph = this; |
| 504 var map = []; | 488 var map = []; |
| 505 var sel = graph.nodes.filter(function(n) { | 489 var sel = graph.nodes.filter(function(n) { |
| 506 var pos = (n.pos === undefined) | 490 var pos = (n.pos === undefined) |
| 507 ? -1 | 491 ? -1 |
| 508 : n.getFunctionRelativeSourcePosition(graph); | 492 : n.getFunctionRelativeSourcePosition(graph); |
| (...skipping 469 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 978 } | 962 } |
| 979 | 963 |
| 980 viewWholeGraph() { | 964 viewWholeGraph() { |
| 981 var graph = this; | 965 var graph = this; |
| 982 var minScale = graph.minScale(); | 966 var minScale = graph.minScale(); |
| 983 var translation = [0, 0]; | 967 var translation = [0, 0]; |
| 984 translation = graph.getVisibleTranslation(translation, minScale); | 968 translation = graph.getVisibleTranslation(translation, minScale); |
| 985 graph.translateClipped(translation, minScale); | 969 graph.translateClipped(translation, minScale); |
| 986 } | 970 } |
| 987 } | 971 } |
| OLD | NEW |