/* * Ext JS Library 2.0 Copyright(c) 2006-2007, Ext JS, LLC. licensing@extjs.com * * http://extjs.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 : 'Jack Slocum', 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']];