Fix #7581 - selection of blocks
[roojs1] / docs / src / Roo_bootstrap_form_HtmlEditor.js.html
1 <html><head><title>Roo/bootstrap/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">/*
2  * - LGPL
3  *
4  * HtmlEditor
5  * 
6  */
7
8 /**
9  * @class Roo.bootstrap.form.HtmlEditor
10  * @extends Roo.bootstrap.form.TextArea
11  * Bootstrap HtmlEditor class
12
13  * @constructor
14  * Create a new HtmlEditor
15  * @param {Object} config The config object
16  */
17
18 </span><span class="jsdoc-var">Roo.bootstrap.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">){
19     </span><span class="jsdoc-var">Roo.bootstrap.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">);
20     </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.toolbars</span><span class="jsdoc-syntax">) {
21         </span><span class="jsdoc-var">this.toolbars </span><span class="jsdoc-syntax">= [];
22     }
23
24     </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-var">this.addEvents</span><span class="jsdoc-syntax">({
26             </span><span class="jsdoc-comment">/**
27              * @event initialize
28              * Fires when the editor is fully initialized (including the iframe)
29              * @param {HtmlEditor} this
30              */
31             </span><span class="jsdoc-var">initialize</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
32             </span><span class="jsdoc-comment">/**
33              * @event activate
34              * Fires when the editor is first receives the focus. Any insertion must wait
35              * until after this event.
36              * @param {HtmlEditor} this
37              */
38             </span><span class="jsdoc-var">activate</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
39              </span><span class="jsdoc-comment">/**
40              * @event beforesync
41              * Fires before the textarea is updated with content from the editor iframe. Return false
42              * to cancel the sync.
43              * @param {HtmlEditor} this
44              * @param {String} html
45              */
46             </span><span class="jsdoc-var">beforesync</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
47              </span><span class="jsdoc-comment">/**
48              * @event beforepush
49              * Fires before the iframe editor is updated with content from the textarea. Return false
50              * to cancel the push.
51              * @param {HtmlEditor} this
52              * @param {String} html
53              */
54             </span><span class="jsdoc-var">beforepush</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
55              </span><span class="jsdoc-comment">/**
56              * @event sync
57              * Fires when the textarea is updated with content from the editor iframe.
58              * @param {HtmlEditor} this
59              * @param {String} html
60              */
61             </span><span class="jsdoc-var">sync</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
62              </span><span class="jsdoc-comment">/**
63              * @event push
64              * Fires when the iframe editor is updated with content from the textarea.
65              * @param {HtmlEditor} this
66              * @param {String} html
67              */
68             </span><span class="jsdoc-var">push</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
69              </span><span class="jsdoc-comment">/**
70              * @event editmodechange
71              * Fires when the editor switches edit modes
72              * @param {HtmlEditor} this
73              * @param {Boolean} sourceEdit True if source edit, false if standard editing.
74              */
75             </span><span class="jsdoc-var">editmodechange</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
76             </span><span class="jsdoc-comment">/**
77              * @event editorevent
78              * Fires when on any editor (mouse up/down cursor movement etc.) - used for toolbar hooks.
79              * @param {HtmlEditor} this
80              */
81             </span><span class="jsdoc-var">editorevent</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
82             </span><span class="jsdoc-comment">/**
83              * @event firstfocus
84              * Fires when on first focus - needed by toolbars..
85              * @param {HtmlEditor} this
86              */
87             </span><span class="jsdoc-var">firstfocus</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
88             </span><span class="jsdoc-comment">/**
89              * @event autosave
90              * Auto save the htmlEditor value as a file into Events
91              * @param {HtmlEditor} this
92              */
93             </span><span class="jsdoc-var">autosave</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
94             </span><span class="jsdoc-comment">/**
95              * @event savedpreview
96              * preview the saved version of htmlEditor
97              * @param {HtmlEditor} this
98              */
99             </span><span class="jsdoc-var">savedpreview</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true
100         </span><span class="jsdoc-syntax">});
101 };
102
103
104 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.bootstrap.form.HtmlEditor</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.bootstrap.form.TextArea</span><span class="jsdoc-syntax">,  {
105
106
107       </span><span class="jsdoc-comment">/**
108      * @cfg {Array|boolean} toolbars Array of toolbars, or names of toolbars. - true for standard, and false for none.
109      */
110     </span><span class="jsdoc-var">toolbars </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
111
112      </span><span class="jsdoc-comment">/**
113     * @cfg {Array} buttons Array of toolbar's buttons. - defaults to empty
114     */
115     </span><span class="jsdoc-var">btns </span><span class="jsdoc-syntax">: [],
116
117      </span><span class="jsdoc-comment">/**
118      * @cfg {String} resize  (none|both|horizontal|vertical) - css resize of element
119      */
120     </span><span class="jsdoc-var">resize </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
121      </span><span class="jsdoc-comment">/**
122      * @cfg {Number} height (in pixels)
123      */
124     </span><span class="jsdoc-var">height</span><span class="jsdoc-syntax">: 300,
125    </span><span class="jsdoc-comment">/**
126      * @cfg {Number} width (in pixels)
127      */
128     </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
129
130     </span><span class="jsdoc-comment">/**
131      * @cfg {Array} stylesheets url of stylesheets. set to [] to disable stylesheets.
132      * 
133      */
134     </span><span class="jsdoc-var">stylesheets</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
135
136     </span><span class="jsdoc-comment">// id of frame..
137     </span><span class="jsdoc-var">frameId</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
138
139     </span><span class="jsdoc-comment">// private properties
140     </span><span class="jsdoc-var">validationEvent </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
141     </span><span class="jsdoc-var">deferHeight</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
142     </span><span class="jsdoc-var">initialized </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
143     </span><span class="jsdoc-var">activated </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
144
145     </span><span class="jsdoc-var">onFocus </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.emptyFn</span><span class="jsdoc-syntax">,
146     </span><span class="jsdoc-var">iframePad</span><span class="jsdoc-syntax">:3,
147     </span><span class="jsdoc-var">hideMode</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">'offsets'</span><span class="jsdoc-syntax">,
148
149     </span><span class="jsdoc-var">tbContainer </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
150
151     </span><span class="jsdoc-var">bodyCls </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">,
152
153     </span><span class="jsdoc-var">toolbarContainer </span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
154         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.wrap.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'.x-html-editor-tb'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.first</span><span class="jsdoc-syntax">();
155     },
156
157     </span><span class="jsdoc-comment">/**
158      * Protected method that will not generally be called directly. It
159      * is called when the editor creates its toolbar. Override this method if you need to
160      * add custom toolbar buttons.
161      * @param {HtmlEditor} editor
162      */
163     </span><span class="jsdoc-var">createToolbar </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
164     {
165         </span><span class="jsdoc-comment">//Roo.log('renewing');
166         //Roo.log(&quot;create toolbars&quot;);
167         </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-keyword">false</span><span class="jsdoc-syntax">) {
168             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
169         }
170         </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-keyword">true</span><span class="jsdoc-syntax">) {
171             </span><span class="jsdoc-var">this.toolbars </span><span class="jsdoc-syntax">= [ </span><span class="jsdoc-string">'Standard' </span><span class="jsdoc-syntax">];
172         }
173
174         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ar </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Array.from</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.toolbars</span><span class="jsdoc-syntax">);
175         </span><span class="jsdoc-var">this.toolbars </span><span class="jsdoc-syntax">= [];
176         </span><span class="jsdoc-var">ar.forEach</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">) {
177             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">) == </span><span class="jsdoc-string">'string'</span><span class="jsdoc-syntax">) {
178                 </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">= {
179                     </span><span class="jsdoc-var">xtype </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">t
180                 </span><span class="jsdoc-syntax">};
181             }
182             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">) == </span><span class="jsdoc-string">'object' </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">t.xtype</span><span class="jsdoc-syntax">) == </span><span class="jsdoc-string">'string'</span><span class="jsdoc-syntax">) {
183                 </span><span class="jsdoc-var">t.editor </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
184                 </span><span class="jsdoc-var">t.xns </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">t.xns </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">Roo.bootstrap.form.HtmlEditorToolbar</span><span class="jsdoc-syntax">;
185                 </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.factory</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">);
186             }
187             </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">t</span><span class="jsdoc-syntax">;
188             </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">.render</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.toolbarContainer</span><span class="jsdoc-syntax">());
189         }, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
190
191
192     },
193
194
195     </span><span class="jsdoc-comment">// private
196     </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">)
197     {
198        </span><span class="jsdoc-comment">// Roo.log(&quot;Call onRender: &quot; + this.xtype);
199         </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">;
200         </span><span class="jsdoc-var">Roo.bootstrap.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">);
201
202         </span><span class="jsdoc-var">this.wrap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.inputEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.wrap</span><span class="jsdoc-syntax">({
203             </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">}
204         });
205
206         </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">);
207
208
209         </span><span class="jsdoc-var">this.createToolbar</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
210
211
212
213
214     },
215
216     </span><span class="jsdoc-comment">// private
217     </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">)
218     {
219         </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'resize: ' </span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">w </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">',' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">h </span><span class="jsdoc-syntax">);
220         </span><span class="jsdoc-var">Roo.bootstrap.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">);
221         </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">;
222         </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">;
223
224         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.inputEl</span><span class="jsdoc-syntax">() ){
225             </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">){
226                 </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">);
227                 </span><span class="jsdoc-var">this.inputEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.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">));
228                 </span><span class="jsdoc-var">ew </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">aw</span><span class="jsdoc-syntax">;
229             }
230             </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">){
231                  </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">tbh </span><span class="jsdoc-syntax">= -11;  </span><span class="jsdoc-comment">// fixme it needs to tool bar size!
232                 </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">&lt; </span><span class="jsdoc-var">this.toolbars.length</span><span class="jsdoc-syntax">;</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
233                     </span><span class="jsdoc-comment">// fixme - ask toolbars for heights?
234                     </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">.el.getHeight</span><span class="jsdoc-syntax">();
235                     </span><span class="jsdoc-comment">//if (this.toolbars[i].footer) {
236                     //    tbh += this.toolbars[i].footer.el.getHeight();
237                     //}
238                 </span><span class="jsdoc-syntax">}
239
240
241
242
243
244                 </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();
245                 </span><span class="jsdoc-var">ah </span><span class="jsdoc-syntax">-= 5; </span><span class="jsdoc-comment">// knock a few pixes off for look..
246                 </span><span class="jsdoc-var">this.inputEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.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">));
247                 </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">;
248             }
249         }
250         </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">) );
251         </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">);
252
253     },
254
255     </span><span class="jsdoc-comment">/**
256      * Toggles the editor between standard and source edit mode.
257      * @param {Boolean} sourceEdit (optional) True for source edit, false for standard
258      */
259     </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">)
260     {
261         </span><span class="jsdoc-var">this.editorcore.toggleSourceEdit</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">sourceEditMode</span><span class="jsdoc-syntax">);
262
263         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.editorcore.sourceEditMode</span><span class="jsdoc-syntax">){
264             </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">);
265
266 </span><span class="jsdoc-comment">//            Roo.log('in');
267 //            Roo.log(this.syncValue());
268             </span><span class="jsdoc-var">this.syncValue</span><span class="jsdoc-syntax">();
269             </span><span class="jsdoc-var">this.inputEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.removeClass</span><span class="jsdoc-syntax">([</span><span class="jsdoc-string">'hide'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'x-hidden'</span><span class="jsdoc-syntax">]);
270             </span><span class="jsdoc-var">this.inputEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.dom.removeAttribute</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'tabIndex'</span><span class="jsdoc-syntax">);
271             </span><span class="jsdoc-var">this.inputEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.focus</span><span class="jsdoc-syntax">();
272         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
273             </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">);
274 </span><span class="jsdoc-comment">//            Roo.log('out')
275 //            Roo.log(this.pushValue()); 
276             </span><span class="jsdoc-var">this.pushValue</span><span class="jsdoc-syntax">();
277
278             </span><span class="jsdoc-var">this.inputEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.addClass</span><span class="jsdoc-syntax">([</span><span class="jsdoc-string">'hide'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'x-hidden'</span><span class="jsdoc-syntax">]);
279             </span><span class="jsdoc-var">this.inputEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.dom.setAttribute</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'tabIndex'</span><span class="jsdoc-syntax">, -1);
280             </span><span class="jsdoc-comment">//this.deferFocus();
281         </span><span class="jsdoc-syntax">}
282
283         </span><span class="jsdoc-comment">//if(this.resizable){
284         //    this.setSize(this.wrap.getSize());
285         //}
286
287         </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">);
288     },
289
290     </span><span class="jsdoc-comment">// private (for BoxComponent)
291     </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">,
292
293     </span><span class="jsdoc-comment">// private (for BoxComponent)
294     </span><span class="jsdoc-var">getResizeEl </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
295         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.wrap</span><span class="jsdoc-syntax">;
296     },
297
298     </span><span class="jsdoc-comment">// private (for BoxComponent)
299     </span><span class="jsdoc-var">getPositionEl </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
300         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.wrap</span><span class="jsdoc-syntax">;
301     },
302
303     </span><span class="jsdoc-comment">// private
304     </span><span class="jsdoc-var">initEvents </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
305         </span><span class="jsdoc-var">this.originalValue </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getValue</span><span class="jsdoc-syntax">();
306     },
307
308 </span><span class="jsdoc-comment">//    /**
309 //     * Overridden and disabled. The editor element does not support standard valid/invalid marking. @hide
310 //     * @method
311 //     */
312 //    markInvalid : Roo.emptyFn,
313 //    /**
314 //     * Overridden and disabled. The editor element does not support standard valid/invalid marking. @hide
315 //     * @method
316 //     */
317 //    clearInvalid : Roo.emptyFn,
318
319     </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">){
320         </span><span class="jsdoc-var">Roo.bootstrap.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">);
321         </span><span class="jsdoc-var">this.editorcore.pushValue</span><span class="jsdoc-syntax">();
322     },
323
324
325     </span><span class="jsdoc-comment">// private
326     </span><span class="jsdoc-var">deferFocus </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
327         </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">);
328     },
329
330     </span><span class="jsdoc-comment">// doc'ed in Field
331     </span><span class="jsdoc-var">focus </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
332         </span><span class="jsdoc-var">this.editorcore.focus</span><span class="jsdoc-syntax">();
333
334     },
335
336
337     </span><span class="jsdoc-comment">// private
338     </span><span class="jsdoc-var">onDestroy </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
339
340
341
342         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.rendered</span><span class="jsdoc-syntax">){
343
344             </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">&lt; </span><span class="jsdoc-var">this.toolbars.length</span><span class="jsdoc-syntax">;</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
345                 </span><span class="jsdoc-comment">// fixme - ask toolbars for heights?
346                 </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">();
347             }
348
349             </span><span class="jsdoc-var">this.wrap.dom.innerHTML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
350             </span><span class="jsdoc-var">this.wrap.remove</span><span class="jsdoc-syntax">();
351         }
352     },
353
354     </span><span class="jsdoc-comment">// private
355     </span><span class="jsdoc-var">onFirstFocus </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
356         </span><span class="jsdoc-comment">//Roo.log(&quot;onFirstFocus&quot;);
357         </span><span class="jsdoc-var">this.editorcore.onFirstFocus</span><span class="jsdoc-syntax">();
358          </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">&lt; </span><span class="jsdoc-var">this.toolbars.length</span><span class="jsdoc-syntax">;</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
359             </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">();
360         }
361
362     },
363
364     </span><span class="jsdoc-comment">// private
365     </span><span class="jsdoc-var">syncValue </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
366     {
367         </span><span class="jsdoc-var">this.editorcore.syncValue</span><span class="jsdoc-syntax">();
368     },
369
370     </span><span class="jsdoc-var">pushValue </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
371     {
372         </span><span class="jsdoc-var">this.editorcore.pushValue</span><span class="jsdoc-syntax">();
373     }
374
375
376     </span><span class="jsdoc-comment">// hide stuff that is not compatible
377     /**
378      * @event blur
379      * @hide
380      */
381     /**
382      * @event change
383      * @hide
384      */
385     /**
386      * @event focus
387      * @hide
388      */
389     /**
390      * @event specialkey
391      * @hide
392      */
393     /**
394      * @cfg {String} fieldClass @hide
395      */
396     /**
397      * @cfg {String} focusClass @hide
398      */
399     /**
400      * @cfg {String} autoCreate @hide
401      */
402     /**
403      * @cfg {String} inputType @hide
404      */
405
406     /**
407      * @cfg {String} invalidText @hide
408      */
409     /**
410      * @cfg {String} msgFx @hide
411      */
412     /**
413      * @cfg {String} validateOnBlur @hide
414      */
415 </span><span class="jsdoc-syntax">});
416
417
418
419
420
421     </span></code></body></html>