added functions DOM.addKeyListener and Util.loadOnLoad

This commit is contained in:
coderaiser 2012-11-13 08:42:25 -05:00
parent 640197a52e
commit b830010283
11 changed files with 205 additions and 196 deletions

View file

@ -1,7 +1,5 @@
var CloudCommander, Util, DOM, CloudFunc, CodeMirror;
/* object contains editors CodeMirror
* and later will be Ace
*/
/* object contains editors CodeMirror */
(function(){
"use strict";
var cloudcmd = CloudCommander,
@ -27,8 +25,12 @@ var CloudCommander, Util, DOM, CloudFunc, CodeMirror;
/**
* function initialize CodeMirror
* @param {value, callback}
*/
function initCodeMirror(pValue){
function initCodeMirror(pData){
if(!pData)
pData = {};
if(!FM)
FM = DOM.getById('fm');
@ -41,15 +43,17 @@ var CloudCommander, Util, DOM, CloudFunc, CodeMirror;
CodeMirrorEditor.CodeMirror = new CodeMirror(CodeMirrorElement,{
mode : 'javascript',
value : pValue,
value : pData.data,
theme : 'night',
lineNumbers : true,
//переносим длинные строки
//переносим длинные строки
lineWrapping: false,
autofocus : true,
extraKeys: {
//Сохранение
"Esc": CodeMirrorEditor.hide
'Esc': function(){
Util.exec(pData.callback);
}
},
readOnly : ReadOnly
});
@ -58,7 +62,7 @@ var CloudCommander, Util, DOM, CloudFunc, CodeMirror;
/**
* function loads CodeMirror js and css files
*/
function load(){
function load(pCallBack){
console.time('codemirror load');
var lDir = CodeMirrorEditor.dir;
@ -88,8 +92,8 @@ var CloudCommander, Util, DOM, CloudFunc, CodeMirror;
function(){
console.timeEnd('codemirror load');
CodeMirrorLoaded = true;
CodeMirrorEditor.show();
CodeMirrorLoaded = true;
Util.exec(pCallBack);
}
);
}
@ -97,13 +101,7 @@ var CloudCommander, Util, DOM, CloudFunc, CodeMirror;
/**
* function shows CodeMirror editor
*/
CodeMirrorEditor.show = function(pReadOnly){
if( Util.isBoolean(pReadOnly) )
ReadOnly = pReadOnly;
/* if CodeMirrorEditor is not loaded - loading him */
if(!CodeMirrorLoaded)
return load();
CodeMirrorEditor.show = function(pCallBack){
/* if CodeMirror function show already
* called do not call it again
@ -118,7 +116,7 @@ var CloudCommander, Util, DOM, CloudFunc, CodeMirror;
lA = lA.href;
/* убираем адрес хоста*/
lA = '/' + lA.replace(document.location.href,'');
lA = lA.replace(cloudcmd.HOST, '');
/* checking is this link is to directory */
var lSize = DOM.getByClass('size', lCurrentFile);
@ -155,17 +153,17 @@ var CloudCommander, Util, DOM, CloudFunc, CodeMirror;
return DOM.Images.showError(jqXHR);
},
success:function(data, textStatus, jqXHR){
success:function(data, textStatus, jqXHR){
/* if we got json - show it */
if(typeof data === 'object')
data = JSON.stringify(data, null, 4);
var lHided = DOM.hidePanel();
if(lHided){
initCodeMirror(data);
Util.exec(pCallBack, data);
/* removing keyBinding if set */
KeyBinding.unSet();
KeyBinding.unSet();
}
DOM.Images.hideLoad();
@ -194,44 +192,39 @@ var CloudCommander, Util, DOM, CloudFunc, CodeMirror;
cloudcmd.Editor.Keys = function(pReadOnly){
ReadOnly = pReadOnly;
/* loading js and css of CodeMirror */
CodeMirrorEditor.show();
var lShowCodemirror = [
CodeMirrorEditor.hide,
initCodeMirror,
CodeMirrorEditor.show,
load
];
Util.loadOnLoad( lShowCodemirror );
lShowCodemirror.pop();
var key_event = function(pEvent){
var lKeyListener = function(pEvent){
/* если клавиши можно обрабатывать */
if( KeyBinding.get() ){
/* if f4 or f3 pressed */
var lF3 = cloudcmd.KEY.F3,
lF4 = cloudcmd.KEY.F4,
lShow = Util.bind( CodeMirrorEditor.show, CodeMirrorEditor );
lF4 = cloudcmd.KEY.F4;
if(!pEvent.shiftKey)
switch(pEvent.keyCode)
{
case lF4:
ReadOnly = false;
lShow();
Util.loadOnLoad( lShowCodemirror );
break;
case lF3:
ReadOnly = true;
lShow();
Util.loadOnLoad( lShowCodemirror );
break;
}
}
};
/* добавляем обработчик клавишь */
if (document.addEventListener)
document.addEventListener('keydown', key_event, false);
else{
var lFunc = document.onkeydown;
document.onkeydown = function(){
Util.exec(lFunc);
key_event();
};
}
DOM.addKeyListener(lKeyListener);
};
cloudcmd.Editor.CodeMirror = CodeMirrorEditor;