X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/0494b8d9b9bb03ab6c22b34dae81261e3cd7e3e6..7a654f8d43fdb43d78b63d90528bed6e86b608cc:/examples/view/multisort/SortButton.js diff --git a/examples/view/multisort/SortButton.js b/examples/view/multisort/SortButton.js new file mode 100644 index 00000000..097695b8 --- /dev/null +++ b/examples/view/multisort/SortButton.js @@ -0,0 +1,55 @@ +/** + * @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(); + }, + + /** + * Sets the new direction of this button + * @param {String} direction The new direction + */ + applyDirection: function(direction) { + this._direction = direction; + this.setIconCls('direction-' + direction.toLowerCase()); + + this.fireEvent('changeDirection', direction); + + return direction; + }, + + /** + * Toggles between ASC and DESC directions + */ + toggleDirection: function() { + this.setDirection(Ext.String.toggle(this.getDirection(), "ASC", "DESC")); + } +}); \ No newline at end of file