1 <html><head><title>Roo/form/HtmlEditor.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-comment">//<script type="text/javascript">
5 * Copyright(c) 2006-2007, Ext JS, LLC.
11 </span><span class="jsdoc-var">Roo.form.HtmlEditor </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">){
15 </span><span class="jsdoc-var">Roo.form.HtmlEditor.superclass.constructor.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">);
17 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.toolbars</span><span class="jsdoc-syntax">) {
18 </span><span class="jsdoc-var">this.toolbars </span><span class="jsdoc-syntax">= [];
20 </span><span class="jsdoc-var">this.editorcore </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.HtmlEditorCore</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.apply</span><span class="jsdoc-syntax">({ </span><span class="jsdoc-var">owner </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">} , </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">));
25 </span><span class="jsdoc-comment">/**
26 * @class Roo.form.HtmlEditor
27 * @extends Roo.form.Field
28 * Provides a lightweight HTML Editor component.
30 * This has been tested on Fireforx / Chrome.. IE may not be so great..
32 * <br><br><b>Note: The focus/blur and validation marking functionality inherited from Ext.form.Field is NOT
33 * supported by this editor.</b><br/><br/>
34 * An Editor is a sensitive component that can't be used in all spots standard fields can be used. Putting an Editor within
35 * any element that has display set to 'none' can cause problems in Safari and Firefox.<br/><br/>
37 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.form.HtmlEditor</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.form.Field</span><span class="jsdoc-syntax">, {
38 </span><span class="jsdoc-comment">/**
39 * @cfg {Boolean} clearUp
41 </span><span class="jsdoc-var">clearUp </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
42 </span><span class="jsdoc-comment">/**
43 * @cfg {Array} toolbars Array of toolbars. - defaults to just the Standard one
45 </span><span class="jsdoc-var">toolbars </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
47 </span><span class="jsdoc-comment">/**
48 * @cfg {String} resizable 's' or 'se' or 'e' - wrapps the element in a
51 </span><span class="jsdoc-var">resizable </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
52 </span><span class="jsdoc-comment">/**
53 * @cfg {Number} height (in pixels)
55 </span><span class="jsdoc-var">height</span><span class="jsdoc-syntax">: 300,
56 </span><span class="jsdoc-comment">/**
57 * @cfg {Number} width (in pixels)
59 </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: 500,
61 </span><span class="jsdoc-comment">/**
62 * @cfg {Array} stylesheets url of stylesheets. set to [] to disable stylesheets - this is usally a good idea rootURL + '/roojs1/css/undoreset.css', .
65 </span><span class="jsdoc-var">stylesheets</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
68 </span><span class="jsdoc-comment">/**
69 * @cfg {Array} blacklist of css styles style attributes (blacklist overrides whitelist)
72 </span><span class="jsdoc-var">cblack</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
73 </span><span class="jsdoc-comment">/**
74 * @cfg {Array} whitelist of css styles style attributes (blacklist overrides whitelist)
77 </span><span class="jsdoc-var">cwhite</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
79 </span><span class="jsdoc-comment">/**
80 * @cfg {Array} blacklist of html tags - in addition to standard blacklist.
83 </span><span class="jsdoc-var">black</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
84 </span><span class="jsdoc-comment">/**
85 * @cfg {Array} whitelist of html tags - in addition to statndard whitelist
88 </span><span class="jsdoc-var">white</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
89 </span><span class="jsdoc-comment">/**
90 * @cfg {boolean} allowComments - default false - allow comments in HTML source - by default they are stripped - if you are editing email you may need this.
92 </span><span class="jsdoc-var">allowComments</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
93 </span><span class="jsdoc-comment">/**
94 * @cfg {boolean} enableBlocks - default true - if the block editor (table and figure should be enabled)
96 </span><span class="jsdoc-var">enableBlocks </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
98 </span><span class="jsdoc-comment">/**
99 * @cfg {boolean} autoClean - default true - loading and saving will remove quite a bit of formating,
100 * if you are doing an email editor, this probably needs disabling, it's designed
102 </span><span class="jsdoc-var">autoClean</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
103 </span><span class="jsdoc-comment">/**
104 * @cfg {string} bodyCls default '' default classes to add to body of editable area - usually undoreset is a good start..
106 </span><span class="jsdoc-var">bodyCls </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">,
107 </span><span class="jsdoc-comment">/**
108 * @cfg {String} language default en - language of text (usefull for rtl languages)
111 </span><span class="jsdoc-var">language</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'en'</span><span class="jsdoc-syntax">,
114 </span><span class="jsdoc-comment">// id of frame..
115 </span><span class="jsdoc-var">frameId</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
117 </span><span class="jsdoc-comment">// private properties
118 </span><span class="jsdoc-var">validationEvent </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
119 </span><span class="jsdoc-var">deferHeight</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
120 </span><span class="jsdoc-var">initialized </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
121 </span><span class="jsdoc-var">activated </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
123 </span><span class="jsdoc-var">onFocus </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.emptyFn</span><span class="jsdoc-syntax">,
124 </span><span class="jsdoc-var">iframePad</span><span class="jsdoc-syntax">:3,
125 </span><span class="jsdoc-var">hideMode</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">'offsets'</span><span class="jsdoc-syntax">,
127 </span><span class="jsdoc-var">actionMode </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'container'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-comment">// defaults to hiding it...
129 </span><span class="jsdoc-var">defaultAutoCreate </span><span class="jsdoc-syntax">: { </span><span class="jsdoc-comment">// modified by initCompnoent..
130 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"textarea"</span><span class="jsdoc-syntax">,
131 </span><span class="jsdoc-var">style</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">"width:500px;height:300px;"</span><span class="jsdoc-syntax">,
132 </span><span class="jsdoc-var">autocomplete</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"new-password"
133 </span><span class="jsdoc-syntax">},
135 </span><span class="jsdoc-comment">// private
136 </span><span class="jsdoc-var">initComponent </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
137 </span><span class="jsdoc-var">this.addEvents</span><span class="jsdoc-syntax">({
138 </span><span class="jsdoc-comment">/**
140 * Fires when the editor is fully initialized (including the iframe)
141 * @param {HtmlEditor} this
143 </span><span class="jsdoc-var">initialize</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
144 </span><span class="jsdoc-comment">/**
146 * Fires when the editor is first receives the focus. Any insertion must wait
147 * until after this event.
148 * @param {HtmlEditor} this
150 </span><span class="jsdoc-var">activate</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
151 </span><span class="jsdoc-comment">/**
153 * Fires before the textarea is updated with content from the editor iframe. Return false
154 * to cancel the sync.
155 * @param {HtmlEditor} this
156 * @param {String} html
158 </span><span class="jsdoc-var">beforesync</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
159 </span><span class="jsdoc-comment">/**
161 * Fires before the iframe editor is updated with content from the textarea. Return false
162 * to cancel the push.
163 * @param {HtmlEditor} this
164 * @param {String} html
166 </span><span class="jsdoc-var">beforepush</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
167 </span><span class="jsdoc-comment">/**
169 * Fires when the textarea is updated with content from the editor iframe.
170 * @param {HtmlEditor} this
171 * @param {String} html
173 </span><span class="jsdoc-var">sync</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
174 </span><span class="jsdoc-comment">/**
176 * Fires when the iframe editor is updated with content from the textarea.
177 * @param {HtmlEditor} this
178 * @param {String} html
180 </span><span class="jsdoc-var">push</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
181 </span><span class="jsdoc-comment">/**
182 * @event editmodechange
183 * Fires when the editor switches edit modes
184 * @param {HtmlEditor} this
185 * @param {Boolean} sourceEdit True if source edit, false if standard editing.
187 </span><span class="jsdoc-var">editmodechange</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
188 </span><span class="jsdoc-comment">/**
190 * Fires when on any editor (mouse up/down cursor movement etc.) - used for toolbar hooks.
191 * @param {HtmlEditor} this
193 </span><span class="jsdoc-var">editorevent</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
194 </span><span class="jsdoc-comment">/**
196 * Fires when on first focus - needed by toolbars..
197 * @param {HtmlEditor} this
199 </span><span class="jsdoc-var">firstfocus</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
200 </span><span class="jsdoc-comment">/**
202 * Auto save the htmlEditor value as a file into Events
203 * @param {HtmlEditor} this
205 </span><span class="jsdoc-var">autosave</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
206 </span><span class="jsdoc-comment">/**
207 * @event savedpreview
208 * preview the saved version of htmlEditor
209 * @param {HtmlEditor} this
211 </span><span class="jsdoc-var">savedpreview</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
213 </span><span class="jsdoc-comment">/**
214 * @event stylesheetsclick
215 * Fires when press the Sytlesheets button
216 * @param {Roo.HtmlEditorCore} this
218 </span><span class="jsdoc-var">stylesheetsclick</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
219 </span><span class="jsdoc-comment">/**
221 * Fires when press user pastes into the editor
222 * @param {Roo.HtmlEditorCore} this
224 </span><span class="jsdoc-var">paste</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true
226 </span><span class="jsdoc-syntax">});
227 </span><span class="jsdoc-var">this.defaultAutoCreate </span><span class="jsdoc-syntax">= {
228 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"textarea"</span><span class="jsdoc-syntax">,
229 </span><span class="jsdoc-var">style</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">'width: ' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.width </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'px;height: ' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.height </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'px;'</span><span class="jsdoc-syntax">,
230 </span><span class="jsdoc-var">autocomplete</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"new-password"
231 </span><span class="jsdoc-syntax">};
234 </span><span class="jsdoc-comment">/**
235 * Protected method that will not generally be called directly. It
236 * is called when the editor creates its toolbar. Override this method if you need to
237 * add custom toolbar buttons.
238 * @param {HtmlEditor} editor
240 </span><span class="jsdoc-var">createToolbar </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">editor</span><span class="jsdoc-syntax">){
241 </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"create toolbars"</span><span class="jsdoc-syntax">);
242 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">editor.toolbars </span><span class="jsdoc-syntax">|| !</span><span class="jsdoc-var">editor.toolbars.length</span><span class="jsdoc-syntax">) {
243 </span><span class="jsdoc-var">editor.toolbars </span><span class="jsdoc-syntax">= [ </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.form.HtmlEditor.ToolbarStandard</span><span class="jsdoc-syntax">() ]; </span><span class="jsdoc-comment">// can be empty?
244 </span><span class="jsdoc-syntax">}
246 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">=0 ; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">editor.toolbars.length</span><span class="jsdoc-syntax">;</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
247 </span><span class="jsdoc-var">editor.toolbars</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">Roo.factory</span><span class="jsdoc-syntax">(
248 </span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">editor.toolbars</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]) == </span><span class="jsdoc-string">'string' </span><span class="jsdoc-syntax">?
249 { </span><span class="jsdoc-var">xtype</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">editor.toolbars</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]} : </span><span class="jsdoc-var">editor.toolbars</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">],
250 </span><span class="jsdoc-var">Roo.form.HtmlEditor</span><span class="jsdoc-syntax">);
251 </span><span class="jsdoc-var">editor.toolbars</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.init</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">editor</span><span class="jsdoc-syntax">);
256 </span><span class="jsdoc-comment">/**
257 * get the Context selected node
258 * @returns {DomElement|boolean} selected node if active or false if none
261 </span><span class="jsdoc-var">getSelectedNode </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
263 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.toolbars.length </span><span class="jsdoc-syntax">< 2 || !</span><span class="jsdoc-var">this.toolbars</span><span class="jsdoc-syntax">[1]</span><span class="jsdoc-var">.tb</span><span class="jsdoc-syntax">) {
264 </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
266 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.toolbars</span><span class="jsdoc-syntax">[1]</span><span class="jsdoc-var">.tb.selectedNode</span><span class="jsdoc-syntax">;
269 </span><span class="jsdoc-comment">// private
270 </span><span class="jsdoc-var">onRender </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ct</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">)
272 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">_t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
273 </span><span class="jsdoc-var">Roo.form.HtmlEditor.superclass.onRender.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ct</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">);
275 </span><span class="jsdoc-var">this.wrap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.wrap</span><span class="jsdoc-syntax">({
276 </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">'x-html-editor-wrap'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">:{</span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">'x-html-editor-tb'</span><span class="jsdoc-syntax">}
279 </span><span class="jsdoc-var">this.editorcore.onRender</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ct</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">);
281 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.resizable</span><span class="jsdoc-syntax">) {
282 </span><span class="jsdoc-var">this.resizeEl </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.Resizable</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.wrap</span><span class="jsdoc-syntax">, {
283 </span><span class="jsdoc-var">pinned </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
284 </span><span class="jsdoc-var">wrap</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
285 </span><span class="jsdoc-var">dynamic </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
286 </span><span class="jsdoc-var">minHeight </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.height</span><span class="jsdoc-syntax">,
287 </span><span class="jsdoc-var">height</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.height</span><span class="jsdoc-syntax">,
288 </span><span class="jsdoc-var">handles </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.resizable</span><span class="jsdoc-syntax">,
289 </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.width</span><span class="jsdoc-syntax">,
290 </span><span class="jsdoc-var">listeners </span><span class="jsdoc-syntax">: {
291 </span><span class="jsdoc-var">resize </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">w</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">) {
292 </span><span class="jsdoc-var">_t.onResize</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">w</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">); </span><span class="jsdoc-comment">// -something
293 </span><span class="jsdoc-syntax">}
298 </span><span class="jsdoc-var">this.createToolbar</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
301 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.width</span><span class="jsdoc-syntax">){
302 </span><span class="jsdoc-var">this.setSize</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.wrap.getSize</span><span class="jsdoc-syntax">());
304 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.resizeEl</span><span class="jsdoc-syntax">) {
305 </span><span class="jsdoc-var">this.resizeEl.resizeTo.defer</span><span class="jsdoc-syntax">(100, </span><span class="jsdoc-var">this.resizeEl</span><span class="jsdoc-syntax">,[ </span><span class="jsdoc-var">this.width</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">this.height </span><span class="jsdoc-syntax">] );
306 </span><span class="jsdoc-comment">// should trigger onReize..
307 </span><span class="jsdoc-syntax">}
309 </span><span class="jsdoc-var">this.keyNav </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.KeyNav</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.el</span><span class="jsdoc-syntax">, {
311 </span><span class="jsdoc-string">"tab" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
312 </span><span class="jsdoc-var">e.preventDefault</span><span class="jsdoc-syntax">();
314 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">value </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getValue</span><span class="jsdoc-syntax">();
316 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">start </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.dom.selectionStart</span><span class="jsdoc-syntax">;
317 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">end </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.dom.selectionEnd</span><span class="jsdoc-syntax">;
319 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">e.shiftKey</span><span class="jsdoc-syntax">){
321 </span><span class="jsdoc-var">this.setValue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value.substring</span><span class="jsdoc-syntax">(0, </span><span class="jsdoc-var">start</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-string">"\t" </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">value.substring</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">end</span><span class="jsdoc-syntax">));
322 </span><span class="jsdoc-var">this.el.dom.setSelectionRange</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">end </span><span class="jsdoc-syntax">+ 1, </span><span class="jsdoc-var">end </span><span class="jsdoc-syntax">+ 1);
323 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
326 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">f </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">value.substring</span><span class="jsdoc-syntax">(0, </span><span class="jsdoc-var">start</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.split</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"\t"</span><span class="jsdoc-syntax">);
328 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">f.pop</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.length </span><span class="jsdoc-syntax">!= 0){
329 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
332 </span><span class="jsdoc-var">this.setValue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">f.join</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"\t"</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-var">value.substring</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">end</span><span class="jsdoc-syntax">));
333 </span><span class="jsdoc-var">this.el.dom.setSelectionRange</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">start </span><span class="jsdoc-syntax">- 1, </span><span class="jsdoc-var">start </span><span class="jsdoc-syntax">- 1);
337 </span><span class="jsdoc-string">"home" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
338 </span><span class="jsdoc-var">e.preventDefault</span><span class="jsdoc-syntax">();
340 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">curr </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.dom.selectionStart</span><span class="jsdoc-syntax">;
341 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">lines </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getValue</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.split</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"\n"</span><span class="jsdoc-syntax">);
343 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">lines.length</span><span class="jsdoc-syntax">){
344 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
347 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.ctrlKey</span><span class="jsdoc-syntax">){
348 </span><span class="jsdoc-var">this.el.dom.setSelectionRange</span><span class="jsdoc-syntax">(0, 0);
349 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
352 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">pos </span><span class="jsdoc-syntax">= 0;
354 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">lines.length</span><span class="jsdoc-syntax">;</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
355 </span><span class="jsdoc-var">pos </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">lines</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">;
357 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">!= 0){
358 </span><span class="jsdoc-var">pos </span><span class="jsdoc-syntax">+= 1;
361 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">pos </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">curr</span><span class="jsdoc-syntax">){
362 </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
365 </span><span class="jsdoc-var">pos </span><span class="jsdoc-syntax">-= </span><span class="jsdoc-var">lines</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">;
367 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
370 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">e.shiftKey</span><span class="jsdoc-syntax">){
371 </span><span class="jsdoc-var">this.el.dom.setSelectionRange</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">pos</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">pos</span><span class="jsdoc-syntax">);
372 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
375 </span><span class="jsdoc-var">this.el.dom.selectionStart </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">pos</span><span class="jsdoc-syntax">;
376 </span><span class="jsdoc-var">this.el.dom.selectionEnd </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">curr</span><span class="jsdoc-syntax">;
379 </span><span class="jsdoc-string">"end" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
380 </span><span class="jsdoc-var">e.preventDefault</span><span class="jsdoc-syntax">();
382 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">curr </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.dom.selectionStart</span><span class="jsdoc-syntax">;
383 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">lines </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getValue</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.split</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"\n"</span><span class="jsdoc-syntax">);
385 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">lines.length</span><span class="jsdoc-syntax">){
386 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
389 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.ctrlKey</span><span class="jsdoc-syntax">){
390 </span><span class="jsdoc-var">this.el.dom.setSelectionRange</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.getValue</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.getValue</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">);
391 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
394 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">pos </span><span class="jsdoc-syntax">= 0;
396 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">lines.length</span><span class="jsdoc-syntax">;</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
398 </span><span class="jsdoc-var">pos </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">lines</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">;
400 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">!= 0){
401 </span><span class="jsdoc-var">pos </span><span class="jsdoc-syntax">+= 1;
404 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">pos </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">curr</span><span class="jsdoc-syntax">){
405 </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
408 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
411 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">e.shiftKey</span><span class="jsdoc-syntax">){
412 </span><span class="jsdoc-var">this.el.dom.setSelectionRange</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">pos</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">pos</span><span class="jsdoc-syntax">);
413 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
416 </span><span class="jsdoc-var">this.el.dom.selectionStart </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">curr</span><span class="jsdoc-syntax">;
417 </span><span class="jsdoc-var">this.el.dom.selectionEnd </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">pos</span><span class="jsdoc-syntax">;
420 </span><span class="jsdoc-var">scope </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">,
422 </span><span class="jsdoc-var">doRelay </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">foo</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">bar</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">hname</span><span class="jsdoc-syntax">){
423 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">Roo.KeyNav.prototype.doRelay.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">arguments</span><span class="jsdoc-syntax">);
426 </span><span class="jsdoc-var">forceKeyDown</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true
427 </span><span class="jsdoc-syntax">});
429 </span><span class="jsdoc-comment">// if(this.autosave && this.w){
430 // this.autoSaveFn = setInterval(this.autosave, 1000);
432 </span><span class="jsdoc-syntax">},
434 </span><span class="jsdoc-comment">// private
435 </span><span class="jsdoc-var">onResize </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">w</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">)
437 </span><span class="jsdoc-var">Roo.form.HtmlEditor.superclass.onResize.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">arguments</span><span class="jsdoc-syntax">);
438 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ew </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
439 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">eh </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
441 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.el </span><span class="jsdoc-syntax">){
442 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">w </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'number'</span><span class="jsdoc-syntax">){
443 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">aw </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">w </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">this.wrap.getFrameWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'lr'</span><span class="jsdoc-syntax">);
444 </span><span class="jsdoc-var">this.el.setWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.adjustWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'textarea'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">aw</span><span class="jsdoc-syntax">));
445 </span><span class="jsdoc-var">ew </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">aw</span><span class="jsdoc-syntax">;
447 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">h </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'number'</span><span class="jsdoc-syntax">){
448 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">tbh </span><span class="jsdoc-syntax">= 0;
449 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">=0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">this.toolbars.length</span><span class="jsdoc-syntax">;</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
450 </span><span class="jsdoc-comment">// fixme - ask toolbars for heights?
451 </span><span class="jsdoc-var">tbh </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">this.toolbars</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.tb.el.getHeight</span><span class="jsdoc-syntax">();
452 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.toolbars</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.footer</span><span class="jsdoc-syntax">) {
453 </span><span class="jsdoc-var">tbh </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">this.toolbars</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.footer.el.getHeight</span><span class="jsdoc-syntax">();
460 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ah </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">h </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">this.wrap.getFrameWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'tb'</span><span class="jsdoc-syntax">) - </span><span class="jsdoc-var">tbh</span><span class="jsdoc-syntax">;</span><span class="jsdoc-comment">// this.tb.el.getHeight();
461 </span><span class="jsdoc-var">ah </span><span class="jsdoc-syntax">-= 5; </span><span class="jsdoc-comment">// knock a few pixes off for look..
463 </span><span class="jsdoc-var">this.el.setHeight</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.adjustWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'textarea'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ah</span><span class="jsdoc-syntax">));
464 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">eh </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ah</span><span class="jsdoc-syntax">;
467 </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'onResize:' </span><span class="jsdoc-syntax">+ [</span><span class="jsdoc-var">w</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">ew</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">eh</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.join</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">','</span><span class="jsdoc-syntax">) );
468 </span><span class="jsdoc-var">this.editorcore.onResize</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ew</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">eh</span><span class="jsdoc-syntax">);
472 </span><span class="jsdoc-comment">/**
473 * Toggles the editor between standard and source edit mode.
474 * @param {Boolean} sourceEdit (optional) True for source edit, false for standard
476 </span><span class="jsdoc-var">toggleSourceEdit </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">sourceEditMode</span><span class="jsdoc-syntax">)
478 </span><span class="jsdoc-var">this.editorcore.toggleSourceEdit</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">sourceEditMode</span><span class="jsdoc-syntax">);
480 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.editorcore.sourceEditMode</span><span class="jsdoc-syntax">){
481 </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'editor - showing textarea'</span><span class="jsdoc-syntax">);
483 </span><span class="jsdoc-comment">// Roo.log('in');
484 // Roo.log(this.syncValue());
485 </span><span class="jsdoc-var">this.editorcore.syncValue</span><span class="jsdoc-syntax">();
486 </span><span class="jsdoc-var">this.el.removeClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'x-hidden'</span><span class="jsdoc-syntax">);
487 </span><span class="jsdoc-var">this.el.dom.removeAttribute</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'tabIndex'</span><span class="jsdoc-syntax">);
488 </span><span class="jsdoc-var">this.el.focus</span><span class="jsdoc-syntax">();
489 </span><span class="jsdoc-var">this.el.dom.scrollTop </span><span class="jsdoc-syntax">= 0;
492 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">this.toolbars.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
493 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.toolbars</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] </span><span class="jsdoc-keyword">instanceof </span><span class="jsdoc-var">Roo.form.HtmlEditor.ToolbarContext</span><span class="jsdoc-syntax">){
494 </span><span class="jsdoc-var">this.toolbars</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.tb.hide</span><span class="jsdoc-syntax">();
495 </span><span class="jsdoc-var">this.toolbars</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.footer.hide</span><span class="jsdoc-syntax">();
499 }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
500 </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'editor - hiding textarea'</span><span class="jsdoc-syntax">);
501 </span><span class="jsdoc-comment">// Roo.log('out')
502 // Roo.log(this.pushValue());
503 </span><span class="jsdoc-var">this.editorcore.pushValue</span><span class="jsdoc-syntax">();
505 </span><span class="jsdoc-var">this.el.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'x-hidden'</span><span class="jsdoc-syntax">);
506 </span><span class="jsdoc-var">this.el.dom.setAttribute</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'tabIndex'</span><span class="jsdoc-syntax">, -1);
508 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">this.toolbars.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
509 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.toolbars</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] </span><span class="jsdoc-keyword">instanceof </span><span class="jsdoc-var">Roo.form.HtmlEditor.ToolbarContext</span><span class="jsdoc-syntax">){
510 </span><span class="jsdoc-var">this.toolbars</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.tb.show</span><span class="jsdoc-syntax">();
511 </span><span class="jsdoc-var">this.toolbars</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.footer.show</span><span class="jsdoc-syntax">();
515 </span><span class="jsdoc-comment">//this.deferFocus();
516 </span><span class="jsdoc-syntax">}
518 </span><span class="jsdoc-var">this.setSize</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.wrap.getSize</span><span class="jsdoc-syntax">());
519 </span><span class="jsdoc-var">this.onResize</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.wrap.getSize</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.width</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.wrap.getSize</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.height</span><span class="jsdoc-syntax">);
521 </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'editmodechange'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.editorcore.sourceEditMode</span><span class="jsdoc-syntax">);
524 </span><span class="jsdoc-comment">// private (for BoxComponent)
525 </span><span class="jsdoc-var">adjustSize </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.BoxComponent.prototype.adjustSize</span><span class="jsdoc-syntax">,
527 </span><span class="jsdoc-comment">// private (for BoxComponent)
528 </span><span class="jsdoc-var">getResizeEl </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
529 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.wrap</span><span class="jsdoc-syntax">;
532 </span><span class="jsdoc-comment">// private (for BoxComponent)
533 </span><span class="jsdoc-var">getPositionEl </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
534 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.wrap</span><span class="jsdoc-syntax">;
537 </span><span class="jsdoc-comment">// private
538 </span><span class="jsdoc-var">initEvents </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
539 </span><span class="jsdoc-var">this.originalValue </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getValue</span><span class="jsdoc-syntax">();
542 </span><span class="jsdoc-comment">/**
543 * Overridden and disabled. The editor element does not support standard valid/invalid marking. @hide
546 </span><span class="jsdoc-var">markInvalid </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.emptyFn</span><span class="jsdoc-syntax">,
547 </span><span class="jsdoc-comment">/**
548 * Overridden and disabled. The editor element does not support standard valid/invalid marking. @hide
551 </span><span class="jsdoc-var">clearInvalid </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.emptyFn</span><span class="jsdoc-syntax">,
553 </span><span class="jsdoc-var">setValue </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">){
554 </span><span class="jsdoc-var">Roo.form.HtmlEditor.superclass.setValue.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">);
555 </span><span class="jsdoc-var">this.editorcore.pushValue</span><span class="jsdoc-syntax">();
558 </span><span class="jsdoc-comment">/**
559 * update the language in the body - really done by core
560 * @param {String} language - eg. en / ar / zh-CN etc..
562 </span><span class="jsdoc-var">updateLanguage </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">lang</span><span class="jsdoc-syntax">)
564 </span><span class="jsdoc-var">this.language </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">lang</span><span class="jsdoc-syntax">;
565 </span><span class="jsdoc-var">this.editorcore.language </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">lang</span><span class="jsdoc-syntax">;
566 </span><span class="jsdoc-var">this.editorcore.updateLanguage</span><span class="jsdoc-syntax">();
569 </span><span class="jsdoc-comment">// private
570 </span><span class="jsdoc-var">deferFocus </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
571 </span><span class="jsdoc-var">this.focus.defer</span><span class="jsdoc-syntax">(10, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
574 </span><span class="jsdoc-comment">// doc'ed in Field
575 </span><span class="jsdoc-var">focus </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
576 </span><span class="jsdoc-var">this.editorcore.focus</span><span class="jsdoc-syntax">();
581 </span><span class="jsdoc-comment">// private
582 </span><span class="jsdoc-var">onDestroy </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
586 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.rendered</span><span class="jsdoc-syntax">){
588 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">=0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">this.toolbars.length</span><span class="jsdoc-syntax">;</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
589 </span><span class="jsdoc-comment">// fixme - ask toolbars for heights?
590 </span><span class="jsdoc-var">this.toolbars</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.onDestroy</span><span class="jsdoc-syntax">();
593 </span><span class="jsdoc-var">this.wrap.dom.innerHTML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
594 </span><span class="jsdoc-var">this.wrap.remove</span><span class="jsdoc-syntax">();
598 </span><span class="jsdoc-comment">// private
599 </span><span class="jsdoc-var">onFirstFocus </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
600 </span><span class="jsdoc-comment">//Roo.log("onFirstFocus");
601 </span><span class="jsdoc-var">this.editorcore.onFirstFocus</span><span class="jsdoc-syntax">();
602 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">=0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">this.toolbars.length</span><span class="jsdoc-syntax">;</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
603 </span><span class="jsdoc-var">this.toolbars</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.onFirstFocus</span><span class="jsdoc-syntax">();
608 </span><span class="jsdoc-comment">// private
609 </span><span class="jsdoc-var">syncValue </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
611 </span><span class="jsdoc-var">this.editorcore.syncValue</span><span class="jsdoc-syntax">();
614 </span><span class="jsdoc-var">pushValue </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
616 </span><span class="jsdoc-var">this.editorcore.pushValue</span><span class="jsdoc-syntax">();
619 </span><span class="jsdoc-var">setStylesheets </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">stylesheets</span><span class="jsdoc-syntax">)
621 </span><span class="jsdoc-var">this.editorcore.setStylesheets</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">stylesheets</span><span class="jsdoc-syntax">);
624 </span><span class="jsdoc-var">removeStylesheets </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
626 </span><span class="jsdoc-var">this.editorcore.removeStylesheets</span><span class="jsdoc-syntax">();
630 </span><span class="jsdoc-comment">// hide stuff that is not compatible
648 * @cfg {String} fieldClass @hide
651 * @cfg {String} focusClass @hide
654 * @cfg {String} autoCreate @hide
657 * @cfg {String} inputType @hide
660 * @cfg {String} invalidClass @hide
663 * @cfg {String} invalidText @hide
666 * @cfg {String} msgFx @hide
669 * @cfg {String} validateOnBlur @hide
671 </span><span class="jsdoc-syntax">});
673 </span></code></body></html>