mirror of
https://github.com/coderaiser/cloudcmd.git
synced 2026-01-23 18:55:26 +00:00
added function extend to Util module
This commit is contained in:
parent
af00d74e07
commit
7c25901222
2 changed files with 216 additions and 202 deletions
|
|
@ -3,7 +3,8 @@ var CloudCommander, Util, DOM, CloudFunc;
|
|||
(function(Util){
|
||||
'use strict';
|
||||
|
||||
var DOMConstructor = function(){},
|
||||
var DOMProto = {},
|
||||
DOMConstructor = function(){},
|
||||
CURRENT_FILE = 'current-file',
|
||||
SELECTED_FILE = 'selected-file',
|
||||
XMLHTTP, Title,
|
||||
|
|
@ -256,16 +257,205 @@ var CloudCommander, Util, DOM, CloudFunc;
|
|||
return (pElement || document).getElementsByClassName(pClass);
|
||||
};
|
||||
},
|
||||
EventsProto = function(){
|
||||
/**
|
||||
* safe add event listener
|
||||
*
|
||||
* @param pType
|
||||
* @param pListener
|
||||
* @param pUseCapture
|
||||
* @param pElement {document by default}
|
||||
*/
|
||||
this.addListener = function(pType, pListener, pElement, pUseCapture){
|
||||
var lRet = this,
|
||||
lElement = (pElement || window);
|
||||
|
||||
if( lElement.addEventListener)
|
||||
lElement.addEventListener(
|
||||
pType,
|
||||
pListener,
|
||||
pUseCapture
|
||||
);
|
||||
|
||||
return lRet;
|
||||
};
|
||||
|
||||
/**
|
||||
* safe add event listener
|
||||
*
|
||||
* @param pType
|
||||
* @param pListener
|
||||
* @param pUseCapture
|
||||
* @param pElement {document by default}
|
||||
*/
|
||||
this.addOneTimeListener = function(pType, pListener, pElement, pUseCapture){
|
||||
var lRet = this,
|
||||
lOneTime = function (pEvent){
|
||||
lRet.removeListener(pType, lOneTime, pElement, pUseCapture);
|
||||
pListener(pEvent);
|
||||
};
|
||||
|
||||
this.addListener(pType, lOneTime, pElement, pUseCapture);
|
||||
|
||||
return lRet;
|
||||
};
|
||||
|
||||
/**
|
||||
* safe remove event listener
|
||||
*
|
||||
* @param pType
|
||||
* @param pListener
|
||||
* @param pUseCapture
|
||||
* @param pElement {document by default}
|
||||
*/
|
||||
this.removeListener = function(pType, pListener, pElement, pUseCapture){
|
||||
var lRet = this;
|
||||
|
||||
(pElement || window).removeEventListener(
|
||||
pType,
|
||||
pListener,
|
||||
pUseCapture
|
||||
);
|
||||
|
||||
return lRet;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* safe add event keydown listener
|
||||
*
|
||||
* @param pListener
|
||||
* @param pUseCapture
|
||||
*/
|
||||
this.addKeyListener = function(pListener, pElement, pUseCapture){
|
||||
return this.addListener('keydown', pListener, pElement, pUseCapture);
|
||||
};
|
||||
|
||||
/**
|
||||
* safe add event click listener
|
||||
*
|
||||
* @param pListener
|
||||
* @param pUseCapture
|
||||
*/
|
||||
this.addClickListener = function(pListener, pElement, pUseCapture){
|
||||
return this.addListener('click', pListener, pElement, pUseCapture);
|
||||
};
|
||||
|
||||
this.addContextMenuListener = function(pListener, pElement, pUseCapture){
|
||||
return this.addListener('contextmenu', pListener, pElement, pUseCapture);
|
||||
};
|
||||
|
||||
/**
|
||||
* safe add event click listener
|
||||
*
|
||||
* @param pListener
|
||||
* @param pUseCapture
|
||||
*/
|
||||
this.addErrorListener = function(pListener, pElement, pUseCapture){
|
||||
return this.addListener('error', pListener, pElement, pUseCapture);
|
||||
};
|
||||
|
||||
/**
|
||||
* crossbrowser create event
|
||||
*
|
||||
* @param pEventName
|
||||
* @param pKeyCode - not necessarily
|
||||
*/
|
||||
this.createEvent = function(pEventName, pKeyCode){
|
||||
var lEvent = document.createEvent('Event');
|
||||
|
||||
lEvent.initEvent(pEventName, true, true);
|
||||
|
||||
if(pKeyCode)
|
||||
lEvent.keyCode = pKeyCode;
|
||||
|
||||
lEvent.isDefaultPrevented = function(){
|
||||
return this.defaultPrevented;
|
||||
};
|
||||
|
||||
return lEvent;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* create keydown event
|
||||
*
|
||||
* @param pKeyCode
|
||||
*/
|
||||
this.createKeyEvent = function(pKeyCode){
|
||||
return this.createEvent('keydown', pKeyCode);
|
||||
};
|
||||
|
||||
/**
|
||||
* create click event
|
||||
*
|
||||
* @param pKeyCode
|
||||
*/
|
||||
this.createClickEvent = function(){
|
||||
return this.createEvent('click');
|
||||
};
|
||||
|
||||
/**
|
||||
* create click event
|
||||
*
|
||||
* @param pKeyCode
|
||||
*/
|
||||
this.createDblClickEvent = function(){
|
||||
return this.createEvent('dblclick');
|
||||
};
|
||||
|
||||
/**
|
||||
* dispatch event
|
||||
*
|
||||
* @param pEvent
|
||||
*/
|
||||
this.dispatch = function(pEvent, pElement){
|
||||
return (pElement || window).dispatchEvent(pEvent);
|
||||
};
|
||||
|
||||
/**
|
||||
* dispatch keydown event
|
||||
*
|
||||
* @param pKeyCode
|
||||
* @param pElement
|
||||
*/
|
||||
this.dispatchKeyEvent = function(pKeyCode, pElement){
|
||||
var lEvent = this.createKeyEvent(pKeyCode),
|
||||
lRet = this.dispatch(lEvent, pElement);
|
||||
|
||||
return lRet;
|
||||
};
|
||||
|
||||
/**
|
||||
* dispatch click event
|
||||
*
|
||||
* @param pElement
|
||||
*/
|
||||
this.dispatchClickEvent = function(pElement){
|
||||
var lEvent = this.createClickEvent(),
|
||||
lRet = this.dispatch(lEvent, pElement);
|
||||
|
||||
return lRet;
|
||||
};
|
||||
|
||||
/**
|
||||
* dispatch dblclick event
|
||||
*
|
||||
* @param pElement
|
||||
*/
|
||||
this.dispatchDblClickEvent = function(pElement){
|
||||
var lEvent = this.createDblClickEvent(),
|
||||
lRet = this.dispatch(lEvent, pElement);
|
||||
|
||||
return lRet;
|
||||
};
|
||||
},
|
||||
|
||||
RESTfull = function(){},
|
||||
Images = function(){},
|
||||
DOMTreeConstructor = function(){},
|
||||
DOMTree,
|
||||
DOMProto;
|
||||
|
||||
DOMTreeConstructor.prototype= new DOMTreeProto();
|
||||
DOMTree = new DOMTreeConstructor();
|
||||
|
||||
DOMProto = new DOMTreeConstructor();
|
||||
DOMTreeConstructor = function(){};
|
||||
|
||||
Util.extend(DOMProto, [DOMTreeProto, EventsProto]);
|
||||
DOMConstructor.prototype = DOMProto;
|
||||
DOM = new DOMConstructor();
|
||||
|
||||
|
|
@ -290,199 +480,6 @@ var CloudCommander, Util, DOM, CloudFunc;
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* safe add event listener
|
||||
*
|
||||
* @param pType
|
||||
* @param pListener
|
||||
* @param pUseCapture
|
||||
* @param pElement {document by default}
|
||||
*/
|
||||
DOMProto.addListener = function(pType, pListener, pElement, pUseCapture){
|
||||
var lRet = this,
|
||||
lElement = (pElement || window);
|
||||
|
||||
if( lElement.addEventListener)
|
||||
lElement.addEventListener(
|
||||
pType,
|
||||
pListener,
|
||||
pUseCapture
|
||||
);
|
||||
|
||||
return lRet;
|
||||
};
|
||||
|
||||
/**
|
||||
* safe add event listener
|
||||
*
|
||||
* @param pType
|
||||
* @param pListener
|
||||
* @param pUseCapture
|
||||
* @param pElement {document by default}
|
||||
*/
|
||||
DOMProto.addOneTimeListener = function(pType, pListener, pElement, pUseCapture){
|
||||
var lRet = this,
|
||||
lOneTime = function (pEvent){
|
||||
DOMProto.removeListener(pType, lOneTime, pElement, pUseCapture);
|
||||
pListener(pEvent);
|
||||
};
|
||||
|
||||
DOMProto.addListener(pType, lOneTime, pElement, pUseCapture);
|
||||
|
||||
return lRet;
|
||||
};
|
||||
|
||||
/**
|
||||
* safe remove event listener
|
||||
*
|
||||
* @param pType
|
||||
* @param pListener
|
||||
* @param pUseCapture
|
||||
* @param pElement {document by default}
|
||||
*/
|
||||
DOMProto.removeListener = function(pType, pListener, pElement, pUseCapture){
|
||||
var lRet = this;
|
||||
|
||||
(pElement || window).removeEventListener(
|
||||
pType,
|
||||
pListener,
|
||||
pUseCapture
|
||||
);
|
||||
|
||||
return lRet;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* safe add event keydown listener
|
||||
*
|
||||
* @param pListener
|
||||
* @param pUseCapture
|
||||
*/
|
||||
DOMProto.addKeyListener = function(pListener, pElement, pUseCapture){
|
||||
return DOMProto.addListener('keydown', pListener, pElement, pUseCapture);
|
||||
};
|
||||
|
||||
/**
|
||||
* safe add event click listener
|
||||
*
|
||||
* @param pListener
|
||||
* @param pUseCapture
|
||||
*/
|
||||
DOMProto.addClickListener = function(pListener, pElement, pUseCapture){
|
||||
return DOMProto.addListener('click', pListener, pElement, pUseCapture);
|
||||
};
|
||||
|
||||
DOMProto.addContextMenuListener = function(pListener, pElement, pUseCapture){
|
||||
return DOMProto.addListener('contextmenu', pListener, pElement, pUseCapture);
|
||||
};
|
||||
|
||||
/**
|
||||
* safe add event click listener
|
||||
*
|
||||
* @param pListener
|
||||
* @param pUseCapture
|
||||
*/
|
||||
DOMProto.addErrorListener = function(pListener, pElement, pUseCapture){
|
||||
return DOMProto.addListener('error', pListener, pElement, pUseCapture);
|
||||
};
|
||||
|
||||
/**
|
||||
* crossbrowser create event
|
||||
*
|
||||
* @param pEventName
|
||||
* @param pKeyCode - not necessarily
|
||||
*/
|
||||
DOMProto.createEvent = function(pEventName, pKeyCode){
|
||||
var lEvent = document.createEvent('Event');
|
||||
|
||||
lEvent.initEvent(pEventName, true, true);
|
||||
|
||||
if(pKeyCode)
|
||||
lEvent.keyCode = pKeyCode;
|
||||
|
||||
lEvent.isDefaultPrevented = function(){
|
||||
return this.defaultPrevented;
|
||||
};
|
||||
|
||||
return lEvent;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* create keydown event
|
||||
*
|
||||
* @param pKeyCode
|
||||
*/
|
||||
DOMProto.createKeyEvent = function(pKeyCode){
|
||||
return DOMProto.createEvent('keydown', pKeyCode);
|
||||
};
|
||||
|
||||
/**
|
||||
* create click event
|
||||
*
|
||||
* @param pKeyCode
|
||||
*/
|
||||
DOMProto.createClickEvent = function(){
|
||||
return DOMProto.createEvent('click');
|
||||
};
|
||||
|
||||
/**
|
||||
* create click event
|
||||
*
|
||||
* @param pKeyCode
|
||||
*/
|
||||
DOMProto.createDblClickEvent = function(){
|
||||
return DOMProto.createEvent('dblclick');
|
||||
};
|
||||
|
||||
/**
|
||||
* dispatch event
|
||||
*
|
||||
* @param pEvent
|
||||
*/
|
||||
DOMProto.dispatch = function(pEvent, pElement){
|
||||
return (pElement || window).dispatchEvent(pEvent);
|
||||
};
|
||||
|
||||
/**
|
||||
* dispatch keydown event
|
||||
*
|
||||
* @param pKeyCode
|
||||
* @param pElement
|
||||
*/
|
||||
DOMProto.dispatchKeyEvent = function(pKeyCode, pElement){
|
||||
var lEvent = DOMProto.createKeyEvent(pKeyCode),
|
||||
lRet = DOMProto.dispatch(lEvent, pElement);
|
||||
|
||||
return lRet;
|
||||
};
|
||||
|
||||
/**
|
||||
* dispatch click event
|
||||
*
|
||||
* @param pElement
|
||||
*/
|
||||
DOMProto.dispatchClickEvent = function(pElement){
|
||||
var lEvent = DOMProto.createClickEvent(),
|
||||
lRet = DOMProto.dispatch(lEvent, pElement);
|
||||
|
||||
return lRet;
|
||||
};
|
||||
|
||||
/**
|
||||
* dispatch dblclick event
|
||||
*
|
||||
* @param pElement
|
||||
*/
|
||||
DOMProto.dispatchDblClickEvent = function(pElement){
|
||||
var lEvent = DOMProto.createDblClickEvent(),
|
||||
lRet = DOMProto.dispatch(lEvent, pElement);
|
||||
|
||||
return lRet;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* load file countent thrue ajax
|
||||
*
|
||||
|
|
|
|||
17
lib/util.js
17
lib/util.js
|
|
@ -168,6 +168,23 @@ Util = exports || {};
|
|||
return lRet;
|
||||
};
|
||||
|
||||
Util.extend = function(pTarget, PObj){
|
||||
var i, n, lObj, lRet = Util.isObject(pTarget) ? pTarget : {};
|
||||
|
||||
if( Util.isArray(PObj) )
|
||||
for(i = 0, n = PObj.length; i < n; i++)
|
||||
Util.extend(pTarget, PObj[i]);
|
||||
|
||||
else if(PObj){
|
||||
lObj = Util.isFunction(PObj) ? new PObj() : PObj;
|
||||
|
||||
for(i in lObj)
|
||||
lRet[i] = lObj[i];
|
||||
}
|
||||
|
||||
return lRet;
|
||||
};
|
||||
|
||||
/** for function
|
||||
* @param pI
|
||||
* @param pN
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue