FitLayout.js
上传用户:dawnssy
上传日期:2022-08-06
资源大小:9345k
文件大小:2k
源码类别:

JavaScript

开发平台:

JavaScript

  1. /*!  * Ext JS Library 3.1.0  * Copyright(c) 2006-2009 Ext JS, LLC  * licensing@extjs.com  * http://www.extjs.com/license  */ /**
  2.  * @class Ext.layout.FitLayout
  3.  * @extends Ext.layout.ContainerLayout
  4.  * <p>This is a base class for layouts that contain <b>a single item</b> that automatically expands to fill the layout's
  5.  * container.  This class is intended to be extended or created via the <tt>layout:'fit'</tt> {@link Ext.Container#layout}
  6.  * config, and should generally not need to be created directly via the new keyword.</p>
  7.  * <p>FitLayout does not have any direct config options (other than inherited ones).  To fit a panel to a container
  8.  * using FitLayout, simply set layout:'fit' on the container and add a single panel to it.  If the container has
  9.  * multiple panels, only the first one will be displayed.  Example usage:</p>
  10.  * <pre><code>
  11. var p = new Ext.Panel({
  12.     title: 'Fit Layout',
  13.     layout:'fit',
  14.     items: {
  15.         title: 'Inner Panel',
  16.         html: '&lt;p&gt;This is the inner panel content&lt;/p&gt;',
  17.         border: false
  18.     }
  19. });
  20. </code></pre>
  21.  */
  22. Ext.layout.FitLayout = Ext.extend(Ext.layout.ContainerLayout, {
  23.     // private
  24.     monitorResize:true,
  25.     // private
  26.     onLayout : function(ct, target){
  27.         Ext.layout.FitLayout.superclass.onLayout.call(this, ct, target);
  28.         if(!this.container.collapsed){
  29.             this.setItemSize(this.activeItem || ct.items.itemAt(0), target.getViewSize(true));
  30.         }
  31.     },
  32.     // private
  33.     setItemSize : function(item, size){
  34.         if(item && size.height > 0){ // display none?
  35.             item.setSize(size);
  36.         }
  37.     }
  38. });
  39. Ext.Container.LAYOUTS['fit'] = Ext.layout.FitLayout;