-<html>\r
-<head>\r
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> \r
- <title>The source code</title>\r
- <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />\r
- <script type="text/javascript" src="../resources/prettify/prettify.js"></script>\r
-</head>\r
-<body onload="prettyPrint();">\r
- <pre class="prettyprint lang-js"><div id="cls-Ext.grid.AbstractSelectionModel"></div>/**\r
- * @class Ext.grid.AbstractSelectionModel\r
- * @extends Ext.util.Observable\r
- * Abstract base class for grid SelectionModels. It provides the interface that should be\r
- * implemented by descendant classes. This class should not be directly instantiated.\r
- * @constructor\r
- */\r
-Ext.grid.AbstractSelectionModel = Ext.extend(Ext.util.Observable, {\r
- <div id="prop-Ext.grid.AbstractSelectionModel-grid"></div>/**\r
- * The GridPanel for which this SelectionModel is handling selection. Read-only.\r
- * @type Object\r
- * @property grid\r
- */\r
- \r
- constructor : function(){\r
- this.locked = false;\r
- Ext.grid.AbstractSelectionModel.superclass.constructor.call(this);\r
- },\r
-\r
- /** @ignore Called by the grid automatically. Do not call directly. */\r
- init : function(grid){\r
- this.grid = grid;\r
- this.initEvents();\r
- },\r
-\r
- <div id="method-Ext.grid.AbstractSelectionModel-lock"></div>/**\r
- * Locks the selections.\r
- */\r
- lock : function(){\r
- this.locked = true;\r
- },\r
-\r
- <div id="method-Ext.grid.AbstractSelectionModel-unlock"></div>/**\r
- * Unlocks the selections.\r
- */\r
- unlock : function(){\r
- this.locked = false;\r
- },\r
-\r
- <div id="method-Ext.grid.AbstractSelectionModel-isLocked"></div>/**\r
- * Returns true if the selections are locked.\r
- * @return {Boolean}\r
- */\r
- isLocked : function(){\r
- return this.locked;\r
- },\r
- \r
- destroy: function(){\r
- this.purgeListeners();\r
- }\r
-});</pre> \r
-</body>\r
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <title>The source code</title>
+ <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
+ <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
+</head>
+<body onload="prettyPrint();">
+ <pre class="prettyprint lang-js">/*!
+ * Ext JS Library 3.3.1
+ * Copyright(c) 2006-2010 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+<div id="cls-Ext.grid.AbstractSelectionModel"></div>/**
+ * @class Ext.grid.AbstractSelectionModel
+ * @extends Ext.util.Observable
+ * Abstract base class for grid SelectionModels. It provides the interface that should be
+ * implemented by descendant classes. This class should not be directly instantiated.
+ * @constructor
+ */
+Ext.grid.AbstractSelectionModel = Ext.extend(Ext.util.Observable, {
+ <div id="prop-Ext.grid.AbstractSelectionModel-grid"></div>/**
+ * The GridPanel for which this SelectionModel is handling selection. Read-only.
+ * @type Object
+ * @property grid
+ */
+
+ constructor : function(){
+ this.locked = false;
+ Ext.grid.AbstractSelectionModel.superclass.constructor.call(this);
+ },
+
+ /** @ignore Called by the grid automatically. Do not call directly. */
+ init : function(grid){
+ this.grid = grid;
+ if(this.lockOnInit){
+ delete this.lockOnInit;
+ this.locked = false;
+ this.lock();
+ }
+ this.initEvents();
+ },
+
+ <div id="method-Ext.grid.AbstractSelectionModel-lock"></div>/**
+ * Locks the selections.
+ */
+ lock : function(){
+ if(!this.locked){
+ this.locked = true;
+ // If the grid has been set, then the view is already initialized.
+ var g = this.grid;
+ if(g){
+ g.getView().on({
+ scope: this,
+ beforerefresh: this.sortUnLock,
+ refresh: this.sortLock
+ });
+ }else{
+ this.lockOnInit = true;
+ }
+ }
+ },
+
+ // set the lock states before and after a view refresh
+ sortLock : function() {
+ this.locked = true;
+ },
+
+ // set the lock states before and after a view refresh
+ sortUnLock : function() {
+ this.locked = false;
+ },
+
+ <div id="method-Ext.grid.AbstractSelectionModel-unlock"></div>/**
+ * Unlocks the selections.
+ */
+ unlock : function(){
+ if(this.locked){
+ this.locked = false;
+ var g = this.grid,
+ gv;
+
+ // If the grid has been set, then the view is already initialized.
+ if(g){
+ gv = g.getView();
+ gv.un('beforerefresh', this.sortUnLock, this);
+ gv.un('refresh', this.sortLock, this);
+ }else{
+ delete this.lockOnInit;
+ }
+ }
+ },
+
+ <div id="method-Ext.grid.AbstractSelectionModel-isLocked"></div>/**
+ * Returns true if the selections are locked.
+ * @return {Boolean}
+ */
+ isLocked : function(){
+ return this.locked;
+ },
+
+ destroy: function(){
+ this.unlock();
+ this.purgeListeners();
+ }
+});</pre>
+</body>
</html>
\ No newline at end of file