Upgrade to ExtJS 3.1.1 - Released 02/08/2010
[extjs.git] / docs / source / CheckItem.html
index f05be33..7cdb390 100644 (file)
@@ -1,5 +1,6 @@
 <html>\r
 <head>\r
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    \r
   <title>The source code</title>\r
     <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />\r
     <script type="text/javascript" src="../resources/prettify/prettify.js"></script>\r
  * @param {Object} config Configuration options
  * @xtype menucheckitem
  */
-Ext.menu.CheckItem = function(config){
-    Ext.menu.CheckItem.superclass.constructor.call(this, config);
-    this.addEvents(
-        <div id="event-Ext.menu.CheckItem-beforecheckchange"></div>/**
-         * @event beforecheckchange
-         * Fires before the checked value is set, providing an opportunity to cancel if needed
-         * @param {Ext.menu.CheckItem} this
-         * @param {Boolean} checked The new checked value that will be set
-         */
-        "beforecheckchange" ,
-        <div id="event-Ext.menu.CheckItem-checkchange"></div>/**
-         * @event checkchange
-         * Fires after the checked value has been set
-         * @param {Ext.menu.CheckItem} this
-         * @param {Boolean} checked The checked value that was set
-         */
-        "checkchange"
-    );
-    <div id="method-Ext.menu.CheckItem-checkHandler"></div>/**
-     * A function that handles the checkchange event.  The function is undefined by default, but if an implementation
-     * is provided, it will be called automatically when the checkchange event fires.
-     * @param {Ext.menu.CheckItem} this
-     * @param {Boolean} checked The checked value that was set
-     * @method checkHandler
-     */
-    if(this.checkHandler){
-        this.on('checkchange', this.checkHandler, this.scope);
-    }
-    Ext.menu.MenuMgr.registerCheckable(this);
-};
-Ext.extend(Ext.menu.CheckItem, Ext.menu.Item, {
+Ext.menu.CheckItem = Ext.extend(Ext.menu.Item, {
     <div id="cfg-Ext.menu.CheckItem-group"></div>/**
      * @cfg {String} group
      * All check items with the same group name will automatically be grouped into a single-select
@@ -68,6 +39,37 @@ Ext.extend(Ext.menu.CheckItem, Ext.menu.Item, {
 
     // private
     ctype: "Ext.menu.CheckItem",
+    
+    initComponent : function(){
+        Ext.menu.CheckItem.superclass.initComponent.call(this);
+           this.addEvents(
+               <div id="event-Ext.menu.CheckItem-beforecheckchange"></div>/**
+                * @event beforecheckchange
+                * Fires before the checked value is set, providing an opportunity to cancel if needed
+                * @param {Ext.menu.CheckItem} this
+                * @param {Boolean} checked The new checked value that will be set
+                */
+               "beforecheckchange" ,
+               <div id="event-Ext.menu.CheckItem-checkchange"></div>/**
+                * @event checkchange
+                * Fires after the checked value has been set
+                * @param {Ext.menu.CheckItem} this
+                * @param {Boolean} checked The checked value that was set
+                */
+               "checkchange"
+           );
+           <div id="method-Ext.menu.CheckItem-checkHandler"></div>/**
+            * A function that handles the checkchange event.  The function is undefined by default, but if an implementation
+            * is provided, it will be called automatically when the checkchange event fires.
+            * @param {Ext.menu.CheckItem} this
+            * @param {Boolean} checked The checked value that was set
+            * @method checkHandler
+            */
+           if(this.checkHandler){
+               this.on('checkchange', this.checkHandler, this.scope);
+           }
+           Ext.menu.MenuMgr.registerCheckable(this);
+    },
 
     // private
     onRender : function(c){
@@ -93,12 +95,13 @@ Ext.extend(Ext.menu.CheckItem, Ext.menu.Item, {
      * @param {Boolean} suppressEvent (optional) True to prevent the checkchange event from firing (defaults to false)
      */
     setChecked : function(state, suppressEvent){
-        if(this.checked != state && this.fireEvent("beforecheckchange", this, state) !== false){
+        var suppress = suppressEvent === true;
+        if(this.checked != state && (suppress || this.fireEvent("beforecheckchange", this, state) !== false)){
             if(this.container){
                 this.container[state ? "addClass" : "removeClass"]("x-menu-item-checked");
             }
             this.checked = state;
-            if(suppressEvent !== true){
+            if(!suppress){
                 this.fireEvent("checkchange", this, state);
             }
         }