rowselectionmodel-min.js

来自「php绿色服务器,让大家试用greenamp」· JavaScript 代码 · 共 10 行

JS
10
字号
/*
 * Ext JS Library 1.0.1
 * Copyright(c) 2006-2007, Ext JS, LLC.
 * licensing@extjs.com
 * 
 * http://www.extjs.com/license
 */

Ext.grid.RowSelectionModel=function(_1){Ext.apply(this,_1);this.selections=new Ext.util.MixedCollection(false,function(o){return o.id;});this.last=false;this.lastActive=false;this.addEvents({"selectionchange":true,"beforerowselect":true,"rowselect":true,"rowdeselect":true});this.locked=false;};Ext.extend(Ext.grid.RowSelectionModel,Ext.grid.AbstractSelectionModel,{singleSelect:false,initEvents:function(){if(!this.grid.enableDragDrop&&!this.grid.enableDrag){this.grid.on("mousedown",this.handleMouseDown,this);}this.rowNav=new Ext.KeyNav(this.grid.container,{"up":function(e){if(!e.shiftKey){this.selectPrevious(e.shiftKey);}else{if(this.last!==false&&this.lastActive!==false){var _4=this.last;this.selectRange(this.last,this.lastActive-1);this.grid.getView().focusRow(this.lastActive);if(_4!==false){this.last=_4;}}else{this.selectFirstRow();}}},"down":function(e){if(!e.shiftKey){this.selectNext(e.shiftKey);}else{if(this.last!==false&&this.lastActive!==false){var _6=this.last;this.selectRange(this.last,this.lastActive+1);this.grid.getView().focusRow(this.lastActive);if(_6!==false){this.last=_6;}}else{this.selectFirstRow();}}},scope:this});var _7=this.grid.view;_7.on("refresh",this.onRefresh,this);_7.on("rowupdated",this.onRowUpdated,this);_7.on("rowremoved",this.onRemove,this);},onRefresh:function(){var ds=this.grid.dataSource,i,v=this.grid.view;var s=this.selections;s.each(function(r){if((i=ds.indexOfId(r.id))!=-1){v.onRowSelect(i);}else{s.remove(r);}});},onRemove:function(v,_e,r){this.selections.remove(r);},onRowUpdated:function(v,_11,r){if(this.isSelected(r)){v.onRowSelect(_11);}},selectRecords:function(_13,_14){if(!_14){this.clearSelections();}var ds=this.grid.dataSource;for(var i=0,len=_13.length;i<len;i++){this.selectRow(ds.indexOf(_13[i]),true);}},getCount:function(){return this.selections.length;},selectFirstRow:function(){this.selectRow(0);},selectLastRow:function(_18){this.selectRow(this.grid.dataSource.getCount()-1,_18);},selectNext:function(_19){if(this.last!==false&&(this.last+1)<this.grid.dataSource.getCount()){this.selectRow(this.last+1,_19);this.grid.getView().focusRow(this.last);}},selectPrevious:function(_1a){if(this.last){this.selectRow(this.last-1,_1a);this.grid.getView().focusRow(this.last);}},getSelections:function(){return [].concat(this.selections.items);},getSelected:function(){return this.selections.itemAt(0);},clearSelections:function(_1b){if(this.locked){return;}if(_1b!==true){var ds=this.grid.dataSource;var s=this.selections;s.each(function(r){this.deselectRow(ds.indexOfId(r.id));},this);s.clear();}else{this.selections.clear();}this.last=false;},selectAll:function(){if(this.locked){return;}this.selections.clear();for(var i=0,len=this.grid.dataSource.getCount();i<len;i++){this.selectRow(i,true);}},hasSelection:function(){return this.selections.length>0;},isSelected:function(_21){var r=typeof _21=="number"?this.grid.dataSource.getAt(_21):_21;return (r&&this.selections.key(r.id)?true:false);},isIdSelected:function(id){return (this.selections.key(id)?true:false);},handleMouseDown:function(e,t){var _26=this.grid.getView(),_27;if(this.isLocked()||(_27=_26.findRowIndex(t))===false){return;}if(e.shiftKey&&this.last!==false){var _28=this.last;this.selectRange(_28,_27,e.ctrlKey);this.last=_28;_26.focusRow(_27);}else{var _29=this.isSelected(_27);if(e.button!=0&&_29){_26.focusRow(_27);}else{if(e.ctrlKey&&_29){this.deselectRow(_27);}else{this.selectRow(_27,e.button==0&&(e.ctrlKey||e.shiftKey));_26.focusRow(_27);}}}},selectRows:function(_2a,_2b){if(!_2b){this.clearSelections();}for(var i=0,len=_2a.length;i<len;i++){this.selectRow(_2a[i],true);}},selectRange:function(_2e,_2f,_30){if(this.locked){return;}if(!_30){this.clearSelections();}if(_2e<=_2f){for(var i=_2e;i<=_2f;i++){this.selectRow(i,true);}}else{for(var i=_2e;i>=_2f;i--){this.selectRow(i,true);}}},deselectRange:function(_32,_33,_34){if(this.locked){return;}for(var i=_32;i<=_33;i++){this.deselectRow(i,_34);}},selectRow:function(_36,_37,_38){if(this.locked||(_36<0||_36>=this.grid.dataSource.getCount())){return;}if(this.fireEvent("beforerowselect",this,_36,_37)!==false){if(!_37||this.singleSelect){this.clearSelections();}var r=this.grid.dataSource.getAt(_36);this.selections.add(r);this.last=this.lastActive=_36;if(!_38){this.grid.getView().onRowSelect(_36);}this.fireEvent("rowselect",this,_36,r);this.fireEvent("selectionchange",this);}},deselectRow:function(_3a,_3b){if(this.locked){return;}if(this.last==_3a){this.last=false;}if(this.lastActive==_3a){this.lastActive=false;}var r=this.grid.dataSource.getAt(_3a);this.selections.remove(r);if(!_3b){this.grid.getView().onRowDeselect(_3a);}this.fireEvent("rowdeselect",this,_3a);this.fireEvent("selectionchange",this);},restoreLast:function(){if(this._last){this.last=this._last;}},acceptsNav:function(row,col,cm){return !cm.isHidden(col)&&cm.isCellEditable(col,row);},onEditorKey:function(_40,e){var k=e.getKey(),_43,g=this.grid,ed=g.activeEditor;if(k==e.TAB){ed.completeEdit();if(e.shiftKey){_43=g.walkCells(ed.row,ed.col-1,-1,this.acceptsNav,this);}else{_43=g.walkCells(ed.row,ed.col+1,1,this.acceptsNav,this);}e.stopEvent();}else{if(k==e.ENTER&&!e.ctrlKey){ed.completeEdit();if(e.shiftKey){_43=g.walkCells(ed.row-1,ed.col,-1,this.acceptsNav,this);}else{_43=g.walkCells(ed.row+1,ed.col,1,this.acceptsNav,this);}e.stopEvent();}else{if(k==e.ESC){ed.cancelEdit();}}}if(_43){g.startEditing(_43[0],_43[1]);}}});

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?