diff options
Diffstat (limited to 'includes/js/dojox/grid/_grid/lib.js')
-rw-r--r-- | includes/js/dojox/grid/_grid/lib.js | 254 |
1 files changed, 254 insertions, 0 deletions
diff --git a/includes/js/dojox/grid/_grid/lib.js b/includes/js/dojox/grid/_grid/lib.js new file mode 100644 index 0000000..3644dbc --- /dev/null +++ b/includes/js/dojox/grid/_grid/lib.js @@ -0,0 +1,254 @@ +if(!dojo._hasResource["dojox.grid._grid.lib"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojox.grid._grid.lib"] = true; +dojo.provide("dojox.grid._grid.lib"); +// summary: grid utility library +dojo.mixin(dojox.grid,{ + + na: '...', + + nop: function(){ + // summary: a null function? + }, + + getTdIndex: function(td){ + return td.cellIndex >=0 ? td.cellIndex : dojo.indexOf(td.parentNode.cells, td); + }, + + getTrIndex: function(tr){ + return tr.rowIndex >=0 ? tr.rowIndex : dojo.indexOf(tr.parentNode.childNodes, tr); + }, + + getTr: function(rowOwner, index){ + return rowOwner && ((rowOwner.rows||0)[index] || rowOwner.childNodes[index]); + }, + + getTd: function(rowOwner, rowIndex, cellIndex){ + return (dojox.grid.getTr(inTable, rowIndex)||0)[cellIndex]; + }, + + findTable: function(node){ + for (var n=node; n && n.tagName!='TABLE'; n=n.parentNode); + return n; + }, + + ascendDom: function(inNode, inWhile){ + for (var n=inNode; n && inWhile(n); n=n.parentNode); + return n; + }, + + makeNotTagName: function(inTagName){ + var name = inTagName.toUpperCase(); + return function(node){ return node.tagName != name; }; + }, + + fire: function(ob, ev, args){ + var fn = ob && ev && ob[ev]; + return fn && (args ? fn.apply(ob, args) : ob[ev]()); + }, + + // from lib.js + setStyleText: function(inNode, inStyleText){ + if(inNode.style.cssText == undefined){ + inNode.setAttribute("style", inStyleText); + }else{ + inNode.style.cssText = inStyleText; + } + }, + + getStyleText: function(inNode, inStyleText){ + return (inNode.style.cssText == undefined ? inNode.getAttribute("style") : inNode.style.cssText); + }, + + setStyle: function(inElement, inStyle, inValue){ + if(inElement && inElement.style[inStyle] != inValue){ + inElement.style[inStyle] = inValue; + } + }, + + setStyleHeightPx: function(inElement, inHeight){ + if(inHeight >= 0){ + dojox.grid.setStyle(inElement, 'height', inHeight + 'px'); + } + }, + + mouseEvents: [ 'mouseover', 'mouseout', /*'mousemove',*/ 'mousedown', 'mouseup', 'click', 'dblclick', 'contextmenu' ], + + keyEvents: [ 'keyup', 'keydown', 'keypress' ], + + funnelEvents: function(inNode, inObject, inMethod, inEvents){ + var evts = (inEvents ? inEvents : dojox.grid.mouseEvents.concat(dojox.grid.keyEvents)); + for (var i=0, l=evts.length; i<l; i++){ + dojo.connect(inNode, 'on' + evts[i], inObject, inMethod); + } + }, + + removeNode: function(inNode){ + inNode = dojo.byId(inNode); + inNode && inNode.parentNode && inNode.parentNode.removeChild(inNode); + return inNode; + }, + + getScrollbarWidth: function(){ + if(this._scrollBarWidth){ + return this._scrollBarWidth; + } + this._scrollBarWidth = 18; + try{ + var e = document.createElement("div"); + e.style.cssText = "top:0;left:0;width:100px;height:100px;overflow:scroll;position:absolute;visibility:hidden;"; + document.body.appendChild(e); + this._scrollBarWidth = e.offsetWidth - e.clientWidth; + document.body.removeChild(e); + delete e; + }catch (ex){} + return this._scrollBarWidth; + }, + + // needed? dojo has _getProp + getRef: function(name, create, context){ + var obj=context||dojo.global, parts=name.split("."), prop=parts.pop(); + for(var i=0, p; obj&&(p=parts[i]); i++){ + obj = (p in obj ? obj[p] : (create ? obj[p]={} : undefined)); + } + return { obj: obj, prop: prop }; + }, + + getProp: function(name, create, context){ + with(dojox.grid.getRef(name, create, context)){ + return (obj)&&(prop)&&(prop in obj ? obj[prop] : (create ? obj[prop]={} : undefined)); + } + }, + + indexInParent: function(inNode){ + var i=0, n, p=inNode.parentNode; + while((n = p.childNodes[i++])){ + if(n == inNode){ + return i - 1; + } + } + return -1; + }, + + cleanNode: function(inNode){ + if(!inNode){ + return; + } + var filter = function(inW){ + return inW.domNode && dojo.isDescendant(inW.domNode, inNode, true); + } + var ws = dijit.registry.filter(filter); + for(var i=0, w; (w=ws[i]); i++){ + w.destroy(); + } + delete ws; + }, + + getTagName: function(inNodeOrId){ + var node = dojo.byId(inNodeOrId); + return (node && node.tagName ? node.tagName.toLowerCase() : ''); + }, + + nodeKids: function(inNode, inTag){ + var result = []; + var i=0, n; + while((n = inNode.childNodes[i++])){ + if(dojox.grid.getTagName(n) == inTag){ + result.push(n); + } + } + return result; + }, + + divkids: function(inNode){ + return dojox.grid.nodeKids(inNode, 'div'); + }, + + focusSelectNode: function(inNode){ + try{ + dojox.grid.fire(inNode, "focus"); + dojox.grid.fire(inNode, "select"); + }catch(e){// IE sux bad + } + }, + + whenIdle: function(/*inContext, inMethod, args ...*/){ + setTimeout(dojo.hitch.apply(dojo, arguments), 0); + }, + + arrayCompare: function(inA, inB){ + for(var i=0,l=inA.length; i<l; i++){ + if(inA[i] != inB[i]){return false;} + } + return (inA.length == inB.length); + }, + + arrayInsert: function(inArray, inIndex, inValue){ + if(inArray.length <= inIndex){ + inArray[inIndex] = inValue; + }else{ + inArray.splice(inIndex, 0, inValue); + } + }, + + arrayRemove: function(inArray, inIndex){ + inArray.splice(inIndex, 1); + }, + + arraySwap: function(inArray, inI, inJ){ + var cache = inArray[inI]; + inArray[inI] = inArray[inJ]; + inArray[inJ] = cache; + }, + + initTextSizePoll: function(inInterval) { + var f = document.createElement("div"); + with (f.style) { + top = "0px"; + left = "0px"; + position = "absolute"; + visibility = "hidden"; + } + f.innerHTML = "TheQuickBrownFoxJumpedOverTheLazyDog"; + document.body.appendChild(f); + var fw = f.offsetWidth; + var job = function() { + if (f.offsetWidth != fw) { + fw = f.offsetWidth; + dojox.grid.textSizeChanged(); + } + } + window.setInterval(job, inInterval||200); + dojox.grid.initTextSizePoll = dojox.grid.nop; + }, + + textSizeChanged: function() { + + } +}); + +dojox.grid.jobs = { + + cancel: function(inHandle){ + if(inHandle){ + window.clearTimeout(inHandle); + } + }, + + jobs: [], + + job: function(inName, inDelay, inJob){ + dojox.grid.jobs.cancelJob(inName); + var job = function(){ + delete dojox.grid.jobs.jobs[inName]; + inJob(); + } + dojox.grid.jobs.jobs[inName] = setTimeout(job, inDelay); + }, + + cancelJob: function(inName){ + dojox.grid.jobs.cancel(dojox.grid.jobs.jobs[inName]); + } + +} + +} |