-<!DOCTYPE html><html><head><title>Sencha Documentation Project</title><link rel="stylesheet" href="../reset.css" type="text/css"><link rel="stylesheet" href="../prettify.css" type="text/css"><link rel="stylesheet" href="../prettify_sa.css" type="text/css"><script type="text/javascript" src="../prettify.js"></script></head><body onload="prettyPrint()"><pre class="prettyprint"><pre><span id='Ext-picker.Color-method-constructor'><span id='Ext-picker.Color'>/**
-</span></span> * @class Ext.picker.Color
- * @extends Ext.Component
- * <p>ColorPicker provides a simple color palette for choosing colors. The picker can be rendered to any container.
- * The available default to a standard 40-color palette; this can be customized with the {@link #colors} config.</p>
- * <p>Typically you will need to implement a handler function to be notified when the user chooses a color from the
- * picker; you can register the handler using the {@link #select} event, or by implementing the {@link #handler}
- * method.</p>
- * <p>Here's an example of typical usage:</p>
- * <pre><code>var cp = new Ext.picker.Color({
- value: '993300', // initial selected color
- renderTo: 'my-div'
-});
-
-cp.on('select', function(picker, selColor){
- // do something with selColor
-});
-</code></pre>
- * {@img Ext.picker.Color/Ext.picker.Color.png Ext.picker.Color component}
+<!DOCTYPE html>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <title>The source code</title>
+ <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
+ <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
+ <style type="text/css">
+ .highlight { display: block; background-color: #ddd; }
+ </style>
+ <script type="text/javascript">
+ function highlight() {
+ document.getElementById(location.hash.replace(/#/, "")).className = "highlight";
+ }
+ </script>
+</head>
+<body onload="prettyPrint(); highlight();">
+ <pre class="prettyprint lang-js"><span id='Ext-picker-Color'>/**
+</span> * Color picker provides a simple color palette for choosing colors. The picker can be rendered to any container. The
+ * available default to a standard 40-color palette; this can be customized with the {@link #colors} config.
*
- * @constructor
- * Create a new ColorPicker
- * @param {Object} config The config object
- *
- * @xtype colorpicker
+ * Typically you will need to implement a handler function to be notified when the user chooses a color from the picker;
+ * you can register the handler using the {@link #select} event, or by implementing the {@link #handler} method.
+ *
+ * @example
+ * Ext.create('Ext.picker.Color', {
+ * value: '993300', // initial selected color
+ * renderTo: Ext.getBody(),
+ * listeners: {
+ * select: function(picker, selColor) {
+ * alert(selColor);
+ * }
+ * }
+ * });
*/
Ext.define('Ext.picker.Color', {
extend: 'Ext.Component',
requires: 'Ext.XTemplate',
alias: 'widget.colorpicker',
alternateClassName: 'Ext.ColorPalette',
-
-<span id='Ext-picker.Color-cfg-componentCls'> /**
-</span> * @cfg {String} componentCls
- * The CSS class to apply to the containing element (defaults to 'x-color-picker')
+
+<span id='Ext-picker-Color-cfg-componentCls'> /**
+</span> * @cfg {String} [componentCls='x-color-picker']
+ * The CSS class to apply to the containing element.
*/
componentCls : Ext.baseCSSPrefix + 'color-picker',
-
-<span id='Ext-picker.Color-cfg-selectedCls'> /**
-</span> * @cfg {String} selectedCls
+
+<span id='Ext-picker-Color-cfg-selectedCls'> /**
+</span> * @cfg {String} [selectedCls='x-color-picker-selected']
* The CSS class to apply to the selected element
*/
selectedCls: Ext.baseCSSPrefix + 'color-picker-selected',
-
-<span id='Ext-picker.Color-cfg-value'> /**
+
+<span id='Ext-picker-Color-cfg-value'> /**
</span> * @cfg {String} value
- * The initial color to highlight (should be a valid 6-digit color hex code without the # symbol). Note that
- * the hex codes are case-sensitive.
+ * The initial color to highlight (should be a valid 6-digit color hex code without the # symbol). Note that the hex
+ * codes are case-sensitive.
*/
value : null,
-
-<span id='Ext-picker.Color-cfg-clickEvent'> /**
+
+<span id='Ext-picker-Color-cfg-clickEvent'> /**
</span> * @cfg {String} clickEvent
* The DOM event that will cause a color to be selected. This can be any valid event name (dblclick, contextmenu).
- * Defaults to <tt>'click'</tt>.
*/
clickEvent :'click',
-<span id='Ext-picker.Color-cfg-allowReselect'> /**
-</span> * @cfg {Boolean} allowReselect If set to true then reselecting a color that is already selected fires the {@link #select} event
+<span id='Ext-picker-Color-cfg-allowReselect'> /**
+</span> * @cfg {Boolean} allowReselect
+ * If set to true then reselecting a color that is already selected fires the {@link #select} event
*/
allowReselect : false,
-<span id='Ext-picker.Color-property-colors'> /**
-</span> * <p>An array of 6-digit color hex code strings (without the # symbol). This array can contain any number
- * of colors, and each hex code should be unique. The width of the picker is controlled via CSS by adjusting
- * the width property of the 'x-color-picker' class (or assigning a custom class), so you can balance the number
- * of colors with the width setting until the box is symmetrical.</p>
- * <p>You can override individual colors if needed:</p>
- * <pre><code>
-var cp = new Ext.picker.Color();
-cp.colors[0] = 'FF0000'; // change the first box to red
-</code></pre>
-
-Or you can provide a custom array of your own for complete control:
-<pre><code>
-var cp = new Ext.picker.Color();
-cp.colors = ['000000', '993300', '333300'];
-</code></pre>
- * @type Array
+<span id='Ext-picker-Color-property-colors'> /**
+</span> * @property {String[]} colors
+ * An array of 6-digit color hex code strings (without the # symbol). This array can contain any number of colors,
+ * and each hex code should be unique. The width of the picker is controlled via CSS by adjusting the width property
+ * of the 'x-color-picker' class (or assigning a custom class), so you can balance the number of colors with the
+ * width setting until the box is symmetrical.
+ *
+ * You can override individual colors if needed:
+ *
+ * var cp = new Ext.picker.Color();
+ * cp.colors[0] = 'FF0000'; // change the first box to red
+ *
+ * Or you can provide a custom array of your own for complete control:
+ *
+ * var cp = new Ext.picker.Color();
+ * cp.colors = ['000000', '993300', '333300'];
*/
colors : [
'000000', '993300', '333300', '003300', '003366', '000080', '333399', '333333',
'FF99CC', 'FFCC99', 'FFFF99', 'CCFFCC', 'CCFFFF', '99CCFF', 'CC99FF', 'FFFFFF'
],
-<span id='Ext-picker.Color-cfg-handler'> /**
+<span id='Ext-picker-Color-cfg-handler'> /**
</span> * @cfg {Function} handler
- * Optional. A function that will handle the select event of this picker.
- * The handler is passed the following parameters:<div class="mdetail-params"><ul>
- * <li><code>picker</code> : ColorPicker<div class="sub-desc">The {@link #picker Ext.picker.Color}.</div></li>
- * <li><code>color</code> : String<div class="sub-desc">The 6-digit color hex code (without the # symbol).</div></li>
- * </ul></div>
+ * A function that will handle the select event of this picker. The handler is passed the following parameters:
+ *
+ * - `picker` : ColorPicker
+ *
+ * The {@link Ext.picker.Color picker}.
+ *
+ * - `color` : String
+ *
+ * The 6-digit color hex code (without the # symbol).
*/
-<span id='Ext-picker.Color-cfg-scope'> /**
+
+<span id='Ext-picker-Color-cfg-scope'> /**
</span> * @cfg {Object} scope
- * The scope (<tt><b>this</b></tt> reference) in which the <code>{@link #handler}</code>
- * function will be called. Defaults to this ColorPicker instance.
+ * The scope (`this` reference) in which the `{@link #handler}` function will be called. Defaults to this
+ * Color picker instance.
*/
-
+
colorRe: /(?:^|\s)color-(.{6})(?:\s|$)/,
- constructor: function() {
- this.renderTpl = Ext.create('Ext.XTemplate', '<tpl for="colors"><a href="#" class="color-{.}" hidefocus="on"><em><span style="background:#{.}" unselectable="on">&#160;</span></em></a></tpl>');
- this.callParent(arguments);
- },
-
+ renderTpl: [
+ '<tpl for="colors">',
+ '<a href="#" class="color-{.}" hidefocus="on">',
+ '<em><span style="background:#{.}" unselectable="on">&#160;</span></em>',
+ '</a>',
+ '</tpl>'
+ ],
+
// private
initComponent : function(){
var me = this;
-
- this.callParent(arguments);
+
+ me.callParent(arguments);
me.addEvents(
-<span id='Ext-picker.Color-event-select'> /**
+<span id='Ext-picker-Color-event-select'> /**
</span> * @event select
* Fires when a color is selected
* @param {Ext.picker.Color} this
onRender : function(container, position){
var me = this,
clickEvent = me.clickEvent;
-
+
Ext.apply(me.renderData, {
itemCls: me.itemCls,
- colors: me.colors
+ colors: me.colors
});
- this.callParent(arguments);
+ me.callParent(arguments);
me.mon(me.el, clickEvent, me.handleClick, me, {delegate: 'a'});
// always stop following the anchors
afterRender : function(){
var me = this,
value;
-
- this.callParent(arguments);
+
+ me.callParent(arguments);
if (me.value) {
value = me.value;
me.value = null;
handleClick : function(event, target){
var me = this,
color;
-
+
event.stopEvent();
if (!me.disabled) {
color = target.className.match(me.colorRe)[1];
}
},
-<span id='Ext-picker.Color-method-select'> /**
+<span id='Ext-picker-Color-method-select'> /**
</span> * Selects the specified color in the picker (fires the {@link #select} event)
* @param {String} color A valid 6-digit color hex code (# will be stripped if included)
- * @param {Boolean} suppressEvent (optional) True to stop the select event from firing. Defaults to <tt>false</tt>.
+ * @param {Boolean} suppressEvent (optional) True to stop the select event from firing. Defaults to false.
*/
select : function(color, suppressEvent){
-
+
var me = this,
selectedCls = me.selectedCls,
value = me.value,
el;
-
+
color = color.replace('#', '');
if (!me.rendered) {
me.value = color;
return;
}
-
-
+
+
if (color != value || me.allowReselect) {
el = me.el;
}
}
},
-
-<span id='Ext-picker.Color-method-getValue'> /**
+
+<span id='Ext-picker-Color-method-getValue'> /**
</span> * Get the currently selected color value.
* @return {String} value The selected value. Null if nothing is selected.
*/
return this.value || null;
}
});
-</pre></pre></body></html>
\ No newline at end of file
+</pre>
+</body>
+</html>