From 6f401769ea669e83706dcc171b27176edd890cf5 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Thu, 9 Aug 2012 11:53:00 -0400 Subject: [PATCH] added keys constants --- lib/client/keyBinding.js | 110 ++++++++++++++++++++++++--------------- 1 file changed, 68 insertions(+), 42 deletions(-) diff --git a/lib/client/keyBinding.js b/lib/client/keyBinding.js index 607c5364..09852280 100644 --- a/lib/client/keyBinding.js +++ b/lib/client/keyBinding.js @@ -1,6 +1,6 @@ var CloudCommander; var CloudFunc; -CloudCommander.keyBinding=(function(){ +CloudCommander.keyBinding = (function(){ "use strict"; var Util = new CloudCommander.Util(); @@ -10,9 +10,31 @@ CloudCommander.keyBinding=(function(){ right : 0 }; - var key_event=function(event){ + + var lKEY = { + TAB : 9, + ENTER : 13, + + PAGE_DOWN : 34, + END : 35, + HOME : 36, + + UP : 38, + DOWN : 40, + + D : 68, + Q : 81, + R : 82, + S : 83, + + F2 : 113, + F3 : 114, + F4 : 115 + }; + + var key_event = function(event){ var lCurrentFile, - lName, lTop, i; + lName, i; /* если клавиши можно обрабатывать*/ if(CloudCommander.keyBinded){ /* если нажали таб: @@ -21,10 +43,9 @@ CloudCommander.keyBinding=(function(){ * мы были на левой и * наоборот */ - if(event.keyCode===9){ + if(event.keyCode === lKEY.TAB){ console.log('Tab pressed'); - - var lCURRENT_FILE = CloudCommander.CURRENT_FILE; + try{ lCurrentFile = Util.getCurrentFile(); @@ -34,44 +55,51 @@ CloudCommander.keyBinding=(function(){ lTabPanel[lId] = lCurrentFile; - var lPanel = Util.getPanel({active:false}); - var lId = lPanel.id; - - if(lTabPanel[lId]) - lTabPanel[lId].className = lCURRENT_FILE; - else - lPanel.getElementsByTagName('li')[2] - .className = lCURRENT_FILE; + lPanel = Util.getPanel({active:false}); + lId = lPanel.id; + - lCurrentFile.className = ''; + if(lTabPanel[lId]) + Util.setCurrentFile(lTabPanel[lId].className); + else{ + var lFirstFileOnList = + lPanel.getElementsByTagName('li')[2]; + + Util.setCurrentFile(lFirstFileOnList); + } + Util.unSetCurrentFile(lCurrentFile); }catch(error){console.log(error);} } /* if f2 pressed */ - else if(event.keyCode===113){ + else if(event.keyCode === lKEY.F2){ } + /* if f3 pressed */ - else if(event.keyCode===114){ + else if(event.keyCode === lKEY.F3){ if (typeof CloudCommander.Viewer === 'function') CloudCommander.Viewer(); } + /* if alt+f3 pressed */ - else if(event.keyCode===114 && + else if(event.keyCode === lKEY.F3 && event.altKey){ if (typeof CloudCommander.Terminal === 'function') CloudCommander.Terminal(); } + /* if f4 pressed */ - else if(event.keyCode === 115) { + else if(event.keyCode === lKEY.F4) { Util.Images.showLoad(); if (typeof CloudCommander.Editor === 'function') CloudCommander.Editor(); } + /* навигация по таблице файлов*/ /* если нажали клавишу вверх*/ - else if(event.keyCode===38){ + else if(event.keyCode === lKEY.UP){ /* получаем выдленный файл*/ lCurrentFile = Util.getCurrentFile(); @@ -97,7 +125,7 @@ CloudCommander.keyBinding=(function(){ } } /* если нажали клавишу в низ*/ - else if(event.keyCode===40){ + else if(event.keyCode === lKEY.DOWN){ /* получаем выдленный файл*/ lCurrentFile = Util.getCurrentFile(); @@ -122,7 +150,7 @@ CloudCommander.keyBinding=(function(){ * переходим к самому верхнему * элементу */ - else if(event.keyCode === 36){ + else if(event.keyCode === lKEY.HOME){ lCurrentFile = Util.getCurrentFile(); /* убираем выделение с текущего файла*/ lCurrentFile.className=''; @@ -139,7 +167,7 @@ CloudCommander.keyBinding=(function(){ /* если нажали клавишу End * выделяем последний элемент */ - else if( event.keyCode === 35){ + else if( event.keyCode === lKEY.END){ lCurrentFile = Util.getCurrentFile(); /* снимаем выделение с текущего файла*/ lCurrentFile.className=''; @@ -153,7 +181,7 @@ CloudCommander.keyBinding=(function(){ /* если нажали клавишу page down * проматываем экран */ - else if(event.keyCode === 34){ + else if(event.keyCode === lKEY.PAGE_DOWN){ Util.getPanel().scrollByPages(1); lCurrentFile = Util.getCurrentFile(); @@ -180,7 +208,10 @@ CloudCommander.keyBinding=(function(){ .previousSibling .previousSibling .previousSibling; - } catch(pError){break}; + } + catch(pError){ + break; + } lCurrentFile = lCurrentFile.previousSibling; } Util.getCurrentFile().className = ''; @@ -222,7 +253,7 @@ CloudCommander.keyBinding=(function(){ * сервера, а не из кэша * (обновляем кэш) */ - else if(event.keyCode===82 && + else if(event.keyCode === lKEY.R && event.ctrlKey){ console.log('+r pressed'); console.log('reloading page...'); @@ -236,11 +267,8 @@ CloudCommander.keyBinding=(function(){ if(lRefreshIcon)lRefreshIcon = lRefreshIcon[0]; if(lRefreshIcon){ /* находим файл который сейчас выделен */ - lCurrentFile = Util - .getByClass(CloudCommander.CURRENT_FILE); - - if(lCurrentFile.length > 0) - lCurrentFile=lCurrentFile[0]; + lCurrentFile = Util.getCurrentFile(); + /* получаем название файла*/ var lSelectedName = lCurrentFile .getElementsByTagName('a')[0].textContent; @@ -249,19 +277,16 @@ CloudCommander.keyBinding=(function(){ * ссылку, на которую повешен eventHandler * onclick */ - if(lRefreshIcon.click)lRefreshIcon.parentElement.click(); - else lRefreshIcon.parentElement.onclick(); + if(lRefreshIcon.click) + lRefreshIcon.parentElement.click(); + else + lRefreshIcon.parentElement.onclick(); - /* перебираем файлы левой панели - * в поисках подсвеченого файла - */ - var lLeft = Util.getById('left'); - if(lLeft) - CloudCommander._currentToParent(lSelectedName); + CloudCommander._currentToParent(lSelectedName); } } /* если нажали +d чистим кэш */ - else if(event.keyCode===68 && + else if(event.keyCode === lKEY.D && event.ctrlKey){ console.log('+d pressed'); console.log('clearing cache...'); @@ -274,7 +299,7 @@ CloudCommander.keyBinding=(function(){ * убираем все обработчики * нажатий клавиш */ - else if(event.keyCode === 81 && + else if(event.keyCode === lKEY.Q && event.altKey){ //document.removeEventListener('keydown', key_event,false); console.log('+q pressed'); @@ -292,7 +317,7 @@ CloudCommander.keyBinding=(function(){ * устанавливаем все обработчики * нажатий клавиш */ - else if(event.keyCode===83 && + else if(event.keyCode === lKEY.S && event.altKey){ /* document.addEventListener('keydown', key_event,false); @@ -308,6 +333,7 @@ CloudCommander.keyBinding=(function(){ return false; }; + /* добавляем обработчик клавишь */ if(document.addEventListener) document.addEventListener('keydown', key_event,false);