123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244 |
- 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");
- dojo.isNumber = function(v) {
- return (typeof v == 'number') || (v instanceof Number);
- }
- // summary:
- // grid utility library
- dojo.mixin(dojox.grid, {
- na : '...',
- nop : 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]);
- }
- }
- }
|