Repository: incubator-htrace Updated Branches: refs/heads/master a0f64a3a0 -> 423d5936b
HTRACE-206. htrace-web: when the canvas has focus, the delete key should clear, z key should zoom (Colin Patrick McCabe via iwasakims) Project: http://git-wip-us.apache.org/repos/asf/incubator-htrace/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-htrace/commit/423d5936 Tree: http://git-wip-us.apache.org/repos/asf/incubator-htrace/tree/423d5936 Diff: http://git-wip-us.apache.org/repos/asf/incubator-htrace/diff/423d5936 Branch: refs/heads/master Commit: 423d5936bad97da72d891ffeb756bdee3908f282 Parents: a0f64a3 Author: Masatake Iwasaki <[email protected]> Authored: Mon Jul 13 08:10:49 2015 +0900 Committer: Masatake Iwasaki <[email protected]> Committed: Mon Jul 13 08:10:49 2015 +0900 ---------------------------------------------------------------------- .../src/main/web/app/search_results_view.js | 22 +++++++++++++++++++- htrace-webapp/src/main/web/app/search_view.js | 2 +- htrace-webapp/src/main/web/index.html | 3 ++- 3 files changed, 24 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-htrace/blob/423d5936/htrace-webapp/src/main/web/app/search_results_view.js ---------------------------------------------------------------------- diff --git a/htrace-webapp/src/main/web/app/search_results_view.js b/htrace-webapp/src/main/web/app/search_results_view.js index 0a11eaa..318b78d 100644 --- a/htrace-webapp/src/main/web/app/search_results_view.js +++ b/htrace-webapp/src/main/web/app/search_results_view.js @@ -271,6 +271,7 @@ htrace.SearchResultsView = Backbone.View.extend({ var view = this; $("#resultsCanvas").off("mousedown"); $("#resultsCanvas").on("mousedown", function(e) { + $("#resultsCanvas").focus(); view.handleMouseDown(e); }); $("#resultsCanvas").off("mouseup"); @@ -289,6 +290,21 @@ htrace.SearchResultsView = Backbone.View.extend({ $("#resultsCanvas").on("dblclick", function(e) { view.handleDblclick(e); }); + // Keyboard events. These events only fire if the canvas has focus. So if + // you press delete when entering a time in the time dialog box, this will + // not fire. Etc. + $("#resultsCanvas").off("keyup"); + $("#resultsCanvas").on("keyup", function(e) { + if (e.keyCode == 46) { // delete key + view.clearHandler(false); + return false; + } else if (e.keyCode == 90) { // z key + view.zoomHandler(); + return false; + } else { + return true; + } + }); $("#resultsCanvas").off("contextmenu"); $("#resultsCanvas").on("contextmenu", function(e) { return false; @@ -302,6 +318,7 @@ htrace.SearchResultsView = Backbone.View.extend({ $("#resultsCanvas").off("mouseout"); $("#resultsCanvas").off("mousemove"); $("#resultsCanvas").off("dblclick"); + $("#resultsCanvas").off("keyup"); $("#resultsCanvas").off("contextmenu"); Backbone.View.prototype.remove.apply(this, arguments); }, @@ -353,7 +370,7 @@ htrace.SearchResultsView = Backbone.View.extend({ // caller should invoke render() }, - clearHandler: function() { + clearHandler: function(clearAllIfNoneSelected) { console.log("invoking clearHandler."); var toDelete = [] var noneSelected = true; @@ -386,6 +403,9 @@ htrace.SearchResultsView = Backbone.View.extend({ toDelete.push(model); } } + if (noneSelected && (!clearAllIfNoneSelected)) { + return; + } ids = []; for (var i = 0; i < toDelete.length; i++) { ids.push(toDelete[i].get("spanId")); http://git-wip-us.apache.org/repos/asf/incubator-htrace/blob/423d5936/htrace-webapp/src/main/web/app/search_view.js ---------------------------------------------------------------------- diff --git a/htrace-webapp/src/main/web/app/search_view.js b/htrace-webapp/src/main/web/app/search_view.js index ffdba4c..aeb4273 100644 --- a/htrace-webapp/src/main/web/app/search_view.js +++ b/htrace-webapp/src/main/web/app/search_view.js @@ -48,7 +48,7 @@ htrace.SearchView = Backbone.View.extend({ clearHandler: function(e){ e.preventDefault(); - this.resultsView.clearHandler(); + this.resultsView.clearHandler(true); }, doSearch: function(showDebug){ http://git-wip-us.apache.org/repos/asf/incubator-htrace/blob/423d5936/htrace-webapp/src/main/web/index.html ---------------------------------------------------------------------- diff --git a/htrace-webapp/src/main/web/index.html b/htrace-webapp/src/main/web/index.html index fccbded..29a899b 100644 --- a/htrace-webapp/src/main/web/index.html +++ b/htrace-webapp/src/main/web/index.html @@ -158,7 +158,8 @@ </script> <script id="search-results-view-template" type="text/template"> - <canvas id="resultsCanvas" class="htrace-canvas"> + <!-- tabindex=1 is needed or else the canvas can never gain mouse focus on Chrome. --> + <canvas id="resultsCanvas" class="htrace-canvas" tabindex="1"> <h2>Sorry, your browser does not support the HTML5 canvas element. Please upgrade to a newer browser.</h2> </canvas>
