--- /dev/null
+/*!
+ * 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