PHP Classes

File: web/bundles/extjs/src/layout/component/field/HtmlEditor.js

Recommend this page to a friend!
  Classes of william amed   Raptor 2   web/bundles/extjs/src/layout/component/field/HtmlEditor.js   Download  
File: web/bundles/extjs/src/layout/component/field/HtmlEditor.js
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: Raptor 2
Framework that takes routes from annotations
Author: By
Last change:
Date: 8 years ago
Size: 5,278 bytes
 

Contents

Class file image Download
/* This file is part of Ext JS 4.2 Copyright (c) 2011-2013 Sencha Inc Contact: http://www.sencha.com/contact GNU General Public License Usage This file may be used under the terms of the GNU General Public License version 3.0 as published by the Free Software Foundation and appearing in the file LICENSE included in the packaging of this file. Please review the following information to ensure the GNU General Public License version 3.0 requirements will be met: http://www.gnu.org/copyleft/gpl.html. If you are unsure which license is appropriate for your use, please contact the sales department at http://www.sencha.com/contact. Build date: 2013-05-16 14:36:50 (f9be68accb407158ba2b1be2c226a6ce1f649314) */ /** * Layout class for {@link Ext.form.field.HtmlEditor} fields. Sizes textarea and iframe elements. * @private */ Ext.define('Ext.layout.component.field.HtmlEditor', { extend: 'Ext.layout.component.field.FieldContainer', alias: ['layout.htmleditor'], type: 'htmleditor', naturalHeight: 150, naturalWidth: 300, beginLayout: function(ownerContext) { var owner = this.owner, dom; // In gecko, it can cause the browser to hang if we're running a layout with // a heap of data in the textarea (think several images with data urls). // So clear the value at the start, then re-insert it once we're done if (Ext.isGecko) { dom = owner.textareaEl.dom; this.lastValue = dom.value; dom.value = ''; } this.callParent(arguments); ownerContext.toolbarContext = ownerContext.context.getCmp(owner.toolbar); ownerContext.inputCmpContext = ownerContext.context.getCmp(owner.inputCmp); ownerContext.textAreaContext = ownerContext.getEl('textareaEl'); ownerContext.iframeContext = ownerContext.getEl('iframeEl'); }, beginLayoutCycle: function(ownerContext) { var me = this, widthModel = ownerContext.widthModel, heightModel = ownerContext.heightModel, owner = me.owner, iframeEl = owner.iframeEl, textareaEl = owner.textareaEl; me.callParent(arguments); if (widthModel.shrinkWrap) { iframeEl.setStyle('width', ''); textareaEl.setStyle('width', ''); } else if (widthModel.natural) { ownerContext.bodyCellContext.setWidth(me.naturalWidth); } if (heightModel.natural || heightModel.shrinkWrap) { iframeEl.setHeight(me.naturalHeight); textareaEl.setHeight(me.naturalHeight); } }, finishedLayout: function(){ var owner = this.owner; this.callParent(arguments); // In IE6 quirks sometimes the element requires repainting // to show properly. if (Ext.isIE9m && Ext.isIEQuirks) { owner.el.repaint(); } if (Ext.isGecko) { owner.textareaEl.dom.value = this.lastValue; } }, publishOwnerWidth: function(ownerContext, width){ this.callParent(arguments); width -= ownerContext.inputCmpContext.getBorderInfo().width; ownerContext.textAreaContext.setWidth(width); ownerContext.iframeContext.setWidth(width); }, // The offsets for the text area are needed for bugs in sizing with IE. // The main issue behind it is that the iframe requires an initial height // to be set while the component is auto sizing, however we need to switch // it when using a configured size. A more permanent solution might be to // have the iframe and text area be child components of the container // as opposed to being directly inserted into the DOM. publishInnerWidth: function(ownerContext, width){ var border = ownerContext.inputCmpContext.getBorderInfo().width, ieBug = Ext.isStrict && Ext.isIE8m, natural = ownerContext.widthModel.natural; this.callParent(arguments); width = ownerContext.bodyCellContext.props.width - border; if (natural) { if (ieBug) { width -= 2; } ownerContext.textAreaContext.setWidth(width); ownerContext.iframeContext.setWidth(width); } else if (ieBug) { ownerContext.textAreaContext.setWidth(width); } }, publishInnerHeight: function (ownerContext, height) { var toolbarHeight = ownerContext.toolbarContext.getProp('height'), sourceEdit = this.owner.sourceEditMode; this.callParent(arguments); height = ownerContext.bodyCellContext.props.height; if (toolbarHeight !== undefined) { height -= toolbarHeight + ownerContext.inputCmpContext.getFrameInfo().height; if (Ext.isIE8 && Ext.isStrict) { height -= 2; } else if (Ext.isIEQuirks && (Ext.isIE8 || Ext.isIE9)) { height -= 4; } ownerContext.iframeContext.setHeight(height); ownerContext.textAreaContext.setHeight(height); } else { this.done = false; } } });