lpmp 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (636) hide show
  1. data/LICENSE +3 -0
  2. data/README +3 -0
  3. data/Rakefile +45 -0
  4. data/bin/lpmp +107 -0
  5. data/config/help.yaml +1 -0
  6. data/config/hosts.yaml +2 -0
  7. data/config/log.yaml +1 -0
  8. data/config/memcache.yaml +5 -0
  9. data/erb/index.erb +62 -0
  10. data/lib/bg_pull/caichen.rb +199 -0
  11. data/lib/bg_pull/lpmp.rb +45 -0
  12. data/lib/exception.rb +8 -0
  13. data/lib/lpmp.rb +53 -0
  14. data/lib/pull/lpmp.rb +355 -0
  15. data/lib/remote_lmp.rb +129 -0
  16. data/lib/utils.rb +14 -0
  17. data/lib/xq_push/caichen.rb +174 -0
  18. data/lib/xq_push/lpmp.rb +96 -0
  19. data/log/lpmp1st.log +1 -0
  20. data/public/css/ext-portal.css +40 -0
  21. data/public/css/lpmp.css +6 -0
  22. data/public/designer/caichen.epj +1 -0
  23. data/public/designer/hostmonitor.epj +1 -0
  24. data/public/ext-3.0.0/INCLUDE_ORDER.txt +35 -0
  25. data/public/ext-3.0.0/adapter/ext/ext-base-debug.js +3589 -0
  26. data/public/ext-3.0.0/adapter/ext/ext-base.js +7 -0
  27. data/public/ext-3.0.0/adapter/jquery/ext-jquery-adapter-debug.js +2292 -0
  28. data/public/ext-3.0.0/adapter/jquery/ext-jquery-adapter.js +7 -0
  29. data/public/ext-3.0.0/adapter/prototype/ext-prototype-adapter-debug.js +2346 -0
  30. data/public/ext-3.0.0/adapter/prototype/ext-prototype-adapter.js +7 -0
  31. data/public/ext-3.0.0/adapter/yui/ext-yui-adapter-debug.js +2136 -0
  32. data/public/ext-3.0.0/adapter/yui/ext-yui-adapter.js +7 -0
  33. data/public/ext-3.0.0/ext-all-debug.js +65610 -0
  34. data/public/ext-3.0.0/ext-all.js +11 -0
  35. data/public/ext-3.0.0/license.txt +42 -0
  36. data/public/ext-3.0.0/pkgs/cmp-foundation-debug.js +11287 -0
  37. data/public/ext-3.0.0/pkgs/cmp-foundation.js +7 -0
  38. data/public/ext-3.0.0/pkgs/data-foundation-debug.js +3853 -0
  39. data/public/ext-3.0.0/pkgs/data-foundation.js +7 -0
  40. data/public/ext-3.0.0/pkgs/data-grouping-debug.js +139 -0
  41. data/public/ext-3.0.0/pkgs/data-grouping.js +7 -0
  42. data/public/ext-3.0.0/pkgs/data-json-debug.js +582 -0
  43. data/public/ext-3.0.0/pkgs/data-json.js +7 -0
  44. data/public/ext-3.0.0/pkgs/data-list-views-debug.js +1278 -0
  45. data/public/ext-3.0.0/pkgs/data-list-views.js +7 -0
  46. data/public/ext-3.0.0/pkgs/data-xml-debug.js +234 -0
  47. data/public/ext-3.0.0/pkgs/data-xml.js +7 -0
  48. data/public/ext-3.0.0/pkgs/direct-debug.js +1121 -0
  49. data/public/ext-3.0.0/pkgs/direct.js +7 -0
  50. data/public/ext-3.0.0/pkgs/ext-dd-debug.js +4567 -0
  51. data/public/ext-3.0.0/pkgs/ext-dd.js +7 -0
  52. data/public/ext-3.0.0/pkgs/ext-foundation-debug.js +13417 -0
  53. data/public/ext-3.0.0/pkgs/ext-foundation.js +7 -0
  54. data/public/ext-3.0.0/pkgs/pkg-buttons-debug.js +1060 -0
  55. data/public/ext-3.0.0/pkgs/pkg-buttons.js +7 -0
  56. data/public/ext-3.0.0/pkgs/pkg-charts-debug.js +1621 -0
  57. data/public/ext-3.0.0/pkgs/pkg-charts.js +10 -0
  58. data/public/ext-3.0.0/pkgs/pkg-forms-debug.js +7661 -0
  59. data/public/ext-3.0.0/pkgs/pkg-forms.js +7 -0
  60. data/public/ext-3.0.0/pkgs/pkg-grid-editor-debug.js +560 -0
  61. data/public/ext-3.0.0/pkgs/pkg-grid-editor.js +7 -0
  62. data/public/ext-3.0.0/pkgs/pkg-grid-foundation-debug.js +4765 -0
  63. data/public/ext-3.0.0/pkgs/pkg-grid-foundation.js +7 -0
  64. data/public/ext-3.0.0/pkgs/pkg-grid-grouping-debug.js +517 -0
  65. data/public/ext-3.0.0/pkgs/pkg-grid-grouping.js +7 -0
  66. data/public/ext-3.0.0/pkgs/pkg-grid-property-debug.js +370 -0
  67. data/public/ext-3.0.0/pkgs/pkg-grid-property.js +7 -0
  68. data/public/ext-3.0.0/pkgs/pkg-history-debug.js +203 -0
  69. data/public/ext-3.0.0/pkgs/pkg-history.js +7 -0
  70. data/public/ext-3.0.0/pkgs/pkg-menu-debug.js +1628 -0
  71. data/public/ext-3.0.0/pkgs/pkg-menu.js +7 -0
  72. data/public/ext-3.0.0/pkgs/pkg-tabs-debug.js +1100 -0
  73. data/public/ext-3.0.0/pkgs/pkg-tabs.js +7 -0
  74. data/public/ext-3.0.0/pkgs/pkg-tips-debug.js +994 -0
  75. data/public/ext-3.0.0/pkgs/pkg-tips.js +7 -0
  76. data/public/ext-3.0.0/pkgs/pkg-toolbars-debug.js +1374 -0
  77. data/public/ext-3.0.0/pkgs/pkg-toolbars.js +7 -0
  78. data/public/ext-3.0.0/pkgs/pkg-tree-debug.js +4522 -0
  79. data/public/ext-3.0.0/pkgs/pkg-tree.js +7 -0
  80. data/public/ext-3.0.0/pkgs/resizable-debug.js +760 -0
  81. data/public/ext-3.0.0/pkgs/resizable.js +7 -0
  82. data/public/ext-3.0.0/pkgs/state-debug.js +274 -0
  83. data/public/ext-3.0.0/pkgs/state.js +7 -0
  84. data/public/ext-3.0.0/pkgs/window-debug.js +1888 -0
  85. data/public/ext-3.0.0/pkgs/window.js +7 -0
  86. data/public/ext-3.0.0/resources/charts.swf +0 -0
  87. data/public/ext-3.0.0/resources/css/README.txt +3 -0
  88. data/public/ext-3.0.0/resources/css/ext-all-notheme.css +5345 -0
  89. data/public/ext-3.0.0/resources/css/ext-all.css +6990 -0
  90. data/public/ext-3.0.0/resources/css/reset-min.css +7 -0
  91. data/public/ext-3.0.0/resources/css/structure/borders.css +54 -0
  92. data/public/ext-3.0.0/resources/css/structure/box.css +80 -0
  93. data/public/ext-3.0.0/resources/css/structure/button.css +440 -0
  94. data/public/ext-3.0.0/resources/css/structure/combo.css +45 -0
  95. data/public/ext-3.0.0/resources/css/structure/core.css +326 -0
  96. data/public/ext-3.0.0/resources/css/structure/date-picker.css +265 -0
  97. data/public/ext-3.0.0/resources/css/structure/dd.css +61 -0
  98. data/public/ext-3.0.0/resources/css/structure/debug.css +26 -0
  99. data/public/ext-3.0.0/resources/css/structure/dialog.css +62 -0
  100. data/public/ext-3.0.0/resources/css/structure/editor.css +92 -0
  101. data/public/ext-3.0.0/resources/css/structure/form.css +562 -0
  102. data/public/ext-3.0.0/resources/css/structure/grid.css +552 -0
  103. data/public/ext-3.0.0/resources/css/structure/layout.css +296 -0
  104. data/public/ext-3.0.0/resources/css/structure/list-view.css +85 -0
  105. data/public/ext-3.0.0/resources/css/structure/menu.css +205 -0
  106. data/public/ext-3.0.0/resources/css/structure/panel-reset.css +130 -0
  107. data/public/ext-3.0.0/resources/css/structure/panel.css +468 -0
  108. data/public/ext-3.0.0/resources/css/structure/progress.css +42 -0
  109. data/public/ext-3.0.0/resources/css/structure/qtips.css +153 -0
  110. data/public/ext-3.0.0/resources/css/structure/reset.css +7 -0
  111. data/public/ext-3.0.0/resources/css/structure/resizable.css +149 -0
  112. data/public/ext-3.0.0/resources/css/structure/slider.css +103 -0
  113. data/public/ext-3.0.0/resources/css/structure/tabs.css +372 -0
  114. data/public/ext-3.0.0/resources/css/structure/toolbar.css +259 -0
  115. data/public/ext-3.0.0/resources/css/structure/tree.css +203 -0
  116. data/public/ext-3.0.0/resources/css/structure/window.css +222 -0
  117. data/public/ext-3.0.0/resources/css/visual/borders.css +25 -0
  118. data/public/ext-3.0.0/resources/css/visual/box.css +74 -0
  119. data/public/ext-3.0.0/resources/css/visual/button.css +94 -0
  120. data/public/ext-3.0.0/resources/css/visual/combo.css +43 -0
  121. data/public/ext-3.0.0/resources/css/visual/core.css +76 -0
  122. data/public/ext-3.0.0/resources/css/visual/date-picker.css +143 -0
  123. data/public/ext-3.0.0/resources/css/visual/dd.css +29 -0
  124. data/public/ext-3.0.0/resources/css/visual/debug.css +24 -0
  125. data/public/ext-3.0.0/resources/css/visual/dialog.css +34 -0
  126. data/public/ext-3.0.0/resources/css/visual/editor.css +13 -0
  127. data/public/ext-3.0.0/resources/css/visual/form.css +117 -0
  128. data/public/ext-3.0.0/resources/css/visual/grid.css +272 -0
  129. data/public/ext-3.0.0/resources/css/visual/layout.css +53 -0
  130. data/public/ext-3.0.0/resources/css/visual/list-view.css +37 -0
  131. data/public/ext-3.0.0/resources/css/visual/menu.css +82 -0
  132. data/public/ext-3.0.0/resources/css/visual/panel.css +87 -0
  133. data/public/ext-3.0.0/resources/css/visual/progress.css +32 -0
  134. data/public/ext-3.0.0/resources/css/visual/qtips.css +44 -0
  135. data/public/ext-3.0.0/resources/css/visual/resizable.css +43 -0
  136. data/public/ext-3.0.0/resources/css/visual/slider.css +21 -0
  137. data/public/ext-3.0.0/resources/css/visual/tabs.css +119 -0
  138. data/public/ext-3.0.0/resources/css/visual/toolbar.css +103 -0
  139. data/public/ext-3.0.0/resources/css/visual/tree.css +157 -0
  140. data/public/ext-3.0.0/resources/css/visual/window.css +86 -0
  141. data/public/ext-3.0.0/resources/css/xtheme-blue.css +1652 -0
  142. data/public/ext-3.0.0/resources/expressinstall.swf +0 -0
  143. data/public/ext-3.0.0/resources/images/default/box/corners-blue.gif +0 -0
  144. data/public/ext-3.0.0/resources/images/default/box/corners.gif +0 -0
  145. data/public/ext-3.0.0/resources/images/default/box/l-blue.gif +0 -0
  146. data/public/ext-3.0.0/resources/images/default/box/l.gif +0 -0
  147. data/public/ext-3.0.0/resources/images/default/box/r-blue.gif +0 -0
  148. data/public/ext-3.0.0/resources/images/default/box/r.gif +0 -0
  149. data/public/ext-3.0.0/resources/images/default/box/tb-blue.gif +0 -0
  150. data/public/ext-3.0.0/resources/images/default/box/tb.gif +0 -0
  151. data/public/ext-3.0.0/resources/images/default/button/arrow.gif +0 -0
  152. data/public/ext-3.0.0/resources/images/default/button/btn.gif +0 -0
  153. data/public/ext-3.0.0/resources/images/default/button/group-cs.gif +0 -0
  154. data/public/ext-3.0.0/resources/images/default/button/group-lr.gif +0 -0
  155. data/public/ext-3.0.0/resources/images/default/button/group-tb.gif +0 -0
  156. data/public/ext-3.0.0/resources/images/default/button/s-arrow-b-noline.gif +0 -0
  157. data/public/ext-3.0.0/resources/images/default/button/s-arrow-b.gif +0 -0
  158. data/public/ext-3.0.0/resources/images/default/button/s-arrow-bo.gif +0 -0
  159. data/public/ext-3.0.0/resources/images/default/button/s-arrow-noline.gif +0 -0
  160. data/public/ext-3.0.0/resources/images/default/button/s-arrow-o.gif +0 -0
  161. data/public/ext-3.0.0/resources/images/default/button/s-arrow.gif +0 -0
  162. data/public/ext-3.0.0/resources/images/default/dd/drop-add.gif +0 -0
  163. data/public/ext-3.0.0/resources/images/default/dd/drop-no.gif +0 -0
  164. data/public/ext-3.0.0/resources/images/default/dd/drop-yes.gif +0 -0
  165. data/public/ext-3.0.0/resources/images/default/editor/tb-sprite.gif +0 -0
  166. data/public/ext-3.0.0/resources/images/default/form/checkbox.gif +0 -0
  167. data/public/ext-3.0.0/resources/images/default/form/clear-trigger.gif +0 -0
  168. data/public/ext-3.0.0/resources/images/default/form/clear-trigger.psd +0 -0
  169. data/public/ext-3.0.0/resources/images/default/form/date-trigger.gif +0 -0
  170. data/public/ext-3.0.0/resources/images/default/form/date-trigger.psd +0 -0
  171. data/public/ext-3.0.0/resources/images/default/form/error-tip-corners.gif +0 -0
  172. data/public/ext-3.0.0/resources/images/default/form/exclamation.gif +0 -0
  173. data/public/ext-3.0.0/resources/images/default/form/radio.gif +0 -0
  174. data/public/ext-3.0.0/resources/images/default/form/search-trigger.gif +0 -0
  175. data/public/ext-3.0.0/resources/images/default/form/search-trigger.psd +0 -0
  176. data/public/ext-3.0.0/resources/images/default/form/text-bg.gif +0 -0
  177. data/public/ext-3.0.0/resources/images/default/form/trigger-tpl.gif +0 -0
  178. data/public/ext-3.0.0/resources/images/default/form/trigger.gif +0 -0
  179. data/public/ext-3.0.0/resources/images/default/form/trigger.psd +0 -0
  180. data/public/ext-3.0.0/resources/images/default/gradient-bg.gif +0 -0
  181. data/public/ext-3.0.0/resources/images/default/grid/arrow-left-white.gif +0 -0
  182. data/public/ext-3.0.0/resources/images/default/grid/arrow-right-white.gif +0 -0
  183. data/public/ext-3.0.0/resources/images/default/grid/col-move-bottom.gif +0 -0
  184. data/public/ext-3.0.0/resources/images/default/grid/col-move-top.gif +0 -0
  185. data/public/ext-3.0.0/resources/images/default/grid/columns.gif +0 -0
  186. data/public/ext-3.0.0/resources/images/default/grid/dirty.gif +0 -0
  187. data/public/ext-3.0.0/resources/images/default/grid/done.gif +0 -0
  188. data/public/ext-3.0.0/resources/images/default/grid/drop-no.gif +0 -0
  189. data/public/ext-3.0.0/resources/images/default/grid/drop-yes.gif +0 -0
  190. data/public/ext-3.0.0/resources/images/default/grid/footer-bg.gif +0 -0
  191. data/public/ext-3.0.0/resources/images/default/grid/grid-blue-hd.gif +0 -0
  192. data/public/ext-3.0.0/resources/images/default/grid/grid-blue-split.gif +0 -0
  193. data/public/ext-3.0.0/resources/images/default/grid/grid-hrow.gif +0 -0
  194. data/public/ext-3.0.0/resources/images/default/grid/grid-loading.gif +0 -0
  195. data/public/ext-3.0.0/resources/images/default/grid/grid-split.gif +0 -0
  196. data/public/ext-3.0.0/resources/images/default/grid/grid-vista-hd.gif +0 -0
  197. data/public/ext-3.0.0/resources/images/default/grid/grid3-hd-btn.gif +0 -0
  198. data/public/ext-3.0.0/resources/images/default/grid/grid3-hrow-over.gif +0 -0
  199. data/public/ext-3.0.0/resources/images/default/grid/grid3-hrow.gif +0 -0
  200. data/public/ext-3.0.0/resources/images/default/grid/grid3-special-col-bg.gif +0 -0
  201. data/public/ext-3.0.0/resources/images/default/grid/grid3-special-col-sel-bg.gif +0 -0
  202. data/public/ext-3.0.0/resources/images/default/grid/group-by.gif +0 -0
  203. data/public/ext-3.0.0/resources/images/default/grid/group-collapse.gif +0 -0
  204. data/public/ext-3.0.0/resources/images/default/grid/group-expand-sprite.gif +0 -0
  205. data/public/ext-3.0.0/resources/images/default/grid/group-expand.gif +0 -0
  206. data/public/ext-3.0.0/resources/images/default/grid/hd-pop.gif +0 -0
  207. data/public/ext-3.0.0/resources/images/default/grid/hmenu-asc.gif +0 -0
  208. data/public/ext-3.0.0/resources/images/default/grid/hmenu-desc.gif +0 -0
  209. data/public/ext-3.0.0/resources/images/default/grid/hmenu-lock.gif +0 -0
  210. data/public/ext-3.0.0/resources/images/default/grid/hmenu-lock.png +0 -0
  211. data/public/ext-3.0.0/resources/images/default/grid/hmenu-unlock.gif +0 -0
  212. data/public/ext-3.0.0/resources/images/default/grid/hmenu-unlock.png +0 -0
  213. data/public/ext-3.0.0/resources/images/default/grid/invalid_line.gif +0 -0
  214. data/public/ext-3.0.0/resources/images/default/grid/loading.gif +0 -0
  215. data/public/ext-3.0.0/resources/images/default/grid/mso-hd.gif +0 -0
  216. data/public/ext-3.0.0/resources/images/default/grid/nowait.gif +0 -0
  217. data/public/ext-3.0.0/resources/images/default/grid/page-first-disabled.gif +0 -0
  218. data/public/ext-3.0.0/resources/images/default/grid/page-first.gif +0 -0
  219. data/public/ext-3.0.0/resources/images/default/grid/page-last-disabled.gif +0 -0
  220. data/public/ext-3.0.0/resources/images/default/grid/page-last.gif +0 -0
  221. data/public/ext-3.0.0/resources/images/default/grid/page-next-disabled.gif +0 -0
  222. data/public/ext-3.0.0/resources/images/default/grid/page-next.gif +0 -0
  223. data/public/ext-3.0.0/resources/images/default/grid/page-prev-disabled.gif +0 -0
  224. data/public/ext-3.0.0/resources/images/default/grid/page-prev.gif +0 -0
  225. data/public/ext-3.0.0/resources/images/default/grid/pick-button.gif +0 -0
  226. data/public/ext-3.0.0/resources/images/default/grid/refresh.gif +0 -0
  227. data/public/ext-3.0.0/resources/images/default/grid/row-check-sprite.gif +0 -0
  228. data/public/ext-3.0.0/resources/images/default/grid/row-expand-sprite.gif +0 -0
  229. data/public/ext-3.0.0/resources/images/default/grid/row-over.gif +0 -0
  230. data/public/ext-3.0.0/resources/images/default/grid/row-sel.gif +0 -0
  231. data/public/ext-3.0.0/resources/images/default/grid/sort-hd.gif +0 -0
  232. data/public/ext-3.0.0/resources/images/default/grid/sort_asc.gif +0 -0
  233. data/public/ext-3.0.0/resources/images/default/grid/sort_desc.gif +0 -0
  234. data/public/ext-3.0.0/resources/images/default/grid/wait.gif +0 -0
  235. data/public/ext-3.0.0/resources/images/default/layout/collapse.gif +0 -0
  236. data/public/ext-3.0.0/resources/images/default/layout/expand.gif +0 -0
  237. data/public/ext-3.0.0/resources/images/default/layout/gradient-bg.gif +0 -0
  238. data/public/ext-3.0.0/resources/images/default/layout/mini-bottom.gif +0 -0
  239. data/public/ext-3.0.0/resources/images/default/layout/mini-left.gif +0 -0
  240. data/public/ext-3.0.0/resources/images/default/layout/mini-right.gif +0 -0
  241. data/public/ext-3.0.0/resources/images/default/layout/mini-top.gif +0 -0
  242. data/public/ext-3.0.0/resources/images/default/layout/ns-collapse.gif +0 -0
  243. data/public/ext-3.0.0/resources/images/default/layout/ns-expand.gif +0 -0
  244. data/public/ext-3.0.0/resources/images/default/layout/panel-close.gif +0 -0
  245. data/public/ext-3.0.0/resources/images/default/layout/panel-title-bg.gif +0 -0
  246. data/public/ext-3.0.0/resources/images/default/layout/panel-title-light-bg.gif +0 -0
  247. data/public/ext-3.0.0/resources/images/default/layout/stick.gif +0 -0
  248. data/public/ext-3.0.0/resources/images/default/layout/stuck.gif +0 -0
  249. data/public/ext-3.0.0/resources/images/default/layout/tab-close-on.gif +0 -0
  250. data/public/ext-3.0.0/resources/images/default/layout/tab-close.gif +0 -0
  251. data/public/ext-3.0.0/resources/images/default/menu/checked.gif +0 -0
  252. data/public/ext-3.0.0/resources/images/default/menu/group-checked.gif +0 -0
  253. data/public/ext-3.0.0/resources/images/default/menu/item-over.gif +0 -0
  254. data/public/ext-3.0.0/resources/images/default/menu/menu-parent.gif +0 -0
  255. data/public/ext-3.0.0/resources/images/default/menu/menu.gif +0 -0
  256. data/public/ext-3.0.0/resources/images/default/menu/unchecked.gif +0 -0
  257. data/public/ext-3.0.0/resources/images/default/panel/corners-sprite.gif +0 -0
  258. data/public/ext-3.0.0/resources/images/default/panel/left-right.gif +0 -0
  259. data/public/ext-3.0.0/resources/images/default/panel/light-hd.gif +0 -0
  260. data/public/ext-3.0.0/resources/images/default/panel/tool-sprite-tpl.gif +0 -0
  261. data/public/ext-3.0.0/resources/images/default/panel/tool-sprites.gif +0 -0
  262. data/public/ext-3.0.0/resources/images/default/panel/tools-sprites-trans.gif +0 -0
  263. data/public/ext-3.0.0/resources/images/default/panel/top-bottom.gif +0 -0
  264. data/public/ext-3.0.0/resources/images/default/panel/top-bottom.png +0 -0
  265. data/public/ext-3.0.0/resources/images/default/panel/white-corners-sprite.gif +0 -0
  266. data/public/ext-3.0.0/resources/images/default/panel/white-left-right.gif +0 -0
  267. data/public/ext-3.0.0/resources/images/default/panel/white-top-bottom.gif +0 -0
  268. data/public/ext-3.0.0/resources/images/default/progress/progress-bg.gif +0 -0
  269. data/public/ext-3.0.0/resources/images/default/qtip/bg.gif +0 -0
  270. data/public/ext-3.0.0/resources/images/default/qtip/close.gif +0 -0
  271. data/public/ext-3.0.0/resources/images/default/qtip/tip-anchor-sprite.gif +0 -0
  272. data/public/ext-3.0.0/resources/images/default/qtip/tip-sprite.gif +0 -0
  273. data/public/ext-3.0.0/resources/images/default/s.gif +0 -0
  274. data/public/ext-3.0.0/resources/images/default/shadow-c.png +0 -0
  275. data/public/ext-3.0.0/resources/images/default/shadow-lr.png +0 -0
  276. data/public/ext-3.0.0/resources/images/default/shadow.png +0 -0
  277. data/public/ext-3.0.0/resources/images/default/shared/blue-loading.gif +0 -0
  278. data/public/ext-3.0.0/resources/images/default/shared/calendar.gif +0 -0
  279. data/public/ext-3.0.0/resources/images/default/shared/glass-bg.gif +0 -0
  280. data/public/ext-3.0.0/resources/images/default/shared/hd-sprite.gif +0 -0
  281. data/public/ext-3.0.0/resources/images/default/shared/large-loading.gif +0 -0
  282. data/public/ext-3.0.0/resources/images/default/shared/left-btn.gif +0 -0
  283. data/public/ext-3.0.0/resources/images/default/shared/loading-balls.gif +0 -0
  284. data/public/ext-3.0.0/resources/images/default/shared/right-btn.gif +0 -0
  285. data/public/ext-3.0.0/resources/images/default/shared/warning.gif +0 -0
  286. data/public/ext-3.0.0/resources/images/default/sizer/e-handle-dark.gif +0 -0
  287. data/public/ext-3.0.0/resources/images/default/sizer/e-handle.gif +0 -0
  288. data/public/ext-3.0.0/resources/images/default/sizer/ne-handle-dark.gif +0 -0
  289. data/public/ext-3.0.0/resources/images/default/sizer/ne-handle.gif +0 -0
  290. data/public/ext-3.0.0/resources/images/default/sizer/nw-handle-dark.gif +0 -0
  291. data/public/ext-3.0.0/resources/images/default/sizer/nw-handle.gif +0 -0
  292. data/public/ext-3.0.0/resources/images/default/sizer/s-handle-dark.gif +0 -0
  293. data/public/ext-3.0.0/resources/images/default/sizer/s-handle.gif +0 -0
  294. data/public/ext-3.0.0/resources/images/default/sizer/se-handle-dark.gif +0 -0
  295. data/public/ext-3.0.0/resources/images/default/sizer/se-handle.gif +0 -0
  296. data/public/ext-3.0.0/resources/images/default/sizer/square.gif +0 -0
  297. data/public/ext-3.0.0/resources/images/default/sizer/sw-handle-dark.gif +0 -0
  298. data/public/ext-3.0.0/resources/images/default/sizer/sw-handle.gif +0 -0
  299. data/public/ext-3.0.0/resources/images/default/slider/slider-bg.png +0 -0
  300. data/public/ext-3.0.0/resources/images/default/slider/slider-thumb.png +0 -0
  301. data/public/ext-3.0.0/resources/images/default/slider/slider-v-bg.png +0 -0
  302. data/public/ext-3.0.0/resources/images/default/slider/slider-v-thumb.png +0 -0
  303. data/public/ext-3.0.0/resources/images/default/tabs/scroll-left.gif +0 -0
  304. data/public/ext-3.0.0/resources/images/default/tabs/scroll-right.gif +0 -0
  305. data/public/ext-3.0.0/resources/images/default/tabs/scroller-bg.gif +0 -0
  306. data/public/ext-3.0.0/resources/images/default/tabs/tab-btm-inactive-left-bg.gif +0 -0
  307. data/public/ext-3.0.0/resources/images/default/tabs/tab-btm-inactive-right-bg.gif +0 -0
  308. data/public/ext-3.0.0/resources/images/default/tabs/tab-btm-left-bg.gif +0 -0
  309. data/public/ext-3.0.0/resources/images/default/tabs/tab-btm-right-bg.gif +0 -0
  310. data/public/ext-3.0.0/resources/images/default/tabs/tab-close.gif +0 -0
  311. data/public/ext-3.0.0/resources/images/default/tabs/tab-strip-bg.gif +0 -0
  312. data/public/ext-3.0.0/resources/images/default/tabs/tab-strip-bg.png +0 -0
  313. data/public/ext-3.0.0/resources/images/default/tabs/tab-strip-btm-bg.gif +0 -0
  314. data/public/ext-3.0.0/resources/images/default/tabs/tabs-sprite.gif +0 -0
  315. data/public/ext-3.0.0/resources/images/default/toolbar/bg.gif +0 -0
  316. data/public/ext-3.0.0/resources/images/default/toolbar/btn-arrow-light.gif +0 -0
  317. data/public/ext-3.0.0/resources/images/default/toolbar/btn-arrow.gif +0 -0
  318. data/public/ext-3.0.0/resources/images/default/toolbar/btn-over-bg.gif +0 -0
  319. data/public/ext-3.0.0/resources/images/default/toolbar/gray-bg.gif +0 -0
  320. data/public/ext-3.0.0/resources/images/default/toolbar/more.gif +0 -0
  321. data/public/ext-3.0.0/resources/images/default/toolbar/tb-bg.gif +0 -0
  322. data/public/ext-3.0.0/resources/images/default/toolbar/tb-btn-sprite.gif +0 -0
  323. data/public/ext-3.0.0/resources/images/default/toolbar/tb-xl-btn-sprite.gif +0 -0
  324. data/public/ext-3.0.0/resources/images/default/toolbar/tb-xl-sep.gif +0 -0
  325. data/public/ext-3.0.0/resources/images/default/tree/arrows.gif +0 -0
  326. data/public/ext-3.0.0/resources/images/default/tree/drop-add.gif +0 -0
  327. data/public/ext-3.0.0/resources/images/default/tree/drop-between.gif +0 -0
  328. data/public/ext-3.0.0/resources/images/default/tree/drop-no.gif +0 -0
  329. data/public/ext-3.0.0/resources/images/default/tree/drop-over.gif +0 -0
  330. data/public/ext-3.0.0/resources/images/default/tree/drop-under.gif +0 -0
  331. data/public/ext-3.0.0/resources/images/default/tree/drop-yes.gif +0 -0
  332. data/public/ext-3.0.0/resources/images/default/tree/elbow-end-minus-nl.gif +0 -0
  333. data/public/ext-3.0.0/resources/images/default/tree/elbow-end-minus.gif +0 -0
  334. data/public/ext-3.0.0/resources/images/default/tree/elbow-end-plus-nl.gif +0 -0
  335. data/public/ext-3.0.0/resources/images/default/tree/elbow-end-plus.gif +0 -0
  336. data/public/ext-3.0.0/resources/images/default/tree/elbow-end.gif +0 -0
  337. data/public/ext-3.0.0/resources/images/default/tree/elbow-line.gif +0 -0
  338. data/public/ext-3.0.0/resources/images/default/tree/elbow-minus-nl.gif +0 -0
  339. data/public/ext-3.0.0/resources/images/default/tree/elbow-minus.gif +0 -0
  340. data/public/ext-3.0.0/resources/images/default/tree/elbow-plus-nl.gif +0 -0
  341. data/public/ext-3.0.0/resources/images/default/tree/elbow-plus.gif +0 -0
  342. data/public/ext-3.0.0/resources/images/default/tree/elbow.gif +0 -0
  343. data/public/ext-3.0.0/resources/images/default/tree/folder-open.gif +0 -0
  344. data/public/ext-3.0.0/resources/images/default/tree/folder.gif +0 -0
  345. data/public/ext-3.0.0/resources/images/default/tree/leaf.gif +0 -0
  346. data/public/ext-3.0.0/resources/images/default/tree/loading.gif +0 -0
  347. data/public/ext-3.0.0/resources/images/default/tree/s.gif +0 -0
  348. data/public/ext-3.0.0/resources/images/default/window/icon-error.gif +0 -0
  349. data/public/ext-3.0.0/resources/images/default/window/icon-info.gif +0 -0
  350. data/public/ext-3.0.0/resources/images/default/window/icon-question.gif +0 -0
  351. data/public/ext-3.0.0/resources/images/default/window/icon-warning.gif +0 -0
  352. data/public/ext-3.0.0/resources/images/default/window/left-corners.png +0 -0
  353. data/public/ext-3.0.0/resources/images/default/window/left-corners.psd +0 -0
  354. data/public/ext-3.0.0/resources/images/default/window/left-right.png +0 -0
  355. data/public/ext-3.0.0/resources/images/default/window/left-right.psd +0 -0
  356. data/public/ext-3.0.0/resources/images/default/window/right-corners.png +0 -0
  357. data/public/ext-3.0.0/resources/images/default/window/right-corners.psd +0 -0
  358. data/public/ext-3.0.0/resources/images/default/window/top-bottom.png +0 -0
  359. data/public/ext-3.0.0/resources/images/default/window/top-bottom.psd +0 -0
  360. data/public/ext-3.0.0/resources/images/icon/chart.gif +0 -0
  361. data/public/ext-3.0.0/src/adapter/core/ext-base-ajax.js +371 -0
  362. data/public/ext-3.0.0/src/adapter/core/ext-base-anim-extra.js +301 -0
  363. data/public/ext-3.0.0/src/adapter/core/ext-base-anim.js +477 -0
  364. data/public/ext-3.0.0/src/adapter/core/ext-base-begin.js +18 -0
  365. data/public/ext-3.0.0/src/adapter/core/ext-base-dom.js +157 -0
  366. data/public/ext-3.0.0/src/adapter/core/ext-base-end.js +21 -0
  367. data/public/ext-3.0.0/src/adapter/core/ext-base-event.js +453 -0
  368. data/public/ext-3.0.0/src/adapter/core/ext-base-point.js +17 -0
  369. data/public/ext-3.0.0/src/adapter/core/ext-base-region.js +81 -0
  370. data/public/ext-3.0.0/src/adapter/ext-base-dom-more.js +9 -0
  371. data/public/ext-3.0.0/src/adapter/jquery-bridge.js +546 -0
  372. data/public/ext-3.0.0/src/adapter/prototype-bridge.js +600 -0
  373. data/public/ext-3.0.0/src/adapter/yui-bridge.js +390 -0
  374. data/public/ext-3.0.0/src/core/CompositeElement.js +136 -0
  375. data/public/ext-3.0.0/src/core/CompositeElementLite-more.js +102 -0
  376. data/public/ext-3.0.0/src/core/DomHelper-more.js +179 -0
  377. data/public/ext-3.0.0/src/core/Element-more.js +192 -0
  378. data/public/ext-3.0.0/src/core/Element.alignment.js +370 -0
  379. data/public/ext-3.0.0/src/core/Element.dd.js +46 -0
  380. data/public/ext-3.0.0/src/core/Element.fx-more.js +152 -0
  381. data/public/ext-3.0.0/src/core/Element.insertion-more.js +52 -0
  382. data/public/ext-3.0.0/src/core/Element.keys.js +48 -0
  383. data/public/ext-3.0.0/src/core/Element.legacy.js +42 -0
  384. data/public/ext-3.0.0/src/core/Element.position-more.js +165 -0
  385. data/public/ext-3.0.0/src/core/Element.scroll-more.js +110 -0
  386. data/public/ext-3.0.0/src/core/Element.style-more.js +318 -0
  387. data/public/ext-3.0.0/src/core/Error.js +81 -0
  388. data/public/ext-3.0.0/src/core/EventManager-more.js +334 -0
  389. data/public/ext-3.0.0/src/core/Ext-more.js +669 -0
  390. data/public/ext-3.0.0/src/core/Template-more.js +115 -0
  391. data/public/ext-3.0.0/src/core/core/CompositeElementLite.js +197 -0
  392. data/public/ext-3.0.0/src/core/core/DomHelper.js +378 -0
  393. data/public/ext-3.0.0/src/core/core/DomQuery.js +826 -0
  394. data/public/ext-3.0.0/src/core/core/Element.fx.js +324 -0
  395. data/public/ext-3.0.0/src/core/core/Element.insertion.js +147 -0
  396. data/public/ext-3.0.0/src/core/core/Element.js +945 -0
  397. data/public/ext-3.0.0/src/core/core/Element.position.js +303 -0
  398. data/public/ext-3.0.0/src/core/core/Element.scroll.js +58 -0
  399. data/public/ext-3.0.0/src/core/core/Element.style.js +439 -0
  400. data/public/ext-3.0.0/src/core/core/Element.traversal.js +176 -0
  401. data/public/ext-3.0.0/src/core/core/EventManager.js +623 -0
  402. data/public/ext-3.0.0/src/core/core/Ext.js +922 -0
  403. data/public/ext-3.0.0/src/core/core/Fx.js +1115 -0
  404. data/public/ext-3.0.0/src/core/core/Template.js +185 -0
  405. data/public/ext-3.0.0/src/data/Api.js +210 -0
  406. data/public/ext-3.0.0/src/data/ArrayReader.js +102 -0
  407. data/public/ext-3.0.0/src/data/ArrayStore.js +70 -0
  408. data/public/ext-3.0.0/src/data/DataField.js +249 -0
  409. data/public/ext-3.0.0/src/data/DataProxy.js +427 -0
  410. data/public/ext-3.0.0/src/data/DataReader.js +160 -0
  411. data/public/ext-3.0.0/src/data/DataWriter.js +201 -0
  412. data/public/ext-3.0.0/src/data/DirectProxy.js +141 -0
  413. data/public/ext-3.0.0/src/data/DirectStore.js +52 -0
  414. data/public/ext-3.0.0/src/data/GroupingStore.js +139 -0
  415. data/public/ext-3.0.0/src/data/HttpProxy.js +276 -0
  416. data/public/ext-3.0.0/src/data/JsonReader.js +311 -0
  417. data/public/ext-3.0.0/src/data/JsonStore.js +49 -0
  418. data/public/ext-3.0.0/src/data/JsonWriter.js +77 -0
  419. data/public/ext-3.0.0/src/data/MemoryProxy.js +69 -0
  420. data/public/ext-3.0.0/src/data/Record.js +400 -0
  421. data/public/ext-3.0.0/src/data/ScriptTagProxy.js +279 -0
  422. data/public/ext-3.0.0/src/data/SortTypes.js +91 -0
  423. data/public/ext-3.0.0/src/data/Store.js +1492 -0
  424. data/public/ext-3.0.0/src/data/StoreMgr.js +72 -0
  425. data/public/ext-3.0.0/src/data/Tree.js +785 -0
  426. data/public/ext-3.0.0/src/data/XmlReader.js +128 -0
  427. data/public/ext-3.0.0/src/data/XmlStore.js +75 -0
  428. data/public/ext-3.0.0/src/data/XmlWriter.js +45 -0
  429. data/public/ext-3.0.0/src/data/core/Connection.js +575 -0
  430. data/public/ext-3.0.0/src/dd/DDCore.js +2992 -0
  431. data/public/ext-3.0.0/src/dd/DragSource.js +365 -0
  432. data/public/ext-3.0.0/src/dd/DragTracker.js +217 -0
  433. data/public/ext-3.0.0/src/dd/DragZone.js +133 -0
  434. data/public/ext-3.0.0/src/dd/DropTarget.js +115 -0
  435. data/public/ext-3.0.0/src/dd/DropZone.js +262 -0
  436. data/public/ext-3.0.0/src/dd/Registry.js +127 -0
  437. data/public/ext-3.0.0/src/dd/ScrollManager.js +201 -0
  438. data/public/ext-3.0.0/src/dd/StatusProxy.js +171 -0
  439. data/public/ext-3.0.0/src/debug.js +906 -0
  440. data/public/ext-3.0.0/src/direct/Direct.js +235 -0
  441. data/public/ext-3.0.0/src/direct/Event.js +34 -0
  442. data/public/ext-3.0.0/src/direct/JsonProvider.js +45 -0
  443. data/public/ext-3.0.0/src/direct/PollingProvider.js +151 -0
  444. data/public/ext-3.0.0/src/direct/Provider.js +110 -0
  445. data/public/ext-3.0.0/src/direct/RemotingProvider.js +373 -0
  446. data/public/ext-3.0.0/src/direct/Transaction.js +32 -0
  447. data/public/ext-3.0.0/src/locale/ext-lang-af.js +184 -0
  448. data/public/ext-3.0.0/src/locale/ext-lang-bg.js +278 -0
  449. data/public/ext-3.0.0/src/locale/ext-lang-ca.js +315 -0
  450. data/public/ext-3.0.0/src/locale/ext-lang-cs.js +293 -0
  451. data/public/ext-3.0.0/src/locale/ext-lang-da.js +296 -0
  452. data/public/ext-3.0.0/src/locale/ext-lang-de.js +326 -0
  453. data/public/ext-3.0.0/src/locale/ext-lang-el_GR.js +309 -0
  454. data/public/ext-3.0.0/src/locale/ext-lang-en.js +335 -0
  455. data/public/ext-3.0.0/src/locale/ext-lang-en_GB.js +315 -0
  456. data/public/ext-3.0.0/src/locale/ext-lang-es.js +318 -0
  457. data/public/ext-3.0.0/src/locale/ext-lang-fa.js +272 -0
  458. data/public/ext-3.0.0/src/locale/ext-lang-fi.js +302 -0
  459. data/public/ext-3.0.0/src/locale/ext-lang-fr.js +335 -0
  460. data/public/ext-3.0.0/src/locale/ext-lang-fr_CA.js +218 -0
  461. data/public/ext-3.0.0/src/locale/ext-lang-gr.js +175 -0
  462. data/public/ext-3.0.0/src/locale/ext-lang-he.js +292 -0
  463. data/public/ext-3.0.0/src/locale/ext-lang-hr.js +295 -0
  464. data/public/ext-3.0.0/src/locale/ext-lang-hu.js +296 -0
  465. data/public/ext-3.0.0/src/locale/ext-lang-id.js +302 -0
  466. data/public/ext-3.0.0/src/locale/ext-lang-it.js +295 -0
  467. data/public/ext-3.0.0/src/locale/ext-lang-ja.js +318 -0
  468. data/public/ext-3.0.0/src/locale/ext-lang-ko.js +267 -0
  469. data/public/ext-3.0.0/src/locale/ext-lang-lt.js +333 -0
  470. data/public/ext-3.0.0/src/locale/ext-lang-lv.js +176 -0
  471. data/public/ext-3.0.0/src/locale/ext-lang-mk.js +176 -0
  472. data/public/ext-3.0.0/src/locale/ext-lang-nl.js +323 -0
  473. data/public/ext-3.0.0/src/locale/ext-lang-no_NB.js +294 -0
  474. data/public/ext-3.0.0/src/locale/ext-lang-no_NN.js +294 -0
  475. data/public/ext-3.0.0/src/locale/ext-lang-pl.js +304 -0
  476. data/public/ext-3.0.0/src/locale/ext-lang-pt.js +260 -0
  477. data/public/ext-3.0.0/src/locale/ext-lang-pt_BR.js +302 -0
  478. data/public/ext-3.0.0/src/locale/ext-lang-pt_PT.js +298 -0
  479. data/public/ext-3.0.0/src/locale/ext-lang-ro.js +295 -0
  480. data/public/ext-3.0.0/src/locale/ext-lang-ru.js +319 -0
  481. data/public/ext-3.0.0/src/locale/ext-lang-sk.js +182 -0
  482. data/public/ext-3.0.0/src/locale/ext-lang-sl.js +176 -0
  483. data/public/ext-3.0.0/src/locale/ext-lang-sr.js +179 -0
  484. data/public/ext-3.0.0/src/locale/ext-lang-sr_RS.js +178 -0
  485. data/public/ext-3.0.0/src/locale/ext-lang-sv_SE.js +178 -0
  486. data/public/ext-3.0.0/src/locale/ext-lang-th.js +294 -0
  487. data/public/ext-3.0.0/src/locale/ext-lang-tr.js +306 -0
  488. data/public/ext-3.0.0/src/locale/ext-lang-ukr.js +258 -0
  489. data/public/ext-3.0.0/src/locale/ext-lang-vn.js +181 -0
  490. data/public/ext-3.0.0/src/locale/ext-lang-zh_CN.js +174 -0
  491. data/public/ext-3.0.0/src/locale/ext-lang-zh_TW.js +178 -0
  492. data/public/ext-3.0.0/src/state/CookieProvider.js +91 -0
  493. data/public/ext-3.0.0/src/state/Provider.js +127 -0
  494. data/public/ext-3.0.0/src/state/StateManager.js +69 -0
  495. data/public/ext-3.0.0/src/util/CSS.js +161 -0
  496. data/public/ext-3.0.0/src/util/ClickRepeater.js +200 -0
  497. data/public/ext-3.0.0/src/util/Cookies.js +96 -0
  498. data/public/ext-3.0.0/src/util/Date.js +1317 -0
  499. data/public/ext-3.0.0/src/util/Format.js +356 -0
  500. data/public/ext-3.0.0/src/util/History.js +203 -0
  501. data/public/ext-3.0.0/src/util/KeyMap.js +242 -0
  502. data/public/ext-3.0.0/src/util/KeyNav.js +161 -0
  503. data/public/ext-3.0.0/src/util/MixedCollection.js +576 -0
  504. data/public/ext-3.0.0/src/util/Observable-more.js +178 -0
  505. data/public/ext-3.0.0/src/util/TextMetrics.js +131 -0
  506. data/public/ext-3.0.0/src/util/UpdateManager.js +536 -0
  507. data/public/ext-3.0.0/src/util/XTemplate.js +379 -0
  508. data/public/ext-3.0.0/src/util/core/DelayedTask.js +68 -0
  509. data/public/ext-3.0.0/src/util/core/JSON.js +174 -0
  510. data/public/ext-3.0.0/src/util/core/Observable.js +483 -0
  511. data/public/ext-3.0.0/src/util/core/TaskMgr.js +174 -0
  512. data/public/ext-3.0.0/src/widgets/Action.js +252 -0
  513. data/public/ext-3.0.0/src/widgets/BoxComponent.js +519 -0
  514. data/public/ext-3.0.0/src/widgets/Button.js +762 -0
  515. data/public/ext-3.0.0/src/widgets/ButtonGroup.js +103 -0
  516. data/public/ext-3.0.0/src/widgets/ColorPalette.js +148 -0
  517. data/public/ext-3.0.0/src/widgets/Component.js +1540 -0
  518. data/public/ext-3.0.0/src/widgets/ComponentMgr.js +159 -0
  519. data/public/ext-3.0.0/src/widgets/Container.js +894 -0
  520. data/public/ext-3.0.0/src/widgets/CycleButton.js +188 -0
  521. data/public/ext-3.0.0/src/widgets/DataView.js +749 -0
  522. data/public/ext-3.0.0/src/widgets/DatePicker.js +771 -0
  523. data/public/ext-3.0.0/src/widgets/Editor.js +385 -0
  524. data/public/ext-3.0.0/src/widgets/Layer.js +466 -0
  525. data/public/ext-3.0.0/src/widgets/LoadMask.js +123 -0
  526. data/public/ext-3.0.0/src/widgets/MessageBox.js +626 -0
  527. data/public/ext-3.0.0/src/widgets/PagingToolbar.js +502 -0
  528. data/public/ext-3.0.0/src/widgets/Panel.js +1772 -0
  529. data/public/ext-3.0.0/src/widgets/PanelDD.js +154 -0
  530. data/public/ext-3.0.0/src/widgets/ProgressBar.js +289 -0
  531. data/public/ext-3.0.0/src/widgets/Resizable.js +760 -0
  532. data/public/ext-3.0.0/src/widgets/Shadow.js +192 -0
  533. data/public/ext-3.0.0/src/widgets/Slider.js +426 -0
  534. data/public/ext-3.0.0/src/widgets/SplitBar.js +436 -0
  535. data/public/ext-3.0.0/src/widgets/SplitButton.js +124 -0
  536. data/public/ext-3.0.0/src/widgets/TabPanel.js +1100 -0
  537. data/public/ext-3.0.0/src/widgets/Toolbar.js +781 -0
  538. data/public/ext-3.0.0/src/widgets/Viewport.js +124 -0
  539. data/public/ext-3.0.0/src/widgets/Window.js +941 -0
  540. data/public/ext-3.0.0/src/widgets/WindowManager.js +187 -0
  541. data/public/ext-3.0.0/src/widgets/chart/Chart.js +721 -0
  542. data/public/ext-3.0.0/src/widgets/chart/EventProxy.js +20 -0
  543. data/public/ext-3.0.0/src/widgets/chart/FlashComponent.js +117 -0
  544. data/public/ext-3.0.0/src/widgets/chart/swfobject.js +783 -0
  545. data/public/ext-3.0.0/src/widgets/form/Action.js +626 -0
  546. data/public/ext-3.0.0/src/widgets/form/BasicForm.js +735 -0
  547. data/public/ext-3.0.0/src/widgets/form/Checkbox.js +177 -0
  548. data/public/ext-3.0.0/src/widgets/form/CheckboxGroup.js +419 -0
  549. data/public/ext-3.0.0/src/widgets/form/Combo.js +1232 -0
  550. data/public/ext-3.0.0/src/widgets/form/DateField.js +389 -0
  551. data/public/ext-3.0.0/src/widgets/form/DisplayField.js +98 -0
  552. data/public/ext-3.0.0/src/widgets/form/Field.js +640 -0
  553. data/public/ext-3.0.0/src/widgets/form/FieldSet.js +305 -0
  554. data/public/ext-3.0.0/src/widgets/form/Form.js +335 -0
  555. data/public/ext-3.0.0/src/widgets/form/Hidden.js +39 -0
  556. data/public/ext-3.0.0/src/widgets/form/HtmlEditor.js +1179 -0
  557. data/public/ext-3.0.0/src/widgets/form/Label.js +64 -0
  558. data/public/ext-3.0.0/src/widgets/form/NumberField.js +139 -0
  559. data/public/ext-3.0.0/src/widgets/form/Radio.js +81 -0
  560. data/public/ext-3.0.0/src/widgets/form/RadioGroup.js +116 -0
  561. data/public/ext-3.0.0/src/widgets/form/TextArea.js +117 -0
  562. data/public/ext-3.0.0/src/widgets/form/TextField.js +491 -0
  563. data/public/ext-3.0.0/src/widgets/form/TimeField.js +146 -0
  564. data/public/ext-3.0.0/src/widgets/form/TriggerField.js +328 -0
  565. data/public/ext-3.0.0/src/widgets/form/VTypes.js +135 -0
  566. data/public/ext-3.0.0/src/widgets/grid/AbstractSelectionModel.js +57 -0
  567. data/public/ext-3.0.0/src/widgets/grid/CellSelectionModel.js +262 -0
  568. data/public/ext-3.0.0/src/widgets/grid/CheckboxSelectionModel.js +103 -0
  569. data/public/ext-3.0.0/src/widgets/grid/Column.js +406 -0
  570. data/public/ext-3.0.0/src/widgets/grid/ColumnDD.js +199 -0
  571. data/public/ext-3.0.0/src/widgets/grid/ColumnModel.js +592 -0
  572. data/public/ext-3.0.0/src/widgets/grid/ColumnSplitDD.js +62 -0
  573. data/public/ext-3.0.0/src/widgets/grid/EditorGrid.js +291 -0
  574. data/public/ext-3.0.0/src/widgets/grid/GridDD.js +95 -0
  575. data/public/ext-3.0.0/src/widgets/grid/GridEditor.js +21 -0
  576. data/public/ext-3.0.0/src/widgets/grid/GridPanel.js +952 -0
  577. data/public/ext-3.0.0/src/widgets/grid/GridView.js +1776 -0
  578. data/public/ext-3.0.0/src/widgets/grid/GroupingView.js +517 -0
  579. data/public/ext-3.0.0/src/widgets/grid/PropertyGrid.js +370 -0
  580. data/public/ext-3.0.0/src/widgets/grid/RowNumberer.js +61 -0
  581. data/public/ext-3.0.0/src/widgets/grid/RowSelectionModel.js +530 -0
  582. data/public/ext-3.0.0/src/widgets/layout/AbsoluteLayout.js +82 -0
  583. data/public/ext-3.0.0/src/widgets/layout/AccordionLayout.js +177 -0
  584. data/public/ext-3.0.0/src/widgets/layout/AnchorLayout.js +200 -0
  585. data/public/ext-3.0.0/src/widgets/layout/BorderLayout.js +1108 -0
  586. data/public/ext-3.0.0/src/widgets/layout/BoxLayout.js +417 -0
  587. data/public/ext-3.0.0/src/widgets/layout/CardLayout.js +127 -0
  588. data/public/ext-3.0.0/src/widgets/layout/ColumnLayout.js +130 -0
  589. data/public/ext-3.0.0/src/widgets/layout/ContainerLayout.js +215 -0
  590. data/public/ext-3.0.0/src/widgets/layout/FitLayout.js +48 -0
  591. data/public/ext-3.0.0/src/widgets/layout/FormLayout.js +266 -0
  592. data/public/ext-3.0.0/src/widgets/layout/TableLayout.js +194 -0
  593. data/public/ext-3.0.0/src/widgets/list/ColumnResizer.js +123 -0
  594. data/public/ext-3.0.0/src/widgets/list/ListView.js +357 -0
  595. data/public/ext-3.0.0/src/widgets/list/Sorter.js +70 -0
  596. data/public/ext-3.0.0/src/widgets/menu/BaseItem.js +160 -0
  597. data/public/ext-3.0.0/src/widgets/menu/CheckItem.js +114 -0
  598. data/public/ext-3.0.0/src/widgets/menu/ColorMenu.js +72 -0
  599. data/public/ext-3.0.0/src/widgets/menu/DateMenu.js +90 -0
  600. data/public/ext-3.0.0/src/widgets/menu/Item.js +211 -0
  601. data/public/ext-3.0.0/src/widgets/menu/Menu.js +733 -0
  602. data/public/ext-3.0.0/src/widgets/menu/MenuMgr.js +211 -0
  603. data/public/ext-3.0.0/src/widgets/menu/Separator.js +46 -0
  604. data/public/ext-3.0.0/src/widgets/menu/TextItem.js +46 -0
  605. data/public/ext-3.0.0/src/widgets/tips/QuickTip.js +207 -0
  606. data/public/ext-3.0.0/src/widgets/tips/QuickTips.js +159 -0
  607. data/public/ext-3.0.0/src/widgets/tips/Tip.js +157 -0
  608. data/public/ext-3.0.0/src/widgets/tips/ToolTip.js +492 -0
  609. data/public/ext-3.0.0/src/widgets/tree/AsyncTreeNode.js +114 -0
  610. data/public/ext-3.0.0/src/widgets/tree/TreeDragZone.js +82 -0
  611. data/public/ext-3.0.0/src/widgets/tree/TreeDropZone.js +321 -0
  612. data/public/ext-3.0.0/src/widgets/tree/TreeEditor.js +160 -0
  613. data/public/ext-3.0.0/src/widgets/tree/TreeEventModel.js +169 -0
  614. data/public/ext-3.0.0/src/widgets/tree/TreeFilter.js +114 -0
  615. data/public/ext-3.0.0/src/widgets/tree/TreeLoader.js +342 -0
  616. data/public/ext-3.0.0/src/widgets/tree/TreeNode.js +546 -0
  617. data/public/ext-3.0.0/src/widgets/tree/TreeNodeUI.js +633 -0
  618. data/public/ext-3.0.0/src/widgets/tree/TreePanel.js +918 -0
  619. data/public/ext-3.0.0/src/widgets/tree/TreeSelectionModel.js +315 -0
  620. data/public/ext-3.0.0/src/widgets/tree/TreeSorter.js +106 -0
  621. data/public/js/ext-portal.js +235 -0
  622. data/public/js/global.js +7 -0
  623. data/public/js/outerframe.js +47 -0
  624. data/public/js/portal.js +713 -0
  625. data/public/js/test_chart.js +152 -0
  626. data/test/config.rb +62 -0
  627. data/test/config/hosts.yaml +5 -0
  628. data/test/config/log.yaml +1 -0
  629. data/test/config/memcache.yaml +5 -0
  630. data/test/exception.rb +39 -0
  631. data/test/method_missing.rb +14 -0
  632. data/test/module.rb +39 -0
  633. data/test/remote_lmp.rb +126 -0
  634. data/test/sinatra.rb +29 -0
  635. data/test/sinatra_base.rb +16 -0
  636. metadata +690 -0
@@ -0,0 +1,1108 @@
1
+ /*!
2
+ * Ext JS Library 3.0.0
3
+ * Copyright(c) 2006-2009 Ext JS, LLC
4
+ * licensing@extjs.com
5
+ * http://www.extjs.com/license
6
+ */
7
+ /**
8
+ * @class Ext.layout.BorderLayout
9
+ * @extends Ext.layout.ContainerLayout
10
+ * <p>This is a multi-pane, application-oriented UI layout style that supports multiple
11
+ * nested panels, automatic {@link Ext.layout.BorderLayout.Region#split split} bars between
12
+ * {@link Ext.layout.BorderLayout.Region#BorderLayout.Region regions} and built-in
13
+ * {@link Ext.layout.BorderLayout.Region#collapsible expanding and collapsing} of regions.</p>
14
+ * <p>This class is intended to be extended or created via the <tt>layout:'border'</tt>
15
+ * {@link Ext.Container#layout} config, and should generally not need to be created directly
16
+ * via the new keyword.</p>
17
+ * <p>BorderLayout does not have any direct config options (other than inherited ones).
18
+ * All configuration options available for customizing the BorderLayout are at the
19
+ * {@link Ext.layout.BorderLayout.Region} and {@link Ext.layout.BorderLayout.SplitRegion}
20
+ * levels.</p>
21
+ * <p>Example usage:</p>
22
+ * <pre><code>
23
+ var myBorderPanel = new Ext.Panel({
24
+ {@link Ext.Component#renderTo renderTo}: document.body,
25
+ {@link Ext.BoxComponent#width width}: 700,
26
+ {@link Ext.BoxComponent#height height}: 500,
27
+ {@link Ext.Panel#title title}: 'Border Layout',
28
+ {@link Ext.Container#layout layout}: 'border',
29
+ {@link Ext.Container#items items}: [{
30
+ {@link Ext.Panel#title title}: 'South Region is resizable',
31
+ {@link Ext.layout.BorderLayout.Region#BorderLayout.Region region}: 'south', // position for region
32
+ {@link Ext.BoxComponent#height height}: 100,
33
+ {@link Ext.layout.BorderLayout.Region#split split}: true, // enable resizing
34
+ {@link Ext.SplitBar#minSize minSize}: 75, // defaults to {@link Ext.layout.BorderLayout.Region#minHeight 50}
35
+ {@link Ext.SplitBar#maxSize maxSize}: 150,
36
+ {@link Ext.layout.BorderLayout.Region#margins margins}: '0 5 5 5'
37
+ },{
38
+ // xtype: 'panel' implied by default
39
+ {@link Ext.Panel#title title}: 'West Region is collapsible',
40
+ {@link Ext.layout.BorderLayout.Region#BorderLayout.Region region}:'west',
41
+ {@link Ext.layout.BorderLayout.Region#margins margins}: '5 0 0 5',
42
+ {@link Ext.BoxComponent#width width}: 200,
43
+ {@link Ext.layout.BorderLayout.Region#collapsible collapsible}: true, // make collapsible
44
+ {@link Ext.layout.BorderLayout.Region#cmargins cmargins}: '5 5 0 5', // adjust top margin when collapsed
45
+ {@link Ext.Component#id id}: 'west-region-container',
46
+ {@link Ext.Container#layout layout}: 'fit',
47
+ {@link Ext.Panel#unstyled unstyled}: true
48
+ },{
49
+ {@link Ext.Panel#title title}: 'Center Region',
50
+ {@link Ext.layout.BorderLayout.Region#BorderLayout.Region region}: 'center', // center region is required, no width/height specified
51
+ {@link Ext.Component#xtype xtype}: 'container',
52
+ {@link Ext.Container#layout layout}: 'fit',
53
+ {@link Ext.layout.BorderLayout.Region#margins margins}: '5 5 0 0'
54
+ }]
55
+ });
56
+ </code></pre>
57
+ * <p><b><u>Notes</u></b>:</p><div class="mdetail-params"><ul>
58
+ * <li>Any container using the BorderLayout <b>must</b> have a child item with <tt>region:'center'</tt>.
59
+ * The child item in the center region will always be resized to fill the remaining space not used by
60
+ * the other regions in the layout.</li>
61
+ * <li>Any child items with a region of <tt>west</tt> or <tt>east</tt> must have <tt>width</tt> defined
62
+ * (an integer representing the number of pixels that the region should take up).</li>
63
+ * <li>Any child items with a region of <tt>north</tt> or <tt>south</tt> must have <tt>height</tt> defined.</li>
64
+ * <li>The regions of a BorderLayout are <b>fixed at render time</b> and thereafter, its child Components may not be removed or added</b>. To add/remove
65
+ * Components within a BorderLayout, have them wrapped by an additional Container which is directly
66
+ * managed by the BorderLayout. If the region is to be collapsible, the Container used directly
67
+ * by the BorderLayout manager should be a Panel. In the following example a Container (an Ext.Panel)
68
+ * is added to the west region:
69
+ * <div style="margin-left:16px"><pre><code>
70
+ wrc = {@link Ext#getCmp Ext.getCmp}('west-region-container');
71
+ wrc.{@link Ext.Panel#removeAll removeAll}();
72
+ wrc.{@link Ext.Container#add add}({
73
+ title: 'Added Panel',
74
+ html: 'Some content'
75
+ });
76
+ wrc.{@link Ext.Container#doLayout doLayout}();
77
+ * </code></pre></div>
78
+ * </li>
79
+ * <li> To reference a {@link Ext.layout.BorderLayout.Region Region}:
80
+ * <div style="margin-left:16px"><pre><code>
81
+ wr = myBorderPanel.layout.west;
82
+ * </code></pre></div>
83
+ * </li>
84
+ * </ul></div>
85
+ */
86
+ Ext.layout.BorderLayout = Ext.extend(Ext.layout.ContainerLayout, {
87
+ // private
88
+ monitorResize:true,
89
+ // private
90
+ rendered : false,
91
+
92
+ // private
93
+ onLayout : function(ct, target){
94
+ var collapsed;
95
+ if(!this.rendered){
96
+ target.addClass('x-border-layout-ct');
97
+ var items = ct.items.items;
98
+ collapsed = [];
99
+ for(var i = 0, len = items.length; i < len; i++) {
100
+ var c = items[i];
101
+ var pos = c.region;
102
+ if(c.collapsed){
103
+ collapsed.push(c);
104
+ }
105
+ c.collapsed = false;
106
+ if(!c.rendered){
107
+ c.cls = c.cls ? c.cls +' x-border-panel' : 'x-border-panel';
108
+ c.render(target, i);
109
+ }
110
+ this[pos] = pos != 'center' && c.split ?
111
+ new Ext.layout.BorderLayout.SplitRegion(this, c.initialConfig, pos) :
112
+ new Ext.layout.BorderLayout.Region(this, c.initialConfig, pos);
113
+ this[pos].render(target, c);
114
+ }
115
+ this.rendered = true;
116
+ }
117
+
118
+ var size = target.getViewSize();
119
+ if(size.width < 20 || size.height < 20){ // display none?
120
+ if(collapsed){
121
+ this.restoreCollapsed = collapsed;
122
+ }
123
+ return;
124
+ }else if(this.restoreCollapsed){
125
+ collapsed = this.restoreCollapsed;
126
+ delete this.restoreCollapsed;
127
+ }
128
+
129
+ var w = size.width, h = size.height;
130
+ var centerW = w, centerH = h, centerY = 0, centerX = 0;
131
+
132
+ var n = this.north, s = this.south, west = this.west, e = this.east, c = this.center;
133
+ if(!c && Ext.layout.BorderLayout.WARN !== false){
134
+ throw 'No center region defined in BorderLayout ' + ct.id;
135
+ }
136
+
137
+ if(n && n.isVisible()){
138
+ var b = n.getSize();
139
+ var m = n.getMargins();
140
+ b.width = w - (m.left+m.right);
141
+ b.x = m.left;
142
+ b.y = m.top;
143
+ centerY = b.height + b.y + m.bottom;
144
+ centerH -= centerY;
145
+ n.applyLayout(b);
146
+ }
147
+ if(s && s.isVisible()){
148
+ var b = s.getSize();
149
+ var m = s.getMargins();
150
+ b.width = w - (m.left+m.right);
151
+ b.x = m.left;
152
+ var totalHeight = (b.height + m.top + m.bottom);
153
+ b.y = h - totalHeight + m.top;
154
+ centerH -= totalHeight;
155
+ s.applyLayout(b);
156
+ }
157
+ if(west && west.isVisible()){
158
+ var b = west.getSize();
159
+ var m = west.getMargins();
160
+ b.height = centerH - (m.top+m.bottom);
161
+ b.x = m.left;
162
+ b.y = centerY + m.top;
163
+ var totalWidth = (b.width + m.left + m.right);
164
+ centerX += totalWidth;
165
+ centerW -= totalWidth;
166
+ west.applyLayout(b);
167
+ }
168
+ if(e && e.isVisible()){
169
+ var b = e.getSize();
170
+ var m = e.getMargins();
171
+ b.height = centerH - (m.top+m.bottom);
172
+ var totalWidth = (b.width + m.left + m.right);
173
+ b.x = w - totalWidth + m.left;
174
+ b.y = centerY + m.top;
175
+ centerW -= totalWidth;
176
+ e.applyLayout(b);
177
+ }
178
+ if(c){
179
+ var m = c.getMargins();
180
+ var centerBox = {
181
+ x: centerX + m.left,
182
+ y: centerY + m.top,
183
+ width: centerW - (m.left+m.right),
184
+ height: centerH - (m.top+m.bottom)
185
+ };
186
+ c.applyLayout(centerBox);
187
+ }
188
+ if(collapsed){
189
+ for(var i = 0, len = collapsed.length; i < len; i++){
190
+ collapsed[i].collapse(false);
191
+ }
192
+ }
193
+ if(Ext.isIE && Ext.isStrict){ // workaround IE strict repainting issue
194
+ target.repaint();
195
+ }
196
+ },
197
+
198
+ destroy: function() {
199
+ var r = ['north', 'south', 'east', 'west'];
200
+ for (var i = 0; i < r.length; i++) {
201
+ var region = this[r[i]];
202
+ if(region){
203
+ if(region.destroy){
204
+ region.destroy();
205
+ }else if (region.split){
206
+ region.split.destroy(true);
207
+ }
208
+ }
209
+ }
210
+ Ext.layout.BorderLayout.superclass.destroy.call(this);
211
+ }
212
+
213
+ /**
214
+ * @property activeItem
215
+ * @hide
216
+ */
217
+ });
218
+
219
+ /**
220
+ * @class Ext.layout.BorderLayout.Region
221
+ * <p>This is a region of a {@link Ext.layout.BorderLayout BorderLayout} that acts as a subcontainer
222
+ * within the layout. Each region has its own {@link Ext.layout.ContainerLayout layout} that is
223
+ * independent of other regions and the containing BorderLayout, and can be any of the
224
+ * {@link Ext.layout.ContainerLayout valid Ext layout types}.</p>
225
+ * <p>Region size is managed automatically and cannot be changed by the user -- for
226
+ * {@link #split resizable regions}, see {@link Ext.layout.BorderLayout.SplitRegion}.</p>
227
+ * @constructor
228
+ * Create a new Region.
229
+ * @param {Layout} layout The {@link Ext.layout.BorderLayout BorderLayout} instance that is managing this Region.
230
+ * @param {Object} config The configuration options
231
+ * @param {String} position The region position. Valid values are: <tt>north</tt>, <tt>south</tt>,
232
+ * <tt>east</tt>, <tt>west</tt> and <tt>center</tt>. Every {@link Ext.layout.BorderLayout BorderLayout}
233
+ * <b>must have a center region</b> for the primary content -- all other regions are optional.
234
+ */
235
+ Ext.layout.BorderLayout.Region = function(layout, config, pos){
236
+ Ext.apply(this, config);
237
+ this.layout = layout;
238
+ this.position = pos;
239
+ this.state = {};
240
+ if(typeof this.margins == 'string'){
241
+ this.margins = this.layout.parseMargins(this.margins);
242
+ }
243
+ this.margins = Ext.applyIf(this.margins || {}, this.defaultMargins);
244
+ if(this.collapsible){
245
+ if(typeof this.cmargins == 'string'){
246
+ this.cmargins = this.layout.parseMargins(this.cmargins);
247
+ }
248
+ if(this.collapseMode == 'mini' && !this.cmargins){
249
+ this.cmargins = {left:0,top:0,right:0,bottom:0};
250
+ }else{
251
+ this.cmargins = Ext.applyIf(this.cmargins || {},
252
+ pos == 'north' || pos == 'south' ? this.defaultNSCMargins : this.defaultEWCMargins);
253
+ }
254
+ }
255
+ };
256
+
257
+ Ext.layout.BorderLayout.Region.prototype = {
258
+ /**
259
+ * @cfg {Boolean} animFloat
260
+ * When a collapsed region's bar is clicked, the region's panel will be displayed as a floated
261
+ * panel that will close again once the user mouses out of that panel (or clicks out if
262
+ * <tt>{@link #autoHide} = false</tt>). Setting <tt>{@link #animFloat} = false</tt> will
263
+ * prevent the open and close of these floated panels from being animated (defaults to <tt>true</tt>).
264
+ */
265
+ /**
266
+ * @cfg {Boolean} autoHide
267
+ * When a collapsed region's bar is clicked, the region's panel will be displayed as a floated
268
+ * panel. If <tt>autoHide = true</tt>, the panel will automatically hide after the user mouses
269
+ * out of the panel. If <tt>autoHide = false</tt>, the panel will continue to display until the
270
+ * user clicks outside of the panel (defaults to <tt>true</tt>).
271
+ */
272
+ /**
273
+ * @cfg {String} collapseMode
274
+ * <tt>collapseMode</tt> supports two configuration values:<div class="mdetail-params"><ul>
275
+ * <li><b><tt>undefined</tt></b> (default)<div class="sub-desc">By default, {@link #collapsible}
276
+ * regions are collapsed by clicking the expand/collapse tool button that renders into the region's
277
+ * title bar.</div></li>
278
+ * <li><b><tt>'mini'</tt></b><div class="sub-desc">Optionally, when <tt>collapseMode</tt> is set to
279
+ * <tt>'mini'</tt> the region's split bar will also display a small collapse button in the center of
280
+ * the bar. In <tt>'mini'</tt> mode the region will collapse to a thinner bar than in normal mode.
281
+ * </div></li>
282
+ * </ul></div></p>
283
+ * <p><b>Note</b>: if a collapsible region does not have a title bar, then set <tt>collapseMode =
284
+ * 'mini'</tt> and <tt>{@link #split} = true</tt> in order for the region to be {@link #collapsible}
285
+ * by the user as the expand/collapse tool button (that would go in the title bar) will not be rendered.</p>
286
+ * <p>See also <tt>{@link #cmargins}</tt>.</p>
287
+ */
288
+ /**
289
+ * @cfg {Object} margins
290
+ * An object containing margins to apply to the region when in the expanded state in the
291
+ * format:<pre><code>
292
+ {
293
+ top: (top margin),
294
+ right: (right margin),
295
+ bottom: (bottom margin),
296
+ left: (left margin)
297
+ }</code></pre>
298
+ * <p>May also be a string containing space-separated, numeric margin values. The order of the
299
+ * sides associated with each value matches the way CSS processes margin values:</p>
300
+ * <p><div class="mdetail-params"><ul>
301
+ * <li>If there is only one value, it applies to all sides.</li>
302
+ * <li>If there are two values, the top and bottom borders are set to the first value and the
303
+ * right and left are set to the second.</li>
304
+ * <li>If there are three values, the top is set to the first value, the left and right are set
305
+ * to the second, and the bottom is set to the third.</li>
306
+ * <li>If there are four values, they apply to the top, right, bottom, and left, respectively.</li>
307
+ * </ul></div></p>
308
+ * <p>Defaults to:</p><pre><code>
309
+ * {top:0, right:0, bottom:0, left:0}
310
+ * </code></pre>
311
+ */
312
+ /**
313
+ * @cfg {Object} cmargins
314
+ * An object containing margins to apply to the region when in the collapsed state in the
315
+ * format:<pre><code>
316
+ {
317
+ top: (top margin),
318
+ right: (right margin),
319
+ bottom: (bottom margin),
320
+ left: (left margin)
321
+ }</code></pre>
322
+ * <p>May also be a string containing space-separated, numeric margin values. The order of the
323
+ * sides associated with each value matches the way CSS processes margin values.</p>
324
+ * <p><ul>
325
+ * <li>If there is only one value, it applies to all sides.</li>
326
+ * <li>If there are two values, the top and bottom borders are set to the first value and the
327
+ * right and left are set to the second.</li>
328
+ * <li>If there are three values, the top is set to the first value, the left and right are set
329
+ * to the second, and the bottom is set to the third.</li>
330
+ * <li>If there are four values, they apply to the top, right, bottom, and left, respectively.</li>
331
+ * </ul></p>
332
+ */
333
+ /**
334
+ * @cfg {Boolean} collapsible
335
+ * <p><tt>true</tt> to allow the user to collapse this region (defaults to <tt>false</tt>). If
336
+ * <tt>true</tt>, an expand/collapse tool button will automatically be rendered into the title
337
+ * bar of the region, otherwise the button will not be shown.</p>
338
+ * <p><b>Note</b>: that a title bar is required to display the collapse/expand toggle button -- if
339
+ * no <tt>title</tt> is specified for the region's panel, the region will only be collapsible if
340
+ * <tt>{@link #collapseMode} = 'mini'</tt> and <tt>{@link #split} = true</tt>.
341
+ */
342
+ collapsible : false,
343
+ /**
344
+ * @cfg {Boolean} split
345
+ * <p><tt>true</tt> to create a {@link Ext.layout.BorderLayout.SplitRegion SplitRegion} and
346
+ * display a 5px wide {@link Ext.SplitBar} between this region and its neighbor, allowing the user to
347
+ * resize the regions dynamically. Defaults to <tt>false</tt> creating a
348
+ * {@link Ext.layout.BorderLayout.Region Region}.</p><br>
349
+ * <p><b>Notes</b>:</p><div class="mdetail-params"><ul>
350
+ * <li>this configuration option is ignored if <tt>region='center'</tt></li>
351
+ * <li>when <tt>split == true</tt>, it is common to specify a
352
+ * <tt>{@link Ext.SplitBar#minSize minSize}</tt> and <tt>{@link Ext.SplitBar#maxSize maxSize}</tt>
353
+ * for the {@link Ext.BoxComponent BoxComponent} representing the region. These are not native
354
+ * configs of {@link Ext.BoxComponent BoxComponent}, and are used only by this class.</li>
355
+ * <li>if <tt>{@link #collapseMode} = 'mini'</tt> requires <tt>split = true</tt> to reserve space
356
+ * for the collapse tool</tt></li>
357
+ * </ul></div>
358
+ */
359
+ split:false,
360
+ /**
361
+ * @cfg {Boolean} floatable
362
+ * <tt>true</tt> to allow clicking a collapsed region's bar to display the region's panel floated
363
+ * above the layout, <tt>false</tt> to force the user to fully expand a collapsed region by
364
+ * clicking the expand button to see it again (defaults to <tt>true</tt>).
365
+ */
366
+ floatable: true,
367
+ /**
368
+ * @cfg {Number} minWidth
369
+ * <p>The minimum allowable width in pixels for this region (defaults to <tt>50</tt>).
370
+ * <tt>maxWidth</tt> may also be specified.</p><br>
371
+ * <p><b>Note</b>: setting the <tt>{@link Ext.SplitBar#minSize minSize}</tt> /
372
+ * <tt>{@link Ext.SplitBar#maxSize maxSize}</tt> supersedes any specified
373
+ * <tt>minWidth</tt> / <tt>maxWidth</tt>.</p>
374
+ */
375
+ minWidth:50,
376
+ /**
377
+ * @cfg {Number} minHeight
378
+ * The minimum allowable height in pixels for this region (defaults to <tt>50</tt>)
379
+ * <tt>maxHeight</tt> may also be specified.</p><br>
380
+ * <p><b>Note</b>: setting the <tt>{@link Ext.SplitBar#minSize minSize}</tt> /
381
+ * <tt>{@link Ext.SplitBar#maxSize maxSize}</tt> supersedes any specified
382
+ * <tt>minHeight</tt> / <tt>maxHeight</tt>.</p>
383
+ */
384
+ minHeight:50,
385
+
386
+ // private
387
+ defaultMargins : {left:0,top:0,right:0,bottom:0},
388
+ // private
389
+ defaultNSCMargins : {left:5,top:5,right:5,bottom:5},
390
+ // private
391
+ defaultEWCMargins : {left:5,top:0,right:5,bottom:0},
392
+ floatingZIndex: 100,
393
+
394
+ /**
395
+ * True if this region is collapsed. Read-only.
396
+ * @type Boolean
397
+ * @property
398
+ */
399
+ isCollapsed : false,
400
+
401
+ /**
402
+ * This region's panel. Read-only.
403
+ * @type Ext.Panel
404
+ * @property panel
405
+ */
406
+ /**
407
+ * This region's layout. Read-only.
408
+ * @type Layout
409
+ * @property layout
410
+ */
411
+ /**
412
+ * This region's layout position (north, south, east, west or center). Read-only.
413
+ * @type String
414
+ * @property position
415
+ */
416
+
417
+ // private
418
+ render : function(ct, p){
419
+ this.panel = p;
420
+ p.el.enableDisplayMode();
421
+ this.targetEl = ct;
422
+ this.el = p.el;
423
+
424
+ var gs = p.getState, ps = this.position;
425
+ p.getState = function(){
426
+ return Ext.apply(gs.call(p) || {}, this.state);
427
+ }.createDelegate(this);
428
+
429
+ if(ps != 'center'){
430
+ p.allowQueuedExpand = false;
431
+ p.on({
432
+ beforecollapse: this.beforeCollapse,
433
+ collapse: this.onCollapse,
434
+ beforeexpand: this.beforeExpand,
435
+ expand: this.onExpand,
436
+ hide: this.onHide,
437
+ show: this.onShow,
438
+ scope: this
439
+ });
440
+ if(this.collapsible || this.floatable){
441
+ p.collapseEl = 'el';
442
+ p.slideAnchor = this.getSlideAnchor();
443
+ }
444
+ if(p.tools && p.tools.toggle){
445
+ p.tools.toggle.addClass('x-tool-collapse-'+ps);
446
+ p.tools.toggle.addClassOnOver('x-tool-collapse-'+ps+'-over');
447
+ }
448
+ }
449
+ },
450
+
451
+ // private
452
+ getCollapsedEl : function(){
453
+ if(!this.collapsedEl){
454
+ if(!this.toolTemplate){
455
+ var tt = new Ext.Template(
456
+ '<div class="x-tool x-tool-{id}">&#160;</div>'
457
+ );
458
+ tt.disableFormats = true;
459
+ tt.compile();
460
+ Ext.layout.BorderLayout.Region.prototype.toolTemplate = tt;
461
+ }
462
+ this.collapsedEl = this.targetEl.createChild({
463
+ cls: "x-layout-collapsed x-layout-collapsed-"+this.position,
464
+ id: this.panel.id + '-xcollapsed'
465
+ });
466
+ this.collapsedEl.enableDisplayMode('block');
467
+
468
+ if(this.collapseMode == 'mini'){
469
+ this.collapsedEl.addClass('x-layout-cmini-'+this.position);
470
+ this.miniCollapsedEl = this.collapsedEl.createChild({
471
+ cls: "x-layout-mini x-layout-mini-"+this.position, html: "&#160;"
472
+ });
473
+ this.miniCollapsedEl.addClassOnOver('x-layout-mini-over');
474
+ this.collapsedEl.addClassOnOver("x-layout-collapsed-over");
475
+ this.collapsedEl.on('click', this.onExpandClick, this, {stopEvent:true});
476
+ }else {
477
+ if(this.collapsible !== false && !this.hideCollapseTool) {
478
+ var t = this.toolTemplate.append(
479
+ this.collapsedEl.dom,
480
+ {id:'expand-'+this.position}, true);
481
+ t.addClassOnOver('x-tool-expand-'+this.position+'-over');
482
+ t.on('click', this.onExpandClick, this, {stopEvent:true});
483
+ }
484
+ if(this.floatable !== false || this.titleCollapse){
485
+ this.collapsedEl.addClassOnOver("x-layout-collapsed-over");
486
+ this.collapsedEl.on("click", this[this.floatable ? 'collapseClick' : 'onExpandClick'], this);
487
+ }
488
+ }
489
+ }
490
+ return this.collapsedEl;
491
+ },
492
+
493
+ // private
494
+ onExpandClick : function(e){
495
+ if(this.isSlid){
496
+ this.afterSlideIn();
497
+ this.panel.expand(false);
498
+ }else{
499
+ this.panel.expand();
500
+ }
501
+ },
502
+
503
+ // private
504
+ onCollapseClick : function(e){
505
+ this.panel.collapse();
506
+ },
507
+
508
+ // private
509
+ beforeCollapse : function(p, animate){
510
+ this.lastAnim = animate;
511
+ if(this.splitEl){
512
+ this.splitEl.hide();
513
+ }
514
+ this.getCollapsedEl().show();
515
+ this.panel.el.setStyle('z-index', 100);
516
+ this.isCollapsed = true;
517
+ this.layout.layout();
518
+ },
519
+
520
+ // private
521
+ onCollapse : function(animate){
522
+ this.panel.el.setStyle('z-index', 1);
523
+ if(this.lastAnim === false || this.panel.animCollapse === false){
524
+ this.getCollapsedEl().dom.style.visibility = 'visible';
525
+ }else{
526
+ this.getCollapsedEl().slideIn(this.panel.slideAnchor, {duration:.2});
527
+ }
528
+ this.state.collapsed = true;
529
+ this.panel.saveState();
530
+ },
531
+
532
+ // private
533
+ beforeExpand : function(animate){
534
+ var c = this.getCollapsedEl();
535
+ this.el.show();
536
+ if(this.position == 'east' || this.position == 'west'){
537
+ this.panel.setSize(undefined, c.getHeight());
538
+ }else{
539
+ this.panel.setSize(c.getWidth(), undefined);
540
+ }
541
+ c.hide();
542
+ c.dom.style.visibility = 'hidden';
543
+ this.panel.el.setStyle('z-index', this.floatingZIndex);
544
+ },
545
+
546
+ // private
547
+ onExpand : function(){
548
+ this.isCollapsed = false;
549
+ if(this.splitEl){
550
+ this.splitEl.show();
551
+ }
552
+ this.layout.layout();
553
+ this.panel.el.setStyle('z-index', 1);
554
+ this.state.collapsed = false;
555
+ this.panel.saveState();
556
+ },
557
+
558
+ // private
559
+ collapseClick : function(e){
560
+ if(this.isSlid){
561
+ e.stopPropagation();
562
+ this.slideIn();
563
+ }else{
564
+ e.stopPropagation();
565
+ this.slideOut();
566
+ }
567
+ },
568
+
569
+ // private
570
+ onHide : function(){
571
+ if(this.isCollapsed){
572
+ this.getCollapsedEl().hide();
573
+ }else if(this.splitEl){
574
+ this.splitEl.hide();
575
+ }
576
+ },
577
+
578
+ // private
579
+ onShow : function(){
580
+ if(this.isCollapsed){
581
+ this.getCollapsedEl().show();
582
+ }else if(this.splitEl){
583
+ this.splitEl.show();
584
+ }
585
+ },
586
+
587
+ /**
588
+ * True if this region is currently visible, else false.
589
+ * @return {Boolean}
590
+ */
591
+ isVisible : function(){
592
+ return !this.panel.hidden;
593
+ },
594
+
595
+ /**
596
+ * Returns the current margins for this region. If the region is collapsed, the
597
+ * {@link #cmargins} (collapsed margins) value will be returned, otherwise the
598
+ * {@link #margins} value will be returned.
599
+ * @return {Object} An object containing the element's margins: <tt>{left: (left
600
+ * margin), top: (top margin), right: (right margin), bottom: (bottom margin)}</tt>
601
+ */
602
+ getMargins : function(){
603
+ return this.isCollapsed && this.cmargins ? this.cmargins : this.margins;
604
+ },
605
+
606
+ /**
607
+ * Returns the current size of this region. If the region is collapsed, the size of the
608
+ * collapsedEl will be returned, otherwise the size of the region's panel will be returned.
609
+ * @return {Object} An object containing the element's size: <tt>{width: (element width),
610
+ * height: (element height)}</tt>
611
+ */
612
+ getSize : function(){
613
+ return this.isCollapsed ? this.getCollapsedEl().getSize() : this.panel.getSize();
614
+ },
615
+
616
+ /**
617
+ * Sets the specified panel as the container element for this region.
618
+ * @param {Ext.Panel} panel The new panel
619
+ */
620
+ setPanel : function(panel){
621
+ this.panel = panel;
622
+ },
623
+
624
+ /**
625
+ * Returns the minimum allowable width for this region.
626
+ * @return {Number} The minimum width
627
+ */
628
+ getMinWidth: function(){
629
+ return this.minWidth;
630
+ },
631
+
632
+ /**
633
+ * Returns the minimum allowable height for this region.
634
+ * @return {Number} The minimum height
635
+ */
636
+ getMinHeight: function(){
637
+ return this.minHeight;
638
+ },
639
+
640
+ // private
641
+ applyLayoutCollapsed : function(box){
642
+ var ce = this.getCollapsedEl();
643
+ ce.setLeftTop(box.x, box.y);
644
+ ce.setSize(box.width, box.height);
645
+ },
646
+
647
+ // private
648
+ applyLayout : function(box){
649
+ if(this.isCollapsed){
650
+ this.applyLayoutCollapsed(box);
651
+ }else{
652
+ this.panel.setPosition(box.x, box.y);
653
+ this.panel.setSize(box.width, box.height);
654
+ }
655
+ },
656
+
657
+ // private
658
+ beforeSlide: function(){
659
+ this.panel.beforeEffect();
660
+ },
661
+
662
+ // private
663
+ afterSlide : function(){
664
+ this.panel.afterEffect();
665
+ },
666
+
667
+ // private
668
+ initAutoHide : function(){
669
+ if(this.autoHide !== false){
670
+ if(!this.autoHideHd){
671
+ var st = new Ext.util.DelayedTask(this.slideIn, this);
672
+ this.autoHideHd = {
673
+ "mouseout": function(e){
674
+ if(!e.within(this.el, true)){
675
+ st.delay(500);
676
+ }
677
+ },
678
+ "mouseover" : function(e){
679
+ st.cancel();
680
+ },
681
+ scope : this
682
+ };
683
+ }
684
+ this.el.on(this.autoHideHd);
685
+ }
686
+ },
687
+
688
+ // private
689
+ clearAutoHide : function(){
690
+ if(this.autoHide !== false){
691
+ this.el.un("mouseout", this.autoHideHd.mouseout);
692
+ this.el.un("mouseover", this.autoHideHd.mouseover);
693
+ }
694
+ },
695
+
696
+ // private
697
+ clearMonitor : function(){
698
+ Ext.getDoc().un("click", this.slideInIf, this);
699
+ },
700
+
701
+ /**
702
+ * If this Region is {@link #floatable}, this method slides this Region into full visibility <i>over the top
703
+ * of the center Region</i> where it floats until either {@link #slideIn} is called, or other regions of the layout
704
+ * are clicked, or the mouse exits the Region.
705
+ */
706
+ slideOut : function(){
707
+ if(this.isSlid || this.el.hasActiveFx()){
708
+ return;
709
+ }
710
+ this.isSlid = true;
711
+ var ts = this.panel.tools;
712
+ if(ts && ts.toggle){
713
+ ts.toggle.hide();
714
+ }
715
+ this.el.show();
716
+ if(this.position == 'east' || this.position == 'west'){
717
+ this.panel.setSize(undefined, this.collapsedEl.getHeight());
718
+ }else{
719
+ this.panel.setSize(this.collapsedEl.getWidth(), undefined);
720
+ }
721
+ this.restoreLT = [this.el.dom.style.left, this.el.dom.style.top];
722
+ this.el.alignTo(this.collapsedEl, this.getCollapseAnchor());
723
+ this.el.setStyle("z-index", this.floatingZIndex+2);
724
+ this.panel.el.replaceClass('x-panel-collapsed', 'x-panel-floating');
725
+ if(this.animFloat !== false){
726
+ this.beforeSlide();
727
+ this.el.slideIn(this.getSlideAnchor(), {
728
+ callback: function(){
729
+ this.afterSlide();
730
+ this.initAutoHide();
731
+ Ext.getDoc().on("click", this.slideInIf, this);
732
+ },
733
+ scope: this,
734
+ block: true
735
+ });
736
+ }else{
737
+ this.initAutoHide();
738
+ Ext.getDoc().on("click", this.slideInIf, this);
739
+ }
740
+ },
741
+
742
+ // private
743
+ afterSlideIn : function(){
744
+ this.clearAutoHide();
745
+ this.isSlid = false;
746
+ this.clearMonitor();
747
+ this.el.setStyle("z-index", "");
748
+ this.panel.el.replaceClass('x-panel-floating', 'x-panel-collapsed');
749
+ this.el.dom.style.left = this.restoreLT[0];
750
+ this.el.dom.style.top = this.restoreLT[1];
751
+
752
+ var ts = this.panel.tools;
753
+ if(ts && ts.toggle){
754
+ ts.toggle.show();
755
+ }
756
+ },
757
+
758
+ /**
759
+ * If this Region is {@link #floatable}, and this Region has been slid into floating visibility, then this method slides
760
+ * this region back into its collapsed state.
761
+ */
762
+ slideIn : function(cb){
763
+ if(!this.isSlid || this.el.hasActiveFx()){
764
+ Ext.callback(cb);
765
+ return;
766
+ }
767
+ this.isSlid = false;
768
+ if(this.animFloat !== false){
769
+ this.beforeSlide();
770
+ this.el.slideOut(this.getSlideAnchor(), {
771
+ callback: function(){
772
+ this.el.hide();
773
+ this.afterSlide();
774
+ this.afterSlideIn();
775
+ Ext.callback(cb);
776
+ },
777
+ scope: this,
778
+ block: true
779
+ });
780
+ }else{
781
+ this.el.hide();
782
+ this.afterSlideIn();
783
+ }
784
+ },
785
+
786
+ // private
787
+ slideInIf : function(e){
788
+ if(!e.within(this.el)){
789
+ this.slideIn();
790
+ }
791
+ },
792
+
793
+ // private
794
+ anchors : {
795
+ "west" : "left",
796
+ "east" : "right",
797
+ "north" : "top",
798
+ "south" : "bottom"
799
+ },
800
+
801
+ // private
802
+ sanchors : {
803
+ "west" : "l",
804
+ "east" : "r",
805
+ "north" : "t",
806
+ "south" : "b"
807
+ },
808
+
809
+ // private
810
+ canchors : {
811
+ "west" : "tl-tr",
812
+ "east" : "tr-tl",
813
+ "north" : "tl-bl",
814
+ "south" : "bl-tl"
815
+ },
816
+
817
+ // private
818
+ getAnchor : function(){
819
+ return this.anchors[this.position];
820
+ },
821
+
822
+ // private
823
+ getCollapseAnchor : function(){
824
+ return this.canchors[this.position];
825
+ },
826
+
827
+ // private
828
+ getSlideAnchor : function(){
829
+ return this.sanchors[this.position];
830
+ },
831
+
832
+ // private
833
+ getAlignAdj : function(){
834
+ var cm = this.cmargins;
835
+ switch(this.position){
836
+ case "west":
837
+ return [0, 0];
838
+ break;
839
+ case "east":
840
+ return [0, 0];
841
+ break;
842
+ case "north":
843
+ return [0, 0];
844
+ break;
845
+ case "south":
846
+ return [0, 0];
847
+ break;
848
+ }
849
+ },
850
+
851
+ // private
852
+ getExpandAdj : function(){
853
+ var c = this.collapsedEl, cm = this.cmargins;
854
+ switch(this.position){
855
+ case "west":
856
+ return [-(cm.right+c.getWidth()+cm.left), 0];
857
+ break;
858
+ case "east":
859
+ return [cm.right+c.getWidth()+cm.left, 0];
860
+ break;
861
+ case "north":
862
+ return [0, -(cm.top+cm.bottom+c.getHeight())];
863
+ break;
864
+ case "south":
865
+ return [0, cm.top+cm.bottom+c.getHeight()];
866
+ break;
867
+ }
868
+ }
869
+ };
870
+
871
+ /**
872
+ * @class Ext.layout.BorderLayout.SplitRegion
873
+ * @extends Ext.layout.BorderLayout.Region
874
+ * <p>This is a specialized type of {@link Ext.layout.BorderLayout.Region BorderLayout region} that
875
+ * has a built-in {@link Ext.SplitBar} for user resizing of regions. The movement of the split bar
876
+ * is configurable to move either {@link #tickSize smooth or incrementally}.</p>
877
+ * @constructor
878
+ * Create a new SplitRegion.
879
+ * @param {Layout} layout The {@link Ext.layout.BorderLayout BorderLayout} instance that is managing this Region.
880
+ * @param {Object} config The configuration options
881
+ * @param {String} position The region position. Valid values are: north, south, east, west and center. Every
882
+ * BorderLayout must have a center region for the primary content -- all other regions are optional.
883
+ */
884
+ Ext.layout.BorderLayout.SplitRegion = function(layout, config, pos){
885
+ Ext.layout.BorderLayout.SplitRegion.superclass.constructor.call(this, layout, config, pos);
886
+ // prevent switch
887
+ this.applyLayout = this.applyFns[pos];
888
+ };
889
+
890
+ Ext.extend(Ext.layout.BorderLayout.SplitRegion, Ext.layout.BorderLayout.Region, {
891
+ /**
892
+ * @cfg {Number} tickSize
893
+ * The increment, in pixels by which to move this Region's {@link Ext.SplitBar SplitBar}.
894
+ * By default, the {@link Ext.SplitBar SplitBar} moves smoothly.
895
+ */
896
+ /**
897
+ * @cfg {String} splitTip
898
+ * The tooltip to display when the user hovers over a
899
+ * {@link Ext.layout.BorderLayout.Region#collapsible non-collapsible} region's split bar
900
+ * (defaults to <tt>"Drag to resize."</tt>). Only applies if
901
+ * <tt>{@link #useSplitTips} = true</tt>.
902
+ */
903
+ splitTip : "Drag to resize.",
904
+ /**
905
+ * @cfg {String} collapsibleSplitTip
906
+ * The tooltip to display when the user hovers over a
907
+ * {@link Ext.layout.BorderLayout.Region#collapsible collapsible} region's split bar
908
+ * (defaults to "Drag to resize. Double click to hide."). Only applies if
909
+ * <tt>{@link #useSplitTips} = true</tt>.
910
+ */
911
+ collapsibleSplitTip : "Drag to resize. Double click to hide.",
912
+ /**
913
+ * @cfg {Boolean} useSplitTips
914
+ * <tt>true</tt> to display a tooltip when the user hovers over a region's split bar
915
+ * (defaults to <tt>false</tt>). The tooltip text will be the value of either
916
+ * <tt>{@link #splitTip}</tt> or <tt>{@link #collapsibleSplitTip}</tt> as appropriate.
917
+ */
918
+ useSplitTips : false,
919
+
920
+ // private
921
+ splitSettings : {
922
+ north : {
923
+ orientation: Ext.SplitBar.VERTICAL,
924
+ placement: Ext.SplitBar.TOP,
925
+ maxFn : 'getVMaxSize',
926
+ minProp: 'minHeight',
927
+ maxProp: 'maxHeight'
928
+ },
929
+ south : {
930
+ orientation: Ext.SplitBar.VERTICAL,
931
+ placement: Ext.SplitBar.BOTTOM,
932
+ maxFn : 'getVMaxSize',
933
+ minProp: 'minHeight',
934
+ maxProp: 'maxHeight'
935
+ },
936
+ east : {
937
+ orientation: Ext.SplitBar.HORIZONTAL,
938
+ placement: Ext.SplitBar.RIGHT,
939
+ maxFn : 'getHMaxSize',
940
+ minProp: 'minWidth',
941
+ maxProp: 'maxWidth'
942
+ },
943
+ west : {
944
+ orientation: Ext.SplitBar.HORIZONTAL,
945
+ placement: Ext.SplitBar.LEFT,
946
+ maxFn : 'getHMaxSize',
947
+ minProp: 'minWidth',
948
+ maxProp: 'maxWidth'
949
+ }
950
+ },
951
+
952
+ // private
953
+ applyFns : {
954
+ west : function(box){
955
+ if(this.isCollapsed){
956
+ return this.applyLayoutCollapsed(box);
957
+ }
958
+ var sd = this.splitEl.dom, s = sd.style;
959
+ this.panel.setPosition(box.x, box.y);
960
+ var sw = sd.offsetWidth;
961
+ s.left = (box.x+box.width-sw)+'px';
962
+ s.top = (box.y)+'px';
963
+ s.height = Math.max(0, box.height)+'px';
964
+ this.panel.setSize(box.width-sw, box.height);
965
+ },
966
+ east : function(box){
967
+ if(this.isCollapsed){
968
+ return this.applyLayoutCollapsed(box);
969
+ }
970
+ var sd = this.splitEl.dom, s = sd.style;
971
+ var sw = sd.offsetWidth;
972
+ this.panel.setPosition(box.x+sw, box.y);
973
+ s.left = (box.x)+'px';
974
+ s.top = (box.y)+'px';
975
+ s.height = Math.max(0, box.height)+'px';
976
+ this.panel.setSize(box.width-sw, box.height);
977
+ },
978
+ north : function(box){
979
+ if(this.isCollapsed){
980
+ return this.applyLayoutCollapsed(box);
981
+ }
982
+ var sd = this.splitEl.dom, s = sd.style;
983
+ var sh = sd.offsetHeight;
984
+ this.panel.setPosition(box.x, box.y);
985
+ s.left = (box.x)+'px';
986
+ s.top = (box.y+box.height-sh)+'px';
987
+ s.width = Math.max(0, box.width)+'px';
988
+ this.panel.setSize(box.width, box.height-sh);
989
+ },
990
+ south : function(box){
991
+ if(this.isCollapsed){
992
+ return this.applyLayoutCollapsed(box);
993
+ }
994
+ var sd = this.splitEl.dom, s = sd.style;
995
+ var sh = sd.offsetHeight;
996
+ this.panel.setPosition(box.x, box.y+sh);
997
+ s.left = (box.x)+'px';
998
+ s.top = (box.y)+'px';
999
+ s.width = Math.max(0, box.width)+'px';
1000
+ this.panel.setSize(box.width, box.height-sh);
1001
+ }
1002
+ },
1003
+
1004
+ // private
1005
+ render : function(ct, p){
1006
+ Ext.layout.BorderLayout.SplitRegion.superclass.render.call(this, ct, p);
1007
+
1008
+ var ps = this.position;
1009
+
1010
+ this.splitEl = ct.createChild({
1011
+ cls: "x-layout-split x-layout-split-"+ps, html: "&#160;",
1012
+ id: this.panel.id + '-xsplit'
1013
+ });
1014
+
1015
+ if(this.collapseMode == 'mini'){
1016
+ this.miniSplitEl = this.splitEl.createChild({
1017
+ cls: "x-layout-mini x-layout-mini-"+ps, html: "&#160;"
1018
+ });
1019
+ this.miniSplitEl.addClassOnOver('x-layout-mini-over');
1020
+ this.miniSplitEl.on('click', this.onCollapseClick, this, {stopEvent:true});
1021
+ }
1022
+
1023
+ var s = this.splitSettings[ps];
1024
+
1025
+ this.split = new Ext.SplitBar(this.splitEl.dom, p.el, s.orientation);
1026
+ this.split.tickSize = this.tickSize;
1027
+ this.split.placement = s.placement;
1028
+ this.split.getMaximumSize = this[s.maxFn].createDelegate(this);
1029
+ this.split.minSize = this.minSize || this[s.minProp];
1030
+ this.split.on("beforeapply", this.onSplitMove, this);
1031
+ this.split.useShim = this.useShim === true;
1032
+ this.maxSize = this.maxSize || this[s.maxProp];
1033
+
1034
+ if(p.hidden){
1035
+ this.splitEl.hide();
1036
+ }
1037
+
1038
+ if(this.useSplitTips){
1039
+ this.splitEl.dom.title = this.collapsible ? this.collapsibleSplitTip : this.splitTip;
1040
+ }
1041
+ if(this.collapsible){
1042
+ this.splitEl.on("dblclick", this.onCollapseClick, this);
1043
+ }
1044
+ },
1045
+
1046
+ //docs inherit from superclass
1047
+ getSize : function(){
1048
+ if(this.isCollapsed){
1049
+ return this.collapsedEl.getSize();
1050
+ }
1051
+ var s = this.panel.getSize();
1052
+ if(this.position == 'north' || this.position == 'south'){
1053
+ s.height += this.splitEl.dom.offsetHeight;
1054
+ }else{
1055
+ s.width += this.splitEl.dom.offsetWidth;
1056
+ }
1057
+ return s;
1058
+ },
1059
+
1060
+ // private
1061
+ getHMaxSize : function(){
1062
+ var cmax = this.maxSize || 10000;
1063
+ var center = this.layout.center;
1064
+ return Math.min(cmax, (this.el.getWidth()+center.el.getWidth())-center.getMinWidth());
1065
+ },
1066
+
1067
+ // private
1068
+ getVMaxSize : function(){
1069
+ var cmax = this.maxSize || 10000;
1070
+ var center = this.layout.center;
1071
+ return Math.min(cmax, (this.el.getHeight()+center.el.getHeight())-center.getMinHeight());
1072
+ },
1073
+
1074
+ // private
1075
+ onSplitMove : function(split, newSize){
1076
+ var s = this.panel.getSize();
1077
+ this.lastSplitSize = newSize;
1078
+ if(this.position == 'north' || this.position == 'south'){
1079
+ this.panel.setSize(s.width, newSize);
1080
+ this.state.height = newSize;
1081
+ }else{
1082
+ this.panel.setSize(newSize, s.height);
1083
+ this.state.width = newSize;
1084
+ }
1085
+ this.layout.layout();
1086
+ this.panel.saveState();
1087
+ return false;
1088
+ },
1089
+
1090
+ /**
1091
+ * Returns a reference to the split bar in use by this region.
1092
+ * @return {Ext.SplitBar} The split bar
1093
+ */
1094
+ getSplitBar : function(){
1095
+ return this.split;
1096
+ },
1097
+
1098
+ // inherit docs
1099
+ destroy : function() {
1100
+ Ext.destroy(
1101
+ this.miniSplitEl,
1102
+ this.split,
1103
+ this.splitEl
1104
+ );
1105
+ }
1106
+ });
1107
+
1108
+ Ext.Container.LAYOUTS['border'] = Ext.layout.BorderLayout;