1 Ext.require(['Ext.data.*', 'Ext.grid.*']);
2 Ext.onReady(function() {
3 // wrapped in closure to prevent global vars.
4 Ext.define('Restaurant', {
5 extend: 'Ext.data.Model',
6 fields: ['name', 'cuisine']
9 var Restaurants = Ext.create('Ext.data.Store', {
10 storeId: 'restaraunts',
12 sorters: ['cuisine','name'],
13 groupField: 'cuisine',
15 name: 'Cheesecake Factory',
18 name: 'University Cafe',
27 name: 'Gordon Biersch',
42 name: 'House of Bagels',
45 name: 'The Prolific Oven',
51 name: 'Buca di Beppo',
69 name: 'Bistro Maxine',
72 name: 'Three Seasons',
75 name: 'Sancho\'s Taquira',
99 name: 'Patxi\'s Pizza',
102 name: 'Evvia Estiatorio',
103 cuisine: 'Mediterranean'
106 cuisine: 'Mediterranean'
108 name: 'Cafe Renaissance',
109 cuisine: 'Mediterranean'
112 cuisine: 'Mediterranean'
115 cuisine: 'Mediterranean'
117 name: 'Mango Caribbean Cafe',
120 name: 'Coconuts Caribbean Restaurant & Bar',
123 name: 'Rose & Crown',
127 cuisine: 'Mediterranean'
129 name: 'Mandarin Gourmet',
132 name: 'Bangkok Cuisine',
135 name: 'Darbar Indian Cuisine',
144 name: 'Hyderabad House',
150 name: 'Peet\'s Coffee',
156 name: 'Lytton Coffee Company',
163 cuisine: 'Mediterranean'
165 name: 'MacArthur Park',
168 name: 'St Michael\'s Alley',
169 cuisine: 'Californian'
192 name: 'Pizza My Heart',
195 name: 'New York Pizza',
198 name: 'California Pizza Kitchen',
207 name: 'Garden Fresh',
218 var groupingFeature = Ext.create('Ext.grid.feature.Grouping',{
219 groupHeaderTpl: 'Cuisine: {name} ({rows.length} Item{[values.rows.length > 1 ? "s" : ""]})'
222 var grid = Ext.create('Ext.grid.Panel', {
223 renderTo: Ext.getBody(),
225 iconCls: 'icon-grid',
230 title: 'Restaurants',
231 features: [groupingFeature],
242 text:'Clear Grouping',
243 iconCls: 'icon-clear-group',
244 handler : function(){
245 groupingFeature.disable();