source:
trunk/workshop-routing-foss4g/web/ext/src/widgets/grid/AbstractSelectionModel.js
@
80
Revision 76, 2.6 KB checked in by djay, 13 years ago (diff) | |
---|---|
|
Line | |
---|---|
1 | /*! |
2 | * Ext JS Library 3.4.0 |
3 | * Copyright(c) 2006-2011 Sencha Inc. |
4 | * licensing@sencha.com |
5 | * http://www.sencha.com/license |
6 | */ |
7 | /** |
8 | * @class Ext.grid.AbstractSelectionModel |
9 | * @extends Ext.util.Observable |
10 | * Abstract base class for grid SelectionModels. It provides the interface that should be |
11 | * implemented by descendant classes. This class should not be directly instantiated. |
12 | * @constructor |
13 | */ |
14 | Ext.grid.AbstractSelectionModel = Ext.extend(Ext.util.Observable, { |
15 | /** |
16 | * The GridPanel for which this SelectionModel is handling selection. Read-only. |
17 | * @type Object |
18 | * @property grid |
19 | */ |
20 | |
21 | constructor : function(){ |
22 | this.locked = false; |
23 | Ext.grid.AbstractSelectionModel.superclass.constructor.call(this); |
24 | }, |
25 | |
26 | /** @ignore Called by the grid automatically. Do not call directly. */ |
27 | init : function(grid){ |
28 | this.grid = grid; |
29 | if(this.lockOnInit){ |
30 | delete this.lockOnInit; |
31 | this.locked = false; |
32 | this.lock(); |
33 | } |
34 | this.initEvents(); |
35 | }, |
36 | |
37 | /** |
38 | * Locks the selections. |
39 | */ |
40 | lock : function(){ |
41 | if(!this.locked){ |
42 | this.locked = true; |
43 | // If the grid has been set, then the view is already initialized. |
44 | var g = this.grid; |
45 | if(g){ |
46 | g.getView().on({ |
47 | scope: this, |
48 | beforerefresh: this.sortUnLock, |
49 | refresh: this.sortLock |
50 | }); |
51 | }else{ |
52 | this.lockOnInit = true; |
53 | } |
54 | } |
55 | }, |
56 | |
57 | // set the lock states before and after a view refresh |
58 | sortLock : function() { |
59 | this.locked = true; |
60 | }, |
61 | |
62 | // set the lock states before and after a view refresh |
63 | sortUnLock : function() { |
64 | this.locked = false; |
65 | }, |
66 | |
67 | /** |
68 | * Unlocks the selections. |
69 | */ |
70 | unlock : function(){ |
71 | if(this.locked){ |
72 | this.locked = false; |
73 | var g = this.grid, |
74 | gv; |
75 | |
76 | // If the grid has been set, then the view is already initialized. |
77 | if(g){ |
78 | gv = g.getView(); |
79 | gv.un('beforerefresh', this.sortUnLock, this); |
80 | gv.un('refresh', this.sortLock, this); |
81 | }else{ |
82 | delete this.lockOnInit; |
83 | } |
84 | } |
85 | }, |
86 | |
87 | /** |
88 | * Returns true if the selections are locked. |
89 | * @return {Boolean} |
90 | */ |
91 | isLocked : function(){ |
92 | return this.locked; |
93 | }, |
94 | |
95 | destroy: function(){ |
96 | this.unlock(); |
97 | this.purgeListeners(); |
98 | } |
99 | }); |
Note: See TracBrowser
for help on using the repository browser.