Merge branch 'master' of http://git.roojs.com/roojs1
[roojs1] / docs / src / Roo_bootstrap_form_MultiLineTag.js.html
1 <html><head><title>Roo/bootstrap/form/MultiLineTag.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  * 
3  * @class Roo.bootstrap.form.MultiLineTag
4  * @param {Object} config The config object
5  * 
6  */
7
8 </span><span class="jsdoc-var">Roo.bootstrap.form.MultiLineTag </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">){
9     </span><span class="jsdoc-var">Roo.bootstrap.form.MultiLineTag.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">);
10
11     </span><span class="jsdoc-var">this.addEvents</span><span class="jsdoc-syntax">({
12         </span><span class="jsdoc-comment">/**
13          * @event beforeload
14          * Fires before a request is made for a new data object.  If the beforeload handler returns false
15          * the load action will be canceled.
16          * @param {Roo.boostrap.form.MultiLineTag} this
17          * @param {Store} store
18          * @param {Object} options The loading options that were specified (see {@link #load} for details)
19          */
20          </span><span class="jsdoc-var">beforeload </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true
21     </span><span class="jsdoc-syntax">});
22 };
23
24 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.bootstrap.form.MultiLineTag</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.bootstrap.form.Input</span><span class="jsdoc-syntax">,  {
25     </span><span class="jsdoc-var">tagRows </span><span class="jsdoc-syntax">: [],
26     </span><span class="jsdoc-var">minimumRow </span><span class="jsdoc-syntax">: 2,
27
28     </span><span class="jsdoc-comment">// for combo box
29     </span><span class="jsdoc-var">displayField </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">,
30     </span><span class="jsdoc-var">valueField </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">,
31     </span><span class="jsdoc-var">placeholder </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">,
32     </span><span class="jsdoc-var">queryParam </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">,
33     </span><span class="jsdoc-var">listWidth </span><span class="jsdoc-syntax">: 300,
34     </span><span class="jsdoc-var">minChars </span><span class="jsdoc-syntax">: 2,
35
36     </span><span class="jsdoc-comment">// for combo box store
37     </span><span class="jsdoc-var">url </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">undefined</span><span class="jsdoc-syntax">,
38     </span><span class="jsdoc-var">fields </span><span class="jsdoc-syntax">: [],
39
40
41
42     </span><span class="jsdoc-var">getAutoCreate </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
43     {
44         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">config </span><span class="jsdoc-syntax">= {
45             </span><span class="jsdoc-var">cls </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'roo-multi-line-tag form-group'
46         </span><span class="jsdoc-syntax">};
47
48         </span><span class="jsdoc-var">config </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getAutoCreateLabel</span><span class="jsdoc-syntax">( </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">, {
49             </span><span class="jsdoc-var">cls </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'roo-multi-line-tag-container'
50         </span><span class="jsdoc-syntax">} );
51
52         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">;
53     },
54
55     </span><span class="jsdoc-var">initEvents </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
56     {
57         </span><span class="jsdoc-var">this.tagRows </span><span class="jsdoc-syntax">= [];
58
59         </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.minimumRow</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
60             </span><span class="jsdoc-var">this.addTagRow</span><span class="jsdoc-syntax">();
61         }
62     },
63
64     </span><span class="jsdoc-var">addTagRow </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
65     {
66         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">_this </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
67
68         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">comboBox </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.factory</span><span class="jsdoc-syntax">({
69             </span><span class="jsdoc-var">xns</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.bootstrap.form</span><span class="jsdoc-syntax">,
70             </span><span class="jsdoc-var">xtype </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'ComboBox'</span><span class="jsdoc-syntax">,
71             </span><span class="jsdoc-var">editable </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
72             </span><span class="jsdoc-var">triggerAction</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'all'</span><span class="jsdoc-syntax">,
73             </span><span class="jsdoc-var">minChars</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">_this.minChars</span><span class="jsdoc-syntax">,
74             </span><span class="jsdoc-var">displayField</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">_this.displayField</span><span class="jsdoc-syntax">,
75             </span><span class="jsdoc-var">valueField </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">_this.valueField</span><span class="jsdoc-syntax">,
76             </span><span class="jsdoc-var">listWidth</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">_this.listWidth</span><span class="jsdoc-syntax">,
77             </span><span class="jsdoc-var">placeholder </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">_this.placeholder</span><span class="jsdoc-syntax">,
78             </span><span class="jsdoc-var">queryParam </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">_this.queryParam</span><span class="jsdoc-syntax">,
79             </span><span class="jsdoc-var">store </span><span class="jsdoc-syntax">: {
80                 </span><span class="jsdoc-var">xns </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.data</span><span class="jsdoc-syntax">,
81                 </span><span class="jsdoc-var">xtype </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Store'</span><span class="jsdoc-syntax">,
82                 </span><span class="jsdoc-var">listeners </span><span class="jsdoc-syntax">: {
83                     </span><span class="jsdoc-var">beforeload </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">_self</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">)
84                     {
85                         </span><span class="jsdoc-var">_this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'beforeload'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">_this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">_self</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">);
86                     }
87                 },
88                 </span><span class="jsdoc-var">proxy </span><span class="jsdoc-syntax">: {
89                     </span><span class="jsdoc-var">xns </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.data</span><span class="jsdoc-syntax">,
90                     </span><span class="jsdoc-var">xtype </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'HttpProxy'</span><span class="jsdoc-syntax">,
91                     </span><span class="jsdoc-var">method </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'GET'</span><span class="jsdoc-syntax">,
92                     </span><span class="jsdoc-var">url </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">_this.url
93                 </span><span class="jsdoc-syntax">},
94                 </span><span class="jsdoc-var">reader </span><span class="jsdoc-syntax">: {
95                     </span><span class="jsdoc-var">xns </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.data</span><span class="jsdoc-syntax">,
96                     </span><span class="jsdoc-var">xtype </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'JsonReader'</span><span class="jsdoc-syntax">,
97                     </span><span class="jsdoc-var">fields </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">_this.fields
98                 </span><span class="jsdoc-syntax">}
99             },
100             </span><span class="jsdoc-var">listeners </span><span class="jsdoc-syntax">: {
101                 </span><span class="jsdoc-string">'render' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">_self</span><span class="jsdoc-syntax">) {
102                     </span><span class="jsdoc-var">_self.inputEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'keyup'</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">) {
103                         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">_this.shouldAutoAddTagRow</span><span class="jsdoc-syntax">()) {
104                             </span><span class="jsdoc-var">_this.addTagRow</span><span class="jsdoc-syntax">();
105                         }
106                     });
107                     </span><span class="jsdoc-var">_self.inputEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.on</span><span class="jsdoc-syntax">(</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">e</span><span class="jsdoc-syntax">) {
108                         </span><span class="jsdoc-var">_this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'change'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">_this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">_this.getValue</span><span class="jsdoc-syntax">(), </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">);
109                         </span><span class="jsdoc-var">_this.showHideRemoveBtn</span><span class="jsdoc-syntax">();
110
111                     });
112                 },
113                 </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">_self</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">record</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">) {
114                     </span><span class="jsdoc-var">_this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'change'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">_this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">_this.getValue</span><span class="jsdoc-syntax">(), </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">);
115                 }
116             }
117         });
118
119         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">button </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.factory</span><span class="jsdoc-syntax">({
120             </span><span class="jsdoc-var">xns </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.bootstrap</span><span class="jsdoc-syntax">,
121             </span><span class="jsdoc-var">xtype </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Button'</span><span class="jsdoc-syntax">,
122             </span><span class="jsdoc-var">html </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'-'
123         </span><span class="jsdoc-syntax">});
124
125         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">row </span><span class="jsdoc-syntax">= {
126             </span><span class="jsdoc-var">xns </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.bootstrap</span><span class="jsdoc-syntax">,
127             </span><span class="jsdoc-var">xtype </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'Row'</span><span class="jsdoc-syntax">,
128             </span><span class="jsdoc-var">items </span><span class="jsdoc-syntax">: [
129                 </span><span class="jsdoc-var">comboBox</span><span class="jsdoc-syntax">,
130                 </span><span class="jsdoc-var">button
131             </span><span class="jsdoc-syntax">],
132             </span><span class="jsdoc-var">listeners </span><span class="jsdoc-syntax">: {
133                 </span><span class="jsdoc-string">'render' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">_self</span><span class="jsdoc-syntax">) {
134                     </span><span class="jsdoc-var">this.inputCb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">comboBox</span><span class="jsdoc-syntax">;
135                     </span><span class="jsdoc-var">this.removeBtn </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">button</span><span class="jsdoc-syntax">;
136
137                     </span><span class="jsdoc-var">this.removeBtn.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">() {
138                         </span><span class="jsdoc-var">_this.removeTagRow</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">_self</span><span class="jsdoc-syntax">);
139                         </span><span class="jsdoc-var">_this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'change'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">_this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">_this.getValue</span><span class="jsdoc-syntax">(), </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">);
140                     });
141                 }
142             }
143         };
144         </span><span class="jsdoc-var">this.tagRows.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.addxtype</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">row</span><span class="jsdoc-syntax">));
145
146         </span><span class="jsdoc-var">_this.showHideRemoveBtn</span><span class="jsdoc-syntax">();
147     },
148
149     </span><span class="jsdoc-comment">// a new tags should be added automatically when all existing tags are not empty
150     </span><span class="jsdoc-var">shouldAutoAddTagRow </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
151     {
152         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ret </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
153
154         </span><span class="jsdoc-var">Roo.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.tagRows</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">) {
155             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r.inputCb.getRawValue</span><span class="jsdoc-syntax">() == </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">) {
156                 </span><span class="jsdoc-var">ret </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
157             }
158         });
159
160         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">ret</span><span class="jsdoc-syntax">;
161     },
162
163     </span><span class="jsdoc-var">removeTagRow </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">row</span><span class="jsdoc-syntax">)
164     {
165         </span><span class="jsdoc-var">row.destroy</span><span class="jsdoc-syntax">();
166         </span><span class="jsdoc-var">this.tagRows.splice</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.tagRows.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">row</span><span class="jsdoc-syntax">), 1);
167         </span><span class="jsdoc-var">this.showHideRemoveBtn</span><span class="jsdoc-syntax">();
168     },
169
170     </span><span class="jsdoc-comment">// hide all remove buttons if there are {minimumRow} or less tags
171     // hide the remove button for empty tag
172     </span><span class="jsdoc-var">showHideRemoveBtn </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
173     {
174         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">_this </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
175
176         </span><span class="jsdoc-var">Roo.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.tagRows</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">) {
177
178             </span><span class="jsdoc-var">r.removeBtn.show</span><span class="jsdoc-syntax">();
179
180             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">_this.tagRows.length </span><span class="jsdoc-syntax">&lt;= </span><span class="jsdoc-var">_this.minimumRow </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">r.inputCb.getRawValue</span><span class="jsdoc-syntax">() == </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">) {
181                 </span><span class="jsdoc-var">r.removeBtn.hide</span><span class="jsdoc-syntax">();
182             }
183         });
184     },
185
186     </span><span class="jsdoc-var">getValue </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
187     {
188         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">_this </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
189         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">tags </span><span class="jsdoc-syntax">= [];
190         </span><span class="jsdoc-var">Roo.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">_this.tagRows</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">) {
191             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">value </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">r.inputCb.getRawValue</span><span class="jsdoc-syntax">();
192             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">) {
193                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">tag </span><span class="jsdoc-syntax">= {};
194                 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">_this.valueField</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">r.inputCb.getRawValue</span><span class="jsdoc-syntax">();
195                 </span><span class="jsdoc-var">tags.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">);
196             }
197         });
198
199         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">JSON.stringify</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tags</span><span class="jsdoc-syntax">);
200     },
201
202     </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">json</span><span class="jsdoc-syntax">)
203     {
204
205         </span><span class="jsdoc-comment">// remove all old tags
206         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">oldTotal </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.tagRows.length</span><span class="jsdoc-syntax">;
207
208         </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">oldTotal</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">++) {
209             </span><span class="jsdoc-var">this.removeTagRow</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.tagRows</span><span class="jsdoc-syntax">[0]);
210         }
211
212         </span><span class="jsdoc-comment">// empty tag if invalid json
213         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">arr </span><span class="jsdoc-syntax">= [];
214
215         </span><span class="jsdoc-keyword">try </span><span class="jsdoc-syntax">{
216             </span><span class="jsdoc-comment">// set new tags
217             </span><span class="jsdoc-var">arr </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">JSON.parse</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">json</span><span class="jsdoc-syntax">);
218         }
219         </span><span class="jsdoc-keyword">catch </span><span class="jsdoc-syntax">{}
220
221         </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">arr.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">++) {
222             </span><span class="jsdoc-var">this.addTagRow</span><span class="jsdoc-syntax">();
223             </span><span class="jsdoc-var">this.tagRows</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.inputCb.setRawValue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">arr</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">this.valueField</span><span class="jsdoc-syntax">]);
224         }
225
226         </span><span class="jsdoc-comment">// always add one extra empty tag
227         </span><span class="jsdoc-var">this.addTagRow</span><span class="jsdoc-syntax">();
228
229         </span><span class="jsdoc-comment">// add empty tags until there are {minimumRow} tags
230         </span><span class="jsdoc-keyword">while</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.tagRows.length </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">this.minimumRow</span><span class="jsdoc-syntax">) {
231             </span><span class="jsdoc-var">this.addTagRow</span><span class="jsdoc-syntax">();
232         }
233
234     },
235
236     </span><span class="jsdoc-var">getChildContainer </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
237     {
238         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">Roo.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'.roo-multi-line-tag-container'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.elements</span><span class="jsdoc-syntax">[0];
239     }
240 });</span></code></body></html>