Upgrade to ExtJS 4.0.0 - Released 04/26/2011
[extjs.git] / examples / view / multisort / SortButton.js
diff --git a/examples/view/multisort/SortButton.js b/examples/view/multisort/SortButton.js
new file mode 100644 (file)
index 0000000..097695b
--- /dev/null
@@ -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