X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/0494b8d9b9bb03ab6c22b34dae81261e3cd7e3e6..7a654f8d43fdb43d78b63d90528bed6e86b608cc:/examples/sandbox/sample.js diff --git a/examples/sandbox/sample.js b/examples/sandbox/sample.js new file mode 100644 index 00000000..0a4fb2cb --- /dev/null +++ b/examples/sandbox/sample.js @@ -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 : '

Something useful would be in here.

', + border:false + },{ + title: 'Tab Text 2', + header:false, + html : '

Something useful would be in here.

', + border:false + },{ + title: 'Tab Text 3', + header:false, + html : '

Something useful would be in here.

', + border:false + },{ + title: 'Tab Text 4', + header:false, + html : '

Something useful would be in here.

', + 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:'

Something useful would be in here.

', + autoScroll:true + },{ + title: 'Even More Stuff', + html : '

Something useful would be in here.

' + },{ + title: 'My Stuff', + html : '

Something useful would be in here.

' + } + ] + }); + } + 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 : '

Something useful would be in here.

', + 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