123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- <!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-component-field-Trigger'>/**
- </span> * Layout class for {@link Ext.form.field.Trigger} fields. Adjusts the input field size to accommodate
- * the trigger button(s).
- * @private
- */
- Ext.define('Ext.layout.component.field.Trigger', {
- /* Begin Definitions */
- alias: 'layout.triggerfield',
- extend: 'Ext.layout.component.field.Field',
- /* End Definitions */
- type: 'triggerfield',
- beginLayout: function(ownerContext) {
- var me = this,
- owner = me.owner,
- flags;
- ownerContext.triggerWrap = ownerContext.getEl('triggerWrap');
- me.callParent(arguments);
- // if any of these important states have changed, sync them now:
- flags = owner.getTriggerStateFlags();
- if (flags != owner.lastTriggerStateFlags) {
- owner.lastTriggerStateFlags = flags;
- me.updateEditState();
- }
- },
- beginLayoutFixed: function (ownerContext, width, suffix) {
- var me = this,
- owner = ownerContext.target,
- ieInputWidthAdjustment = me.ieInputWidthAdjustment || 0,
- inputWidth = '100%',
- triggerWrap = owner.triggerWrap;
- me.callParent(arguments);
- owner.inputCell.setStyle('width', '100%');
- if(ieInputWidthAdjustment) {
- // adjust for IE 6/7 strict content-box model
- // RTL: This might have to be padding-left unless the senses of the padding styles switch when in RTL mode.
- owner.inputCell.setStyle('padding-right', ieInputWidthAdjustment + 'px');
- if(suffix === 'px') {
- if (owner.inputWidth) {
- inputWidth = owner.inputWidth - owner.getTriggerWidth();
- } else {
- inputWidth = width - ieInputWidthAdjustment - owner.getTriggerWidth();
- }
- inputWidth += 'px';
- }
- }
- owner.inputEl.setStyle('width', inputWidth);
- inputWidth = owner.inputWidth;
- if (inputWidth) {
- triggerWrap.setStyle('width', inputWidth + (ieInputWidthAdjustment) + 'px');
- } else {
- triggerWrap.setStyle('width', width + suffix);
- }
- triggerWrap.setStyle('table-layout', 'fixed');
- },
- beginLayoutShrinkWrap: function (ownerContext) {
- var owner = ownerContext.target,
- emptyString = '',
- inputWidth = owner.inputWidth,
- triggerWrap = owner.triggerWrap,
- ieInputWidthAdjustment = this.ieInputWidthAdjustment || 0;
- this.callParent(arguments);
- if (inputWidth) {
- triggerWrap.setStyle('width', inputWidth + 'px');
- inputWidth = (inputWidth - owner.getTriggerWidth()) + 'px';
- owner.inputEl.setStyle('width', inputWidth);
- owner.inputCell.setStyle('width', inputWidth);
- } else {
- owner.inputCell.setStyle('width', emptyString);
- owner.inputEl.setStyle('width', emptyString);
- triggerWrap.setStyle('width', emptyString);
- triggerWrap.setStyle('table-layout', 'auto');
- }
- },
- getTextWidth: function () {
- var me = this,
- owner = me.owner,
- inputEl = owner.inputEl,
- value;
- // Find the width that contains the whole text value
- value = (inputEl.dom.value || (owner.hasFocus ? '' : owner.emptyText) || '') + owner.growAppend;
- return inputEl.getTextWidth(value);
- },
- measureContentWidth: function (ownerContext) {
- var me = this,
- owner = me.owner,
- width = me.callParent(arguments),
- inputContext = ownerContext.inputContext,
- calcWidth, max, min;
- if (owner.grow && !ownerContext.state.growHandled) {
- calcWidth = me.getTextWidth() + ownerContext.inputContext.getFrameInfo().width;
- max = owner.growMax;
- min = Math.min(max, width);
- max = Math.max(owner.growMin, max, min);
- // Constrain
- calcWidth = Ext.Number.constrain(calcWidth, owner.growMin, max);
- inputContext.setWidth(calcWidth);
- ownerContext.state.growHandled = true;
-
- // Now that we've set the inputContext, we need to recalculate the width
- inputContext.domBlock(me, 'width');
- width = NaN;
- }
- return width;
- },
- updateEditState: function() {
- var me = this,
- owner = me.owner,
- inputEl = owner.inputEl,
- noeditCls = Ext.baseCSSPrefix + 'trigger-noedit',
- displayed,
- readOnly;
- if (me.owner.readOnly) {
- inputEl.addCls(noeditCls);
- readOnly = true;
- displayed = false;
- } else {
- if (me.owner.editable) {
- inputEl.removeCls(noeditCls);
- readOnly = false;
- } else {
- inputEl.addCls(noeditCls);
- readOnly = true;
- }
- displayed = !me.owner.hideTrigger;
- }
- owner.triggerCell.setDisplayed(displayed);
- inputEl.dom.readOnly = readOnly;
- }
- });
- </pre>
- </body>
- </html>
|