]>
git.proxmox.com Git - extjs.git/blob - extjs/examples/kitchensink/classic/samples/view/grid/WidgetGrid.js
2 * This example shows how to create Widgets in grid columns. Widgets are lightweight
3 * components with a simpler lifecycle.
5 Ext
.define('KitchenSink.view.grid.WidgetGrid', {
6 extend
: 'Ext.grid.Panel',
8 'Ext.grid.column.Action',
9 'Ext.ProgressBarWidget',
21 enableTextSelection
: false,
24 trackMouseOver
: false,
25 disableSelection
: true,
29 path
: 'classic/samples/store/Widgets.js'
32 path
: 'classic/samples/model/Widget.js'
36 initComponent: function () {
42 xtype
: 'widgetcolumn',
43 dataIndex
: 'progress',
48 iconCls
: 'widget-grid-user',
49 handler: function(btn
) {
50 var rec
= btn
.getWidgetRecord();
51 Ext
.Msg
.alert("Button clicked", "Hey! " + rec
.get('name'));
56 xtype
: 'widgetcolumn',
58 dataIndex
: 'progress',
60 xtype
: 'progressbarwidget',
62 '{percent:number("0")}% done'
69 xtype
: 'widgetcolumn',
80 xtype
: 'widgetcolumn',
82 dataIndex
: 'progress',
84 xtype
: 'sliderwidget',
89 change: function(slider
, value
) {
91 // If the widget has been decorated by the WidgetColumn with context-returning methods
92 // then extract data and update its context record.
93 if (slider
.getWidgetRecord
) {
94 var rec
= slider
.getWidgetRecord();
96 rec
.set('progress', value
);
105 dataIndex
: 'sequence1',
106 xtype
: 'widgetcolumn',
108 xtype
: 'sparklineline',
109 tipTpl
: 'Value: {y:number("0.00")}'
114 dataIndex
: 'sequence2',
115 xtype
: 'widgetcolumn',
117 xtype
: 'sparklinebar'
122 dataIndex
: 'sequence3',
123 xtype
: 'widgetcolumn',
125 xtype
: 'sparklinediscrete'
130 dataIndex
: 'sequence4',
131 xtype
: 'widgetcolumn',
133 xtype
: 'sparklinebullet'
138 dataIndex
: 'sequence5',
139 xtype
: 'widgetcolumn',
141 xtype
: 'sparklinepie'
146 dataIndex
: 'sequence6',
147 xtype
: 'widgetcolumn',
149 xtype
: 'sparklinebox'
154 dataIndex
: 'sequence7',
155 xtype
: 'widgetcolumn',
157 xtype
: 'sparklinetristate'
162 for (var i
= 0; i
< me
.columns
.length
; i
++) {
164 text
: me
.columns
[i
].text
,
168 toggleHandler
: me
.onButtonToggle
174 columnshow
: me
.onColumnToggle
,
175 columnhide
: me
.onColumnToggle
179 onButtonToggle: function(btn
, pressed
) {
180 if (this.processing
) {
184 this.processing
= true;
185 var header
= this.headerCt
.child('[text=' + btn
.text
+ ']');
186 header
.setVisible(pressed
);
187 this.processing
= false;
190 onColumnToggle: function(headerCt
, header
) {
191 if (this.processing
) {
194 this.processing
= true;
195 var btn
= this.down('toolbar').child('[text=' + header
.text
+ ']');
196 btn
.setPressed(header
.isVisible());
197 this.processing
= false;