From 3d80f5aa03dbc28c191dcfdb9d437a1296422e02 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Thu, 28 Nov 2013 09:39:54 +0000 Subject: [PATCH] feature(key) add setCurrentByLetter --- lib/client/key.js | 36 +++++++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) 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,