Upgrade to ExtJS 4.0.7 - Released 10/19/2011
[extjs.git] / src / menu / ColorPicker.js
index 8afdef8..41699a7 100644 (file)
@@ -1,39 +1,51 @@
+/*
+
+This file is part of Ext JS 4
+
+Copyright (c) 2011 Sencha Inc
+
+Contact:  http://www.sencha.com/contact
+
+GNU General Public License Usage
+This file may be used under the terms of the GNU General Public License version 3.0 as published by the Free Software Foundation and appearing in the file LICENSE included in the packaging of this file.  Please review the following information to ensure the GNU General Public License version 3.0 requirements will be met: http://www.gnu.org/copyleft/gpl.html.
+
+If you are unsure which license is appropriate for your use, please contact the sales department at http://www.sencha.com/contact.
+
+*/
 /**
- * @class Ext.menu.ColorPicker
- * @extends Ext.menu.Menu
- * <p>A menu containing a {@link Ext.picker.Color} Component.</p>
- * <p>Notes:</p><div class="mdetail-params"><ul>
- * <li>Although not listed here, the <b>constructor</b> for this class
- * accepts all of the configuration options of <b>{@link Ext.picker.Color}</b>.</li>
- * <li>If subclassing ColorMenu, any configuration options for the ColorPicker must be
- * applied to the <tt><b>initialConfig</b></tt> property of the ColorMenu.
- * Applying {@link Ext.picker.Color ColorPicker} configuration settings to
- * <b><tt>this</tt></b> will <b>not</b> affect the ColorPicker's configuration.</li>
- * </ul></div>
- * {@img Ext.menu.ColorPicker/Ext.menu.ColorPicker.png Ext.menu.ColorPicker component}
- * __Example Usage__
-     var colorPicker = Ext.create('Ext.menu.ColorPicker', {
-        value: '000000'
-    });
-
-    Ext.create('Ext.menu.Menu', {
-               width: 100,
-               height: 90,
-               floating: false,  // usually you want this set to True (default)
-               renderTo: Ext.getBody(),  // usually rendered by it's containing component
-               items: [{
-                   text: 'choose a color',
-                   menu: colorPicker
-               },{
-            iconCls: 'add16',
-                   text: 'icon item'
-               },{
-                   text: 'regular item'
-               }]
-       });
-
- * @xtype colormenu
- * @author Nicolas Ferrero
+ * A menu containing a Ext.picker.Color Component.
+ *
+ * Notes:
+ *
+ *   - Although not listed here, the **constructor** for this class accepts all of the
+ *     configuration options of {@link Ext.picker.Color}.
+ *   - If subclassing ColorMenu, any configuration options for the ColorPicker must be
+ *     applied to the **initialConfig** property of the ColorMenu. Applying
+ *     {@link Ext.picker.Color ColorPicker} configuration settings to `this` will **not**
+ *     affect the ColorPicker's configuration.
+ *
+ * Example:
+ *
+ *     @example
+ *     var colorPicker = Ext.create('Ext.menu.ColorPicker', {
+ *         value: '000000'
+ *     });
+ *
+ *     Ext.create('Ext.menu.Menu', {
+ *         width: 100,
+ *         height: 90,
+ *         floating: false,  // usually you want this set to True (default)
+ *         renderTo: Ext.getBody(),  // usually rendered by it's containing component
+ *         items: [{
+ *             text: 'choose a color',
+ *             menu: colorPicker
+ *         },{
+ *             iconCls: 'add16',
+ *             text: 'icon item'
+ *         },{
+ *             text: 'regular item'
+ *         }]
+ *     });
  */
  Ext.define('Ext.menu.ColorPicker', {
      extend: 'Ext.menu.Menu',
 
     /**
      * @cfg {Boolean} hideOnClick
-     * False to continue showing the menu after a date is selected, defaults to true.
+     * False to continue showing the menu after a date is selected.
      */
     hideOnClick : true,
 
     /**
      * @cfg {String} pickerId
-     * An id to assign to the underlying color picker. Defaults to <tt>null</tt>.
+     * An id to assign to the underlying color picker.
      */
     pickerId : null,
 
@@ -62,9 +74,8 @@
      */
 
     /**
+     * @property {Ext.picker.Color} picker
      * The {@link Ext.picker.Color} instance for this ColorMenu
-     * @property picker
-     * @type ColorPicker
      */
 
     /**
      */
 
     initComponent : function(){
-        var me = this;
+        var me = this,
+            cfg = Ext.apply({}, me.initialConfig);
 
+        // Ensure we don't get duplicate listeners
+        delete cfg.listeners;
         Ext.apply(me, {
             plain: true,
             showSeparator: false,
                 cls: Ext.baseCSSPrefix + 'menu-color-item',
                 id: me.pickerId,
                 xtype: 'colorpicker'
-            }, me.initialConfig)
+            }, cfg)
         });
 
         me.callParent(arguments);
 
         /**
          * @event select
-         * Fires when a date is selected from the {@link #picker Ext.picker.Color}
-         * @param {Ext.picker.Color} picker The {@link #picker Ext.picker.Color}
-         * @param {String} color The 6-digit color hex code (without the # symbol)
+         * @alias Ext.picker.Color#select
          */
         me.relayEvents(me.picker, ['select']);
 
     hidePickerOnSelect: function() {
         Ext.menu.Manager.hideAll();
     }
- });
\ No newline at end of file
+ });