1 <html><head><title>../roojs1/Roo/form/HtmlEditor/ToolbarContext.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.
12 * @class Roo.form.HtmlEditor.ToolbarContext
17 new Roo.form.HtmlEditor({
20 { xtype: 'ToolbarStandard', styles : {} }
21 { xtype: 'ToolbarContext', disable : {} }
27 * @config : {Object} disable List of elements to disable.. (not done yet.)
28 * @config : {Object} styles Map of styles available.
32 </span><span class="jsdoc-var">Roo.form.HtmlEditor.ToolbarContext </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">)
35 </span><span class="jsdoc-var">Roo.apply</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">);
36 </span><span class="jsdoc-comment">//Roo.form.HtmlEditorToolbar1.superclass.constructor.call(this, editor.wrap.dom.firstChild, [], config);
37 // dont call parent... till later.
38 </span><span class="jsdoc-var">this.styles </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.styles </span><span class="jsdoc-syntax">|| {};
40 </span><span class="jsdoc-var">Roo.form.HtmlEditor.ToolbarContext.types </span><span class="jsdoc-syntax">= {
41 </span><span class="jsdoc-string">'IMG' </span><span class="jsdoc-syntax">: {
42 </span><span class="jsdoc-var">width </span><span class="jsdoc-syntax">: {
43 </span><span class="jsdoc-var">title</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"Width"</span><span class="jsdoc-syntax">,
44 </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: 40
46 </span><span class="jsdoc-var">height</span><span class="jsdoc-syntax">: {
47 </span><span class="jsdoc-var">title</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"Height"</span><span class="jsdoc-syntax">,
48 </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: 40
50 </span><span class="jsdoc-var">align</span><span class="jsdoc-syntax">: {
51 </span><span class="jsdoc-var">title</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"Align"</span><span class="jsdoc-syntax">,
52 </span><span class="jsdoc-var">opts </span><span class="jsdoc-syntax">: [ [</span><span class="jsdoc-string">""</span><span class="jsdoc-syntax">],[ </span><span class="jsdoc-string">"left"</span><span class="jsdoc-syntax">],[ </span><span class="jsdoc-string">"right"</span><span class="jsdoc-syntax">],[ </span><span class="jsdoc-string">"center"</span><span class="jsdoc-syntax">],[ </span><span class="jsdoc-string">"top"</span><span class="jsdoc-syntax">]],
53 </span><span class="jsdoc-var">width </span><span class="jsdoc-syntax">: 80
56 </span><span class="jsdoc-var">border</span><span class="jsdoc-syntax">: {
57 </span><span class="jsdoc-var">title</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"Border"</span><span class="jsdoc-syntax">,
58 </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: 40
60 </span><span class="jsdoc-var">alt</span><span class="jsdoc-syntax">: {
61 </span><span class="jsdoc-var">title</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"Alt"</span><span class="jsdoc-syntax">,
62 </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: 120
64 </span><span class="jsdoc-var">src </span><span class="jsdoc-syntax">: {
65 </span><span class="jsdoc-var">title</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"Src"</span><span class="jsdoc-syntax">,
66 </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: 220
70 </span><span class="jsdoc-string">'A' </span><span class="jsdoc-syntax">: {
71 </span><span class="jsdoc-var">name </span><span class="jsdoc-syntax">: {
72 </span><span class="jsdoc-var">title</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"Name"</span><span class="jsdoc-syntax">,
73 </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: 50
75 </span><span class="jsdoc-var">href</span><span class="jsdoc-syntax">: {
76 </span><span class="jsdoc-var">title</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"Href"</span><span class="jsdoc-syntax">,
77 </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: 220
78 } </span><span class="jsdoc-comment">// border?
80 </span><span class="jsdoc-syntax">},
81 </span><span class="jsdoc-string">'TABLE' </span><span class="jsdoc-syntax">: {
82 </span><span class="jsdoc-var">rows </span><span class="jsdoc-syntax">: {
83 </span><span class="jsdoc-var">title</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"Rows"</span><span class="jsdoc-syntax">,
84 </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: 20
86 </span><span class="jsdoc-var">cols </span><span class="jsdoc-syntax">: {
87 </span><span class="jsdoc-var">title</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"Cols"</span><span class="jsdoc-syntax">,
88 </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: 20
90 </span><span class="jsdoc-var">width </span><span class="jsdoc-syntax">: {
91 </span><span class="jsdoc-var">title</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"Width"</span><span class="jsdoc-syntax">,
92 </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: 40
94 </span><span class="jsdoc-var">height </span><span class="jsdoc-syntax">: {
95 </span><span class="jsdoc-var">title</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"Height"</span><span class="jsdoc-syntax">,
96 </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: 40
98 </span><span class="jsdoc-var">border </span><span class="jsdoc-syntax">: {
99 </span><span class="jsdoc-var">title</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"Border"</span><span class="jsdoc-syntax">,
100 </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: 20
103 </span><span class="jsdoc-string">'TD' </span><span class="jsdoc-syntax">: {
104 </span><span class="jsdoc-var">width </span><span class="jsdoc-syntax">: {
105 </span><span class="jsdoc-var">title</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"Width"</span><span class="jsdoc-syntax">,
106 </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: 40
108 </span><span class="jsdoc-var">height </span><span class="jsdoc-syntax">: {
109 </span><span class="jsdoc-var">title</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"Height"</span><span class="jsdoc-syntax">,
110 </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: 40
112 </span><span class="jsdoc-var">align</span><span class="jsdoc-syntax">: {
113 </span><span class="jsdoc-var">title</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"Align"</span><span class="jsdoc-syntax">,
114 </span><span class="jsdoc-var">opts </span><span class="jsdoc-syntax">: [[</span><span class="jsdoc-string">""</span><span class="jsdoc-syntax">],[ </span><span class="jsdoc-string">"left"</span><span class="jsdoc-syntax">],[ </span><span class="jsdoc-string">"center"</span><span class="jsdoc-syntax">],[ </span><span class="jsdoc-string">"right"</span><span class="jsdoc-syntax">],[ </span><span class="jsdoc-string">"justify"</span><span class="jsdoc-syntax">],[ </span><span class="jsdoc-string">"char"</span><span class="jsdoc-syntax">]],
115 </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: 80
117 </span><span class="jsdoc-var">valign</span><span class="jsdoc-syntax">: {
118 </span><span class="jsdoc-var">title</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"Valign"</span><span class="jsdoc-syntax">,
119 </span><span class="jsdoc-var">opts </span><span class="jsdoc-syntax">: [[</span><span class="jsdoc-string">""</span><span class="jsdoc-syntax">],[ </span><span class="jsdoc-string">"top"</span><span class="jsdoc-syntax">],[ </span><span class="jsdoc-string">"middle"</span><span class="jsdoc-syntax">],[ </span><span class="jsdoc-string">"bottom"</span><span class="jsdoc-syntax">],[ </span><span class="jsdoc-string">"baseline"</span><span class="jsdoc-syntax">]],
120 </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: 80
122 </span><span class="jsdoc-var">colspan</span><span class="jsdoc-syntax">: {
123 </span><span class="jsdoc-var">title</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"Colspan"</span><span class="jsdoc-syntax">,
124 </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: 20
128 </span><span class="jsdoc-string">'INPUT' </span><span class="jsdoc-syntax">: {
129 </span><span class="jsdoc-var">name </span><span class="jsdoc-syntax">: {
130 </span><span class="jsdoc-var">title</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"name"</span><span class="jsdoc-syntax">,
131 </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: 120
133 </span><span class="jsdoc-var">value </span><span class="jsdoc-syntax">: {
134 </span><span class="jsdoc-var">title</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"Value"</span><span class="jsdoc-syntax">,
135 </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: 120
137 </span><span class="jsdoc-var">width </span><span class="jsdoc-syntax">: {
138 </span><span class="jsdoc-var">title</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"Width"</span><span class="jsdoc-syntax">,
139 </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: 40
142 </span><span class="jsdoc-string">'LABEL' </span><span class="jsdoc-syntax">: {
143 </span><span class="jsdoc-string">'for' </span><span class="jsdoc-syntax">: {
144 </span><span class="jsdoc-var">title</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"For"</span><span class="jsdoc-syntax">,
145 </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: 120
148 </span><span class="jsdoc-string">'TEXTAREA' </span><span class="jsdoc-syntax">: {
149 </span><span class="jsdoc-var">name </span><span class="jsdoc-syntax">: {
150 </span><span class="jsdoc-var">title</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"name"</span><span class="jsdoc-syntax">,
151 </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: 120
153 </span><span class="jsdoc-var">rows </span><span class="jsdoc-syntax">: {
154 </span><span class="jsdoc-var">title</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"Rows"</span><span class="jsdoc-syntax">,
155 </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: 20
157 </span><span class="jsdoc-var">cols </span><span class="jsdoc-syntax">: {
158 </span><span class="jsdoc-var">title</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"Cols"</span><span class="jsdoc-syntax">,
159 </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: 20
162 </span><span class="jsdoc-string">'SELECT' </span><span class="jsdoc-syntax">: {
163 </span><span class="jsdoc-var">name </span><span class="jsdoc-syntax">: {
164 </span><span class="jsdoc-var">title</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"name"</span><span class="jsdoc-syntax">,
165 </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: 120
167 </span><span class="jsdoc-var">selectoptions </span><span class="jsdoc-syntax">: {
168 </span><span class="jsdoc-var">title</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"Options"</span><span class="jsdoc-syntax">,
169 </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: 200
173 </span><span class="jsdoc-comment">// should we really allow this??
174 // should this just be
175 </span><span class="jsdoc-string">'BODY' </span><span class="jsdoc-syntax">: {
176 </span><span class="jsdoc-var">title </span><span class="jsdoc-syntax">: {
177 </span><span class="jsdoc-var">title</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"title"</span><span class="jsdoc-syntax">,
178 </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: 200,
179 </span><span class="jsdoc-var">disabled </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true
180 </span><span class="jsdoc-syntax">}
182 </span><span class="jsdoc-string">'*' </span><span class="jsdoc-syntax">: {
183 </span><span class="jsdoc-comment">// empty..
184 </span><span class="jsdoc-syntax">}
189 </span><span class="jsdoc-var">Roo.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.form.HtmlEditor.ToolbarContext.prototype</span><span class="jsdoc-syntax">, {
191 </span><span class="jsdoc-var">tb</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
193 </span><span class="jsdoc-var">rendered</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
195 </span><span class="jsdoc-var">editor </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
196 </span><span class="jsdoc-comment">/**
197 * @cfg {Object} disable List of toolbar elements to disable
200 </span><span class="jsdoc-var">disable </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
201 </span><span class="jsdoc-comment">/**
202 * @cfg {Object} styles List of styles
203 * eg. { '*' : [ 'headline' ] , 'TD' : [ 'underline', 'double-underline' ] }
205 * These must be defined in the page, so they get rendered correctly..
210 </span><span class="jsdoc-var">styles </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
214 </span><span class="jsdoc-var">toolbars </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
216 </span><span class="jsdoc-var">init </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">)
218 </span><span class="jsdoc-var">this.editor </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">editor</span><span class="jsdoc-syntax">;
221 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">fid </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">editor.frameId</span><span class="jsdoc-syntax">;
222 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">etb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
223 </span><span class="jsdoc-keyword">function </span><span class="jsdoc-var">btn</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">toggle</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">handler</span><span class="jsdoc-syntax">){
224 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">xid </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">fid </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'-'</span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">id </span><span class="jsdoc-syntax">;
225 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">{
226 </span><span class="jsdoc-var">id </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">xid</span><span class="jsdoc-syntax">,
227 </span><span class="jsdoc-var">cmd </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">,
228 </span><span class="jsdoc-var">cls </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'x-btn-icon x-edit-'</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">,
229 </span><span class="jsdoc-var">enableToggle</span><span class="jsdoc-syntax">:</span><span class="jsdoc-var">toggle </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
230 </span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">editor</span><span class="jsdoc-syntax">, </span><span class="jsdoc-comment">// was editor...
231 </span><span class="jsdoc-var">handler</span><span class="jsdoc-syntax">:</span><span class="jsdoc-var">handler</span><span class="jsdoc-syntax">||</span><span class="jsdoc-var">editor.relayBtnCmd</span><span class="jsdoc-syntax">,
232 </span><span class="jsdoc-var">clickEvent</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">'mousedown'</span><span class="jsdoc-syntax">,
233 </span><span class="jsdoc-var">tooltip</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">etb.buttonTips</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">] || </span><span class="jsdoc-var">undefined</span><span class="jsdoc-syntax">, </span><span class="jsdoc-comment">///tips ???
234 </span><span class="jsdoc-var">tabIndex</span><span class="jsdoc-syntax">:-1
237 </span><span class="jsdoc-comment">// create a new element.
238 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">wdiv </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">editor.wrap.createChild</span><span class="jsdoc-syntax">({
239 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'div'
240 </span><span class="jsdoc-syntax">}, </span><span class="jsdoc-var">editor.wrap.dom.firstChild.nextSibling</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
242 </span><span class="jsdoc-comment">// can we do this more than once??
247 // disable everything...
248 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ty</span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.form.HtmlEditor.ToolbarContext.types</span><span class="jsdoc-syntax">;
249 </span><span class="jsdoc-var">this.toolbars </span><span class="jsdoc-syntax">= {};
251 </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-keyword">in </span><span class="jsdoc-var">ty</span><span class="jsdoc-syntax">) {
253 </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">this.buildToolbar</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ty</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">],</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">);
255 </span><span class="jsdoc-var">this.tb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.toolbars.BODY</span><span class="jsdoc-syntax">;
256 </span><span class="jsdoc-var">this.tb.el.show</span><span class="jsdoc-syntax">();
257 </span><span class="jsdoc-var">this.buildFooter</span><span class="jsdoc-syntax">();
258 </span><span class="jsdoc-var">this.footer.show</span><span class="jsdoc-syntax">();
260 </span><span class="jsdoc-var">this.rendered </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
262 </span><span class="jsdoc-comment">// the all the btns;
263 </span><span class="jsdoc-var">editor.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'editorevent'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.updateToolbar</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
264 </span><span class="jsdoc-comment">// other toolbars need to implement this..
265 //editor.on('editmodechange', this.updateToolbar, this);
266 </span><span class="jsdoc-syntax">},
270 </span><span class="jsdoc-comment">/**
271 * Protected method that will not generally be called directly. It triggers
272 * a toolbar update by reading the markup state of the current selection in the editor.
274 </span><span class="jsdoc-var">updateToolbar</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ignore_a</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">ignore_b</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">sel</span><span class="jsdoc-syntax">){
277 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.editor.activated</span><span class="jsdoc-syntax">){
278 </span><span class="jsdoc-var">this.editor.onFirstFocus</span><span class="jsdoc-syntax">();
279 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
281 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">updateFooter </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">sel </span><span class="jsdoc-syntax">? </span><span class="jsdoc-keyword">false </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
284 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ans </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.editor.getAllAncestors</span><span class="jsdoc-syntax">();
286 </span><span class="jsdoc-comment">// pick
287 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ty</span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.form.HtmlEditor.ToolbarContext.types</span><span class="jsdoc-syntax">;
289 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">sel</span><span class="jsdoc-syntax">) {
290 </span><span class="jsdoc-var">sel </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ans.length </span><span class="jsdoc-syntax">? (</span><span class="jsdoc-var">ans</span><span class="jsdoc-syntax">[0] ? </span><span class="jsdoc-var">ans</span><span class="jsdoc-syntax">[0] : </span><span class="jsdoc-var">ans</span><span class="jsdoc-syntax">[1]) : </span><span class="jsdoc-var">this.editor.doc.body</span><span class="jsdoc-syntax">;
291 </span><span class="jsdoc-var">sel </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">sel </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">sel </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.editor.doc.body</span><span class="jsdoc-syntax">;
292 </span><span class="jsdoc-var">sel </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">sel.tagName.length </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">sel </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.editor.doc.body</span><span class="jsdoc-syntax">;
295 </span><span class="jsdoc-comment">// pick a menu that exists..
296 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">tn </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">sel.tagName.toUpperCase</span><span class="jsdoc-syntax">();
297 </span><span class="jsdoc-comment">//sel = typeof(ty[tn]) != 'undefined' ? sel : this.editor.doc.body;
299 </span><span class="jsdoc-var">tn </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">sel.tagName.toUpperCase</span><span class="jsdoc-syntax">();
301 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">lastSel </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.tb.selectedNode
303 this.tb.selectedNode </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">sel</span><span class="jsdoc-syntax">;
305 </span><span class="jsdoc-comment">// if current menu does not match..
306 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">((</span><span class="jsdoc-var">this.tb.name </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-var">tn</span><span class="jsdoc-syntax">) || (</span><span class="jsdoc-var">lastSel </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-var">this.tb.selectedNode</span><span class="jsdoc-syntax">)) {
308 </span><span class="jsdoc-var">this.tb.el.hide</span><span class="jsdoc-syntax">();
309 </span><span class="jsdoc-comment">///console.log("show: " + tn);
310 </span><span class="jsdoc-var">this.tb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ty</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">tn</span><span class="jsdoc-syntax">]) != </span><span class="jsdoc-string">'undefined' </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.toolbars</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">tn</span><span class="jsdoc-syntax">] : </span><span class="jsdoc-var">this.toolbars</span><span class="jsdoc-syntax">[</span><span class="jsdoc-string">'*'</span><span class="jsdoc-syntax">];
311 </span><span class="jsdoc-var">this.tb.el.show</span><span class="jsdoc-syntax">();
312 </span><span class="jsdoc-comment">// update name
313 </span><span class="jsdoc-var">this.tb.items.first</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.el.innerHTML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">tn </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">':&nbsp;'</span><span class="jsdoc-syntax">;
316 </span><span class="jsdoc-comment">// update attributes
317 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.tb.fields</span><span class="jsdoc-syntax">) {
318 </span><span class="jsdoc-var">this.tb.fields.each</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">) {
319 </span><span class="jsdoc-var">e.setValue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">sel.getAttribute</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.name</span><span class="jsdoc-syntax">));
323 </span><span class="jsdoc-comment">// update styles
324 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">st </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.tb.fields.item</span><span class="jsdoc-syntax">(0);
325 </span><span class="jsdoc-var">st.store.removeAll</span><span class="jsdoc-syntax">();
326 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cn </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">sel.className.split</span><span class="jsdoc-syntax">(/\s+/);
328 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">avs </span><span class="jsdoc-syntax">= [];
329 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.styles</span><span class="jsdoc-syntax">[</span><span class="jsdoc-string">'*'</span><span class="jsdoc-syntax">]) {
331 </span><span class="jsdoc-var">Roo.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.styles</span><span class="jsdoc-syntax">[</span><span class="jsdoc-string">'*'</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">) {
332 </span><span class="jsdoc-var">avs.push</span><span class="jsdoc-syntax">( [ </span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cn.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">) > -1 ? 1 : 0 ] );
335 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.styles</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">tn</span><span class="jsdoc-syntax">]) {
336 </span><span class="jsdoc-var">Roo.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.styles</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">tn</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">) {
337 </span><span class="jsdoc-var">avs.push</span><span class="jsdoc-syntax">( [ </span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cn.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">) > -1 ? 1 : 0 ] );
341 </span><span class="jsdoc-var">st.store.loadData</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">avs</span><span class="jsdoc-syntax">);
342 </span><span class="jsdoc-var">st.collapse</span><span class="jsdoc-syntax">();
343 </span><span class="jsdoc-var">st.setValue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">);
345 </span><span class="jsdoc-comment">// flag our selected Node.
346 </span><span class="jsdoc-var">this.tb.selectedNode </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">sel</span><span class="jsdoc-syntax">;
349 </span><span class="jsdoc-var">Roo.menu.MenuMgr.hideAll</span><span class="jsdoc-syntax">();
353 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">updateFooter</span><span class="jsdoc-syntax">) {
354 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
356 </span><span class="jsdoc-comment">// update the footer
358 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">html </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
360 </span><span class="jsdoc-var">this.footerEls </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ans.reverse</span><span class="jsdoc-syntax">();
361 </span><span class="jsdoc-var">Roo.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.footerEls</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">) {
362 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">) { </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">; }
363 </span><span class="jsdoc-var">html </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">html.length </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">' &gt; ' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
365 </span><span class="jsdoc-var">html </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">'<span class="x-ed-loc-' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'">' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">a.tagName </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'</span>'</span><span class="jsdoc-syntax">;
369 </span><span class="jsdoc-comment">//
370 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">sz </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.footDisp.up</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'td'</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.getSize</span><span class="jsdoc-syntax">();
371 </span><span class="jsdoc-var">this.footDisp.dom.style.width </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">sz.width </span><span class="jsdoc-syntax">-10) + </span><span class="jsdoc-string">'px'</span><span class="jsdoc-syntax">;
372 </span><span class="jsdoc-var">this.footDisp.dom.style.marginLeft </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'5px'</span><span class="jsdoc-syntax">;
374 </span><span class="jsdoc-var">this.footDisp.dom.style.overflow </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'hidden'</span><span class="jsdoc-syntax">;
376 </span><span class="jsdoc-var">this.footDisp.dom.innerHTML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">;
378 </span><span class="jsdoc-comment">//this.editorsyncValue();
379 </span><span class="jsdoc-syntax">},
382 </span><span class="jsdoc-comment">// private
383 </span><span class="jsdoc-var">onDestroy </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
384 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.rendered</span><span class="jsdoc-syntax">){
386 </span><span class="jsdoc-var">this.tb.items.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">item</span><span class="jsdoc-syntax">){
387 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">item.menu</span><span class="jsdoc-syntax">){
388 </span><span class="jsdoc-var">item.menu.removeAll</span><span class="jsdoc-syntax">();
389 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">item.menu.el</span><span class="jsdoc-syntax">){
390 </span><span class="jsdoc-var">item.menu.el.destroy</span><span class="jsdoc-syntax">();
393 </span><span class="jsdoc-var">item.destroy</span><span class="jsdoc-syntax">();
398 </span><span class="jsdoc-var">onFirstFocus</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
399 </span><span class="jsdoc-comment">// need to do this for all the toolbars..
400 </span><span class="jsdoc-var">this.tb.items.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">item</span><span class="jsdoc-syntax">){
401 </span><span class="jsdoc-var">item.enable</span><span class="jsdoc-syntax">();
404 </span><span class="jsdoc-var">buildToolbar</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tlist</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">nm</span><span class="jsdoc-syntax">)
406 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">editor </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.editor</span><span class="jsdoc-syntax">;
407 </span><span class="jsdoc-comment">// create a new element.
408 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">wdiv </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">editor.wrap.createChild</span><span class="jsdoc-syntax">({
409 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'div'
410 </span><span class="jsdoc-syntax">}, </span><span class="jsdoc-var">editor.wrap.dom.firstChild.nextSibling</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
413 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">tb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.Toolbar</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">wdiv</span><span class="jsdoc-syntax">);
414 </span><span class="jsdoc-comment">// add the name..
416 </span><span class="jsdoc-var">tb.add</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">nm</span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">":&nbsp;"</span><span class="jsdoc-syntax">);
418 </span><span class="jsdoc-comment">// styles...
419 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.styles</span><span class="jsdoc-syntax">) {
421 </span><span class="jsdoc-comment">// this needs a multi-select checkbox...
422 </span><span class="jsdoc-var">tb.addField</span><span class="jsdoc-syntax">( </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.form.ComboBox</span><span class="jsdoc-syntax">({
423 </span><span class="jsdoc-var">store</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.data.SimpleStore</span><span class="jsdoc-syntax">({
424 </span><span class="jsdoc-var">id </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'val'</span><span class="jsdoc-syntax">,
425 </span><span class="jsdoc-var">fields</span><span class="jsdoc-syntax">: [</span><span class="jsdoc-string">'val'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'selected'</span><span class="jsdoc-syntax">],
426 </span><span class="jsdoc-var">data </span><span class="jsdoc-syntax">: []
428 </span><span class="jsdoc-var">name </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'className'</span><span class="jsdoc-syntax">,
429 </span><span class="jsdoc-var">displayField</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">'val'</span><span class="jsdoc-syntax">,
430 </span><span class="jsdoc-var">typeAhead</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
431 </span><span class="jsdoc-var">mode</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'local'</span><span class="jsdoc-syntax">,
432 </span><span class="jsdoc-var">editable </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
433 </span><span class="jsdoc-var">triggerAction</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'all'</span><span class="jsdoc-syntax">,
434 </span><span class="jsdoc-var">emptyText</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">'Select Style'</span><span class="jsdoc-syntax">,
435 </span><span class="jsdoc-var">selectOnFocus</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
436 </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: 130,
437 </span><span class="jsdoc-var">listeners </span><span class="jsdoc-syntax">: {
438 </span><span class="jsdoc-string">'select'</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">) {
439 </span><span class="jsdoc-comment">// initial support only for on class per el..
440 </span><span class="jsdoc-var">tb.selectedNode.className </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">r.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'val'</span><span class="jsdoc-syntax">) : </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
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-keyword">in </span><span class="jsdoc-var">tlist</span><span class="jsdoc-syntax">) {
451 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">item </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">tlist</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
452 </span><span class="jsdoc-var">tb.add</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">item.title </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">":&nbsp;"</span><span class="jsdoc-syntax">);
457 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">item.opts</span><span class="jsdoc-syntax">) {
458 </span><span class="jsdoc-comment">// opts == pulldown..
459 </span><span class="jsdoc-var">tb.addField</span><span class="jsdoc-syntax">( </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.form.ComboBox</span><span class="jsdoc-syntax">({
460 </span><span class="jsdoc-var">store</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.data.SimpleStore</span><span class="jsdoc-syntax">({
461 </span><span class="jsdoc-var">id </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'val'</span><span class="jsdoc-syntax">,
462 </span><span class="jsdoc-var">fields</span><span class="jsdoc-syntax">: [</span><span class="jsdoc-string">'val'</span><span class="jsdoc-syntax">],
463 </span><span class="jsdoc-var">data </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">item.opts
464 </span><span class="jsdoc-syntax">}),
465 </span><span class="jsdoc-var">name </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">,
466 </span><span class="jsdoc-var">displayField</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">'val'</span><span class="jsdoc-syntax">,
467 </span><span class="jsdoc-var">typeAhead</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
468 </span><span class="jsdoc-var">mode</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'local'</span><span class="jsdoc-syntax">,
469 </span><span class="jsdoc-var">editable </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
470 </span><span class="jsdoc-var">triggerAction</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'all'</span><span class="jsdoc-syntax">,
471 </span><span class="jsdoc-var">emptyText</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">'Select'</span><span class="jsdoc-syntax">,
472 </span><span class="jsdoc-var">selectOnFocus</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
473 </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">item.width </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">item.width </span><span class="jsdoc-syntax">: 130,
474 </span><span class="jsdoc-var">listeners </span><span class="jsdoc-syntax">: {
475 </span><span class="jsdoc-string">'select'</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">) {
476 </span><span class="jsdoc-var">tb.selectedNode.setAttribute</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">c.name</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">r.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'val'</span><span class="jsdoc-syntax">));
481 </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
485 </span><span class="jsdoc-var">tb.addField</span><span class="jsdoc-syntax">( </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.form.TextField</span><span class="jsdoc-syntax">({
486 </span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">,
487 </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: 100,
488 </span><span class="jsdoc-comment">//allowBlank:false,
489 </span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''
490 </span><span class="jsdoc-syntax">}));
491 </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
493 </span><span class="jsdoc-var">tb.addField</span><span class="jsdoc-syntax">( </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.form.TextField</span><span class="jsdoc-syntax">({
494 </span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">,
495 </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">item.width</span><span class="jsdoc-syntax">,
496 </span><span class="jsdoc-comment">//allowBlank:true,
497 </span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">,
498 </span><span class="jsdoc-var">listeners</span><span class="jsdoc-syntax">: {
499 </span><span class="jsdoc-string">'change' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">f</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">nv</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ov</span><span class="jsdoc-syntax">) {
500 </span><span class="jsdoc-var">tb.selectedNode.setAttribute</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">f.name</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">nv</span><span class="jsdoc-syntax">);
506 </span><span class="jsdoc-var">tb.el.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'click'</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">){
507 </span><span class="jsdoc-var">e.preventDefault</span><span class="jsdoc-syntax">(); </span><span class="jsdoc-comment">// what does this do?
508 </span><span class="jsdoc-syntax">});
509 </span><span class="jsdoc-var">tb.el.setVisibilityMode</span><span class="jsdoc-syntax">( </span><span class="jsdoc-var">Roo.Element.DISPLAY</span><span class="jsdoc-syntax">);
510 </span><span class="jsdoc-var">tb.el.hide</span><span class="jsdoc-syntax">();
511 </span><span class="jsdoc-var">tb.name </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">nm</span><span class="jsdoc-syntax">;
512 </span><span class="jsdoc-comment">// dont need to disable them... as they will get hidden
513 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">tb</span><span class="jsdoc-syntax">;
517 </span><span class="jsdoc-var">buildFooter </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
520 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">fel </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.editor.wrap.createChild</span><span class="jsdoc-syntax">();
521 </span><span class="jsdoc-var">this.footer </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.Toolbar</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">fel</span><span class="jsdoc-syntax">);
522 </span><span class="jsdoc-comment">// toolbar has scrolly on left / right?
523 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">footDisp</span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.Toolbar.Fill</span><span class="jsdoc-syntax">();
524 </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">;
525 </span><span class="jsdoc-var">this.footer.add</span><span class="jsdoc-syntax">(
527 </span><span class="jsdoc-var">text </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'&lt;'</span><span class="jsdoc-syntax">,
528 </span><span class="jsdoc-var">xtype</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Button'</span><span class="jsdoc-syntax">,
529 </span><span class="jsdoc-var">handler </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
530 </span><span class="jsdoc-var">_t.footDisp.scrollTo</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'left'</span><span class="jsdoc-syntax">,0,</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)
534 </span><span class="jsdoc-var">this.footer.add</span><span class="jsdoc-syntax">( </span><span class="jsdoc-var">footDisp </span><span class="jsdoc-syntax">);
535 </span><span class="jsdoc-var">this.footer.add</span><span class="jsdoc-syntax">(
537 </span><span class="jsdoc-var">text </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'&gt;'</span><span class="jsdoc-syntax">,
538 </span><span class="jsdoc-var">xtype</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Button'</span><span class="jsdoc-syntax">,
539 </span><span class="jsdoc-var">handler </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
540 </span><span class="jsdoc-comment">// no animation..
541 </span><span class="jsdoc-var">_t.footDisp.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'span'</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.last</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.scrollIntoView</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">_t.footDisp</span><span class="jsdoc-syntax">,</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
545 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">fel </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">footDisp.el</span><span class="jsdoc-syntax">);
546 </span><span class="jsdoc-var">fel.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'x-editor-context'</span><span class="jsdoc-syntax">);
547 </span><span class="jsdoc-var">this.footDispWrap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">fel</span><span class="jsdoc-syntax">;
548 </span><span class="jsdoc-var">this.footDispWrap.overflow </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'hidden'</span><span class="jsdoc-syntax">;
550 </span><span class="jsdoc-var">this.footDisp </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">fel.createChild</span><span class="jsdoc-syntax">();
551 </span><span class="jsdoc-var">this.footDispWrap.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'click'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onContextClick</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">)
555 </span><span class="jsdoc-var">onContextClick </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ev</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">dom</span><span class="jsdoc-syntax">)
557 </span><span class="jsdoc-var">ev.preventDefault</span><span class="jsdoc-syntax">();
558 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cn </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">dom.className</span><span class="jsdoc-syntax">;
559 </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">);
560 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">cn.match</span><span class="jsdoc-syntax">(/x-ed-loc-/)) {
561 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
563 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">n </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cn.split</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'-'</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.pop</span><span class="jsdoc-syntax">();
564 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ans </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.footerEls</span><span class="jsdoc-syntax">;
565 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">sel </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ans</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">];
567 </span><span class="jsdoc-comment">// pick
568 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">range </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.editor.createRange</span><span class="jsdoc-syntax">();
570 </span><span class="jsdoc-var">range.selectNodeContents</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">sel</span><span class="jsdoc-syntax">);
571 </span><span class="jsdoc-comment">//range.selectNode(sel);
574 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">selection </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.editor.getSelection</span><span class="jsdoc-syntax">();
575 </span><span class="jsdoc-var">selection.removeAllRanges</span><span class="jsdoc-syntax">();
576 </span><span class="jsdoc-var">selection.addRange</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">range</span><span class="jsdoc-syntax">);
580 </span><span class="jsdoc-var">this.updateToolbar</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">sel</span><span class="jsdoc-syntax">);
595 </span></code></body></html>