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,72 @@
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.StoreMgr
9
+ * @extends Ext.util.MixedCollection
10
+ * The default global group of stores.
11
+ * @singleton
12
+ */
13
+ Ext.StoreMgr = Ext.apply(new Ext.util.MixedCollection(), {
14
+ /**
15
+ * @cfg {Object} listeners @hide
16
+ */
17
+
18
+ /**
19
+ * Registers one or more Stores with the StoreMgr. You do not normally need to register stores
20
+ * manually. Any store initialized with a {@link Ext.data.Store#storeId} will be auto-registered.
21
+ * @param {Ext.data.Store} store1 A Store instance
22
+ * @param {Ext.data.Store} store2 (optional)
23
+ * @param {Ext.data.Store} etc... (optional)
24
+ */
25
+ register : function(){
26
+ for(var i = 0, s; (s = arguments[i]); i++){
27
+ this.add(s);
28
+ }
29
+ },
30
+
31
+ /**
32
+ * Unregisters one or more Stores with the StoreMgr
33
+ * @param {String/Object} id1 The id of the Store, or a Store instance
34
+ * @param {String/Object} id2 (optional)
35
+ * @param {String/Object} etc... (optional)
36
+ */
37
+ unregister : function(){
38
+ for(var i = 0, s; (s = arguments[i]); i++){
39
+ this.remove(this.lookup(s));
40
+ }
41
+ },
42
+
43
+ /**
44
+ * Gets a registered Store by id
45
+ * @param {String/Object} id The id of the Store, or a Store instance
46
+ * @return {Ext.data.Store}
47
+ */
48
+ lookup : function(id){
49
+ if(Ext.isArray(id)){
50
+ var fields = ['field1'], expand = !Ext.isArray(id[0]);
51
+ if(!expand){
52
+ for(var i = 2, len = id[0].length; i <= len; ++i){
53
+ fields.push('field' + i);
54
+ }
55
+ }
56
+ return new Ext.data.ArrayStore({
57
+ fields: fields,
58
+ data: id,
59
+ expandData: expand,
60
+ autoDestroy: true,
61
+ autoCreated: true
62
+
63
+ });
64
+ }
65
+ return Ext.isObject(id) ? (id.events ? id : Ext.create(id, 'store')) : this.get(id);
66
+ },
67
+
68
+ // getKey implementation for MixedCollection
69
+ getKey : function(o){
70
+ return o.storeId;
71
+ }
72
+ });
@@ -0,0 +1,785 @@
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.data.Tree
9
+ * @extends Ext.util.Observable
10
+ * Represents a tree data structure and bubbles all the events for its nodes. The nodes
11
+ * in the tree have most standard DOM functionality.
12
+ * @constructor
13
+ * @param {Node} root (optional) The root node
14
+ */
15
+ Ext.data.Tree = function(root){
16
+ this.nodeHash = {};
17
+ /**
18
+ * The root node for this tree
19
+ * @type Node
20
+ */
21
+ this.root = null;
22
+ if(root){
23
+ this.setRootNode(root);
24
+ }
25
+ this.addEvents(
26
+ /**
27
+ * @event append
28
+ * Fires when a new child node is appended to a node in this tree.
29
+ * @param {Tree} tree The owner tree
30
+ * @param {Node} parent The parent node
31
+ * @param {Node} node The newly appended node
32
+ * @param {Number} index The index of the newly appended node
33
+ */
34
+ "append",
35
+ /**
36
+ * @event remove
37
+ * Fires when a child node is removed from a node in this tree.
38
+ * @param {Tree} tree The owner tree
39
+ * @param {Node} parent The parent node
40
+ * @param {Node} node The child node removed
41
+ */
42
+ "remove",
43
+ /**
44
+ * @event move
45
+ * Fires when a node is moved to a new location in the tree
46
+ * @param {Tree} tree The owner tree
47
+ * @param {Node} node The node moved
48
+ * @param {Node} oldParent The old parent of this node
49
+ * @param {Node} newParent The new parent of this node
50
+ * @param {Number} index The index it was moved to
51
+ */
52
+ "move",
53
+ /**
54
+ * @event insert
55
+ * Fires when a new child node is inserted in a node in this tree.
56
+ * @param {Tree} tree The owner tree
57
+ * @param {Node} parent The parent node
58
+ * @param {Node} node The child node inserted
59
+ * @param {Node} refNode The child node the node was inserted before
60
+ */
61
+ "insert",
62
+ /**
63
+ * @event beforeappend
64
+ * Fires before a new child is appended to a node in this tree, return false to cancel the append.
65
+ * @param {Tree} tree The owner tree
66
+ * @param {Node} parent The parent node
67
+ * @param {Node} node The child node to be appended
68
+ */
69
+ "beforeappend",
70
+ /**
71
+ * @event beforeremove
72
+ * Fires before a child is removed from a node in this tree, return false to cancel the remove.
73
+ * @param {Tree} tree The owner tree
74
+ * @param {Node} parent The parent node
75
+ * @param {Node} node The child node to be removed
76
+ */
77
+ "beforeremove",
78
+ /**
79
+ * @event beforemove
80
+ * Fires before a node is moved to a new location in the tree. Return false to cancel the move.
81
+ * @param {Tree} tree The owner tree
82
+ * @param {Node} node The node being moved
83
+ * @param {Node} oldParent The parent of the node
84
+ * @param {Node} newParent The new parent the node is moving to
85
+ * @param {Number} index The index it is being moved to
86
+ */
87
+ "beforemove",
88
+ /**
89
+ * @event beforeinsert
90
+ * Fires before a new child is inserted in a node in this tree, return false to cancel the insert.
91
+ * @param {Tree} tree The owner tree
92
+ * @param {Node} parent The parent node
93
+ * @param {Node} node The child node to be inserted
94
+ * @param {Node} refNode The child node the node is being inserted before
95
+ */
96
+ "beforeinsert"
97
+ );
98
+
99
+ Ext.data.Tree.superclass.constructor.call(this);
100
+ };
101
+
102
+ Ext.extend(Ext.data.Tree, Ext.util.Observable, {
103
+ /**
104
+ * @cfg {String} pathSeparator
105
+ * The token used to separate paths in node ids (defaults to '/').
106
+ */
107
+ pathSeparator: "/",
108
+
109
+ // private
110
+ proxyNodeEvent : function(){
111
+ return this.fireEvent.apply(this, arguments);
112
+ },
113
+
114
+ /**
115
+ * Returns the root node for this tree.
116
+ * @return {Node}
117
+ */
118
+ getRootNode : function(){
119
+ return this.root;
120
+ },
121
+
122
+ /**
123
+ * Sets the root node for this tree.
124
+ * @param {Node} node
125
+ * @return {Node}
126
+ */
127
+ setRootNode : function(node){
128
+ this.root = node;
129
+ node.ownerTree = this;
130
+ node.isRoot = true;
131
+ this.registerNode(node);
132
+ return node;
133
+ },
134
+
135
+ /**
136
+ * Gets a node in this tree by its id.
137
+ * @param {String} id
138
+ * @return {Node}
139
+ */
140
+ getNodeById : function(id){
141
+ return this.nodeHash[id];
142
+ },
143
+
144
+ // private
145
+ registerNode : function(node){
146
+ this.nodeHash[node.id] = node;
147
+ },
148
+
149
+ // private
150
+ unregisterNode : function(node){
151
+ delete this.nodeHash[node.id];
152
+ },
153
+
154
+ toString : function(){
155
+ return "[Tree"+(this.id?" "+this.id:"")+"]";
156
+ }
157
+ });
158
+
159
+ /**
160
+ * @class Ext.data.Node
161
+ * @extends Ext.util.Observable
162
+ * @cfg {Boolean} leaf true if this node is a leaf and does not have children
163
+ * @cfg {String} id The id for this node. If one is not specified, one is generated.
164
+ * @constructor
165
+ * @param {Object} attributes The attributes/config for the node
166
+ */
167
+ Ext.data.Node = function(attributes){
168
+ /**
169
+ * The attributes supplied for the node. You can use this property to access any custom attributes you supplied.
170
+ * @type {Object}
171
+ */
172
+ this.attributes = attributes || {};
173
+ this.leaf = this.attributes.leaf;
174
+ /**
175
+ * The node id. @type String
176
+ */
177
+ this.id = this.attributes.id;
178
+ if(!this.id){
179
+ this.id = Ext.id(null, "xnode-");
180
+ this.attributes.id = this.id;
181
+ }
182
+ /**
183
+ * All child nodes of this node. @type Array
184
+ */
185
+ this.childNodes = [];
186
+ if(!this.childNodes.indexOf){ // indexOf is a must
187
+ this.childNodes.indexOf = function(o){
188
+ for(var i = 0, len = this.length; i < len; i++){
189
+ if(this[i] == o){
190
+ return i;
191
+ }
192
+ }
193
+ return -1;
194
+ };
195
+ }
196
+ /**
197
+ * The parent node for this node. @type Node
198
+ */
199
+ this.parentNode = null;
200
+ /**
201
+ * The first direct child node of this node, or null if this node has no child nodes. @type Node
202
+ */
203
+ this.firstChild = null;
204
+ /**
205
+ * The last direct child node of this node, or null if this node has no child nodes. @type Node
206
+ */
207
+ this.lastChild = null;
208
+ /**
209
+ * The node immediately preceding this node in the tree, or null if there is no sibling node. @type Node
210
+ */
211
+ this.previousSibling = null;
212
+ /**
213
+ * The node immediately following this node in the tree, or null if there is no sibling node. @type Node
214
+ */
215
+ this.nextSibling = null;
216
+
217
+ this.addEvents({
218
+ /**
219
+ * @event append
220
+ * Fires when a new child node is appended
221
+ * @param {Tree} tree The owner tree
222
+ * @param {Node} this This node
223
+ * @param {Node} node The newly appended node
224
+ * @param {Number} index The index of the newly appended node
225
+ */
226
+ "append" : true,
227
+ /**
228
+ * @event remove
229
+ * Fires when a child node is removed
230
+ * @param {Tree} tree The owner tree
231
+ * @param {Node} this This node
232
+ * @param {Node} node The removed node
233
+ */
234
+ "remove" : true,
235
+ /**
236
+ * @event move
237
+ * Fires when this node is moved to a new location in the tree
238
+ * @param {Tree} tree The owner tree
239
+ * @param {Node} this This node
240
+ * @param {Node} oldParent The old parent of this node
241
+ * @param {Node} newParent The new parent of this node
242
+ * @param {Number} index The index it was moved to
243
+ */
244
+ "move" : true,
245
+ /**
246
+ * @event insert
247
+ * Fires when a new child node is inserted.
248
+ * @param {Tree} tree The owner tree
249
+ * @param {Node} this This node
250
+ * @param {Node} node The child node inserted
251
+ * @param {Node} refNode The child node the node was inserted before
252
+ */
253
+ "insert" : true,
254
+ /**
255
+ * @event beforeappend
256
+ * Fires before a new child is appended, return false to cancel the append.
257
+ * @param {Tree} tree The owner tree
258
+ * @param {Node} this This node
259
+ * @param {Node} node The child node to be appended
260
+ */
261
+ "beforeappend" : true,
262
+ /**
263
+ * @event beforeremove
264
+ * Fires before a child is removed, return false to cancel the remove.
265
+ * @param {Tree} tree The owner tree
266
+ * @param {Node} this This node
267
+ * @param {Node} node The child node to be removed
268
+ */
269
+ "beforeremove" : true,
270
+ /**
271
+ * @event beforemove
272
+ * Fires before this node is moved to a new location in the tree. Return false to cancel the move.
273
+ * @param {Tree} tree The owner tree
274
+ * @param {Node} this This node
275
+ * @param {Node} oldParent The parent of this node
276
+ * @param {Node} newParent The new parent this node is moving to
277
+ * @param {Number} index The index it is being moved to
278
+ */
279
+ "beforemove" : true,
280
+ /**
281
+ * @event beforeinsert
282
+ * Fires before a new child is inserted, return false to cancel the insert.
283
+ * @param {Tree} tree The owner tree
284
+ * @param {Node} this This node
285
+ * @param {Node} node The child node to be inserted
286
+ * @param {Node} refNode The child node the node is being inserted before
287
+ */
288
+ "beforeinsert" : true
289
+ });
290
+ this.listeners = this.attributes.listeners;
291
+ Ext.data.Node.superclass.constructor.call(this);
292
+ };
293
+
294
+ Ext.extend(Ext.data.Node, Ext.util.Observable, {
295
+ // private
296
+ fireEvent : function(evtName){
297
+ // first do standard event for this node
298
+ if(Ext.data.Node.superclass.fireEvent.apply(this, arguments) === false){
299
+ return false;
300
+ }
301
+ // then bubble it up to the tree if the event wasn't cancelled
302
+ var ot = this.getOwnerTree();
303
+ if(ot){
304
+ if(ot.proxyNodeEvent.apply(ot, arguments) === false){
305
+ return false;
306
+ }
307
+ }
308
+ return true;
309
+ },
310
+
311
+ /**
312
+ * Returns true if this node is a leaf
313
+ * @return {Boolean}
314
+ */
315
+ isLeaf : function(){
316
+ return this.leaf === true;
317
+ },
318
+
319
+ // private
320
+ setFirstChild : function(node){
321
+ this.firstChild = node;
322
+ },
323
+
324
+ //private
325
+ setLastChild : function(node){
326
+ this.lastChild = node;
327
+ },
328
+
329
+
330
+ /**
331
+ * Returns true if this node is the last child of its parent
332
+ * @return {Boolean}
333
+ */
334
+ isLast : function(){
335
+ return (!this.parentNode ? true : this.parentNode.lastChild == this);
336
+ },
337
+
338
+ /**
339
+ * Returns true if this node is the first child of its parent
340
+ * @return {Boolean}
341
+ */
342
+ isFirst : function(){
343
+ return (!this.parentNode ? true : this.parentNode.firstChild == this);
344
+ },
345
+
346
+ /**
347
+ * Returns true if this node has one or more child nodes, else false.
348
+ * @return {Boolean}
349
+ */
350
+ hasChildNodes : function(){
351
+ return !this.isLeaf() && this.childNodes.length > 0;
352
+ },
353
+
354
+ /**
355
+ * Returns true if this node has one or more child nodes, or if the <tt>expandable</tt>
356
+ * node attribute is explicitly specified as true (see {@link #attributes}), otherwise returns false.
357
+ * @return {Boolean}
358
+ */
359
+ isExpandable : function(){
360
+ return this.attributes.expandable || this.hasChildNodes();
361
+ },
362
+
363
+ /**
364
+ * Insert node(s) as the last child node of this node.
365
+ * @param {Node/Array} node The node or Array of nodes to append
366
+ * @return {Node} The appended node if single append, or null if an array was passed
367
+ */
368
+ appendChild : function(node){
369
+ var multi = false;
370
+ if(Ext.isArray(node)){
371
+ multi = node;
372
+ }else if(arguments.length > 1){
373
+ multi = arguments;
374
+ }
375
+ // if passed an array or multiple args do them one by one
376
+ if(multi){
377
+ for(var i = 0, len = multi.length; i < len; i++) {
378
+ this.appendChild(multi[i]);
379
+ }
380
+ }else{
381
+ if(this.fireEvent("beforeappend", this.ownerTree, this, node) === false){
382
+ return false;
383
+ }
384
+ var index = this.childNodes.length;
385
+ var oldParent = node.parentNode;
386
+ // it's a move, make sure we move it cleanly
387
+ if(oldParent){
388
+ if(node.fireEvent("beforemove", node.getOwnerTree(), node, oldParent, this, index) === false){
389
+ return false;
390
+ }
391
+ oldParent.removeChild(node);
392
+ }
393
+ index = this.childNodes.length;
394
+ if(index === 0){
395
+ this.setFirstChild(node);
396
+ }
397
+ this.childNodes.push(node);
398
+ node.parentNode = this;
399
+ var ps = this.childNodes[index-1];
400
+ if(ps){
401
+ node.previousSibling = ps;
402
+ ps.nextSibling = node;
403
+ }else{
404
+ node.previousSibling = null;
405
+ }
406
+ node.nextSibling = null;
407
+ this.setLastChild(node);
408
+ node.setOwnerTree(this.getOwnerTree());
409
+ this.fireEvent("append", this.ownerTree, this, node, index);
410
+ if(oldParent){
411
+ node.fireEvent("move", this.ownerTree, node, oldParent, this, index);
412
+ }
413
+ return node;
414
+ }
415
+ },
416
+
417
+ /**
418
+ * Removes a child node from this node.
419
+ * @param {Node} node The node to remove
420
+ * @return {Node} The removed node
421
+ */
422
+ removeChild : function(node){
423
+ var index = this.childNodes.indexOf(node);
424
+ if(index == -1){
425
+ return false;
426
+ }
427
+ if(this.fireEvent("beforeremove", this.ownerTree, this, node) === false){
428
+ return false;
429
+ }
430
+
431
+ // remove it from childNodes collection
432
+ this.childNodes.splice(index, 1);
433
+
434
+ // update siblings
435
+ if(node.previousSibling){
436
+ node.previousSibling.nextSibling = node.nextSibling;
437
+ }
438
+ if(node.nextSibling){
439
+ node.nextSibling.previousSibling = node.previousSibling;
440
+ }
441
+
442
+ // update child refs
443
+ if(this.firstChild == node){
444
+ this.setFirstChild(node.nextSibling);
445
+ }
446
+ if(this.lastChild == node){
447
+ this.setLastChild(node.previousSibling);
448
+ }
449
+
450
+ node.setOwnerTree(null);
451
+ // clear any references from the node
452
+ node.parentNode = null;
453
+ node.previousSibling = null;
454
+ node.nextSibling = null;
455
+ this.fireEvent("remove", this.ownerTree, this, node);
456
+ return node;
457
+ },
458
+
459
+ /**
460
+ * Inserts the first node before the second node in this nodes childNodes collection.
461
+ * @param {Node} node The node to insert
462
+ * @param {Node} refNode The node to insert before (if null the node is appended)
463
+ * @return {Node} The inserted node
464
+ */
465
+ insertBefore : function(node, refNode){
466
+ if(!refNode){ // like standard Dom, refNode can be null for append
467
+ return this.appendChild(node);
468
+ }
469
+ // nothing to do
470
+ if(node == refNode){
471
+ return false;
472
+ }
473
+
474
+ if(this.fireEvent("beforeinsert", this.ownerTree, this, node, refNode) === false){
475
+ return false;
476
+ }
477
+ var index = this.childNodes.indexOf(refNode);
478
+ var oldParent = node.parentNode;
479
+ var refIndex = index;
480
+
481
+ // when moving internally, indexes will change after remove
482
+ if(oldParent == this && this.childNodes.indexOf(node) < index){
483
+ refIndex--;
484
+ }
485
+
486
+ // it's a move, make sure we move it cleanly
487
+ if(oldParent){
488
+ if(node.fireEvent("beforemove", node.getOwnerTree(), node, oldParent, this, index, refNode) === false){
489
+ return false;
490
+ }
491
+ oldParent.removeChild(node);
492
+ }
493
+ if(refIndex === 0){
494
+ this.setFirstChild(node);
495
+ }
496
+ this.childNodes.splice(refIndex, 0, node);
497
+ node.parentNode = this;
498
+ var ps = this.childNodes[refIndex-1];
499
+ if(ps){
500
+ node.previousSibling = ps;
501
+ ps.nextSibling = node;
502
+ }else{
503
+ node.previousSibling = null;
504
+ }
505
+ node.nextSibling = refNode;
506
+ refNode.previousSibling = node;
507
+ node.setOwnerTree(this.getOwnerTree());
508
+ this.fireEvent("insert", this.ownerTree, this, node, refNode);
509
+ if(oldParent){
510
+ node.fireEvent("move", this.ownerTree, node, oldParent, this, refIndex, refNode);
511
+ }
512
+ return node;
513
+ },
514
+
515
+ /**
516
+ * Removes this node from its parent
517
+ * @return {Node} this
518
+ */
519
+ remove : function(){
520
+ this.parentNode.removeChild(this);
521
+ return this;
522
+ },
523
+
524
+ /**
525
+ * Returns the child node at the specified index.
526
+ * @param {Number} index
527
+ * @return {Node}
528
+ */
529
+ item : function(index){
530
+ return this.childNodes[index];
531
+ },
532
+
533
+ /**
534
+ * Replaces one child node in this node with another.
535
+ * @param {Node} newChild The replacement node
536
+ * @param {Node} oldChild The node to replace
537
+ * @return {Node} The replaced node
538
+ */
539
+ replaceChild : function(newChild, oldChild){
540
+ var s = oldChild ? oldChild.nextSibling : null;
541
+ this.removeChild(oldChild);
542
+ this.insertBefore(newChild, s);
543
+ return oldChild;
544
+ },
545
+
546
+ /**
547
+ * Returns the index of a child node
548
+ * @param {Node} node
549
+ * @return {Number} The index of the node or -1 if it was not found
550
+ */
551
+ indexOf : function(child){
552
+ return this.childNodes.indexOf(child);
553
+ },
554
+
555
+ /**
556
+ * Returns the tree this node is in.
557
+ * @return {Tree}
558
+ */
559
+ getOwnerTree : function(){
560
+ // if it doesn't have one, look for one
561
+ if(!this.ownerTree){
562
+ var p = this;
563
+ while(p){
564
+ if(p.ownerTree){
565
+ this.ownerTree = p.ownerTree;
566
+ break;
567
+ }
568
+ p = p.parentNode;
569
+ }
570
+ }
571
+ return this.ownerTree;
572
+ },
573
+
574
+ /**
575
+ * Returns depth of this node (the root node has a depth of 0)
576
+ * @return {Number}
577
+ */
578
+ getDepth : function(){
579
+ var depth = 0;
580
+ var p = this;
581
+ while(p.parentNode){
582
+ ++depth;
583
+ p = p.parentNode;
584
+ }
585
+ return depth;
586
+ },
587
+
588
+ // private
589
+ setOwnerTree : function(tree){
590
+ // if it is a move, we need to update everyone
591
+ if(tree != this.ownerTree){
592
+ if(this.ownerTree){
593
+ this.ownerTree.unregisterNode(this);
594
+ }
595
+ this.ownerTree = tree;
596
+ var cs = this.childNodes;
597
+ for(var i = 0, len = cs.length; i < len; i++) {
598
+ cs[i].setOwnerTree(tree);
599
+ }
600
+ if(tree){
601
+ tree.registerNode(this);
602
+ }
603
+ }
604
+ },
605
+
606
+ /**
607
+ * Changes the id of this node.
608
+ * @param {String} id The new id for the node.
609
+ */
610
+ setId: function(id){
611
+ if(id !== this.id){
612
+ var t = this.ownerTree;
613
+ if(t){
614
+ t.unregisterNode(this);
615
+ }
616
+ this.id = id;
617
+ if(t){
618
+ t.registerNode(this);
619
+ }
620
+ this.onIdChange(id);
621
+ }
622
+ },
623
+
624
+ // private
625
+ onIdChange: Ext.emptyFn,
626
+
627
+ /**
628
+ * Returns the path for this node. The path can be used to expand or select this node programmatically.
629
+ * @param {String} attr (optional) The attr to use for the path (defaults to the node's id)
630
+ * @return {String} The path
631
+ */
632
+ getPath : function(attr){
633
+ attr = attr || "id";
634
+ var p = this.parentNode;
635
+ var b = [this.attributes[attr]];
636
+ while(p){
637
+ b.unshift(p.attributes[attr]);
638
+ p = p.parentNode;
639
+ }
640
+ var sep = this.getOwnerTree().pathSeparator;
641
+ return sep + b.join(sep);
642
+ },
643
+
644
+ /**
645
+ * Bubbles up the tree from this node, calling the specified function with each node. The scope (<i>this</i>) of
646
+ * function call will be the scope provided or the current node. The arguments to the function
647
+ * will be the args provided or the current node. If the function returns false at any point,
648
+ * the bubble is stopped.
649
+ * @param {Function} fn The function to call
650
+ * @param {Object} scope (optional) The scope of the function (defaults to current node)
651
+ * @param {Array} args (optional) The args to call the function with (default to passing the current node)
652
+ */
653
+ bubble : function(fn, scope, args){
654
+ var p = this;
655
+ while(p){
656
+ if(fn.apply(scope || p, args || [p]) === false){
657
+ break;
658
+ }
659
+ p = p.parentNode;
660
+ }
661
+ },
662
+
663
+ /**
664
+ * Cascades down the tree from this node, calling the specified function with each node. The scope (<i>this</i>) of
665
+ * function call will be the scope provided or the current node. The arguments to the function
666
+ * will be the args provided or the current node. If the function returns false at any point,
667
+ * the cascade is stopped on that branch.
668
+ * @param {Function} fn The function to call
669
+ * @param {Object} scope (optional) The scope of the function (defaults to current node)
670
+ * @param {Array} args (optional) The args to call the function with (default to passing the current node)
671
+ */
672
+ cascade : function(fn, scope, args){
673
+ if(fn.apply(scope || this, args || [this]) !== false){
674
+ var cs = this.childNodes;
675
+ for(var i = 0, len = cs.length; i < len; i++) {
676
+ cs[i].cascade(fn, scope, args);
677
+ }
678
+ }
679
+ },
680
+
681
+ /**
682
+ * Interates the child nodes of this node, calling the specified function with each node. The scope (<i>this</i>) of
683
+ * function call will be the scope provided or the current node. The arguments to the function
684
+ * will be the args provided or the current node. If the function returns false at any point,
685
+ * the iteration stops.
686
+ * @param {Function} fn The function to call
687
+ * @param {Object} scope (optional) The scope of the function (defaults to current node)
688
+ * @param {Array} args (optional) The args to call the function with (default to passing the current node)
689
+ */
690
+ eachChild : function(fn, scope, args){
691
+ var cs = this.childNodes;
692
+ for(var i = 0, len = cs.length; i < len; i++) {
693
+ if(fn.apply(scope || this, args || [cs[i]]) === false){
694
+ break;
695
+ }
696
+ }
697
+ },
698
+
699
+ /**
700
+ * Finds the first child that has the attribute with the specified value.
701
+ * @param {String} attribute The attribute name
702
+ * @param {Mixed} value The value to search for
703
+ * @return {Node} The found child or null if none was found
704
+ */
705
+ findChild : function(attribute, value){
706
+ var cs = this.childNodes;
707
+ for(var i = 0, len = cs.length; i < len; i++) {
708
+ if(cs[i].attributes[attribute] == value){
709
+ return cs[i];
710
+ }
711
+ }
712
+ return null;
713
+ },
714
+
715
+ /**
716
+ * Finds the first child by a custom function. The child matches if the function passed
717
+ * returns true.
718
+ * @param {Function} fn
719
+ * @param {Object} scope (optional)
720
+ * @return {Node} The found child or null if none was found
721
+ */
722
+ findChildBy : function(fn, scope){
723
+ var cs = this.childNodes;
724
+ for(var i = 0, len = cs.length; i < len; i++) {
725
+ if(fn.call(scope||cs[i], cs[i]) === true){
726
+ return cs[i];
727
+ }
728
+ }
729
+ return null;
730
+ },
731
+
732
+ /**
733
+ * Sorts this nodes children using the supplied sort function
734
+ * @param {Function} fn
735
+ * @param {Object} scope (optional)
736
+ */
737
+ sort : function(fn, scope){
738
+ var cs = this.childNodes;
739
+ var len = cs.length;
740
+ if(len > 0){
741
+ var sortFn = scope ? function(){fn.apply(scope, arguments);} : fn;
742
+ cs.sort(sortFn);
743
+ for(var i = 0; i < len; i++){
744
+ var n = cs[i];
745
+ n.previousSibling = cs[i-1];
746
+ n.nextSibling = cs[i+1];
747
+ if(i === 0){
748
+ this.setFirstChild(n);
749
+ }
750
+ if(i == len-1){
751
+ this.setLastChild(n);
752
+ }
753
+ }
754
+ }
755
+ },
756
+
757
+ /**
758
+ * Returns true if this node is an ancestor (at any point) of the passed node.
759
+ * @param {Node} node
760
+ * @return {Boolean}
761
+ */
762
+ contains : function(node){
763
+ return node.isAncestor(this);
764
+ },
765
+
766
+ /**
767
+ * Returns true if the passed node is an ancestor (at any point) of this node.
768
+ * @param {Node} node
769
+ * @return {Boolean}
770
+ */
771
+ isAncestor : function(node){
772
+ var p = this.parentNode;
773
+ while(p){
774
+ if(p == node){
775
+ return true;
776
+ }
777
+ p = p.parentNode;
778
+ }
779
+ return false;
780
+ },
781
+
782
+ toString : function(){
783
+ return "[Node"+(this.id?" "+this.id:"")+"]";
784
+ }
785
+ });