Upgrade to ExtJS 4.0.0 - Released 04/26/2011
[extjs.git] / examples / sandbox / sample.js
diff --git a/examples/sandbox/sample.js b/examples/sandbox/sample.js
new file mode 100644 (file)
index 0000000..0a4fb2c
--- /dev/null
@@ -0,0 +1,423 @@
+/*!
+ * Ext JS Library 3.3.1
+ * Copyright(c) 2006-2010 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+
+// Sample desktop configuration
+MyDesktop = new Ext.app.App({
+       init :function(){
+               Ext.QuickTips.init();
+       },
+
+       getModules : function(){
+               return [
+                       new MyDesktop.GridWindow(),
+            new MyDesktop.TabWindow(),
+            new MyDesktop.AccordionWindow(),
+            new MyDesktop.BogusMenuModule(),
+            new MyDesktop.BogusModule()
+               ];
+       },
+
+    // config for the start menu
+    getStartConfig : function(){
+        return {
+            title: 'Tommy Maintz',
+            iconCls: 'user',
+            toolItems: [{
+                text:'Settings',
+                iconCls:'settings',
+                scope:this
+            },'-',{
+                text:'Logout',
+                iconCls:'logout',
+                scope:this
+            }]
+        };
+    }
+});
+
+
+
+/*
+ * Example windows
+ */
+MyDesktop.GridWindow = Ext.extend(Ext.app.Module, {
+    id:'grid-win',
+    init : function(){
+        this.launcher = {
+            text: 'Grid Window',
+            iconCls:'icon-grid',
+            handler : this.createWindow,
+            scope: this
+        }
+    },
+
+    createWindow : function(){
+        var desktop = this.app.getDesktop();
+        var win = desktop.getWindow('grid-win');
+        if(!win){
+            win = desktop.createWindow({
+                id: 'grid-win',
+                title:'Grid Window',
+                width:740,
+                height:480,
+                iconCls: 'icon-grid',
+                shim:false,
+                animCollapse:false,
+                constrainHeader:true,
+
+                layout: 'fit',
+                items:
+                    new Ext.grid.GridPanel({
+                        border:false,
+                        ds: new Ext.data.Store({
+                            reader: new Ext.data.ArrayReader({}, [
+                               {name: 'company'},
+                               {name: 'price', type: 'float'},
+                               {name: 'change', type: 'float'},
+                               {name: 'pctChange', type: 'float'}
+                            ]),
+                            data: Ext.grid.dummyData
+                        }),
+                        cm: new Ext.grid.ColumnModel([
+                            new Ext.grid.RowNumberer(),
+                            {header: "Company", width: 120, sortable: true, dataIndex: 'company'},
+                            {header: "Price", width: 70, sortable: true, renderer: Ext.util.Format.usMoney, dataIndex: 'price'},
+                            {header: "Change", width: 70, sortable: true, dataIndex: 'change'},
+                            {header: "% Change", width: 70, sortable: true, dataIndex: 'pctChange'}
+                        ]),
+
+                        viewConfig: {
+                            forceFit:true
+                        },
+                        //autoExpandColumn:'company',
+
+                        tbar:[{
+                            text:'Add Something',
+                            tooltip:'Add a new row',
+                            iconCls:'add'
+                        }, '-', {
+                            text:'Options',
+                            tooltip:'Blah blah blah blaht',
+                            iconCls:'option'
+                        },'-',{
+                            text:'Remove Something',
+                            tooltip:'Remove the selected item',
+                            iconCls:'remove'
+                        }]
+                    })
+            });
+        }
+        win.show();
+    }
+});
+
+
+
+MyDesktop.TabWindow = Ext.extend(Ext.app.Module, {
+    id:'tab-win',
+    init : function(){
+        this.launcher = {
+            text: 'Tab Window',
+            iconCls:'tabs',
+            handler : this.createWindow,
+            scope: this
+        }
+    },
+
+    createWindow : function(){
+        var desktop = this.app.getDesktop();
+        var win = desktop.getWindow('tab-win');
+        if(!win){
+            win = desktop.createWindow({
+                id: 'tab-win',
+                title:'Tab Window',
+                width:740,
+                height:480,
+                iconCls: 'tabs',
+                shim:false,
+                animCollapse:false,
+                border:false,
+                constrainHeader:true,
+
+                layout: 'fit',
+                items:
+                    new Ext.TabPanel({
+                        activeTab:0,
+
+                        items: [{
+                            title: 'Tab Text 1',
+                            header:false,
+                            html : '<p>Something useful would be in here.</p>',
+                            border:false
+                        },{
+                            title: 'Tab Text 2',
+                            header:false,
+                            html : '<p>Something useful would be in here.</p>',
+                            border:false
+                        },{
+                            title: 'Tab Text 3',
+                            header:false,
+                            html : '<p>Something useful would be in here.</p>',
+                            border:false
+                        },{
+                            title: 'Tab Text 4',
+                            header:false,
+                            html : '<p>Something useful would be in here.</p>',
+                            border:false
+                        }]
+                    })
+            });
+        }
+        win.show();
+    }
+});
+
+
+
+MyDesktop.AccordionWindow = Ext.extend(Ext.app.Module, {
+    id:'acc-win',
+    init : function(){
+        this.launcher = {
+            text: 'Accordion Window',
+            iconCls:'accordion',
+            handler : this.createWindow,
+            scope: this
+        }
+    },
+
+    createWindow : function(){
+        var desktop = this.app.getDesktop();
+        var win = desktop.getWindow('acc-win');
+        if(!win){
+            win = desktop.createWindow({
+                id: 'acc-win',
+                title: 'Accordion Window',
+                width:250,
+                height:400,
+                iconCls: 'accordion',
+                shim:false,
+                animCollapse:false,
+                constrainHeader:true,
+
+                tbar:[{
+                    tooltip:{title:'Rich Tooltips', text:'Let your users know what they can do!'},
+                    iconCls:'connect'
+                },'-',{
+                    tooltip:'Add a new user',
+                    iconCls:'user-add'
+                },' ',{
+                    tooltip:'Remove the selected user',
+                    iconCls:'user-delete'
+                }],
+
+                layout:'accordion',
+                border:false,
+                layoutConfig: {
+                    animate:false
+                },
+
+                items: [
+                    new Ext.tree.TreePanel({
+                        id:'im-tree',
+                        title: 'Online Users',
+                        loader: new Ext.tree.TreeLoader(),
+                        rootVisible:false,
+                        lines:false,
+                        autoScroll:true,
+                        tools:[{
+                            id:'refresh',
+                            on:{
+                                click: function(){
+                                    var tree = Ext.getCmp('im-tree');
+                                    tree.body.mask('Loading', 'x-mask-loading');
+                                    tree.root.reload();
+                                    tree.root.collapse(true, false);
+                                    setTimeout(function(){ // mimic a server call
+                                        tree.body.unmask();
+                                        tree.root.expand(true, true);
+                                    }, 1000);
+                                }
+                            }
+                        }],
+                        root: new Ext.tree.AsyncTreeNode({
+                            text:'Online',
+                            children:[{
+                                text:'Friends',
+                                expanded:true,
+                                children:[{
+                                    text:'Jack',
+                                    iconCls:'user',
+                                    leaf:true
+                                },{
+                                    text:'Brian',
+                                    iconCls:'user',
+                                    leaf:true
+                                },{
+                                    text:'Jon',
+                                    iconCls:'user',
+                                    leaf:true
+                                },{
+                                    text:'Tim',
+                                    iconCls:'user',
+                                    leaf:true
+                                },{
+                                    text:'Nige',
+                                    iconCls:'user',
+                                    leaf:true
+                                },{
+                                    text:'Fred',
+                                    iconCls:'user',
+                                    leaf:true
+                                },{
+                                    text:'Bob',
+                                    iconCls:'user',
+                                    leaf:true
+                                }]
+                            },{
+                                text:'Family',
+                                expanded:true,
+                                children:[{
+                                    text:'Kelly',
+                                    iconCls:'user-girl',
+                                    leaf:true
+                                },{
+                                    text:'Sara',
+                                    iconCls:'user-girl',
+                                    leaf:true
+                                },{
+                                    text:'Zack',
+                                    iconCls:'user-kid',
+                                    leaf:true
+                                },{
+                                    text:'John',
+                                    iconCls:'user-kid',
+                                    leaf:true
+                                }]
+                            }]
+                        })
+                    }), {
+                        title: 'Settings',
+                        html:'<p>Something useful would be in here.</p>',
+                        autoScroll:true
+                    },{
+                        title: 'Even More Stuff',
+                        html : '<p>Something useful would be in here.</p>'
+                    },{
+                        title: 'My Stuff',
+                        html : '<p>Something useful would be in here.</p>'
+                    }
+                ]
+            });
+        }
+        win.show();
+    }
+});
+
+// for example purposes
+var windowIndex = 0;
+
+MyDesktop.BogusModule = Ext.extend(Ext.app.Module, {
+    init : function(){
+        this.launcher = {
+            text: 'Window '+(++windowIndex),
+            iconCls:'bogus',
+            handler : this.createWindow,
+            scope: this,
+            windowId:windowIndex
+        }
+    },
+
+    createWindow : function(src){
+        var desktop = this.app.getDesktop();
+        var win = desktop.getWindow('bogus'+src.windowId);
+        if(!win){
+            win = desktop.createWindow({
+                id: 'bogus'+src.windowId,
+                title:src.text,
+                width:640,
+                height:480,
+                html : '<p>Something useful would be in here.</p>',
+                iconCls: 'bogus',
+                shim:false,
+                animCollapse:false,
+                constrainHeader:true
+            });
+        }
+        win.show();
+    }
+});
+
+
+MyDesktop.BogusMenuModule = Ext.extend(MyDesktop.BogusModule, {
+    init : function(){
+        this.launcher = {
+            text: 'Bogus Submenu',
+            iconCls: 'bogus',
+            handler: function() {
+                               return false;
+                       },
+            menu: {
+                items:[{
+                    text: 'Bogus Window '+(++windowIndex),
+                    iconCls:'bogus',
+                    handler : this.createWindow,
+                    scope: this,
+                    windowId: windowIndex
+                    },{
+                    text: 'Bogus Window '+(++windowIndex),
+                    iconCls:'bogus',
+                    handler : this.createWindow,
+                    scope: this,
+                    windowId: windowIndex
+                    },{
+                    text: 'Bogus Window '+(++windowIndex),
+                    iconCls:'bogus',
+                    handler : this.createWindow,
+                    scope: this,
+                    windowId: windowIndex
+                    },{
+                    text: 'Bogus Window '+(++windowIndex),
+                    iconCls:'bogus',
+                    handler : this.createWindow,
+                    scope: this,
+                    windowId: windowIndex
+                    },{
+                    text: 'Bogus Window '+(++windowIndex),
+                    iconCls:'bogus',
+                    handler : this.createWindow,
+                    scope: this,
+                    windowId: windowIndex
+                }]
+            }
+        }
+    }
+});
+
+
+// Array data for the grid
+Ext.grid.dummyData = [
+    ['3m Co',71.72,0.02,0.03,'9/1 12:00am'],
+    ['Alcoa Inc',29.01,0.42,1.47,'9/1 12:00am'],
+    ['American Express Company',52.55,0.01,0.02,'9/1 12:00am'],
+    ['American International Group, Inc.',64.13,0.31,0.49,'9/1 12:00am'],
+    ['AT&T Inc.',31.61,-0.48,-1.54,'9/1 12:00am'],
+    ['Caterpillar Inc.',67.27,0.92,1.39,'9/1 12:00am'],
+    ['Citigroup, Inc.',49.37,0.02,0.04,'9/1 12:00am'],
+    ['Exxon Mobil Corp',68.1,-0.43,-0.64,'9/1 12:00am'],
+    ['General Electric Company',34.14,-0.08,-0.23,'9/1 12:00am'],
+    ['General Motors Corporation',30.27,1.09,3.74,'9/1 12:00am'],
+    ['Hewlett-Packard Co.',36.53,-0.03,-0.08,'9/1 12:00am'],
+    ['Honeywell Intl Inc',38.77,0.05,0.13,'9/1 12:00am'],
+    ['Intel Corporation',19.88,0.31,1.58,'9/1 12:00am'],
+    ['Johnson & Johnson',64.72,0.06,0.09,'9/1 12:00am'],
+    ['Merck & Co., Inc.',40.96,0.41,1.01,'9/1 12:00am'],
+    ['Microsoft Corporation',25.84,0.14,0.54,'9/1 12:00am'],
+    ['The Coca-Cola Company',45.07,0.26,0.58,'9/1 12:00am'],
+    ['The Procter & Gamble Company',61.91,0.01,0.02,'9/1 12:00am'],
+    ['Wal-Mart Stores, Inc.',45.45,0.73,1.63,'9/1 12:00am'],
+    ['Walt Disney Company (The) (Holding Company)',29.89,0.24,0.81,'9/1 12:00am']
+];
\ No newline at end of file