summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/client/keyshortcuts.js40
-rw-r--r--src/client/main.js20
2 files changed, 43 insertions, 17 deletions
diff --git a/src/client/keyshortcuts.js b/src/client/keyshortcuts.js
new file mode 100644
index 00000000..92f4182b
--- /dev/null
+++ b/src/client/keyshortcuts.js
@@ -0,0 +1,40 @@
+define(['jquery', 'view/selection'],
+function($, selection)
+{
+var rz_core; // circular dependency
+
+function get_rz_core()
+{
+ if (rz_core === undefined) {
+ rz_core = require('rz_core');
+ }
+ return rz_core;
+}
+
+function install() {
+ document.body.onkeydown = function(e) {
+ var key = ((e.key && String(e.key))
+ || (e.charCode && String.fromCharCode(e.charCode))
+ || (e.which && String.fromCharCode(e.which))).toLowerCase();
+
+ if (e.altKey && e.ctrlKey && 'i' === key) {
+ $('#textanalyser').focus();
+ }
+ if (e.altKey && e.ctrlKey && 'o' === key) {
+ search.focus();
+ }
+ if (e.ctrlKey && 'a' === key && e.target === document.body) {
+ selection.update(get_rz_core().main_graph.nodes(), false);
+ e.preventDefault();
+ e.stopPropagation();
+ }
+ if (e.ctrlKey && 'z' === key && e.target.nodeName !== 'INPUT') {
+ // TODO: rz_core.main_graph.undo();
+ }
+ };
+}
+return {
+ install: install
+ };
+}
+);
diff --git a/src/client/main.js b/src/client/main.js
index 0c1b4c98..640651dc 100644
--- a/src/client/main.js
+++ b/src/client/main.js
@@ -1,5 +1,5 @@
-define(['textanalysis.ui', 'textanalysis', 'buttons', 'history', 'drag_n_drop', 'robot', 'model/core', 'rz_core', 'view/selection', 'util', 'view/search', 'feedback'],
-function(textanalysis_ui, textanalysis, buttons, history, drag_n_drop, robot, model_core, rz_core, selection, util, search, feedback) {
+define(['textanalysis.ui', 'textanalysis', 'buttons', 'history', 'drag_n_drop', 'robot', 'model/core', 'rz_core', 'view/selection', 'util', 'view/search', 'feedback', 'keyshortcuts'],
+function(textanalysis_ui, textanalysis, buttons, history, drag_n_drop, robot, model_core, rz_core, selection, util, search, feedback, keyshortcuts) {
function expand(obj){
if (!obj.savesize) {
@@ -31,21 +31,7 @@ function(textanalysis_ui, textanalysis, buttons, history, drag_n_drop,
drag_n_drop.prevent_default_drop_behavior();
}
- document.body.onkeyup = function(e) {
- var key = ((e.key && String(e.key))
- || (e.charCode && String.fromCharCode(e.charCode))
- || (e.which && String.fromCharCode(e.which))).toLowerCase();
-
- if (e.altKey && e.ctrlKey && key == 'i') {
- $('#textanalyser').focus();
- }
- if (e.altKey && e.ctrlKey && key == 'o') {
- search.focus();
- }
- if (e.ctrlKey && key == 'z' && e.target.nodeName !== 'INPUT') {
- // TODO: rz_core.main_graph.undo();
- }
- };
+ keyshortcuts.install();
var intro_task_elem = $('#intro-task');
// TODO: messages (why tasks?) - this one is special but we want them to be handled in their own file.