extjs-rails 4.1.0.alpha1

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 (517) hide show
  1. data/.gitignore +18 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE +36 -0
  4. data/README.md +29 -0
  5. data/Rakefile +2 -0
  6. data/app/assets/javascripts/extjs-rails/extjs-rails.js +1 -0
  7. data/app/assets/javascripts/extjs-rails/index.js.erb +9 -0
  8. data/app/assets/javascripts/extjs-rails/sdk.jsb3 +2017 -0
  9. data/app/assets/javascripts/extjs-rails/src/AbstractComponent.js +3290 -0
  10. data/app/assets/javascripts/extjs-rails/src/AbstractManager.js +144 -0
  11. data/app/assets/javascripts/extjs-rails/src/AbstractPlugin.js +72 -0
  12. data/app/assets/javascripts/extjs-rails/src/Action.js +276 -0
  13. data/app/assets/javascripts/extjs-rails/src/Ajax.js +99 -0
  14. data/app/assets/javascripts/extjs-rails/src/Component.js +1344 -0
  15. data/app/assets/javascripts/extjs-rails/src/ComponentLoader.js +202 -0
  16. data/app/assets/javascripts/extjs-rails/src/ComponentManager.js +47 -0
  17. data/app/assets/javascripts/extjs-rails/src/ComponentQuery.js +521 -0
  18. data/app/assets/javascripts/extjs-rails/src/Editor.js +494 -0
  19. data/app/assets/javascripts/extjs-rails/src/ElementLoader.js +404 -0
  20. data/app/assets/javascripts/extjs-rails/src/FocusManager.js +712 -0
  21. data/app/assets/javascripts/extjs-rails/src/Img.js +111 -0
  22. data/app/assets/javascripts/extjs-rails/src/Layer.js +543 -0
  23. data/app/assets/javascripts/extjs-rails/src/LoadMask.js +432 -0
  24. data/app/assets/javascripts/extjs-rails/src/ModelManager.js +186 -0
  25. data/app/assets/javascripts/extjs-rails/src/PluginManager.js +110 -0
  26. data/app/assets/javascripts/extjs-rails/src/ProgressBar.js +336 -0
  27. data/app/assets/javascripts/extjs-rails/src/Shadow.js +233 -0
  28. data/app/assets/javascripts/extjs-rails/src/ShadowPool.js +43 -0
  29. data/app/assets/javascripts/extjs-rails/src/Template.js +331 -0
  30. data/app/assets/javascripts/extjs-rails/src/XTemplate.js +365 -0
  31. data/app/assets/javascripts/extjs-rails/src/XTemplateCompiler.js +450 -0
  32. data/app/assets/javascripts/extjs-rails/src/XTemplateParser.js +249 -0
  33. data/app/assets/javascripts/extjs-rails/src/ZIndexManager.js +519 -0
  34. data/app/assets/javascripts/extjs-rails/src/app/Application.js +271 -0
  35. data/app/assets/javascripts/extjs-rails/src/app/Controller.js +458 -0
  36. data/app/assets/javascripts/extjs-rails/src/app/EventBus.js +112 -0
  37. data/app/assets/javascripts/extjs-rails/src/button/Button.js +1483 -0
  38. data/app/assets/javascripts/extjs-rails/src/button/Cycle.js +215 -0
  39. data/app/assets/javascripts/extjs-rails/src/button/Split.js +99 -0
  40. data/app/assets/javascripts/extjs-rails/src/chart/Callout.js +140 -0
  41. data/app/assets/javascripts/extjs-rails/src/chart/Chart.js +966 -0
  42. data/app/assets/javascripts/extjs-rails/src/chart/Highlight.js +172 -0
  43. data/app/assets/javascripts/extjs-rails/src/chart/Label.js +241 -0
  44. data/app/assets/javascripts/extjs-rails/src/chart/Legend.js +474 -0
  45. data/app/assets/javascripts/extjs-rails/src/chart/LegendItem.js +217 -0
  46. data/app/assets/javascripts/extjs-rails/src/chart/Mask.js +230 -0
  47. data/app/assets/javascripts/extjs-rails/src/chart/MaskLayer.js +48 -0
  48. data/app/assets/javascripts/extjs-rails/src/chart/Navigation.js +79 -0
  49. data/app/assets/javascripts/extjs-rails/src/chart/Shape.js +106 -0
  50. data/app/assets/javascripts/extjs-rails/src/chart/Tip.js +98 -0
  51. data/app/assets/javascripts/extjs-rails/src/chart/TipSurface.js +42 -0
  52. data/app/assets/javascripts/extjs-rails/src/chart/axis/Abstract.js +73 -0
  53. data/app/assets/javascripts/extjs-rails/src/chart/axis/Axis.js +961 -0
  54. data/app/assets/javascripts/extjs-rails/src/chart/axis/Category.js +130 -0
  55. data/app/assets/javascripts/extjs-rails/src/chart/axis/Gauge.js +203 -0
  56. data/app/assets/javascripts/extjs-rails/src/chart/axis/Numeric.js +235 -0
  57. data/app/assets/javascripts/extjs-rails/src/chart/axis/Radial.js +204 -0
  58. data/app/assets/javascripts/extjs-rails/src/chart/axis/Time.js +135 -0
  59. data/app/assets/javascripts/extjs-rails/src/chart/series/Area.js +803 -0
  60. data/app/assets/javascripts/extjs-rails/src/chart/series/Bar.js +853 -0
  61. data/app/assets/javascripts/extjs-rails/src/chart/series/Cartesian.js +328 -0
  62. data/app/assets/javascripts/extjs-rails/src/chart/series/Column.js +104 -0
  63. data/app/assets/javascripts/extjs-rails/src/chart/series/Gauge.js +490 -0
  64. data/app/assets/javascripts/extjs-rails/src/chart/series/Line.js +1104 -0
  65. data/app/assets/javascripts/extjs-rails/src/chart/series/Pie.js +1072 -0
  66. data/app/assets/javascripts/extjs-rails/src/chart/series/Radar.js +440 -0
  67. data/app/assets/javascripts/extjs-rails/src/chart/series/Scatter.js +668 -0
  68. data/app/assets/javascripts/extjs-rails/src/chart/series/Series.js +443 -0
  69. data/app/assets/javascripts/extjs-rails/src/chart/theme/Base.js +175 -0
  70. data/app/assets/javascripts/extjs-rails/src/chart/theme/Theme.js +253 -0
  71. data/app/assets/javascripts/extjs-rails/src/container/AbstractContainer.js +1062 -0
  72. data/app/assets/javascripts/extjs-rails/src/container/ButtonGroup.js +143 -0
  73. data/app/assets/javascripts/extjs-rails/src/container/Container.js +212 -0
  74. data/app/assets/javascripts/extjs-rails/src/container/DockingContainer.js +265 -0
  75. data/app/assets/javascripts/extjs-rails/src/container/Viewport.js +184 -0
  76. data/app/assets/javascripts/extjs-rails/src/core/dom/Element.form.js +50 -0
  77. data/app/assets/javascripts/extjs-rails/src/core/dom/Element.static-more.js +159 -0
  78. data/app/assets/javascripts/extjs-rails/src/core/examples/index.html +321 -0
  79. data/app/assets/javascripts/extjs-rails/src/core/examples/index.js +6 -0
  80. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/CTO.js +25 -0
  81. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/CoolGuy.js +20 -0
  82. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/Developer.js +43 -0
  83. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/Gun.js +3 -0
  84. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/HumanResource.js +23 -0
  85. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/Musician.js +20 -0
  86. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/Person.js +50 -0
  87. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/ability/CanComposeSongs.js +9 -0
  88. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/ability/CanPlayGuitar.js +9 -0
  89. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/ability/CanSing.js +18 -0
  90. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/deadlock/A.js +3 -0
  91. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/deadlock/B.js +3 -0
  92. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/deadlock/C.js +3 -0
  93. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/deadlock/D.js +3 -0
  94. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/deadlock/E.js +3 -0
  95. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/notdeadlock/A.js +3 -0
  96. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/notdeadlock/B.js +4 -0
  97. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/notdeadlock/C.js +3 -0
  98. data/app/assets/javascripts/extjs-rails/src/core/src/EventManager.js +1167 -0
  99. data/app/assets/javascripts/extjs-rails/src/core/src/EventObject.js +883 -0
  100. data/app/assets/javascripts/extjs-rails/src/core/src/Ext-more.js +1283 -0
  101. data/app/assets/javascripts/extjs-rails/src/core/src/Ext.js +736 -0
  102. data/app/assets/javascripts/extjs-rails/src/core/src/Support.js +662 -0
  103. data/app/assets/javascripts/extjs-rails/src/core/src/class/Base.js +1085 -0
  104. data/app/assets/javascripts/extjs-rails/src/core/src/class/Class.js +676 -0
  105. data/app/assets/javascripts/extjs-rails/src/core/src/class/ClassManager.js +1591 -0
  106. data/app/assets/javascripts/extjs-rails/src/core/src/class/Loader.js +1423 -0
  107. data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.alignment.js +173 -0
  108. data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.insertion.js +193 -0
  109. data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.js +681 -0
  110. data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.position.js +356 -0
  111. data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.static.js +474 -0
  112. data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.style.js +851 -0
  113. data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.traversal.js +180 -0
  114. data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractHelper.js +291 -0
  115. data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractQuery.js +72 -0
  116. data/app/assets/javascripts/extjs-rails/src/core/src/dom/CompositeElement.js +75 -0
  117. data/app/assets/javascripts/extjs-rails/src/core/src/dom/CompositeElementLite.js +436 -0
  118. data/app/assets/javascripts/extjs-rails/src/core/src/dom/DomQuery-aria.js +1049 -0
  119. data/app/assets/javascripts/extjs-rails/src/core/src/env/Browser.js +186 -0
  120. data/app/assets/javascripts/extjs-rails/src/core/src/env/FeatureDetector.js +274 -0
  121. data/app/assets/javascripts/extjs-rails/src/core/src/env/OS.js +141 -0
  122. data/app/assets/javascripts/extjs-rails/src/core/src/lang/Array.js +1205 -0
  123. data/app/assets/javascripts/extjs-rails/src/core/src/lang/Date.js +1463 -0
  124. data/app/assets/javascripts/extjs-rails/src/core/src/lang/Error.js +326 -0
  125. data/app/assets/javascripts/extjs-rails/src/core/src/lang/Function.js +485 -0
  126. data/app/assets/javascripts/extjs-rails/src/core/src/lang/Number.js +175 -0
  127. data/app/assets/javascripts/extjs-rails/src/core/src/lang/Object.js +606 -0
  128. data/app/assets/javascripts/extjs-rails/src/core/src/lang/String.js +333 -0
  129. data/app/assets/javascripts/extjs-rails/src/core/src/misc/JSON.js +236 -0
  130. data/app/assets/javascripts/extjs-rails/src/core/src/perf/Accumulator.js +244 -0
  131. data/app/assets/javascripts/extjs-rails/src/core/src/perf/Monitor.js +197 -0
  132. data/app/assets/javascripts/extjs-rails/src/core/src/util/DelayedTask.js +71 -0
  133. data/app/assets/javascripts/extjs-rails/src/core/src/util/Event.js +215 -0
  134. data/app/assets/javascripts/extjs-rails/src/core/src/util/Format.js +551 -0
  135. data/app/assets/javascripts/extjs-rails/src/core/src/util/TaskManager.js +417 -0
  136. data/app/assets/javascripts/extjs-rails/src/core/src/version/Version.js +364 -0
  137. data/app/assets/javascripts/extjs-rails/src/core/test/unit/README.MD +91 -0
  138. data/app/assets/javascripts/extjs-rails/src/core/test/unit/bootstrap.js +39 -0
  139. data/app/assets/javascripts/extjs-rails/src/core/test/unit/build/build-data.js +34 -0
  140. data/app/assets/javascripts/extjs-rails/src/core/test/unit/build/build.sh +2 -0
  141. data/app/assets/javascripts/extjs-rails/src/core/test/unit/data.js +27 -0
  142. data/app/assets/javascripts/extjs-rails/src/core/test/unit/index.html +15 -0
  143. data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom.html +40 -0
  144. data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom/extjs-api.js +12 -0
  145. data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom/platform-api.js +134 -0
  146. data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom/sanity.js +4 -0
  147. data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom/touch-api-out.js +128 -0
  148. data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom/touch-api.js +89 -0
  149. data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/env/Environment.js +357 -0
  150. data/app/assets/javascripts/extjs-rails/src/core/test/unit/resources/APITest.js +37 -0
  151. data/app/assets/javascripts/extjs-rails/src/core/test/unit/resources/jsb3.js +14 -0
  152. data/app/assets/javascripts/extjs-rails/src/core/test/unit/resources/test-setup.js +137 -0
  153. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/EventManager.js +629 -0
  154. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/Ext-mess.backup +198 -0
  155. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/Ext-more.js +520 -0
  156. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/Ext.js +1550 -0
  157. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/Support.js +250 -0
  158. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/class/Base.js +47 -0
  159. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/class/Class.js +561 -0
  160. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/class/ClassManager.js +555 -0
  161. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/CompositeElementLite.js +409 -0
  162. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/DomHelper.js +444 -0
  163. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/Element.insertion.js +342 -0
  164. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/Element.js +731 -0
  165. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/Element.static.js +201 -0
  166. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/Element.style.js +118 -0
  167. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/Element.traversal.js +336 -0
  168. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Array.js +1229 -0
  169. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Date.js +697 -0
  170. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Error.js +277 -0
  171. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Function.js +536 -0
  172. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Number.js +323 -0
  173. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Object.js +591 -0
  174. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/String.js +451 -0
  175. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/misc/JSON.js +252 -0
  176. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/util/Format.js +521 -0
  177. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/version/Version.js +148 -0
  178. data/app/assets/javascripts/extjs-rails/src/core/test/unit/specs.html +19 -0
  179. data/app/assets/javascripts/extjs-rails/src/data/AbstractStore.js +887 -0
  180. data/app/assets/javascripts/extjs-rails/src/data/ArrayStore.js +74 -0
  181. data/app/assets/javascripts/extjs-rails/src/data/Batch.js +236 -0
  182. data/app/assets/javascripts/extjs-rails/src/data/BufferStore.js +13 -0
  183. data/app/assets/javascripts/extjs-rails/src/data/Connection.js +969 -0
  184. data/app/assets/javascripts/extjs-rails/src/data/DirectStore.js +50 -0
  185. data/app/assets/javascripts/extjs-rails/src/data/Errors.js +52 -0
  186. data/app/assets/javascripts/extjs-rails/src/data/Field.js +341 -0
  187. data/app/assets/javascripts/extjs-rails/src/data/IdGenerator.js +198 -0
  188. data/app/assets/javascripts/extjs-rails/src/data/JsonP.js +253 -0
  189. data/app/assets/javascripts/extjs-rails/src/data/JsonPStore.js +51 -0
  190. data/app/assets/javascripts/extjs-rails/src/data/JsonStore.js +60 -0
  191. data/app/assets/javascripts/extjs-rails/src/data/Model.js +1673 -0
  192. data/app/assets/javascripts/extjs-rails/src/data/NodeInterface.js +1294 -0
  193. data/app/assets/javascripts/extjs-rails/src/data/NodeStore.js +254 -0
  194. data/app/assets/javascripts/extjs-rails/src/data/Operation.js +331 -0
  195. data/app/assets/javascripts/extjs-rails/src/data/Request.js +40 -0
  196. data/app/assets/javascripts/extjs-rails/src/data/ResultSet.js +56 -0
  197. data/app/assets/javascripts/extjs-rails/src/data/SequentialIdGenerator.js +61 -0
  198. data/app/assets/javascripts/extjs-rails/src/data/SortTypes.js +125 -0
  199. data/app/assets/javascripts/extjs-rails/src/data/Store.js +2609 -0
  200. data/app/assets/javascripts/extjs-rails/src/data/StoreManager.js +156 -0
  201. data/app/assets/javascripts/extjs-rails/src/data/Tree.js +290 -0
  202. data/app/assets/javascripts/extjs-rails/src/data/TreeStore.js +655 -0
  203. data/app/assets/javascripts/extjs-rails/src/data/Types.js +190 -0
  204. data/app/assets/javascripts/extjs-rails/src/data/UuidGenerator.js +215 -0
  205. data/app/assets/javascripts/extjs-rails/src/data/XmlStore.js +76 -0
  206. data/app/assets/javascripts/extjs-rails/src/data/association/Association.js +243 -0
  207. data/app/assets/javascripts/extjs-rails/src/data/association/BelongsTo.js +291 -0
  208. data/app/assets/javascripts/extjs-rails/src/data/association/HasMany.js +289 -0
  209. data/app/assets/javascripts/extjs-rails/src/data/association/HasOne.js +304 -0
  210. data/app/assets/javascripts/extjs-rails/src/data/proxy/Ajax.js +282 -0
  211. data/app/assets/javascripts/extjs-rails/src/data/proxy/Client.js +21 -0
  212. data/app/assets/javascripts/extjs-rails/src/data/proxy/Direct.js +181 -0
  213. data/app/assets/javascripts/extjs-rails/src/data/proxy/JsonP.js +313 -0
  214. data/app/assets/javascripts/extjs-rails/src/data/proxy/LocalStorage.js +69 -0
  215. data/app/assets/javascripts/extjs-rails/src/data/proxy/Memory.js +156 -0
  216. data/app/assets/javascripts/extjs-rails/src/data/proxy/Proxy.js +433 -0
  217. data/app/assets/javascripts/extjs-rails/src/data/proxy/Rest.js +173 -0
  218. data/app/assets/javascripts/extjs-rails/src/data/proxy/Server.js +460 -0
  219. data/app/assets/javascripts/extjs-rails/src/data/proxy/SessionStorage.js +39 -0
  220. data/app/assets/javascripts/extjs-rails/src/data/proxy/WebStorage.js +546 -0
  221. data/app/assets/javascripts/extjs-rails/src/data/reader/Array.js +68 -0
  222. data/app/assets/javascripts/extjs-rails/src/data/reader/Json.js +383 -0
  223. data/app/assets/javascripts/extjs-rails/src/data/reader/Reader.js +735 -0
  224. data/app/assets/javascripts/extjs-rails/src/data/reader/Xml.js +292 -0
  225. data/app/assets/javascripts/extjs-rails/src/data/validations.js +149 -0
  226. data/app/assets/javascripts/extjs-rails/src/data/writer/Json.js +81 -0
  227. data/app/assets/javascripts/extjs-rails/src/data/writer/Writer.js +147 -0
  228. data/app/assets/javascripts/extjs-rails/src/data/writer/Xml.js +88 -0
  229. data/app/assets/javascripts/extjs-rails/src/dd/DD.js +300 -0
  230. data/app/assets/javascripts/extjs-rails/src/dd/DDProxy.js +204 -0
  231. data/app/assets/javascripts/extjs-rails/src/dd/DDTarget.js +171 -0
  232. data/app/assets/javascripts/extjs-rails/src/dd/DragDrop.js +1101 -0
  233. data/app/assets/javascripts/extjs-rails/src/dd/DragDropManager.js +1264 -0
  234. data/app/assets/javascripts/extjs-rails/src/dd/DragSource.js +392 -0
  235. data/app/assets/javascripts/extjs-rails/src/dd/DragTracker.js +562 -0
  236. data/app/assets/javascripts/extjs-rails/src/dd/DragZone.js +137 -0
  237. data/app/assets/javascripts/extjs-rails/src/dd/DropTarget.js +118 -0
  238. data/app/assets/javascripts/extjs-rails/src/dd/DropZone.js +254 -0
  239. data/app/assets/javascripts/extjs-rails/src/dd/Registry.js +117 -0
  240. data/app/assets/javascripts/extjs-rails/src/dd/ScrollManager.js +218 -0
  241. data/app/assets/javascripts/extjs-rails/src/dd/StatusProxy.js +179 -0
  242. data/app/assets/javascripts/extjs-rails/src/diag/layout/Context.js +523 -0
  243. data/app/assets/javascripts/extjs-rails/src/diag/layout/ContextItem.js +179 -0
  244. data/app/assets/javascripts/extjs-rails/src/direct/Event.js +35 -0
  245. data/app/assets/javascripts/extjs-rails/src/direct/ExceptionEvent.js +16 -0
  246. data/app/assets/javascripts/extjs-rails/src/direct/JsonProvider.js +82 -0
  247. data/app/assets/javascripts/extjs-rails/src/direct/Manager.js +263 -0
  248. data/app/assets/javascripts/extjs-rails/src/direct/PollingProvider.js +156 -0
  249. data/app/assets/javascripts/extjs-rails/src/direct/Provider.js +96 -0
  250. data/app/assets/javascripts/extjs-rails/src/direct/RemotingEvent.js +24 -0
  251. data/app/assets/javascripts/extjs-rails/src/direct/RemotingMethod.js +100 -0
  252. data/app/assets/javascripts/extjs-rails/src/direct/RemotingProvider.js +510 -0
  253. data/app/assets/javascripts/extjs-rails/src/direct/Transaction.js +41 -0
  254. data/app/assets/javascripts/extjs-rails/src/dom/Element.alignment.js +378 -0
  255. data/app/assets/javascripts/extjs-rails/src/dom/Element.anim.js +962 -0
  256. data/app/assets/javascripts/extjs-rails/src/dom/Element.dd.js +40 -0
  257. data/app/assets/javascripts/extjs-rails/src/dom/Element.fx.js +194 -0
  258. data/app/assets/javascripts/extjs-rails/src/dom/Element.js +1407 -0
  259. data/app/assets/javascripts/extjs-rails/src/dom/Element.position.js +501 -0
  260. data/app/assets/javascripts/extjs-rails/src/dom/Element.scroll.js +214 -0
  261. data/app/assets/javascripts/extjs-rails/src/dom/Element.style.js +792 -0
  262. data/app/assets/javascripts/extjs-rails/src/dom/Element.traversal.js +8 -0
  263. data/app/assets/javascripts/extjs-rails/src/dom/Helper.js +466 -0
  264. data/app/assets/javascripts/extjs-rails/src/dom/Query.js +1067 -0
  265. data/app/assets/javascripts/extjs-rails/src/draw/Color.js +303 -0
  266. data/app/assets/javascripts/extjs-rails/src/draw/Component.js +245 -0
  267. data/app/assets/javascripts/extjs-rails/src/draw/CompositeSprite.js +299 -0
  268. data/app/assets/javascripts/extjs-rails/src/draw/Draw.js +1217 -0
  269. data/app/assets/javascripts/extjs-rails/src/draw/Matrix.js +183 -0
  270. data/app/assets/javascripts/extjs-rails/src/draw/Sprite.js +554 -0
  271. data/app/assets/javascripts/extjs-rails/src/draw/SpriteDD.js +87 -0
  272. data/app/assets/javascripts/extjs-rails/src/draw/Surface.js +1001 -0
  273. data/app/assets/javascripts/extjs-rails/src/draw/Text.js +175 -0
  274. data/app/assets/javascripts/extjs-rails/src/draw/engine/ImageExporter.js +106 -0
  275. data/app/assets/javascripts/extjs-rails/src/draw/engine/Svg.js +734 -0
  276. data/app/assets/javascripts/extjs-rails/src/draw/engine/SvgExporter.js +280 -0
  277. data/app/assets/javascripts/extjs-rails/src/draw/engine/Vml.js +916 -0
  278. data/app/assets/javascripts/extjs-rails/src/flash/Component.js +248 -0
  279. data/app/assets/javascripts/extjs-rails/src/form/Basic.js +1018 -0
  280. data/app/assets/javascripts/extjs-rails/src/form/CheckboxGroup.js +441 -0
  281. data/app/assets/javascripts/extjs-rails/src/form/CheckboxManager.js +26 -0
  282. data/app/assets/javascripts/extjs-rails/src/form/FieldAncestor.js +210 -0
  283. data/app/assets/javascripts/extjs-rails/src/form/FieldContainer.js +290 -0
  284. data/app/assets/javascripts/extjs-rails/src/form/FieldSet.js +506 -0
  285. data/app/assets/javascripts/extjs-rails/src/form/Label.js +110 -0
  286. data/app/assets/javascripts/extjs-rails/src/form/Labelable.js +764 -0
  287. data/app/assets/javascripts/extjs-rails/src/form/Panel.js +335 -0
  288. data/app/assets/javascripts/extjs-rails/src/form/RadioGroup.js +124 -0
  289. data/app/assets/javascripts/extjs-rails/src/form/RadioManager.js +26 -0
  290. data/app/assets/javascripts/extjs-rails/src/form/action/Action.js +307 -0
  291. data/app/assets/javascripts/extjs-rails/src/form/action/DirectLoad.js +107 -0
  292. data/app/assets/javascripts/extjs-rails/src/form/action/DirectSubmit.js +119 -0
  293. data/app/assets/javascripts/extjs-rails/src/form/action/Load.js +120 -0
  294. data/app/assets/javascripts/extjs-rails/src/form/action/StandardSubmit.js +34 -0
  295. data/app/assets/javascripts/extjs-rails/src/form/action/Submit.js +257 -0
  296. data/app/assets/javascripts/extjs-rails/src/form/field/Base.js +813 -0
  297. data/app/assets/javascripts/extjs-rails/src/form/field/Checkbox.js +505 -0
  298. data/app/assets/javascripts/extjs-rails/src/form/field/ComboBox.js +1427 -0
  299. data/app/assets/javascripts/extjs-rails/src/form/field/Date.js +578 -0
  300. data/app/assets/javascripts/extjs-rails/src/form/field/Display.js +155 -0
  301. data/app/assets/javascripts/extjs-rails/src/form/field/Field.js +430 -0
  302. data/app/assets/javascripts/extjs-rails/src/form/field/File.js +265 -0
  303. data/app/assets/javascripts/extjs-rails/src/form/field/Hidden.js +75 -0
  304. data/app/assets/javascripts/extjs-rails/src/form/field/HtmlEditor.js +1439 -0
  305. data/app/assets/javascripts/extjs-rails/src/form/field/Number.js +380 -0
  306. data/app/assets/javascripts/extjs-rails/src/form/field/Picker.js +321 -0
  307. data/app/assets/javascripts/extjs-rails/src/form/field/Radio.js +279 -0
  308. data/app/assets/javascripts/extjs-rails/src/form/field/Spinner.js +321 -0
  309. data/app/assets/javascripts/extjs-rails/src/form/field/Text.js +727 -0
  310. data/app/assets/javascripts/extjs-rails/src/form/field/TextArea.js +228 -0
  311. data/app/assets/javascripts/extjs-rails/src/form/field/Time.js +459 -0
  312. data/app/assets/javascripts/extjs-rails/src/form/field/Trigger.js +469 -0
  313. data/app/assets/javascripts/extjs-rails/src/form/field/VTypes.js +172 -0
  314. data/app/assets/javascripts/extjs-rails/src/fx/Anim.js +472 -0
  315. data/app/assets/javascripts/extjs-rails/src/fx/Animator.js +410 -0
  316. data/app/assets/javascripts/extjs-rails/src/fx/CubicBezier.js +77 -0
  317. data/app/assets/javascripts/extjs-rails/src/fx/Easing.js +136 -0
  318. data/app/assets/javascripts/extjs-rails/src/fx/Manager.js +353 -0
  319. data/app/assets/javascripts/extjs-rails/src/fx/PropertyHandler.js +381 -0
  320. data/app/assets/javascripts/extjs-rails/src/fx/Queue.js +123 -0
  321. data/app/assets/javascripts/extjs-rails/src/fx/target/Component.js +118 -0
  322. data/app/assets/javascripts/extjs-rails/src/fx/target/CompositeElement.js +46 -0
  323. data/app/assets/javascripts/extjs-rails/src/fx/target/CompositeElementCSS.js +22 -0
  324. data/app/assets/javascripts/extjs-rails/src/fx/target/CompositeSprite.js +34 -0
  325. data/app/assets/javascripts/extjs-rails/src/fx/target/Element.js +83 -0
  326. data/app/assets/javascripts/extjs-rails/src/fx/target/ElementCSS.js +77 -0
  327. data/app/assets/javascripts/extjs-rails/src/fx/target/Sprite.js +128 -0
  328. data/app/assets/javascripts/extjs-rails/src/fx/target/Target.js +36 -0
  329. data/app/assets/javascripts/extjs-rails/src/grid/CellEditor.js +172 -0
  330. data/app/assets/javascripts/extjs-rails/src/grid/ColumnComponentLayout.js +34 -0
  331. data/app/assets/javascripts/extjs-rails/src/grid/ColumnLayout.js +201 -0
  332. data/app/assets/javascripts/extjs-rails/src/grid/Lockable.js +863 -0
  333. data/app/assets/javascripts/extjs-rails/src/grid/LockingView.js +169 -0
  334. data/app/assets/javascripts/extjs-rails/src/grid/PagingScroller.js +539 -0
  335. data/app/assets/javascripts/extjs-rails/src/grid/Panel.js +393 -0
  336. data/app/assets/javascripts/extjs-rails/src/grid/RowEditor.js +731 -0
  337. data/app/assets/javascripts/extjs-rails/src/grid/RowNumberer.js +76 -0
  338. data/app/assets/javascripts/extjs-rails/src/grid/Scroller.js +5 -0
  339. data/app/assets/javascripts/extjs-rails/src/grid/View.js +44 -0
  340. data/app/assets/javascripts/extjs-rails/src/grid/ViewDropZone.js +41 -0
  341. data/app/assets/javascripts/extjs-rails/src/grid/column/Action.js +318 -0
  342. data/app/assets/javascripts/extjs-rails/src/grid/column/Boolean.js +82 -0
  343. data/app/assets/javascripts/extjs-rails/src/grid/column/Column.js +835 -0
  344. data/app/assets/javascripts/extjs-rails/src/grid/column/Date.js +63 -0
  345. data/app/assets/javascripts/extjs-rails/src/grid/column/Number.js +52 -0
  346. data/app/assets/javascripts/extjs-rails/src/grid/column/Template.js +58 -0
  347. data/app/assets/javascripts/extjs-rails/src/grid/feature/AbstractSummary.js +154 -0
  348. data/app/assets/javascripts/extjs-rails/src/grid/feature/Chunking.js +77 -0
  349. data/app/assets/javascripts/extjs-rails/src/grid/feature/Feature.js +158 -0
  350. data/app/assets/javascripts/extjs-rails/src/grid/feature/Grouping.js +822 -0
  351. data/app/assets/javascripts/extjs-rails/src/grid/feature/GroupingSummary.js +243 -0
  352. data/app/assets/javascripts/extjs-rails/src/grid/feature/RowBody.js +116 -0
  353. data/app/assets/javascripts/extjs-rails/src/grid/feature/RowWrap.js +120 -0
  354. data/app/assets/javascripts/extjs-rails/src/grid/feature/Summary.js +167 -0
  355. data/app/assets/javascripts/extjs-rails/src/grid/header/Container.js +965 -0
  356. data/app/assets/javascripts/extjs-rails/src/grid/header/DragZone.js +69 -0
  357. data/app/assets/javascripts/extjs-rails/src/grid/header/DropZone.js +265 -0
  358. data/app/assets/javascripts/extjs-rails/src/grid/plugin/CellEditing.js +453 -0
  359. data/app/assets/javascripts/extjs-rails/src/grid/plugin/DragDrop.js +254 -0
  360. data/app/assets/javascripts/extjs-rails/src/grid/plugin/Editing.js +561 -0
  361. data/app/assets/javascripts/extjs-rails/src/grid/plugin/HeaderReorderer.js +49 -0
  362. data/app/assets/javascripts/extjs-rails/src/grid/plugin/HeaderResizer.js +292 -0
  363. data/app/assets/javascripts/extjs-rails/src/grid/plugin/RowEditing.js +339 -0
  364. data/app/assets/javascripts/extjs-rails/src/grid/property/Grid.js +351 -0
  365. data/app/assets/javascripts/extjs-rails/src/grid/property/HeaderContainer.js +109 -0
  366. data/app/assets/javascripts/extjs-rails/src/grid/property/Property.js +36 -0
  367. data/app/assets/javascripts/extjs-rails/src/grid/property/Store.js +141 -0
  368. data/app/assets/javascripts/extjs-rails/src/layout/ClassList.js +90 -0
  369. data/app/assets/javascripts/extjs-rails/src/layout/Context.js +1232 -0
  370. data/app/assets/javascripts/extjs-rails/src/layout/ContextItem.js +1470 -0
  371. data/app/assets/javascripts/extjs-rails/src/layout/Layout.js +761 -0
  372. data/app/assets/javascripts/extjs-rails/src/layout/component/Auto.js +220 -0
  373. data/app/assets/javascripts/extjs-rails/src/layout/component/Body.js +80 -0
  374. data/app/assets/javascripts/extjs-rails/src/layout/component/BoundList.js +95 -0
  375. data/app/assets/javascripts/extjs-rails/src/layout/component/Button.js +261 -0
  376. data/app/assets/javascripts/extjs-rails/src/layout/component/Component.js +427 -0
  377. data/app/assets/javascripts/extjs-rails/src/layout/component/Dock.js +1132 -0
  378. data/app/assets/javascripts/extjs-rails/src/layout/component/Draw.js +79 -0
  379. data/app/assets/javascripts/extjs-rails/src/layout/component/FieldSet.js +62 -0
  380. data/app/assets/javascripts/extjs-rails/src/layout/component/ProgressBar.js +54 -0
  381. data/app/assets/javascripts/extjs-rails/src/layout/component/Tab.js +23 -0
  382. data/app/assets/javascripts/extjs-rails/src/layout/component/field/ComboBox.js +52 -0
  383. data/app/assets/javascripts/extjs-rails/src/layout/component/field/Field.js +372 -0
  384. data/app/assets/javascripts/extjs-rails/src/layout/component/field/FieldContainer.js +48 -0
  385. data/app/assets/javascripts/extjs-rails/src/layout/component/field/HtmlEditor.js +54 -0
  386. data/app/assets/javascripts/extjs-rails/src/layout/component/field/Slider.js +58 -0
  387. data/app/assets/javascripts/extjs-rails/src/layout/component/field/Text.js +75 -0
  388. data/app/assets/javascripts/extjs-rails/src/layout/component/field/TextArea.js +51 -0
  389. data/app/assets/javascripts/extjs-rails/src/layout/component/field/Trigger.js +132 -0
  390. data/app/assets/javascripts/extjs-rails/src/layout/container/Absolute.js +121 -0
  391. data/app/assets/javascripts/extjs-rails/src/layout/container/Accordion.js +308 -0
  392. data/app/assets/javascripts/extjs-rails/src/layout/container/Anchor.js +403 -0
  393. data/app/assets/javascripts/extjs-rails/src/layout/container/Auto.js +70 -0
  394. data/app/assets/javascripts/extjs-rails/src/layout/container/Border-old-js +1079 -0
  395. data/app/assets/javascripts/extjs-rails/src/layout/container/Border.js +816 -0
  396. data/app/assets/javascripts/extjs-rails/src/layout/container/Box.js +929 -0
  397. data/app/assets/javascripts/extjs-rails/src/layout/container/Card.js +361 -0
  398. data/app/assets/javascripts/extjs-rails/src/layout/container/CheckboxGroup.js +376 -0
  399. data/app/assets/javascripts/extjs-rails/src/layout/container/Column.js +234 -0
  400. data/app/assets/javascripts/extjs-rails/src/layout/container/Container.js +961 -0
  401. data/app/assets/javascripts/extjs-rails/src/layout/container/Editor.js +74 -0
  402. data/app/assets/javascripts/extjs-rails/src/layout/container/Fit.js +287 -0
  403. data/app/assets/javascripts/extjs-rails/src/layout/container/Form.js +157 -0
  404. data/app/assets/javascripts/extjs-rails/src/layout/container/HBox.js +134 -0
  405. data/app/assets/javascripts/extjs-rails/src/layout/container/Table.js +412 -0
  406. data/app/assets/javascripts/extjs-rails/src/layout/container/VBox.js +139 -0
  407. data/app/assets/javascripts/extjs-rails/src/layout/container/boxOverflow/Menu.js +365 -0
  408. data/app/assets/javascripts/extjs-rails/src/layout/container/boxOverflow/None.js +83 -0
  409. data/app/assets/javascripts/extjs-rails/src/layout/container/boxOverflow/Scroller.js +475 -0
  410. data/app/assets/javascripts/extjs-rails/src/menu/CheckItem.js +169 -0
  411. data/app/assets/javascripts/extjs-rails/src/menu/ColorPicker.js +110 -0
  412. data/app/assets/javascripts/extjs-rails/src/menu/DatePicker.js +100 -0
  413. data/app/assets/javascripts/extjs-rails/src/menu/Item.js +553 -0
  414. data/app/assets/javascripts/extjs-rails/src/menu/KeyNav.js +134 -0
  415. data/app/assets/javascripts/extjs-rails/src/menu/Manager.js +219 -0
  416. data/app/assets/javascripts/extjs-rails/src/menu/Menu.js +579 -0
  417. data/app/assets/javascripts/extjs-rails/src/menu/Separator.js +126 -0
  418. data/app/assets/javascripts/extjs-rails/src/panel/AbstractPanel.js +323 -0
  419. data/app/assets/javascripts/extjs-rails/src/panel/DD.js +99 -0
  420. data/app/assets/javascripts/extjs-rails/src/panel/Header.js +518 -0
  421. data/app/assets/javascripts/extjs-rails/src/panel/Panel.js +2150 -0
  422. data/app/assets/javascripts/extjs-rails/src/panel/Proxy.js +131 -0
  423. data/app/assets/javascripts/extjs-rails/src/panel/Table.js +1018 -0
  424. data/app/assets/javascripts/extjs-rails/src/panel/Tool.js +304 -0
  425. data/app/assets/javascripts/extjs-rails/src/picker/Color.js +219 -0
  426. data/app/assets/javascripts/extjs-rails/src/picker/Date.js +1140 -0
  427. data/app/assets/javascripts/extjs-rails/src/picker/Month.js +490 -0
  428. data/app/assets/javascripts/extjs-rails/src/picker/Time.js +165 -0
  429. data/app/assets/javascripts/extjs-rails/src/resizer/BorderSplitter.js +22 -0
  430. data/app/assets/javascripts/extjs-rails/src/resizer/BorderSplitterTracker.js +210 -0
  431. data/app/assets/javascripts/extjs-rails/src/resizer/Handle.js +29 -0
  432. data/app/assets/javascripts/extjs-rails/src/resizer/ResizeTracker.js +346 -0
  433. data/app/assets/javascripts/extjs-rails/src/resizer/Resizer.js +477 -0
  434. data/app/assets/javascripts/extjs-rails/src/resizer/Splitter.js +242 -0
  435. data/app/assets/javascripts/extjs-rails/src/resizer/SplitterTracker.js +230 -0
  436. data/app/assets/javascripts/extjs-rails/src/selection/CellModel.js +395 -0
  437. data/app/assets/javascripts/extjs-rails/src/selection/CheckboxModel.js +234 -0
  438. data/app/assets/javascripts/extjs-rails/src/selection/DataViewModel.js +160 -0
  439. data/app/assets/javascripts/extjs-rails/src/selection/Model.js +646 -0
  440. data/app/assets/javascripts/extjs-rails/src/selection/RowModel.js +499 -0
  441. data/app/assets/javascripts/extjs-rails/src/selection/TreeModel.js +78 -0
  442. data/app/assets/javascripts/extjs-rails/src/slider/Multi.js +835 -0
  443. data/app/assets/javascripts/extjs-rails/src/slider/Single.js +56 -0
  444. data/app/assets/javascripts/extjs-rails/src/slider/Thumb.js +259 -0
  445. data/app/assets/javascripts/extjs-rails/src/slider/Tip.js +130 -0
  446. data/app/assets/javascripts/extjs-rails/src/state/CookieProvider.js +120 -0
  447. data/app/assets/javascripts/extjs-rails/src/state/LocalStorageProvider.js +72 -0
  448. data/app/assets/javascripts/extjs-rails/src/state/Manager.js +70 -0
  449. data/app/assets/javascripts/extjs-rails/src/state/Provider.js +182 -0
  450. data/app/assets/javascripts/extjs-rails/src/state/Stateful.js +364 -0
  451. data/app/assets/javascripts/extjs-rails/src/tab/Bar.js +258 -0
  452. data/app/assets/javascripts/extjs-rails/src/tab/Panel.js +654 -0
  453. data/app/assets/javascripts/extjs-rails/src/tab/Tab.js +358 -0
  454. data/app/assets/javascripts/extjs-rails/src/tail.js +10 -0
  455. data/app/assets/javascripts/extjs-rails/src/tip/QuickTip.js +335 -0
  456. data/app/assets/javascripts/extjs-rails/src/tip/QuickTipManager.js +239 -0
  457. data/app/assets/javascripts/extjs-rails/src/tip/Tip.js +160 -0
  458. data/app/assets/javascripts/extjs-rails/src/tip/ToolTip.js +691 -0
  459. data/app/assets/javascripts/extjs-rails/src/toolbar/Fill.js +28 -0
  460. data/app/assets/javascripts/extjs-rails/src/toolbar/Item.js +16 -0
  461. data/app/assets/javascripts/extjs-rails/src/toolbar/Paging.js +600 -0
  462. data/app/assets/javascripts/extjs-rails/src/toolbar/Separator.js +23 -0
  463. data/app/assets/javascripts/extjs-rails/src/toolbar/Spacer.js +33 -0
  464. data/app/assets/javascripts/extjs-rails/src/toolbar/TextItem.js +57 -0
  465. data/app/assets/javascripts/extjs-rails/src/toolbar/Toolbar-legacy.js +123 -0
  466. data/app/assets/javascripts/extjs-rails/src/toolbar/Toolbar.js +447 -0
  467. data/app/assets/javascripts/extjs-rails/src/tree/Column.js +90 -0
  468. data/app/assets/javascripts/extjs-rails/src/tree/Panel.js +505 -0
  469. data/app/assets/javascripts/extjs-rails/src/tree/View.js +658 -0
  470. data/app/assets/javascripts/extjs-rails/src/tree/ViewDragZone.js +49 -0
  471. data/app/assets/javascripts/extjs-rails/src/tree/ViewDropZone.js +287 -0
  472. data/app/assets/javascripts/extjs-rails/src/tree/plugin/TreeViewDragDrop.js +244 -0
  473. data/app/assets/javascripts/extjs-rails/src/util/AbstractMixedCollection.js +772 -0
  474. data/app/assets/javascripts/extjs-rails/src/util/Animate.js +426 -0
  475. data/app/assets/javascripts/extjs-rails/src/util/Bindable.js +102 -0
  476. data/app/assets/javascripts/extjs-rails/src/util/CSS.js +185 -0
  477. data/app/assets/javascripts/extjs-rails/src/util/ClickRepeater.js +238 -0
  478. data/app/assets/javascripts/extjs-rails/src/util/ComponentDragger.js +126 -0
  479. data/app/assets/javascripts/extjs-rails/src/util/Cookies.js +91 -0
  480. data/app/assets/javascripts/extjs-rails/src/util/ElementContainer.js +293 -0
  481. data/app/assets/javascripts/extjs-rails/src/util/Filter.js +159 -0
  482. data/app/assets/javascripts/extjs-rails/src/util/Floating.js +321 -0
  483. data/app/assets/javascripts/extjs-rails/src/util/Grouper.js +26 -0
  484. data/app/assets/javascripts/extjs-rails/src/util/HashMap.js +356 -0
  485. data/app/assets/javascripts/extjs-rails/src/util/History.js +285 -0
  486. data/app/assets/javascripts/extjs-rails/src/util/Inflector.js +297 -0
  487. data/app/assets/javascripts/extjs-rails/src/util/KeyMap.js +427 -0
  488. data/app/assets/javascripts/extjs-rails/src/util/KeyNav.js +239 -0
  489. data/app/assets/javascripts/extjs-rails/src/util/LruCache.js +257 -0
  490. data/app/assets/javascripts/extjs-rails/src/util/Memento.js +131 -0
  491. data/app/assets/javascripts/extjs-rails/src/util/MixedCollection.js +239 -0
  492. data/app/assets/javascripts/extjs-rails/src/util/Observable.js +1003 -0
  493. data/app/assets/javascripts/extjs-rails/src/util/Offset.js +60 -0
  494. data/app/assets/javascripts/extjs-rails/src/util/Point.js +93 -0
  495. data/app/assets/javascripts/extjs-rails/src/util/ProtoElement.js +205 -0
  496. data/app/assets/javascripts/extjs-rails/src/util/Queue.js +76 -0
  497. data/app/assets/javascripts/extjs-rails/src/util/Region.js +388 -0
  498. data/app/assets/javascripts/extjs-rails/src/util/Renderable.js +1079 -0
  499. data/app/assets/javascripts/extjs-rails/src/util/Sortable.js +248 -0
  500. data/app/assets/javascripts/extjs-rails/src/util/Sorter.js +179 -0
  501. data/app/assets/javascripts/extjs-rails/src/util/TextMetrics.js +148 -0
  502. data/app/assets/javascripts/extjs-rails/src/view/AbstractView.js +1103 -0
  503. data/app/assets/javascripts/extjs-rails/src/view/BoundList.js +207 -0
  504. data/app/assets/javascripts/extjs-rails/src/view/BoundListKeyNav.js +92 -0
  505. data/app/assets/javascripts/extjs-rails/src/view/DragZone.js +106 -0
  506. data/app/assets/javascripts/extjs-rails/src/view/DropZone.js +240 -0
  507. data/app/assets/javascripts/extjs-rails/src/view/Table.js +1229 -0
  508. data/app/assets/javascripts/extjs-rails/src/view/TableChunker.js +139 -0
  509. data/app/assets/javascripts/extjs-rails/src/view/View.js +636 -0
  510. data/app/assets/javascripts/extjs-rails/src/window/MessageBox.js +880 -0
  511. data/app/assets/javascripts/extjs-rails/src/window/Window-legacy.js +56 -0
  512. data/app/assets/javascripts/extjs-rails/src/window/Window.js +793 -0
  513. data/extjs-rails.gemspec +24 -0
  514. data/lib/extjs-rails.rb +7 -0
  515. data/lib/extjs-rails/engine.rb +7 -0
  516. data/lib/extjs-rails/version.rb +5 -0
  517. metadata +660 -0
@@ -0,0 +1,816 @@
1
+ /**
2
+ * This is a multi-pane, application-oriented UI layout style that supports multiple nested panels, automatic bars
3
+ * between regions and built-in {@link Ext.panel.Panel#collapsible expanding and collapsing} of regions.
4
+ *
5
+ * This class is intended to be extended or created via the `layout:'border'` {@link Ext.container.Container#layout}
6
+ * config, and should generally not need to be created directly via the new keyword.
7
+ *
8
+ * @example
9
+ * Ext.create('Ext.panel.Panel', {
10
+ * width: 500,
11
+ * height: 300,
12
+ * title: 'Border Layout',
13
+ * layout: 'border',
14
+ * items: [{
15
+ * title: 'South Region is resizable',
16
+ * region: 'south', // position for region
17
+ * xtype: 'panel',
18
+ * height: 100,
19
+ * split: true, // enable resizing
20
+ * margins: '0 5 5 5'
21
+ * },{
22
+ * // xtype: 'panel' implied by default
23
+ * title: 'West Region is collapsible',
24
+ * region:'west',
25
+ * xtype: 'panel',
26
+ * margins: '5 0 0 5',
27
+ * width: 200,
28
+ * collapsible: true, // make collapsible
29
+ * id: 'west-region-container',
30
+ * layout: 'fit'
31
+ * },{
32
+ * title: 'Center Region',
33
+ * region: 'center', // center region is required, no width/height specified
34
+ * xtype: 'panel',
35
+ * layout: 'fit',
36
+ * margins: '5 5 0 0'
37
+ * }],
38
+ * renderTo: Ext.getBody()
39
+ * });
40
+ *
41
+ * # Notes
42
+ *
43
+ * - When using the split option, the layout will automatically insert a {@link Ext.resizer.Splitter}
44
+ * into the appropriate place. This will modify the underlying
45
+ * {@link Ext.container.Container#property-items items} collection in the container.
46
+ *
47
+ * - Any Container using the Border layout **must** have a child item with `region:'center'`.
48
+ * The child item in the center region will always be resized to fill the remaining space
49
+ * not used by the other regions in the layout.
50
+ *
51
+ * - Any child items with a region of `west` or `east` may be configured with either an initial
52
+ * `width`, or a {@link Ext.layout.container.Box#flex} value, or an initial percentage width
53
+ * **string** (Which is simply divided by 100 and used as a flex value).
54
+ * The 'center' region has a flex value of `1`.
55
+ *
56
+ * - Any child items with a region of `north` or `south` may be configured with either an initial
57
+ * `height`, or a {@link Ext.layout.container.Box#flex} value, or an initial percentage height
58
+ * **string** (Which is simply divided by 100 and used as a flex value).
59
+ * The 'center' region has a flex value of `1`.
60
+ *
61
+ * - **There is no BorderLayout.Region class in ExtJS 4.0+**
62
+ */
63
+ Ext.define('Ext.layout.container.Border', {
64
+
65
+ alias: 'layout.border',
66
+
67
+ extend: 'Ext.layout.container.Container',
68
+
69
+ requires: ['Ext.resizer.BorderSplitter', 'Ext.Component', 'Ext.fx.Anim'],
70
+
71
+ alternateClassName: 'Ext.layout.BorderLayout',
72
+
73
+
74
+ targetCls: Ext.baseCSSPrefix + 'border-layout-ct',
75
+
76
+ itemCls: [Ext.baseCSSPrefix + 'border-item', Ext.baseCSSPrefix + 'box-item'],
77
+
78
+ type: 'border',
79
+
80
+ /**
81
+ * @cfg {Boolean} split
82
+ * This configuration option is to be applied to the **child `items`** managed by this layout.
83
+ * Each region with `split:true` will get a {@link Ext.resizer.BorderSplitter Splitter} that
84
+ * allows for manual resizing of the container. Except for the `center` region.
85
+ */
86
+
87
+ /**
88
+ * @cfg {Number/String/Object} padding
89
+ * Sets the padding to be applied to all child items managed by this layout.
90
+ *
91
+ * This property can be specified as a string containing space-separated, numeric
92
+ * padding values. The order of the sides associated with each value matches the way
93
+ * CSS processes padding values:
94
+ *
95
+ * - If there is only one value, it applies to all sides.
96
+ * - If there are two values, the top and bottom borders are set to the first value
97
+ * and the right and left are set to the second.
98
+ * - If there are three values, the top is set to the first value, the left and right
99
+ * are set to the second, and the bottom is set to the third.
100
+ * - If there are four values, they apply to the top, right, bottom, and left,
101
+ * respectively.
102
+ *
103
+ */
104
+ padding: undefined,
105
+
106
+ percentageRe: /(\d+)%/,
107
+
108
+ /**
109
+ * Reused meta-data objects that describe axis properties.
110
+ * @private
111
+ */
112
+ axisProps: {
113
+ horz: {
114
+ borderBegin: 'west',
115
+ borderEnd: 'east',
116
+ horizontal: true,
117
+ posProp: 'x',
118
+ sizeProp: 'width',
119
+ sizePropCap: 'Width'
120
+ },
121
+ vert: {
122
+ borderBegin: 'north',
123
+ borderEnd: 'south',
124
+ horizontal: false,
125
+ posProp: 'y',
126
+ sizeProp: 'height',
127
+ sizePropCap: 'Height'
128
+ }
129
+ },
130
+
131
+ // @private
132
+ centerRegion: null,
133
+
134
+ /**
135
+ * Maps from region name to collapseDirection for panel.
136
+ * @private
137
+ */
138
+ collapseDirections: {
139
+ north: 'top',
140
+ south: 'bottom',
141
+ east: 'right',
142
+ west: 'left'
143
+ },
144
+
145
+ manageMargins: true,
146
+
147
+ panelCollapseAnimate: true,
148
+
149
+ panelCollapseMode: 'placeholder',
150
+
151
+ /**
152
+ * @cfg {Object} regionWeights
153
+ * The default weights to assign to regions in the border layout. These values are
154
+ * used when a region does not contain a `weight` property. This object must have
155
+ * properties for all regions ("north", "south", "east" and "west").
156
+ *
157
+ * **IMPORTANT:** Since this is an object, changing its properties will impact ALL
158
+ * instances of Border layout. If this is not desired, provide a replacement object as
159
+ * a config option instead:
160
+ *
161
+ * layout: {
162
+ * type: 'border',
163
+ * regionWeights: {
164
+ * west: 20,
165
+ * north: 10,
166
+ * south: -10,
167
+ * east: -20
168
+ * }
169
+ * }
170
+ *
171
+ * The region with the highest weight is assigned space from the border before other
172
+ * regions. Regions of equal weight are assigned space based on their position in the
173
+ * owner's items list (first come, first served).
174
+ */
175
+ regionWeights: {
176
+ north: 20,
177
+ south: 10,
178
+ center: 0,
179
+ west: -10,
180
+ east: -20
181
+ },
182
+
183
+ //----------------------------------
184
+ // Layout processing
185
+
186
+ /**
187
+ * Creates the axis objects for the layout. These are only missing size information
188
+ * which is added during {@link #calculate}.
189
+ * @private
190
+ */
191
+ beginAxis: function (ownerContext, regions, name) {
192
+ var me = this,
193
+ props = me.axisProps[name],
194
+ isVert = !props.horizontal,
195
+ sizeProp = props.sizeProp,
196
+ totalFlex = 0,
197
+ childItems = ownerContext.childItems,
198
+ length = childItems.length,
199
+ center, i, childContext, centerFlex, comp, region, match, size, type, target, placeholder;
200
+
201
+ for (i = 0; i < length; ++i) {
202
+ childContext = childItems[i];
203
+ comp = childContext.target;
204
+
205
+ childContext.layoutPos = {};
206
+
207
+ if (comp.region) {
208
+ childContext.region = region = comp.region;
209
+
210
+ childContext.isCenter = comp.isCenter;
211
+ childContext.isHorz = comp.isHorz;
212
+ childContext.isVert = comp.isVert;
213
+
214
+ childContext.weight = comp.weight || me.regionWeights[region] || 0;
215
+ regions[comp.id] = childContext;
216
+
217
+ if (comp.isCenter) {
218
+ center = childContext;
219
+ centerFlex = comp.flex;
220
+ ownerContext.centerRegion = center;
221
+
222
+ continue;
223
+ }
224
+
225
+ if (isVert !== childContext.isVert) {
226
+ continue;
227
+ }
228
+
229
+ // process regions "isVert ? north||south : east||center||west"
230
+
231
+ childContext.reverseWeighting = (region == props.borderEnd);
232
+
233
+ size = comp[sizeProp];
234
+ type = typeof size;
235
+
236
+ if (!comp.collapsed) {
237
+ if (type == 'string' && (match = me.percentageRe.exec(size))) {
238
+ childContext.percentage = parseInt(match[1], 10);
239
+ } else if (comp.flex) {
240
+ totalFlex += childContext.flex = comp.flex;
241
+ }
242
+ }
243
+ }
244
+ }
245
+
246
+ // Special cases for a collapsed center region
247
+ if (center) {
248
+ target = center.target;
249
+
250
+ if (placeholder = target.placeholderFor) {
251
+ if (!centerFlex && isVert === placeholder.collapsedVertical()) {
252
+ // The center region is a placeholder, collapsed in this axis
253
+ centerFlex = 0;
254
+ center.collapseAxis = name;
255
+ }
256
+ } else if (target.collapsed && (isVert === target.collapsedVertical())) {
257
+ // The center region is a collapsed header, collapsed in this axis
258
+ centerFlex = 0;
259
+ center.collapseAxis = name;
260
+ }
261
+ }
262
+
263
+ if (centerFlex == null) {
264
+ // If we still don't have a center flex, default to 1
265
+ centerFlex = 1;
266
+ }
267
+
268
+ totalFlex += centerFlex;
269
+
270
+ return Ext.apply({
271
+ before : isVert ? 'top' : 'left',
272
+ totalFlex : totalFlex
273
+ }, props);
274
+ },
275
+
276
+ beginLayout: function (ownerContext) {
277
+ var me = this,
278
+ items = me.getLayoutItems(),
279
+ pad = me.padding,
280
+ type = typeof pad,
281
+ padOnContainer = false,
282
+ childContext, item, length, i, regions, collapseTarget;
283
+
284
+ // We sync the visibility state of splitters with their region:
285
+ if (pad) {
286
+ if (type == 'string' || type == 'number') {
287
+ pad = Ext.util.Format.parseBox(pad);
288
+ }
289
+ } else {
290
+ pad = ownerContext.getEl('getTargetEl').getPaddingInfo();
291
+ padOnContainer = true;
292
+ }
293
+ ownerContext.outerPad = pad;
294
+ ownerContext.padOnContainer = padOnContainer;
295
+
296
+ for (i = 0, length = items.length; i < length; ++i) {
297
+ item = items[i];
298
+ collapseTarget = me.getSplitterTarget(item);
299
+
300
+ if (collapseTarget && item.hidden !== collapseTarget.hidden) {
301
+ if (item.hidden) {
302
+ item.show();
303
+ } else {
304
+ item.hide();
305
+ }
306
+ }
307
+ }
308
+
309
+ // The above synchronized visibility of splitters with their regions, so we need
310
+ // to make this call after that so that childItems and visibleItems are correct:
311
+ //
312
+ me.callParent(arguments);
313
+
314
+ items = ownerContext.childItems;
315
+ length = items.length;
316
+ regions = {};
317
+
318
+ ownerContext.borderAxisHorz = me.beginAxis(ownerContext, regions, 'horz');
319
+ ownerContext.borderAxisVert = me.beginAxis(ownerContext, regions, 'vert');
320
+
321
+ // Now that weights are assigned to the region's contextItems, we assign those
322
+ // same weights to the contextItem for the splitters. We also cross link the
323
+ // contextItems for the collapseTarget and its splitter.
324
+ for (i = 0; i < length; ++i) {
325
+ childContext = items[i];
326
+ collapseTarget = me.getSplitterTarget(childContext.target);
327
+
328
+ if (collapseTarget) { // if (splitter)
329
+ childContext.collapseTarget = collapseTarget = regions[collapseTarget.id];
330
+ childContext.weight = collapseTarget.weight;
331
+ childContext.reverseWeighting = collapseTarget.reverseWeighting;
332
+ collapseTarget.splitter = childContext;
333
+ childContext.isHorz = collapseTarget.isHorz;
334
+ childContext.isVert = collapseTarget.isVert;
335
+ }
336
+ }
337
+
338
+ // Now we want to sort the childItems by their weight.
339
+ me.sortWeightedItems(items, 'reverseWeighting');
340
+ me.setupSplitterNeighbors(items);
341
+ },
342
+
343
+ calculate: function (ownerContext) {
344
+ var me = this,
345
+ containerSize = me.getContainerSize(ownerContext),
346
+ childItems = ownerContext.childItems,
347
+ length = childItems.length,
348
+ horz = ownerContext.borderAxisHorz,
349
+ vert = ownerContext.borderAxisVert,
350
+ pad = ownerContext.outerPad,
351
+ padOnContainer = ownerContext.padOnContainer,
352
+ i, childContext, childMargins, size, horzPercentTotal, vertPercentTotal;
353
+
354
+ horz.begin = pad.left;
355
+ vert.begin = pad.top;
356
+ // If the padding is already on the container we need to add it to the space
357
+ // If not on the container, it's "virtual" padding.
358
+ horzPercentTotal = horz.end = horz.flexSpace = containerSize.width + (padOnContainer ? pad.left : -pad.right);
359
+ vertPercentTotal = vert.end = vert.flexSpace = containerSize.height + (padOnContainer ? pad.top : -pad.bottom);
360
+
361
+ // Reduce flexSpace on each axis by the fixed/auto sized dimensions of items that
362
+ // aren't flexed along that axis.
363
+ for (i = 0; i < length; ++i) {
364
+ childContext = childItems[i];
365
+ childMargins = childContext.getMarginInfo();
366
+
367
+ // Margins are always fixed size and must be removed from the space used for percentages and flexes
368
+ if (childContext.isHorz || childContext.isCenter) {
369
+ horz.addUnflexed(childMargins.width);
370
+ horzPercentTotal -= childMargins.width;
371
+ }
372
+
373
+ if (childContext.isVert || childContext.isCenter) {
374
+ vert.addUnflexed(childMargins.height);
375
+ vertPercentTotal -= childMargins.height;
376
+ }
377
+
378
+ // Fixed size components must have their sizes removed from the space used for flex
379
+ if (!childContext.flex && !childContext.percentage) {
380
+ if (childContext.isHorz || (childContext.isCenter && childContext.collapseAxis === 'horz')) {
381
+ size = childContext.getProp('width');
382
+
383
+ horz.addUnflexed(size);
384
+
385
+ // splitters should not count towards percentages
386
+ if (childContext.collapseTarget) {
387
+ horzPercentTotal -= size;
388
+ }
389
+ } else if (childContext.isVert || (childContext.isCenter && childContext.collapseAxis === 'vert')) {
390
+ size = childContext.getProp('height');
391
+
392
+ vert.addUnflexed(size);
393
+
394
+ // splitters should not count towards percentages
395
+ if (childContext.collapseTarget) {
396
+ vertPercentTotal -= size;
397
+ }
398
+ }
399
+ // else ignore center since it is fully flexed
400
+ }
401
+ }
402
+
403
+ for (i = 0; i < length; ++i) {
404
+ childContext = childItems[i];
405
+ childMargins = childContext.getMarginInfo();
406
+
407
+ // Calculate the percentage sizes. After this calculation percentages are very similar to fixed sizes
408
+ if (childContext.percentage) {
409
+ if (childContext.isHorz) {
410
+ size = Math.ceil(horzPercentTotal * childContext.percentage / 100);
411
+ size = childContext.setWidth(size);
412
+ horz.addUnflexed(size);
413
+ } else if (childContext.isVert) {
414
+ size = Math.ceil(vertPercentTotal * childContext.percentage / 100);
415
+ size = childContext.setHeight(size);
416
+ vert.addUnflexed(size);
417
+ }
418
+ // center shouldn't have a percentage but if it does it should be ignored
419
+ }
420
+ }
421
+
422
+
423
+ // If we haven't gotten sizes for all unflexed dimensions on an axis, the flexSpace
424
+ // will be NaN so we won't be calculating flexed dimensions until that is resolved.
425
+
426
+ for (i = 0; i < length; ++i) {
427
+ childContext = childItems[i];
428
+
429
+ if (!childContext.isCenter) {
430
+ me.calculateChildAxis(childContext, horz);
431
+ me.calculateChildAxis(childContext, vert);
432
+ }
433
+ }
434
+
435
+ // Once all items are placed, the final size of the center can be determined. If we
436
+ // can determine both width and height, we are done. We use '+' instead of '&&' to
437
+ // avoid short-circuiting (we want to call both):
438
+ if (me.finishAxis(ownerContext, vert) + me.finishAxis(ownerContext, horz) < 2) {
439
+ me.done = false;
440
+ } else {
441
+ // Size information is published as we place regions but position is hard to do
442
+ // that way (while avoiding published multiple times) so we publish all the
443
+ // positions at the end.
444
+ me.finishPositions(childItems);
445
+ }
446
+ },
447
+
448
+ /**
449
+ * Performs the calculations for a region on a specified axis.
450
+ * @private
451
+ */
452
+ calculateChildAxis: function (childContext, axis) {
453
+ var collapseTarget = childContext.collapseTarget,
454
+ setSizeMethod = 'set' + axis.sizePropCap,
455
+ sizeProp = axis.sizeProp,
456
+ childMarginSize = childContext.getMarginInfo()[sizeProp],
457
+ region, isBegin, flex, pos, size;
458
+
459
+ if (collapseTarget) { // if (splitter)
460
+ region = collapseTarget.region;
461
+ } else {
462
+ region = childContext.region;
463
+ flex = childContext.flex;
464
+ }
465
+
466
+ isBegin = region == axis.borderBegin;
467
+
468
+ if (!isBegin && region != axis.borderEnd) {
469
+ // a north/south region on the horizontal axis or an east/west region on the
470
+ // vertical axis: stretch to fill remaining space:
471
+ childContext[setSizeMethod](axis.end - axis.begin - childMarginSize);
472
+ pos = axis.begin;
473
+ } else {
474
+ if (flex) {
475
+ size = Math.ceil(axis.flexSpace * (flex / axis.totalFlex));
476
+ size = childContext[setSizeMethod](size);
477
+ } else if (childContext.percentage) {
478
+ // Like getProp but without registering a dependency - we calculated the size, we don't depend on it
479
+ size = childContext.peek(sizeProp);
480
+ } else {
481
+ size = childContext.getProp(sizeProp);
482
+ }
483
+
484
+ size += childMarginSize;
485
+
486
+ if (isBegin) {
487
+ pos = axis.begin;
488
+ axis.begin += size;
489
+ } else {
490
+ axis.end = pos = axis.end - size;
491
+ }
492
+ }
493
+
494
+ childContext.layoutPos[axis.posProp] = pos;
495
+ },
496
+
497
+ /**
498
+ * Finishes the calculations on an axis. This basically just assigns the remaining
499
+ * space to the center region.
500
+ * @private
501
+ */
502
+ finishAxis: function (ownerContext, axis) {
503
+ var size = axis.end - axis.begin,
504
+ center = ownerContext.centerRegion;
505
+
506
+ if (center) {
507
+ center['set' + axis.sizePropCap](size - center.getMarginInfo()[axis.sizeProp]);
508
+ center.layoutPos[axis.posProp] = axis.begin;
509
+ }
510
+
511
+ return Ext.isNumber(size) ? 1 : 0;
512
+ },
513
+
514
+ /**
515
+ * Finishes by setting the positions on the child items.
516
+ * @private
517
+ */
518
+ finishPositions: function (childItems) {
519
+ var length = childItems.length,
520
+ index, childContext;
521
+
522
+ for (index = 0; index < length; ++index) {
523
+ childContext = childItems[index];
524
+
525
+ childContext.setProp('x', childContext.layoutPos.x + childContext.marginInfo.left);
526
+ childContext.setProp('y', childContext.layoutPos.y + childContext.marginInfo.top);
527
+ }
528
+ },
529
+
530
+ getPlaceholder: function (comp) {
531
+ return comp.getPlaceholder && comp.getPlaceholder();
532
+ },
533
+
534
+ getSplitterTarget: function (splitter) {
535
+ var collapseTarget = splitter.collapseTarget;
536
+
537
+ if (collapseTarget && collapseTarget.collapsed) {
538
+ return collapseTarget.placeholder || collapseTarget;
539
+ }
540
+
541
+ return collapseTarget;
542
+ },
543
+
544
+ isItemBoxParent: function (itemContext) {
545
+ return true;
546
+ },
547
+
548
+ isItemShrinkWrap: function (item) {
549
+ return true;
550
+ },
551
+
552
+ //----------------------------------
553
+ // Event handlers
554
+
555
+ /**
556
+ * Inserts the splitter for a given region. A reference to the splitter is also stored
557
+ * on the component as "splitter".
558
+ * @private
559
+ */
560
+ insertSplitter: function (item, index) {
561
+ var region = item.region,
562
+ splitter = {
563
+ xtype: 'bordersplitter',
564
+ collapseTarget: item,
565
+ id: item.id + '-splitter',
566
+ hidden: !!item.hidden
567
+ },
568
+ at = index + ((region == 'south' || region == 'east') ? 0 : 1);
569
+
570
+ // remove the default fixed width or height depending on orientation:
571
+ if (item.isHorz) {
572
+ splitter.height = null;
573
+ } else {
574
+ splitter.width = null;
575
+ }
576
+
577
+ if (item.collapseMode == 'mini') {
578
+ splitter.collapsedCls = item.collapsedCls;
579
+ }
580
+
581
+ item.splitter = this.owner.add(at, splitter);
582
+ },
583
+
584
+ /**
585
+ * Called when a region (actually when any component) is added to the container. The
586
+ * region is decorated with some helpful properties (isCenter, isHorz, isVert) and its
587
+ * splitter is added if its "split" property is true.
588
+ * @private
589
+ */
590
+ onAdd: function (item, index) {
591
+ var me = this,
592
+ placeholderFor = item.placeholderFor,
593
+ region = item.region;
594
+
595
+ me.callParent(arguments);
596
+
597
+ if (region) {
598
+ Ext.apply(item, me.regionFlags[region]);
599
+
600
+ if (region == 'center') {
601
+ //<debug>
602
+ if (me.centerRegion) {
603
+ Ext.Error.raise("Cannot have multiple center regions in a BorderLayout.");
604
+ }
605
+ //</debug>
606
+ me.centerRegion = item;
607
+ } else {
608
+ item.collapseDirection = this.collapseDirections[region];
609
+
610
+ if (item.split && (item.isHorz || item.isVert)) {
611
+ me.insertSplitter(item, index);
612
+ }
613
+ }
614
+
615
+ if (!item.hasOwnProperty('collapseMode')) {
616
+ item.collapseMode = me.panelCollapseMode;
617
+ }
618
+
619
+ if (!item.hasOwnProperty('animCollapse')) {
620
+ if (item.collapseMode != 'placeholder') {
621
+ // other collapse modes do not animate nicely in a border layout, so
622
+ // default them to off:
623
+ item.animCollapse = false;
624
+ } else {
625
+ item.animCollapse = me.panelCollapseAnimate;
626
+ }
627
+ }
628
+ } else if (placeholderFor) {
629
+ Ext.apply(item, me.regionFlags[placeholderFor.region]);
630
+ item.region = placeholderFor.region;
631
+ item.weight = placeholderFor.weight;
632
+ }
633
+ },
634
+
635
+ onDestroy: function() {
636
+ this.centerRegion = null;
637
+ this.callParent();
638
+ },
639
+
640
+ onRemove: function (item) {
641
+ var me = this,
642
+ region = item.region,
643
+ splitter = item.splitter;
644
+
645
+ if (region) {
646
+ if (item.isCenter) {
647
+ me.centerRegion = null;
648
+ }
649
+
650
+ delete item.isCenter;
651
+ delete item.isHorz;
652
+ delete item.isVert;
653
+
654
+ if (splitter) {
655
+ me.owner.doRemove(splitter, true); // avoid another layout
656
+ delete item.splitter;
657
+ }
658
+ }
659
+
660
+ me.callParent(arguments);
661
+ },
662
+
663
+ //----------------------------------
664
+ // Misc
665
+
666
+ regionFlags: {
667
+ center: { isCenter: true, isHorz: false, isVert: false },
668
+
669
+ north: { isCenter: false, isHorz: false, isVert: true },
670
+ south: { isCenter: false, isHorz: false, isVert: true },
671
+
672
+ west: { isCenter: false, isHorz: true, isVert: false },
673
+ east: { isCenter: false, isHorz: true, isVert: false }
674
+ },
675
+
676
+ setupSplitterNeighbors: function (items) {
677
+ var edgeRegions = {
678
+ //north: null,
679
+ //south: null,
680
+ //east: null,
681
+ //west: null
682
+ },
683
+ length = items.length,
684
+ touchedRegions = this.touchedRegions,
685
+ i, j, center, count, edge, comp, region, splitter, touched;
686
+
687
+ for (i = 0; i < length; ++i) {
688
+ comp = items[i].target;
689
+ region = comp.region;
690
+
691
+ if (comp.isCenter) {
692
+ center = comp;
693
+ } else if (region) {
694
+ touched = touchedRegions[region];
695
+
696
+ for (j = 0, count = touched.length; j < count; ++j) {
697
+ edge = edgeRegions[touched[j]];
698
+ if (edge) {
699
+ edge.neighbors.push(comp);
700
+ }
701
+ }
702
+
703
+ if (comp.placeholderFor) {
704
+ // placeholder, so grab the splitter for the actual panel
705
+ splitter = comp.placeholderFor.splitter;
706
+ } else {
707
+ splitter = comp.splitter;
708
+ }
709
+ if (splitter) {
710
+ splitter.neighbors = [];
711
+ }
712
+
713
+ edgeRegions[region] = splitter;
714
+ }
715
+ }
716
+
717
+ if (center) {
718
+ touched = touchedRegions.center;
719
+
720
+ for (j = 0, count = touched.length; j < count; ++j) {
721
+ edge = edgeRegions[touched[j]];
722
+ if (edge) {
723
+ edge.neighbors.push(center);
724
+ }
725
+ }
726
+ }
727
+ },
728
+
729
+ /**
730
+ * Lists the regions that would consider an interior region a neighbor. For example,
731
+ * a north region would consider an east or west region its neighbords (as well as
732
+ * an inner north region).
733
+ * @private
734
+ */
735
+ touchedRegions: {
736
+ center: [ 'north', 'south', 'east', 'west' ],
737
+
738
+ north: [ 'north', 'east', 'west' ],
739
+ south: [ 'south', 'east', 'west' ],
740
+ east: [ 'east', 'north', 'south' ],
741
+ west: [ 'west', 'north', 'south' ]
742
+ },
743
+
744
+ sizePolicies: {
745
+ vert: {
746
+ setsWidth: 1,
747
+ setsHeight: 0
748
+ },
749
+ horz: {
750
+ setsWidth: 0,
751
+ setsHeight: 1
752
+ },
753
+ flexAll: {
754
+ setsWidth: 1,
755
+ setsHeight: 1
756
+ }
757
+ },
758
+
759
+ getItemSizePolicy: function (item) {
760
+ var me = this,
761
+ policies = this.sizePolicies,
762
+ collapseTarget, size, policy, placeholderFor;
763
+
764
+ if (item.isCenter) {
765
+ placeholderFor = item.placeholderFor;
766
+
767
+ if (placeholderFor) {
768
+ if (placeholderFor.collapsedVertical()) {
769
+ return policies.vert;
770
+ }
771
+ return policies.horz;
772
+ }
773
+ if (item.collapsed) {
774
+ if (item.collapsedVertical()) {
775
+ return policies.vert;
776
+ }
777
+ return policies.horz;
778
+ }
779
+ return policies.flexAll;
780
+ }
781
+
782
+ collapseTarget = item.collapseTarget;
783
+
784
+ if (collapseTarget) {
785
+ return collapseTarget.isVert ? policies.vert : policies.horz;
786
+ }
787
+
788
+ if (item.region) {
789
+ if (item.isVert) {
790
+ size = item.height;
791
+ policy = policies.vert;
792
+ } else {
793
+ size = item.width;
794
+ policy = policies.horz;
795
+ }
796
+
797
+ if (item.flex || (typeof size == 'string' && me.percentageRe.test(size))) {
798
+ return policies.flexAll;
799
+ }
800
+
801
+ return policy;
802
+ }
803
+
804
+ return me.autoSizePolicy;
805
+ }
806
+ }, function () {
807
+ var methods = {
808
+ addUnflexed: function (px) {
809
+ this.flexSpace = Math.max(this.flexSpace - px, 0);
810
+ }
811
+ },
812
+ props = this.prototype.axisProps;
813
+
814
+ Ext.apply(props.horz, methods);
815
+ Ext.apply(props.vert, methods);
816
+ });