]>
Commit | Line | Data |
---|---|---|
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 | |
9 | Ext.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 |