diff --git a/lib/client/key.js b/lib/client/key.js index fa15ac75..f5c408c0 100644 --- a/lib/client/key.js +++ b/lib/client/key.js @@ -30,6 +30,8 @@ var CloudCmd, Util, DOM; S : 83, T : 84, + Z : 90, + F1 : 112, F2 : 113, F3 : 114, @@ -70,14 +72,16 @@ var CloudCmd, Util, DOM; function listener(pEvent) { /* получаем выдленный файл*/ - var i, n, lCurrent = DOM.getCurrentFile(), + var i, n, + lCurrent = DOM.getCurrentFile(), lKeyCode = pEvent.keyCode, - lShift = pEvent.shiftKey, - lAlt = pEvent.altKey, - lCtrl = pEvent.ctrlKey; + lAlt = pEvent.altKey; /* если клавиши можно обрабатывать*/ if (Binded) { - switchKey(pEvent); + if (lKeyCode >= KEY.A && lKeyCode <= KEY.Z) + setCurrentByLetter(lKeyCode); + else + switchKey(pEvent); /* устанавливаем все обработчики * нажатий клавиш @@ -94,6 +98,28 @@ var CloudCmd, Util, DOM; } } + function setCurrentByLetter(pKeyCode) { + var i, n, name, isCurrent, isContain, + lCurrent = DOM.getCurrentFile(), + panel = DOM.getPanel(), + nodes = panel.childNodes, + SMALL = 32, + char = String.fromCharCode(pKeyCode + SMALL); + + n = nodes.length; + for (i = 2; i < n; i++) { + lCurrent = panel.childNodes[i]; + name = DOM.getCurrentName(lCurrent); + isContain = Util.isContainStrAtBegin(name, char); + + if (isContain) { + lCurrent = DOM.getCurrentFileByName(name); + DOM.setCurrentFile(lCurrent); + break; + } + } + } + function switchKey(pEvent) { var i, n, lCurrent = DOM.getCurrentFile(), lKeyCode = pEvent.keyCode,