AbsoluteLayout.js
上传用户:shuoshiled
上传日期:2018-01-28
资源大小:10124k
文件大小:2k
源码类别:

中间件编程

开发平台:

JavaScript

  1. /*!  * Ext JS Library 3.0.0  * Copyright(c) 2006-2009 Ext JS, LLC  * licensing@extjs.com  * http://www.extjs.com/license  */ /**
  2.  * @class Ext.layout.AbsoluteLayout
  3.  * @extends Ext.layout.AnchorLayout
  4.  * <p>This is a layout that inherits the anchoring of <b>{@link Ext.layout.AnchorLayout}</b> and adds the
  5.  * ability for x/y positioning using the standard x and y component config options.</p>
  6.  * <p>This class is intended to be extended or created via the <tt><b>{@link Ext.Container#layout layout}</b></tt>
  7.  * configuration property.  See <tt><b>{@link Ext.Container#layout}</b></tt> for additional details.</p>
  8.  * <p>Example usage:</p>
  9.  * <pre><code>
  10. var form = new Ext.form.FormPanel({
  11.     title: 'Absolute Layout',
  12.     layout:'absolute',
  13.     layoutConfig: {
  14.         // layout-specific configs go here
  15.         extraCls: 'x-abs-layout-item',
  16.     },
  17.     baseCls: 'x-plain',
  18.     url:'save-form.php',
  19.     defaultType: 'textfield',
  20.     items: [{
  21.         x: 0,
  22.         y: 5,
  23.         xtype:'label',
  24.         text: 'Send To:'
  25.     },{
  26.         x: 60,
  27.         y: 0,
  28.         name: 'to',
  29.         anchor:'100%'  // anchor width by percentage
  30.     },{
  31.         x: 0,
  32.         y: 35,
  33.         xtype:'label',
  34.         text: 'Subject:'
  35.     },{
  36.         x: 60,
  37.         y: 30,
  38.         name: 'subject',
  39.         anchor: '100%'  // anchor width by percentage
  40.     },{
  41.         x:0,
  42.         y: 60,
  43.         xtype: 'textarea',
  44.         name: 'msg',
  45.         anchor: '100% 100%'  // anchor width and height
  46.     }]
  47. });
  48. </code></pre>
  49.  */
  50. Ext.layout.AbsoluteLayout = Ext.extend(Ext.layout.AnchorLayout, {
  51.     extraCls: 'x-abs-layout-item',
  52.     onLayout : function(ct, target){
  53.         target.position();
  54.         this.paddingLeft = target.getPadding('l');
  55.         this.paddingTop = target.getPadding('t');
  56.         Ext.layout.AbsoluteLayout.superclass.onLayout.call(this, ct, target);
  57.     },
  58.     // private
  59.     adjustWidthAnchor : function(value, comp){
  60.         return value ? value - comp.getPosition(true)[0] + this.paddingLeft : value;
  61.     },
  62.     // private
  63.     adjustHeightAnchor : function(value, comp){
  64.         return  value ? value - comp.getPosition(true)[1] + this.paddingTop : value;
  65.     }
  66.     /**
  67.      * @property activeItem
  68.      * @hide
  69.      */
  70. });
  71. Ext.Container.LAYOUTS['absolute'] = Ext.layout.AbsoluteLayout;