--- /dev/null
+/*!
+ * Ext JS Library 3.0.0
+ * Copyright(c) 2006-2009 Ext JS, LLC
+ * licensing@extjs.com
+ * http://www.extjs.com/license
+ */
+/**\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 = function(){\r
+ this.locked = false;\r
+ Ext.grid.AbstractSelectionModel.superclass.constructor.call(this);\r
+};\r
+\r
+Ext.extend(Ext.grid.AbstractSelectionModel, Ext.util.Observable, {\r
+ /**\r
+ * The GridPanel for which this SelectionModel is handling selection. Read-only.\r
+ * @type Object\r
+ * @property grid\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
+ /**\r
+ * Locks the selections.\r
+ */\r
+ lock : function(){\r
+ this.locked = true;\r
+ },\r
+\r
+ /**\r
+ * Unlocks the selections.\r
+ */\r
+ unlock : function(){\r
+ this.locked = false;\r
+ },\r
+\r
+ /**\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
+});
\ No newline at end of file