0ec36af230c84a97fdc64a4435f64c773da67361
[roojs1] / docs / symbols / Roo.LayoutDialog.json
1 {
2   "name" : "Roo.LayoutDialog",
3   "augments" : [
4     "Roo.BasicDialog",
5     "Roo.util.Observable"
6   ],
7   "childClasses" : {  },
8   "tree_children" : [
9     "Roo.ContentPanel",
10     "Roo.GridPanel",
11     "Roo.NestedLayoutPanel",
12     "Roo.TreePanel"
13   ],
14   "tree_parent" : [
15     "builder",
16     "none"
17   ],
18   "desc" : "Dialog which provides adjustments for working with a layout in a Dialog.\nAdd your necessary layout config options to the dialog's config.<br>\nExample usage (including a nested layout):\n<pre><code>\nif(!dialog){\n    dialog = new Roo.LayoutDialog(\"download-dlg\", {\n        modal: true,\n        width:600,\n        height:450,\n        shadow:true,\n        minWidth:500,\n        minHeight:350,\n        autoTabs:true,\n        proxyDrag:true,\n        // layout config merges with the dialog config\n        center:{\n            tabPosition: \"top\",\n            alwaysShowTabs: true\n        }\n    });\n    dialog.addKeyListener(27, dialog.hide, dialog);\n    dialog.setDefaultButton(dialog.addButton(\"Close\", dialog.hide, dialog));\n    dialog.addButton(\"Build It!\", this.getDownload, this);\n\n    // we can even add nested layouts\n    var innerLayout = new Roo.BorderLayout(\"dl-inner\", {\n        east: {\n            initialSize: 200,\n            autoScroll:true,\n            split:true\n        },\n        center: {\n            autoScroll:true\n        }\n    });\n    innerLayout.beginUpdate();\n    innerLayout.add(\"east\", new Roo.ContentPanel(\"dl-details\"));\n    innerLayout.add(\"center\", new Roo.ContentPanel(\"selection-panel\"));\n    innerLayout.endUpdate(true);\n\n    var layout = dialog.getLayout();\n    layout.beginUpdate();\n    layout.add(\"center\", new Roo.ContentPanel(\"standard-panel\",\n                        {title: \"Download the Source\", fitToFrame:true}));\n    layout.add(\"center\", new Roo.NestedLayoutPanel(innerLayout,\n               {title: \"Build your own roo.js\"}));\n    layout.getRegion(\"center\").showPanel(sp);\n    layout.endUpdate();\n}\n</code></pre>",
19   "isSingleton" : false,
20   "isStatic" : false,
21   "isBuiltin" : false,
22   "isAbstract" : false,
23   "isBuilderTop" : false,
24   "memberOf" : "LayoutDialog",
25   "example" : "",
26   "deprecated" : "",
27   "since" : "",
28   "see" : "",
29   "params" : [
30     {
31       "name" : "el",
32       "type" : "String/HTMLElement/Roo.Element",
33       "desc" : "The id of or container element, or config",
34       "isOptional" : false
35     },
36     {
37       "name" : "config",
38       "type" : "Object",
39       "desc" : "configuration options",
40       "isOptional" : false
41     }
42   ],
43   "returns" : [],
44   "throws" : "",
45   "requires" : "",
46   "config" : [
47     {
48       "name" : "buttons[]",
49       "type" : "Roo.Button",
50       "desc" : "Bottom buttons..",
51       "memberOf" : ""
52     },
53     {
54       "name" : "minButtonWidth",
55       "type" : "Number",
56       "desc" : "Minimum width of all dialog buttons (defaults to 75)",
57       "memberOf" : "Roo.BasicDialog"
58     },
59     {
60       "name" : "west",
61       "type" : "Roo.LayoutRegion",
62       "desc" : "",
63       "memberOf" : ""
64     },
65     {
66       "name" : "fixedcenter",
67       "type" : "Boolean",
68       "desc" : "True to ensure that anytime the dialog is shown or resized it gets centered (defaults to false)",
69       "memberOf" : "Roo.BasicDialog"
70     },
71     {
72       "name" : "minWidth",
73       "type" : "Number",
74       "desc" : "The minimum allowable width for a resizable dialog (defaults to 200)",
75       "memberOf" : "Roo.BasicDialog"
76     },
77     {
78       "name" : "title",
79       "type" : "String",
80       "desc" : "Default text to display in the title bar (defaults to null)",
81       "memberOf" : "Roo.BasicDialog"
82     },
83     {
84       "name" : "center",
85       "type" : "Roo.LayoutRegion",
86       "desc" : "",
87       "memberOf" : ""
88     },
89     {
90       "name" : "resizable",
91       "type" : "Boolean",
92       "desc" : "False to disable manual dialog resizing (defaults to true)",
93       "memberOf" : "Roo.BasicDialog"
94     },
95     {
96       "name" : "resizeHandles",
97       "type" : "String",
98       "desc" : "Which resize handles to display - see the {@link Roo.Resizable} handles config\nproperty for valid values (defaults to 'all')",
99       "memberOf" : "Roo.BasicDialog"
100     },
101     {
102       "name" : "width",
103       "type" : "Number",
104       "desc" : "Width of the dialog in pixels (can also be set via CSS).  Determined by browser if unspecified.",
105       "memberOf" : "Roo.BasicDialog"
106     },
107     {
108       "name" : "shim",
109       "type" : "Boolean",
110       "desc" : "True to create an iframe shim that prevents selects from showing through (defaults to false)",
111       "memberOf" : "Roo.BasicDialog"
112     },
113     {
114       "name" : "proxyDrag",
115       "type" : "Boolean",
116       "desc" : "True to drag a lightweight proxy element rather than the dialog itself, used when\ndraggable = true (defaults to false)",
117       "memberOf" : "Roo.BasicDialog"
118     },
119     {
120       "name" : "autoTabs",
121       "type" : "Boolean",
122       "desc" : "If true, all elements with class 'x-dlg-tab' will get automatically converted to tabs (defaults to false)",
123       "memberOf" : "Roo.BasicDialog"
124     },
125     {
126       "name" : "height",
127       "type" : "Number",
128       "desc" : "Height of the dialog in pixels (can also be set via CSS).  Determined by browser if unspecified.",
129       "memberOf" : "Roo.BasicDialog"
130     },
131     {
132       "name" : "constraintoviewport",
133       "type" : "Boolean",
134       "desc" : "True to keep the dialog constrained within the visible viewport boundaries (defaults to true)",
135       "memberOf" : "Roo.BasicDialog"
136     },
137     {
138       "name" : "shadowOffset",
139       "type" : "Number",
140       "desc" : "The number of pixels to offset the shadow if displayed (defaults to 5)",
141       "memberOf" : "Roo.BasicDialog"
142     },
143     {
144       "name" : "draggable",
145       "type" : "Boolean",
146       "desc" : "False to disable dragging of the dialog within the viewport (defaults to true)",
147       "memberOf" : "Roo.BasicDialog"
148     },
149     {
150       "name" : "listeners",
151       "type" : "Object",
152       "desc" : "list of events and functions to call for this object, \nFor example :\n<pre><code>\n    listeners :  { \n       'click' : function(e) {\n           ..... \n        } ,\n        .... \n    } \n  </code></pre>",
153       "memberOf" : "Roo.util.Observable"
154     },
155     {
156       "name" : "south",
157       "type" : "Roo.LayoutRegion",
158       "desc" : "",
159       "memberOf" : ""
160     },
161     {
162       "name" : "east",
163       "type" : "Roo.LayoutRegion",
164       "desc" : "",
165       "memberOf" : ""
166     },
167     {
168       "name" : "shadow",
169       "type" : "Boolean/String",
170       "desc" : "True or \"sides\" for the default effect, \"frame\" for 4-way shadow, and \"drop\" for bottom-right\nshadow (defaults to false)",
171       "memberOf" : "Roo.BasicDialog"
172     },
173     {
174       "name" : "x",
175       "type" : "Number",
176       "desc" : "The default left page coordinate of the dialog (defaults to center screen)",
177       "memberOf" : "Roo.BasicDialog"
178     },
179     {
180       "name" : "collapsible",
181       "type" : "Boolean",
182       "desc" : "False to remove the built-in top-right corner collapse button (defaults to true)",
183       "memberOf" : "Roo.BasicDialog"
184     },
185     {
186       "name" : "y",
187       "type" : "Number",
188       "desc" : "The default top page coordinate of the dialog (defaults to center screen)",
189       "memberOf" : "Roo.BasicDialog"
190     },
191     {
192       "name" : "north",
193       "type" : "Roo.LayoutRegion",
194       "desc" : "",
195       "memberOf" : ""
196     },
197     {
198       "name" : "buttons",
199       "type" : "Array",
200       "desc" : "Array of buttons",
201       "memberOf" : "Roo.BasicDialog"
202     },
203     {
204       "name" : "animateTarget",
205       "type" : "String/Element",
206       "desc" : "Id or element from which the dialog should animate while opening\n(defaults to null with no animation)",
207       "memberOf" : "Roo.BasicDialog"
208     },
209     {
210       "name" : "closable",
211       "type" : "Boolean",
212       "desc" : "False to remove the built-in top-right corner close button (defaults to true)",
213       "memberOf" : "Roo.BasicDialog"
214     },
215     {
216       "name" : "autoCreate",
217       "type" : "Boolean/DomHelper",
218       "desc" : "True to auto create from scratch, or using a DomHelper Object (defaults to false)",
219       "memberOf" : "Roo.BasicDialog"
220     },
221     {
222       "name" : "autoScroll",
223       "type" : "Boolean",
224       "desc" : "True to allow the dialog body contents to overflow and display scrollbars (defaults to false)",
225       "memberOf" : "Roo.BasicDialog"
226     },
227     {
228       "name" : "modal",
229       "type" : "Boolean",
230       "desc" : "True to show the dialog modally, preventing user interaction with the rest of the page (defaults to false)",
231       "memberOf" : "Roo.BasicDialog"
232     },
233     {
234       "name" : "tabTag",
235       "type" : "String",
236       "desc" : "The tag name of tab elements, used when autoTabs = true (defaults to 'div')",
237       "memberOf" : "Roo.BasicDialog"
238     },
239     {
240       "name" : "minHeight",
241       "type" : "Number",
242       "desc" : "The minimum allowable height for a resizable dialog (defaults to 80)",
243       "memberOf" : "Roo.BasicDialog"
244     },
245     {
246       "name" : "syncHeightBeforeShow",
247       "type" : "Boolean",
248       "desc" : "True to cause the dimensions to be recalculated before the dialog is shown (defaults to false)",
249       "memberOf" : "Roo.BasicDialog"
250     },
251     {
252       "name" : "buttonAlign",
253       "type" : "String",
254       "desc" : "Valid values are \"left,\" \"center\" and \"right\" (defaults to \"right\")",
255       "memberOf" : "Roo.BasicDialog"
256     }
257   ],
258   "methods" : [
259     {
260       "name" : "addxtype",
261       "type" : "function",
262       "desc" : "Add an xtype element (actually adds to the layout.)",
263       "sig" : "()\n{\n\n}",
264       "static" : false,
265       "memberOf" : "",
266       "isStatic" : false,
267       "isConstructor" : false,
268       "isPrivate" : false,
269       "example" : "",
270       "deprecated" : "",
271       "since" : "",
272       "see" : "",
273       "exceptions" : "",
274       "requires" : "",
275       "params" : [],
276       "returns" : [
277         {
278           "name" : "",
279           "type" : "Object",
280           "desc" : "xdata xtype object data."
281         }
282       ]
283     },
284     {
285       "name" : "getLayout",
286       "type" : "function",
287       "desc" : "Get the BorderLayout for this dialog",
288       "sig" : "()\n{\n\n}",
289       "static" : false,
290       "memberOf" : "",
291       "isStatic" : false,
292       "isConstructor" : false,
293       "isPrivate" : false,
294       "example" : "",
295       "deprecated" : "",
296       "since" : "",
297       "see" : "",
298       "exceptions" : "",
299       "requires" : "",
300       "params" : [],
301       "returns" : [
302         {
303           "name" : "",
304           "type" : "Roo.BorderLayout",
305           "desc" : ""
306         }
307       ]
308     },
309     {
310       "name" : "endUpdate",
311       "type" : "function",
312       "desc" : "Ends update of the layout <strike>and resets display to none</strike>. Use standard beginUpdate/endUpdate on the layout.",
313       "sig" : "()\n{\n\n}",
314       "static" : false,
315       "memberOf" : "",
316       "isStatic" : false,
317       "isConstructor" : false,
318       "isPrivate" : false,
319       "example" : "",
320       "deprecated" : "This has been deprecated: ",
321       "since" : "",
322       "see" : "",
323       "exceptions" : "",
324       "requires" : "",
325       "params" : [],
326       "returns" : []
327     },
328     {
329       "name" : "beginUpdate",
330       "type" : "function",
331       "desc" : "Begins an update of the layout <strike>and sets display to block and visibility to hidden</strike>. Use standard beginUpdate/endUpdate on the layout.",
332       "sig" : "()\n{\n\n}",
333       "static" : false,
334       "memberOf" : "",
335       "isStatic" : false,
336       "isConstructor" : false,
337       "isPrivate" : false,
338       "example" : "",
339       "deprecated" : "This has been deprecated: ",
340       "since" : "",
341       "see" : "",
342       "exceptions" : "",
343       "requires" : "",
344       "params" : [],
345       "returns" : []
346     },
347     {
348       "name" : "expand",
349       "type" : "function",
350       "desc" : "Expands a collapsed dialog back to its normal state.  Equivalent to the user\nclicking the expand dialog button.",
351       "sig" : "()\n{\n\n}",
352       "static" : false,
353       "memberOf" : "Roo.BasicDialog",
354       "isStatic" : false,
355       "isConstructor" : false,
356       "isPrivate" : false,
357       "example" : "",
358       "deprecated" : "",
359       "since" : "",
360       "see" : "",
361       "exceptions" : "",
362       "requires" : "",
363       "params" : [],
364       "returns" : []
365     },
366     {
367       "name" : "alignTo",
368       "type" : "function",
369       "desc" : "Aligns the dialog to the specified element",
370       "sig" : "(element, position, offsets)",
371       "static" : false,
372       "memberOf" : "Roo.BasicDialog",
373       "isStatic" : false,
374       "isConstructor" : false,
375       "isPrivate" : false,
376       "example" : "",
377       "deprecated" : "",
378       "since" : "",
379       "see" : "",
380       "exceptions" : "",
381       "requires" : "",
382       "params" : [
383         {
384           "name" : "element",
385           "type" : "String/HTMLElement/Roo.Element",
386           "desc" : "The element to align to.",
387           "isOptional" : false
388         },
389         {
390           "name" : "position",
391           "type" : "String",
392           "desc" : "The position to align to (see {@link Roo.Element#alignTo} for more details).",
393           "isOptional" : false
394         },
395         {
396           "name" : "offsets",
397           "type" : "Array",
398           "desc" : "(optional) Offset the positioning by [x, y]",
399           "isOptional" : false
400         }
401       ],
402       "returns" : [
403         {
404           "name" : "",
405           "type" : "Roo.BasicDialog",
406           "desc" : "this"
407         }
408       ]
409     },
410     {
411       "name" : "setTitle",
412       "type" : "function",
413       "desc" : "Sets the dialog title text",
414       "sig" : "(text)",
415       "static" : false,
416       "memberOf" : "Roo.BasicDialog",
417       "isStatic" : false,
418       "isConstructor" : false,
419       "isPrivate" : false,
420       "example" : "",
421       "deprecated" : "",
422       "since" : "",
423       "see" : "",
424       "exceptions" : "",
425       "requires" : "",
426       "params" : [
427         {
428           "name" : "text",
429           "type" : "String",
430           "desc" : "The title text to display",
431           "isOptional" : false
432         }
433       ],
434       "returns" : [
435         {
436           "name" : "",
437           "type" : "Roo.BasicDialog",
438           "desc" : "this"
439         }
440       ]
441     },
442     {
443       "name" : "isVisible",
444       "type" : "function",
445       "desc" : "Returns true if the dialog is visible",
446       "sig" : "()\n{\n\n}",
447       "static" : false,
448       "memberOf" : "Roo.BasicDialog",
449       "isStatic" : false,
450       "isConstructor" : false,
451       "isPrivate" : false,
452       "example" : "",
453       "deprecated" : "",
454       "since" : "",
455       "see" : "",
456       "exceptions" : "",
457       "requires" : "",
458       "params" : [],
459       "returns" : [
460         {
461           "name" : "",
462           "type" : "Boolean",
463           "desc" : ""
464         }
465       ]
466     },
467     {
468       "name" : "resizeTo",
469       "type" : "function",
470       "desc" : "Resizes the dialog.",
471       "sig" : "(width, height)",
472       "static" : false,
473       "memberOf" : "Roo.BasicDialog",
474       "isStatic" : false,
475       "isConstructor" : false,
476       "isPrivate" : false,
477       "example" : "",
478       "deprecated" : "",
479       "since" : "",
480       "see" : "",
481       "exceptions" : "",
482       "requires" : "",
483       "params" : [
484         {
485           "name" : "width",
486           "type" : "Number",
487           "desc" : "",
488           "isOptional" : false
489         },
490         {
491           "name" : "height",
492           "type" : "Number",
493           "desc" : "",
494           "isOptional" : false
495         }
496       ],
497       "returns" : [
498         {
499           "name" : "",
500           "type" : "Roo.BasicDialog",
501           "desc" : "this"
502         }
503       ]
504     },
505     {
506       "name" : "center",
507       "type" : "function",
508       "desc" : "Centers this dialog in the viewport",
509       "sig" : "()\n{\n\n}",
510       "static" : false,
511       "memberOf" : "Roo.BasicDialog",
512       "isStatic" : false,
513       "isConstructor" : false,
514       "isPrivate" : false,
515       "example" : "",
516       "deprecated" : "",
517       "since" : "",
518       "see" : "",
519       "exceptions" : "",
520       "requires" : "",
521       "params" : [],
522       "returns" : [
523         {
524           "name" : "",
525           "type" : "Roo.BasicDialog",
526           "desc" : "this"
527         }
528       ]
529     },
530     {
531       "name" : "collapse",
532       "type" : "function",
533       "desc" : "Collapses the dialog to its minimized state (only the title bar is visible).\nEquivalent to the user clicking the collapse dialog button.",
534       "sig" : "()\n{\n\n}",
535       "static" : false,
536       "memberOf" : "Roo.BasicDialog",
537       "isStatic" : false,
538       "isConstructor" : false,
539       "isPrivate" : false,
540       "example" : "",
541       "deprecated" : "",
542       "since" : "",
543       "see" : "",
544       "exceptions" : "",
545       "requires" : "",
546       "params" : [],
547       "returns" : []
548     },
549     {
550       "name" : "initTabs",
551       "type" : "function",
552       "desc" : "Reinitializes the tabs component, clearing out old tabs and finding new ones.",
553       "sig" : "()\n{\n\n}",
554       "static" : false,
555       "memberOf" : "Roo.BasicDialog",
556       "isStatic" : false,
557       "isConstructor" : false,
558       "isPrivate" : false,
559       "example" : "",
560       "deprecated" : "",
561       "since" : "",
562       "see" : "",
563       "exceptions" : "",
564       "requires" : "",
565       "params" : [],
566       "returns" : [
567         {
568           "name" : "",
569           "type" : "Roo.TabPanel",
570           "desc" : "The tabs component"
571         }
572       ]
573     },
574     {
575       "name" : "toFront",
576       "type" : "function",
577       "desc" : "Brings this dialog to the front of any other visible dialogs",
578       "sig" : "()\n{\n\n}",
579       "static" : false,
580       "memberOf" : "Roo.BasicDialog",
581       "isStatic" : false,
582       "isConstructor" : false,
583       "isPrivate" : false,
584       "example" : "",
585       "deprecated" : "",
586       "since" : "",
587       "see" : "",
588       "exceptions" : "",
589       "requires" : "",
590       "params" : [],
591       "returns" : [
592         {
593           "name" : "",
594           "type" : "Roo.BasicDialog",
595           "desc" : "this"
596         }
597       ]
598     },
599     {
600       "name" : "moveTo",
601       "type" : "function",
602       "desc" : "Moves the dialog's top-left corner to the specified point",
603       "sig" : "(x, y)",
604       "static" : false,
605       "memberOf" : "Roo.BasicDialog",
606       "isStatic" : false,
607       "isConstructor" : false,
608       "isPrivate" : false,
609       "example" : "",
610       "deprecated" : "",
611       "since" : "",
612       "see" : "",
613       "exceptions" : "",
614       "requires" : "",
615       "params" : [
616         {
617           "name" : "x",
618           "type" : "Number",
619           "desc" : "",
620           "isOptional" : false
621         },
622         {
623           "name" : "y",
624           "type" : "Number",
625           "desc" : "",
626           "isOptional" : false
627         }
628       ],
629       "returns" : [
630         {
631           "name" : "",
632           "type" : "Roo.BasicDialog",
633           "desc" : "this"
634         }
635       ]
636     },
637     {
638       "name" : "hide",
639       "type" : "function",
640       "desc" : "Hides the dialog.",
641       "sig" : "(callback)",
642       "static" : false,
643       "memberOf" : "Roo.BasicDialog",
644       "isStatic" : false,
645       "isConstructor" : false,
646       "isPrivate" : false,
647       "example" : "",
648       "deprecated" : "",
649       "since" : "",
650       "see" : "",
651       "exceptions" : "",
652       "requires" : "",
653       "params" : [
654         {
655           "name" : "callback",
656           "type" : "Function",
657           "desc" : "(optional) Function to call when the dialog is hidden",
658           "isOptional" : false
659         }
660       ],
661       "returns" : [
662         {
663           "name" : "",
664           "type" : "Roo.BasicDialog",
665           "desc" : "this"
666         }
667       ]
668     },
669     {
670       "name" : "destroy",
671       "type" : "function",
672       "desc" : "Destroys this dialog and all its supporting elements (including any tabs, shim,\nshadow, proxy, mask, etc.)  Also removes all event listeners.",
673       "sig" : "(removeEl)",
674       "static" : false,
675       "memberOf" : "Roo.BasicDialog",
676       "isStatic" : false,
677       "isConstructor" : false,
678       "isPrivate" : false,
679       "example" : "",
680       "deprecated" : "",
681       "since" : "",
682       "see" : "",
683       "exceptions" : "",
684       "requires" : "",
685       "params" : [
686         {
687           "name" : "removeEl",
688           "type" : "Boolean",
689           "desc" : "(optional) true to remove the element from the DOM",
690           "isOptional" : false
691         }
692       ],
693       "returns" : []
694     },
695     {
696       "name" : "show",
697       "type" : "function",
698       "desc" : "Shows the dialog.",
699       "sig" : "(animateTarget)",
700       "static" : false,
701       "memberOf" : "Roo.BasicDialog",
702       "isStatic" : false,
703       "isConstructor" : false,
704       "isPrivate" : false,
705       "example" : "",
706       "deprecated" : "",
707       "since" : "",
708       "see" : "",
709       "exceptions" : "",
710       "requires" : "",
711       "params" : [
712         {
713           "name" : "animateTarget",
714           "type" : "String/HTMLElement/Roo.Element",
715           "desc" : "(optional) Reset the animation target",
716           "isOptional" : false
717         }
718       ],
719       "returns" : [
720         {
721           "name" : "",
722           "type" : "Roo.BasicDialog",
723           "desc" : "this"
724         }
725       ]
726     },
727     {
728       "name" : "anchorTo",
729       "type" : "function",
730       "desc" : "Anchors an element to another element and realigns it when the window is resized.",
731       "sig" : "(element, position, offsets, monitorScroll)",
732       "static" : false,
733       "memberOf" : "Roo.BasicDialog",
734       "isStatic" : false,
735       "isConstructor" : false,
736       "isPrivate" : false,
737       "example" : "",
738       "deprecated" : "",
739       "since" : "",
740       "see" : "",
741       "exceptions" : "",
742       "requires" : "",
743       "params" : [
744         {
745           "name" : "element",
746           "type" : "String/HTMLElement/Roo.Element",
747           "desc" : "The element to align to.",
748           "isOptional" : false
749         },
750         {
751           "name" : "position",
752           "type" : "String",
753           "desc" : "The position to align to (see {@link Roo.Element#alignTo} for more details)",
754           "isOptional" : false
755         },
756         {
757           "name" : "offsets",
758           "type" : "Array",
759           "desc" : "(optional) Offset the positioning by [x, y]",
760           "isOptional" : false
761         },
762         {
763           "name" : "monitorScroll",
764           "type" : "Boolean/Number",
765           "desc" : "(optional) true to monitor body scroll and reposition. If this parameter\nis a number, it is used as the buffer delay (defaults to 50ms).",
766           "isOptional" : false
767         }
768       ],
769       "returns" : [
770         {
771           "name" : "",
772           "type" : "Roo.BasicDialog",
773           "desc" : "this"
774         }
775       ]
776     },
777     {
778       "name" : "addButton",
779       "type" : "function",
780       "desc" : "Adds a button to the footer section of the dialog.",
781       "sig" : "(config, handler, scope)",
782       "static" : false,
783       "memberOf" : "Roo.BasicDialog",
784       "isStatic" : false,
785       "isConstructor" : false,
786       "isPrivate" : false,
787       "example" : "",
788       "deprecated" : "",
789       "since" : "",
790       "see" : "",
791       "exceptions" : "",
792       "requires" : "",
793       "params" : [
794         {
795           "name" : "config",
796           "type" : "String/Object",
797           "desc" : "A string becomes the button text, an object can either be a Button config\nobject or a valid Roo.DomHelper element config",
798           "isOptional" : false
799         },
800         {
801           "name" : "handler",
802           "type" : "Function",
803           "desc" : "The function called when the button is clicked",
804           "isOptional" : false
805         },
806         {
807           "name" : "scope",
808           "type" : "Object",
809           "desc" : "(optional) The scope of the handler function (accepts position as a property)",
810           "isOptional" : false
811         }
812       ],
813       "returns" : [
814         {
815           "name" : "",
816           "type" : "Roo.Button",
817           "desc" : "The new button"
818         }
819       ]
820     },
821     {
822       "name" : "addKeyListener",
823       "type" : "function",
824       "desc" : "Adds a key listener for when this dialog is displayed.  This allows you to hook in a function that will be\nexecuted in response to a particular key being pressed while the dialog is active.",
825       "sig" : "(key, fn, scope)",
826       "static" : false,
827       "memberOf" : "Roo.BasicDialog",
828       "isStatic" : false,
829       "isConstructor" : false,
830       "isPrivate" : false,
831       "example" : "",
832       "deprecated" : "",
833       "since" : "",
834       "see" : "",
835       "exceptions" : "",
836       "requires" : "",
837       "params" : [
838         {
839           "name" : "key",
840           "type" : "Number/Array/Object",
841           "desc" : "Either the numeric key code, array of key codes or an object with the following options:\n                                 {key: (number or array), shift: (true/false), ctrl: (true/false), alt: (true/false)}",
842           "isOptional" : false
843         },
844         {
845           "name" : "fn",
846           "type" : "Function",
847           "desc" : "The function to call",
848           "isOptional" : false
849         },
850         {
851           "name" : "scope",
852           "type" : "Object",
853           "desc" : "(optional) The scope of the function",
854           "isOptional" : false
855         }
856       ],
857       "returns" : [
858         {
859           "name" : "",
860           "type" : "Roo.BasicDialog",
861           "desc" : "this"
862         }
863       ]
864     },
865     {
866       "name" : "focus",
867       "type" : "function",
868       "desc" : "Focuses the dialog.  If a defaultButton is set, it will receive focus, otherwise the\ndialog itself will receive focus.",
869       "sig" : "()\n{\n\n}",
870       "static" : false,
871       "memberOf" : "Roo.BasicDialog",
872       "isStatic" : false,
873       "isConstructor" : false,
874       "isPrivate" : false,
875       "example" : "",
876       "deprecated" : "",
877       "since" : "",
878       "see" : "",
879       "exceptions" : "",
880       "requires" : "",
881       "params" : [],
882       "returns" : []
883     },
884     {
885       "name" : "getTabs",
886       "type" : "function",
887       "desc" : "Returns the TabPanel component (creates it if it doesn't exist).\nNote: If you wish to simply check for the existence of tabs without creating them,\ncheck for a null 'tabs' property.",
888       "sig" : "()\n{\n\n}",
889       "static" : false,
890       "memberOf" : "Roo.BasicDialog",
891       "isStatic" : false,
892       "isConstructor" : false,
893       "isPrivate" : false,
894       "example" : "",
895       "deprecated" : "",
896       "since" : "",
897       "see" : "",
898       "exceptions" : "",
899       "requires" : "",
900       "params" : [],
901       "returns" : [
902         {
903           "name" : "",
904           "type" : "Roo.TabPanel",
905           "desc" : "The tabs component"
906         }
907       ]
908     },
909     {
910       "name" : "setDefaultButton",
911       "type" : "function",
912       "desc" : "Sets the default button to be focused when the dialog is displayed.",
913       "sig" : "(btn)",
914       "static" : false,
915       "memberOf" : "Roo.BasicDialog",
916       "isStatic" : false,
917       "isConstructor" : false,
918       "isPrivate" : false,
919       "example" : "",
920       "deprecated" : "",
921       "since" : "",
922       "see" : "",
923       "exceptions" : "",
924       "requires" : "",
925       "params" : [
926         {
927           "name" : "btn",
928           "type" : "Roo.BasicDialog.Button",
929           "desc" : "The button object returned by {@link #addButton}",
930           "isOptional" : false
931         }
932       ],
933       "returns" : [
934         {
935           "name" : "",
936           "type" : "Roo.BasicDialog",
937           "desc" : "this"
938         }
939       ]
940     },
941     {
942       "name" : "toBack",
943       "type" : "function",
944       "desc" : "Sends this dialog to the back (under) of any other visible dialogs",
945       "sig" : "()\n{\n\n}",
946       "static" : false,
947       "memberOf" : "Roo.BasicDialog",
948       "isStatic" : false,
949       "isConstructor" : false,
950       "isPrivate" : false,
951       "example" : "",
952       "deprecated" : "",
953       "since" : "",
954       "see" : "",
955       "exceptions" : "",
956       "requires" : "",
957       "params" : [],
958       "returns" : [
959         {
960           "name" : "",
961           "type" : "Roo.BasicDialog",
962           "desc" : "this"
963         }
964       ]
965     },
966     {
967       "name" : "setContentSize",
968       "type" : "function",
969       "desc" : "Resizes the dialog to fit the specified content size.",
970       "sig" : "(width, height)",
971       "static" : false,
972       "memberOf" : "Roo.BasicDialog",
973       "isStatic" : false,
974       "isConstructor" : false,
975       "isPrivate" : false,
976       "example" : "",
977       "deprecated" : "",
978       "since" : "",
979       "see" : "",
980       "exceptions" : "",
981       "requires" : "",
982       "params" : [
983         {
984           "name" : "width",
985           "type" : "Number",
986           "desc" : "",
987           "isOptional" : false
988         },
989         {
990           "name" : "height",
991           "type" : "Number",
992           "desc" : "",
993           "isOptional" : false
994         }
995       ],
996       "returns" : [
997         {
998           "name" : "",
999           "type" : "Roo.BasicDialog",
1000           "desc" : "this"
1001         }
1002       ]
1003     },
1004     {
1005       "name" : "restoreState",
1006       "type" : "function",
1007       "desc" : "Restores the previous state of the dialog if Roo.state is configured.",
1008       "sig" : "()\n{\n\n}",
1009       "static" : false,
1010       "memberOf" : "Roo.BasicDialog",
1011       "isStatic" : false,
1012       "isConstructor" : false,
1013       "isPrivate" : false,
1014       "example" : "",
1015       "deprecated" : "",
1016       "since" : "",
1017       "see" : "",
1018       "exceptions" : "",
1019       "requires" : "",
1020       "params" : [],
1021       "returns" : [
1022         {
1023           "name" : "",
1024           "type" : "Roo.BasicDialog",
1025           "desc" : "this"
1026         }
1027       ]
1028     },
1029     {
1030       "name" : "getEl",
1031       "type" : "function",
1032       "desc" : "Returns the element for this dialog",
1033       "sig" : "()\n{\n\n}",
1034       "static" : false,
1035       "memberOf" : "Roo.BasicDialog",
1036       "isStatic" : false,
1037       "isConstructor" : false,
1038       "isPrivate" : false,
1039       "example" : "",
1040       "deprecated" : "",
1041       "since" : "",
1042       "see" : "",
1043       "exceptions" : "",
1044       "requires" : "",
1045       "params" : [],
1046       "returns" : [
1047         {
1048           "name" : "",
1049           "type" : "Roo.Element",
1050           "desc" : "The underlying dialog Element"
1051         }
1052       ]
1053     },
1054     {
1055       "name" : "purgeListeners",
1056       "type" : "function",
1057       "desc" : "Removes all listeners for this object",
1058       "sig" : "()\n{\n\n}",
1059       "static" : false,
1060       "memberOf" : "Roo.util.Observable",
1061       "isStatic" : false,
1062       "isConstructor" : false,
1063       "isPrivate" : false,
1064       "example" : "",
1065       "deprecated" : "",
1066       "since" : "",
1067       "see" : "",
1068       "exceptions" : "",
1069       "requires" : "",
1070       "params" : [],
1071       "returns" : []
1072     },
1073     {
1074       "name" : "on",
1075       "type" : "function",
1076       "desc" : "Appends an event handler to this element (shorthand for addListener)",
1077       "sig" : "(eventName, handler, scope, options)",
1078       "static" : false,
1079       "memberOf" : "Roo.util.Observable",
1080       "isStatic" : false,
1081       "isConstructor" : false,
1082       "isPrivate" : false,
1083       "example" : "",
1084       "deprecated" : "",
1085       "since" : "",
1086       "see" : "",
1087       "exceptions" : "",
1088       "requires" : "",
1089       "params" : [
1090         {
1091           "name" : "eventName",
1092           "type" : "String",
1093           "desc" : "The type of event to listen for",
1094           "isOptional" : false
1095         },
1096         {
1097           "name" : "handler",
1098           "type" : "Function",
1099           "desc" : "The method the event invokes",
1100           "isOptional" : false
1101         },
1102         {
1103           "name" : "scope",
1104           "type" : "Object",
1105           "desc" : "(optional) The scope in which to execute the handler\nfunction. The handler function's \"this\" context.",
1106           "isOptional" : false
1107         },
1108         {
1109           "name" : "options",
1110           "type" : "Object",
1111           "desc" : "(optional)",
1112           "isOptional" : false
1113         }
1114       ],
1115       "returns" : []
1116     },
1117     {
1118       "name" : "un",
1119       "type" : "function",
1120       "desc" : "Removes a listener (shorthand for removeListener)",
1121       "sig" : "(eventName, handler, scope)",
1122       "static" : false,
1123       "memberOf" : "Roo.util.Observable",
1124       "isStatic" : false,
1125       "isConstructor" : false,
1126       "isPrivate" : false,
1127       "example" : "",
1128       "deprecated" : "",
1129       "since" : "",
1130       "see" : "",
1131       "exceptions" : "",
1132       "requires" : "",
1133       "params" : [
1134         {
1135           "name" : "eventName",
1136           "type" : "String",
1137           "desc" : "The type of event to listen for",
1138           "isOptional" : false
1139         },
1140         {
1141           "name" : "handler",
1142           "type" : "Function",
1143           "desc" : "The handler to remove",
1144           "isOptional" : false
1145         },
1146         {
1147           "name" : "scope",
1148           "type" : "Object",
1149           "desc" : "(optional) The scope (this object) for the handler",
1150           "isOptional" : false
1151         }
1152       ],
1153       "returns" : []
1154     },
1155     {
1156       "name" : "addEvents",
1157       "type" : "function",
1158       "desc" : "Used to define events on this Observable",
1159       "sig" : "(object)",
1160       "static" : false,
1161       "memberOf" : "Roo.util.Observable",
1162       "isStatic" : false,
1163       "isConstructor" : false,
1164       "isPrivate" : false,
1165       "example" : "",
1166       "deprecated" : "",
1167       "since" : "",
1168       "see" : "",
1169       "exceptions" : "",
1170       "requires" : "",
1171       "params" : [
1172         {
1173           "name" : "object",
1174           "type" : "Object",
1175           "desc" : "The object with the events defined",
1176           "isOptional" : false
1177         }
1178       ],
1179       "returns" : []
1180     },
1181     {
1182       "name" : "releaseCapture",
1183       "type" : "function",
1184       "desc" : "Removes <b>all</b> added captures from the Observable.",
1185       "sig" : "(o)",
1186       "static" : true,
1187       "memberOf" : "Roo.util.Observable",
1188       "isStatic" : true,
1189       "isConstructor" : false,
1190       "isPrivate" : false,
1191       "example" : "",
1192       "deprecated" : "",
1193       "since" : "",
1194       "see" : "",
1195       "exceptions" : "",
1196       "requires" : "",
1197       "params" : [
1198         {
1199           "name" : "o",
1200           "type" : "Observable",
1201           "desc" : "The Observable to release",
1202           "isOptional" : false
1203         }
1204       ],
1205       "returns" : []
1206     },
1207     {
1208       "name" : "removeListener",
1209       "type" : "function",
1210       "desc" : "Removes a listener",
1211       "sig" : "(eventName, handler, scope)",
1212       "static" : false,
1213       "memberOf" : "Roo.util.Observable",
1214       "isStatic" : false,
1215       "isConstructor" : false,
1216       "isPrivate" : false,
1217       "example" : "",
1218       "deprecated" : "",
1219       "since" : "",
1220       "see" : "",
1221       "exceptions" : "",
1222       "requires" : "",
1223       "params" : [
1224         {
1225           "name" : "eventName",
1226           "type" : "String",
1227           "desc" : "The type of event to listen for",
1228           "isOptional" : false
1229         },
1230         {
1231           "name" : "handler",
1232           "type" : "Function",
1233           "desc" : "The handler to remove",
1234           "isOptional" : false
1235         },
1236         {
1237           "name" : "scope",
1238           "type" : "Object",
1239           "desc" : "(optional) The scope (this object) for the handler",
1240           "isOptional" : false
1241         }
1242       ],
1243       "returns" : []
1244     },
1245     {
1246       "name" : "fireEvent",
1247       "type" : "function",
1248       "desc" : "Fires the specified event with the passed parameters (minus the event name).",
1249       "sig" : "(eventName, args)",
1250       "static" : false,
1251       "memberOf" : "Roo.util.Observable",
1252       "isStatic" : false,
1253       "isConstructor" : false,
1254       "isPrivate" : false,
1255       "example" : "",
1256       "deprecated" : "",
1257       "since" : "",
1258       "see" : "",
1259       "exceptions" : "",
1260       "requires" : "",
1261       "params" : [
1262         {
1263           "name" : "eventName",
1264           "type" : "String",
1265           "desc" : "",
1266           "isOptional" : false
1267         },
1268         {
1269           "name" : "args",
1270           "type" : "Object...",
1271           "desc" : "Variable number of parameters are passed to handlers",
1272           "isOptional" : false
1273         }
1274       ],
1275       "returns" : [
1276         {
1277           "name" : "",
1278           "type" : "Boolean",
1279           "desc" : "returns false if any of the handlers return false otherwise it returns true"
1280         }
1281       ]
1282     },
1283     {
1284       "name" : "hasListener",
1285       "type" : "function",
1286       "desc" : "Checks to see if this object has any listeners for a specified event",
1287       "sig" : "(eventName)",
1288       "static" : false,
1289       "memberOf" : "Roo.util.Observable",
1290       "isStatic" : false,
1291       "isConstructor" : false,
1292       "isPrivate" : false,
1293       "example" : "",
1294       "deprecated" : "",
1295       "since" : "",
1296       "see" : "",
1297       "exceptions" : "",
1298       "requires" : "",
1299       "params" : [
1300         {
1301           "name" : "eventName",
1302           "type" : "String",
1303           "desc" : "The name of the event to check for",
1304           "isOptional" : false
1305         }
1306       ],
1307       "returns" : [
1308         {
1309           "name" : "",
1310           "type" : "Boolean",
1311           "desc" : "True if the event is being listened for, else false"
1312         }
1313       ]
1314     },
1315     {
1316       "name" : "capture",
1317       "type" : "function",
1318       "desc" : "Starts capture on the specified Observable. All events will be passed\nto the supplied function with the event name + standard signature of the event\n<b>before</b> the event is fired. If the supplied function returns false,\nthe event will not fire.",
1319       "sig" : "(o, fn, scope)",
1320       "static" : true,
1321       "memberOf" : "Roo.util.Observable",
1322       "isStatic" : true,
1323       "isConstructor" : false,
1324       "isPrivate" : false,
1325       "example" : "",
1326       "deprecated" : "",
1327       "since" : "",
1328       "see" : "",
1329       "exceptions" : "",
1330       "requires" : "",
1331       "params" : [
1332         {
1333           "name" : "o",
1334           "type" : "Observable",
1335           "desc" : "The Observable to capture",
1336           "isOptional" : false
1337         },
1338         {
1339           "name" : "fn",
1340           "type" : "Function",
1341           "desc" : "The function to call",
1342           "isOptional" : false
1343         },
1344         {
1345           "name" : "scope",
1346           "type" : "Object",
1347           "desc" : "(optional) The scope (this object) for the fn",
1348           "isOptional" : false
1349         }
1350       ],
1351       "returns" : []
1352     },
1353     {
1354       "name" : "addListener",
1355       "type" : "function",
1356       "desc" : "Appends an event handler to this component",
1357       "sig" : "(eventName, handler, scope, options)",
1358       "static" : false,
1359       "memberOf" : "Roo.util.Observable",
1360       "isStatic" : false,
1361       "isConstructor" : false,
1362       "isPrivate" : false,
1363       "example" : "",
1364       "deprecated" : "",
1365       "since" : "",
1366       "see" : "",
1367       "exceptions" : "",
1368       "requires" : "",
1369       "params" : [
1370         {
1371           "name" : "eventName",
1372           "type" : "String",
1373           "desc" : "The type of event to listen for",
1374           "isOptional" : false
1375         },
1376         {
1377           "name" : "handler",
1378           "type" : "Function",
1379           "desc" : "The method the event invokes",
1380           "isOptional" : false
1381         },
1382         {
1383           "name" : "scope",
1384           "type" : "Object",
1385           "desc" : "(optional) The scope in which to execute the handler\nfunction. The handler function's \"this\" context.",
1386           "isOptional" : false
1387         },
1388         {
1389           "name" : "options",
1390           "type" : "Object",
1391           "desc" : "(optional) An object containing handler configuration\nproperties. This may contain any of the following properties:<ul>\n<li>scope {Object} The scope in which to execute the handler function. The handler function's \"this\" context.</li>\n<li>delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.</li>\n<li>single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.</li>\n<li>buffer {Number} Causes the handler to be scheduled to run in an {@link Roo.util.DelayedTask} delayed\nby the specified number of milliseconds. If the event fires again within that time, the original\nhandler is <em>not</em> invoked, but the new handler is scheduled in its place.</li>\n</ul><br>\n<p>\n<b>Combining Options</b><br>\nUsing the options argument, it is possible to combine different types of listeners:<br>\n<br>\nA normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)\n\t\t<pre><code>\n\t\tel.on('click', this.onClick, this, {\n \t\t\tsingle: true,\n    \t\tdelay: 100,\n    \t\tforumId: 4\n\t\t});\n\t\t</code></pre>\n<p>\n<b>Attaching multiple handlers in 1 call</b><br>\nThe method also allows for a single argument to be passed which is a config object containing properties\nwhich specify multiple handlers.\n<pre><code>\n\t\tel.on({\n\t\t\t'click': {\n        \t\tfn: this.onClick,\n        \t\tscope: this,\n        \t\tdelay: 100\n    \t\t}, \n    \t\t'mouseover': {\n        \t\tfn: this.onMouseOver,\n        \t\tscope: this\n    \t\t},\n    \t\t'mouseout': {\n        \t\tfn: this.onMouseOut,\n        \t\tscope: this\n    \t\t}\n\t\t});\n\t\t</code></pre>\n<p>\nOr a shorthand syntax which passes the same scope object to all handlers:\n     \t<pre><code>\n\t\tel.on({\n\t\t\t'click': this.onClick,\n    \t\t'mouseover': this.onMouseOver,\n    \t\t'mouseout': this.onMouseOut,\n    \t\tscope: this\n\t\t});\n\t\t</code></pre>",
1392           "isOptional" : false
1393         }
1394       ],
1395       "returns" : []
1396     }
1397   ],
1398   "events" : [
1399     {
1400       "name" : "move",
1401       "type" : "function",
1402       "desc" : "Fires when this dialog is moved by the user.",
1403       "sig" : "function (_self, x, y)\n{\n\n}",
1404       "memberOf" : "Roo.BasicDialog",
1405       "example" : "",
1406       "deprecated" : "",
1407       "since" : "",
1408       "see" : "",
1409       "params" : [
1410         {
1411           "name" : "this",
1412           "type" : "Roo.BasicDialog",
1413           "desc" : "",
1414           "isOptional" : false
1415         },
1416         {
1417           "name" : "x",
1418           "type" : "Number",
1419           "desc" : "The new page X",
1420           "isOptional" : false
1421         },
1422         {
1423           "name" : "y",
1424           "type" : "Number",
1425           "desc" : "The new page Y",
1426           "isOptional" : false
1427         }
1428       ],
1429       "returns" : []
1430     },
1431     {
1432       "name" : "resize",
1433       "type" : "function",
1434       "desc" : "Fires when this dialog is resized by the user.",
1435       "sig" : "function (_self, width, height)\n{\n\n}",
1436       "memberOf" : "Roo.BasicDialog",
1437       "example" : "",
1438       "deprecated" : "",
1439       "since" : "",
1440       "see" : "",
1441       "params" : [
1442         {
1443           "name" : "this",
1444           "type" : "Roo.BasicDialog",
1445           "desc" : "",
1446           "isOptional" : false
1447         },
1448         {
1449           "name" : "width",
1450           "type" : "Number",
1451           "desc" : "The new width",
1452           "isOptional" : false
1453         },
1454         {
1455           "name" : "height",
1456           "type" : "Number",
1457           "desc" : "The new height",
1458           "isOptional" : false
1459         }
1460       ],
1461       "returns" : []
1462     },
1463     {
1464       "name" : "beforehide",
1465       "type" : "function",
1466       "desc" : "Fires before this dialog is hidden.",
1467       "sig" : "function (_self)\n{\n\n}",
1468       "memberOf" : "Roo.BasicDialog",
1469       "example" : "",
1470       "deprecated" : "",
1471       "since" : "",
1472       "see" : "",
1473       "params" : [
1474         {
1475           "name" : "this",
1476           "type" : "Roo.BasicDialog",
1477           "desc" : "",
1478           "isOptional" : false
1479         }
1480       ],
1481       "returns" : []
1482     },
1483     {
1484       "name" : "beforeshow",
1485       "type" : "function",
1486       "desc" : "Fires before this dialog is shown.",
1487       "sig" : "function (_self)\n{\n\n}",
1488       "memberOf" : "Roo.BasicDialog",
1489       "example" : "",
1490       "deprecated" : "",
1491       "since" : "",
1492       "see" : "",
1493       "params" : [
1494         {
1495           "name" : "this",
1496           "type" : "Roo.BasicDialog",
1497           "desc" : "",
1498           "isOptional" : false
1499         }
1500       ],
1501       "returns" : []
1502     },
1503     {
1504       "name" : "hide",
1505       "type" : "function",
1506       "desc" : "Fires when this dialog is hidden.",
1507       "sig" : "function (_self)\n{\n\n}",
1508       "memberOf" : "Roo.BasicDialog",
1509       "example" : "",
1510       "deprecated" : "",
1511       "since" : "",
1512       "see" : "",
1513       "params" : [
1514         {
1515           "name" : "this",
1516           "type" : "Roo.BasicDialog",
1517           "desc" : "",
1518           "isOptional" : false
1519         }
1520       ],
1521       "returns" : []
1522     },
1523     {
1524       "name" : "show",
1525       "type" : "function",
1526       "desc" : "Fires when this dialog is shown.",
1527       "sig" : "function (_self)\n{\n\n}",
1528       "memberOf" : "Roo.BasicDialog",
1529       "example" : "",
1530       "deprecated" : "",
1531       "since" : "",
1532       "see" : "",
1533       "params" : [
1534         {
1535           "name" : "this",
1536           "type" : "Roo.BasicDialog",
1537           "desc" : "",
1538           "isOptional" : false
1539         }
1540       ],
1541       "returns" : []
1542     },
1543     {
1544       "name" : "keydown",
1545       "type" : "function",
1546       "desc" : "Fires when a key is pressed",
1547       "sig" : "function (_self, e)\n{\n\n}",
1548       "memberOf" : "Roo.BasicDialog",
1549       "example" : "",
1550       "deprecated" : "",
1551       "since" : "",
1552       "see" : "",
1553       "params" : [
1554         {
1555           "name" : "this",
1556           "type" : "Roo.BasicDialog",
1557           "desc" : "",
1558           "isOptional" : false
1559         },
1560         {
1561           "name" : "e",
1562           "type" : "Roo.EventObject",
1563           "desc" : "",
1564           "isOptional" : false
1565         }
1566       ],
1567       "returns" : []
1568     }
1569   ]
1570 }