📄 _grid.js
字号:
/* Copyright (c) 2004-2008, 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("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.require("dijit.Menu");dojo.requireLocalization("dijit","loading",null,"zh,ca,pt,da,tr,ru,ROOT,de,sv,ja,he,fi,nb,el,ar,pt-pt,cs,fr,es,ko,nl,zh-tw,pl,th,it,hu,sk,sl");(function(){var _1={cancel:function(_2){if(_2){clearTimeout(_2);}},jobs:[],job:function(_3,_4,_5){_1.cancelJob(_3);var _6=function(){delete _1.jobs[_3];_5();};_1.jobs[_3]=setTimeout(_6,_4);},cancelJob:function(_7){_1.cancel(_1.jobs[_7]);}};dojo.declare("dojox.grid._Grid",[dijit._Widget,dijit._Templated,dojox.grid._Events],{templateString:"<div class=\"dojoxGrid\" hidefocus=\"hidefocus\" role=\"wairole:grid\" dojoAttachEvent=\"onmouseout:_mouseOut\">\n\t<div class=\"dojoxGridMasterHeader\" dojoAttachPoint=\"viewsHeaderNode\" tabindex=\"-1\"></div>\n\t<div class=\"dojoxGridMasterView\" dojoAttachPoint=\"viewsNode\"></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(_8){},rowCount:5,keepRows:75,rowsPerPage:25,autoWidth:false,autoHeight:"",autoRender:true,defaultHeight:"15em",height:"",structure:"",elasticView:-1,singleClickEdit:false,selectionMode:"extended",rowSelector:"",columnReordering:false,headerMenu:null,placeholderLabel:"GridColumns",_click:null,loadingMessage:"<span class='dojoxGridLoading'>${loadingState}</span>",errorMessage:"<span class='dojoxGridError'>${errorState}</span>",noDataMessage:"",sortInfo:0,themeable:true,_placeholders:null,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);this.connect(this,"onShow","renderOnIdle");},postMixInProperties:function(){this.inherited(arguments);var _9=dojo.i18n.getLocalization("dijit","loading",this.lang);this.loadingMessage=dojo.string.substitute(this.loadingMessage,_9);this.errorMessage=dojo.string.substitute(this.errorMessage,_9);if(this.srcNodeRef&&this.srcNodeRef.style.height){this.height=this.srcNodeRef.style.height;}this._setAutoHeightAttr(this.autoHeight,true);},postCreate:function(){this.styleChanged=this._styleChanged;this._placeholders=[];this.setHeaderMenu(this.headerMenu);this.setStructure(this.structure);this._click=[];},destroy:function(){this.domNode.onReveal=null;this.domNode.onSizeChange=null;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,_c){if(typeof ah=="string"){if(!ah||ah=="false"){ah=false;}else{if(ah=="true"){ah=true;}else{ah=window.parseInt(ah,10);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.rowCount);}else{this._autoHeight=false;}}if(this._started&&!_c){this.render();}},styleChanged:function(){this.setStyledClass(this.domNode,"");},_styleChanged:function(){this.styleChanged();this.update();},textSizeChanged:function(){setTimeout(dojo.hitch(this,"_textSizeChanged"),1);},_textSizeChanged:function(){if(this.domNode){this.views.forEach(function(v){v.content.update();});this.render();}},sizeChange:function(){_1.job(this.id+"SizeChange",50,dojo.hitch(this,"update"));},renderOnIdle:function(){setTimeout(dojo.hitch(this,"render"),1);},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._pageIdPrefix=this.id+"-";this.scroller.renderRow=dojo.hitch(this,"renderRow");this.scroller.removeRow=dojo.hitch(this,"rowRemoved");},createLayout:function(){this.layout=new dojox.grid._Layout(this);this.connect(this.layout,"moveColumn","onMoveColumn");},onMoveColumn:function(){this.render();this._resize();},createViews:function(){this.views=new dojox.grid._ViewManager(this);this.views.createView=dojo.hitch(this,"createView");},createView:function(_e,_f){var c=dojo.getObject(_e);var _11=new c({grid:this,index:_f});this.viewsNode.appendChild(_11.domNode);this.viewsHeaderNode.appendChild(_11.headerNode);this.views.addView(_11);return _11;},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());},setStructure:function(_14){var s=_14;if(s&&dojo.isString(s)){s=dojo.getObject(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();},getColumnTogglingItems:function(){return dojo.map(this.layout.cells,function(_16){if(!_16.menuItems){_16.menuItems=[];}var _17=this;var _18=new dijit.CheckedMenuItem({label:_16.name,checked:!_16.hidden,_gridCell:_16,onChange:function(_19){if(_17.layout.setColumnVisibility(this._gridCell.index,_19)){var _1a=this._gridCell.menuItems;if(_1a.length>1){dojo.forEach(_1a,function(_1b){if(_1b!==this){_1b.setAttribute("checked",_19);}},this);}var _19=dojo.filter(_17.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(_19.length==1){dojo.forEach(_19[0].menuItems,"item.attr('disabled', true);");}}},destroy:function(){var _1d=dojo.indexOf(this._gridCell.menuItems,this);this._gridCell.menuItems.splice(_1d,1);delete this._gridCell;dijit.CheckedMenuItem.prototype.destroy.apply(this,arguments);}});_16.menuItems.push(_18);return _18;},this);},setHeaderMenu:function(_1e){if(this._placeholders.length){dojo.forEach(this._placeholders,function(p){p.unReplace(true);});this._placeholders=[];}if(this.headerMenu){this.headerMenu.unBindDomNode(this.viewsHeaderNode);}this.headerMenu=_1e;if(!_1e){return;}this.headerMenu.bindDomNode(this.viewsHeaderNode);if(this.headerMenu.getPlaceholders){this._placeholders=this.headerMenu.getPlaceholders(this.placeholderLabel);}},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(_21){this.setScrollTop(0);},getItem:function(_22){return null;},showMessage:function(_23){if(_23){this.messagesNode.innerHTML=_23;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(_24,_25){var _26={};dojo.mixin(_26,_25||{});dojo.mixin(_26,_24||{});this._sizeBox=_26;this._resize();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(){var pn=this.domNode.parentNode;if(!pn||pn.nodeType!=1||!this.hasLayout()||pn.style.visibility=="hidden"||pn.style.display=="none"){return;}var _2a=this._getPadBorder();if(this._autoHeight){this.domNode.style.height="auto";this.viewsNode.style.height="";}else{if(typeof this.autoHeight=="number"){var h=this._getHeaderHeight();h+=(this.scroller.averageRowHeight*this.autoHeight);this.domNode.style.height=h+"px";}else{if(this.flex>0){}else{if(this.domNode.clientHeight<=_2a.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(this._sizeBox){dojo.contentBox(this.domNode,this._sizeBox);}else{if(this.fitTo=="parent"){var h=dojo._getContentBox(pn).h;dojo.marginBox(this.domNode,{h:Math.max(0,h)});}}var h=dojo._getContentBox(this.domNode).h;if(h==0&&!this._autoHeight){this.viewsHeaderNode.style.display="none";}else{this.viewsHeaderNode.style.display="block";this._getHeaderHeight();}this.adaptWidth();this.adaptHeight();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -