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,169 @@
1
+ /**
2
+ * A menu item that contains a togglable checkbox by default, but that can also be a part of a radio group.
3
+ *
4
+ * @example
5
+ * Ext.create('Ext.menu.Menu', {
6
+ * width: 100,
7
+ * height: 110,
8
+ * floating: false, // usually you want this set to True (default)
9
+ * renderTo: Ext.getBody(), // usually rendered by it's containing component
10
+ * items: [{
11
+ * xtype: 'menucheckitem',
12
+ * text: 'select all'
13
+ * },{
14
+ * xtype: 'menucheckitem',
15
+ * text: 'select specific'
16
+ * },{
17
+ * iconCls: 'add16',
18
+ * text: 'icon item'
19
+ * },{
20
+ * text: 'regular item'
21
+ * }]
22
+ * });
23
+ */
24
+ Ext.define('Ext.menu.CheckItem', {
25
+ extend: 'Ext.menu.Item',
26
+ alias: 'widget.menucheckitem',
27
+
28
+ /**
29
+ * @cfg {Boolean} [checked=false]
30
+ * True to render the menuitem initially checked.
31
+ */
32
+
33
+ /**
34
+ * @cfg {String} checkedCls
35
+ * The CSS class used by {@link #cls} to show the checked state.
36
+ * Defaults to `Ext.baseCSSPrefix + 'menu-item-checked'`.
37
+ */
38
+ checkedCls: Ext.baseCSSPrefix + 'menu-item-checked',
39
+ /**
40
+ * @cfg {String} uncheckedCls
41
+ * The CSS class used by {@link #cls} to show the unchecked state.
42
+ * Defaults to `Ext.baseCSSPrefix + 'menu-item-unchecked'`.
43
+ */
44
+ uncheckedCls: Ext.baseCSSPrefix + 'menu-item-unchecked',
45
+ /**
46
+ * @cfg {String} groupCls
47
+ * The CSS class applied to this item's icon image to denote being a part of a radio group.
48
+ * Defaults to `Ext.baseCSSClass + 'menu-group-icon'`.
49
+ * Any specified {@link #iconCls} overrides this.
50
+ */
51
+ groupCls: Ext.baseCSSPrefix + 'menu-group-icon',
52
+
53
+ /**
54
+ * @cfg {Boolean} [hideOnClick=false]
55
+ * Whether to not to hide the owning menu when this item is clicked.
56
+ * Defaults to `false` for checkbox items, and to `true` for radio group items.
57
+ */
58
+ hideOnClick: false,
59
+
60
+ /**
61
+ * @cfg {Boolean} [checkChangeDisabled=false]
62
+ * True to prevent the checked item from being toggled. Any submenu will still be accessible.
63
+ */
64
+ checkChangeDisabled: false,
65
+
66
+ afterRender: function() {
67
+ var me = this;
68
+ me.callParent();
69
+ me.checked = !me.checked;
70
+ me.setChecked(!me.checked, true);
71
+ if (me.checkChangeDisabled) {
72
+ me.disableCheckChange();
73
+ }
74
+ },
75
+
76
+ initComponent: function() {
77
+ var me = this;
78
+ me.addEvents(
79
+ /**
80
+ * @event beforecheckchange
81
+ * Fires before a change event. Return false to cancel.
82
+ * @param {Ext.menu.CheckItem} this
83
+ * @param {Boolean} checked
84
+ */
85
+ 'beforecheckchange',
86
+
87
+ /**
88
+ * @event checkchange
89
+ * Fires after a change event.
90
+ * @param {Ext.menu.CheckItem} this
91
+ * @param {Boolean} checked
92
+ */
93
+ 'checkchange'
94
+ );
95
+
96
+ me.callParent(arguments);
97
+
98
+ Ext.menu.Manager.registerCheckable(me);
99
+
100
+ if (me.group) {
101
+ if (!me.iconCls) {
102
+ me.iconCls = me.groupCls;
103
+ }
104
+ if (me.initialConfig.hideOnClick !== false) {
105
+ me.hideOnClick = true;
106
+ }
107
+ }
108
+ },
109
+
110
+ /**
111
+ * Disables just the checkbox functionality of this menu Item. If this menu item has a submenu, that submenu
112
+ * will still be accessible
113
+ */
114
+ disableCheckChange: function() {
115
+ var me = this,
116
+ iconEl = me.iconEl;
117
+
118
+ if (iconEl) {
119
+ iconEl.addCls(me.disabledCls);
120
+ }
121
+ me.checkChangeDisabled = true;
122
+ },
123
+
124
+ /**
125
+ * Reenables the checkbox functionality of this menu item after having been disabled by {@link #disableCheckChange}
126
+ */
127
+ enableCheckChange: function() {
128
+ var me = this,
129
+ iconEl = me.iconEl;
130
+
131
+ if (iconEl) {
132
+ iconEl.removeCls(me.disabledCls);
133
+ }
134
+ me.checkChangeDisabled = false;
135
+ },
136
+
137
+ onClick: function(e) {
138
+ var me = this;
139
+ if(!me.disabled && !me.checkChangeDisabled && !(me.checked && me.group)) {
140
+ me.setChecked(!me.checked);
141
+ }
142
+ this.callParent([e]);
143
+ },
144
+
145
+ onDestroy: function() {
146
+ Ext.menu.Manager.unregisterCheckable(this);
147
+ this.callParent(arguments);
148
+ },
149
+
150
+ /**
151
+ * Sets the checked state of the item
152
+ * @param {Boolean} checked True to check, false to uncheck
153
+ * @param {Boolean} [suppressEvents=false] True to prevent firing the checkchange events.
154
+ */
155
+ setChecked: function(checked, suppressEvents) {
156
+ var me = this;
157
+ if (me.checked !== checked && (suppressEvents || me.fireEvent('beforecheckchange', me, checked) !== false)) {
158
+ if (me.el) {
159
+ me.el[checked ? 'addCls' : 'removeCls'](me.checkedCls)[!checked ? 'addCls' : 'removeCls'](me.uncheckedCls);
160
+ }
161
+ me.checked = checked;
162
+ Ext.menu.Manager.onCheckChange(me, checked);
163
+ if (!suppressEvents) {
164
+ Ext.callback(me.checkHandler, me.scope, [me, checked]);
165
+ me.fireEvent('checkchange', me, checked);
166
+ }
167
+ }
168
+ }
169
+ });
@@ -0,0 +1,110 @@
1
+ /**
2
+ * A menu containing a Ext.picker.Color Component.
3
+ *
4
+ * Notes:
5
+ *
6
+ * - Although not listed here, the **constructor** for this class accepts all of the
7
+ * configuration options of {@link Ext.picker.Color}.
8
+ * - If subclassing ColorMenu, any configuration options for the ColorPicker must be
9
+ * applied to the **initialConfig** property of the ColorMenu. Applying
10
+ * {@link Ext.picker.Color ColorPicker} configuration settings to `this` will **not**
11
+ * affect the ColorPicker's configuration.
12
+ *
13
+ * Example:
14
+ *
15
+ * @example
16
+ * var colorPicker = Ext.create('Ext.menu.ColorPicker', {
17
+ * value: '000000'
18
+ * });
19
+ *
20
+ * Ext.create('Ext.menu.Menu', {
21
+ * width: 100,
22
+ * height: 90,
23
+ * floating: false, // usually you want this set to True (default)
24
+ * renderTo: Ext.getBody(), // usually rendered by it's containing component
25
+ * items: [{
26
+ * text: 'choose a color',
27
+ * menu: colorPicker
28
+ * },{
29
+ * iconCls: 'add16',
30
+ * text: 'icon item'
31
+ * },{
32
+ * text: 'regular item'
33
+ * }]
34
+ * });
35
+ */
36
+ Ext.define('Ext.menu.ColorPicker', {
37
+ extend: 'Ext.menu.Menu',
38
+
39
+ alias: 'widget.colormenu',
40
+
41
+ requires: [
42
+ 'Ext.picker.Color'
43
+ ],
44
+
45
+ /**
46
+ * @cfg {Boolean} hideOnClick
47
+ * False to continue showing the menu after a date is selected.
48
+ */
49
+ hideOnClick : true,
50
+
51
+ /**
52
+ * @cfg {String} pickerId
53
+ * An id to assign to the underlying color picker.
54
+ */
55
+ pickerId : null,
56
+
57
+ /**
58
+ * @cfg {Number} maxHeight
59
+ * @private
60
+ */
61
+
62
+ /**
63
+ * @property {Ext.picker.Color} picker
64
+ * The {@link Ext.picker.Color} instance for this ColorMenu
65
+ */
66
+
67
+ /**
68
+ * @event click
69
+ * @private
70
+ */
71
+
72
+ initComponent : function(){
73
+ var me = this,
74
+ cfg = Ext.apply({}, me.initialConfig);
75
+
76
+ // Ensure we don't get duplicate listeners
77
+ delete cfg.listeners;
78
+ Ext.apply(me, {
79
+ plain: true,
80
+ showSeparator: false,
81
+ items: Ext.applyIf({
82
+ cls: Ext.baseCSSPrefix + 'menu-color-item',
83
+ id: me.pickerId,
84
+ xtype: 'colorpicker'
85
+ }, cfg)
86
+ });
87
+
88
+ me.callParent(arguments);
89
+
90
+ me.picker = me.down('colorpicker');
91
+
92
+ /**
93
+ * @event select
94
+ * @inheritdoc Ext.picker.Color#select
95
+ */
96
+ me.relayEvents(me.picker, ['select']);
97
+
98
+ if (me.hideOnClick) {
99
+ me.on('select', me.hidePickerOnSelect, me);
100
+ }
101
+ },
102
+
103
+ /**
104
+ * Hides picker on select if hideOnClick is true
105
+ * @private
106
+ */
107
+ hidePickerOnSelect: function() {
108
+ Ext.menu.Manager.hideAll();
109
+ }
110
+ });
@@ -0,0 +1,100 @@
1
+ /**
2
+ * A menu containing an Ext.picker.Date Component.
3
+ *
4
+ * Notes:
5
+ *
6
+ * - Although not listed here, the **constructor** for this class accepts all of the
7
+ * configuration options of **{@link Ext.picker.Date}**.
8
+ * - If subclassing DateMenu, any configuration options for the DatePicker must be applied
9
+ * to the **initialConfig** property of the DateMenu. Applying {@link Ext.picker.Date Date Picker}
10
+ * configuration settings to **this** will **not** affect the Date Picker's configuration.
11
+ *
12
+ * Example:
13
+ *
14
+ * @example
15
+ * var dateMenu = Ext.create('Ext.menu.DatePicker', {
16
+ * handler: function(dp, date){
17
+ * Ext.Msg.alert('Date Selected', 'You selected ' + Ext.Date.format(date, 'M j, Y'));
18
+ * }
19
+ * });
20
+ *
21
+ * Ext.create('Ext.menu.Menu', {
22
+ * width: 100,
23
+ * height: 90,
24
+ * floating: false, // usually you want this set to True (default)
25
+ * renderTo: Ext.getBody(), // usually rendered by it's containing component
26
+ * items: [{
27
+ * text: 'choose a date',
28
+ * menu: dateMenu
29
+ * },{
30
+ * iconCls: 'add16',
31
+ * text: 'icon item'
32
+ * },{
33
+ * text: 'regular item'
34
+ * }]
35
+ * });
36
+ */
37
+ Ext.define('Ext.menu.DatePicker', {
38
+ extend: 'Ext.menu.Menu',
39
+
40
+ alias: 'widget.datemenu',
41
+
42
+ requires: [
43
+ 'Ext.picker.Date'
44
+ ],
45
+
46
+ /**
47
+ * @cfg {Boolean} hideOnClick
48
+ * False to continue showing the menu after a date is selected.
49
+ */
50
+ hideOnClick : true,
51
+
52
+ /**
53
+ * @cfg {String} pickerId
54
+ * An id to assign to the underlying date picker.
55
+ */
56
+ pickerId : null,
57
+
58
+ /**
59
+ * @cfg {Number} maxHeight
60
+ * @private
61
+ */
62
+
63
+ /**
64
+ * @property {Ext.picker.Date} picker
65
+ * The {@link Ext.picker.Date} instance for this DateMenu
66
+ */
67
+
68
+ initComponent : function(){
69
+ var me = this;
70
+
71
+ Ext.apply(me, {
72
+ showSeparator: false,
73
+ plain: true,
74
+ border: false,
75
+ bodyPadding: 0, // remove the body padding from the datepicker menu item so it looks like 3.3
76
+ items: Ext.applyIf({
77
+ cls: Ext.baseCSSPrefix + 'menu-date-item',
78
+ id: me.pickerId,
79
+ xtype: 'datepicker'
80
+ }, me.initialConfig)
81
+ });
82
+
83
+ me.callParent(arguments);
84
+
85
+ me.picker = me.down('datepicker');
86
+ /**
87
+ * @event select
88
+ * @inheritdoc Ext.picker.Date#select
89
+ */
90
+ me.relayEvents(me.picker, ['select']);
91
+
92
+ if (me.hideOnClick) {
93
+ me.on('select', me.hidePickerOnSelect, me);
94
+ }
95
+ },
96
+
97
+ hidePickerOnSelect: function() {
98
+ Ext.menu.Manager.hideAll();
99
+ }
100
+ });
@@ -0,0 +1,553 @@
1
+ /**
2
+ * A base class for all menu items that require menu-related functionality such as click handling,
3
+ * sub-menus, icons, etc.
4
+ *
5
+ * @example
6
+ * Ext.create('Ext.menu.Menu', {
7
+ * width: 100,
8
+ * height: 100,
9
+ * floating: false, // usually you want this set to True (default)
10
+ * renderTo: Ext.getBody(), // usually rendered by it's containing component
11
+ * items: [{
12
+ * text: 'icon item',
13
+ * iconCls: 'add16'
14
+ * },{
15
+ * text: 'text item'
16
+ * },{
17
+ * text: 'plain item',
18
+ * plain: true
19
+ * }]
20
+ * });
21
+ */
22
+ Ext.define('Ext.menu.Item', {
23
+ extend: 'Ext.Component',
24
+ alias: 'widget.menuitem',
25
+ alternateClassName: 'Ext.menu.TextItem',
26
+
27
+ /**
28
+ * @property {Boolean} activated
29
+ * Whether or not this item is currently activated
30
+ */
31
+
32
+ /**
33
+ * @property {Ext.menu.Menu} parentMenu
34
+ * The parent Menu of this item.
35
+ */
36
+
37
+ /**
38
+ * @cfg {String} activeCls
39
+ * The CSS class added to the menu item when the item is activated (focused/mouseover).
40
+ * Defaults to `Ext.baseCSSPrefix + 'menu-item-active'`.
41
+ */
42
+ activeCls: Ext.baseCSSPrefix + 'menu-item-active',
43
+
44
+ /**
45
+ * @cfg {String} ariaRole
46
+ * @private
47
+ */
48
+ ariaRole: 'menuitem',
49
+
50
+ /**
51
+ * @cfg {Boolean} canActivate
52
+ * Whether or not this menu item can be activated when focused/mouseovered. Defaults to `true`.
53
+ */
54
+ canActivate: true,
55
+
56
+ /**
57
+ * @cfg {Number} clickHideDelay
58
+ * The delay in milliseconds to wait before hiding the menu after clicking the menu item.
59
+ * This only has an effect when `hideOnClick: true`. Defaults to `1`.
60
+ */
61
+ clickHideDelay: 1,
62
+
63
+ /**
64
+ * @cfg {Boolean} destroyMenu
65
+ * Whether or not to destroy any associated sub-menu when this item is destroyed. Defaults to `true`.
66
+ */
67
+ destroyMenu: true,
68
+
69
+ /**
70
+ * @cfg {String} disabledCls
71
+ * The CSS class added to the menu item when the item is disabled.
72
+ * Defaults to `Ext.baseCSSPrefix + 'menu-item-disabled'`.
73
+ */
74
+ disabledCls: Ext.baseCSSPrefix + 'menu-item-disabled',
75
+
76
+ /**
77
+ * @cfg {String} href
78
+ * The href attribute to use for the underlying anchor link. Defaults to `#`.
79
+ * @markdown
80
+ */
81
+
82
+ /**
83
+ * @cfg {String} hrefTarget
84
+ * The target attribute to use for the underlying anchor link. Defaults to `undefined`.
85
+ * @markdown
86
+ */
87
+
88
+ /**
89
+ * @cfg {Boolean} hideOnClick
90
+ * Whether to not to hide the owning menu when this item is clicked. Defaults to `true`.
91
+ * @markdown
92
+ */
93
+ hideOnClick: true,
94
+
95
+ /**
96
+ * @cfg {String} icon
97
+ * The path to an icon to display in this item. Defaults to `Ext.BLANK_IMAGE_URL`.
98
+ * @markdown
99
+ */
100
+
101
+ /**
102
+ * @cfg {String} iconCls
103
+ * A CSS class that specifies a `background-image` to use as the icon for this item. Defaults to `undefined`.
104
+ * @markdown
105
+ */
106
+
107
+ isMenuItem: true,
108
+
109
+ /**
110
+ * @cfg {Mixed} menu
111
+ * Either an instance of {@link Ext.menu.Menu} or a config object for an {@link Ext.menu.Menu}
112
+ * which will act as a sub-menu to this item.
113
+ * @markdown
114
+ * @property {Ext.menu.Menu} menu The sub-menu associated with this item, if one was configured.
115
+ */
116
+
117
+ /**
118
+ * @cfg {String} menuAlign
119
+ * The default {@link Ext.Element#getAlignToXY Ext.Element.getAlignToXY} anchor position value for this
120
+ * item's sub-menu relative to this item's position. Defaults to `'tl-tr?'`.
121
+ * @markdown
122
+ */
123
+ menuAlign: 'tl-tr?',
124
+
125
+ /**
126
+ * @cfg {Number} menuExpandDelay
127
+ * The delay in milliseconds before this item's sub-menu expands after this item is moused over. Defaults to `200`.
128
+ * @markdown
129
+ */
130
+ menuExpandDelay: 200,
131
+
132
+ /**
133
+ * @cfg {Number} menuHideDelay
134
+ * The delay in milliseconds before this item's sub-menu hides after this item is moused out. Defaults to `200`.
135
+ * @markdown
136
+ */
137
+ menuHideDelay: 200,
138
+
139
+ /**
140
+ * @cfg {Boolean} plain
141
+ * Whether or not this item is plain text/html with no icon or visual activation. Defaults to `false`.
142
+ * @markdown
143
+ */
144
+ /**
145
+ * @cfg {String/Object} tooltip
146
+ * The tooltip for the button - can be a string to be used as innerHTML (html tags are accepted) or
147
+ * QuickTips config object.
148
+ */
149
+
150
+ /**
151
+ * @cfg {String} tooltipType
152
+ * The type of tooltip to use. Either 'qtip' for QuickTips or 'title' for title attribute.
153
+ */
154
+ tooltipType: 'qtip',
155
+
156
+ arrowCls: Ext.baseCSSPrefix + 'menu-item-arrow',
157
+
158
+ childEls: [
159
+ 'itemEl', 'iconEl', 'textEl', 'arrowEl'
160
+ ],
161
+
162
+ renderTpl: [
163
+ '<tpl if="plain">',
164
+ '{text}',
165
+ '<tpl else>',
166
+ '<a id="{id}-itemEl" class="' + Ext.baseCSSPrefix + 'menu-item-link" href="{href}" <tpl if="hrefTarget">target="{hrefTarget}"</tpl> hidefocus="true" unselectable="on">',
167
+ '<img id="{id}-iconEl" src="{icon}" class="' + Ext.baseCSSPrefix + 'menu-item-icon {iconCls}" />',
168
+ '<span id="{id}-textEl" class="' + Ext.baseCSSPrefix + 'menu-item-text" <tpl if="arrowCls">style="margin-right: 17px;"</tpl> >{text}</span>',
169
+ '<img id="{id}-arrowEl" src="{blank}" class="{arrowCls}" />',
170
+ '</a>',
171
+ '</tpl>'
172
+ ],
173
+
174
+ maskOnDisable: false,
175
+
176
+ /**
177
+ * @cfg {String} text
178
+ * The text/html to display in this item. Defaults to `undefined`.
179
+ * @markdown
180
+ */
181
+
182
+ /**
183
+ * @cfg {Function} handler
184
+ * A function called when the menu item is clicked (can be used instead of {@link #click} event).
185
+ * @cfg {Ext.menu.Item} handler.item The item that was clicked
186
+ * @cfg {Ext.EventObject} handler.e The underyling {@link Ext.EventObject}.
187
+ */
188
+
189
+ activate: function() {
190
+ var me = this;
191
+
192
+ if (!me.activated && me.canActivate && me.rendered && !me.isDisabled() && me.isVisible()) {
193
+ me.el.addCls(me.activeCls);
194
+ me.focus();
195
+ me.activated = true;
196
+ me.fireEvent('activate', me);
197
+ }
198
+ },
199
+
200
+ getFocusEl: function() {
201
+ return this.itemEl;
202
+ },
203
+
204
+ deactivate: function() {
205
+ var me = this;
206
+
207
+ if (me.activated) {
208
+ me.el.removeCls(me.activeCls);
209
+ me.blur();
210
+ me.hideMenu();
211
+ me.activated = false;
212
+ me.fireEvent('deactivate', me);
213
+ }
214
+ },
215
+
216
+ deferExpandMenu: function() {
217
+ var me = this;
218
+
219
+ if (me.activated && (!me.menu.rendered || !me.menu.isVisible())) {
220
+ me.parentMenu.activeChild = me.menu;
221
+ me.menu.parentItem = me;
222
+ me.menu.parentMenu = me.menu.ownerCt = me.parentMenu;
223
+ me.menu.showBy(me, me.menuAlign);
224
+ }
225
+ },
226
+
227
+ deferHideMenu: function() {
228
+ if (this.menu.isVisible()) {
229
+ this.menu.hide();
230
+ }
231
+ },
232
+
233
+ cancelDeferHide: function(){
234
+ clearTimeout(this.hideMenuTimer);
235
+ },
236
+
237
+ deferHideParentMenus: function() {
238
+ var ancestor;
239
+ Ext.menu.Manager.hideAll();
240
+
241
+ if (!Ext.Element.getActiveElement()) {
242
+ // If we have just hidden all Menus, and there is no currently focused element in the dom, transfer focus to the first visible ancestor if any.
243
+ ancestor = this.up(':not([hidden])');
244
+ if (ancestor) {
245
+ ancestor.focus();
246
+ }
247
+ }
248
+ },
249
+
250
+ expandMenu: function(delay) {
251
+ var me = this;
252
+
253
+ if (me.menu) {
254
+ me.cancelDeferHide();
255
+ if (delay === 0) {
256
+ me.deferExpandMenu();
257
+ } else {
258
+ me.expandMenuTimer = Ext.defer(me.deferExpandMenu, Ext.isNumber(delay) ? delay : me.menuExpandDelay, me);
259
+ }
260
+ }
261
+ },
262
+
263
+ getRefItems: function(deep){
264
+ var menu = this.menu,
265
+ items;
266
+
267
+ if (menu) {
268
+ items = menu.getRefItems(deep);
269
+ items.unshift(menu);
270
+ }
271
+ return items || [];
272
+ },
273
+
274
+ hideMenu: function(delay) {
275
+ var me = this;
276
+
277
+ if (me.menu) {
278
+ clearTimeout(me.expandMenuTimer);
279
+ me.hideMenuTimer = Ext.defer(me.deferHideMenu, Ext.isNumber(delay) ? delay : me.menuHideDelay, me);
280
+ }
281
+ },
282
+
283
+ initComponent: function() {
284
+ var me = this,
285
+ prefix = Ext.baseCSSPrefix,
286
+ cls = [prefix + 'menu-item'],
287
+ menu;
288
+
289
+ me.addEvents(
290
+ /**
291
+ * @event activate
292
+ * Fires when this item is activated
293
+ * @param {Ext.menu.Item} item The activated item
294
+ */
295
+ 'activate',
296
+
297
+ /**
298
+ * @event click
299
+ * Fires when this item is clicked
300
+ * @param {Ext.menu.Item} item The item that was clicked
301
+ * @param {Ext.EventObject} e The underyling {@link Ext.EventObject}.
302
+ */
303
+ 'click',
304
+
305
+ /**
306
+ * @event deactivate
307
+ * Fires when this tiem is deactivated
308
+ * @param {Ext.menu.Item} item The deactivated item
309
+ */
310
+ 'deactivate'
311
+ );
312
+
313
+ if (me.plain) {
314
+ cls.push(prefix + 'menu-item-plain');
315
+ }
316
+
317
+ if (me.cls) {
318
+ cls.push(me.cls);
319
+ }
320
+
321
+ me.cls = cls.join(' ');
322
+
323
+ if (me.menu) {
324
+ menu = me.menu;
325
+ delete me.menu;
326
+ me.setMenu(menu);
327
+ }
328
+
329
+ me.callParent(arguments);
330
+ },
331
+
332
+ onClick: function(e) {
333
+ var me = this;
334
+
335
+ if (!me.href) {
336
+ e.stopEvent();
337
+ }
338
+
339
+ if (me.disabled) {
340
+ return;
341
+ }
342
+
343
+ if (me.hideOnClick) {
344
+ me.deferHideParentMenusTimer = Ext.defer(me.deferHideParentMenus, me.clickHideDelay, me);
345
+ }
346
+
347
+ Ext.callback(me.handler, me.scope || me, [me, e]);
348
+ me.fireEvent('click', me, e);
349
+
350
+ if (!me.hideOnClick) {
351
+ me.focus();
352
+ }
353
+ },
354
+
355
+ onRemoved: function() {
356
+ var me = this;
357
+
358
+ // Removing the active item, must deactivate it.
359
+ if (me.activated && me.parentMenu.activeItem === me) {
360
+ me.parentMenu.deactivateActiveItem();
361
+ }
362
+ me.callParent(arguments);
363
+ delete me.parentMenu;
364
+ delete me.ownerButton;
365
+ },
366
+
367
+ // private
368
+ beforeDestroy: function() {
369
+ var me = this;
370
+ if (me.rendered) {
371
+ me.clearTip();
372
+ }
373
+ me.callParent();
374
+ },
375
+
376
+ onDestroy: function() {
377
+ var me = this;
378
+
379
+ clearTimeout(me.expandMenuTimer);
380
+ me.cancelDeferHide();
381
+ clearTimeout(me.deferHideParentMenusTimer);
382
+
383
+ me.setMenu(null);
384
+ me.callParent(arguments);
385
+ },
386
+
387
+ beforeRender: function() {
388
+ var me = this,
389
+ blank = Ext.BLANK_IMAGE_URL;
390
+
391
+ me.callParent();
392
+
393
+ Ext.applyIf(me.renderData, {
394
+ href: me.href || '#',
395
+ hrefTarget: me.hrefTarget,
396
+ icon: me.icon || blank,
397
+ iconCls: me.iconCls + (me.checkChangeDisabled ? ' ' + me.disabledCls : ''),
398
+ plain: me.plain,
399
+ text: me.text,
400
+ arrowCls: me.menu ? me.arrowCls : '',
401
+ blank: blank
402
+ });
403
+ },
404
+
405
+ onRender: function() {
406
+ var me = this;
407
+
408
+ me.callParent(arguments);
409
+
410
+ if (me.tooltip) {
411
+ me.setTooltip(me.tooltip, true);
412
+ }
413
+ },
414
+
415
+ /**
416
+ * Set a child menu for this item. See the {@link #menu} configuration.
417
+ * @param {Ext.menu.Menu/Object} menu A menu, or menu configuration. null may be
418
+ * passed to remove the menu.
419
+ * @param {Boolean} [destroyMenu] True to destroy any existing menu. False to
420
+ * prevent destruction. If not specified, the {@link #destroyMenu} configuration
421
+ * will be used.
422
+ */
423
+ setMenu: function(menu, destroyMenu) {
424
+ var me = this,
425
+ oldMenu = me.menu;
426
+
427
+ if (oldMenu) {
428
+ delete oldMenu.parentItem;
429
+ delete oldMenu.parentMenu;
430
+ delete oldMenu.ownerCt;
431
+ delete oldMenu.ownerItem;
432
+
433
+ if (destroyMenu === true || (destroyMenu !== false && me.destroyMenu)) {
434
+ Ext.destroy(oldMenu);
435
+ }
436
+ }
437
+ if (menu) {
438
+ me.menu = Ext.menu.Manager.get(menu);
439
+ me.menu.ownerItem = me;
440
+ } else {
441
+ me.menu = null;
442
+ }
443
+
444
+ if (me.rendered && !me.destroying) {
445
+ me.arrowEl[me.menu ? 'addCls' : 'removeCls'](me.arrowCls);
446
+ }
447
+ },
448
+
449
+ /**
450
+ * Sets the {@link #click} handler of this item
451
+ * @param {Function} fn The handler function
452
+ * @param {Object} [scope] The scope of the handler function
453
+ */
454
+ setHandler: function(fn, scope) {
455
+ this.handler = fn || null;
456
+ this.scope = scope;
457
+ },
458
+
459
+ /**
460
+ * Sets the {@link #icon} on this item.
461
+ * @param {String} icon The new icon
462
+ */
463
+ setIcon: function(icon){
464
+ var iconEl = this.iconEl;
465
+ if (iconEl) {
466
+ iconEl.src = icon || Ext.BLANK_IMAGE_URL;
467
+ }
468
+ this.icon = icon;
469
+ },
470
+
471
+ /**
472
+ * Sets the {@link #iconCls} of this item
473
+ * @param {String} iconCls The CSS class to set to {@link #iconCls}
474
+ */
475
+ setIconCls: function(iconCls) {
476
+ var me = this,
477
+ iconEl = me.iconEl;
478
+
479
+ if (iconEl) {
480
+ if (me.iconCls) {
481
+ iconEl.removeCls(me.iconCls);
482
+ }
483
+
484
+ if (iconCls) {
485
+ iconEl.addCls(iconCls);
486
+ }
487
+ }
488
+
489
+ me.iconCls = iconCls;
490
+ },
491
+
492
+ /**
493
+ * Sets the {@link #text} of this item
494
+ * @param {String} text The {@link #text}
495
+ */
496
+ setText: function(text) {
497
+ var me = this,
498
+ el = me.textEl || me.el;
499
+
500
+ me.text = text;
501
+
502
+ if (me.rendered) {
503
+ el.update(text || '');
504
+ // cannot just call layout on the component due to stretchmax
505
+ me.ownerCt.updateLayout();
506
+ }
507
+ },
508
+
509
+ getTipAttr: function(){
510
+ return this.tooltipType == 'qtip' ? 'data-qtip' : 'title';
511
+ },
512
+
513
+ //private
514
+ clearTip: function() {
515
+ if (Ext.isObject(this.tooltip)) {
516
+ Ext.tip.QuickTipManager.unregister(this.itemEl);
517
+ }
518
+ },
519
+
520
+ /**
521
+ * Sets the tooltip for this menu item.
522
+ *
523
+ * @param {String/Object} tooltip This may be:
524
+ *
525
+ * - **String** : A string to be used as innerHTML (html tags are accepted) to show in a tooltip
526
+ * - **Object** : A configuration object for {@link Ext.tip.QuickTipManager#register}.
527
+ *
528
+ * @return {Ext.menu.Item} this
529
+ */
530
+ setTooltip: function(tooltip, initial) {
531
+ var me = this;
532
+
533
+ if (me.rendered) {
534
+ if (!initial) {
535
+ me.clearTip();
536
+ }
537
+
538
+ if (Ext.isObject(tooltip)) {
539
+ Ext.tip.QuickTipManager.register(Ext.apply({
540
+ target: me.itemEl.id
541
+ },
542
+ tooltip));
543
+ me.tooltip = tooltip;
544
+ } else {
545
+ me.itemEl.dom.setAttribute(me.getTipAttr(), tooltip);
546
+ }
547
+ } else {
548
+ me.tooltip = tooltip;
549
+ }
550
+
551
+ return me;
552
+ }
553
+ });