/ext-4.1.0_b3/docs/source/Form.html
https://bitbucket.org/srogerf/javascript · HTML · 165 lines · 149 code · 16 blank · 0 comment · 0 complexity · f5615c5130d1c8ebb0deb0297131e974 MD5 · raw file
- <!DOCTYPE html>
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>The source code</title>
- <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
- <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
- <style type="text/css">
- .highlight { display: block; background-color: #ddd; }
- </style>
- <script type="text/javascript">
- function highlight() {
- document.getElementById(location.hash.replace(/#/, "")).className = "highlight";
- }
- </script>
- </head>
- <body onload="prettyPrint(); highlight();">
- <pre class="prettyprint lang-js"><span id='Ext-layout-container-Form'>/**
- </span> * This is a layout that will render form Fields, one under the other all stretched to the Container width.
- *
- * @example
- * Ext.create('Ext.Panel', {
- * width: 500,
- * height: 300,
- * title: "FormLayout Panel",
- * layout: 'form',
- * renderTo: Ext.getBody(),
- * bodyPadding: 5,
- * defaultType: 'textfield',
- * items: [{
- * fieldLabel: 'First Name',
- * name: 'first',
- * allowBlank:false
- * },{
- * fieldLabel: 'Last Name',
- * name: 'last'
- * },{
- * fieldLabel: 'Company',
- * name: 'company'
- * }, {
- * fieldLabel: 'Email',
- * name: 'email',
- * vtype:'email'
- * }, {
- * fieldLabel: 'DOB',
- * name: 'dob',
- * xtype: 'datefield'
- * }, {
- * fieldLabel: 'Age',
- * name: 'age',
- * xtype: 'numberfield',
- * minValue: 0,
- * maxValue: 100
- * }, {
- * xtype: 'timefield',
- * fieldLabel: 'Time',
- * name: 'time',
- * minValue: '8:00am',
- * maxValue: '6:00pm'
- * }],
- * });
- *
- * Note that any configured {@link Ext.Component#padding padding} will be ignored on items within a Form layout.
- */
- Ext.define('Ext.layout.container.Form', {
- /* Begin Definitions */
- alias: 'layout.form',
- extend: 'Ext.layout.container.Auto',
- alternateClassName: 'Ext.layout.FormLayout',
- /* End Definitions */
- type: 'form',
- manageOverflow: 2,
- childEls: ['formTable'],
- renderTpl: [
- '<table id="{ownerId}-formTable" style="width:100%" cellspacing="0" cellpadding="0">',
- '{%this.renderBody(out,values)%}',
- '</table>',
- '{%this.renderPadder(out,values)%}'
- ],
- calculate : function (ownerContext) {
- var me = this,
- containerSize = me.getContainerSize(ownerContext, true),
- tableWidth,
- childItems,
- i = 0, length;
- // Once we have been widthed, we can impose that width (in a non-dirty setting) upon all children at once
- if (containerSize.gotWidth) {
- this.callParent(arguments);
- tableWidth = me.formTable.dom.offsetWidth;
- childItems = ownerContext.childItems;
- for (length = childItems.length; i < length; ++i) {
- childItems[i].setWidth(tableWidth, false);
- }
- } else {
- me.done = false;
- }
- },
- getRenderTarget: function() {
- return this.formTable;
- },
- getRenderTree: function() {
- var result = this.callParent(arguments),
- i = 0, len = result.length,
- prefix = Ext.baseCSSPrefix,
- children = '<tr><td class="' + prefix + 'form-item-pad" colspan="3"></td></tr>',
- bodyCls = prefix + 'form-layout-tbody',
- item;
- for (; i < len; i++) {
- item = result[i];
- if (item.tag && item.tag == 'table') {
- item.tag = 'tbody';
- item.cls += ' ' + bodyCls;
- delete item.cellspacing;
- delete item.cellpadding;
- item.cn = children;
- } else {
- result[i] = {
- tag: 'tbody',
- cls: bodyCls,
- cn: {
- tag: 'tr',
- cn: {
- tag: 'td',
- colspan: 3,
- style: 'width:100%',
- cn: item
- }
- }
- };
- }
- }
- return result;
- },
- isValidParent: function(item, target, position) {
- return true;
- },
- isItemShrinkWrap: function(item) {
- return ((item.shrinkWrap === true) ? 3 : item.shrinkWrap||0) & 2;
- },
- getItemSizePolicy: function(item) {
- return {
- setsWidth: 1,
- setsHeight: 0
- }
- }
- });
- </pre>
- </body>
- </html>