]> git.proxmox.com Git - extjs.git/blame - extjs/modern/modern/src/grid/cell/Widget.js
add extjs 6.0.1 sources
[extjs.git] / extjs / modern / modern / src / grid / cell / Widget.js
CommitLineData
6527f429
DM
1/**\r
2 * This class is used for {@link Ext.grid.Grid grid} cells that contain a child\r
3 * {@link Ext.Component} or {@link Ext.Widget}. This cell type is typically used by\r
4 * specifying {@link Ext.grid.column.Widget} column type.\r
5 *\r
6 * {@link Ext.grid.Row Rows} create cells based on the {@link Ext.grid.column.Column#cell}\r
7 * config. Application code would rarely create cells directly.\r
8 */\r
9Ext.define('Ext.grid.cell.Widget', {\r
10 extend: 'Ext.grid.cell.Base',\r
11 xtype: 'widgetcell',\r
12\r
13 config: {\r
14 /**\r
15 * @cfg {Object} widget (required)\r
16 * The config object for a {@link Ext.Component} or {@link Ext.Widget}.\r
17 *\r
18 * @cfg {String} widget.xtype (required) The type of component or widget to create.\r
19 */\r
20 widget: null\r
21 },\r
22\r
23 applyWidget: function(widget) {\r
24 if (widget) {\r
25 var parent = this.getParent();\r
26\r
27 if (parent && !parent.isSpecialRow) {\r
28 widget = Ext.apply({\r
29 parent: this\r
30 }, widget);\r
31 widget = Ext.widget(widget);\r
32 } else {\r
33 widget = undefined;\r
34 }\r
35 }\r
36 return widget;\r
37 },\r
38\r
39 updateWidget: function(widget, oldWidget) {\r
40 if (oldWidget) {\r
41 oldWidget.destroy();\r
42 }\r
43\r
44 if (widget) {\r
45 this.innerElement.appendChild(widget.element);\r
46 }\r
47 },\r
48\r
49 updateValue: function(value) {\r
50 var widget = this.getWidget(),\r
51 defaultBindProperty;\r
52 \r
53 if (widget) {\r
54 defaultBindProperty = widget.defaultBindProperty;\r
55\r
56 if (defaultBindProperty) {\r
57 widget.setConfig(defaultBindProperty, value);\r
58 }\r
59 }\r
60 },\r
61\r
62 destroy: function() {\r
63 this.setWidget(null);\r
64 this.callParent();\r
65 }\r
66});\r