123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- 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: '<p class="details-info">When you select a layout from the tree, additional details will display here.</p>'
- };
-
- // 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: '<h1> Ext.Layout.Browser</h1>',
- height: 30
- },{
- layout: 'border',
- id: 'layout-browser',
- region:'west',
- border: false,
- split:true,
- margins: '2 0 5 5',
- width: 275,
- minSize: 100,
- maxSize: 500,
- items: [treePanel, detailsPanel]
- },
- contentPanel
- ],
- renderTo: Ext.getBody()
- });
- });
|