| /* |
| Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved. |
| Available via Academic Free License >= 2.1 OR the modified BSD license. |
| see: http://dojotoolkit.org/license for details |
| */ |
| |
| |
| if(!dojo._hasResource["dojox.grid._Grid"]){ |
| dojo._hasResource["dojox.grid._Grid"]=true; |
| dojo.provide("dojox.grid._Grid"); |
| dojo.require("dijit.dijit"); |
| dojo.require("dijit.Menu"); |
| dojo.require("dojox.html.metrics"); |
| dojo.require("dojox.grid.util"); |
| dojo.require("dojox.grid._Scroller"); |
| dojo.require("dojox.grid._Layout"); |
| dojo.require("dojox.grid._View"); |
| dojo.require("dojox.grid._ViewManager"); |
| dojo.require("dojox.grid._RowManager"); |
| dojo.require("dojox.grid._FocusManager"); |
| dojo.require("dojox.grid._EditManager"); |
| dojo.require("dojox.grid.Selection"); |
| dojo.require("dojox.grid._RowSelector"); |
| dojo.require("dojox.grid._Events"); |
| dojo.requireLocalization("dijit","loading",null,"ROOT,ar,ca,cs,da,de,el,es,fi,fr,he,hu,it,ja,ko,nb,nl,pl,pt,pt-pt,ru,sk,sl,sv,th,tr,zh,zh-tw"); |
| (function(){ |
| if(!dojo.isCopyKey){ |
| dojo.isCopyKey=dojo.dnd.getCopyKeyState; |
| } |
| dojo.declare("dojox.grid._Grid",[dijit._Widget,dijit._Templated,dojox.grid._Events],{templateString:"<div class=\"dojoxGrid\" hidefocus=\"hidefocus\" wairole=\"grid\" dojoAttachEvent=\"onmouseout:_mouseOut\">\n\t<div class=\"dojoxGridMasterHeader\" dojoAttachPoint=\"viewsHeaderNode\" wairole=\"presentation\"></div>\n\t<div class=\"dojoxGridMasterView\" dojoAttachPoint=\"viewsNode\" wairole=\"presentation\"></div>\n\t<div class=\"dojoxGridMasterMessages\" style=\"display: none;\" dojoAttachPoint=\"messagesNode\"></div>\n\t<span dojoAttachPoint=\"lastFocusNode\" tabindex=\"0\"></span>\n</div>\n",classTag:"dojoxGrid",get:function(_1){ |
| },rowCount:5,keepRows:75,rowsPerPage:25,autoWidth:false,initialWidth:"",autoHeight:"",rowHeight:0,autoRender:true,defaultHeight:"15em",height:"",structure:null,elasticView:-1,singleClickEdit:false,selectionMode:"extended",rowSelector:"",columnReordering:false,headerMenu:null,placeholderLabel:"GridColumns",selectable:false,_click:null,loadingMessage:"<span class='dojoxGridLoading'>${loadingState}</span>",errorMessage:"<span class='dojoxGridError'>${errorState}</span>",noDataMessage:"",escapeHTMLInData:true,formatterScope:null,editable:false,sortInfo:0,themeable:true,_placeholders:null,_layoutClass:dojox.grid._Layout,buildRendering:function(){ |
| this.inherited(arguments); |
| if(this.get==dojox.grid._Grid.prototype.get){ |
| this.get=null; |
| } |
| if(!this.domNode.getAttribute("tabIndex")){ |
| this.domNode.tabIndex="0"; |
| } |
| this.createScroller(); |
| this.createLayout(); |
| this.createViews(); |
| this.createManagers(); |
| this.createSelection(); |
| this.connect(this.selection,"onSelected","onSelected"); |
| this.connect(this.selection,"onDeselected","onDeselected"); |
| this.connect(this.selection,"onChanged","onSelectionChanged"); |
| dojox.html.metrics.initOnFontResize(); |
| this.connect(dojox.html.metrics,"onFontResize","textSizeChanged"); |
| dojox.grid.util.funnelEvents(this.domNode,this,"doKeyEvent",dojox.grid.util.keyEvents); |
| if(this.selectionMode!="none"){ |
| dojo.attr(this.domNode,"aria-multiselectable",this.selectionMode=="single"?"false":"true"); |
| } |
| },postMixInProperties:function(){ |
| this.inherited(arguments); |
| var _2=dojo.i18n.getLocalization("dijit","loading",this.lang); |
| this.loadingMessage=dojo.string.substitute(this.loadingMessage,_2); |
| this.errorMessage=dojo.string.substitute(this.errorMessage,_2); |
| if(this.srcNodeRef&&this.srcNodeRef.style.height){ |
| this.height=this.srcNodeRef.style.height; |
| } |
| this._setAutoHeightAttr(this.autoHeight,true); |
| this.lastScrollTop=this.scrollTop=0; |
| },postCreate:function(){ |
| this._placeholders=[]; |
| this._setHeaderMenuAttr(this.headerMenu); |
| this._setStructureAttr(this.structure); |
| this._click=[]; |
| this.inherited(arguments); |
| if(this.domNode&&this.autoWidth&&this.initialWidth){ |
| this.domNode.style.width=this.initialWidth; |
| } |
| if(this.domNode&&!this.editable){ |
| dojo.attr(this.domNode,"aria-readonly","true"); |
| } |
| },destroy:function(){ |
| this.domNode.onReveal=null; |
| this.domNode.onSizeChange=null; |
| delete this._click; |
| this.edit.destroy(); |
| delete this.edit; |
| this.views.destroyViews(); |
| if(this.scroller){ |
| this.scroller.destroy(); |
| delete this.scroller; |
| } |
| if(this.focus){ |
| this.focus.destroy(); |
| delete this.focus; |
| } |
| if(this.headerMenu&&this._placeholders.length){ |
| dojo.forEach(this._placeholders,function(p){ |
| p.unReplace(true); |
| }); |
| this.headerMenu.unBindDomNode(this.viewsHeaderNode); |
| } |
| this.inherited(arguments); |
| },_setAutoHeightAttr:function(ah,_3){ |
| if(typeof ah=="string"){ |
| if(!ah||ah=="false"){ |
| ah=false; |
| }else{ |
| if(ah=="true"){ |
| ah=true; |
| }else{ |
| ah=window.parseInt(ah,10); |
| } |
| } |
| } |
| if(typeof ah=="number"){ |
| if(isNaN(ah)){ |
| ah=false; |
| } |
| if(ah<0){ |
| ah=true; |
| }else{ |
| if(ah===0){ |
| ah=false; |
| } |
| } |
| } |
| this.autoHeight=ah; |
| if(typeof ah=="boolean"){ |
| this._autoHeight=ah; |
| }else{ |
| if(typeof ah=="number"){ |
| this._autoHeight=(ah>=this.attr("rowCount")); |
| }else{ |
| this._autoHeight=false; |
| } |
| } |
| if(this._started&&!_3){ |
| this.render(); |
| } |
| },_getRowCountAttr:function(){ |
| return this.updating&&this.invalidated&&this.invalidated.rowCount!=undefined?this.invalidated.rowCount:this.rowCount; |
| },textSizeChanged:function(){ |
| this.render(); |
| },sizeChange:function(){ |
| this.update(); |
| },createManagers:function(){ |
| this.rows=new dojox.grid._RowManager(this); |
| this.focus=new dojox.grid._FocusManager(this); |
| this.edit=new dojox.grid._EditManager(this); |
| },createSelection:function(){ |
| this.selection=new dojox.grid.Selection(this); |
| },createScroller:function(){ |
| this.scroller=new dojox.grid._Scroller(); |
| this.scroller.grid=this; |
| this.scroller.renderRow=dojo.hitch(this,"renderRow"); |
| this.scroller.removeRow=dojo.hitch(this,"rowRemoved"); |
| },createLayout:function(){ |
| this.layout=new this._layoutClass(this); |
| this.connect(this.layout,"moveColumn","onMoveColumn"); |
| },onMoveColumn:function(){ |
| this.render(); |
| },onResizeColumn:function(_4){ |
| },createViews:function(){ |
| this.views=new dojox.grid._ViewManager(this); |
| this.views.createView=dojo.hitch(this,"createView"); |
| },createView:function(_5,_6){ |
| var c=dojo.getObject(_5); |
| var _7=new c({grid:this,index:_6}); |
| this.viewsNode.appendChild(_7.domNode); |
| this.viewsHeaderNode.appendChild(_7.headerNode); |
| this.views.addView(_7); |
| return _7; |
| },buildViews:function(){ |
| for(var i=0,vs;(vs=this.layout.structure[i]);i++){ |
| this.createView(vs.type||dojox._scopeName+".grid._View",i).setStructure(vs); |
| } |
| this.scroller.setContentNodes(this.views.getContentNodes()); |
| },_setStructureAttr:function(_8){ |
| var s=_8; |
| if(s&&dojo.isString(s)){ |
| dojo.deprecated("dojox.grid._Grid.attr('structure', 'objVar')","use dojox.grid._Grid.attr('structure', objVar) instead","2.0"); |
| s=dojo.getObject(s); |
| } |
| this.structure=s; |
| if(!s){ |
| if(this.layout.structure){ |
| s=this.layout.structure; |
| }else{ |
| return; |
| } |
| } |
| this.views.destroyViews(); |
| if(s!==this.layout.structure){ |
| this.layout.setStructure(s); |
| } |
| this._structureChanged(); |
| },setStructure:function(_9){ |
| dojo.deprecated("dojox.grid._Grid.setStructure(obj)","use dojox.grid._Grid.attr('structure', obj) instead.","2.0"); |
| this._setStructureAttr(_9); |
| },getColumnTogglingItems:function(){ |
| return dojo.map(this.layout.cells,function(_a){ |
| if(!_a.menuItems){ |
| _a.menuItems=[]; |
| } |
| var _b=this; |
| var _c=new dijit.CheckedMenuItem({label:_a.name,checked:!_a.hidden,_gridCell:_a,onChange:function(_d){ |
| if(_b.layout.setColumnVisibility(this._gridCell.index,_d)){ |
| var _e=this._gridCell.menuItems; |
| if(_e.length>1){ |
| dojo.forEach(_e,function(_f){ |
| if(_f!==this){ |
| _f.setAttribute("checked",_d); |
| } |
| },this); |
| } |
| _d=dojo.filter(_b.layout.cells,function(c){ |
| if(c.menuItems.length>1){ |
| dojo.forEach(c.menuItems,"item.attr('disabled', false);"); |
| }else{ |
| c.menuItems[0].attr("disabled",false); |
| } |
| return !c.hidden; |
| }); |
| if(_d.length==1){ |
| dojo.forEach(_d[0].menuItems,"item.attr('disabled', true);"); |
| } |
| } |
| },destroy:function(){ |
| var _10=dojo.indexOf(this._gridCell.menuItems,this); |
| this._gridCell.menuItems.splice(_10,1); |
| delete this._gridCell; |
| dijit.CheckedMenuItem.prototype.destroy.apply(this,arguments); |
| }}); |
| _a.menuItems.push(_c); |
| return _c; |
| },this); |
| },_setHeaderMenuAttr:function(_11){ |
| if(this._placeholders&&this._placeholders.length){ |
| dojo.forEach(this._placeholders,function(p){ |
| p.unReplace(true); |
| }); |
| this._placeholders=[]; |
| } |
| if(this.headerMenu){ |
| this.headerMenu.unBindDomNode(this.viewsHeaderNode); |
| } |
| this.headerMenu=_11; |
| if(!_11){ |
| return; |
| } |
| this.headerMenu.bindDomNode(this.viewsHeaderNode); |
| if(this.headerMenu.getPlaceholders){ |
| this._placeholders=this.headerMenu.getPlaceholders(this.placeholderLabel); |
| } |
| },setHeaderMenu:function(_12){ |
| dojo.deprecated("dojox.grid._Grid.setHeaderMenu(obj)","use dojox.grid._Grid.attr('headerMenu', obj) instead.","2.0"); |
| this._setHeaderMenuAttr(_12); |
| },setupHeaderMenu:function(){ |
| if(this._placeholders&&this._placeholders.length){ |
| dojo.forEach(this._placeholders,function(p){ |
| if(p._replaced){ |
| p.unReplace(true); |
| } |
| p.replace(this.getColumnTogglingItems()); |
| },this); |
| } |
| },_fetch:function(_13){ |
| this.setScrollTop(0); |
| },getItem:function(_14){ |
| return null; |
| },showMessage:function(_15){ |
| if(_15){ |
| this.messagesNode.innerHTML=_15; |
| this.messagesNode.style.display=""; |
| }else{ |
| this.messagesNode.innerHTML=""; |
| this.messagesNode.style.display="none"; |
| } |
| },_structureChanged:function(){ |
| this.buildViews(); |
| if(this.autoRender&&this._started){ |
| this.render(); |
| } |
| },hasLayout:function(){ |
| return this.layout.cells.length; |
| },resize:function(_16,_17){ |
| this._pendingChangeSize=_16; |
| this._pendingResultSize=_17; |
| this.sizeChange(); |
| },_getPadBorder:function(){ |
| this._padBorder=this._padBorder||dojo._getPadBorderExtents(this.domNode); |
| return this._padBorder; |
| },_getHeaderHeight:function(){ |
| var vns=this.viewsHeaderNode.style,t=vns.display=="none"?0:this.views.measureHeader(); |
| vns.height=t+"px"; |
| this.views.normalizeHeaderNodeHeight(); |
| return t; |
| },_resize:function(_18,_19){ |
| _18=_18||this._pendingChangeSize; |
| _19=_19||this._pendingResultSize; |
| delete this._pendingChangeSize; |
| delete this._pendingResultSize; |
| if(!this.domNode){ |
| return; |
| } |
| var pn=this.domNode.parentNode; |
| if(!pn||pn.nodeType!=1||!this.hasLayout()||pn.style.visibility=="hidden"||pn.style.display=="none"){ |
| return; |
| } |
| var _1a=this._getPadBorder(); |
| var hh=undefined; |
| var h; |
| if(this._autoHeight){ |
| this.domNode.style.height="auto"; |
| this.viewsNode.style.height=""; |
| }else{ |
| if(typeof this.autoHeight=="number"){ |
| h=hh=this._getHeaderHeight(); |
| h+=(this.scroller.averageRowHeight*this.autoHeight); |
| this.domNode.style.height=h+"px"; |
| }else{ |
| if(this.domNode.clientHeight<=_1a.h){ |
| if(pn==document.body){ |
| this.domNode.style.height=this.defaultHeight; |
| }else{ |
| if(this.height){ |
| this.domNode.style.height=this.height; |
| }else{ |
| this.fitTo="parent"; |
| } |
| } |
| } |
| } |
| } |
| if(_19){ |
| _18=_19; |
| } |
| if(_18){ |
| dojo.marginBox(this.domNode,_18); |
| this.height=this.domNode.style.height; |
| delete this.fitTo; |
| }else{ |
| if(this.fitTo=="parent"){ |
| h=this._parentContentBoxHeight=this._parentContentBoxHeight||dojo._getContentBox(pn).h; |
| this.domNode.style.height=Math.max(0,h)+"px"; |
| } |
| } |
| var _1b=dojo.some(this.views.views,function(v){ |
| return v.flexCells; |
| }); |
| if(!this._autoHeight&&(h||dojo._getContentBox(this.domNode).h)===0){ |
| this.viewsHeaderNode.style.display="none"; |
| }else{ |
| this.viewsHeaderNode.style.display="block"; |
| if(!_1b&&hh===undefined){ |
| hh=this._getHeaderHeight(); |
| } |
| } |
| if(_1b){ |
| hh=undefined; |
| } |
| this.adaptWidth(); |
| this.adaptHeight(hh); |
| this.postresize(); |
| },adaptWidth:function(){ |
| var _1c=(!this.initialWidth&&this.autoWidth); |
| var w=_1c?0:this.domNode.clientWidth||(this.domNode.offsetWidth-this._getPadBorder().w),vw=this.views.arrange(1,w); |
| this.views.onEach("adaptWidth"); |
| if(_1c){ |
| this.domNode.style.width=vw+"px"; |
| } |
| },adaptHeight:function(_1d){ |
| var t=_1d===undefined?this._getHeaderHeight():_1d; |
| var h=(this._autoHeight?-1:Math.max(this.domNode.clientHeight-t,0)||0); |
| this.views.onEach("setSize",[0,h]); |
| this.views.onEach("adaptHeight"); |
| if(!this._autoHeight){ |
| var _1e=0,_1f=0; |
| var _20=dojo.filter(this.views.views,function(v){ |
| var has=v.hasHScrollbar(); |
| if(has){ |
| _1e++; |
| }else{ |
| _1f++; |
| } |
| return (!has); |
| }); |
| if(_1e>0&&_1f>0){ |
| dojo.forEach(_20,function(v){ |
| v.adaptHeight(true); |
| }); |
| } |
| } |
| if(this.autoHeight===true||h!=-1||(typeof this.autoHeight=="number"&&this.autoHeight>=this.attr("rowCount"))){ |
| this.scroller.windowHeight=h; |
| }else{ |
| this.scroller.windowHeight=Math.max(this.domNode.clientHeight-t,0); |
| } |
| },startup:function(){ |
| if(this._started){ |
| return; |
| } |
| this.inherited(arguments); |
| if(this.autoRender){ |
| this.render(); |
| } |
| },render:function(){ |
| if(!this.domNode){ |
| return; |
| } |
| if(!this._started){ |
| return; |
| } |
| if(!this.hasLayout()){ |
| this.scroller.init(0,this.keepRows,this.rowsPerPage); |
| return; |
| } |
| this.update=this.defaultUpdate; |
| this._render(); |
| },_render:function(){ |
| this.scroller.init(this.attr("rowCount"),this.keepRows,this.rowsPerPage); |
| this.prerender(); |
| this.setScrollTop(0); |
| this.postrender(); |
| },prerender:function(){ |
| this.keepRows=this._autoHeight?0:this.keepRows; |
| this.scroller.setKeepInfo(this.keepRows); |
| this.views.render(); |
| this._resize(); |
| },postrender:function(){ |
| this.postresize(); |
| this.focus.initFocusView(); |
| dojo.setSelectable(this.domNode,this.selectable); |
| },postresize:function(){ |
| if(this._autoHeight){ |
| var _21=Math.max(this.views.measureContent())+"px"; |
| this.viewsNode.style.height=_21; |
| } |
| },renderRow:function(_22,_23){ |
| this.views.renderRow(_22,_23,this._skipRowRenormalize); |
| },rowRemoved:function(_24){ |
| this.views.rowRemoved(_24); |
| },invalidated:null,updating:false,beginUpdate:function(){ |
| this.invalidated=[]; |
| this.updating=true; |
| },endUpdate:function(){ |
| this.updating=false; |
| var i=this.invalidated,r; |
| if(i.all){ |
| this.update(); |
| }else{ |
| if(i.rowCount!=undefined){ |
| this.updateRowCount(i.rowCount); |
| }else{ |
| for(r in i){ |
| this.updateRow(Number(r)); |
| } |
| } |
| } |
| this.invalidated=[]; |
| },defaultUpdate:function(){ |
| if(!this.domNode){ |
| return; |
| } |
| if(this.updating){ |
| this.invalidated.all=true; |
| return; |
| } |
| this.lastScrollTop=this.scrollTop; |
| this.prerender(); |
| this.scroller.invalidateNodes(); |
| this.setScrollTop(this.lastScrollTop); |
| this.postrender(); |
| },update:function(){ |
| this.render(); |
| },updateRow:function(_25){ |
| _25=Number(_25); |
| if(this.updating){ |
| this.invalidated[_25]=true; |
| }else{ |
| this.views.updateRow(_25); |
| this.scroller.rowHeightChanged(_25); |
| } |
| },updateRows:function(_26,_27){ |
| _26=Number(_26); |
| _27=Number(_27); |
| var i; |
| if(this.updating){ |
| for(i=0;i<_27;i++){ |
| this.invalidated[i+_26]=true; |
| } |
| }else{ |
| for(i=0;i<_27;i++){ |
| this.views.updateRow(i+_26,this._skipRowRenormalize); |
| } |
| this.scroller.rowHeightChanged(_26); |
| } |
| },updateRowCount:function(_28){ |
| if(this.updating){ |
| this.invalidated.rowCount=_28; |
| }else{ |
| this.rowCount=_28; |
| this._setAutoHeightAttr(this.autoHeight,true); |
| if(this.layout.cells.length){ |
| this.scroller.updateRowCount(_28); |
| } |
| this._resize(); |
| if(this.layout.cells.length){ |
| this.setScrollTop(this.scrollTop); |
| } |
| } |
| },updateRowStyles:function(_29){ |
| this.views.updateRowStyles(_29); |
| },getRowNode:function(_2a){ |
| if(this.focus.focusView&&!(this.focus.focusView instanceof dojox.grid._RowSelector)){ |
| return this.focus.focusView.rowNodes[_2a]; |
| }else{ |
| for(var i=0,_2b;(_2b=this.views.views[i]);i++){ |
| if(!(_2b instanceof dojox.grid._RowSelector)){ |
| return _2b.rowNodes[_2a]; |
| } |
| } |
| } |
| return null; |
| },rowHeightChanged:function(_2c){ |
| this.views.renormalizeRow(_2c); |
| this.scroller.rowHeightChanged(_2c); |
| },fastScroll:true,delayScroll:false,scrollRedrawThreshold:(dojo.isIE?100:50),scrollTo:function(_2d){ |
| if(!this.fastScroll){ |
| this.setScrollTop(_2d); |
| return; |
| } |
| var _2e=Math.abs(this.lastScrollTop-_2d); |
| this.lastScrollTop=_2d; |
| if(_2e>this.scrollRedrawThreshold||this.delayScroll){ |
| this.delayScroll=true; |
| this.scrollTop=_2d; |
| this.views.setScrollTop(_2d); |
| if(this._pendingScroll){ |
| window.clearTimeout(this._pendingScroll); |
| } |
| var _2f=this; |
| this._pendingScroll=window.setTimeout(function(){ |
| delete _2f._pendingScroll; |
| _2f.finishScrollJob(); |
| },200); |
| }else{ |
| this.setScrollTop(_2d); |
| } |
| },finishScrollJob:function(){ |
| this.delayScroll=false; |
| this.setScrollTop(this.scrollTop); |
| },setScrollTop:function(_30){ |
| this.scroller.scroll(this.views.setScrollTop(_30)); |
| },scrollToRow:function(_31){ |
| this.setScrollTop(this.scroller.findScrollTop(_31)+1); |
| },styleRowNode:function(_32,_33){ |
| if(_33){ |
| this.rows.styleRowNode(_32,_33); |
| } |
| },_mouseOut:function(e){ |
| this.rows.setOverRow(-2); |
| },getCell:function(_34){ |
| return this.layout.cells[_34]; |
| },setCellWidth:function(_35,_36){ |
| this.getCell(_35).unitWidth=_36; |
| },getCellName:function(_37){ |
| return "Cell "+_37.index; |
| },canSort:function(_38){ |
| },sort:function(){ |
| },getSortAsc:function(_39){ |
| _39=_39==undefined?this.sortInfo:_39; |
| return Boolean(_39>0); |
| },getSortIndex:function(_3a){ |
| _3a=_3a==undefined?this.sortInfo:_3a; |
| return Math.abs(_3a)-1; |
| },setSortIndex:function(_3b,_3c){ |
| var si=_3b+1; |
| if(_3c!=undefined){ |
| si*=(_3c?1:-1); |
| }else{ |
| if(this.getSortIndex()==_3b){ |
| si=-this.sortInfo; |
| } |
| } |
| this.setSortInfo(si); |
| },setSortInfo:function(_3d){ |
| if(this.canSort(_3d)){ |
| this.sortInfo=_3d; |
| this.sort(); |
| this.update(); |
| } |
| },doKeyEvent:function(e){ |
| e.dispatch="do"+e.type; |
| this.onKeyEvent(e); |
| },_dispatch:function(m,e){ |
| if(m in this){ |
| return this[m](e); |
| } |
| return false; |
| },dispatchKeyEvent:function(e){ |
| this._dispatch(e.dispatch,e); |
| },dispatchContentEvent:function(e){ |
| this.edit.dispatchEvent(e)||e.sourceView.dispatchContentEvent(e)||this._dispatch(e.dispatch,e); |
| },dispatchHeaderEvent:function(e){ |
| e.sourceView.dispatchHeaderEvent(e)||this._dispatch("doheader"+e.type,e); |
| },dokeydown:function(e){ |
| this.onKeyDown(e); |
| },doclick:function(e){ |
| if(e.cellNode){ |
| this.onCellClick(e); |
| }else{ |
| this.onRowClick(e); |
| } |
| },dodblclick:function(e){ |
| if(e.cellNode){ |
| this.onCellDblClick(e); |
| }else{ |
| this.onRowDblClick(e); |
| } |
| },docontextmenu:function(e){ |
| if(e.cellNode){ |
| this.onCellContextMenu(e); |
| }else{ |
| this.onRowContextMenu(e); |
| } |
| },doheaderclick:function(e){ |
| if(e.cellNode){ |
| this.onHeaderCellClick(e); |
| }else{ |
| this.onHeaderClick(e); |
| } |
| },doheaderdblclick:function(e){ |
| if(e.cellNode){ |
| this.onHeaderCellDblClick(e); |
| }else{ |
| this.onHeaderDblClick(e); |
| } |
| },doheadercontextmenu:function(e){ |
| if(e.cellNode){ |
| this.onHeaderCellContextMenu(e); |
| }else{ |
| this.onHeaderContextMenu(e); |
| } |
| },doStartEdit:function(_3e,_3f){ |
| this.onStartEdit(_3e,_3f); |
| },doApplyCellEdit:function(_40,_41,_42){ |
| this.onApplyCellEdit(_40,_41,_42); |
| },doCancelEdit:function(_43){ |
| this.onCancelEdit(_43); |
| },doApplyEdit:function(_44){ |
| this.onApplyEdit(_44); |
| },addRow:function(){ |
| this.updateRowCount(this.attr("rowCount")+1); |
| },removeSelectedRows:function(){ |
| if(this.allItemsSelected){ |
| this.updateRowCount(0); |
| }else{ |
| this.updateRowCount(Math.max(0,this.attr("rowCount")-this.selection.getSelected().length)); |
| } |
| this.selection.clear(); |
| }}); |
| dojox.grid._Grid.markupFactory=function(_45,_46,_47,_48){ |
| var d=dojo; |
| var _49=function(n){ |
| var w=d.attr(n,"width")||"auto"; |
| if((w!="auto")&&(w.slice(-2)!="em")&&(w.slice(-1)!="%")){ |
| w=parseInt(w,10)+"px"; |
| } |
| return w; |
| }; |
| if(!_45.structure&&_46.nodeName.toLowerCase()=="table"){ |
| _45.structure=d.query("> colgroup",_46).map(function(cg){ |
| var sv=d.attr(cg,"span"); |
| var v={noscroll:(d.attr(cg,"noscroll")=="true")?true:false,__span:(!!sv?parseInt(sv,10):1),cells:[]}; |
| if(d.hasAttr(cg,"width")){ |
| v.width=_49(cg); |
| } |
| return v; |
| }); |
| if(!_45.structure.length){ |
| _45.structure.push({__span:Infinity,cells:[]}); |
| } |
| d.query("thead > tr",_46).forEach(function(tr,_4a){ |
| var _4b=0; |
| var _4c=0; |
| var _4d; |
| var _4e=null; |
| d.query("> th",tr).map(function(th){ |
| if(!_4e){ |
| _4d=0; |
| _4e=_45.structure[0]; |
| }else{ |
| if(_4b>=(_4d+_4e.__span)){ |
| _4c++; |
| _4d+=_4e.__span; |
| var _4f=_4e; |
| _4e=_45.structure[_4c]; |
| } |
| } |
| var _50={name:d.trim(d.attr(th,"name")||th.innerHTML),colSpan:parseInt(d.attr(th,"colspan")||1,10),type:d.trim(d.attr(th,"cellType")||""),id:d.trim(d.attr(th,"id")||"")}; |
| _4b+=_50.colSpan; |
| var _51=d.attr(th,"rowspan"); |
| if(_51){ |
| _50.rowSpan=_51; |
| } |
| if(d.hasAttr(th,"width")){ |
| _50.width=_49(th); |
| } |
| if(d.hasAttr(th,"relWidth")){ |
| _50.relWidth=window.parseInt(dojo.attr(th,"relWidth"),10); |
| } |
| if(d.hasAttr(th,"hidden")){ |
| _50.hidden=d.attr(th,"hidden")=="true"; |
| } |
| if(_48){ |
| _48(th,_50); |
| } |
| _50.type=_50.type?dojo.getObject(_50.type):dojox.grid.cells.Cell; |
| if(_50.type&&_50.type.markupFactory){ |
| _50.type.markupFactory(th,_50); |
| } |
| if(!_4e.cells[_4a]){ |
| _4e.cells[_4a]=[]; |
| } |
| _4e.cells[_4a].push(_50); |
| }); |
| }); |
| } |
| return new _47(_45,_46); |
| }; |
| })(); |
| } |