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 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
118 return {x: d.x, y: d.y}; | 118 return {x: d.x, y: d.y}; |
119 }) | 119 }) |
120 .on("drag", function(args){ | 120 .on("drag", function(args){ |
121 graph.state.justDragged = true; | 121 graph.state.justDragged = true; |
122 graph.dragmove.call(graph, args); | 122 graph.dragmove.call(graph, args); |
123 }) | 123 }) |
124 | 124 |
125 d3.select("#upload").on("click", partial(this.uploadAction, graph)); | 125 d3.select("#upload").on("click", partial(this.uploadAction, graph)); |
126 d3.select("#layout").on("click", partial(this.layoutAction, graph)); | 126 d3.select("#layout").on("click", partial(this.layoutAction, graph)); |
127 d3.select("#show-all").on("click", partial(this.showAllAction, graph)); | 127 d3.select("#show-all").on("click", partial(this.showAllAction, graph)); |
| 128 d3.select("#hide-dead").on("click", partial(this.hideDeadAction, graph)); |
128 d3.select("#hide-unselected").on("click", partial(this.hideUnselectedAction,
graph)); | 129 d3.select("#hide-unselected").on("click", partial(this.hideUnselectedAction,
graph)); |
129 d3.select("#hide-selected").on("click", partial(this.hideSelectedAction, gra
ph)); | 130 d3.select("#hide-selected").on("click", partial(this.hideSelectedAction, gra
ph)); |
130 d3.select("#zoom-selection").on("click", partial(this.zoomSelectionAction, g
raph)); | 131 d3.select("#zoom-selection").on("click", partial(this.zoomSelectionAction, g
raph)); |
131 d3.select("#toggle-types").on("click", partial(this.toggleTypesAction, graph
)); | 132 d3.select("#toggle-types").on("click", partial(this.toggleTypesAction, graph
)); |
132 d3.select("#search-input").on("keydown", partial(this.searchInputAction, gra
ph)); | 133 d3.select("#search-input").on("keydown", partial(this.searchInputAction, gra
ph)); |
133 | 134 |
134 // listen for key events | 135 // listen for key events |
135 d3.select(window).on("keydown", function(e){ | 136 d3.select(window).on("keydown", function(e){ |
136 graph.svgKeyDown.call(graph); | 137 graph.svgKeyDown.call(graph); |
137 }) | 138 }) |
(...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
456 graph.viewWholeGraph(); | 457 graph.viewWholeGraph(); |
457 } | 458 } |
458 | 459 |
459 showAllAction(graph) { | 460 showAllAction(graph) { |
460 graph.nodes.filter(function(n) { n.visible = true; }) | 461 graph.nodes.filter(function(n) { n.visible = true; }) |
461 graph.edges.filter(function(e) { e.visible = true; }) | 462 graph.edges.filter(function(e) { e.visible = true; }) |
462 graph.updateGraphVisibility(); | 463 graph.updateGraphVisibility(); |
463 graph.viewWholeGraph(); | 464 graph.viewWholeGraph(); |
464 } | 465 } |
465 | 466 |
| 467 hideDeadAction(graph) { |
| 468 graph.nodes.filter(function(n) { if (!n.live) n.visible = false; }) |
| 469 graph.updateGraphVisibility(); |
| 470 } |
| 471 |
466 hideUnselectedAction(graph) { | 472 hideUnselectedAction(graph) { |
467 var unselected = graph.visibleNodes.filter(function(n) { | 473 var unselected = graph.visibleNodes.filter(function(n) { |
468 return !this.classList.contains("selected"); | 474 return !this.classList.contains("selected"); |
469 }); | 475 }); |
470 unselected.each(function(n) { | 476 unselected.each(function(n) { |
471 n.visible = false; | 477 n.visible = false; |
472 }); | 478 }); |
473 graph.updateGraphVisibility(); | 479 graph.updateGraphVisibility(); |
474 } | 480 } |
475 | 481 |
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
718 graph.visibleNodes.attr("transform", function(n){ | 724 graph.visibleNodes.attr("transform", function(n){ |
719 return "translate(" + n.x + "," + n.y + ")"; | 725 return "translate(" + n.x + "," + n.y + ")"; |
720 }).select('rect'). | 726 }).select('rect'). |
721 attr(HEIGHT, function(d) { return graph.getNodeHeight(); }); | 727 attr(HEIGHT, function(d) { return graph.getNodeHeight(); }); |
722 | 728 |
723 // add new nodes | 729 // add new nodes |
724 var newGs = graph.visibleNodes.enter() | 730 var newGs = graph.visibleNodes.enter() |
725 .append("g"); | 731 .append("g"); |
726 | 732 |
727 newGs.classed("control", function(n) { return n.isControl(); }) | 733 newGs.classed("control", function(n) { return n.isControl(); }) |
| 734 .classed("live", function(n) { return n.isLive(); }) |
| 735 .classed("dead", function(n) { return !n.isLive(); }) |
728 .classed("javascript", function(n) { return n.isJavaScript(); }) | 736 .classed("javascript", function(n) { return n.isJavaScript(); }) |
729 .classed("input", function(n) { return n.isInput(); }) | 737 .classed("input", function(n) { return n.isInput(); }) |
730 .classed("simplified", function(n) { return n.isSimplified(); }) | 738 .classed("simplified", function(n) { return n.isSimplified(); }) |
731 .classed("machine", function(n) { return n.isMachine(); }) | 739 .classed("machine", function(n) { return n.isMachine(); }) |
732 .attr("transform", function(d){ return "translate(" + d.x + "," + d.y + ")
";}) | 740 .attr("transform", function(d){ return "translate(" + d.x + "," + d.y + ")
";}) |
733 .on("mousedown", function(d){ | 741 .on("mousedown", function(d){ |
734 graph.nodeMouseDown.call(graph, d3.select(this), d); | 742 graph.nodeMouseDown.call(graph, d3.select(this), d); |
735 }) | 743 }) |
736 .on("mouseup", function(d){ | 744 .on("mouseup", function(d){ |
737 graph.nodeMouseUp.call(graph, d3.select(this), d); | 745 graph.nodeMouseUp.call(graph, d3.select(this), d); |
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1002 } | 1010 } |
1003 | 1011 |
1004 viewWholeGraph() { | 1012 viewWholeGraph() { |
1005 var graph = this; | 1013 var graph = this; |
1006 var minScale = graph.minScale(); | 1014 var minScale = graph.minScale(); |
1007 var translation = [0, 0]; | 1015 var translation = [0, 0]; |
1008 translation = graph.getVisibleTranslation(translation, minScale); | 1016 translation = graph.getVisibleTranslation(translation, minScale); |
1009 graph.translateClipped(translation, minScale); | 1017 graph.translateClipped(translation, minScale); |
1010 } | 1018 } |
1011 } | 1019 } |
OLD | NEW |