blob: 4e85df2f2902712ee223e235213de1ed3443843d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
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 get_graph_view(element)
{
var dict = get_rz_core().root_element_id_to_graph_view;
while (undefined !== element && null !== element && undefined === dict[element.id]) {
element = element.parentElement;
}
return element !== undefined && element !== null ? dict[element.id] : undefined;
}
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(),
handled = false,
graph_view = get_graph_view(e.target);
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);
handled = true;
}
if (e.ctrlKey && 'z' === key && e.target.nodeName !== 'INPUT') {
// TODO: rz_core.main_graph.undo();
}
// SVG elements cannot handle any keys directly - pass the key to them in this case
if (undefined !== graph_view) {
graph_view.keyboard_handler(e);
}
if (handled) {
e.preventDefault();
e.stopPropagation();
}
};
}
return {
install: install
};
}
);
|