SortButton.js
1.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/**
* @class Ext.multisort.SortButton
* @extends Ext.button.Button
* @author Ed Spencer
*
*
*/
Ext.define('Ext.multisort.SortButton', {
extend: 'Ext.button.Button',
alias : 'widget.sortbutton',
config: {
direction: "ASC",
dataIndex: undefined
},
constructor: function(config) {
this.addEvents(
/**
* @event changeDirection
* Fired whenever the user clicks this button to change its direction
* @param {String} direction The new direction (ASC or DESC)
*/
'changeDirection'
);
this.initConfig(config);
this.callParent(arguments);
},
handler: function() {
this.toggleDirection();
},
/**
* Updates the new direction of this button
* @param {String} direction The new direction
*/
updateDirection: function(direction) {
this.setIconCls('direction-' + direction.toLowerCase());
this.fireEvent('changeDirection', direction);
},
/**
* Toggles between ASC and DESC directions
*/
toggleDirection: function() {
this.setDirection(Ext.String.toggle(this.direction, "ASC", "DESC"));
}
});