Upgrade to ExtJS 3.1.0 - Released 12/16/2009
[extjs.git] / src / widgets / form / RadioGroup.js
index 372fd55..d5bf139 100644 (file)
 /*!
- * Ext JS Library 3.0.3
+ * Ext JS Library 3.1.0
  * Copyright(c) 2006-2009 Ext JS, LLC
  * licensing@extjs.com
  * http://www.extjs.com/license
  */
-/**\r
- * @class Ext.form.RadioGroup\r
- * @extends Ext.form.CheckboxGroup\r
- * A grouping container for {@link Ext.form.Radio} controls.\r
- * @constructor\r
- * Creates a new RadioGroup\r
- * @param {Object} config Configuration options\r
- * @xtype radiogroup\r
- */\r
-Ext.form.RadioGroup = Ext.extend(Ext.form.CheckboxGroup, {\r
-    /**\r
-     * @cfg {Boolean} allowBlank True to allow every item in the group to be blank (defaults to true).\r
-     * If allowBlank = false and no items are selected at validation time, {@link @blankText} will\r
-     * be used as the error text.\r
-     */\r
-    allowBlank : true,\r
-    /**\r
-     * @cfg {String} blankText Error text to display if the {@link #allowBlank} validation fails\r
-     * (defaults to 'You must select one item in this group')\r
-     */\r
-    blankText : 'You must select one item in this group',\r
-    \r
-    // private\r
-    defaultType : 'radio',\r
-    \r
-    // private\r
-    groupCls : 'x-form-radio-group',\r
-    \r
-    /**\r
-     * @event change\r
-     * Fires when the state of a child radio changes.\r
-     * @param {Ext.form.RadioGroup} this\r
-     * @param {Ext.form.Radio} checked The checked radio\r
-     */\r
-    \r
-    /**\r
-     * Gets the selected {@link Ext.form.Radio} in the group, if it exists.\r
-     * @return {Ext.form.Radio} The selected radio.\r
-     */\r
-    getValue : function(){\r
-        var out = null;\r
-        this.eachItem(function(item){\r
-            if(item.checked){\r
-                out = item;\r
-                return false;\r
-            }\r
-        });\r
-        return out;\r
-    },\r
-    \r
-    /**\r
-     * Sets the checked radio in the group.\r
-     * @param {String/Ext.form.Radio} id The radio to check.\r
-     * @param {Boolean} value The value to set the radio.\r
-     * @return {Ext.form.RadioGroup} this\r
-     */\r
-    onSetValue : function(id, value){\r
-        if(arguments.length > 1){\r
-            var f = this.getBox(id);\r
-            if(f){\r
-                f.setValue(value);\r
-                if(f.checked){\r
-                    this.eachItem(function(item){\r
-                        if (item !== f){\r
-                            item.setValue(false);\r
-                        }\r
-                    });\r
-                }\r
-            }\r
-        }else{\r
-            this.setValueForItem(id);\r
-        }\r
-    },\r
-    \r
-    setValueForItem : function(val){\r
-        val = String(val).split(',')[0];\r
-        this.eachItem(function(item){\r
-            item.setValue(val == item.inputValue);\r
-        });\r
-    },\r
-    \r
-    // private\r
-    fireChecked : function(){\r
-        if(!this.checkTask){\r
-            this.checkTask = new Ext.util.DelayedTask(this.bufferChecked, this);\r
-        }\r
-        this.checkTask.delay(10);\r
-    },\r
-    \r
-    // private\r
-    bufferChecked : function(){\r
-        var out = null;\r
-        this.eachItem(function(item){\r
-            if(item.checked){\r
-                out = item;\r
-                return false;\r
-            }\r
-        });\r
-        this.fireEvent('change', this, out);\r
-    },\r
-    \r
-    onDestroy : function(){\r
-        if(this.checkTask){\r
-            this.checkTask.cancel();\r
-            this.checkTask = null;\r
-        }\r
-        Ext.form.RadioGroup.superclass.onDestroy.call(this);\r
-    }\r
-\r
-});\r
-\r
-Ext.reg('radiogroup', Ext.form.RadioGroup);\r
+/**
+ * @class Ext.form.RadioGroup
+ * @extends Ext.form.CheckboxGroup
+ * A grouping container for {@link Ext.form.Radio} controls.
+ * @constructor
+ * Creates a new RadioGroup
+ * @param {Object} config Configuration options
+ * @xtype radiogroup
+ */
+Ext.form.RadioGroup = Ext.extend(Ext.form.CheckboxGroup, {
+    /**
+     * @cfg {Array} items An Array of {@link Ext.form.Radio Radio}s or Radio config objects
+     * to arrange in the group.
+     */
+    /**
+     * @cfg {Boolean} allowBlank True to allow every item in the group to be blank (defaults to true).
+     * If allowBlank = false and no items are selected at validation time, {@link @blankText} will
+     * be used as the error text.
+     */
+    allowBlank : true,
+    /**
+     * @cfg {String} blankText Error text to display if the {@link #allowBlank} validation fails
+     * (defaults to 'You must select one item in this group')
+     */
+    blankText : 'You must select one item in this group',
+    
+    // private
+    defaultType : 'radio',
+    
+    // private
+    groupCls : 'x-form-radio-group',
+    
+    /**
+     * @event change
+     * Fires when the state of a child radio changes.
+     * @param {Ext.form.RadioGroup} this
+     * @param {Ext.form.Radio} checked The checked radio
+     */
+    
+    /**
+     * Gets the selected {@link Ext.form.Radio} in the group, if it exists.
+     * @return {Ext.form.Radio} The selected radio.
+     */
+    getValue : function(){
+        var out = null;
+        this.eachItem(function(item){
+            if(item.checked){
+                out = item;
+                return false;
+            }
+        });
+        return out;
+    },
+    
+    /**
+     * Sets the checked radio in the group.
+     * @param {String/Ext.form.Radio} id The radio to check.
+     * @param {Boolean} value The value to set the radio.
+     * @return {Ext.form.RadioGroup} this
+     */
+    onSetValue : function(id, value){
+        if(arguments.length > 1){
+            var f = this.getBox(id);
+            if(f){
+                f.setValue(value);
+                if(f.checked){
+                    this.eachItem(function(item){
+                        if (item !== f){
+                            item.setValue(false);
+                        }
+                    });
+                }
+            }
+        }else{
+            this.setValueForItem(id);
+        }
+    },
+    
+    setValueForItem : function(val){
+        val = String(val).split(',')[0];
+        this.eachItem(function(item){
+            item.setValue(val == item.inputValue);
+        });
+    },
+    
+    // private
+    fireChecked : function(){
+        if(!this.checkTask){
+            this.checkTask = new Ext.util.DelayedTask(this.bufferChecked, this);
+        }
+        this.checkTask.delay(10);
+    },
+    
+    // private
+    bufferChecked : function(){
+        var out = null;
+        this.eachItem(function(item){
+            if(item.checked){
+                out = item;
+                return false;
+            }
+        });
+        this.fireEvent('change', this, out);
+    },
+    
+    onDestroy : function(){
+        if(this.checkTask){
+            this.checkTask.cancel();
+            this.checkTask = null;
+        }
+        Ext.form.RadioGroup.superclass.onDestroy.call(this);
+    }
+
+});
+
+Ext.reg('radiogroup', Ext.form.RadioGroup);