Ext.Loader.setConfig({enabled: true}); Ext.Loader.setPath('Ext.ux', '../ux'); Ext.require([ 'Ext.tip.QuickTipManager', 'Ext.container.Viewport', 'Ext.layout.*', 'Ext.form.Panel', 'Ext.form.Label', 'Ext.grid.*', 'Ext.data.*', 'Ext.tree.*', 'Ext.selection.*', 'Ext.tab.Panel', 'Ext.ux.layout.Center' ]); // // This is the main layout definition. // Ext.onReady(function(){ Ext.tip.QuickTipManager.init(); // This is an inner body element within the Details panel created to provide a "slide in" effect // on the panel body without affecting the body's box itself. This element is created on // initial use and cached in this var for subsequent access. var detailEl; // Gets all layouts examples var layoutExamples = []; Ext.Object.each(getBasicLayouts(), function(name, example) { layoutExamples.push(example); }); Ext.Object.each(getCombinationLayouts(), function(name, example){ layoutExamples.push(example); }); Ext.Object.each(getCustomLayouts(), function(name, example){ layoutExamples.push(example); }); // This is the main content center region that will contain each example layout panel. // It will be implemented as a CardLayout since it will contain multiple panels with // only one being visible at any given time. var contentPanel = { id: 'content-panel', region: 'center', // this is what makes this panel into a region within the containing layout layout: 'card', margins: '2 5 5 0', activeItem: 0, border: false, items: layoutExamples }; var store = Ext.create('Ext.data.TreeStore', { root: { expanded: true }, proxy: { type: 'ajax', url: 'tree-data.json' } }); // Go ahead and create the TreePanel now so that we can use it below var treePanel = Ext.create('Ext.tree.Panel', { id: 'tree-panel', title: 'Sample Layouts', region:'north', split: true, height: 360, minSize: 150, rootVisible: false, autoScroll: true, store: store }); // Assign the changeLayout function to be called on tree node click. treePanel.getSelectionModel().on('select', function(selModel, record) { if (record.get('leaf')) { Ext.getCmp('content-panel').layout.setActiveItem(record.getId() + '-panel'); if (!detailEl) { var bd = Ext.getCmp('details-panel').body; bd.update('').setStyle('background','#fff'); detailEl = bd.createChild(); //create default empty div } detailEl.hide().update(Ext.getDom(record.getId() + '-details').innerHTML).slideIn('l', {stopAnimation:true,duration: 200}); } }); // This is the Details panel that contains the description for each example layout. var detailsPanel = { id: 'details-panel', title: 'Details', region: 'center', bodyStyle: 'padding-bottom:15px;background:#eee;', autoScroll: true, html: '
When you select a layout from the tree, additional details will display here.
' }; // Finally, build the main layout once all the pieces are ready. This is also a good // example of putting together a full-screen BorderLayout within a Viewport. Ext.create('Ext.Viewport', { layout: 'border', title: 'Ext Layout Browser', items: [{ xtype: 'box', id: 'header', region: 'north', html: '