/*!
* Ext JS Library 3.1.0
* Copyright(c) 2006-2009 Ext JS, LLC
* licensing@extjs.com
* http://www.extjs.com/license
*/
Ext.ns('App', 'App.user');
/**
* App.user.Grid
* A typical EditorGridPanel extension.
*/
App.user.Grid = Ext.extend(Ext.grid.EditorGridPanel, {
renderTo: 'user-grid',
iconCls: 'silk-grid',
frame: true,
title: 'Users',
height: 300,
width: 500,
style: 'margin-top: 10px',
sm: new Ext.grid.RowSelectionModel(),
initComponent : function() {
// typical viewConfig
this.viewConfig = {
forceFit: true
};
// relay the Store's CRUD events into this grid so these events can be conveniently listened-to in our application-code.
this.relayEvents(this.store, ['destroy', 'save', 'update']);
// build toolbars and buttons.
this.tbar = this.buildTopToolbar();
this.bbar = this.buildBottomToolbar();
this.buttons = this.buildUI();
// super
App.user.Grid.superclass.initComponent.call(this);
},
/**
* buildTopToolbar
*/
buildTopToolbar : function() {
return [{
text: 'Add',
iconCls: 'silk-add',
handler: this.onAdd,
scope: this
}, '-', {
text: 'Delete',
iconCls: 'silk-delete',
handler: this.onDelete,
scope: this
}, '-'];
},
/**
* buildBottomToolbar
*/
buildBottomToolbar : function() {
return ['<b>@cfg:</b>', '-', {
text: 'autoSave',
enableToggle: true,
pressed: true,
tooltip: 'When enabled, Store will execute Ajax requests as soon as a Record becomes dirty.',
toggleHandler: function(btn, pressed) {
this.store.autoSave = pressed;
},
scope: this
}, '-', {
text: 'batch',
enableToggle: true,
pressed: true,
tooltip: 'When enabled, Store will batch all records for each type of CRUD verb into a single Ajax request.',
toggleHandler: function(btn, pressed) {
this.store.batch = pressed;
},
scope: this
}, '-'];
},
/**
* buildUI
*/
buildUI : function() {
return [{
text: 'Save',
iconCls: 'icon-save',
handler: this.onSave,
scope: this
}];
},
/**
* onSave
*/
onSave : function(btn, ev) {
this.store.save();
},
/**
* onAdd
*/
onAdd : function(btn, ev) {
var u = new this.store.recordType({
first : '',
last: '',
email : ''
});
this.stopEditing();
this.store.insert(0, u);
this.startEditing(0, 1);
},
/**
* onDelete
*/
onDelete : function(btn, ev) {
var rec = this.getSelectionModel().getSelections();
for(var i = 0; i < rec.length; i++) {
this.store.remove(rec[i]);
}
}
});